Copy Link
Add to Bookmark
Report

How to add 32k RAM to a the commodore 64 disk drive 1541

DrWatson's profile picture
Published in 
Commodore64
 · 5 years ago

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 sensitive 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 _MMMM][[[MMMM; :
    LMJMXXXXMM> +5V
    IC1 pin 13 _MMMM][[[MMMM< 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.

← previous
next →
loading
sending ...
New to Neperos ? Sign Up for free
download Neperos App from Google Play
install Neperos as PWA

Let's discover also

Recent Articles

Recent Comments

Neperos cookies
This website uses cookies to store your preferences and improve the service. Cookies authorization will allow me and / or my partners to process personal data such as browsing behaviour.

By pressing OK you agree to the Terms of Service and acknowledge the Privacy Policy

By pressing REJECT you will be able to continue to use Neperos (like read articles or write comments) but some important cookies will not be set. This may affect certain features and functions of the platform.
OK
REJECT