Jump to content
Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

SjasmPlus: Difference between revisions

From CPCWiki - THE Amstrad CPC encyclopedia!
Polluks (talk | contribs)
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 07: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