Command-line cross-compiler of assembly language for Z80 CPU.
Supports many ZX-Spectrum specific directives, has built-in Lua scripting engine and 3-pass design.
For GNU/Linux, BSD, Raspberry Pi, macOS and Windows (click for exe).
GNU make or CMake installation methods for your convenience.
Online documentation (it is also included in the binary-release zip for offline viewing).
Post issues, feedback, feature requests, etc on github.
- Full source of assembler available under BSD license, modify and extend as you wish
- Z80/R800/Z80N/i8080/LR35902 documented and undocumented opcodes support
- Macro language, defines, array of defines
- Built-in Lua scripting engine
- Conditional assembly, block repeating
- Modules (namespaces), local and temporary labels
- Source and binary file inclusion, include paths
- Multi file output, file updating, various types of exports
- Structures to work easily with structured data in memory (
STRUCT
pseudo-op) - Virtual device mode for common machines: ZX 128, ZX Next, … (pseudo op
DEVICE
) - ZX Spectrum specific directives and pseudo ops (SAVESNA, SAVETAP, SAVEHOB, INCHOB, INCTRD…)
- ZX Spectrum Next specific features and directives (Z80N, 8ki memory paging,
SAVENEX
) - Correctness is assured by Cirrus-CI with 256+ automated tests (that's also 256+ examples of usage!)
- Fake instructions as
LD HL,DE
(LD H,D:LD L,E
) and more - Code inlining through colon (
LD A,C:INC A:PUSH AF:IFDEF FX:LD A,D:ENDIF
…) - Very fast compilation: 1 million lines by 2-3 seconds on modern computer
- Multiline block comments and user’s messages
This repository was created by import from original Aprisobal's repository @ https://sourceforge.net/projects/sjasmplus/.