SjasmPlus

From CPCWiki - THE Amstrad CPC encyclopedia!
Revision as of 18:27, 15 January 2024 by Polluks (Talk | contribs) (Links)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Here are the informations presented on the official website :

About

SjASMPlus is Z80 Assembly Language Cross Compiler. It is available for Win32, Linux and FreeBSD (mainly 5.x) systems. It is based on SjASM source code by Sjoerd Mastijn (http://xl2s.tk).


Main Features

  • 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
  • Relocation data generator to support SymbOS-like relocation of executables
  • Virtual device mode for common machines: ZX 128, ZX Next, Amstrad CPC, … (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)
  • Amstrad CPC 464/6128 specific directives (SAVECPCSNA)
  • Correctness is assured by Cirrus-CI with 400+ automated tests (that's also 400+ 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


Links