Difference between revisions of "Assemblers"
(some wording in preamble) |
|||
(29 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 20: | Line 25: | ||
: Supports the Next extension opcodes directly, linking assembler with large z80 library, targets any memory configuration | : Supports the Next extension opcodes directly, linking assembler with large z80 library, targets any memory configuration | ||
− | === '' | + | === ''[https://github.com/z00m128/sjasmplus z00m's fork of sjasmplus]'' === |
− | [https://github.com/z00m128/sjasmplus z00m's fork] | + | : 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). |
− | : 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, MAP files for CSpect emulator 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 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.20.3 2023-06-23 |
− | : [http://z00m128.github.io/sjasmplus/documentation.html Documentation], latest stable release v1. | + | |
+ | === ''[https://github.com/CatpainBlack/FantASM FantASM]'' === | ||
+ | FantASM is a two pass non optimising assembler for the Z80 processor by [https://github.com/CatpainBlack 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) == | ||
+ | |||
+ | === ''[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.
Contents
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