----------------------------- -How to add 8k RAM to a 1541- ----------------------------- Filename: "expand1541/8k" 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 this modification on my own drive. It does work. I modified it slightly; I now have 32k RAM installed! *************************************** 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 32k, ignore this article, and read the file "expand1541/32k". 2) Obtain the parts: Two 74LS138 (3 to 8 line decoder) One 6264 (8k static RAM, 120ns) (note that a 62LP64 is low-power) 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 2, 20, 22, 23, 27, and 28. These are the signals A12, *CS,*OE, A11, *WE and +5 volts. Break off pin 1; we don't need it. 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 2 pass-throughs (the ones towards the front of the drive). The *ROM0 and *ROM1 signals replace the original ROM chip selects that go to pin 20 on the ROMs, that is why you must cut the traces! 16) Solder a wire into the front pass- through; this is{$e0}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 right of the board). Solder wires to pins 8, 20, 21, 22, 23, 24, 25, 34 and 39. These are the signals +5 volts, A11, ground, A12, A13, A14, A15, R/*W, and theta2. Solder two wires to pin 34 so you can connect the RAM chip. 18) On a small (1.25x1.75 inch) piece of circuit board, wire-wrap the ICs or use point-to-point soldering. IC1, a 74LS138 pin 1 A14 16 +5 volts 2 A15 15 3 Ground 14 4 Ground 13 6264 pin 20 5 Ground 12 IC2 pin 4 6 Theta2 11 7 10 8 Ground 9 IC2, a 74LS138 pin 1 A13 16 +5 volts 2 Ground 15 *ROM0 3 Ground 14 *ROM1 4 IC1 pin 12 13 5 Ground 12 6 R/*W 11 7 10 8 Ground 9 19) 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 2 (A12) to the 6502 pin 22 (A12) wire. Connect RAM pin 20 (*CS) to IC1 pin 13 (*CS). 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 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. 20) Replace the drive controller board in the drive, and mount the new small circuit board to the frame with a small machine screw. 21) 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. 22) Screw the drive controller board to the frame again. 23) Plug in all the connectors again. Check your reference marks. 24) Plug the drive in, and test to make sure the drive still works normally 25) If okay, then replace RF shield and case cover. If not, power-down and check all your connections! 26) Pat youself on the back, your done! You know have 8k RAM extra! The 8k you installed is available at $8000-$BFFF (a 16k segment) For example: $8000-$9FFF,$9000-$AFFF,$a000-$BFFF Will all give you access to the same 8k of RAM. ROM0 available at: $C000-$DFFF ROM1 available at: $E000-$FFFF The ROMs are read only, as they should be. *************************************** What does what -------------- IC1 decodes the 64k address space of the 6502 into four 16k segments, and also synchronizes to the system clock theta2. This IC selects the RAM chip directly. IC2 decodes one of the above mentioned 16k memory segment to two 8k segments, and only allows read cycles to occur. This IC selects each ROM chip. Why this way? ------------- I did things this way so that the 8k of extra RAM would be available in the largest segment of memory possible. This is to allow compatiblity with as much software as possible. 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! *************************************** {$1a}{$1a}{$1a}{$1a}{$1a}{$1a}{$1a}{$1a}{$1a}{$1a}{$1a}{$1a}{$1a}{$1a}{$1a}{$1a}{$1a}{$1a}{$1a}{$1a}{$1a}{$1a}{$1a}{$1a}{$1a}{$1a}{$1a}{$1a}