Spectrum Test Program Link - Zx
This is the gold standard. While originally a ROM replacement, a TAP version exists that loads into high RAM (if your lower RAM is functional).
The ZX Spectrum test program is more than a utility. It is a proof of resilience—a small piece of code that turns a pile of seemingly broken chips into a diagnostic oracle. Each flashing border color is a whisper from the hardware, telling a story of stuck bits, missed refresh cycles, or a tired ULA.
For the modern enthusiast, running that test program for the first time on a “dead” Spectrum and seeing the border turn white, then green, then cyan is a moment of pure alchemy: base metal into gold, noise into signal, silence into the promise of a working machine. zx spectrum test program link
So the next time someone asks for “the link” to the test program, don’t just send a file. Send them this article, and tell them to listen to what their Spectrum is trying to say.
Further reading: The source code of the 48K Diagnostic ROM is available in annotated Z80 assembly, often found on GitHub under zx-spectrum-48k-diagnostic. The original Sinclair service manual also describes the extended test harness used in factory repairs. This is the gold standard
Chaining test programs allows multiple small tests to execute sequentially without reloading the entire cassette/disk image. Two common approaches:
Disk-based collections: Use a disk image (e.g., TRD/DSK) with multiple test programs and a simple menu loader on the disk. Further reading: The source code of the 48K
Chaining technique details:
Because the screen RAM may be dead, the test program outputs status via the border color (port 0xFE). A typical sequence:
| Border Color | Meaning | |--------------|---------| | White | CPU test passed, beginning RAM test | | Red | Fatal error: CPU or ROM addressing fault | | Green | DRAM test in progress | | Cyan | Lower 16K RAM (bank 0) passed | | Yellow | Upper 32K RAM (banks 1-3) testing | | Magenta | RAM refresh failure (timing) | | Black | All tests passed – but with rapid flashing? Wait, no – steady black indicates halted CPU. |
Advanced versions of the program (like the “48K Diagnostic ROM” by Geoff Wearmouth) output a scrolling hex dump of failing addresses via the RF modulator—visible on a TV as fast-moving bands of pixels.