The Sinclair Research ZX80

Authors

Publication

Pub Details

Date

Pages

The new ZX80 microcomputer from Sinclair Research Ltd is a remarkable device. Although first announced to the North American public in February, 1980, the microcomputer did not become available until the fall. During the wait, the price has dropped from the expected $245 to just under $200. Because of this, the ZX80 is being widely advertised as the first personal computer for under $200.

The ZX80, shown in photo 1, is a new design from Clive Sinclair, a well-known British electronics innovator. Sinclair is best known for his previous products: a miniature television, low-cost calculator and digital watch kits, and miniature stereo components. All of his products have stressed small size, low cost, and highquality operation — usually at the expense of packaging. The same is true of the ZX80.

Can it be any good if it sells for under $200? This is a reasonable question, but the question that is most important when buying a computer is, “Will it do the job I want it to do?” The only way to tell is to look at its features in some detail. In order to design a very low-cost computer, some features had to be cut. However, the new features that have been added are rather impressive. The good features include low price, small size, high microprocessor speed, ease of program entry, and real-time BASIC syntax checking.

The price of $199.95 includes the assembled computer, an AC (alternating current) power adapter, a cable to connect the ZX80 to a standard television set (channel 2), connectors for a cassette recorder, and a well-written book on programming in BASIC for the ZX80. For those interested in building kits, a kit version is available. However, you will not save money by doing so, and the kit involves some steps that are rather involved for an inexperienced kit builder.

The ZX80 is small. The actual dimensions are 15.9 by 20.8 by 3.5 cm (6 1/2 by 8 1/2 by 1 1/2 inches), or about the size of a hardcover book. It is not the smallest personal computer — the new pocket computers from Sharp, Panasonic, Quasar, and Radio Shack have that honor. Also, because the ZX80 has to be attached to its AC adapter and a television set to work, some of its size advantage is lost.

As part of this evaluation, several benchmark programs were run in BASIC to compare the ZX80 to other personal computers. Although the ZX80 is not as fast as advertisements imply, it does run faster than many other personal computers, including the Radio Shack TRS-80 Model I.

The ZX80 also has a few software features that are useful. The single-keystroke keywords mean that, instead of typing a whole word, you have to type only a single character on the keyboard. This can cause some confusion at first, and it takes some time to remember not to type the whole word. But it does speed up the typing process when entering a program. Because the keywords are stored in 1 byte each, you save memory space that can be used for extra program storage.

Another BASIC feature that I found impressive is the syntax checking of the program as you type it in. 1 have always been disappointed that most other versions of BASIC do not do this. The ZX80 actually prompts you with the type of input it is looking for — a keyword, a literal, a string, or a number. If you enter an illegal statement, it indicates where the statement is wrong and will not let you enter that statement into the program. It also does a similar check on input data requested by a running BASIC program. In fact, it allows you to enter simple expressions for numeric input and calculates the value while reading the value into the program; a very nice feature.

At $200, though, everything cannot be optimum. There are objectionable features too. The most annoying or limiting features of the ZX80 are its small memory size, screen blanking during program execution, its limited BASIC, and its keyboard.

The ZX80 comes with 1 K bytes of programmable static memory, although a memory-expansion board allowing 16 K bytes of memory is expected soon (see text box). These 1024 bytes of memory are shared by system variables, your BASIC program, the program variables, working space, the video-display memory and the stack. Although the space is used very efficiently, 1 K bytes of memory do not store a large program, no matter how efficiently it is squeezed.

Perhaps the most limiting characteristic of the ZX80 is the screen-blanking behavior. When the ZX80 is executing a program, the TV screen goes black. This happens because the processor is used to control the display as well as to do the processing, and the design decision was made to have the processor devote its time to only one of these. The effect of this trade-off is to increase processing speed at the expense of limiting the interactive quality of the ZX80. It is not going to have the same types of games as the Commodore PET or the Apple II computers. However, when performing long calculations on the ZX80, it is easy to tell when the program ends — the room bursts into light!

The limited features of ZX80 BASIC are also frustrating. This is a result of the limited amount (4 K bytes) of ROM (read-only memory) available. This memory contains the software used for the BASIC interpreter, for the character generator for the TV display, for decoding the keyboard, and for cassette reading and writing. This squeeze results in many useful BASIC functions being omitted.

When dealing with strings, for example, you can break up a string using two functions: CODE gives the ASCII (American Standard Code for Information Interchange) equivalent of the first character of the string; the TL$ (tail) function returns a string containing all but the first character of the string. As an example of functions left out, you cannot put two strings together (no concatenate operation or function exists). However, Sinclair intends to bring out an optional 8 K-byte floating-point BASIC on a single ROM. With more than double the space to work with, it should be a very rich and impressive language.

The last feature that I find annoying is the keyboard. It works — but @”#$. It is a touch-sensitive keyboard — smooth, washable, indestructible. But it is difficult to keep your fingers positioned properly on the keys, particularly on the shift key, without inadvertently pressing an extra key or two. The hardest keys to use are the cursor controls and the rubout keys (both are shifted characters). I always seem to end up with zeros where I want to remove a character (rubout is shift-zero). Remember, though, that some people pay more for a keyboard than this entire computer costs. This was a very wise place to save money on the design.

Some Technical Details

The ZX80 microcomputer uses a very efficient design with a total of only twenty-two standard integrated circuits, including the voltage regulator. The main processor is a Z80A processor running at a speed of about 3.2 MHz. The programmable memory is a pair of 4 K-bit static memory devices. The ROM is a single 4 K-byte part that includes both the BASIC interpreter and the other functions listed above.

