Stephen Adams
looks inside Sinclair's latest machine and finds it has a
lot in common with the ZX-81
THE ZX SPECTRUM is very similar in shape
and style to the ZX-81 and there are many similarities. Sinclair
has kept the original keyboard to save space but has provided
a rubber sheet with moulded keys on it which fits over the
top. The sheet is suspended over the flat keys - which on
the ZX Spectrum are bigger than the ZX-81 - so that when a
key is pressed it bends to give some feel to the keyboard.
That and the fact
that the keys repeat if held down for longer than one second,
even when using SHIFT, makes the keyboard much easier to use.
The single keyword system has been retained and that saves
memory, as all the Basic words can be stored as one byte.
It also means that two SHIFT keys are required to reach all
the functions; one is called CAPS SHIFT and the other SYMBOL
SHIFT. They are at opposite ends of the keyboard and as they
are often used one after another, it tends to slow the input
speed as you are constantly swapping hands.
For instance, RUBOUT and the cursor movements
use CAPS SHIFT and +-* are SYMBOL SHIFT. It would have been
a better idea to put both on the left-hand side, as they often
need to be used together and could be pressed with one hand
while the other searches for the appropriate key.
The keyboard is an input-output mapped device,
as on the ZX-81, and along with the ZX printer, which is the
same for the ZX-81 and the Spectrum network/RS232 interface,
discs, loudspeaker, tape interface and border colours require
only one address line to work. That means that you must make
all of the lower five address lines a binary 1 to use your
own devices.
The input-output map access has been improved
greatly, however, with the addition to the Basic commands
of IN and OUT. They give an instruction IN A(c) or OUT A(c)
where registers BC give an address from 0 to 65535.
The memory-mapped addressing of the RAM/ROM
occupies 0-16K and the RAM 16K-32K on the basic 16K model.
There is provision for an extra 32K board to be plugged in
to IC sockets at the back of the printed circuit board. The
48K version will have the board fitted but to add it later
it will cost £60, which I think is expensive.
There would be no difficulty in adding extra
ports to the memory map, as on the ZX-81, above 32K on the
basic version - but for two things. There is no RAM CS line,
so that the extra RAM can be turned-off if required on the
edge connector and the edge connector address lines have been
moved to the outer edges so that it is incompatible with the
ZX-81. The Spectrum has a 28-way double-sided edge connector
of the same style as the ZX-81, with the keyway on pin 5.
That makes any input-output device compatible with the ZX-81
but any memory-mapped devices would have to be rearranged.
The edge connector also has a number of new signals on it
which are not explained in the manual, plus a video output
and colour outputs for VDUs.
All the voltages used on the Spectrum are
also brought out, namely +5V, -5V, +12V and -12V. They are
obtained from the same buzzing transformer as is used in the
16K RAM pack and most of that RAM pack seems to have been
transplanted on to the Spectrum.
The obvious additions to the circuitry are
the PAL colour mixer under the metal can which contains the
video modulator and the fact that two crystal-controlled oscillators
are used, one for the ULA, which controls the screen among
other things, and the other for the colour mixer. The 14mHz
clock for the ULA is also used to drive the Z-80A microprocessor
after it has been reduced to 3.5mHz. That is 0.25mHz faster
than the ZX-81. The Z-80A has also been freed of the job of
putting-out the screen - by the ULA - and so no longer requires
the commands FAST or SLOW, as it works at top speed all the
time except when BEEP or PAUSE is used.
PAUSE and BEEP both cause the Z-80A to stop
for a time determined by the programmer and so it will do
nothing else while those commands are being done. BEEP commands
should be kept short in a program for that reason; 0.01 seconds
is a good speed to PRINT AT and BEEP at the same time.
As for programming
the Spectrum, it can be considered as an extension of the
ZX-81 Basic. The PAPER, INK, BRIGHT and FLASH commands for
each character square are stored in a memory map above the
dots for each character. They are all stored in one byte per
character and can be read by the Basic word ATTR and altered
either by Basic commands or POKEs.
The dot screen is a different matter, however,
and cannot be altered so easily, as the dots are stored in
peculiar order, so you have to use the graphics commands which
can define all the dots on the 22 line by 32 character screen
available to the user - or the SCREEN command.
There can be only two colours for each character
square, one for the foreground (INK) and one for the background
(PAPER), but they can be any one of eight colours. They can
also be inverted at a rate of one per second continuously,
square by square (FLASH) or have two intensities of colour
(BRIGHT).
The screen takes up 6,912 bytes of the 16K
memory and the system variables take up another 738 bytes.
The rest of the memory is not free for the user to use as
11 other areas float above location 23733 and can expand and
contract as required by the Spectrum.
The program and variables are sandwiched
in the middle of those, so REM statements cannot be used for
machine code. There is an area, however, which can be used
for machine code programming above RAMTOP which is ignored
by the Basic and its length can be defined by the user.
The user-definable characters area is stored
above that so they can be kept from program to program.
There are many tape arrangements which can
be made with the Spectrum. The program, strings or machine
code can all be SAVEd, LOADed and VERIFYd separately. The
variables and screen can also be stored on tape but cannot
be VERIFYd. As each is SAVEd, a message to start the tape
recorder will appear and wait for you to press a key. That
is a very good example of the user-friendliness of the machine
and most of the errors appear with similar messages.
SAVEing or LOADing causes the border to
flash red and green or red and blue, depending at which part
of the tape you are looking. All of my tape programs LOADed
correctly and I was surprised with the difference in speed
between it and the ZX-81.
I have been able to deal with only a few
subjects. There is so much more to learn about the Spectrum
from the manual that it would become a series if I did not
stop now. The Spectrum is real value for money and easy to
use. It has some peculiarities but they do not seem important
when you look at what it can offer. With disc, networking
facilities and RS232 interface it is a great improvement on
the ZX-81 but it cannot replace it, as the price of £129.95
will still be a little daunting to those who want to try a
computer for the first time.