Was the ZX Spectrum any good? Yes, and almost none of the credit belongs to whoever wrote the adverts. Sinclair Research launched it on 23 April 1982 at the Churchill Hotel in Marylebone: an 8-bit home computer built on a Zilog Z80A at 3.5 MHz, with a single Ferranti uncommitted logic array doing nearly everything else on the board. £125 bought 16 KB of RAM. £175 bought 48 KB. Both versions shipped wearing a 40-key rubber keyboard that a generation would come to describe, with some accuracy, as dead flesh.

CPU: Zilog Z80A at 3.5 MHz

RAM: 16 KB or 48 KB

ROM: 16 KB, holding Sinclair BASIC, written by Steve Vickers of Nine Tiles

Display: 256 x 192 pixels, 15 colours, held in a separate 32 x 24 attribute grid

Sound: one-bit beeper covering ten octaves, toggled by the CPU

Launch: 23 April 1982, £125 (16 KB) and £175 (48 KB)

That price is the whole story. The BBC Micro Model B had gone on sale in December 1981 at £335 and was up to £399 by the following January, and the Model A went from £235 to £299 in the same move because Acorn found it couldn’t build them for the lower figure. Sinclair walked in four months later at £125. Something had to give for that to be possible, and quite a lot did. What is remarkable is how much of it was given up cleverly.

How one Ferranti chip made the Spectrum cheap

Ferranti ULA chip detail on the Spectrum board

Sinclair had already run this play once. The ZX80 was 21 off-the-shelf chips sitting on a board, and for the ZX81 a Ferranti gate array swallowed 18 of them whole. The Spectrum’s ULA is the grown-up version of that trick.

Richard Altwasser designed it. Clive Sinclair’s contribution to the specification was that it would be a Ferranti gate array using current mode logic, and beyond that Altwasser and Steve Vickers were left to decide what the machine actually was. What went inside that 40-pin package is genuinely a lot: video generation including a three-channel DAC producing Y, U and V, which Altwasser patented, DRAM addressing and refresh, the keyboard matrix scan, tape input and output, the beeper, and control of the Z80’s own clock. Pull the ULA and you have a Z80 with a ROM and no way to talk to anything.

There is a story about the first test die that I would dismiss if Altwasser had not told it himself. Ferranti had made an error in one of the interconnect layers, leaving some stages unconnected, and the design should have failed on the bench. A speck of dust had landed exactly across the missing link and bridged it. The die tested good, the design was signed off, and the Spectrum happened.

Why ZX Spectrum colours bleed into each other

ZX Spectrum colour clash example on screen

Colour clash. Everyone knows the symptom. Here is the mechanism.

The bitmap starts at 0x4000 and runs for 6144 bytes, one bit per pixel, monochrome. Colour lives separately, in 768 bytes starting at 0x5800: one byte for each 8 by 8 pixel cell on a 32 by 24 grid. Bit 7 of that byte is flash, bit 6 is bright, bits 5 to 3 hold the paper colour and bits 2 to 0 hold the ink colour, three bits each, so eight colours at two brightness levels. Bright black and ordinary black look identical, which is why the count comes out at 15 rather than 16.

Add it up: 6912 bytes for the entire display. A 256 by 192 screen carrying colour per pixel would have needed several times that, on a machine whose whole memory was 16 KB in the version most people bought. Altwasser took the approach Teletext had already proven and made the same bet human vision makes, that we resolve brightness far more finely than colour. He is unrepentant about it, and he is entitled to be: ‘Given the same circumstances I would be happy to take the same design decisions again.’

What you see when a sprite crosses a background is that arithmetic showing through. Move a white shape one pixel into a cell painted blue on black and the whole cell has to pick a side, so eight by eight pixels change colour at once. Programmers learned to work with it rather than against it. Monochrome sprites over black backgrounds. Colour laid down in horizontal bands. Movement quantised to cell boundaries wherever the game could stand it. Some of the best-looking Spectrum software is the software that stopped pretending the attribute grid was not there.

Why a 3.5 MHz Z80 does not run at 3.5 MHz

The ULA has to fetch display data on time, every frame, and it is not open to negotiation about it. So it takes priority, and the arbitration is blunt. The address range 0x4000 to 0x7FFF is contended: while the raster is inside the display area, any Z80 access into that range has the CPU clock disabled until the ULA has finished with the bus. During the active display, contention applies for six T-states out of every eight.

On a 48 KB machine the upper 32 KB is uncontended, which is exactly why anything performance-sensitive lives up there while the contended lower bank holds the screen and whatever can afford to wait. On a 16 KB machine, all your RAM is contended, all of the time. That is not a small asterisk to put next to a clock speed.

The original 5C102E ULA got its I/O contention timing wrong, which is why Issue 1 boards carry an extra component tacked on by hand, known in the trade as the dead cockroach for reasons obvious to anyone who has had the lid off one. Ferranti fixed it in the 5C112E series, a spider mod appeared on some early Issue 2 machines, and the 6C parts eventually settled matters. The 6C001E-7 is the only ULA documented to work across all 48K issues, so if you are buying a spare, that is the number to want.

The screen layout has the same fingerprints on it. The 6144-byte bitmap splits into three blocks of 64 lines, and within each block the pixel rows are interleaved rather than stored in reading order. It looks perverse right up until you are the one writing the rendering loop, at which point stepping down one pixel row inside a character cell is inch and nothing else. The layout suits the hardware generating the addresses and it suits the inner loop. It suits nobody trying to read a screen dump.

