Zx Spectrum Test Program Link
To prepare a ZX Spectrum test program, you can use several utilities and resources depending on whether you need hardware diagnostics or software development tools. Diagnostic & Test ROMs
If you are looking for programs to test hardware functionality (RAM, ROM, keyboard, ULA), these are the primary links:
ZX-Diagnostics (GitHub): A comprehensive open-source diagnostic suite by Brendan Alford. It includes tests for the CPU, RAM, and keyboard [10].
Retroleum Diagnostic ROM: Created by Phil Ruston, this ROM is widely used for repairing original Spectrum models. It features automated RAM tests and a menu for manual component testing [11, 25].
Sinclair Official Test ROM: The original 1983 hardware test ROM used by Sinclair repair engineers [15]. Software Testing & Development Utilities
To create and test your own code as a "test program," these tools convert modern text files into Spectrum-compatible formats: zx spectrum test program link
zmakebas: A utility that converts a plain text file containing BASIC code into a .tap file that can be loaded into an emulator or real hardware [9].
ZX BASIC Compiler (Boriel): An SDK that allows you to write programs in a BASIC dialect on a PC and compile them into Z80 machine code for the Spectrum [19].
World of Spectrum Archive: A massive repository where you can download official utility programs, including original I/O handling test programs [27, 43]. Emulators for Instant Testing
You can test your code or these diagnostic files immediately using these emulators:
Fuse (Free Unix Spectrum Emulator): A highly accurate and free emulator available for multiple platforms [9, 29]. To prepare a ZX Spectrum test program, you
ZEsarUX: A powerful emulator with built-in debugging features ideal for testing new code [17, 29].
To effectively maintain or repair a ZX Spectrum, having the right test software is essential. Whether you are dealing with a "dead" unit that won't boot or a system with intermittent memory errors, different tools serve different diagnostic purposes. 1. Official Sinclair Test Programs
In the 1980s, Sinclair produced official software for repair engineers. These are now available as digital files for modern users.
Test Program (1985): Originally published by Sinclair Research and created by Ian Logan, this utility checks the keyboard, sound, ULA, and RAM/ROM. It is widely available on archives like World of Spectrum.
Sinclair Test ROM (1983): This was a specialized ROM used by official engineers with the ZX Interface 2. It provides a menu of tests to verify the system, including the Interface 1 and 2 themselves. You can find documentation and downloads at Spectrum Computing. 2. Modern Diagnostic ROMs March C- pattern : A classic DRAM test
If your Spectrum has a blank screen and won't load from tape, you need a Diagnostic ROM. These tools replace the internal Sinclair BASIC ROM (often via a cartridge) to test the hardware directly upon power-up. ZX Spectrum Diagnostic ROM V1.73 | PDF - Scribd
How to Load a ZX Spectrum Test Program From a Modern PC
Once you have your ZX Spectrum test program link and have downloaded a .TAP file, you need to load it onto your real hardware. Here is the step-by-step process.
3. The DRAM Gauntlet: Row, Column, and Refresh
The 48K Spectrum uses 16 64kbit DRAM chips (4164 or equivalent). These chips are notorious for failure due to timing sensitivity. The test program runs a multi-pass algorithm:
- March C- pattern: A classic DRAM test writing 0, then 1, then 0 across all addresses.
- Stuck-at fault detection: Writes
0b10101010and0b01010101to each byte. - Row hammer (simplified): Repeatedly accesses the same row to test for charge leakage between cells.
- Refresh test: The Z80 has a built-in DRAM refresh mechanism (R register). The program disables interrupts and waits to ensure the ULA’s contention isn’t blocking refresh cycles.
A failure at any point outputs a specific memory address and failing bit pattern, often via a binary-coded border color or a simple text output on a working screen.
3. Typical Components of a ZX Spectrum Test Program
- Header/identifier: A unique short string or magic number so loader utilities and users can easily identify the program.
- Self-test routines: Memory patterns, checksum tests, and optional ROM/port checks.
- I/O probe: Code to write/read ports and report results on-screen or via the beeper.
- Timing measurements: Simple loops with counters or border-flash timing to infer CPU/ULA synchronization.
- Display checks: Pixel patterns, color attribute tests, border flicker detection, and attribute clash tests.
- Sound test: Tone generation via the beeper or AY to confirm audio hardware.
- User interface: Minimal keyboard controls for selecting tests and displaying results.
- Save/load verifier: Test loader that saves and then reloads data from tape/disk to validate media I/O.