z88dk v2.2 released

Announcements for z88dk releases
Post Reply
User avatar
dom
Well known member
Posts: 1688
Joined: Sun Jul 15, 2007 10:01 pm

z88dk v2.2 released

Post by dom »

A little later in the year than usual, I've just snapshotted the nightly build from last night and promoted to release.

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_fastcall & __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.

Downloads are available from:

* GitHub: https://github.com/z88dk/z88dk/releases/tag/v2.2
* Sourceforge: https://sourceforge.net/projects/z88dk/files/v2.2/
* Snapcraft: Latest release has been promoted to the beta channel
derekfountain
Member
Posts: 112
Joined: Mon Mar 26, 2018 1:49 pm

Re: z88dk v2.2 released

Post by derekfountain »

Struggling to build on my Ubuntu Focal box. I downloaded the z88dk-2.2.zip straight from the github site, then followed the instructions in the installation wiki page.

I needed to install uthash-dev, so I think that should be added to the dependencies list?

Even then it still fails to build:

Code: Select all

ccache gcc -std=gnu11 -MMD -Wall -O3 -Isrc -Isrc/c -It -I../common -I../../ext/optparse -I../../ext/regex -I../../ext/uthash/src  -g -O2 -c -o ../common/objfile.o ../common/objfile.c
../common/objfile.c: In function ‘file_rename_sections’:
../common/objfile.c:1066:8: error: ‘REG_OKAY’ undeclared (first use in this function)
 1066 |     == REG_OKAY)
      |        ^~~~~~~~
I found this

viewtopic.php?t=10757

which is the same (similar?) issue, but it's 3 years old! Following the guidance there, I copied the cpanm line out of the 2.2's .travis.yml file, which updated some Perl bits (which suggests the line on the wiki page is out of date?) but I still hit the same problem.

I'm not sure what's going on, but it looks like the ZIP file is missing the contents of the external dependencies:

Code: Select all

derek@donkey:/media/homearray/home/derek/BEETLE/Derek/dev/Spectrum/DevelopmentTools/Z88DK/2.2/z88dk-2.2-built/ext
>ls -lR *
getopt:
total 32
-rw-rw-r-- 1 derek derek 6289 Jul 22 20:27 getopt.c
-rw-rw-r-- 1 derek derek 1984 Jul 22 20:27 getopt.h
-rw-rw-r-- 1 derek derek 1528 Jul 22 20:27 LICENSE
-rw-rw-r-- 1 derek derek  512 Jul 22 20:27 Makefile
-rw-rw-r-- 1 derek derek 1863 Jul 22 20:27 README
-rw-rw-r-- 1 derek derek 5304 Jul 22 20:27 test.c

optparse:
total 0

regex:
total 0

Unity:
total 0

UNIXem:
total 0

uthash:
total 0
Those subdirectories are populated in my HEAD git directory (cloned with --recursive).

Then again, the ZIP for the 2.1 release doesn't have those directories populated either.

I'm getting a bit out of my depth, but something's not right!
User avatar
dom
Well known member
Posts: 1688
Joined: Sun Jul 15, 2007 10:01 pm

Re: z88dk v2.2 released

Post by dom »

The zip file is the auto zip of the repo. You actually need the z88dk-src-2.2.tgz file which has the dependencies in it.

Unfortunately I don't think I can hide or delete the auto zips.
derekfountain
Member
Posts: 112
Joined: Mon Mar 26, 2018 1:49 pm

Re: z88dk v2.2 released

Post by derekfountain »

Hmmm, I can't be the only person who went to Github, clicked the green "Code" button, then hit "Download ZIP" from the dropdown that appears.

Is there any merit in putting a check in the build script to stop with an informative error if it finds the external dependency directories empty? Rather than just falling over during the compile, which is what it currently does?
User avatar
jorgegv
Member
Posts: 136
Joined: Wed Nov 18, 2020 5:08 pm

Re: z88dk v2.2 released

Post by jorgegv »

Just added a PR for this:

https://github.com/z88dk/z88dk/pull/2056

J.
derekfountain wrote: Sun Jul 24, 2022 10:30 am Hmmm, I can't be the only person who went to Github, clicked the green "Code" button, then hit "Download ZIP" from the dropdown that appears.

Is there any merit in putting a check in the build script to stop with an informative error if it finds the external dependency directories empty? Rather than just falling over during the compile, which is what it currently does?
derekfountain
Member
Posts: 112
Joined: Mon Mar 26, 2018 1:49 pm

Re: z88dk v2.2 released

Post by derekfountain »

See the comment I added to the PR. :)
Post Reply