Credits
Ten POKEs That Turn the ZX Spectrum's ROM Against Itself
The film's page has its chapters, every source, the code and the full transcript: Ten POKEs That Turn the ZX Spectrum's ROM Against Itself.
Sources and credits for the film. Every fact in the narration is tied to a quotation from a captured source; every image, clip and piece of music is listed with its licence and where it came from. Archive images and footage are openly licensed. Maps, charts and diagrams were made for this film from the cited sources.
Images and footage (20)
- A Sinclair ZX Spectrum 48K, rubber keys, photographed from above on white
Bill Bertram / Wikimedia Commons / CC BY-SA 2.5. CC BY-SA 2.5. Source - A Sinclair ZX Spectrum 48K, rubber keys, photographed from above on white
Bill Bertram / Wikimedia Commons / CC BY-SA 2.5. CC BY-SA 2.5. Source - Take-1 from the start-up screen through typing the three lines and RUN to C Nonsense in BASIC, 30:1, stopping before LIST
Retro Computer TV. Own work. - The held result of take-10: IBM on the screen and the shifted report 1!PL-!21;3, held
Retro Computer TV. Own work. - The held result of take-2b: the report messages from Out of memory to the copyright line, ending K Invalid colour, 30:1
Retro Computer TV. Own work. - The held result of take-5: the extended-mode keywords printed from HI, ending K Invalid colour, 10:2
Retro Computer TV. Own work. - The held result of take-6: the black screen of the wiped machine
Retro Computer TV. Own work. - A freshly started 48K ZX Spectrum: 10 POKE 23610,28 typed, then RUN: the program ends with the report T © 1982 Sinclair Research Ltd, 10:1
Retro Computer TV. Own work. - The report line number 8 left on a 48K Spectrum, T (c) 1982 Sinclair Research Ltd, 10:1, above a ZX Spectrum 48K
Retro Computer TV. Own work. - The Spectrum's screen after POKE 23659,1: PRINT "HI": vertical stripes over the whole screen, on a monitor behind a ZX Spectrum 48K
Retro Computer TV. Own work. - A freshly started 48K ZX Spectrum: 10 POKE 23606,8: PRINT "HAL" typed key by key with the key click, then RUN: the screen shows IBM, and the report under it reads 1!PL-!21;3
Retro Computer TV. Own work. - A freshly started 48K ZX Spectrum: 10 POKE 23614,100 and 20 GO TO 20 typed, then RUN; a second later BREAK (CAPS SHIFT and SPACE) is pressed and the machine restarts at its start-up screen, the program gone
Retro Computer TV. Own work. - A freshly started 48K ZX Spectrum: 10 POKE 23610,28 typed, then RUN: the program ends with the report T © 1982 Sinclair Research Ltd, 10:1
Retro Computer TV. Own work. - A freshly started 48K ZX Spectrum: 10 POKE 23681,64: LPRINT "HELLO SPECTRUM"; typed (LPRINT in extended mode), then RUN: rows of dots across the top pixel lines of the first eight text rows, then 0 OK, 10:2
Retro Computer TV. Own work. - A freshly started 48K ZX Spectrum: 10 POKE 23659,1: PRINT "HI" typed, then RUN: vertical black and white stripes over the whole screen, then 0 OK, 10:2
Retro Computer TV. Own work. - A freshly started 48K ZX Spectrum: 10 POKE 23659,0: PRINT "BYE" typed, then RUN: the screen goes black and the machine stops responding
Retro Computer TV. Own work. - A freshly started 48K ZX Spectrum: 10 POKE 23650,39: PRINT "HI" typed, then RUN: the screen fills with the extended-mode keyword table and the keyboard map, ending K Invalid colour, 10:2
Retro Computer TV. Own work. - A freshly started 48K ZX Spectrum: 10 LET b$="CAT", 20 POKE 23564,19 and 30 PRINT b$ typed, then RUN: the error messages print from Out of memory onwards, each last letter as a keyword, to the copyright line, ending K Invalid colour, 30:1
Retro Computer TV. Own work. - A freshly started 48K ZX Spectrum: 10 POKE 23740,20: PRINT "HI" typed, then RUN: the program listing appears instead of HI, with a second line 10 holding RUN
Retro Computer TV. Own work. - A freshly started 48K ZX Spectrum: 10 POKE 23745,56, 20 PRINT "A"+STR$ 5 and 30 PRINT "END" typed (STR$ in extended mode), then RUN: A, then C Nonsense in BASIC, 30:1; then LIST shows line 30 changed
Retro Computer TV. Own work.
Music (15)
- "Breatha" by josh pan (YouTube Audio Library). YouTube Audio Library. Source
- "Cosmic Drift" by DivKid (YouTube Audio Library). YouTube Audio Library. Source
- "Electrician" by Jeremy Black (YouTube Audio Library). YouTube Audio Library. Source
- "Empire Seasons" by Dan Henig (YouTube Audio Library). YouTube Audio Library. Source
- "Eternal Garden" by Dan Henig (YouTube Audio Library). YouTube Audio Library. Source
- "Hypnosis" by Godmode (YouTube Audio Library). YouTube Audio Library. Source
- "Knowpe" by Noir Et Blanc Vie (YouTube Audio Library). YouTube Audio Library. Source
- "Komorebi" by Futuremono (YouTube Audio Library). YouTube Audio Library. Source
- "Kreuzberg Nights" by Futuremono (YouTube Audio Library). YouTube Audio Library. Source
- "Lens" by Bobby Richards (YouTube Audio Library). YouTube Audio Library. Source
- "Polymetric Juggling" by DivKid (YouTube Audio Library). YouTube Audio Library. Source
- "Sun Awakening" by Futuremono (YouTube Audio Library). YouTube Audio Library. Source
- "Take the Hill" by The Whole Other (YouTube Audio Library). YouTube Audio Library. Source
- Retro Computer TV. Own work.
- Retro Computer TV. Own work.
Sources (49)
- Our research: every single-byte POKE into the system variables and channel table (2026-10-29, seventh capture)
- ZX Spectrum BASIC manual, chapter 25: the system variables
- World of Spectrum - Documentation - ZX Spectrum manual
- Our research: the film's ten takes, the programs as typed (takes.py, DEMOS)
- Our research: take 1 single-stepped in the harness (verifier D, 2026-11-08)
- SkoolKit's annotated 48K ROM disassembly: 1391
- Our research: every single-byte POKE into the system variables and channel table (2026-11-07, ninth capture)
- Our research: every single-byte POKE into the system variables and channel table (2026-11-07, eighth capture)
- Our research: every single-byte POKE into the system variables and channel table (2026-10-29, fifth capture)
- SkoolKit's annotated 48K ROM disassembly: 0D6B
- SkoolKit's annotated 48K ROM disassembly: 09F4
- Our research: every single-byte POKE into the system variables and channel table (2026-11-07, tenth capture)
- Z80 instruction set table (ClrHome)
- SkoolKit's annotated 48K ROM disassembly: 3D00
- SkoolKit's annotated 48K ROM disassembly: 0B24
- World of Spectrum - Documentation - ZX Spectrum manual
- SkoolKit's annotated 48K ROM disassembly: 2951
- Spectrum ROM: Routine at 24FB
- SkoolKit's annotated 48K ROM disassembly: 155D
- HAL 9000 (Wikipedia)
- Spectrum ROM: Text at 0095
- World of Spectrum - Documentation - ZX Spectrum manual
- Our research: the sweep's record for POKE 23610,28 (rom-sweep-v2.jsonl, that one line)
- SkoolKit's annotated 48K ROM disassembly: 12A2
- SkoolKit's annotated 48K ROM disassembly: 0E44
- Spectrum ROM: Data at 0205
- SkoolKit's annotated 48K ROM disassembly: 2BF1
- Spectrum ROM: Routine at 15EF
- SkoolKit's annotated 48K ROM disassembly: 0038
- SkoolKit's annotated 48K ROM disassembly: 0053
- Bugs in the ROM: some of the Spectrum's undocumented features (Nonowt compilation)
- Our research: the sweep's outcome ranges for every address (by-address.json)
- Spectrum ROM: Data at 15AF
- SkoolKit's annotated 48K ROM disassembly: 28B2
- Spectrum ROM: Routine at 361F
- SkoolKit's annotated 48K ROM disassembly: 386E
- SkoolKit's annotated 48K ROM disassembly: 1539
- SkoolKit's annotated 48K ROM disassembly: 1BB3
- ZX Spectrum errors (redcode/ZXSpectrum wiki)
- Spectrum ROM: Memory map
- SkoolKit's annotated 48K ROM disassembly: 16B0
- Spectrum ROM: Data at 0A11
- SkoolKit's annotated 48K ROM disassembly: 0C0A
- World of Spectrum - Documentation - ZX Spectrum manual
- The Nonowt eZine X Magazine
- SkoolKit's annotated 48K ROM disassembly: 27BD
- Our research: every single-byte POKE into the system variables and channel table (2026-11-07, twelfth capture)
- Our research: every single-byte POKE into the system variables and channel table (2026-11-07, thirteenth capture)
- World of Spectrum - Documentation