Skip to content
Systems

Sinclair ZX Spectrum

Rubber-keyed brilliance, on a budget

Clive Sinclair's £125 Spectrum brought colour computing to British bedrooms in 1982, igniting the type-in era and a decade of homegrown game development.

sinclair-zx-spectrumhome-computerz80tape-storagebudget-machine1982–1992

Launched in April 1982 by Sinclair Research, the ZX Spectrum was Clive Sinclair’s successor to the monochrome ZX81. For £125 (16K) or £175 (48K) — about a third the price of a Commodore 64 at the time — it gave British households a colour computer with a Z80 CPU, 256×192-pixel graphics, and a built-in BASIC interpreter. It became the defining machine of the UK’s bedroom-coding generation, with over five million sold across the decade.

The Spectrum’s character was set by its constraints: a single-bit beeper instead of a sound chip, eight colours instead of sixteen, and a colour-attribute scheme (described below) that produced both the platform’s distinctive look and its most-discussed quirk. Within those constraints, programmers in Crash, Sinclair User, and Your Sinclair showed the platform’s range — from text adventures (The Hobbit) to arcade clones (Manic Miner), from racing games (Chequered Flag) to isometric breakthroughs (Knight Lore).

Fast facts

  • CPU: Zilog Z80A at 3.5 MHz.
  • RAM: 16K or 48K (original models); 128K from 1985.
  • Graphics: 256×192 pixels in a 32×24 character cell grid. Eight INK colours + eight PAPER colours, with a single BRIGHT bit and a FLASH bit per cell. One INK and one PAPER colour per cell — the attribute system.
  • Sound: 1-bit beeper via port $FE bit 4 on 48K models; AY-3-8912 three-channel chip on 128K models from 1985.
  • Storage: Audio cassette tape (4-minute load typical); 3-inch floppy on the +3.
  • Keyboard: 40 rubber keys (original); proper typewriter keys on the +2/+3.
  • Models (chronological): 16K (1982), 48K (1982), Spectrum+ (1984), 128K (1985), +2 (1986, Amstrad), +3 (1987, Amstrad), +2A/+2B (1988, Amstrad).

The attribute system

The Spectrum’s defining hardware feature — and the foundation of its look. The 256×192 pixel display is divided into a 32×24 grid of character cells, each one 8×8 pixels. Each cell has one attribute byte in a separate region of memory ($5800-$5AFF) controlling:

  • 3 bits INK — foreground colour (0-7)
  • 3 bits PAPER — background colour (0-7)
  • 1 bit BRIGHT — applies to both INK and PAPER
  • 1 bit FLASH — swaps INK and PAPER about twice a second

Two colours per cell, hardware-enforced. The consequence — known affectionately as “attribute clash” — is that sprites moving over backgrounds either drag their attributes with them (changing the colour of whatever they touch) or vanish into same-colour terrain. A whole design discipline grew around this. Knight Lore used monochrome rooms to dodge the issue; Skool Daze embraced clash as part of its cartoon look; Head Over Heels and Lords of Midnight designed levels around the grid.

For programmers, the attribute system is what every Spectrum game uses to encode meaning on screen. A red flashing cell is a hazard. A cyan cell is a door. A gold-coloured cell is treasure. The Shadowkeep tutorial track teaches the platform through this lens.

The screen is not laid out the way you would draw it

The Spectrum’s own manual introduces the display file by admitting it is “rather curiously laid out”, and the curiosity is the second thing every Spectrum programmer has to internalise after attribute clash.

6144 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: not to the row below, but eight rows down. Consecutive blocks step through pixel row 0, then 8, then 16, and so on to the bottom of a third of the screen, at which point the addressing returns to the top of that third and fills in row 1, then 9, then 17. The screen is three such thirds of eight character rows each, and the whole pattern repeats in each.

So an address decomposes into fields rather than a 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. Plotting a point means assembling an address from pieces, which is why every Spectrum book has a routine for it and why a naive port of anything written for a linear framebuffer runs wrong.

The layout is not an accident of the ULA, and the period technical press was clear about why it exists. Moving down one pixel row inside a character cell is an increase of exactly 256 — an increment of the high byte alone. The Home Computer Advanced Course made the point directly: 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 is INC H, four T-states; the 16-bit addition it replaces costs eleven. The layout that makes the screen awkward to reason about is the layout that makes drawing on it fast, and the machine spends far more time drawing than reasoning.

