As usual, there's 100s of changes, the major features for this release include:
- Source code debugging support for programs compiled with sccz80
- Enhanced and optimised 8080/8085/gbz80 support
- Macros and improvements to z80asm
- <features.h> for cross target compatibility
- SDCC has been upgraded to v4.2.0 r13131
Targets added or improved significantly in this release are:
- Sam Coupé (+sam)
- PC88 (+pc88)
- Micro85 (+micro85)
- Radio 86 (+radio86)
- Bondwell 2 (via +cpm)
- PTC Sol 20 (+sol20)
- GSX Graphics (+cpm)
- RC2014 8085 support (+rc2014)
Some Additional Details
z88dk-gdb - IDE debugging is now supported using CLion/VSCode with MAME, or FUSE (Spectrum Emulator).
z88dk-z80asm - Is now a MACRO assembler, supporting all of the classic macro assembly key words. Additionally many synthetic instructions have been added across all platforms. A new FLOAT directive allows the assembly of floating point numbers in any one of the library's formats. The Intel 8085 undocumented instructions are now supported, as are all Z80N extension instructions.
z88dk-zsdcc - The latest stable release SDCC 4.2.0 has been patched to support z88dk and is included. The traditional z88dk calling conventions (
__z88dk_callee) have been retained.
Further integration of the classic and new libraries has been completed. To a large extent Z80 machines now share the same code base across both libraries. For the other machine types found in the classic library (I8080, I8085, and GBZ80) code has been organised for hierarchical inheritance, rewritten to be re-entrant, and provide
callee support wherever possible.
The floating point maths libraries have been extended, with the Microsoft
mbf32 library receiving code optimisation paths with I8085 and Z80 specific instructions. The IEEE single-precision
math32 Z80 support has been further performance optimised. The
am9511 APU maths library now works with I8085 CPUs and the classic library.
Improved or new support for many machines including the GL6000, the homebrew Micro85, the Radio86 family, the SAM support was extensively reworked, the NEC PC-88 video was reworked, and support for the PTC Sol 20 was added. Support for the RC2014 using the I8085 CPU was added, making use of the tighter integration between classic and new libraries. The CP/M target has been extended to support disc creation for Amstrad, Televideo, and Bondwell systems, and Amstrad PCW Graphics support was added. A generalised CP/M GSX graphics library is also now available.
And finally, building z88dk from source on ARM64 (AArch64) architecture (eg Apple M1, or Raspberry Pi 3 or later) is now supported, enabling a new generation of host systems.
The following downloads are available:
- z88dk-osx-2.2.zip - Binaries compiled for Intel Macs
- z88dk-win32-2.2.zip - Binaries compiled for 32 and 64 bit windows
- z88dk-src-2.2.tgz - Source tarball for all other platforms
Do not download the autogenerated "Source code" files at the bottom - they are missing dependencies and won't compile correctly!
It's February, so that must mean it's z88dk freeze and snapshot release time!
Unfortunately we ran out of time to complete some major projects, hopefully they'll be available in the nightly builds later on in the year.
However, as usual there's hundreds of changes ranging from more targets, to changes to speed up compilation and smoothing the development experience, some highlights:
There's new support for a bunch of 808x (and other) machines:
- Homelab 2 and Homelab3/4
- LM80-C homebrew machine
- Lviv/Lvov PK-01
- Ondra Vili
- Vector 06c
- Spectrum Next
There's also been some work around floating point again:
- A 16 bit IEEE754 maths library
- DAI 8080 maths library (classic)
- AM9511 support (newlib)
To create some noise, there's some tracker changes:
- Imported WYZplayer (AY)
- Imported Vortex Tracker2 (AY)
- PSGlib is now available for other targets (SN76489)
The toolchain has had some improvements too:
- zsdcc has been updated to sdcc 4.0.7 r12036
- sccz80 supports long long data types
- Concurrent builds from same directory are now supported
- Banking/MegaROMs supported on several targets
- Linking is now significantly faster on Windows
Another year has passed, so it must be time for a new z88dk release!
Despite the project being almost 22 years old we're still making
major changes and improvements
This release of z88dk sees support for two new processors:
- gbz80: zsdcc, sccz80 and classic now support gbz80 machines
- 8080/5: sccz80 and classic now support 8080/5 machines
Support for the following machines has been added:
- Nintendo Gameboy
- Tesla PMD85 (8080)
- CP/M based: Excalibur 64, Sony SMC-70/SMC-777, Sharp X1
- Hübler/Evert-MC, Hübler Grafik-MC, Kramer MC
- Nichibutsu My Vision, Hanimex Pencil II
- Toshiba Pasopia7, Bandai Supervision SV8000, Videoton TVC
- RomWBW based machines including Retrobrew and RC2014
- SCZ180 family machines
We've also improved floating point support:
- A (mostly) IEEE754 compliant maths library is available. This library takes
full advantage of the z180 and z80n multiply instructions.
- For classic, we've added support for 32 and 64bit Microsoft libraries
Of course, there's also many other fixes and new features.
This release of z88dk contains many significant changes over the 1.99B, significantly increasing the number of supported systems, improving source code compatibility between the two compilers and natively supporting more z80 derivative CPUs. The major changes are detailed below:
- sccz80 has seen many changes, included frontend parsing enhancements and
code generator optimisations
- sccz80 accepts the same extension syntax as zsdcc
- The sccz80 preprocessor has been changed to ucpp which is C99 compatible
- z80asm now supports Rabbit 2000/3000, z180 and ZX Next CPUs
- Appmake can now generate disc images for many CP/M machines
- Classic supports several new targets
- Classic provides a standard VT52 console for many targets
- newlib now provides extensive support for the ZX Spectrum Next
- newlib support for the RC2014 and z180 has been significantly improved