Sinclair Research launched the ZX Spectrum in April 1982 as the colour successor to the black-and-white ZX81. Sinclair’s adverts that autumn gave the price as “an amazing £125” for the 16K model and “only £175” for the 48K. For comparison, dealers in the January 1983 Computer and Video Games were selling the BBC Micro at £299 for the Model A and £399 for the Model B. For less than half the price of a BBC Micro you got a Z80 processor, a 256×192 colour display and Sinclair BASIC in ROM.
Those adverts sold the Spectrum as a computer to program and to keep household files on. They did not mention games. The games came anyway, many of them written by small teams or by one person. In the words of a 2021 Wireframe retrospective, “lone programmers [were] quite able to make a game, get a few cassettes duplicated, maybe make a photocopied inlay, and sell it through the classified section in newspapers or magazines.” Estimates of total sales differ. In March 1988 CRASH counted “some four million Spectrums” in Britain, against about 130,000 Amigas and STs. Later histories give around five million worldwide.
The Spectrum’s look and sound came from a handful of hardware decisions: a colour attribute for every 8×8 character cell, a screen laid out in an order nobody would guess, and a one-bit speaker. From text adventures such as The Hobbit to platform games such as Manic Miner, racing games such as Chequered Flag and the isometric rooms of Knight Lore, Spectrum games were written around those decisions.
Fast facts
- CPU: Zilog Z80A at 3.5 MHz.
- RAM: 16K or 48K on the original models; 128K from the Spectrum 128 (Spain 1985, UK 1986).
- Graphics: 256×192 pixels over a 32×24 grid of character cells. Each cell has one INK and one PAPER colour from eight, plus a BRIGHT bit and a FLASH bit. That gives 15 distinct colours, because bright black is still black. This is the attribute system.
- Sound: a one-bit beeper, driven by bit 4 of port 254 (
$FE); the Spectrum 128 and later models add a General Instrument AY-3-8912 three-channel sound chip. - Storage: audio cassette; a built-in 3-inch floppy drive on the +3.
- Keyboard: 40 rubber keys on the original; hard plastic keys from the Spectrum+ onwards.
- Models: 16K and 48K (April 1982), Spectrum+ (October 1984), Spectrum 128 (Spain September 1985, UK February 1986), +2 (September 1986), +3 (May 1987), +2A (March 1988).
The attribute system
The 256×192 pixel display is divided into a 32×24 grid of character cells, each 8×8 pixels. Each cell has one attribute byte, stored in a separate region of memory ($5800-$5AFF):
- bits 0-2: INK, the foreground colour (0-7)
- bits 3-5: PAPER, the background colour (0-7)
- bit 6: BRIGHT, which applies to both INK and PAPER
- bit 7: FLASH, which swaps INK and PAPER every 16 frames, so a flashing cell blinks about one and a half times a second
A set pixel shows in the cell’s INK colour and a clear one in its PAPER colour. The manual puts the consequence plainly: “you cannot possibly have more than two colours in a given block of 64 dots.” Move a coloured sprite across a background and you have two choices at every cell it touches. Either the cell takes the sprite’s colours, recolouring the background around the sprite, or the sprite takes on the background’s colours. That is attribute clash, and every Spectrum game that moves things around the screen has to decide how to handle it.
The attribute byte is also cheap to read and write. A program can recolour a whole 8×8 cell with one byte, and it can tell what kind of thing is in a cell by reading that cell’s colour back.
A curiously laid-out screen
Sinclair’s own manual warns that the display file “is rather curiously laid out, so you probably won’t want to PEEK or POKE in it”. After attribute clash, that layout is the second thing every Spectrum programmer has to learn.
6,144 bytes from $4000 hold the pixels. A row of 256 pixels is 32 bytes, as you would expect. What is not expected is where the next 32 bytes go: eight rows down, not to the row below. The manual describes it: “First come the top scans of lines 0 to 7, then the next scans of lines 0 to 7, and so on to the bottom scans of lines 0 to 7; then the same for lines 8 to 15; and then the same for lines 16 to 23.” Fill the screen byte by byte from BASIC and you can watch it happen. The top line of the screen appears, then the line eight rows below it, then the line sixteen rows down, and only after that the second line from the top.
So a screen address is a set of fields, not a single number. The low three bits of the high byte give the pixel row within a character, the next bits give the character row, and the top bits give the third of the screen. Plotting a point means building an address from those pieces, which is why programming guides such as The Home Computer Advanced Course printed routines for it.
The layout comes from the hardware. The ULA reads each pixel byte and its attribute byte in one quick burst from the same dynamic RAM, and that only works if the two addresses share their low seven bits. Chris Smith’s reconstruction of the chip shows the pixel-row bits being moved into the middle of the address to make that true. The result also suits the programmer. Moving down one pixel row inside a character cell adds exactly 256 to the address, so only the high byte changes. The Home Computer Advanced Course made the point that the structure “enables rapid manipulation of screen data using single register instructions, rather than the lengthier (and slower) operations using register pairs”. On a Z80 that step is INC H, four T-states; the 16-bit ADD HL it replaces takes eleven.
Contended memory
Attribute clash is the constraint everyone remembers, because you can see it. The other one is invisible, and it is about time rather than space.
The ULA and the Z80 share the lower 16K of RAM, and while the ULA is fetching screen data it comes first. Any access the Z80 makes to $4000–$7FFF on a 48K machine (the block that holds screen memory) is held up until the ULA has finished. The delay follows a pattern that repeats every eight T-states, so the same code runs at different speeds depending on where in the scanline it lands and which memory it touches.
This shapes how Spectrum games are written: timing-critical code and its data go in the upper 32K, above $8000, which the ULA never touches. A program can be made faster just by moving it. The ULA entry covers the mechanism and the per-model differences, including the Amstrad-designed +2A and +3, whose contention works differently from every Sinclair-era machine.
Why it mattered
- Price. At £125 the Spectrum cost well under half as much as a BBC Micro, and it reached homes that would never have bought the more expensive machine.
- A games industry. Wireframe’s retrospective describes how “an entire community had built up around the ZX Spectrum: developers, publishers, and magazines dedicated to its growing library of games.”
- The magazines. Sinclair User, CRASH and Your Sinclair carried type-in listings, reviews and tips. The readerships were large. Audited figures reported in December 1983 put Sinclair User third among all micro magazines with 74,721 copies. CRASH later described its own sales rising from around 50,000 a month to over 100,000. In early 1990 Your Sinclair was quoting an audited 78,393.
- Clones across Europe. In the countries of the Soviet bloc, Spectrums were often smuggled in from the West, and local electronics firms made their own versions. Dozens of clones followed, some semi-official, such as Poland’s Komputer 2086, and some made without permission: the Didaktik machines in Czechoslovakia, the CIP in Romania, the Pentagon and Scorpion in the USSR and Russia. Some outlived the original.
Models and variants
- 16K / 48K (1982): the original rubber-key models. The 48K is the configuration most games target.
- Spectrum+ (1984): the 48K machine in a larger case, with 58 hard plastic keys and a reset button.
- Spectrum 128 (1985 in Spain, 1986 in the UK): developed with Sinclair’s Spanish partner Investrónica. Adds 128K of paged RAM, the AY-3-8912 sound chip, RS232 and MIDI ports, RGB video output and a start-up menu with a calculator. Its large heatsink earned it the nickname “toastrack”.
- +2 (1986): the first Amstrad model, after Amstrad bought the rights to Sinclair’s computers in April 1986. A case styled after Amstrad’s CPC 464, with a built-in cassette deck; inside, it is almost the same machine as the 128.
- +3 (1987): a built-in 3-inch floppy drive and a redesigned board built around an Amstrad gate array. The changes broke some older software.
- +2A / +2B (1988): the +3 design with a cassette deck in place of the disk drive. The +2B revision fixed a sound fault.
Modern legacy
- Emulation: Fuse, Spectaculator, ZEsarUX and MiSTer FPGA cores keep the Spectrum’s software running on modern hardware.
- Spectrum Next: an FPGA-based machine compatible with the original. By default its CPU runs at 3.5 MHz, “like the original Spectrum, but you can boost it to 7, 14 and 28 MHz.”
- Homebrew: new Spectrum games are still being released, and toolchains such as z88dk, sjasmplus and pasmonext make development far easier than it was on the original machine.
Sources
- Sinclair User, issue 51, June 1986, p. 47: launch dates of the ZX81 and Spectrum.
- Sinclair User, issue 8, November 1982, p. 38: Sinclair advertisement with the £125 and £175 prices and no mention of games.
- Computer and Video Games, issue 15, January 1983, p. 104: dealer advertisement, “Model A £299.00 / Model B £399.00”.
- CRASH, issue 50, March 1988, p. 32: “some four million Spectrums”, against about 130,000 Amigas and STs.
- Wireframe, issue 56, October 2021, pp. 30-31: “around five million units sold worldwide, all told”; lone programmers and mail-order cassettes; Sinclair’s adverts did not mention games.
- Sinclair ZX Spectrum BASIC Programming (Steven Vickers, Sinclair Research, 2nd edn 1983): two colours per character cell (p. 110); the display file layout (ch. 24, p. 164); the ATTR bit layout (p. 198); port 254 (ch. 23).
- The Home Computer Advanced Course, issue 76, p. 1518: the display file fill order and why the layout suits single-register instructions.
- Chris Smith, The ZX Spectrum ULA: How to Design a Microcomputer (ZX Design and Media, 2010): the logic design by Richard Altwasser (p. 73); the ROM by John Grant and Steven Vickers of Nine Tiles (p. 76); video addressing (ch. 15, pp. 137-142); the flash clock (ch. 14, p. 135); memory contention (ch. 18, pp. 190-192).
- Zilog, Z80 CPU User Manual (UM008011-0816):
INC r(p. 165) andADD HL,ss(p. 188) timings. - Sinclair User, issue 21, December 1983, p. 18: circulation of 74,721, third among micro magazines. CRASH, issue 46, November 1987, p. 84: circulation rising “from around 50,000 copies a month to over 100,000”. Your Sinclair, issue 50, February 1990, p. 28: audited circulation of 78,393.
- Alessandro Grussu, Spectrumpedia, volume 1 (English edition, CC BY-NC-ND 4.0): the design team (p. 22); clones (p. 38); 15 colours (p. 24); the Spectrum+ reset button (p. 36); the Spectrum 128’s features (p. 48); the Amstrad agreement of 7 April 1986 (pp. 51–52); model release dates (pp. 93, 115, 119, 131, 135, 143, 153); the +2 as a 128 in a new case (p. 134); the +3’s Amstrad 40077 gate array and its incompatibilities (pp. 142–143); the +2A and +2B (pp. 152–153).
- Sinclair User, issue 123, May 1992, p. 4: Amstrad’s announcement that Spectrum production would end.
- Next Magazine, issue 13, April 2026, p. 54: Spectrum Next CPU speeds.
See also
- Clive Sinclair: founder of Sinclair Research. Richard Altwasser designed the Spectrum’s hardware, John Grant and Steven Vickers of Nine Tiles wrote its ROM, and Rick Dickinson designed the case.
- Z80: the CPU at the heart of the machine.
- ULA: the Spectrum’s custom chip for video, sound, keyboard and tape.
- Attribute-aware design: designing around the attribute system.
- Beeper music: how one bit became a music platform.
- CRASH, Your Sinclair, Sinclair User: the main Spectrum magazines.
- Sinclair Research: Clive Sinclair’s company.
- Ultimate Play the Game: publisher of Atic Atac and Knight Lore.
- Atic Atac, Knight Lore, Manic Miner: Spectrum games with their own entries.