ZX81 Giant Expansion

There are many memory expansion possibilities for the ZX81, however the ZX81 Giant board is something completely new: up to 144 kB of memory!
The important question is always where, how much and what kind of memory is needed. Exactly on these issues the Giant is a great solution: it offers RAM, EPROM as well as EEPROM areas. In total 32kB of EPROM, 8kB of EEPROM and 56kB of RAM are present on the Giant board. In addition to these memory options present on the Giant Board, the Megabyte Board offers the possibility to expand RAM memory with an additional 4 MB.

The Giant board is a piggy back board and can be connected directly on top of the ZX81 main board. This means the RAM can be accessed for generating the character set and a choice of user defined characters is possible. Because of the limited adress space of 64kB, bankswitching is required to control the Giant board. For this purpose the adress space is devided into eight memory banks of 8kB each. Of these eight banks of memory only three are switched by the Giant board: a lower bank between 8192 and 16393, and the top (two) bank(s) from 49152 to 65535. In the lower bank as much as 32kB of EPROM (4 banks) and 32kB of RAM (also 4 banks) are located. The top memory banks are not switched by the Giant board itself, because it only provides 16kB of RAM in these banks. Instead the Megabyte Board provides up to 256 banks of 16kB RAM each in this upper region. (49152 - 65535)

In the other memory areas things are less 'chaotic'. In the 16384 - 32767 area the usual 16kB BASIC RAM is located. Next to this block a single 8kB RAM fills the gap between 32768 and 40959. Because this RAM is parallel to the ROM area, it can be used for user defined character sets. Finally there is an EEPROM located in the 40960 to 49151 area. This EEPROM can be write protected and is ideal for storing useful machine programs. Instead of an EEPROM it is also possible to use an 8kB RAM in this socket. This option allows the possibility to have a memory map identical to the original Memotech 64k expansion.

We simply couldn't leave the ROM area alone... The Giant board contains 32kB of EPROM mapped to that area, in which up to four different operating systems can be included. (Husband Forth, ROM or ASZMIC...) We have implemented very simple bankswitching here with a normal switch.

The other switchable bank of memory in the 8-16k region is controlled by a special circuit: The POKE Board. The board recognizes a POKE 8,X command and saves the value X in a latch. The lower 4 output bits of this latch are decoded into 16 individual signals by a 74LS154 IC. With these signals the PK3-GAL chip provides the necessary control lines that adress the RAM and the EPROM in the lower memory bank. These 8 lower memory banks are switched respectively by: POKE8,5 to POKE 8,8 for the RAM and POKE8,9 to POKE 8,12 for the EPROM.

The inner logic of the GAL ICs illustrates this issue a little better:
POKE 8,x /CS /CSRAM /CSEPROM A13* A14*  
5 L L H L L
6 L L H H L
7 L L H L H
8 L L H H H
9 L H L L L
10 L H L H L
11 L H L L H
12 L H L H H
(X means: L or H, don't care)
The remaining lines of the POKE Board are used to control additional hardware expansions.

Connection of the Giant to the ZX81 is quite simple:

First a ZX81 board is required on which the RAM and ROM IC positions have IC sockets. If the RAM and ROM are soldered directly to the board, it will be necessary to desolder the chips and to substitute them by sockets. The keyboard diodes must be desoldered and on the original cathode positions an 8 pin connector strip must be soldered in. The 8 pin keyboard connector must be removed as well, because it will be needed later on the Giant board. Next the keyboard diodes can be soldered in place on the Giant board. On the bottom of the RAM, ROM and (new) keyboard connector positions the Giant board has pin rows which allow for easy disconnection from the ZX81, which can be useful for locating any hardware problems.

A further feature of the Giant Board is the fact that it corrects a ULA weakness which didn't allow machine programs above the 32678 memory location.  For this purpose the connection of the CPU's A15 line to pin 18 of the ULA on the ZX81 board needs to be cut. Now only the missing connections to /RD, /M1 and pin 18 of the ULA must be made with three wires between the ZX81 and Giant boards. Finally the Giant is connected with five wires to the necessary POKE board connections which are present on the ZX-bus connector.

By the way, the assembly of the Giant board is somewhat simpler when a ZX96 mainboard is used because this board already contains an integrated POKE board!

component side 27k
Schematic (old) 11k
Schematic (new version!) 95k
Parts list 1k
PCB-Layout (solderside) 142k
PCB-Layout (compside) 124k
Schematic file in EAGLE format 18k (zip)
a view at the PCB 51k
www.cadsoft.de EAGLE Freeware (rd. 4MB)

Kai Fischer, ZX-TEAM

last updated Mar/00