The operation of the ZX80 is — so far as I understand it — quite complicated because it works on a mix of hardware and software. The overall concept is that the refresh counter of the Z80 is used to control the generation of the lines of the video display, producing dots on the TV screen at twice the frequency of the processor clock. The keyboard is scanned under software control as I/O (input/output) port number 1, a port that is also shared by the cassette input circuitry. The cassette output signal is the same as the video synchronization signal; it is also under software control. It is an interesting design, but you will need to study the ZX80 ROM carefully before you can really understand it.

The character set is also a little strange. The keywords that are entered with single strokes are stored as single tokens and are expanded when displayed. Photo 2 shows a program for generating all 256 codes.

The high quality of the black-and-white display can be seen in the photograph of the TV screen, which is a standard 12-inch color TV set (see photo 2b). The question marks are undefined codes, and the keywords (which are spelled out) are fairly obvious. The graphics characters allow a limited 46- by 64-pixel graphics resolution. However, since the ZX80 is not primarily designed for interactive graphics applications, the existing resolution on the ZX80 should be sufficient.

Software Features

The ZX80 system is excellent for learning introductory programming concepts. This is in large part due to the immediate feedback about errors. For the student at the introductory level, the limited features of the language are useful in preventing confusion; compare this with the extreme detail taken to describe some complicated versions of BASIC. When you are ready to progress at a later time, the expanded version of BASIC will be available.

ZX80 BASIC not only prevents you from making syntax errors, but it also prompts you with a cursor that tells you what it is expecting — a keyword (denoted by a K inside the square cursor) a literal (denoted by an L), or a numeric literal (denoted by an LS). When a program is expecting string input, it puts the cursor between quotes, then expands the quotes as you enter the text. With the ZX80, you never get the string errors during data entry that are so common with other personal computers.

The method of editing programs is also well planned. A cursor, controlled by the t and I cursor keys, is used to point to the “current” line. When the Edit key is pressed, the current line moves down to the bottom of the screen to the program-entry line. There is always at least one line between the program and the text-entry line, so you will not get the areas confused.

Once the line is in the program-entry area, the line is treated exactly like a program line that you are typing except that the cursor is at the beginning of the statement. The cursor control keys — and -* are used to move the cursor within the line. Typing anything just inserts it at that point in the line, and the rubout key is used to delete the previous character. When you are finished editing, just press Newline and the edited line replaces the old line in the program (see photo 3). If you modify the line number during editing, you create a new line in the program. This feature makes it very easy to duplicate lines in a program.

The best way to describe the features of the ZX80 BASIC language is to add to the comparison table used by Creative Computing in their “BASICs Comparison Chart” (July 1980 issue, pages 28 and 29). The major features of the Sinclair Research ZX80 4 K-byte BASIC are given in table 1.

Performance of the ZX80

At some time, all users become concerned about the speed of their computers. There is no simple way to compare the speed of various personal computers without running actual programs. Two standard benchmarks have been used to compare a wide range of computers running BASIC. These have been run on the ZX80 to get a valid estimate of its speed.

The system clock frequency of the Z80A processor is 3.2 MHz. This compares to about 1.77 MHz for the Radio Shack TRS-80 Model I or to the 4 MHz of the TRS-80 Model II, both of which also use the Z80 as the main processor. A Z80 running at 2 MHz should be similar in speed to a 6502 running at 1 MHz (as used in the Commodore PET or the Apple II). These estimations, however, do not consider the efficiency of the BASIC interpreter, which is often the most important speed factor. Thus, the execution-timing test of actual BASIC benchmark programs is the most important way of comparing the speed of various personal computers.

The ZX80 ranked between second and third places in the BASIC benchmarks done for Kilobaud magazine (see “BASIC Timing Comparisons” by Tom Rugg and Phil Feldman, October 1977, page 20). It was beaten only by a 6502 microprocessor running at 2 MHz (an Ohio Scientific Challenger II running its 8 K-byte BASIC), and by a Z80 running at 4 MHz (Zapple 8 K-byte BASIC). For those interested in the actual times of the benchmark programs, they are given in table 2.

The prime-number program used for benchmarking BASIC processors by Interface Age was also run (see “Assignment: Benchmark,” by Tom Fox, June 1980, page 130). [A similar benchmark program was given in “TRS-80 Performance: Evaluation by Program Timing” by James R Lewis, on page 84 of the March 1980 BYTE….GW] This benchmark is particularly interesting because it was run on several of the fastest small computers, as well as on a DEC (Digital Equipment Corporation) PDP-10 computer. The program given in the Interface Age article had to be modified slightly to allow for integer BASIC. However, the only major effect was to change an INT function to an integer multiply. The execution time for the program running on the ZX80 was 1604 seconds. Although this was not very fast compared with many of the computers in this benchmark, it was not the slowest either (the TRS-80 Model I took 1928 seconds). The execution time was decreased to 1513 seconds by removing the comment statements from the program (a 5 % increase in speed) . This is a typical way of speeding up BASIC interpreters.

The ZX80 might be summarized as a high-performance, very low-cost, portable personal computer system. It is best used for home or school use in learning the concepts of programming. When the memory-expansion and floating-point-BASIC modules become available (see the “New Sinclair Modules” text box), it will also be good for low-cost mathematical, scientific, and engineering applications. If you are looking for your own home computer, the ZX80 is a good starting point.

Products

 

Downloadable Media

 

Tags

People

Scroll to Top