Switch on a ZX Spectrum and the first program it runs is Steven Vickers’s. The 16K ROM sets up the hardware, clears the memory, prints “© 1982 Sinclair Research Ltd” and waits for you to type. Behind that one line sits a BASIC interpreter, a line editor, a keyboard scanner that runs 50 times a second, the tape loading and saving routines and the code that draws every character on the screen. Vickers wrote most of it, with his colleague John Grant, and his name is on the cover of the book that taught Spectrum owners how to use it.
From mathematics to ROMs
In July 1982 Sinclair User described Vickers as 29 years old, with a mathematics degree from King’s College, Cambridge, and a PhD from Leeds. He had come to computers late. “Two years ago I did not even know what a ROM was,” he told the magazine.
In 1980, after writing to several computer companies, Sinclair among them, he joined Nine Tiles, a software consultancy near Cambridge. Nine Tiles had already written the BASIC for Sinclair’s ZX80. Vickers was a Nine Tiles contractor, not a Sinclair employee, and Sinclair’s ROMs were written under contract.
The ZX81
His first job was to turn the ZX80’s 4K ROM into the 8K ROM of the ZX81, and he wrote the ZX81’s manual as well. The main addition, as he later described it, was a floating-point maths pack. The ZX80 could only handle whole numbers; the ZX81 advertised a BASIC that “handles logs and trig”. CRASH later described how the floating-point code was squeezed in: as a small interpreter inside the ROM, “written very compactly in a FORTH type language”, so that a square root took only seven bytes of code but “an awful long time to run”. The Spectrum kept the same routines, which is why its arithmetic is slow too.
The ZX Spectrum
The Spectrum’s rough specification was set in September 1981, with colour, high-resolution graphics and a better tape interface, and a fixed deadline: the computer show at Earl’s Court the following April. Richard Altwasser designed the hardware. Vickers and John Grant wrote the ROM, again on contract from Nine Tiles, with Vickers writing most of it. It is a 16K program that grew out of the ZX81’s. CRASH pointed out that a Spectrum still contains a 24-byte routine that checks for ZX81 program names.
The deadline was real, and Vickers said so: “There is a definition of a deadline: that it is the date before which something should not be completed, but that is not the case with Sinclair.”
What Sinclair BASIC could do
Sinclair BASIC on the Spectrum kept the ZX80’s two best ideas. Each keyword went in with a single keypress, and each line was checked for mistakes as it was entered. The Spectrum version added:
- colour and sound commands (INK, PAPER, BORDER, BEEP);
- graphics commands built in: PLOT, DRAW and CIRCLE;
- one-line user-defined functions with DEF FN;
- numbered report codes with short messages, such as “2 Variable not found”.
It had limits, too. Every program line needed a line number. There were no named procedures: a program reused code with GO SUB and RETURN.
The manual
The Spectrum came with Sinclair ZX Spectrum BASIC Programming, whose title page reads “by Steven Vickers, edited by Robin Bradbeer”. Sinclair User in 1982 described Vickers as “assisting with the manual”, so the book was not his alone. It works up through 26 chapters from the keyboard, through line numbers, loops, strings and graphics, to the system variables and machine code, with a reference section at the back.
Jupiter Cantab
In mid-1982 Vickers and Altwasser left Sinclair Research to set up their own company, which became Jupiter Cantab. Its advertisements called them “leading computer designers” who had played “the major role in creating the ZX Spectrum”. Their Jupiter Ace went on sale by mail order at £89.95 with the language Forth in its ROM instead of BASIC.
It did not sell. Altwasser left in 1983, leaving Vickers as a co-director. By the end of the year the company was in liquidation, after selling about five or six thousand Aces. In the Ace owners’ newsletter from that year, Vickers can be found politely correcting the club’s technical writer, Doug Bollen, who had said the Ace’s IN and OUT use single-byte port addresses; the Z80, Vickers pointed out, puts all 16 bits on the address bus. “I stand corrected once again!” Bollen replied.
Later career
Vickers returned to mathematics. He became a lecturer in the School of Computer Science at the University of Birmingham, working on the mathematical logic that underpins computing.
Sources
- Sinclair User issue 4, July 1982, pp. 51–52: Vickers and Altwasser leave Sinclair; his age, degrees, joining Nine Tiles in 1980, the ZX81 ROM and manual, writing “most of the ROM for the Spectrum”, “assisting with the manual”, the Spectrum’s schedule and his deadline quote.
- Sinclair User issue 46, January 1986, p. 88: the Spectrum software “was written by Steve Vickers on contract from Nine Tiles Ltd — the company which had originally provided Sinclair Basic”.
- Chris Smith, The ZX Spectrum ULA: How to Design a Microcomputer (ZX Design and Media), chapter 6 (the ZX80’s BASIC and the ZX81’s ROM came from Nine Tiles) and chapter 7 (the ROM “is the work of John Grant and Steven Vickers, contracted from Nine Tiles Information Handling Ltd”, and what it does at switch-on).
- Computer & Video Games issue 1, November 1981, p. 22: ZX81 advertisement (“handles logs and trig”).
- CRASH issue 16, May 1985, pp. 126–127: ZX80 limited to whole numbers; the ZX81’s floating-point code and its reuse in the Spectrum; the ZX81 routine left in the Spectrum ROM.
- Steven Vickers, Sinclair ZX Spectrum BASIC Programming, edited by Robin Bradbeer (Sinclair Research, 1982; second edition 1983): title page; chapter 2 (line numbers), chapter 5 (GO SUB and RETURN), chapter 9 (DEF FN), chapter 17 (PLOT, DRAW, CIRCLE), appendix B (reports).
- Computer & Video Games issue 12, October 1982, p. 26: Jupiter Cantab advertisement (£89.95).
- Ace User issues 3 and 4 (1983), the Jupiter Ace user club newsletter: Altwasser’s departure, Vickers’s letter and Doug Bollen’s reply (issue 3, p. 20), the liquidation and sales estimate.
- University of Birmingham, “Dr Steve Vickers: personal computing pioneer”, news item, April 2018 (web, secondary): his ZX81 work as “writing a floating point maths pack”, and his later academic post. https://www.birmingham.ac.uk/news-archive/2018/dr-steve-vickers-personal-computing-pioneer