Review – The Sinclair ZX81

ZX81_001a

Sinclair unveiled the ZX81 in March, 12 months after the launch of the £100 ZX80. The ZX81 at £69.95 – £49.95 in kit form – represents another step forward in technology by Sinclair and offers a number of facilities which were unavailable on the ZX80. How good is it? In this review, Tim Hartnell takes a close and critical look at the latest Sinclair computer.

My conclusions are clear – the ZX81 is both a delight and a disappointment. Despite what I or any other reviewer says, Sinclair will sell 100,000 of them before Christmas.

Let us look at the disappointing side first. Late in December last year, 10 or so prototype new-ROM ZX80s – old ROM-ZX80s with EPROMs – were loaned, on strict pledges of secrecy, to develop software for Sinclair to sell. I had one of the new-ROM machines, and was in regular contact with two others who also had them. Within days, it was obvious to me that something was very, very wrong.

The amount of the original on-board 1K left for program use after filling the screen with blanks for the Print At function – POKEing into the display file via the ROM – was so small that use of the 16K pack was mandatory for any worthwhile use. The 3K memory expansion board Sinclair sold for the ZX80 will not work on the ZX81 – unless you manage to cut connection 23B.

With the 16K pack fitted, the prototype new-ROM ZX80s – and two of the three ZX81s we have used – displayed an alarming lack of stability. At any time, the program would just vanish. Several times I was not even near the computer when it happened. Without warning, the program just vanished, leaving a blank screen. The ZX81 then had to be unplugged from the power before it could be used again.

We rang Sinclair Research and pointed out that without data stability, there was no way the computer could ever be considered for serious use. I was asked to return the ZX80 so they could check it. After a week, I had it back in exactly the same state and subsequent telephone calls assured me I was making much ado about nothing.

When I told Sinclair Research the nature of the review I would be writing for Your Computer, a man was sent with a new ZX81 and 16K pack. While he was there, my ZX81 refused to crash.

The ZX81 you buy could perhaps be as unstable as the first two I tested. I could not test the third – it was constructed so you could not even plug the 16K pack in the back. The 16K pack seems to be at the heart of the instability problem. There seem to have been many problems with them – mostly of the “vanishing program” variety. The other strange behaviour they display is “the incredible shrinking RAM” when the available memory decreases to around 11K after a few hours use.

ZX81_002

I have mentioned that, despite whatever was written about the ZX81, Sinclair Research would sell 100,000 before Christmas. Let me explain why I think so.

It is undoubtedly a machine, albeit with display limitations, which will teach, in a very pleasant way, programming in a useful subset of Basic, which includes flexible string handling, a wide range of mathematical functions, and the use of additional commands like PEEK and POKE.

As well, there are the Sinclair-only delights of INKEY, Print At and Print To to master. There is no better way of getting to grips with computers and programming than to have one to play with – and the ZX81 is the least costly way to gain hands-on experience.

The ZX81 looks and feels good. It is about the size – 7in. by 7in. – and weight of a paper-back book, finished in matt black, with a matt-plastic keyboard finished in red and black. The power-supply, television and cassette in and out plug into the left-hand side.

Connection is simple, but you must be certain the plugs are inserted tightly, or the slightest movement of the computer will dislodge them.

There are many similarities to the ZX80. Line numbers are from 1 to 9999; the first word after a line number or after the word Then – such as Let, Print, Goto or Gosub – is entered with a single key-stroke, and each line is checked for syntax errors before being accepted into the main body of the program. The touch-sensitive keyboard is simple to use.

The only feedback you have is when the characters appear on the screen. You will obtain numbers, key words – the word above the keys – if it is the first keystroke after a line number or letters by using the keyboard in the non-shift position.

Holding down shift – and you must be careful to press Shift exactly – gives you access to the commands written within the keys, such as Stop, LPrint and To. Holding down Shift and pressing Newline – the ZX equivalent of Return – while doing so will give you the functions written below each key. To obtain the graphics, you need to hold down Shift then press the Graphics key which is on the same little square as 9.

