Right from the start,
I had better explain that the ZX81 costs £50 in kit
form and £70 ready-built and, as such, represents absolutely
amazing value for money. Whatever shortcomings are highlighted
in this Benchtest must be weighed against this fact.
Like the ZX80, its
predecessor, the ZX81 will be available by mail-order and,
by the time you read this, deliveries should be coming through.
Clive Sinclair tells me that he plans to up production to
10,000 units per month starting in April and that he'll be
producing 10,000 ZX80s to satisfy overseas demand, so, providing
that 10,000 or fewer of you order the new machine per month,
delivery should be swift.
Sinclair has been a bit cheeky in his advertisements.
Under a column entitled 'New, improved features', he proceeds
to mention three things that were included in the ZX80 when
it was launched over a year ago!
For the benefit of those unfamiliar with
the ZX80, it was the first ready-built computer to break the
psychological £100 price barrier. It was well-made but
looked slightly cheap in its lightweight plastic case and
with its shiny keyplate. The 'keys' were printed on a plastic
membrane with a metallised back; when each 'key' was pressed,
the metallic back came in contact with PCB tracks, shorting
them to complete the appropriate circuit. The system plugged
into the domestic television to give an extremely clear display,
and program storage could be made onto the home cassette recorder.
The ZX80 came with 1K of user memory (RAM) and a 4k operating
system/Basic language chip.
The main limitations of the ZX80 were the
fact that it could not handle floating point numbers or cassette
files. Also, when first launched, memory expansion came a
bit expensive but this changed when the 16k plug-in RAM became
available. The ZX80 certainly represented a great step forward
and offered excellent value for money for people wanting to
learn about computing.
So what in the ZX81 is new, compared with
the ZX80? First, an extra 4k of ROM is provided which allows
30-odd additional functions to be incorporated. This will
also drive the printer (expected in the summer). I couldn't
test this, but I have seen it working. It is an electrosensitive
printer requiring aluminised paper, the surface of which is
burnt off by an electrical discharge to reveal the black paper
underneath. Don't study the photos too closely, because they
show a model, not the real thing. The ZX81 costs an amazing
£30 less than the ZX80, thanks to some neat design consolidation
in a Ferranti chip custom-built to Sinclair's requirements.
The total number of chips in the basic system is four, against
the ZX80's 21. The ZX81 and its peripheral products are all
cased in sturdy black ABS plastic. And very nice it looks,
Although physically smaller than the ZX80,
the new machine weighs in at 13oz, about 2oz heavier than
its predecessor. The system needs a UHF television, a cassette
recorder and a power supply to make it usable.
On my colour television the screen is a
pleasant green and all characters are displayed in black.
The machine offers no colour facilities and my guess is that
you shouldn't hold your breath waiting for them. I suspect
that a projection system based on three of Uncle Clive's miniature
TV tubes might appear one day but, then again, I also suspect
that he'd introduce another computer to take advantage of
this. The display is 24 lines of 32 characters of which two
lines are reserved for system messages and commands. Low resolution
graphics are provided to give 64 by 44 plotting points. As
with the ZX80, the display is very clear and rock-steady.
I'm pleased to see that the new power supply
has its own flying lead for the attachment of a normal mains
plug. (The ZX80 was awkwardly designed with an integral plug
which often needed an additional socket or extension lead.)
This power supply must give 600 mA at 9V but, since the ZX81
draws close to this, the standard power supplies actually
give 700 mA and I would recommend that readers using their
own supplies go for the higher rating, too.
Once again, the keyboard is formed by an
underprinted plastic membrane which is everything-proof (water,
chemicals, Coca-Cola, cigarette ash, monkeys, editors, etc).
The keyboard layout is different from the ZX80's so, if you're
upgrading, prepare to make a few mistakes at first. At the
same time it is an improvement, since each keyword is frequently
placed at or near its initial letter. (All you have to do
now is learn the qwerty layout!)
Here are a few ideas for Uncle Clive: a
plug-in battery pack, a plug-in single-line LCD display and
a remote (infra-red or ultrasonic) facility so that you can
sit in your armchair beaming the display information at an
aerial adapter on the television .
Compared with the ZX80, the ZX81 looks very
smart indeed - one could almost say tasteful. It has a nice
shape and texture and the keyboard is made of a non-reflective
material, a definite improvement.
The plug-in 16k RAM pack fits to the edge
of the PCB where it protrudes from the rear of the casing.
The cursor takes a while to appear at switch-on because the
system is checking to see how much memory is present in order
to set certain system variables. If you're a machine code
freak you can reset the RAMTOP variables in order to give
you somewhere safe to tuck your precious program .
Five screws hold the ZX81 together; three
of them are hidden under the pads on which the machine stands
(footpads? - surely not). You know what I mean - those non-skid
things. There's a substantial heat sink for the regulator
under the rear of the keyboard - it's a good place to warm
your hands on a chilly morning. The PCB is held into the casing
by two screws. The keyboard is separate from the main PCB
and is connected to it by a couple of flat printed cables.
The main PCB is well designed and neatly made. Assembly of
the ZX81 is done very professionally by the Timex Corporation
in Scotland (the same people that are making Sinclair's latest
The basic ZX81 contains four chips - ROM,
3.5 MHz Z80A CPU, 1K memory and the Ferranti custom-made chip
- plus a limited assortment of bits and pieces. It's very,
very simple - I think even I could build it. A few spare positions
on the board give the manufacturer a certain amount of flexibility
to tweak the machine to the requirements of different television
systems and to be prepared in case a memory chip famine occurs.
The Ferranti chip handles all the I/O and control signals
between the various elements of the machine. Nosing around
inside, I notice that it has a very cosmopolitan flavour with
memory from Malaysia, the CPU and ROM from Japan, a UHF modulator
from the Philippines, a regulator from El Salvador and the
custom chip from Britain. The edge connector is not gold-plated
(what do you expect for £70?); it's just the PCB printing
taken out to the edge. The 16k RAM pack contains two boards
connected at the edge. One board contains eight 4116s which
are driven by the other board's assortment of seven chips
which handle the memory addressing and refreshing.
The ZX81 syntax-checking is excellent because,
unlike the ZX80's, instead of operating on each character
as it's entered, the system waits until NEWLINE is hit. Finding
your way around the keyboard at first is a real hoot - some
of the keys have five functions. As before, the single stroke
keyboard entry is a joy to use and the automatic spacing inserted
by the system makes program listings clearly legible. For
example, if you tried to enter 10FORN=lTO10, it would appear
as 10 FOR N=1 TO 10. Pretty neat, huh?
Editing is very simple. You position the
cursor on the line to be modified, hit the EDIT key and then
make your corrections. Additional characters and functions
are automatically inserted at the cursor position within the
line while RUBOUT deletes the character or function to the
cursor's left. A touch on the NEWLINE key confirms the changes.
The machine can be used as a calculator
but shouldn't be bought for that purpose since the precision
is less than one would expect of such a device. It is, however,
far better than the integer-only ZX80, offering +/- 10+/-38.
If numbers get out of hand it presents results in standard
scientific notation. For those who can't readily visualise
this level of accuracy it means numbers up to 4,294,967,295
can be represented with complete accuracy. That's 2 32-1.
The smallest positive number is about 4 x 10-39 . Five bytes
are needed to store a number, which goes a long way to explaining
why the Benchmark timings are slower than with the ZX80, which
only required two.
An enormous number of functions have been
crammed onto this rather small keyboard. This has been achieved
by using two special keys: graphics, which allows the user
to key all the graphic characters as well as the normal characters
as white on black; and function, which allows the user access
to (surprise, surprise!) special functions. A normal mode
of operation also exists. In addition to all this, the keyboard
has a bog-standard shift key, thus increasing the range of
options for each key still further.
The character set is a one-off - it's not
ASCII or anything I recognise. I think we'd be safe if we
called it Clive code. The TV display isn't exactly memory-mapped
- it tends to move around and change its size depending on
what's going on. It is, however, possible to find the start
of the screen area and then to access the screen by PEEKing
and POKEing the screen locations in the buffer.
All but one of the ZX80's Basic functions,
plus a substantial number of additions, have been incorporated
into the 8k ROM which drives the ZX81. The following commands
and statements are provided over and above the old ZX80 repertoire:
ASN, ACS, ATN COS, EXP, INKEY$, PI, SGN, SIN SQR, INT, LEN,
LN, TAN, VAL, <=, >=, < >, COPY, DIM A$, FAST,
FOR . . ., TO. . . STEP, LLIST, LLIST n, LPRINT, PAUSE, PLOT,
PRINT AT, PRINT TAB, SCROLL, SLOW, UNPLOT. The missing function
is TL$, which was used to return a string minus its first
character. This ROM plus an appropriate keypad overlay is
available to existing ZX80 users who wish to upgrade their
machine. They should note, however, that even with the new
ROM they will continue to get the screen flicker which, I'm
sure, they've grown to know and love by now.
The machine can be operated in two modes
- SLOW (sometimes called 'compute and display'), and FAST.
FAST mode offers the world famous screen flicker every time
you hit a key while SLOW mode keeps the screen refreshed at
all times, resulting in a nicer display, moving graphics and
a lot of irritating delays: see the Benchmarks for comparisons.
If you need to see the screen continuously then SLOW mode
is a boon. If you don't say if you were doing lots of calculations,
then it's better to use the FAST mode. The two can be called
from within a program thus offering the best of both worlds.
The SCROLL feature removes the top line from the screen and
moves each line up, leaving a blank bottom line. Without SCROLL,
the display freezes when the bottom line is reached. A PAUSE
instruction is provided which suspends a program's operation
for a user-defined period or until a key is depressed. The
screen is visible when in PAUSE mode regardless of whether
the program is running FAST or SLOW. In SLOW mode the screen
fiickers slightly when the PAUSE takes effect but in FAST
mode it has to come on altogether. This means that you'll
have to be careful not to have your PAUSEs too close together
unless you actually enjoy watching the screen going absolutely
bananas. The INKEY$ function is welcome since it can be tested
to see if a key is being depressed and, if so, which key it
is. This feature is great for fast-moving games since you
need only hit the key you're interested in - there's no need
to hit NEWLINE.
There are no DATA or READ instructions but
this can be circumvented by saving a program with all its
associated variables and then using a GOTO to kick the program
off when it's reloaded. (RUN automatically clears any variables.)
Pressing CONT, not surprisingly, allows you to continue the
program. PLOT and UNPLOT functions (0,0 is in the bottom left-hand
corner) are provided, giving a graphics capability of 44 by
64 points. Each point, or pixel (picture element), is a quarter
the size of.a normal character. Hardly high resolution but
better than a poke in the eye with a sharp stick!
The cassette needs either 35mm sockets or
an appropriate adapter. SAVE is offered but no VERIFY, so
saving a long program can be a bit worrying. I suggest you
first save a few short programs, just to make sure the controls
are set properly. When loading a program, the pattern on the
screen shows you when data is being recognised. The theory
of cassette adjustment is that you play a data tape, gradually
turning the volume up until the pattern appears. Then you
turn it up a little more and it should be ready for use.
The printer, when it arrives, will allow
you to LPRINT and LLIST data and programs respectively. Even
better, it will allow you to dump the screen contents to the
printer using the COPY command either within the program or
as an immediate instruction. Such a screen copy takes about
12 seconds to produce.
The only function to disappear is the TL$
command mentioned earlier. The same thing can be accomplished
using the LEN and TO instructions. All trigonometric stuff
is in radians and PI is provided to help you unravel the results.
SGN = signum which can possess one of three values: -1, 0
and +1. At one stage the new ROM (for the ZX80 and, subsequently,
for the ZX81) was expected to offer DRAW, UNDRAW, DATA, READ
and RESTORE features. Instead I think the idea of adding printing
facilities became more important. After all, these features
can be realised using the existing range of commands.
A character string of any length may be
used as a numeric variable name, providing it starts with
a letter. String variable names are restricted to A$ to Z$.
String and numeric arrays may be any number of dimensions
- the limit is dictated by the amount of free memory available.
String arrays are character arrays really, with the last entry
in a DIM statement being the number of characters per array
element. With a full 16k RAM and a small program (it fitted
on the screen) I set up a string. array 100 x 6 x 25 characters
long. I used this since each element would be about the size
of a name and address record, allowing extra information like
telephone number and birthday, for example. Substrings are
handled using the TO function. LET A$ B$ (3 TO 5) would make
A$ a three character string comprising the third to fifth
characters of string B$. This opens up possibilities for giant
strings and the use of string slicing to extract variable
A programming book is provided with the
system: ZX81 Basic Programming by Steven Vickers. The cover
is a very odd photo (montage?) of what appears to be a couple
of model delta-wing jets on top of a solitary skyscraper at
night. Two red windows peer at you from the upper floors.
It must be full of deep meaning which totally escapes me.
Sinclair Research specially commissioned it. Can any psychologist
readers tell us what it's all about, please?
The book is written for the novice and it
does a pretty reasonable job. It is infinitely better than
the book given out with the ZX80. What a pity, then, that
just as the reader is about to key something in for the first
time, he encounters the most off-putting (and unnecessary)
paragraph in the whole book:
The style of the book isn't really to my
taste although Steven reveals a lot about himself with his
talk of dead tax collectors and expressions like 'Lor, love
a duck'. Eye fans will be delighted with his reference to
Talbot? on page 38 (I find the question-mark rather becoming,
don't you?). Oddly, error codes are referred to as report
codes. Perhaps the idea of associating errors with the machine
was just too abhorrent, even if they do happen and even if
they are usually the user's fault. Ho hum - more psychologist
fodder. There are the usual typographical errors which didn't
get cleared up but I couldn't find too many. The only other
thing in the manual which actually troubled me was the reference
to pounds, shillings and pence in one programming example.
My kids (aged ten eight and six months) didn't know what it
was all about and, let's face it, a lot of these machines
are going to be bought by, and for, kids.
Who would use this machine? Kids will love
it (so will Dads) and, at this price I can't think of a better
way of introducing them to the subject. Most courses on computers
and especially on Basic programming cost more than the ZX81.
In my view you can buy a ZX81, have a lot of fun, learn a
bit about computers and Basic programming and decide whether
you like it or not. If you don't like it or if you decide
to move on to bigger and better things, you can always sell
the machine (or give it to ComputerTown). The 16k RAM pack
is a must for anyone doing anything remotely serious. The
printer, when it arrives, will give you the chance to keep
a record of all that interesting stuff you've got locked in
the machine. The floating point arithmetic certainly makes
the ZX81 a far more useful machine than the ZX80 and I suspect
that many people will give it serious consideration as a result.
You must bear in mind the sort of limitations imposed by the
ZX81's inability to handle files. You can save a program with
all its variables on tape, which gives you 16k for both programs
and data. In my earlier example, I managed to get 100 records
of 150 characters each into memory with a short program of
20 lines or so. There's no reason why you shouldn't record
the program again with another 100 records, which would overcome
this particular limitation The only problem you'd be left
with, then, is the fact that other programs cannot access
the same data. I think that if you're really worrying about
this sort of thing then maybe you require a more substantial
Expansion possibilities for the ZX81 are
limited at the moment to the printer and the 16k RAM pack.
I asked Clive Sinclair if there was any chance of disks being
developed and he gave the same enigmatic answer he gave a
year ago when I asked the same question about the ZX80: 'We're
working on it.' Draw your own conclusions.
People who are wondering about its relevance
to business or serious work at home ought to sit down and
do a few calculations on just how much information they need
to hold and how they wish to access it. You could hold 100
or so names and addresses or keep track of around 600 financial
transactions in one load of the 16k memory. These figures
allow for a fairly simple entry and enquiry program in each
case. By abbreviating information you can clearly cram more
in. By splitting your information across several tapes you
can build a substantial file of information but each tape
would have to be managed by a separate version of the program.
If you know nothing about computers and
you want to enjoy finding out about them, then this machine
offers a value for money way of doing just that. Children
will love the ZX81, there can be no question about that, and
I suspect that more than a few people who are already familiar
with computers will buy one, just to have a bit of fun.
He's done it again. Uncle Clive has come
up with a lovely product which will have enormous appeal to
people wanting to find out more about computers, but without
it costing them an arm and a leg. The idea of producing a
superior machine to the ZX80 and selling it for a lower price
is absolutely wonderful. I'm full of admiration for the man.
Most people would have upped the spec and held the price ('It
really hurts me to do this') or even increased it slightly.
The product is clearly aimed at the home market and I'm sure
that it will do extremely well there, far better in fact than
the ZX80. And that's rapidly becoming the biggest selling
micro in the world!