FantASM

Z80 assembly, modernised.

A cross-platform Z80 assembler — the complete Z80 and Z80N instruction sets, macros, structs and enums, an embedded Rhai engine and built-in unit tests, with output for bare-metal Z80 and the whole ZX Spectrum family.

Complete Z80 + Z80N

The full Z80 and Z80N instruction sets, including every ZX Spectrum Next extended opcode.

A real language

Macros, structs, enums and expressions — assembly with the ergonomics of a modern language.

Scriptable & tested

An embedded Rhai engine for compile-time logic, plus built-in unit tests to keep your code honest.

Targets everything

Output bin, hex, sna and .nex for bare-metal Z80 and the whole Spectrum family — on macOS, Windows and Linux.

FantASM 2.2.0 is available

FantASM 2.2.0 is available to download. The linker grows up: fantasm link places sections by a link map, writes fxi version 3, and carries !test blocks from objects into a JSON file another host can run. A program embedding the crate can no…

Read more →

FantASM 2.1.0 is available

FantASM 2.1.0 is available to download. !virtual places code at an address it does not yet occupy, ALIGN pads to a boundary, and an expression takes every comparison !assert already spelt. Underneath, the whole diagnostic register — message…

FantASM 2.0.0 is available

FantASM 2.0.0 is available to download. The editor now answers with what the build answers. Libraries get a real interface, tests get spans and checksums, and 59 new diagnostic codes say what is wrong rather than sharing one number between …