ZOT
What it is
ZOT is a free, MIT-licensed emulator for the Z80 CPU, ZX Spectrum 48K, and CP/M 2.2, built around one shared Z80 core. Written in C, its core components rely only on the C standard library, and the README says the core passes documented and undocumented Z80 tests in ZEXALL. The core is described as small enough for microcontrollers such as the RP2040. Spectrum emulation includes 16KB of ROM, 48KB of RAM, ULA video, keyboard and beeper support, memory contention, and PAL frame timing. The tape player loads TZX and TAP files, while 48K .z80 snapshots in versions 1, 2, and 3 are supported. The CP/M emulator implements 39 listed BDOS functions, includes commands such as DIR, ERA, TYPE, REN, USER, and SAVE, and maps drives A: through P: to host directories with an 8MB emulated capacity. Makefile targets build the project, Spectrum SDL frontend, or CP/M terminal frontend.
For and against
For
- Emulates Z80, ZX Spectrum 48K, and CP/M 2.2
- Supports TZX, TAP, and three .z80 snapshot versions
- Maps CP/M drives A: through P: to host directories
- Runs on listed RP2040-based microcontroller hosts
- Core has no dependencies beyond the C standard library
Against
- Spectrum frontend requires SDL2
- CP/M disk capacity is 8MB
- z80-specs files use a different license
- Spectrum support is limited to the 48K model
The verdict
ZOT combines a tested Z80 core with Spectrum and CP/M environments, including tape, snapshots, peripherals, and host-directory storage. Its C implementation and microcontroller targets make it relevant to both Linux builds and embedded experiments.
Who it suits
ZOT suits developers and retro-computing users interested in Z80, ZX Spectrum, or CP/M emulation. It also targets microcontroller projects and Linux users building the supplied frontends.
On the record
- Build and platform
- The project provides Makefile targets for building everything, the Spectrum SDL frontend, or the CP/M terminal frontend; SDL2 is only required for the Spectrum frontend.github.com · read 7 Oct 2026
- CP/M compatibility
- The CP/M 2.2 emulator implements all 39 BDOS functions and includes a C-based command processor with built-in DIR, ERA, TYPE, REN, USER, and SAVE commands.github.com · read 8 Oct 2026
- CP/M storage
- The README describes CP/M drives A: through P: mapped to host directories and an emulated disk capacity of 8MB.github.com · read 7 Oct 2026
- Desktop interface
- The SDL frontend maps a PC keyboard to the Spectrum keyboard and supports Kempston joystick input, snapshot loading, and tape playback through command-line arguments and drag-and-drop.github.com · read 8 Oct 2026
- Development process
- The maker says the implementation used a clean-room setup with Claude Code Opus 4.6, without access to other emulator source code, and with human feedback steering design decisions.github.com · read 7 Oct 2026
- Host files
- The CP/M emulator maps drives A: through P: to host directories and describes an emulated disk capacity of 8 MB.github.com · read 8 Oct 2026
- Implementation
- The project is written in C and has no dependencies beyond the standard library, except that its optional Spectrum SDL frontend uses SDL2.github.com · read 8 Oct 2026
- License
- The project is licensed under MIT, while files in z80-specs use a different license described in that directory’s README.github.com · read 8 Oct 2026
- Maker
- The GitHub profile identifies antirez as Salvatore Sanfilippo, a computer programmer based in Sicily, Italy, who mostly writes open-source software.github.com · read 8 Oct 2026
- Microcontroller target
- The README says the Z80 core is small enough to run on microcontrollers such as the RP2040.github.com · read 7 Oct 2026
- Purpose
- ZOT is a Z80 CPU, ZX Spectrum 48K, and CP/M 2.2 emulator built on the same Z80 core.github.com · read 8 Oct 2026
- ROM redistribution
- The README says the included ZX Spectrum 48K ROM is copyrighted and describes redistribution as relying on permission granted by Amstrad, with a request to contact the maintainer if the current rights holder wants it removed.github.com · read 8 Oct 2026
- Snapshots
- The emulator loads 48K .z80 snapshots in versions 1, 2, and 3.github.com · read 8 Oct 2026
- Spectrum emulation
- The Spectrum emulator models 16 KB of ROM, 48 KB of RAM, ULA video, keyboard, beeper, tape I/O, and memory contention.github.com · read 8 Oct 2026
- Tape formats
- The tape player supports TAP files and multiple TZX block types, including standard speed data, turbo speed data, pure tone, pulse sequences, and direct recording.github.com · read 8 Oct 2026
- Tested software
- The project says it has superficially verified WordStar, Turbo Pascal, MBASIC, Zork I–III, Hitchhiker’s Guide to the Galaxy, BBC BASIC, and standard CP/M utilities.github.com · read 8 Oct 2026
- What it does
- ZOT is a Z80 CPU, ZX Spectrum 48K, and CP/M 2.2 emulator built on a shared Z80 core.github.com · read 7 Oct 2026
- Z80 accuracy
- The Z80 core implements documented and undocumented instructions and passes the ZEXDOC and ZEXALL test suites at 100%.github.com · read 8 Oct 2026