The Zx Spectrum Ula How To Design A Microcomputer Zx Design Retro Computer Portable Instant

For a portable retro ZX-inspired computer, don't clone the ULA exactly. Emulate its behavior with one of these modern alternatives:

| Approach | Complexity | Authenticity | Power | Best for | |----------|------------|--------------|-------|-----------| | FPGA (e.g., Sipeed Tang Nano, Lattice ICE40) | High | Cycle-exact possible | ~50mA | Purist, hardware VHDL/Verilog | | RP2040 (Pico) | Medium | Software timing, very good | ~20-30mA | Fast development, USB, LCD drivers | | ESP32-S3 | Medium | Emulated Z80 + ULA | ~80mA | Adding WiFi/BT, OTA updates | | Discrete logic + ATTiny | Very High | Low | Low | Educational breadboard build |

For a portable device, I strongly recommend the RP2040. It has:

It is possible to rebuild the ULA using 74-series logic chips (counters, multiplexers, shift registers). However, the chip count exceeds 40+ ICs, making portability impossible. This approach is recommended only for desktop replicas. For a portable retro ZX-inspired computer, don't clone

Before soldering, we must redefine the goal. A "portable" retro computer is not just a Spectrum in a lunchbox. It must adhere to three constraints:

The true art of how to design a microcomputer here is re-timing. The original Spectrum relied on a 14.218MHz master crystal (4x the 3.5469MHz pixel clock). For a portable with an LCD, you don’t need a PAL TV signal. You can generate 60Hz VGA or HDMI, but you must maintain 100% timing compatibility with the Z80 software. This is the "ULA replacement" problem.

So, how does this history lesson help you build a "portable retro computer"? The true art of how to design a

If you are building a ZX Spectrum portable (often called a "ZX-clone" or handheld), you have two paths:

The ULA is both the genius and the obstacle in designing a portable ZX Spectrum. For a practical, battery-powered retro computer that feels authentic, an FPGA-based ULA replacement offers the perfect balance of accuracy, low power, and compact size. By combining an FPGA with a discrete CMOS Z80, 64KB SRAM, and a small LCD, you can build a handheld Spectrum that runs original software, behaves exactly like the 1982 machine, and fits in a coat pocket.

For beginners, an RP2040-based emulated version is faster to prototype. But for the true “design a microcomputer” experience—understanding contention, video timing, and memory arbitration—an FPGA ULA is the definitive modern method. This is where the design of the Spectrum truly evolves


This is where the design of the Spectrum truly evolves. Modern retro engineers have replaced the physical Ferranti ULA with an FPGA (Field-Programmable Gate Array).

| Challenge | Solution | |-----------|----------| | Contended memory timing | FPGA generates WAIT signal to Z80 exactly per original ULA. | | LCD scaling | 256×192 to 320×240: use pixel doubling or scanline buffer in FPGA. | | Keyboard matrix | 8×5 matrix via ULA port 0xFE; scan with FPGA and map to modern tact switches. | | Audio | Simple 1-bit PWM (original beeper) filtered through RC to speaker. | | Loading software | SD card + FAT32 + .tap parser; FPGA feeds bytes to Z80 via “divide-by-256” trick (simulate tape input on EAR pin). | | Case & portability | 3D print case with 40-key membrane (can source from ZX81 keyboard replicas). |

Want to JAZZ UP your inbox?

Join my newsletter!

Skip to content