Your Favourite Machine
Digital Copy of ZX Adventure for ZX81 or Spectrum
Read With a Friend
Signed Read With a Friend
Your Computer Featured in the Book
Personal Message 1 REM
Personal Message 15 REM First Change
Cover Art Print
Your Game in the Book
Personal Message 10 Print
Frequently Asked Questions
Where can I get my book delivered to?
How do supporter names work?
20 GOTO 10 is a book of numbers that describes the many facets of computing history, focusing on the golden age of old computers and retro games and consoles of the 1980s and 90s. It covers the hardware, software, and social history of the era showing how they're linked through numbers, such as 48K, C90, and 35899.
Each entry starts with a number, and by choosing a related number you'll create a unique adventure through the book and into a web of forgotten geek lore and incredible facts. With luck, you'll find a way to arrive at the number used to grant infinite lives in Jet Set Willy!
Whether you're interested in machines from the mainstream such as Sinclair, Acorn, Atari, Famicom, Sega, Nintendo, Sony, and Commodore, or the lesser known cabal of Dragon, Tandy, Oric, Amstrad, DEC, Jupiter, Vectrex, TI, and NewBrain (or even the virtually unheard of COSMAC Elf 2000) you'll see how numbers underpin more that the internal workings of these machines.
So, from the mysterious numbers which disabled the break key, to the speed of cassette tapes, detouring by the reason why a single digit might require seven bytes of memory, this book provides a mindful perspective on the nostalgia genre from someone that was there. So, whether you're interested in home computers, game consoles, or handheld devices, there'll certainly be some new old information to learn!
The book includes:
- Linked entries which let you choose-your-own path through computing history
- A computer personality Rorschach test, cunningly disguised as a dot-to-dot puzzle
- Infographics about computing history according to the facts (and the best machines, according to the readers!)
- Deep technical wizardry about cassette tapes, computer-generated sound, and how blu-tack saved the sanity of the Sinclair generation!
Sample entries . . .
0 – NOP
On computers using the Z80 microprocessor, like the Sinclair ZX81 and ZX Spectrum, an instruction byte of zero represents a null operation, where nothing happens. It was often used as padding so new instructions could be added at a later date by overwriting these NOPs, or to replace instructions which did something untoward.
When a computer game used a DECrement instruction to reduce the number of lives a player had, it was not unusual for magazines to publish POKEs which would replace that instruction with a NOP so that lives were never lost. So an instruction at memory address 12345 might read
But after a
POKE 12345, 0
It would read
Consequently, the ‘lives’ counter would not be changed, and you could (theoretically) play forever!
1⅞ – IPS
The cassette tapes used by most computers in the 80’s were formally known as compact audio cassettes and ran at a speed of 1⅞ inches per second. This meant a C60, with 30 minutes per side, would be about 281 ¼ feet long, or 85.73 meters. However, this doesn’t give an exact measure for the number of bytes which could be stored on the tape, since every computer used a different system for saving to tape. Worse, some formats would need more tape if the data comprised of 1’s, rather than 0’s.
- GOTO 15 : REM Saving to tape
- GOTO 300 : REM Kansas City
6 – King’s Parade
The address in Cambridge, England, which housed Sinclair Radionics from 1977. Radionics changed its name to ’Science of Cambridge’ the same year, releasing the MK14 computer in 1978. It later became Sinclair Research Ltd, at which point both the name and address became synonymous with the launch of the UK industry with the Sinclair ZX80, ZX81, and Sinclair Spectrum.
It is now a new age store.
Coincidently, Stephen Hawking’s first Cambridge house with his wife, Jane, was also numbered 6. But it’s just round the corner, on Little St. Mary's Lane
- GOTO 22 : REM Newmarket Road
- GOTO 25 : REM Willis Road
- GOTO 69 : REM Histon Road
1200 – BASICODE
Originating in 1973, BASICODE was an attempt at making BASIC programming more universal, by removing the vendor-specific syntactical components of each BASIC variant, and replacing them with common shared elements. This is much the same as artificially constructed language 'Esperanto', from which BASICODE took its slogan “Ein Esperanto fuer Computer.” BASICODE did this by limiting the scope of the BASIC commands that could be used, and providing an abstraction library (in the form of subroutines) for all the machine-specific work.
Take the simple example of printing a piece of text at a specific position on the screen:
PRINT AT 5,12, “GAME OVER”
Even in this case there are several ways of representing the same thing in BASIC. Including the seemingly indifferent:
PRINT AT 12, 5, “GAME OVER”
There were, and still are, no standards about whether all computers should reference their co-ordinates as XY or YX, or even if the bottom of the screen is called 0 (as it is when drawing graphs in maths lessons), or if it’s the top which is designated 0. Nowadays, co-ordinates are more usually presented as XY, with 0,0 being the top-left, but there are always anomalies.
Furthermore, some machine developers decided that, since the screen was divided into a grid of 32x24 (i.e. 768) squares, then there was no benefit in referring to each area by both its X and Y co-ordinate, and it should simply use the number of the square, with 0 at the top-left and 767 at the bottom-right. This meant some versions of BASIC would instead use:
PRINT @389, “GAME OVER”
Naturally, BASICODE could not allow the programmer to use any and all variations of the PRINT instruction syntax, since each machine would only allow its specific implementation, so it required BASICODE programmers to write the same line as:
There are 1000 bytes in a kilobyte, despite the fact that most people believe it is 1024. This confusion most likely originates from a combined misunderstanding. Firstly, computer scientists would always work with powers of two, since they’re working with binary machines, so the natural sequence reads 1, 2, 4, 8, 16, 32... up to 1024. Since all memory chips come in sizes that were a power of two it was not unreasonable to assume that 1 KB chip had 1024 bytes, instead of 1000. Which they did.
Secondly, advertising literature on early machines would reference their memory as being 48 KB, or 49152 bytes. Both facts are true. Unfortunately, computer scientists aren’t the only scientists on the planet and, in adopting the kilo- prefix, inadvertently promoted the idea to the general public that kilo meant 1024 in computing fields. From a certain point of view, this is a valid point. However, the kilo (with a pre-defined meaning of 1000) uses a lower case ‘k’, while the computer scientists and advertisers had – by accident or design – used an upper case ‘K’ to mean 1024. But the difference was too subtle and ‘K’ was sometimes written as ‘k’ to further confuse the issue.
Luckily for science, there are standards bodies which oversee such usages and in 1998 the IEC (International Electrotechnical Commission) introduced the kibibyte, represented as KiB, to unequivocally mean 1024 bytes and 1 kB to be 1000 bytes (as it always had done.)
Perversely, ‘k’ is the only time the IEC use a lower case designation, as they describe a megabyte with MB to mean 1,000,000 bytes.
Every more perversely, JEDEC (the Joint Electron Device Engineering Council) approve the use of KB to mean a 1024-byte kilobyte, and MB to reference a megabyte containing 1,048,576 bytes!
Quick select rewards
Steven Goodwin (Cambridge, England) has been involved in computing, science, and technology from an early age, having learned machine code by his 10th birthday and built his first synthesizer while still in his teens. Since then he's been a developer, CTO, and system architecture for companies large and small. As an industry thought leader he's written 60+ articles, 5 books, and has worked as a start-up consultant, keynote speaker, and mentor.
But despite that, he still finds time to study old machines and write new games for old computers, with the Sinclair ZX81 being a particular favourite. He also builds emulators, founded the EMF project, and volunteers at the Museum for Computing History in Cambridge.
He was the lead developer of the often maligned 'Die Hard: Vendetta', and the more appreciated 'Grand Prix Manager' series, along with games from Microprose, PlayFish, EA, and Glu Mobile
His interests outside of computers, also involve computers!
- 13th September 2021 256: 0 To 255
From 0 supporters to 255 of them in less than two months - what an amazing thing you've all done to help raise the profile of retrocomputing even further!
As most of you will know 8-bit machines can stored 256 distinct values, usually numbered 0 to 255. (Although this range can also be interpreted as -128 to 127, but we'll cover that in the book.) For this update, I'll merely point out that an…6th September 2021 205.5 : It's not just about integers
This number is halfway between the number of supporters I had when I started to write this, and the number I had when finishing it! It is rather an amusing number, as it forms the foundation of the (in)famous Commodore 64 BASIC program:
10 PRINT CHR$(205.5+RND(1));
20 GOTO 10
This prints a random stream of and graphical characters which ultimately form a maze, scrolling up the screen.…19th August 2021 30% - This is the Future!
When we hit 25% I started to make notes for an exclusive update about the number 30. Then I blinked. We hit a Dragon-roaring 32% almost overnight! You folk are epic!
Anyway, so what did I want to say about the number 30? Simply that many of us will know it primarily as an address in Bath. Specifically, 30 Monmouth Street. This is etched in my mind as being the place where Future Publishing were…4th August 2021 That's 100 (in decimal!)
We are now in triple digits - more than the number of dots on the Acorn owl logo from the BBC Micro!
Wow - thank you all so much.
Please pass on the link so others can join us -
#retro #80s #8bit #retrogaming #retrocomputing #20goto1029th July 2021 81 supporters - can we make 100?
It's been a fantastic start to the campaign, so could anyone that hasn't posted/tweeted/shared or otherwise mentioned the book please do so, as I'd love to reach 100 supporters by Friday!
Even though this means I lose the magic number 81 from my supporter count!
It was the ZX81, after all, that got me my start in computing. Its name is a logical continuation of Sinclair's previous machine, the…27th July 2021 42 supporters!
This number is probably the most recognisable integer in all of geekdom - all thanks to Douglas Adams.
But 42, as well as being the answer to the meaning of life is also the ASCII for '*' - which, aptly, is used as the wildcard symbol meaning 'everything'
(It's also 6 x 9 in base 13, XLII in roman numerals, and 101010 in binary, but all are less significant)26th July 2021 W00t! We hit double figures!
That's 10 people! 10. Not only the number '2' in binary (base 2), but the function key labelled as 'BREAK' on the Acorn BBC Micro which did a soft reset.
At school, we would re-program the break key to recover the previous program in memory, and re-run it. Like this:
*key10 OLD||M RUN||M
What did you do with the break key?
These people are helping to fund 20 GOTO 10.
Karl von Randow
Maurizio Maurizio Pistelli
Felipe Aguilar Picazo
José Manuel Molina
Jose Raez Rodriguez
Luis González Naharro