20 GOTO 10
By Steven Goodwin
Retro Computing by Numbers
Publication date: October 2023Support this project
Digital Copy of ZX Adventure for ZX81 or Spectrum
1K Chess Poster Plus Signed Book
ZX81 Character Set Poster Plus Signed Book
- An A3 art print featuring the Tandy character set. Signed first edition hardback, the ebook and your name listed as a supporter.
ZX Spectrum Character Set Poster Plus Signed Book
ZX80 Character Set Poster Plus Signed Book
Dragon 32 Character Set Poster Plus Signed Book
Commodore 64 Character Set Poster Plus Signed Book
Amstad CPC Character Set Poster Plus Signed Book
Jupiter Ace Character Set Poster Plus Signed Book
Read With a Friend
Signed Read With a Friend
Cover Art Print
Your Favourite Machine
Your Computer Featured in the Book
Personal Message 1 REM
Personal Message 10 Print
Personal Message 15 REM First Change
Your Game in the Book
Frequently Asked Questions
Where can I get my book delivered to?
How do supporter names work?
Will the book and rewards that I receive look the same as the images shown on the Unbound website?
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
I pledged for the favourite machine version. There's nowhere to enter the information, so here seems the only place: ICL 1902 running GEORGE 3 or the ME29 great for loading your own game like Adventure.
I believe Unbound send out an email on completion asking for all the necessary extras. (This include those having their own computers featured in the book, since there'll be photos to upload, etc.)
In the email sent out by Unbound for the favourite machine pledge, they only ask for the name of the computer, nothing more. So I have sent the information to Steven directly. If I have missed the "official" way to provide the information, let me know.
Hi Thomas, Thanks for reaching out! Please email the information to firstname.lastname@example.org so that they can connect them with the form. Best wishes, Lena