Technology · Exhibit 44-D · Sinclair ZX Spectrum · A memoir

Where I learned to program.

The ZX Spectrum is the computer that taught me to program. It is also where I lost days to Manic Miner, Atic Atac and Elite. I got my 48K for Christmas from the WHSmith in King's Lynn, and I am still writing versions of those games today.

The Sinclair ZX Spectrum 48K: a black wedge with grey rubber keys, multicolour BASIC keyword legends and the rainbow flash in the bottom-right corner
Photo: Bill Bertram, 2008 · CC BY-SA 2.5
A ZX Spectrum BASIC listing: REM comments, INKEY$ keypress handling, PRINT AT, and the 0 OK, 0:1 prompt
What coding really looked like: BASIC, single-keyword entry, and 0 OK, 0:1
Filed under
Technology · Micros
Reference
REF 44-082
The machine
48K, rubber keys, £175
Memoir by
01

The one that mattered

A 48K for Christmas, and £175 of it

I had used a ZX80 and a ZX81 on friends' machines, but the Spectrum was the first one that was mine, and the one I really lived with. I got the original rubber-keyed 48K model for Christmas from the WHSmith in King's Lynn. It cost £175. In today's money that is probably the cost of a PS5, so it was not a small present, and I knew it.

The Spectrum launched in April 1982, at £125 for the 16K and £175 for the 48K. Almost nobody bought the 16K once they had done the sum: four times the memory for fifty pounds more.

After the ZX81 it felt like science fiction. It had colour, it had sound, and it had keys you could actually press. Sinclair had taken a whole keyboard down to a few bits of moving rubber to hit the price. It was a keyboard, it was colour, and it was mine.

02

Switching it on

Tune the television, and leave it alone

You did not plug it into a monitor. You tuned a television to it, nudging the dial around UHF until the Sinclair copyright line appeared, and then you left that television alone forever in case you lost the picture.

The keyword entry came straight from the ZX81. You did not type P-R-I-N-T. You pressed the P key and the whole word appeared as a single token. A flashing cursor told you which mode you were in: K for keyword, L for letters, C for capitals, E for the extended symbols, G for the block graphics. It looked baffling on the first day and was second nature within a week. The manual was good, and you needed it.

03

Loading, and waiting, and loading again

R Tape loading error

There was no disk and no real storage, just a cassette recorder and a lead. You typed LOAD "", pressed play, and watched the border turn to stripes while the television screeched the data at you. A 48K game took about five minutes to load. Then, very often, right at the end of those five minutes, you got the words every Spectrum owner remembers: R Tape loading error. You learned the volume your cassette deck liked, you looked after that deck, and you saved anything important twice.

04

What you forgave it

Colour clash and a single beeper

The Spectrum had one famous limitation. The screen was 256 by 192 pixels, but colour was stored separately, in a grid of 8 by 8 cells, and each cell could only hold two colours at once. Move something across a cell boundary and its colours snapped to whatever that square allowed, so anything moving left a fringe of the wrong colour behind it. Colour clash, everyone called it. The best programmers worked hard to hide it. You stopped noticing it after a while. Now it is one of the things that makes a screenshot instantly recognisable as a Spectrum.

The Winter Sports loading screen: skiers seen through ski goggles, with the cyan snow and red title showing the Spectrum's two-colours-per-cell limit
Colour clash in the wild: the Winter Sports loading screen (Electric Dreams, 1986)

The sound was a single beeper, one bit switched on and off fast enough to make a tune. It should not have been able to play music at all. People like Tim Follin made it sing anyway.

05

The games

Twenty thousand titles and a playground war

This is what the machine was really for. There were more than twenty thousand titles, a lot of them written by people barely older than I was, working on their own. Manic Miner and Jet Set Willy came from a teenage Matthew Smith. Knight Lore from Ultimate did isometric rooms nobody thought the hardware could manage. Elite put a whole galaxy into a few kilobytes. Mastertronic put real games on the newsagent's shelf for £1.99, which is the only reason a kid with pocket money could build a collection.

You read Crash and Your Sinclair the way other people read the football results. You typed in the listings they printed, and you debugged them when a line had been misprinted, which taught you more than any lesson did.

In every playground there was the war: Spectrum against Commodore 64. We had more games, a lower price, and the fact that it was British. They had the better sound chip and sprites that did not clash. Both sides were right, which is why it never ended. The Amstrad CPC came along later with its monitor in the box and quietly took a slice of both of us.

06

What I did with mine

Ultimate, Rare, and Elite I am still writing

The games I loved were Manic Miner and Jet Set Willy, and I loved the wait for Jet Set Willy 2. When it came, the game was too big, and some of the screens were just filler.

I did not buy everything, mind. Game copying was rampant, so I bought a few of the very best and the rest went round on tape. Jet Set Willy came with a colour code card to stop you copying it, and I can still remember sitting in lessons at school colouring in my own version of the card.

The ones I loved most were from Ultimate Play the Game. After university I even had an interview at Rare, which is what Ultimate became, and I was interviewed by the Stamper brothers themselves. Rare turned me down. I had gone into it knowing I needed to experience a real job interview, and knowing I would do better at the next one once I had got the first one wrong. That is exactly what happened. I mucked up the Rare interview, learned from it, and got the second job I went for because of it. That job was in the online industry just as it was becoming the web, and it set me on the road I have been on for my entire career. So the interview that rejected me was the pivotal one.

Atic Atac, Jetpac and Lunar Jetman were the best of them. I also loved Skool Daze 1 and 2, The Great Escape, and the very basic Gulpman.

One of the very, very best was Elite. I spent days and days glued to the screen, marauding the universes. Of course I played plenty of other games, but these are the ones I kept coming back to.

I loved those games so much that on my public GitHub repos I have written Go versions of Manic Miner, Atic Atac, Gulpman, Sabre Wulf and Jetpac. I have been trying to write my own Elite for years. Each time I get a bit closer, and each time I never quite get it right. The version I am working on now is for the Apple Vision Pro.

07

Where it really mattered

Restricted environments make you optimise

The ZX Spectrum was more than a games machine. For me, and for a lot of people like me, it is where I learned to program. I cut my teeth on ZX Spectrum BASIC and some assembler. Restricted environments make you a better programmer. They make you optimise. Those lessons have stayed with me for my entire career in software, and occasionally hardware.

08

What became of it

Amstrad, and a modern afterlife

Sinclair gave it a proper keyboard with the Spectrum+ in 1984, and three channels of real sound with the 128K in 1985. Then, in April 1986, he sold the whole thing to Amstrad, who built the +2 with a tape deck built in and the +3 with its odd little three-inch disks. The machine that got so many of us programming ended up as a games console with a keyboard, which is not a bad way to be remembered.

Clive Sinclair died in 2021. The tributes were not really about a computer. They were about the bedrooms it filled and the careers it started. There is a modern version now, the Spectrum Next, with a keyboard you would actually want to type on. I am glad it exists. I am also glad I learned on the one that felt like dead flesh, screeched at me for five minutes, and then said R Tape loading error.