z88dk - The z88 Development Kit

 
What is z88dk?  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 supported only the Cambridge z88 portable.

The compiler featured in z88dk is 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 optimizations, but the bulk of the optimization is done 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.
 

The Features  z88dk has the following features:
  • Small C+ based compiler with structs, floats and other ANSI extensions
  • Module assembler/linker which only includes required library routines
  • Peephole optimizer with rulesets that reduce the size of generated code by ~30% and improve speed
  • Easily retargetted C library including stdio routines
  • Retargettable VT100 terminal
  • Support for over a 25 z80 based machines (see below for details)
 
Supported Targets  z88dk produces code and programs that will run on the following machines: Cambridge Computers z88, Sinclair ZX Spectrum, Sinclair ZX81, CP/M based machines, Amstrad NC100, VZ200/300, Sharp MZ series, TI calculators (TI82, TI83, TI83+, TI85, TI86), ABC80, Jupiter Ace, Xircom REX 6000, Peters Sprinter, Sam Coupe, MSX1,Spectravideo, Mattel Aquarius, Peters Sprinter, and C128 (in z80 mode) machines. The level of support varies between machines.
 
Platforms  z88dk is known to run on the following platforms: Amiga, BeOS, HP-UX 9, Linux, MacOS X, Solaris, Win32, Win16 and MSDOS. Binary releases are available for Amiga, Solaris and Win32. Win16/MSDOS needs be rolled by the user. On BSD machines, GNU make should be used instead of the native make program.
 
Who's responsible?  Dom Morris started the project in August 1998 targetting the z88, and adding preliminary Spectrum support, and functional Amstrad NC100 support. Stefano Bodrato is responsible for the other ports. Henk Poley is refining and improving, with Stefano, the TI calculator support. Dennis Gröning is, as ever, coaxing z88dk to run as well on Windows as it does on Unix.

So, if you have a problem with library support (except for the z88) contact either Stefano or Henk, or a problem with anything else, or if you want to retarget to a new machine contact Dom .
 

Download  The most current version of z88dk can be found via CVS , if that doesn't take your fancy then you can grab official releases from the z88dk downloads page.

MSDOS and Win32 binaries are available from Dennis Gröning's z88dk page.
 

Documentation  Some documentation is now available.

The new screenshots page shows z88dk compiled programs running on a variety of different platforms.
 
News
23.1.2003

A couple of issues have arisen from the 1.5 release. This small patch will resolve these issues. To install, download the zip file cd to the z88dk directory and unzip. This patch should work on all platforms.

16.12.2002


z88dk v1.5 has been released. Head on over to the downloads page to get the latest. This release has support for 25 different Z80 based machines to varying degrees.

1.10.2002


We're still alive! Many things have been added in CVS such as ZXVGS support. Bugs have been fixed and we now have a copt that supports regular expressions. Soon full stdio support for the Rex6000 will be integrated. And yes, we will try to make a release soon now that the Win32 problems have been resolved.

20.1.2002

Generic floating point asin() and acos() added. Generic atan() and atan2() now working.

18.1.2002

We were planning to release a new version of z88dk before the start of the year, but we're running late! I highly recommend that you build from CVS, some cool things have been happening there recently:
  • Mattel Aquarius port (VT100 & Native)
  • TI86 stability improvements
  • 1 bit sound (FX and music) support for Z88, ZX Spectrum, TI Calculators
  • `Joystick' support for TI Calculators and ZX Spectrum (Kempston, Sinclair 1,2, Cursor and Fuller joysticks are supported)
  • +3DOS file support
  • Improved REX6000 library (integration of RexDk)
  • z80asm parsing improvements (now more like `normal' assemblers)
  • Compiler casting bug fixes and misc fixes
3.9.2001

Complete Xircom REX 6000 support added to CVS from RexDK

16.5.2001

z88dk v1.33 released supporting 19 z80 based machines

8.3.2001
  • New z88dk webpage online.
  • Work continues in CVS


Links  A bunch of links that have some z88dk connection
  • ZSock (z88) The z88 TCP/IP stack - the reason why z88dk was started in the first place
  • z88 Forever (z88)The site for everything z88 related
  • Graham's REX 6000 Notes (REX) Graham has written some extremely nice REX libraries
  • Z88dk with Borland C IDE (REX) A site telling you how to use z88dk with the Borland 3.1 IDE.
  • T80 Z80 CPU core (embedded) Daniel Wallner's Z80 core which is supported by z88dk
  • EZ-Stunt (embedded) Uses z88dk to target a z80s183 to do, well, take a look!
  • Sprite Pack (ZX Spectrum) A fully features sprite library for Spectrum/Timex machines


Hosted by: sourceforge.net
Last update: 21/1/2003 Contact:  dom