Difference between revisions of "Assemblers"

From SpecNext official Wiki
Jump to: navigation, search
(updating sjasmplus description with new features from v1.14.4)
 
(20 intermediate revisions by 4 users not shown)
Line 1: Line 1:
 
Any Z80 assembler can produce code suitable for the Next. However the raw blocks of Z80 code may be not as convenient to use with Next or emulators, so a Next specific tools may be useful for creating one of the supported [[File Formats]].
 
Any Z80 assembler can produce code suitable for the Next. However the raw blocks of Z80 code may be not as convenient to use with Next or emulators, so a Next specific tools may be useful for creating one of the supported [[File Formats]].
 +
 +
== Cross-platform tools (running on PC) ==
  
 
=== ''[http://www.desdes.com/products/oldfiles/zeus.htm Zeus-ish]'' ===
 
=== ''[http://www.desdes.com/products/oldfiles/zeus.htm Zeus-ish]'' ===
Line 14: Line 16:
 
=== ''SNasm'' ===
 
=== ''SNasm'' ===
 
Included with the [http://dailly.blogspot.com/2019/04/cspect-v270.html #CSpect] emulator
 
Included with the [http://dailly.blogspot.com/2019/04/cspect-v270.html #CSpect] emulator
 +
: Full macro assembler
 +
: Full bank control via Segment management
 
: Supports the Next extension opcodes directly
 
: Supports the Next extension opcodes directly
 +
: Generates full 24bit map files for use in CSpect
  
 
=== ''z80asm'' ===
 
=== ''z80asm'' ===
Line 21: Line 26:
  
 
=== ''[https://github.com/z00m128/sjasmplus z00m's fork of sjasmplus]'' ===
 
=== ''[https://github.com/z00m128/sjasmplus z00m's fork of sjasmplus]'' ===
: Supports all (core2.00.28) Next extension opcodes, ZXN memory model (8 memory slots with 8ki pages and 1.75MiB virtual device memory), SAVENEX to build NEX files directly from ASM source (NEX version V1.2 and V1.3), MAP files for [http://cspect.org/ #CSpect] emulator, SLD tracing files for [https://github.com/Ckirby101/NDS-NextDevSystem NDS-NextDevSystem] and it is under active development (feedback is welcome).
+
: Supports all (core2.00.28) Next extension opcodes, ZXN memory model (8 memory slots with 8ki pages and 1.75MiB virtual device memory), SAVENEX to build NEX files directly from ASM source (NEX version V1.2 (and experimental extension "V1.3")), MAP files for [http://cspect.org/ #CSpect] emulator, SLD tracing files for [https://github.com/maziac/DeZog DeZog] and [https://github.com/Ckirby101/NDS-NextDevSystem NDS-NextDevSystem] and it is under active development (feedback is welcome).
: Open source project ("BSD-3-Clause" license), windows executables available at [https://github.com/z00m128/sjasmplus/releases/latest releases], mac and linux users are expected to simply build from source (both make and CMake are supported).
+
: Open source project ("BSD-3-Clause" license), '''windows executables available at [https://github.com/z00m128/sjasmplus/releases/latest releases]''', mac and linux users are expected to simply build from source (both make and CMake are supported).
: [http://z00m128.github.io/sjasmplus/documentation.html Documentation], latest stable release v1.14.4 2020-01-13
+
: [http://z00m128.github.io/sjasmplus/documentation.html Documentation], latest stable release v1.20.3 2023-06-23
  
 
=== ''[https://github.com/CatpainBlack/FantASM FantASM]'' ===
 
=== ''[https://github.com/CatpainBlack/FantASM FantASM]'' ===
Line 29: Line 34:
  
 
It supports all undocumented op-codes and the extended instruction set of the ZX Next and additional pseudo opcodes used by the CSpect emulator to control debugging.
 
It supports all undocumented op-codes and the extended instruction set of the ZX Next and additional pseudo opcodes used by the CSpect emulator to control debugging.
 +
 +
== Native tools (running on Next) ==
 +
 +
=== ''[https://gitlab.com/next-tools/odin Odin]'' ===
 +
 +
Work-in-progress Next-specific assembler written by Matt Davies, used also in video tutorials presented by Jim Bagley, the best way to acquire the binary is to join the official ZX Next discord server and check channel <code>#odin</code> - pinned messages, where you can also discuss any issues and get how-to hints.
 +
 +
: supports most of the undocumented opcodes, all official Z80 and Next-extended instructions
 +
: supports nested includes and binary includes
 +
: source is stored in tokenised form (smaller file), up to 48kiB of source in single file
 +
: assembling can produce 32kiB of machine code (enough to produce simpler dot command)
 +
: includes also editor and console modules (debugger is planned)
 +
 +
=== ''[https://www.solarisite.com/spectrumnext.html Sol]'' ===
 +
 +
Sol is an assembler and editor written by Solaris, that runs natively on the Next. Manual, assembler binary and assembler source can be downloaded [https://www.solarisite.com/spectrumnext.html here].
 +
 +
=== ''[https://gitlab.com/thesmog358/tbblue/-/tree/master/tools/dev/Zeus ZEUS]'' ===
 +
 +
Classic ZEUS native assembler by Simon Brattel, extended and included directly in the ZX Next distro.
 +
 +
=== ''[https://gitlab.com/thesmog358/tbblue/-/tree/master/tools/dev/SPED SPED]'' ===
 +
 +
Classic SPED assembler by César Hernández Bañó, included directly in the ZX Next distro, see [https://gitlab.com/thesmog358/tbblue/-/raw/master/docs/apps/dev/SPED53readme.txt README].
 +
 +
=== ''[https://taylorza.itch.io/nextbasic-inline-assembler NextBASIC Inline Assembler]''===
 +
Enables you to write inline assembly code in your NextBASIC application. The assembler can be downloaded from [https://taylorza.itch.io/nextbasic-inline-assembler HERE] with documentation available [https://github.com/taylorza/zxn-inlineasm-doc/blob/main/README.md HERE]

Latest revision as of 15:34, 24 March 2024

Any Z80 assembler can produce code suitable for the Next. However the raw blocks of Z80 code may be not as convenient to use with Next or emulators, so a Next specific tools may be useful for creating one of the supported File Formats.

Cross-platform tools (running on PC)

Zeus-ish

Provides a complete Z80 IDE and Macro assembler, scripted disassember plus an integrated Z80 emulator for a range of machines including partial Next support
Supports the Next opcodes directly
Supports remote debugging on the Next using ParaSys across a serial link
Supports MMU paging in the integrated emulator
Supports sprites (core versions prior to 2.00.26) in the integrated emulator

Pasmo

A long established Z80 assembler, but has been out of development for a long time
Supports all currently known Next extension opcodes through this modified Pasmo from Russ McNulty and Tony Thompson and also now supports outputting .sna files to use with CSpect, thanks to Russ McNulty

SNasm

Included with the #CSpect emulator

Full macro assembler
Full bank control via Segment management
Supports the Next extension opcodes directly
Generates full 24bit map files for use in CSpect

z80asm

Part of Z88dk

Supports the Next extension opcodes directly, linking assembler with large z80 library, targets any memory configuration

z00m's fork of sjasmplus

Supports all (core2.00.28) Next extension opcodes, ZXN memory model (8 memory slots with 8ki pages and 1.75MiB virtual device memory), SAVENEX to build NEX files directly from ASM source (NEX version V1.2 (and experimental extension "V1.3")), MAP files for #CSpect emulator, SLD tracing files for DeZog and NDS-NextDevSystem and it is under active development (feedback is welcome).
Open source project ("BSD-3-Clause" license), windows executables available at releases, mac and linux users are expected to simply build from source (both make and CMake are supported).
Documentation, latest stable release v1.20.3 2023-06-23

FantASM

FantASM is a two pass non optimising assembler for the Z80 processor by Guy 'CatpainBlack' Black.

It supports all undocumented op-codes and the extended instruction set of the ZX Next and additional pseudo opcodes used by the CSpect emulator to control debugging.

Native tools (running on Next)

Odin

Work-in-progress Next-specific assembler written by Matt Davies, used also in video tutorials presented by Jim Bagley, the best way to acquire the binary is to join the official ZX Next discord server and check channel #odin - pinned messages, where you can also discuss any issues and get how-to hints.

supports most of the undocumented opcodes, all official Z80 and Next-extended instructions
supports nested includes and binary includes
source is stored in tokenised form (smaller file), up to 48kiB of source in single file
assembling can produce 32kiB of machine code (enough to produce simpler dot command)
includes also editor and console modules (debugger is planned)

Sol

Sol is an assembler and editor written by Solaris, that runs natively on the Next. Manual, assembler binary and assembler source can be downloaded here.

ZEUS

Classic ZEUS native assembler by Simon Brattel, extended and included directly in the ZX Next distro.

SPED

Classic SPED assembler by César Hernández Bañó, included directly in the ZX Next distro, see README.

NextBASIC Inline Assembler

Enables you to write inline assembly code in your NextBASIC application. The assembler can be downloaded from HERE with documentation available HERE