A review of the ZX Spectrum.
Published in ELECTRONICS & COMPUTING, July 1982.

"We have seriously thought about calling this machine NOT THE BBC COMPUTER", said Clive Sinclair when he announced the Spectrum. It was generally taken as an example of Clive Sinclair's dry wit at the time; but I think he meant it.

In many respects, it's a shame he said it, and it's a shame that Sinclair has let the BBCF [sic] computer get so far under his skin, because I don't feel the comparison is relevant. Neither is it as favourable to Sinclair as his publicity machine says.

Taking The Lid off the SPECTRUM
by Guy Kewney
Spectrum and PCB

My opinion of what the Spectrum is can be summed up like this: "Sinclair has taken the incredibly successful design of the ZX81, and has improved it beyond all recognition. He has overcome every reservation which everybody has ever had about that machine — its rather dodgy cassette tape interface, its unfriendly flat keyboard, its very difficult machine code interface, and its low-quality black-and-white display — and has not only 'got it right' but has turned them all into assets. And he has (probably) struck an ideal balance between what the ZX81 users can afford, and what extras they are prepared to pay extra for. But the machine is one of the slowest on the market.

And anybody who has got the money for the BBC micro is letting himself in for some envious moments if he opts for the Spectrum instead, because the gap in price reflects a real gap in features".

The beauty of the ZX81 was that it was cheap. It was the cheapest "real" computer in the world, and with it, hundreds of thousands of people have taken the plunge and found: "Gracious! I can understand programming!" And they've done it without risking their total spare money budget.

The Spectrum is not cheap — by now, surely everybody knows that we pay £125 for a Spectrum with 16 Kbytes of user memory. By contrast, a ZX81 with 16 Kbytes of user memory now costs £100, because the add-on memory pack price has been cut.

Sinclair thinks that there are still enough people around who can't afford more than the £60 which it costs to get a ZX81 (if you know where to buy) that he can carry on making the beast. But he also thinks that enough of them have decided that they need the extra 16 K rampack, to make them take a £125 computer with extra features, seriously.

So: what are these "extra features" that we have to judge worth the extra £25?

Machine Summary

The first, unfortunately, is one we have to take on trust. Unfortunately, because it is undoubtedly the most important — a direct access storage device for £50 — the thing called the Microdrive.

The second is an enhanced Basic language. It still omits one thing which I think essential in such a machine, and that is easy access to machine code, but for all its faults, Basic is usable, and widely known. "Better", here, risks becoming the enemy of "good" (as Adam Osborne always tells me when I suggest possible improvements to something) and obviously Basic is good enough to use. Especially with new features.

The third is colour and programmable graphics.

Fourth, a respectable keyboard. Not a good keyboard, and with its faults, but at least you can use it without wondering if your finger has slipped off the key.

Fifth, sound generation. There is a silly design fault here, and it is one which I can't forgive — the sound is inaudibly soft, and it takes a tedious performance of plugging and unplugging to amplify it.

Sixth, an operating system. We never had one on the ZX81, and sadly we missed it, too. We get screen handling, tape handling, terminals handling, and network handling where previously we only had program save and load.

Seventh, we have auto-repeat on keys. Perhaps I should have put this first — it's something I'd pay extra £25 for, on the ZX81, without asking any more questions beyond "who do I make the cheque out to?"

And, of course, there are a bag-full of other little things. Words Can have small (lower-case) letters as well as capitals. You can time things. You can write your own Basic commands. You don't have to plug the add-on memory pack on. There is a network. And a lot more.

Okay, we are probably on the point of losing our fellow-readers who don't have a ZX81, and don't know what it does.

The Spectrum in context

The first thing which a prospective buyer would notice about the Sinclair (any Sinclair) if they took one home for a week, is that there is only one thing to learn. On all other computers, you have to learn the language, and if you are not already familiar with typewriters, you have to learn the keyboard. On this machine, the language is the keyboard.

