Recenze - Navigátor

12 Assembler
41 Encyklopedie
32 Hardware
16 Hra
12 Párty
7 Programování
12 Sofware


Herní styl Memory
Multiplayer Bez multiplayeru
Rok vydání 1987
Programátor John Vanderaart
Grafik Wijo Koek


32kb to 1541 drive

                        -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

                               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.
consider buying one of the RAM boards on the market today. They are easy to

                  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
    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
    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:
               Diode1     !
IC1 pin 14 -'''':***''''- )
                        *'*'XXXX''> +5V
IC1 pin 13 -'''':***''''! resistor

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

    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

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                          +
Nový příspěvek k článku

podpis :
První znak podpisu musí být vykřičník, jinak se příspěvek neodešle (ochrana proti spamu)


Programmed by PCH of UNREAL, Hardware support by RAY of UNREAL. Beta test and bugs guru SILLICON
Unreal 2014 - Czech republic