ZX97 Lite

The ZX97 Lite built by
Pasquale
As stated before, the ZX97 Lite is very
similar to the ZX81 by Sinclair, of which there is already a lot of
information available.
For example, I have even seen a typed text
version of the ZX81 manual somewhere.
ZX97 Lite?
To facilitate PCB design, the ZX97 Lite
design does not include the RAMDISK and parallel port features.
With these changes I have managed to design
the ZX97 Lite on a single PCB, with a single sided PCB design.
The PCB measures 15.7x18cm. There are 24
ICs on the PCB, not counting the optional voltage regulator.
Display Type
The ZX97, just like the ZX81, produces a
black and white screen on a television set. I have included two jumpers
in the design with which it's possible to select the border and
background color. (also see jumper descriptions)
Normally the ZX97 Lite operates in a
character mode which means that only characters in the CHR$ set are
displayed on the screen, however since the ZX81 has been introduced,
several High-res software solutions were invented that allow a high
resolution display on the ZX81 of which every pixel is seperately
programmable. These high-res methods are also possible on the ZX97
computer.
Tape or no Tape?
In the original ZX97 ASCII schematic the
I/O circuits needed for saving programs on a cassette tape were not
included, so I used the ZX81 equivalent circuits for tape I/O.
It's also possible to use the tape
input/output signal as a digital serial output, which means that all the
tape signal filtering R/C circuits would not be necessary since all
signals would be digital TTL level. If you intend to make use of this
digital method you could leave out the filtering components C5, R12,
(not R11!), R13, C6, R14 and C7. When you look at the ZX97 circuit you
will notice that by taking out these parts, you will need to solder in a
few wires to connect the circuits to the mic and ear outputs. The
component positions that will need a wire soldered in are: C5/R12,
C6/R13.
If you do plan to use regular audio
devices for saving and loading, you can leave in the parts mentioned and
just go with the circuits as in the circuit diagram. I did use a
different value in the circuit diagrams for C6/R13 because with the R/C
values as in the original Sinclair schematics of my ZX81 kit, I had
problems recording programs through the MIC output. After some
experimenting I got good results with the values as in the ZX97 circuit
diagram.
Also there may be problems with the
keyboard being slightly unreliable especially with long keyboard wires
(capacitive), and also with loading programs from tape or PC. These
problems could be solved by using a 74LS245 for U16, which is the input
port for both keyboard and tape input.
Keyboard
For those not familiar with the ZX81
hardware, the keyboard that is used with both the ZX81 and the ZX97 Lite
is called a matrix keyboard. This means that all the keys used are
mapped in a matrix position. When a 'row' line is connected to a
'column' line by a keyboard switch, it will be registered by the
computer and the action that goes with this keypress will be executed by
the computer. The 'row' signals are located in J3 and the 'column'
signals in J2.
The row signals of J3 are then devided in
two groups of 4 signals that pair up with the 5 column signals of J2 to
make a block of 4x5 keys. Two of these blocks then add up to 40 keys
total. The matrix keyboard is more clearly illustrated by the following
table:
Block 1 |
J2-1: |
J2-2: |
J2-3: |
J2-4: |
J2-5: |
Block
2 |
J2-5: |
J2-4: |
J2-3: |
J2-2: |
J2-1: |
J3-4: |
1 |
2 |
3 |
4 |
5 |
J3-5: |
6 |
7 |
8 |
9 |
0 |
J3-3: |
Q |
W |
E |
R |
T |
J3-6: |
Y |
U |
I |
O |
P |
J3-2: |
A |
S |
D |
F |
G |
J3-7: |
H |
J |
K |
L |
Newline |
J3-1: |
Shift |
Z |
X |
C |
V |
J3-8: |
B |
N |
M |
. |
Space |
Please note: most keys have several
functions. These functions can be selected by the following methods:
1. Shift + Key
2. Shift + Enter: changes the cursor into a
'F' which is the 'function mode'. In this mode, most keys have extra
functions that are accessed by simply pressing the key after you have
changed the cursor to 'F'. After pressing a key, the 'F' cursor becomes
a 'K' or 'L' cursor again.
3. Shift + 9: changes the cursor into a 'G'
which is the 'Graphics mode'. Keys pressed with a 'G' Cursor will result
either in inverted text or in combination with shift some of them
produce graphic symbols. The 'G' cursor will not change back by itself,
you will have to press Shift + 9 again in order to change back to normal
typing mode.
4. 'K' cursor mode. This mode results in a
Keyword when certain keys are pressed.
5. 'L' cursor mode. This mode results in
Letters when you press the letter keys. You can however still use
Shift+Key and 'F' + Key in this mode which in some cases also produces
keywords and functions.
Also note: the ZX97 Lite(as the ZX81 does)
handles the 'K' - 'L' cursor transitions automatically. For example,
when you enter a keyword with the 'K' cursor, it changes to 'L' and
you're able to enter variables, mathematical symbols etc.
Jumpers
J9 selects border color, and J8 selects
character color, however note that J8 inverts the setting of J9 if
changed.
For example, set both jumpers to 1-2 to
make sure you can see the picture on the tv screen because with certain
settings can be difficult to see the tv picture.
Make sure you have the memory option
jumper J11 closed at power-on because this selects ZX97 ROM in the 0K-8K
region.
At power-on, you will need the ROM to be
present at 0K-8K because at power-on reset the Z80 starts executing at
adress 0000h.
J11 can be used to first load alternative
OS software in RAM region 32K-40K (8000h-9FFFh, J11 closed) and switch
it to the 0K-8K region(0000h-1FFFh) by opening the jumper. In closed
position the ZX97 0K-8K ROM area will be loaded.(which is mostly the
same as the ZX81 ROM)
It's possible to load the OS in RAM region
32K-40K, switch the ZX97 Lite off, change the jumper and switch back on,
but this will require the backup battery to be installed on the PCB.
(else the RAM contents is lost at shutdown.)
Also have a look at the memory table below.
Jumper J4 selects the TV standard: 50Hz
(PAL, for example in Europe) or 60Hz. (NTSC, for example in the US)
Memory decoder
The ZX97 memory decoder operates as follows
for the main memory blocks:
Memory-map:
Mem
Area: |
0000-1FFF |
2000-3FFF |
4000-5FFF |
6000-7FFF |
8000-9FFF |
A000-BFFF |
C000-DFFF |
E000-FFFF |
Normal: |
ROM |
RAM |
RAM |
RAM |
RAM |
ROM |
ROM |
ROM |
/M1 low: |
ROM |
RAM |
RAM |
RAM |
RAM |
ROM |
RAM* |
RAM* |
J11 Open: |
RAM** |
RAM |
RAM |
RAM |
ROM** |
ROM |
ROM |
ROM |
* during /M1 low, and certain other
signal conditions, DFILE is read from RAM, and memory access to the
C000h-CFFFh area is redirected by the memory decoder to the 4000h-7FFFh
RAM memory area.
** these memory blocks are reversed in
relation to the 'Normal' situation in he table. (see comments on
jumpers)
ZX97 BASIC Keywords
I will search for a scan of the ZX81
keyboard which covers most of the keywords, functions etc. for the
ZX97.
There are however several extended ZX97
keywords. They imploy some of the extended functions of the ZX97.
I will add some information here about
these functions later.
PCB Layout ?
The PCB layout is a very large PCX 1bit
bitmap file. In order to save webspace, I have decided not to put these
large files on the website, but instead you can email me and request the
file. (be sure to mention which computer and which version you're
interested in) I will then respond as soon as possible with the
requested file in an attachment. |