48k to 128k rebuild.

This is universal memory expansion for ZX Spectrum 16/48k (all issues) and Didaktik Gama (all revisions). It was designed by Pavel Cimbal (aka Zilog) and this is third revision. It's fully compatible with original 128k, even 2nd video RAM is working as expected. There are also FASTIO (ports speed up) and UNRAIN (solves ULA raining bug when I is in slow ram) options - you can enable them with switch.

Part list:
16 x 64kx1 DRAM (4164)
16 x DIL16 sockets
1 x 74LS174
1 x GAL20V8, here is JED file for it
2 x 3k3 resistor
2 x 1x3 pinhead
some wires

Here is description how to build it:

phase 1 - remove old RAM chips, rewire voltage for VRAM, place sockets instead of chips:

1. remove all VRAM chips (4116)
2. remove all upper RAM chips (4532)
3. cut -5V, +5V and 12V voltages to VRAM chips
4. connect +5V to pin 8 of VRAM chips
5. solder DIL sockets to all VRAM and upper RAM chip positions
6. put 4164 DRAM chips to all sockets
7. turn on Spectrum, it should work as usual (if not, you have something wrong somewhere)

WARNING! If you are modifying ZX Spectrum Issue2 board, replace C64 (100pF) with 150 or 180pF, otherwise you will end up with memory errors as with the 100pF the /CAS signal is active too early and the addresses are not stable.

Now you have 128k RAM inside, but there is no logic for it, so it's still only 48k. So here is phase 2 - implement logic for expanded memory:

1. cut A7 of upper ram from multiplexer
2. cut A15 between CPU and ULA (and multiplexer)
3. connect A15 from CPU to edge connector pad 1B (component side), so A15 from CPU goes only to edge connector and KB2 connector, be sure you have it exactly as described
4. build logic from schematic, don't forget to program GAL
5. connect it to Spectrum board according schematic
6. tadaaa - you have 128k Speccy ;-)

As you can imagine, it's not so easy to build it. Here are some tips - D0-D5 get on pullups R9-R14. /RESET, /RFSH, /IORQ, /WR, A1, A5, A14, A15 get on CPU. VRAMA7 goes to A7 of VRAM chips, FRAMA7 goes to A7 of upper RAM chips. FSEL connect to upper multiplexer selector, e.g. pin 8 of IC23. If you have ISSUE5 or 6, there is no IC23, so FSEL goes to pin 35 of ZX8401 (/MREQDL). VSEL goes to pin 35 of ULA (/RAS). newA15 goes to A15 on ULA and upper multiplexer only!

If you made it correctly, you should have working 128k Speccy. Test it with divIDE with TBIOS. There is some diagnostic in it.

Pictures:

Schematic
Schematic.
VRAM voltage correction
VRAM voltage correction.
Rebuild in ZX Spectrum
Rebuild in ZX Spectrum.
Rebuild in ZX Spectrum+
Rebuild in ZX Spectrum+.