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 twenty z80 targets with the level of library support for each target varying with interest shown by users.
Changes:
* [sccz80] Bug fixes, tweaks to single parameter function pointer calls
* [z80asm] Z80asm supporting Rabbit
* [zcpp] End of file fix for win32
* [zcc] -Cz flag to pass through to appmake
* [appmake] Support for most z88dk targets
* [lib/crt0] Support for Newbrain, Rabbit, Sega Master System SMS, TS2068
* [lib] Much of the library rewritten to use FASTCALL and CALLEE linkage for faster and small library function calls
* [lib] malloc library can now allocate from a scattered map of available RAM and supports multiple heaps
* [lib] balloc library introduced as a block memory allocator
* [lib] interrupt mode 2 library added
* [lib] stdlib and strings now completely implemented in assembler and expanded
* [lib] abstract data types library introduced initially containing linked list, heap, stack and queue algorithms library begun initially containing an implementation of the A* search algorithm
* [lib] ZX Spectrum : ZX basic fcntl driver
* [lib] ZX Spectrum : SP1 software sprite engine added
* [lib] ZX Spectrum : Improved Spectrum library includes new display functions
* [lib] ZX Spectrum : Input library added for direct access to keyboard, joystick and mouse devices