Retro programming / Z80 tools

ZCASMB

A Z80 assembly source translator for BDS C, adapted from ZCASM for Windows.

BDS CZ80WindowsANSI CVersion 1.6

ZCASMB Copyright (c) 2017 Masaki Oba
ZCASM Copyright (c) 1983 Brian Waldron, Xerox Corporation

About ZCASMB

ZCASM and ZCASMB are Z80 assembly source tools for the BDS C compiler. ZCASMB is a text-to-text translator that converts CZM-format Z80 assembly source into a format used to build CRL libraries.

ZCASMB is written in ANSI C and was built with C++ Builder for Microsoft Windows. It may also work on other operating systems.

ZCASMB is a Windows adaptation of ZCASM (based on ZCASM15.C). ZCASM, in turn, is a modification of Leor Zolman's CASM for CP/M.

The tool accepts standard Zilog Z80 mnemonics and generates short labels for use with Microsoft's M80/L80 on CP/M or zmac. For more information, see the CASM appendix in the BDS C User's Guide.

CASM is the 8080 assembly language tool for BDS C on CP/M.

Download

Download ZCASMB Ver 1.6 for Windows ↗

Includes AAPP, the conditional assembly preprocessor.

History

Version 1.6 (Windows) — 9 Mar 2017; comments updated 31 Mar 2017
  • Updated the BDS C and CP/M source for modern ANSI C and Windows (C++ Builder).
  • Fixed an EXTERNAL error in IF conditional assembly.
  • Changed the assembler command SET to ASET to avoid a conflict: SET is a Z80 mnemonic, while ASET is used as the assembler command.

Compile and batch files

Compile with C++ Builder on Windows

bcc32 zcasmb.c

Create a CRL library (Windows batch file)

del /q %1.crl
zcasmb.exe %1.czm
zmac.exe %1.mac
move zout\%1_temp.cim %1.crl

Build a CRL for MSX-DOS

Conditional assembly for MSX-DOS and MSX-BASIC: CPM EQU 1 and BASIC EQU 0. The original ZCASM/ZCASMB conditional assembly can fail in some cases, so this example uses the AAPP preprocessor.

File: crlmakemsxdos.bat

del /q %1.crl
aapp.exe %1.czm -cpm > %1_temp.czm
zcasmb.exe %1_temp.czm
zmac.exe %1_temp.mac
move zout\%1_temp.cim %1.crl

Build a CRL for MSX-BASIC

Conditional assembly for MSX-DOS and MSX-BASIC: CPM EQU 0 and BASIC EQU 1. This example also uses the AAPP preprocessor.

File: crlmakebasic.bat

del /q %1.crl
aapp.exe %1.czm -basic > %1_temp.czm
zcasmb.exe %1_temp.czm
zmac.exe %1_temp.mac
move zout\%1_temp.cim %1.crl

License

ZCASMB is hereby placed in the public domain with the restriction that it may not be distributed for profit.

Source code is available.