The Zx Spectrum Ula How To Design A Microcomputer Zx Design Retro Computer Portable Best | SAFE | TIPS |
If the CPU tries to read or write to this memory while the ULA is drawing the visible part of the screen, the ULA physically forces the CPU to wait by pulling the Z80's WAIT pin low. This complex timing choreography is one of the hardest parts of a ZX design to replicate accurately. The I/O Hub: Keyboard, Tape, and Speaker
Excellent if you want to use a real hardware Z80 CPU. A CPLD has enough logic gates to act purely as the ULA, routing signals between a physical Z80, physical RAM, and the display. If the CPU tries to read or write
The original Spectrum allocated the memory block from 0x4000 to 0x5AFF for the display file. A CPLD has enough logic gates to act
It managed keyboard scanning, the speaker "beeper," and the cassette tape interface. Designing Your Own Retro Computer Designing Your Own Retro Computer An EPROM can
An EPROM can be used as a look-up table to generate the complex timing signals required for video output. Design Challenge:
+-------------------------------------------------------+ | LiPo Battery | | | | | Power Regulator (5V/3.3V) | | | | +---------------------------v---------------------------+ | | | +-------------------+ +-------------------+ | | | | | | | | | Z80 CPU / |======>| FPGA/CPLD | | | | Microcontroller | | (Modern ULA) | | | | (e.g., EZ80) | | | | | +-------------------+ +---------+---------+ | | ^ | | | | v | | +---------+---------+ +-------------------+ | | | Tactile Button | | RGB SPI/Parallel | | | | Keyboard Matrix | | TFT LCD Screen | | | +-------------------+ +-------------------+ | | | +-------------------------------------------------------+
The ULA was the "glue" that held the Spectrum together. In a standard Z80-based system, you would need dozens of discrete logic chips to manage the interface between the CPU and the RAM. The ULA condensed this into one package. Its primary jobs included: