1K ZX Chess ZX81 Review: Checkmate in 672 Bytes
Reviews 8.5

1K ZX Chess ZX81 Review: Checkmate in 672 Bytes

At a glance: 1K ZX Chess · ZX81 · Artic Computing, 1982 · Chess · Score: 8.5/10

There are games that push hardware, and there are games that embarrass it. David Horne’s 1K ZX Chess, published by Artic Computing in 1982 for the unexpanded ZX81, does something ruder: it plays chess — real chess, against a computer opponent, with legal moves enforced — inside 672 bytes of code. Not 672 kilobytes. Bytes. The program is smaller than the paragraph you are reading about it will be by the time this review ends, and for thirty-three years it stood as the smallest complete implementation of chess on any computer anywhere, a record that survived the entire home-computer era, the PC era and most of the smartphone era before finally falling to BootChess in 2015.

Set the scene properly. The ZX81 ships with 1,024 bytes of RAM, and that is for everything: the program, its variables, and the screen memory itself, which on this machine is a file in RAM that grows and shrinks. Most owners bought the 16K RAM pack and never looked back; the 1K scene was a discipline, almost a dare. Horne took the dare at its hardest setting. Chess! The game of 64 squares, six kinds of piece, and a branching tree of moves that had filled minicomputers. His program implements the movement and capture rules, presents a drawn board with recognisable pieces, accepts your moves from the keyboard, and replies with moves of its own. Something had to give, and what gives is telling: there is no castling, no en passant, and no pawn promotion. The queen you fight to the eighth rank must stay a pawn, forever, a tiny monument to the cost of everything else.

1K ZX Chess on ZX81: the chessboard drawn on the unexpanded 1K machine

How do you fit chess in a matchbox?

Horne explained the trick himself, in a series of articles in Your Computer magazine across 1982 and 1983 in which the complete source code was published as a type-in — an extraordinary act of transparency that turned a commercial cassette into a masterclass. The program is Z80 machine code held inside a BASIC REM statement, the era’s standard smuggling route. The board display does double duty as data. The opponent is not deep: the game opens, as Horne admitted, with a fixed first move — a king’s pawn or queen’s pawn push — because there were no bytes left for an opening book, and its subsequent play is a compact evaluation rather than a search of any real depth. None of that diminishes the achievement. It defines it. Every admired feature in this program was paid for by amputating another, and the amputations were chosen by a programmer who understood exactly which parts of chess a casual opponent would miss least.

Judged purely as an opponent, it is beatable — of course it is; serious chess engines of the day ran in many kilobytes and were still beatable. That was never the point. The point, understood by everyone who loaded it in 1982, was that the thing existed at all: that the cheapest computer in Britain, in its cheapest configuration, the one the snobs said could do nothing constructive, could sit across the board from you and play the world’s oldest strategy game to a legal finish.

672 bytes. A board, the rules, and an opponent. For thirty-three years, nobody anywhere wrote a smaller chess program — because Horne had already removed everything that could be removed.

The record, and what broke it

The afterlife of 1K ZX Chess is a story about respect. When Olivier Poudade’s BootChess finally undercut it in 2015 at 487 bytes, the coverage — ChessBase’s history of the smallest engines is representative — treated Horne’s program as the champion being honoured, not mocked, and Poudade framed his own work as homage. Note the fine print the record-keepers insist on: BootChess handles pawn promotion, which 1K ZX Chess cannot, but neither can castle; the comparison across three decades and wholly different architectures is really a comparison of philosophies, and Horne’s program remains the smallest chess that runs on a machine you could buy in a high-street shop in 1982 and plug into your television.

1K ZX Chess on ZX81: a game in progress against the computer

Artic, to their credit, knew what they had. The cassette sat in their catalogue alongside its bigger siblings — the fuller ZX Chess I and II for expanded machines — as the line’s party trick and its proof of seriousness: the Brandesburton house that sold you an adventure could also sell you the impossible, for about a fiver. Today the program is the centrepiece of any account of the ZX81’s 1K scene, the exhibit that ends arguments. People still disassemble it, still marvel at individual routines, still learn from it — which, given that Horne published the source for exactly that purpose, is the legacy working as designed.

Across the board from 672 bytes

An honest review should sit down and play it, and playing it is a stranger experience than the legend suggests. The board is drawn with complete clarity, the pieces are distinct, and the machine’s replies arrive with the confidence of a program that has no idea it is supposed to be impossible. It will not trouble a club player. It will happily punish the careless, because legal chess with a functioning evaluation, however shallow, beats inattentive chess at any size. What the modern player feels most is the tempo of 1982: this is chess at the speed of a machine that shares its processor with its television picture, in a room where the cassette has just taken minutes to load a program smaller than a text message. And then the realisation lands, the one every account of the program circles back to — the machine has no RAM pack. The wedge is in its cheapest possible configuration, the one from the £49.95 kit adverts, and it is playing chess. The demonstration Horne built was aimed at sceptics, and across the board, forty years later, it still lands.

The program’s paper trail adds a final distinction. ChessBase’s history of the smallest engines reproduces Horne’s own account from Your Computer’s February 1983 issue, code and all — “we actually have only 672 bytes,” the author notes, with the calm of a man explaining a card trick after performing it — and the preserved Oxford scans of those articles show the machine-code listings in full. Few commercial games of any era can be studied this completely: the cassette, the source, the author’s commentary, the record it held and the record that succeeded it. 1K ZX Chess is not merely a game but a fully documented proof, and the documentation was the author’s gift to everyone who came after.

Verdict

As a chess opponent, 1K ZX Chess is a charming lightweight. As a program, it is one of the great feats of the 8-bit age: the rules of chess, an interface, and an artificial opponent compressed into 672 bytes on a machine whose screen memory alone could eat most of its RAM. It held a world record for thirty-three years, taught a generation how it was done by printing its own source code, and remains the single best answer to anyone who calls the ZX81 a toy. Checkmate, in less memory than a modern mouse pointer.

1K ZX Chess on ZX81: the board from the Sinclair Research release

Score: 8.5/10 — Not the strongest chess on the ZX81. The smallest chess anywhere, for a third of a century.

One email a week: the best new articles, hidden gems, and zero spam. Insert coin to continue.

Join the discussion

Your email address will not be published. Required fields are marked *