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 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 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 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 | H | H | H | X | X | |||||||
(X means: L or H, don't care) |
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) |
last updated Mar/00