Z88DK is a collection of software development tools that targets the 8080 and z80 family of machines. It allows development of programs in C, assembly language or any mixture of the two. What makes z88dk unique is its ease of use, built-in support for many z80 machines and its extensive set of assembly language library subroutines implementing the C standard and extensions.
There are several ways to install z88dk.
git clone --recursive https://github.com/z88dk/z88dk.git. To add the submodules to an already existing clone use
git submodule update --init --recursive. To build, the following instructions should be followed.
CMake can be used to build Z88DK projects (a toolchain is provided). Please refer to CMake wiki.
Many tools have a
z88dk- prefix to distinguish them from tools from other packages that may be installed with the same name. The documentation
generally omits the prefix when referring to them.
These tools are not normally directly invoked by the user:
The assembly language libraries supplied by z88dk give it performance advantages over other z80 compilers. For details please look at the Benchmarks section in the Wiki.
Unfortunately, like a lot of open source projects, we could use a lot of help with the documentation.
Some things to know:
When you form a compile line you must decide which compiler you will use and which c library you will link against. You will make that decision based on which targets you want to compile for and what features you need.
The classic c library is z88dk's original c library and it has crts that allow generation of programs for 80+ different z80 machines. The level of support for each is historically determined by user interest. Documentation begins here and example programs can be found in z88dk/examples with compile lines most often appearing at the top of .c files.
The new c library is z88dk's rewrite aiming for a large subset of C11 conformance. It directly supports eleven targets currently (cpm, hbios, rc2014, scz180, sega master system, yaz180, z180, z80, zx spectrum, and zx spectrum next) but the z80 target (aka embedded target) can also be used to compile programs for any z80 machine. Documentation begins here and example programs can be found in z88dk/libsrc/_DEVELOPMENT/EXAMPLES with compile lines most often appearing at the top of .c files.
Z88DK Home Page Includes a link to the nightly builds where you can get an up-to-date package.
Bug Reporting (old bugs in the forum)
Using z88dk with the rc2014 target, covers cpm, hbios, and rc2014 subtypes.
Using z88dk with zx, covers the zx target, and by extension the zxn target.