The other constraint

Attribute clash is the constraint everyone remembers, because you can see it. The one that decides whether a game runs at the speed its author intended is invisible, and it is about time rather than space.

The ULA and the Z80 share one memory bus, and during the active display the ULA has priority. Any access the Z80 makes to contended memory — $4000$7FFF on a 48K machine, which is the lower 16K, the half containing screen memory — is stalled until the ULA is done. The delay follows a fixed pattern that repeats every eight T-states, so identical code runs at different speeds depending on where in the scanline it lands and which memory it touches.

The practical consequence shapes how Spectrum games are written: timing-critical code and its data go in the upper 32K, above $8000, where there is no contention at all. A program can be made fast by moving it, without changing a single instruction. The ULA entry has the per-model patterns, including the Amstrad-designed +2A/+3, whose contention differs from every Sinclair-era machine.

This is the Spectrum’s counterpart to the C64’s badlines. Both machines make you think about when your code runs; the Spectrum lets you escape by choosing where it lives, and the C64 does not.

Why it mattered

  • Price disruption. At £125 in 1982, the Spectrum cost less than half a contemporary BBC MicroComputer & Video Games was carrying dealer advertisements at £299 for the Model A and £399 for the Model B in January 1983. It went into homes that would never have bought a more expensive machine.
  • A whole industry. Software houses founded on Spectrum revenue — Ocean, Hewson Consultants, Gremlin Graphics, Ultimate Play the Game, Software Projects, Melbourne House, Mikro-Gen — defined British game publishing for the decade.
  • The magazine ecosystem. Crash, Your Sinclair, Sinclair User, Personal Computer Games, ZX Computing — half a dozen monthly magazines with circulation in the tens of thousands each, full of type-in listings, reviews, and tips. The magazines made the platform’s culture.
  • The bedroom coder. A whole generation learned to program at a Spectrum’s rubber keys. Many went on to found studios, write engines, or define genres. The Spectrum is the machine in the back-cover photo of more game-development autobiographies than any other.
  • Eastern Europe. When the Soviet Union and its satellite states couldn’t import Western computers, Polish and Russian electronics engineers built clones. The Pentagon (Russia), Didaktik (Czechoslovakia), Hobbit, and dozens more kept the architecture alive into the 1990s after Western sales had declined.

Models and variants

  • 16K / 48K (1982-84) — The original rubber-key models. The 48K is the most-supported configuration; few games target only the 16K.
  • Spectrum+ (1984) — Same 48K innards, larger plastic keys, reset button. Cosmetic refresh.
  • 128K (1985) — Doubled RAM, AY-3-8912 sound chip, RS-232 port, MIDI-out, the famous “+” loader menu. Bank-switching support for games to use the extra memory.
  • +2 (1986) — Amstrad-built after acquiring Sinclair Research; built-in cassette deck, dark grey case, fully-typewriter keyboard.
  • +3 (1987) — Built-in 3-inch floppy drive (the same drive as the Amstrad CPC 6128). Different ROM, some compatibility shifts.
  • +2A/+2B (1988) — Cost-reduced revisions sharing the +3 ROM family.

Modern legacy

  • Emulation: Fuse (cross-platform, the de facto standard), Spectaculator (Windows), ZEsarUX (advanced/research), MiSTer (FPGA). All preserve cycle-accurate timing.
  • Spectrum Next (2017–): A community-funded FPGA recreation in a hardware case that adds new graphics modes, SD card storage, and 28MHz turbo while remaining Spectrum-compatible. Distributed via Kickstarter and shipping in waves.
  • Homebrew: New Spectrum releases appear annually. Crash Live events and demoscene parties keep development active. Modern toolchains (z88dk, sjasmplus, pasmonext) make development approachable.
  • Cultural footprint: The Spectrum defines UK game culture in a way no other machine does. From its hum-and-stripes loader to Stop the Express’s comedic moves, it’s the platform older British developers still talk about first.

See also

Not yet fact-checked. This entry was drafted by an AI and nobody has verified it. The dates, figures and technical details may be wrong. Use it to find your bearings, then confirm anything that matters against a primary source.