z88dk logo

z88dk is a z80 C cross compiler supplied with an assembler/linker and a set of libraries implementing the C standard library for a number of different z80 based machines. The name z88dk originates from the time when the project was founded and targetted only the Cambridge z88 portable.

The compiler featured in z88dk is a much enhanced Small C compiler; the compiler accepts many features of ANSI C and is only deficient in a few areas where implementation on a z80 processor might prove inefficient. The compiler performs simple optimisations, but the bulk of the optimisation is achieved by a set of peep-hole rules, which will typically reduce the size of a large project by up to a third.

The libraries supplied with z88dk are designed to be as generic as possible, indeed it is possible to port to a new machine simply by supplying two library routines and some startup code. It is hoped that one day z88dk will support as many z80 based machines as there is information available and sufficient interest in. Currently z88dk supports more than fifty z80 targets with the level of library support for each target varying with interest shown by users.

z88dk is known to run on a wide variety of platforms including: Linux, MacOS X, Solaris, BeOS, Win32, Win16 and MSDOS. Binary releases are available for Win32 and MacOS X, additionally, packages are available for many Linux distributions. On BSD machines, GNU make should be used instead of the native make program.



Library Documentation

  1. Platform Independent Library Functions
  2. Platform Dependent Library Functions
  3. Third Party Libraries

Advanced Topics


Development Branch

The C libraries, assembler and compiler in z88dk are currently seeing significant updates.

Among the changes are:

  • z80asm, z88dk's assembler / linker, has been updated to support sections.
  • zcc, z88dk's project builder, has been modified to allow C compilation using one of two selectable C compilers: z88dk's native sccz80 and sdcc-z80.
  • A new c library is being completely rewritten in assembly language to be as fully C11 compliant as is reasonable.

The new clib will exist in parallel with the current clib and selection of one or the other will be made with a compile line switch.

You can read more about it and find details on how to try it here.

Supported Targets

Unsupported Targets


z88dk related articles in online magazines

z88dk related videos


Under Construction

start.txt · Last modified: 2016/03/30 06:45 by stefano
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki