Skip to content
The 198x family
// 198x FAMILY · ASM198X

Asm198x

Modern assemblers & disassemblers for retro CPUs

Asm198x is the family's assembler toolchain — one modern, statically-linked, cross-platform binary that assembles and disassembles code for the retro CPUs of the era. Rather than invent a house syntax, each front-end matches a dialect people already use, and the output is checked byte-for-byte against that reference tool.

Why it exists

The period assemblers are dead-OS binaries — you need DOSBox or a full emulator just to run them. The modern community tools mostly work, but they're fragmented: a different program, syntax and build dance per machine, much of it unmaintained C. Asm198x is one well-documented toolchain that spans the family's CPUs. Rescue beats replace.

What it covers

Five CPUs, both directions, every front-end validated byte-identical against the reference assembler: 6502 (acme for the C64, ca65 for the NES — with a bounded linker that emits a real .nes ROM), Z80 (pasmo/pasmonext and sjasmplus, including the Spectrum Next's Z80N), 68000 (vasm, with Amiga hunk-executable output), 6809 (lwasm), and 65816 (ca65). Assemble → disassemble → reassemble round-trips byte-for-byte.

How it's used

One binary, one --dialect flag. A few illustrative commands (the full dialect and flag set is on GitHub):

Assemble C64 source (acme dialect)

asm198x --dialect acme countdown.s -o countdown.bin

Assemble + link a finished NES ROM (ca65)

asm198x --dialect ca65 game.asm -o game.nes

Disassemble a binary back to source

asm198x --disasm --dialect 6502 --org 0x0200 countdown.bin

Why it's in the family

It's the tool that assembles Code198x's lesson code — the C64 (80 units), NES (32 units) and Spectrum (20 units) curricula all build byte-identical through it, so the code in a lesson is exactly what the reference assembler produces. The shared isa spec at its core is also the encoding source of truth that Emu198x validates its decoders against — one set of facts, three siblings. It's its own project with its own roadmap, not a Code198x component.

New View on GitHub

Full docs, dialects, and the CPU roadmap live on GitHub.