In other words, instead of typing PRINT, you press the P key, and the machine types PRINT for you.

It sounds wonderful, until you realise that there are around 90 different words in the Basic language. There are 40 keys on the Sinclair keyboard, and they also have to carry the numbers 0 to 9, the letters A to Z, all the punctuation, calculation, and editing functions, plus colour codes. At that point, only the fact that you have spent all your money on the machine persuades you to stick at it, and learn the way round the keyboard.

But the advantages go deep, for all their apparent elusiveness. On a Sinclair, you are never suddenly stuck for a command, and have to page through the manual to find it and how to spell it (and see how many brackets (not forgetting how many layers of bracket (assuming you only use one form of bracket))) because it's there in front of you.

Nine times out of ten, if you do use the command incorrectly, the machine will show you exactly where you have gone wrong.

To illustrate what I mean: on the Acorn BBCmicro, it is possible to put spaces into Basic statements where spaces should not be. PRINT TAB20 should move you 20 spaces along the line on the screen. But it must not have a space between TAB and 20, or the machine thinks TAB is the label of some specified number (a variable) and hunts through the list of variables before stopping the program with a terse message to say that there is no such variable.

It can take a very long time before you realise that a space is causing your problem. And this is exactly the sort of frustrating thing which the Sinclair design prevents.

The drawback of the system can be seen from a glance at the keys with numbers 2,3,4,5,6 and 7 on them. Each key has six different possible meanings, and you can search for the one you need for minutes at a time before you find it.

Fortunately for Sinclair, he doesn't have to argue about the fact that users find this acceptable. His ZX81 sales have proved it — at least for a rock-bottom price machine.

The other thing about the Sinclair which potential newcomers need to be told, is the editor.

Basic as a language has one enormous advantage over anything that came before, and that is its ability to sort a program into order, no matter what order you write it. As long as the line number is right, the machine editor will put it in the right place.

However things have moved on since Basic was invented, and a lot of people who write Basic editors have failed to realise this.

For a start, we no longer talk to computers by typing on a Teletype, with paper in it. Computers today have video displays. Originally, video displays were designed to behave as though they were paper in a printing device — they were known as "glass Teletypes" — so that the software which ran on the computer would continue to run when a glass TTY was connected. That is, the letters that the user typed appeared on the screen one by one, as if an invisible key was hitting it. And after typing a letter, the [marker] or "cursor" which showed where the next letter would be typed, moved to the right, as if a print head had moved across the paper.

And, naturally, once you had written a whole line, the paper moved up. It was gone, dirty, covered in ink. Even if it wasn't actually there. Even if it was really a character generated by having the computer look at an area of memory, and display the characters it found there.

Basic programs fit into memory. It is quite easy to have the computer look through the area of memory in which it has stored the Basic program characters, and show what is there.

But because, long ago, people pretended that there was a bit of paper in a teleprinter, Basic doesn't normally look at an area of memory. Instead, it digs out a few lines from that area of memory (the program area) and moves them into another area (the display memory) where they are shown on the screen.

If you want to look at the next line of Basic, it gets printed at the bottom of the paper. If you want to look at the previous line, you have to erase the whole video memory, and go back to the program area, and dig out a previous line, and re-write that into the video memory. Just as if you were printing a new page.

Sinclair's Basic doesn't do anything so potty. If you have LISTed lines 400 to 500, and realise that you want to see line 390, you just move the cursor up. Line 500 probably slips off the bottom of the screen, and line 390 appears at the top.

If you type line 30, then line 50, then line 10, then line 60, then line 20, then line 40, then line 10 again, most Basic machines would show you a "listing" like this:


which you're welcome to try to understand. To clarify things, you type LIST, and get the whole program, correctly ordered. But if the screen has room for 20 lines, and the program is 300 lines long, it all flashes by, and you end up with just the last 20. Sinclair Basic would always have them in order, at the top of the screen. And after it had LISTed the first 20 lines, it would stop, and ask you if you wanted more: "Scroll?" it asks politely.

