Hi,
I recently published on GitHub (
https://github.com/Laci1953/Z80AS ) a new Z80 assembler, named Z80AS.
Z80AS is actually an adaptation of the ZSM4 macro-assembler v4.6 published by Hector Peraza on GitHub (
https://github.com/hperaza/ZSM4 ).
Thanks to the high quality of the work done by Hector Peraza, the adaptation was easy, actually the most difficult part was writing a new OBJ format object code generator, to obtain compatibility with the HiTech's LINK linker.
Z80AS runs on CP/M. and is compatible with the HiTech C compiler, ZAS assembler and LINK linker.
The main target of the adaptation was to obtain an assembler compatible with ZAS, the assembler that is used by the HiTech C Compiler, but superior as performance.
The biggest ZAS problem is related to its size (38KB), and because of this ZAS is unable to assemble large source files (too small free space remains for the symbols).
Z80AS’s size is only 22KB, that means 16KB more memory is available to store the symbols, compared to ZAS.
For example, ZAS fails to assemble the CP/M BDOS source. In contrast, Z80AS succeeds to assemble even a larger file, the CP/M BDOS and BIOS, concatenated (see the file: tests/bdosbios.as).
Often, using HiTech’s C compiler to compile large C files is not possible because ZAS fails to assemble the intermediate file produced by the compiler (“out of memory” error message).
Z80AS is compatible with HiTech’s ZAS (command line & syntax) and produces object files compatible with HiTech’s LINK linker.
Therefore, it can substitute ZAS, without disturbing the use of HiTech's C compiler.
Compared to HiTech's ZAS assembler, Z80AS has some advantages:
- can compile larger source files
- supports the undocumented Z80 instructions
- has more pseudo operators (conditionals, listing control)
- has better MACRO facilities (REPT,IRP,IRPC,LOCAL)
- has better support for expression evaluation, including extensive use of parentheses and well-defined operator precedence
- selective jump instructions optimization, using optimization On/Off switching
Ladislau
--- SoupGate-Win32 v1.05
* Origin: fsxNet Usenet Gateway (21:1/5)