FREEDOM251

Freedom251 › ZX Spectrum Emulators

ZOT

Free plan Linux

Visit ZOT Alternatives

ZOT's own site

What ZOT is

ZOT is a free, open-source emulator for the Z80 CPU, the ZX Spectrum 48K, and CP/M 2.2, built around a shared Z80 core. Written in C, its core components have no dependencies beyond the C standard library. The project README says the core passes documented and undocumented Z80 tests in ZEXALL and is small enough to run on 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. Its tape player loads TZX and TAP files, and it supports 48K .z80 snapshots in versions 1, 2, and 3. The SDL desktop frontend maps a PC keyboard to the Spectrum keyboard, accepts Kempston joystick input, and supports snapshot loading and tape playback through command-line arguments and drag-and-drop. CP/M 2.2 implements 39 listed BDOS functions and includes a C-based command processor with commands such as DIR, ERA, TYPE, REN, USER, and SAVE. CP/M drives A: through P: map to host directories, with an emulated disk capacity of 8MB. Makefile targets build the full project, a Spectrum SDL frontend, or a CP/M terminal frontend; SDL2 is required only for the Spectrum frontend. ZOT is MIT licensed, while files in z80-specs use a different license.

Who it suits

ZOT suits people who want to run ZX Spectrum 48K or CP/M 2.2 software through an open-source Z80 emulator. Its microcontroller-sized core may also interest developers working with RP2040-based devices, including Raspberry Pi Pico, Pimoroni Tufty 2040, and PicoCalc.

What it does well

  • One shared core supports Z80, ZX Spectrum 48K, and CP/M 2.2 emulation.
  • Core components depend only on the C standard library.
  • Loads TZX and TAP tapes and .z80 snapshots in versions 1, 2, and 3.
  • CP/M maps drives A: through P: to host directories.
  • Makefile targets build a Spectrum SDL frontend or CP/M terminal frontend.

What to know first

  • The listed desktop platform is Linux.
  • SDL2 is required for the Spectrum frontend.
  • The included ZX Spectrum ROM is copyrighted.

Limits

The project supports the ZX Spectrum 48K model and lists Linux as its platform. The Spectrum SDL frontend requires SDL2; the CP/M terminal frontend does not have that stated requirement.

Getting started

  1. Visit the ZOT project on GitHub.
  2. Choose a Makefile target for the full project, Spectrum SDL frontend, or CP/M terminal frontend.
  3. Install SDL2 if you are building the Spectrum frontend.
  4. Build the selected target with its Makefile.
  5. For the desktop Spectrum frontend, load a snapshot or play a tape through command-line arguments or drag-and-drop.

Verdict

Choose ZOT if you want a free, MIT-licensed project covering Z80, Spectrum 48K, and CP/M emulation, with tape and snapshot support. Look elsewhere if you need a listed host platform beyond Linux or want the Spectrum frontend without SDL2.

Questions

Is ZOT free and open source?

Yes. ZOT is free and MIT licensed. Files in the z80-specs directory use a different license.

Which systems does ZOT emulate?

It emulates the Z80 CPU, ZX Spectrum 48K, and CP/M 2.2 using a shared Z80 core.

What platforms can it run on?

Linux is listed as a platform. The README also describes the core as small enough for microcontrollers such as RP2040 and lists Raspberry Pi Pico, Pimoroni Tufty 2040, and PicoCalc as host platforms.

Which Spectrum tape and snapshot formats does it support?

The tape player loads TZX and TAP files. The emulator loads 48K .z80 snapshots in versions 1, 2, and 3.

Does ZOT need SDL2?

SDL2 is required for the Spectrum frontend. The project also provides a CP/M terminal frontend.

Who makes ZOT?

The GitHub profile identifies antirez as Salvatore Sanfilippo, a computer programmer based in Sicily, Italy, who mostly writes open-source software.

Facts from ZOT's own pages

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, 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, 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, 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, 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, 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, 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, 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, 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, 8 Oct 2026
Microcontroller target
The README says the Z80 core is small enough to run on microcontrollers such as the RP2040. · github.com, 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, 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, 8 Oct 2026
Snapshots
The emulator loads 48K .z80 snapshots in versions 1, 2, and 3. · github.com, 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, 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, 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, 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, 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, 8 Oct 2026

Where ZOT stands on Freedom251

Look at these too