From then on, until you press Shift and Graphics together again, you will obtain the inverse of letters, numbers, the dollar sign and the like. You must depress Shift again, while in the Graphics mode, to obtain graphical characters like the grey square on the letter A keypad. This sounds a great deal more complicated than it is in practice, even though many keys can produce five different effects.

ZX81_003

Despite the advertisements, the graphics are not high resolution. True, in the Plot mode, you use a grid of 64 by 42 as opposed to 32 by 21, but this is far from true high resolution.

Here is a program to show the PLOT function.

10 FOR A = 2 TO 120
20 LET B = A-PI/30
30 PLOT A/2, SIN(B)*20 + 20
40 NEXT A

This routine plots a sine curve.

One of the most frequent sources of complaints on the Z-80 was the flash which occurred every time a key was pressed, and the fact that the screen went blank when the computer was “thinking”.

Sinclair minimised the cost of the ZX80, in part, by using the same bit of computer to both think and handle the display – but it could not do both at once, so the display went blank during processing. A very important function on the ZX81 – but which is not provided on the new ROM as it requires hardware to operate – is the Slow/Fast option.

Fast, which you trigger either by entering Fast, shift F, in the direct mode, then Newline before running, or by including a line like 10 Fast in the listing, makes the ZX81 perform like a ZX80. Processing takes priority over display, so what you see during thinking time is a grey, fuzzy screen.

The Slow mode, in which ZX81 is automatic unless you input Fast, puts maintenance of the picture at a higher priority than processing. Although the ZX81 runs about four times slower in Slow than it does in Fast, this is unlikely to bother a user in the vast majority of cases.

The important thing is that the display is rock steady, without a hint of flicker, so animated displays of a kind can be produced. The display looks as if it is memory-mapped. The addition of Slow is, in my opinion, the most important development Sinclair has produced with the ZX81.

Sinclair ZX81 Basic allows only single statement lines, but judicious chaining with And, If and Then – lines may be up to 255 characters long – can simulate multiple statements, to some extent. The syntax-checking is superb. The computer refuses to accept an incorrect line which is better than computers which accept the line, then hang up when you try to Run it. It then puts an error marker next to the offending number or letter.

The Basic allows you to jump out of loops at will, with Goto or Gosub any syntactically correct statement. So you can say

IF X = INT(2*PI/(T – B)) THEN GOSUB Y**T
or
IF J = 9 THEN PRINT AT B, SQR(B)

The Basic compensates for non-existent Goto and Gosub destinations by going to the next highest line – a useful feature for programmers who chop and change lines a good deal when working.

Although ZX81 Basic has its own oddities, as do all Basics, it is a sufficiently standard version of Microsoft to enable a ZX81 owner to adapt easily to Microsoft-using computers. There is no Read/Data function, but you can compensate in part for this lack by PEEKing and POKEing REM statements. The first address after the word REM in the first line of a ZX81 program is 16514 – a fact you will not learn from the otherwise comprehensive manual.

String handling on the ZX81 is a great improvement on the limited string functions available on the ZX80. The very useful, if non-standard, ZX80 function TL$, truncate left, which progressively stripped a string of its contents character by character, has been dropped by the ZX81.

However, the ZX81 offers string arrays. You dimension them as you do numeric arrays, by the statement DIM A$(9). Numeric arrays are dimensioned by using the letters A to Z in the form DIM A(9). Subscripts for string, character and numeric arrays start at 1.

DIM A$(9) will allow you to manipulate a single word of nine letters. If, for example, you set up the array DIM A$(9) and placed in the next line

LET A$ = “123456789”

and the following line was PRINT A$(7), the ZX81 would output “7”. If you entered

PRINT A$(2 + 4)

you would obtain “6”.

PRINT A$(2 TO 5)

produces “2345”,

LEN A$

gives “9” and

VAL A$

gives

1234567890.

The STR$ function – and note that all these functions are single-key entries – changes a number, e.g., 9, into a string, so

LET A$ = STR$(9)

sets A$ equal to “9”. These functions are easy to use, but for some weird reason, the explanations are split up between two sections of the manual, 99 pages apart. You can also add strings, so

LET C$ = A$ + B$

is valid. You need to dimension the length of strings for proper string arrays, so

DIM A$(9.5)

