------------------------------
-How to add 32k RAM to a 1541-
------------------------------
Filename: "expand1541/32k"
By Andrew E. Mileski
"Recursion" on Q-Link
210-180 Lees Avenue
Ottawa, Ontario
Canada K1S 5J6
Copyright
March 24, 1990
Note: This is for experienced hardware hackers only! Proceed entirely at
your own risk, and you can kiss the warranty goodbye!
This is based on a 1984 Revision A circuit board, but there should be
enough info here to do the expansion on any 1541 drive with very little work,
and only a little thought.
Hints for other versions of controller boards: Figure out which ROM is ROM0
($C000-$DFFF) and ROM1 ($E000-$FFFF). You MAY have to bend pin 20 of each
ROM 180 degrees to the vertical; this is the *ROMx pin. Ignore steps 13, 14,
15, and 16.
This may not be the easiest or best way to add RAM, but it does work.
Seriously
consider buying one of the RAM boards on the market today. They are easy to
install.
!!!!!!!!!!!!!!!WARNING!!!!!!!!!!!!!!!!!
You'll be handling very ESD sesitive
devices! Make sure you and your tools
are properly grounded at all times!
(If you don't know what ESD stands for,
don't even think about trying this!!)
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
An asterisk * before a signal means it is active low.
Feel free to contact me if you need some help, or have a project idea.
(If it was not for RaymondD2 on Q-link asking how to add 8k to his 1541, I
never would have written this file! Thanks Raymond!)
Note: I did the 8k modification on my own drive. It does work. I modified it
slightly; I now have 32k RAM installed!
***************************************
How it works
------------
The 1541 is very sloppy about how it uses its 64k memory space. The first
32k ($0000-$7FFF) is reserved for the RAM and I/O chips. This is 2048+2*15
bytes needed, but almost 30k wasted! The second 32k ($8000-$FFFF) is for the
16k of ROMs, which means another 16k has been wasted! So, we clean up the
memory map, and use 32k of the wasted 46k to add some more RAM! This wastes
only 14k. I dare anyone to try to add 40k of memory :)
The nitty-gritty details
------------------------
IC1 decodes the 64k address space of the 6502 into four 16k segments. The
first segment ($0000-$3FFF) is reserved for the drives own memory and I/O.
This is done by generating a fake A15 signal which I call FA15. We allow
this signal to go low (logic 0) only when we need the internal 2k RAM and
I/O chips.
The next two segments ($4000-$BFFF) are our 32k expansion RAM area. An AND
gate is formed with RDL (resistor and diode logic) to join the 16k segments.
The last 16k segment is reserved for the drive's ROMs, and is unused on IC1.
IC2 decodes the 64k address space into 8 memory segments of 8k. The last two
segments ($C000-$DFFF, $E000-$FFFF) are for ROM0 and ROM1 respectively. The IC
is enabled only on read cycles.
Why this way?
-------------
Note that I didn't have any schematics for the 1541, so this method is most
likely not the best. I also didn't have a very wide selection of ICs on hand
at the time, so I used what I had!
In other words, if you know of a better method share it with the rest of us!
***************************************
1) Decide to add 8k or 32k. Most of todays software uses only 8k, but
who knows what may be in store for the future! For 8k, ignore this
article, and read the file "expand1541/8k".
2) Obtain the parts: Two 74LS138 (3 to 8 line decoder)
One 62256 (32k static RAM, 120ns) (note that a 62LP256 is low-power)
Two switching diodes (any will do) One 3.3k Ohm 1/4 Watt resistor.
A small piece of pre-drilled board. Two 16 pin wire-wrap sockets if you
are going to wire-wrap the circuit.
3) Open the disk drive case and remove the RF sheild.
4) Mark one end of ALL connectors with a marker, so that you will be able
to replace them later.
5) Unplug ALL connectors.
6) Unscrew the circuit board. Don't forget the screws that attach the
heatsink to the frame.
7) Lift the circuit board out of the disk drive and place it on your
anti-static conductive mat (or if your desperate, a folded towel
will do!) component side up, and in the same orientation (top of
board is towards back of drive).
8) Find the 6116 (2k by 8 bit RAM) on the circuit board (24 pins and not
socketed, left side at the back).
9) On the new RAM chip to be added carefully bend the following pins
180 degrees, so that they are pointing in the opposite direction:
pin 1, 2, 20, 22, 23, 26, 27, and 28. These are the signals A13, A12,
*CS, *OE, A11, A14, *WE and +5 volts.
10) Sit the new RAM chip on top of the 6116 chip. The bottom pins should
be aligned. Make sure that both of the chips have their top-of-chip
reference marks pointing in the same direction.
11) Carefully solder the two chips pins together so they are piggy-backed.
Be carefull to avoid solder bridges between pins.
12) Locate the two 8k ROM chips on the circuit board (24 pins and socketed
on right of 6116).
13) To the right of the ROMs, between the chips and the heatsink, you
will see 3 silver dots on the PCB. These are pass-throughs to the
other side of the board.
14) Flip the board over, and again find the same 3 pass-throughs.
15) Cut the trace leading to the front two pass-throughs (the ones towards
the front of the drive). The signals *ROM0 and *ROM1 replace
the original ROM chip selects that go to pin 20 of the ROMs, that is
why you must cut the traces!
16) Solder a wire into the front pass-through; this is the *ROM0 signal.
Solder a wire into the middle pass-through; this is the *ROM1
signal. The wires should be long enough to reach the front of the
board plus about four inches.
17) Find the 6502 CPU chip (40 pins) on the solder side of the board.
Solder wires to pins 8, 20, 21, 22, 23, 24, 25,and 34. These are the
signals +5 volts, A11, ground, A12, A13, A14, A15, and R/*W. Solder two
wires to 23, 24, and 34 so you can connect the 62256 RAM chip.
18) On the component side of the board again with the 6502. Locate pin 25
(A15). Follow the trace leading from the pin to a pass-through.
Cut the trace. Flip the board over and locate the pass-through again.
Solder a wire into it; this is the FA15 signal.
19) On a small (1.25x1.75 inch) piece of circuit board, wire-wrap the ICs
or use point-to-pont soldering.
IC1, a 74LS138
pin
1 A14 16 +5 volts
2 A15 15 FA15
3 Ground 14 Diode1
4 Ground 13 Diode2
5 Ground 12
6 +5 volts 11
7 10
8 Ground 9
IC2, a 74LS138
pin
1 A13 16 +5 volts
2 A14 15
3 A15 14
4 Ground 13
5 Ground 12
6 R/*W 11
7 *ROM1 10
8 Ground 9 *ROM0
Diode1 and Diode2 are the cathode ends (marked on diode with a band).
Connect the anodes (other end) of each diode together and to a wire,
and also to the same end of the resistor; the wire is the *CS
signal for the 62256. To the opposite end of the resistor (the
end that isn't connected to anything yet), connect +5 volts.
Looks like this:
*CS
Diode1 !
IC1 pin 14 -'''':***''''- )
*'*'XXXX''> +5V
IC1 pin 13 -'''':***''''! resistor
Diode2
20) Connect the 6502, ROMs, and RAM chip signals to the 74LS138s.
Run the wires to the front, right of the board (see below for RAM).
Connect RAM pin 1 (A13) to the 6502 pin 23 (A13) wire.
Connect RAM pin 2 (A12) to the 6502 pin 22 (A12) wire.
Connect RAM pin 20 (*CS) to the RDL "AND" gate as described in step 19.
Connect RAM pin 22 (*OE) to pin 14 (Ground) of the chip with a small
wire.
Connect RAM pin 23 (A11) to the 6502 pin 20 (A11) wire.
Connect RAM pin 26 (A15) to the 6502 pin 24 (A14) wire.
Connect RAM pin 27 (*WE) to the 6502 pin 34 (R/*W) wire.
Connect RAM pin 28 (+5 Volts) to 6116 pin 24 with a small wire.
Run these wires to the left of the board, and around to the solder
side.
21) Replace the drive controller board in the drive, and mount the new
small circuit board to the frame with a small machine screw.
22) BEFORE you screw the drive board in place, make sure the wires are not
near the drive or transformer, and tape them in place to the bottom of
the board.
23) Screw the drive controller board to the frame again.
24) Plug in all the connectors again. Check your reference marks.
25) Plug the drive in, and test to make sure the drive still works normally
26) If okay, then replace RF shield and case cover. If not, power-down and
check all your connections!
27) Pat youself on the back, your done! You know have 32k RAM extra!
The 32k you installed is available at $4000-$BFFF
ROM0 available at: $C000-$DFFF
ROM1 available at: $E000-$FFFF
The ROMs are read only, as they should be.
******************************************************************************
* This file comes to you from: The Gate BBS (303)364-4883 Aurora, Colorado *
******************************************************************************
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ And the good folks at Emergency Call BBS - Box 509, Gleichen, Ab. +
+ (403) 934-5647 (403) 734-2382 +
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++