The machine in detail
1  The Microdrive

This is almost certainly a floppy disc. The word "almost" goes in because as recently as April, people close to Sinclair were still unsure whether [his] new diskette design woul[d] be picked in preference to a very fast tape cartridge. Note — cartridge, not cassette. A cartridge, normally, is much faster and more controllable than a music compact cassette. It can move forward, back, fast and slow, under machine control. At best, the compact cassette can stop and start when the computer turns it off and on. Now, Clive says that it will be a diskette, and he is obviously counting heavily on that device to put him ahead of any competition. But that doesn't mean that he's giving anything away about it.

Apart from the fact that it will work with commands SAVE, VERIFY, LOAD AND MERGE which are available on the audio cassette interface, the manual refuses to admit anything other than that there are some other keywords — OPEN#, CLOSE#, MOVE, ERASE, CAT and FORMAT — which "will not work without Microdrive etc".

Data and program storage, for the time being, goes on the audio cassette. But this is a far nicer system than we used to have on the ZX81, where you could save a program or load it, and that was that. People who wanted to save data would have to disguise it as part of a program — in a long REM statement, for instance.

Now, you can not only load and save data on tape as well as programs (and read them back in) but can check that they are correctly saved with the Verify command. You can also use the LINE command when saving a program, and when the program is LOADed again, it will start running all by itself from the line number. Most important, however, the machine actually shows you the name of the program or block which it has found on the tape. No human being will ever be able to distinguish one program from another by listening to the tape, and in the past, people were reduced to making vocal announcements before saving their programs. The opportunities for error were enormous.

It is even possible to dump a display to tape, and subsequently load it back onto the screen, with the command SAVE (or LOAD) "picture" CODE 16384,6912. The two numbers are the start address, and the length. They are automatically generated by the statement LOAD (or SAVE) "picture" SCREEN$. Picture is the name of the block, of course.

Merge is worth special mention — it lets you LOAD a program on top of a previous one, just as though the new lines were being typed in from the keyboard (without a NEW command). So the line numbers stay the same unless the MERGE program has a line of the same. Then, the new line is substituted.

It is also possible to save [and] load new graphics characters (see below).

After all that enthusiasm, and adding that Sinclair has devised a system to make all this loading and saving much more reliable than on the ZX81, there are some reservations.

First, it may be more reliable than before, but it is far from reliable. My experience of using the system showed that around a quarter of the time, the LOAD command responded with "Tape loading error" rather than "OK". Providing the program was properly verified, that isn't the end of the world, but it is irritating (and I don't get that problem on the BBC machine).

Secondly, you have to [muck] about with the plugs and wires. On most tape recorders, plugging computer output to tape input and tape output to computer input, at the same time, generated feedback when saving programs.

Third, you have to press buttons. I've been spoiled for this by several cheap systems which will turn the tape recorder motor off and on, and while I know it costs money, I feel it's worth the cash to have it. Obviously when the Microdrive is available, this will fade into insignificance.
[The Spectrum was quite fussy about the playback volume level, though once the correct level had been found LOADing was usually reliable.]

2  The Basic

In alphabetic order, here are the new keywords, first the functions, then the statements.


It finds out what character attributes are in force at that point of the screen. That means: is the character flashing, inverse video, coloured, etc.


Defines the next number as a binary number, so that 100 is 4, etc. You would normally use it for defining your own graphics character, with the "1"s going where you wanted INK dots. The manual includes a nice version of this for turning the graphics version of P, N, R, K, Q and [B] into chess pieces.


The result of reading the input port (of interest to machine code games writers, mainly).


Changed from the ZX81 version to allow the new upper and lower case input as well.


See above on tape handling.


As well as its normal meaning of invoking a machine code routine, USR followed by a string is used to program your own characters (in graphics mode) like chess pieces, and so on.


Presumably somebody thought this was necessary, but I can't see why.