will give you an array of nine words, each up to five characters long.

The manual is a great improvement over the much-criticised one provided with the ZX80. For a start, it is comprehensive and covers all the functions available on the computer. It gives a proper list of system variables and addresses, has a brief chapter on machine code, includes a memory map and overall, does not make the assumption – which the ZX80 manual did – that ZX81 owners are unlikely to ever progress beyond the most straight-forward use of Basic.

The style of the manual is attractive, and is generally very friendly. It admits, where necessary, the limitations of ZX81 Basic. The only real disappointment is that very few of the programs given in the manual actually do anything except illustrate a specific command. There are no games, even of the excruciating standard of the Nibble the Cheese variety given in the ZX80 manual. So, even when you have worked through the manual, you still have practically nothing you can Run on the ZX81.

Sinclair Research dispatched the EPROM new-ROM ZX80s to programmers to create a library of software to sell. There are four cassettes available; three games cassettes – two for 16K, one for 1K – and a “serious” pack containing Telephone, Note Pad and Bank Account.

Unfortunately, the instability of data within the ZX81 means, in my opinion, that you would be unwise to enter information of value into the Telephone or Note Pad programs. The programs do little, except use a clever, extremely fast machine-code search routine, which you could not do with a piece of paper or card system. Bank Account is more attractive, but you would lose the state of your accounts if you could not Load the program at some stage.

The games programs are more interesting – and not just because I wrote a few of them. Cassette 4, for example, contains Lunar Landing, 6K, Twenty-One, 3K, Combat, 3K, Substrike, 2.5K, Codebreaker, 2K, and Mayday, 2K. They are good value indeed for £3.95, and although I could not Load them all – the Load reliability of the ZX81 is much better than the ZX80, but still far from perfect – the ones I ran made good use of both the mathematical abilities of the ZX81, and the enhanced display using Slow. The 1K pack contains a superb Life, plus five other games.

Sinclair Research is working on a “computer learning laboratory” book and cassettes combination, as well as program packs suitable for teaching young children. As with the ZX80, a whole cottage industry will arise to produce ZX81 and new-ROM software. This time, however, the price structure will be dictated by Sinclair’s very low price.

The printer was introduced in part to make the ZX81 useful in computer-science courses which demand computer printout as part of their assessment program. It will have much wider use than this, and if the quality of the of-the-shelf printer is as good as the demonstration model I have seen, there is going to be a huge demand for it.

The printer works in a radical way. It is about the size of two cigarette boxes lying on their sides stacked on top of each other. A little ribbon flies around inside the printer base, with two needles protruding from the ribbon.

The needles “scan” the paper the same way a TV screen is scanned. When the printer meets a black dot on the TV screen, the needle darts forward and puts a similar dot on the 10cm. aluminised roll of paper. It takes about 12 seconds to print one screenful, and can either print the display – a screen at a time – or reproduce the entire listing.

The printer can be driven by both the ZX80 with new-ROM, and the ZX81. The commands LPrint and LList are just like Print and List, except they use the printer instead of the television screen.

Conclusions

  • The apparent lack of stability, and the still-imperfect Load, seem the only real problems with the ZX81. It is unfortunate that the 16K RAM pack was released apparently before being fully tested; it also seems unfortunate that Sinclair Research does not demand even more rigid quality testing before allowing ZX81s on to the market. My first computer had a bubble in the keyboard overlay, and one of the three we used was so constructed that a 16K pack could not be added.
  • The ZX81 is a very good first computer and will open the world of computing to many who would be denied access to it by cost.
  • It has a flexible Basic, and when the ZX81 owner decides to upgrade as many will in due course – he or she will find the language he has learned will stand him in good stead on his new machine.
  • It seems a pity that Sinclair Research does not work to produce other than ephemeral computers: a simple machine, using Microsoft, with reliable Load/Save, a memory-mapped screen and a proper keyboard would sweep the market.
  • If you have never used a computer, by all means buy a ZX81. You will learn a good deal, have considerable fun, and when – in eight months or so – you are ready to move on to another machine, you will have enough knowledge to know exactly which computer to buy.

First published in Your Computer magazine, June/July 1981

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s