Difference between revisions of "SjasmPlus"

From CPCWiki - THE Amstrad CPC encyclopedia!
Jump to: navigation, search
(Category)
(sjasmplus new version with new features)
Line 3: Line 3:
 
== About ==
 
== About ==
  
SjASMPlus is Z80 Assembly Language Cross Compiler. It is available for Win32, DOS, Linux and FreeBSD(mainly 5.x) systems. It is based on SjASM source code by Sjoerd Mastijn - http://xl2s.tk SJASMPlus is a really powerfull Z80 Cross Compiler.
+
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).
  
== Features ==
 
  
* Z80/R800 documented and undocumented opcodes support
+
== Main Features ==
* 3-pass design
+
 
 +
* 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
 
* Built-in Lua scripting engine
* Compilation performance: 1 million lines by 2-3 seconds on modern computer
+
* 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…)
 
* Code inlining through colon (LD A,C:INC A:PUSH AF:IFDEF FX:LD A,D:ENDIF…)
* Structures to define data structures in memory more easily (use STRUCT pseudo-op)
+
* Very fast compilation: 1 million lines by 2-3 seconds on modern computer
* Conditional assembly
+
* Multiline block comments and user’s messages
* Macro definitions
+
* Local labels
+
* User’s messages
+
* Temporary labels
+
* Special modes for 8bit computers: ZX-Spectrum 48/128, Scorpion 256, ATM-Turbo 512
+
* Defines and array of defines
+
* Fake instructions as LD HL,DE (LD H,D:LD L,E)
+
* Source and binary file inclusion
+
* Multiline block comments
+
* Multi file output and file updating
+
* Librairies (trough use of MODULE and IFUSED directives)
+
  
== Missing features ==
 
  
SJASMPlus does not have support for the CPC range of computers. It can of course assemble working z80 code, but does not add an amsdos [[header]], and can't make a [[snapshot]] to use with emulators.
 
 
However, there is existing code for other platforms, and some minor adaptations should be enough.
 
  
 
== Links ==
 
== Links ==
 
+
* Sources : https://github.com/z00m128/sjasmplus
* Official Web site : [http://sjasmplus.sourceforge.net/ sjasmplus.sourceforge.net/]
+
* Documentation http://z00m128.github.io/sjasmplus/documentation.html
 +
* Old Web site : [http://sjasmplus.sourceforge.net/ sjasmplus.sourceforge.net/]
  
 
[[Category:CrossDev]] [[Category:Programming software]] [[Category:Assembler]]
 
[[Category:CrossDev]] [[Category:Programming software]] [[Category:Assembler]]

Revision as of 03:57, 4 July 2022

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