There ought to be a law against describing the component in the Spectrum which responds to BEEP as a "loud" speaker. I shall refer to it as the "mouse" which grotesquely exaggerates its power. In a totally quiet room, you can detect a faint tone, which sounds for a certain time (you set it) on a certain note (starting with Middle C as 0, BEEP 1,0 would play a one-second middle C). You can go up or down by whole or fractional semitones.


To hear the thing, you have to play it through your amplifier, and if your amplifier is plugged in, you can't save programs. Silly.
[On the issue 3 Spectrum PCB the buzzer was fed through an added transistor, which made it slightly louder.]

(Note: the mouse automatically clicks its claws against the computer case each time you press a key. It would be a great idea, if you could actually hear it.)


A number from 1 to 7 which sets the colour of the border round the edge of the screen.


Some people say they can see the difference between the dark and bright versions of the eight available colours. I must have the wrong television set.


Disk command.


Specify the centre point and radius of a circle, and watch it draw itself there.


When used with a number, moves RAMTOP to that address, giving room for machine code routines, or whatever, above.


Disk command.


Same as old CONT, but politer.


A new (conventional) way of storing data in a program rather than the old REM statement fiddle which users got accustomed to on the ZX81.


Probably the most useful single addition. It allows the user to define a new Basic instruction and say how it works, and what variables it needs when it is used. The BBC micro has this. The BBC micro also has a PROCedure function, just as useful, which shares some of the work of the Sinclair FN.


It can make life a great deal easier for somebody else who is trying to sort out the mess you made in a program, if they can look up functions like this, rather than having to trace subroutines, and if only the function could be given a name, rather than a single letter identifier, it could be very helpful indeed.


Disk command.


One of the new graphics commands. It draws a line or an arc. Unlike BBC micro graphics, however, you have to take great care that you don't draw over points which aren't on the screen, or the program will stop with an error message.


And because this machine has no ON ERROR GOTO function, your error trapping routine has to be absolutely foolproof. Thoughtless.


Disk command.


Exactly what it sounds like — one character at a time.


Disk command.


One of the most powerful new colour commands, and a delightfully clear, easy way of inventing a new Basic word. The number that follows INK (or PAPER) is interpreted as follows:

cyan (light blue)

There is also the option of 8 (which says that the character is the same as its background !) and 9, which declares that there shall be maximum contrast.
[Actually 8 meant "transparent", in that the ink colour already defined for that place on the screen would be used.]


The choice of numbers for colours may seem random, but in fact the ascending order is also the order of grey scale in which they appear on black-and-white (or green) screens.
[And, bits 0, 1 & 2 determine the presence of blue, red and green in the colour, so 110 binary = 6 decimal means no blue, some red, some green, which gives yellow.]


Of course the ZX81 had INPUT! But this time, the difference is startling, because we have INPUT AT and INPUT "Hello, can I have your number?"; number, and several complicated and powerful permutations of that. There is one small carp here.


INPUT AT, on most civilised systems, stops the cursor at the point on the screen specified. So when the user of the program starts typing, the answer appears at the point where the question was asked.
Not on this one. INPUT always produces a prompt on the bottom line, whether INPUT AT or not.


Like the colours, INVERSE is a bit tricky to manage — it switches the INK and PAPER status round. The problem is to work out how much of the screen will be affected. Sometimes, it is just the character blob; other times, it's the whole graphics area.


See tape handling, above.


More tape handling, above.


Disk command.


Disk command.


Gives direct control over the wires at the back of the computer. Anybody designing a machine control system will be glad of this.


Should somebody one day put the language APL on the Spectrum, he will be glad of this, because APL uses overprinting — one character on top of another — and this will allow it. Put a double quote on top of an o and you get an Umlaut, says the manual. I got a wonky rabbit, but I'm sure my German friends wouldn't mind.




