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
z88dk v2.2 released
-
- Member
- Posts: 119
- Joined: Mon Mar 26, 2018 1:49 pm
Re: z88dk v2.2 released
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:
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:
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!
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)
| ^~~~~~~~
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
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!
Re: z88dk v2.2 released
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.
Unfortunately I don't think I can hide or delete the auto zips.
-
- Member
- Posts: 119
- Joined: Mon Mar 26, 2018 1:49 pm
Re: z88dk v2.2 released
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?
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?
Re: z88dk v2.2 released
Just added a PR for this:
https://github.com/z88dk/z88dk/pull/2056
J.
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?
-
- Member
- Posts: 119
- Joined: Mon Mar 26, 2018 1:49 pm
Re: z88dk v2.2 released
See the comment I added to the PR. 