The rubber keyboard was an accountant’s decision

ZX Spectrum rubber keyboard close-up

Rick Dickinson’s pre-release brochures show a Spectrum with hard keys. That was not a mock-up somebody got wrong. That was the design. What shipped instead was a moulded rubber mat sitting over a two-layer polyester membrane, 40 keys arranged as eight rows by five columns, read through port 0xFE with the upper address lines selecting which half-row to look at.

I have no complaint about the electrical design. Single-keyword entry, where one press drops a whole BASIC token into the line, answers two problems at once: less typing on a bad keyboard and less parsing to fit inside a 16 KB ROM. Dickinson’s case is still one of the better-looking objects British industrial design managed that decade, and the rainbow flash across the corner earned its keep in every advert Sinclair ever ran.

The membrane is the problem, and it is still the problem. The flexible tail folds up out of the keyboard and slides into a connector on the board, and the fold is where the printed traces crack. Four decades of that and a whole row of keys dies together, which is the classic fault people misdiagnose as a dying ULA. Replacement membranes cost less than a takeaway and take twenty minutes to fit. The tail is still the weakest thing in the machine.

Sinclair proved the point himself. A hard keyboard turned up in October 1984 on the Spectrum+, at £179. It was always buildable. It just was not buildable at £125, and £125 was the number the entire company had been organised around.

The 48K Spectrum runs on chips that failed their own test

The lower 16 KB is eight 4116 DRAMs, which want +5 V, -5 V and +12 V, the last of those generated on the board by a small DC-DC converter. Those chips are fragile and they hate anything going wrong at the edge connector. When they fail, the machine typically boots to wide black and white bars with random attributes, or to vertical lines, which is one of the more helpfully specific fault signatures in 8-bit computing.

The upper 32 KB is where it gets interesting. Those eight chips, TMS4532 from Texas Instruments or the OKI equivalent, are 64 Kbit 4164 dies that failed test in one half. Rather than scrap them, the manufacturer packaged them, marked them as 32 Kbit parts, and brought out a pin to select whichever half worked. Sinclair bought them at the discount that implies and put a link on the board to make the selection: one link on Issue 2, a pair from Issue 3 onwards to choose TI or OKI and then the good page. One link, eight chips. Every device in the batch had to be bad in the same half or the board would not run.

Read that again and decide who you are annoyed with. The engineering that built a reliable 48 KB machine out of deliberately defective memory is excellent work. The purchasing instinct that made it necessary is the same instinct that eventually stopped being cleverness and started being a liability.

What actually kills a Spectrum on the bench

Heat, mostly. The 7805 takes 9 V in and drops it to 5 V linearly, which at a 1 A load means something like 4 W leaving as heat through that slab of aluminium bolted to it. It is a solid part and it rarely dies outright, but it runs warm enough to feel through the case, and on Issue 1 and Issue 2 boards the overheating was bad enough to be a genuine reliability problem. Sinclair reworked the layout for Issue 3 in late 1983 specifically to bring power consumption down, and it worked. If you want a Spectrum to keep running, a modern switching regulator in place of the 7805 is twenty minutes well spent.

The ULA still runs hotter than anything else on the board, and that is the part that should worry you, because nobody has made one since Plessey ran the last batch off for Amstrad-authorised repair centres after 1988. When a 6C001E dies, it stays dead. That is what the modern replacements exist for, the vLA82 and its relatives, and fitting one while the original still works is prudence rather than paranoia.

Sinclair could design the Spectrum. Sinclair could not deliver it.

Here is where the cynicism finds its proper target.

Sinclair planned for 20,000 units a month. Machines began shipping around six weeks after the launch, and by July 1982 there were 30,000 orders outstanding. Then the Timex plant in Dundee, which actually built the things, took its summer holiday, and the backlog reached 40,000. In September Clive Sinclair issued a public apology and offered refunds. In October he wrote to customers explaining that some of them would be waiting up to twelve weeks for a computer they had already paid for.

Mail order was quietly given up for the high street. In May 1983 the prices came down again, to £99.95 for the 16 KB and £129.95 for the 48 KB. Demand was never the issue: the year to 31 March 1983 brought in £54.53m of sales and £13.8m of profit. The company simply could not build them fast enough, having designed a machine whose entire reason to exist was that ordinary people could afford one.

ZX Spectrum advertising or packaging, early 1980s

So was £125 well spent?

Yes, and more than five million people worked that out.

The Spectrum is the rare machine where you can see the budget from across the room. The attribute grid is a memory constraint you can watch happening on a television. The contention is a bus arbitration decision you can hear in a frame rate. The keyboard is a bill of materials you can feel under your thumb. None of it is hidden, and I find that more honest than most of what has been sold since.

What I will not have is the version of this story where the compromises become jokes at the engineers’ expense. Altwasser was asked to build a colour computer, with 16 KB, at a price that made the BBC Micro look like a company car. He delivered one that sold in the millions and is still running. The rubber keyboard, the attribute clash and the half-good RAM are all the same answer to the same question, and the question was never his to set.

Put a Spectrum on the bench today and what stops you will be a cracked membrane tail or a ULA that has finally cooked itself. Both are fixable. The design underneath is still sound, and after forty-four years that is the only review worth writing.