Before buying a Spectrum, it would be a good idea to see somebody do some Plotting. As long as you stick to monochrome plotting — that is, without changing paper and ink colours throughout the operation, Sinclair's claim is quite true.
Sinclair says that his machine is superior to the BBC micro, because his hi-resolution graphics use less memory. So, he says, when you use high resolution graphics, on a BBC Model A, you only have 3 Kbytes of memory left for your program. This is true enough — but it implies that his hi-res graphics are the same as the BBC graphics, and they certainly are not.


Apart from the problem of going "off the screen" mentioned above, there is the question oh how versatile they are. And the Spectrum graphics have an inherent limitation, in that there can be only two colours in any character square — the ink colour, and the paper colour.
Any square can have any individual pixel set to the paper or ink, so the fine detail possible is good. But take a red line, and cross it over a black line, and the square where they cross will become confused. Draw several intersecting lines, and you end up with blobs instead of pixels.
With care, the attentive screen designer can get around these — but on the BBC machine and on the Commodore VIC, the attentive designer doesn't have to bother.


Yes, there was a PRINT on the ZX81, but there are significant differences in this new Basic.


Mainly, these are due to the fact that the new machine doesn't use the unique codes of the ZX81, and uses American Standard Code for Information Interchange (Ascii) instead. So there are "control" characters, which have control effects on the screen. A single quotation mark produces a line feed and carriage return. And colour items produce colour changes.


This, like the next keyword, goes with the DATA statement.


With a line number, starts READing at the numbered item. Otherwise, works as in all ordinary Basics.


See tape handling notes, above.


See tape handling.

User impressions

The new keyboard is made of rubber, and it squishes. Whatever colour the keys eventually are, I think you will need good light and good eyesight to read the characters in red on the keys themselves. They are little, fiddly characters like the equals sign, the commas, colons, multiplier, minus, <> and so on. The layout is logical enough. Start a command like PRINT, and you will find the quote marks on the same key as the PRINT command. The often needed semicolon is right next to it. Similarly LET and = are on the same key, THEN and GOTO are on the G key, FOR and TO on the F key with STEP next to them on the D key.

To say that the keyboard is "typewriter pitch" is to mislead. Yes, it is, but the space bar is missing, the ENTER key is where you expect a semicolon, comma and full stop are SHIFT characters on N and M, and anyway, you have to press the keys in the middle to be sure that they register. It's a great improvement on the ZX81, but that's all I can really say for it.


Prototypes, says Clive Sinclair, are not as good as the production models — the fault which made the colours shift and shimmer like a mirage in the Sahara will be cured by reducing the bandwidth of the colour. In fact, this will reduce, not eliminate, the "dot crawl" problem, and the colour will never be capable of display on a high quality monitor to ultra-high resolution like the BBC micro. Then again, for £125 what do you expect?


It's a noticeable improvement on ZX81 Basic. That was pretty good. I don't think the speed of Basic matters too much to most people, which is just as well for the Spectrum. The only thing slower is a Casio pocket Basic calculator, or the ZX81 in SLOW mode. In FAST mode, the ZX81 beats it comfortably. And any model BBC micro is between four and ten times faster, judged on the standard benchmarks originally published in Kilobaud. I wouldn't mention this, but Clive did say his machine was "more powerful" than the BBC.

The BBC micro has a built-in assembler. It runs slowly, but it runs. This machine has no assembler.

The Manual

Better than average despite some excruciating puns by Steven Vickers, which escaped the censor. Some were quite nice — comparing strings, for example, Vickers asks "Which of these is the lesser? EVIL or evil?"

It certainly is better than the BBC manual was, though the new BBC manual will be out by the time you read this, and it may even include all the functions of the machine.


It is terrific value for money. At the moment, there is so much more software available for the Commodore VIC that I think the non-curious customer might prefer that machine — but within six months, that will change and the Spectrum will (I think) have the edge.

Once it has its diskette drives, however, there won't be anything in the world to touch it. And somebody will put CP/M on it, you'll see.


Chronological listing
Back to chronological list

Home Page
Home Page