Referred to during development as the ZX81 Colour and ZX82, it was launched as the ZX Spectrum by Sinclair to highlight the machine’s colour display, compared with the black and white of its predecessor, the ZX81. The Spectrum was released as eight different models, ranging from the entry level with 16 KB RAM released in 1982 to the ZX Spectrum +3 with 128 KB RAM and built in floppy disk drive in 1987; together they sold over 5 million units worldwide (not counting clones).
The Spectrum was among the first mainstream-audience home computers in the UK, similar in significance to the Commodore 64 in the US. The introduction of the ZX Spectrum led to a boom in companies producing software and hardware for the machine, the effects of which are still seen. Some credit it as the machine which launched the UK IT industry. Licensing deals and clones followed, and earned Clive Sinclair a knighthood for “services to British industry”.
The Commodore 64, Dragon 32, Oric-1, Oric Atmos, BBC Micro and later the Amstrad CPC range were rivals to the Spectrum in the UK market during the early 1980s. While the machine was officially discontinued in 1992, new software titles continue to be released – over 40 so far in 2018.
The Spectrum is based on a Zilog Z80 A CPU running at 3.5 MHz (or NEC D780C-1 clone). The original model has 16 KB (16×1024 bytes) of ROM and either 16 KB or 48 KB of RAM. Hardware design was by Richard Altwasser of Sinclair Research, and the outward appearance was designed by Sinclair’s industrial designer Rick Dickinson.
Video output is through an RF modulator and was designed for use with contemporary television sets, for a simple colour graphic display. Text can be displayed using 32 columns × 24 rows of characters from the ZX Spectrum character set or from a set provided within an application, from a palette of 15 shades: seven colours at two levels of brightness each, plus black. The image resolution is 256×192 with the same colour limitations. To conserve memory, colour is stored separate from the pixel bitmap in a low resolution, 32×24 grid overlay, corresponding to the character cells. In practice, this means that all pixels of an 8×8 character block share one foreground colour and one background colour. Altwasser received a patent for this design.
An “attribute” consists of a foreground and a background colour, a brightness level (normal or bright) and a flashing “flag” which, when set, causes the two colours to swap at regular intervals. This scheme leads to what was dubbed colour clash or attribute clash, where a desired colour of a specific pixel could not necessarily be selected. This became a distinctive feature of the Spectrum, meaning programs, particularly games, had to be designed around this limitation.
Other machines available around the same time, for example the Amstrad CPC or the Commodore 64, did not suffer from this limitation. The Commodore 64 used colour attributes in a similar way, but a special multicolour mode, hardware sprites and hardware scrolling were used to avoid attribute clash.
Sound output is through a beeper on the machine itself, capable of producing one channel with 10 octaves. Software was later available that could play two channel sound. The machine includes an expansion bus edge connector and 3.5 mm audio in/out ports for the connection of a cassette recorder for loading and saving programs and data. The “ear” port has a higher output than the “mic” and is recommended for headphones, with “mic” for attaching to other audio devices as line in.
The machine’s Sinclair BASIC interpreter is stored in ROM (along with fundamental system-routines) and was written by Steve Vickers on contract from Nine Tiles Ltd. The Spectrum’s chiclet keyboard (on top of a membrane, similar to calculator keys) is marked with BASIC keywords. For example, pressing “G” when in programming mode would insert the BASIC command
The BASIC interpreter was developed from that used on the ZX81 and a ZX81 BASIC program can be typed into a Spectrum largely unmodified, but Spectrum BASIC included many extra features making it easier to use. The ZX Spectrum character set was expanded from that of the ZX81, which did not feature lower-case letters.
Spectrum BASIC included extra keywords for the more advanced display and sound, and supported multi-statement lines. The cassette interface was much more advanced, saving and loading around five times faster than the ZX81 (1500 bits per second compared to 307), and unlike the ZX81, the Spectrum could maintain the TV display during tape storage and retrieval operations.
As well as being able to save programs, the Spectrum could save the contents of arrays, the contents of the screen memory, and the contents of any defined range of memory addresses.