z88dk v1.99A Released

Announcements for z88dk releases
Post Reply
alvin
Well known member
Posts: 1872
Joined: Mon Jul 16, 2007 7:39 pm

z88dk v1.99A Released

Post by alvin »

The new version is available from sourceforge.


CHANGES (brief)


z88dk 1.99A 23.Dec.2015
Major changes incorporated into z88dk. This is a transition release in anticipation of v2.0.

Two C compilers are supported (sccz80 - z88dk's native C compiler - and sdcc).
Two different C libraries are present (classic - the same library as pre 1.99A - and new).

Accordingly, there are now three different compile modes:

1. Compile with sccz80 and the classic C library. This is equivalent to pre-1.99A.
2. Compile with sccz80 and the new C library. Compile lines include "-clib=new".
3. Compile with sdcc and the new C library. Compile lines include "-clib=sdcc_ix" or "-clib=sdcc_iy".

[z80asm] Sections have been introduced for generating memory maps and compiling to bankswitched memory.
[z80asm] Modern logical operators have been adopted.
[z80asm] New scoping keywords PUBLIC, EXTERN and GLOBAL introduced.
[z80asm] Relocate files are generated for output binaries for patching assembled code to a new address at load time.
[sccz80] Numerous bugfixes.
[sdcc] SDCC is now fully supported as alternate C compiler for the new C library.
[sdcc] SDCC's generated code is improved by a large set of aggressive peephole rules (use -SO3 to enable).
[sdcc] SDCC's calls to its primitive functions are modified to use callee linkage.
[new c lib] New C library written in assembly language from scratch aiming for a subset of C11 compliance. Contains more than 700 functions currently.
[new c lib] Stdio made object-oriented so that drivers can inherit library code to implement features with a minimal amount of additional code.
[new c lib] Stdio base classes currently include serial character i/o and terminal i/o implementing windows and proportional fonts. Disk i/o is missing in this release.
[new c lib] Unique stdio implementation allows removal of high level buffers without affecting performance.
[new c lib] Many functions from GNU and POSIX are present beyond the C11 standard.
[new c lib] Many unique libraries including some C++ STL containers, data compression, obstacks, game libraries, sound, fzx proportional fonts, etc. The new C lib contains libraries not present in the classic C lib and vice versa. Over time the two libraries will homogenize.
[new c lib] CRTs are supplied for three initial targets: embedded (generic z80), cpm, zx (zx spectrum). Specialized crts allow immediate compilation without customization by the user.
[new c lib] The library and crts are highly configurable at library build time and at compile time. Options allow easy generation of binaries for ROM or RAM targets.
[tools] New tool ticks is a command line z80 emulator able to exactly measure execution time of a code block.
[tools] New tool dzx7 is a decompressor counterpart to zx7.
[tools] New tool zx7 is an optimal lz77/lzss data compressor with companion decompression subroutines in the z80 library.
[appmake] +rom added to manipulate raw binaries; options include code injection, extraction and conversion to intel hex format.

The new C library completes C standards compliance for sdcc and leads to much smaller and faster output binaries. sdcc's longlong type is not supported in this release.

Documentation is a work in progress.

Installation:
http://www.z88dk.org/wiki/doku.php?id=t ... stallation

Overview, Classic C Library Information:
http://www.z88dk.org/wiki/doku.php

Overview, New C Library Description, SDCC compilation described:
http://www.z88dk.org/wiki/doku.php?id=temp:front

Some benchmarks:
http://www.z88dk.org/wiki/doku.php?id=t ... benchmarks
alvin
Well known member
Posts: 1872
Joined: Mon Jul 16, 2007 7:39 pm

Post by alvin »

Updates to 1.99A to Correct Issues for Linux and MacOSX

z88dk-src-1.99A has been updated to z88dk-src-1.99A-1
z88dk-osx-1.99A has been updated to z88dk-osx-1.99A-1

Issues Corrected:

z88dk/build.sh
grant execute permission

z88dk/libsrc/DEVELOPMENT/Makefile
prevent new c lib build from stopping on error while making the float library "m"

z88dk/libsrc/DEVELOPMENT/EXAMPLES/zx/demo_tritone/songs.asm
fix filename case issue

z88dk/libsrc/DEVELOPMENT/EXAMPLES/zx/demo_tritone/build.sh
added as counterpart of existing "Winmake.bat" for Windows
einar
Member
Posts: 47
Joined: Fri Sep 06, 2013 4:23 pm

Post by einar »

I updated ZX7 documentation to add some extra information. Could you please update file "zx7.txt" in z88dk repository? Thank you!
einar
Member
Posts: 47
Joined: Fri Sep 06, 2013 4:23 pm

Post by einar »

BTW latest version is available from here, as usual:

https://www.dropbox.com/sh/bgtoq6tdwrop ... 6dLJZfGASa
alvin
Well known member
Posts: 1872
Joined: Mon Jul 16, 2007 7:39 pm

Post by alvin »

File updated, thanks!
einar
Member
Posts: 47
Joined: Fri Sep 06, 2013 4:23 pm

Post by einar »

... and I just realized a mistake I made in the documentation. Fixed now, can you please update it again?

Sorry!!!
alvin
Well known member
Posts: 1872
Joined: Mon Jul 16, 2007 7:39 pm

Post by alvin »

No problem, the file is updated again.
einar
Member
Posts: 47
Joined: Fri Sep 06, 2013 4:23 pm

Post by einar »

Thanks!
einar
Member
Posts: 47
Joined: Fri Sep 06, 2013 4:23 pm

Post by einar »

I improved ZX7 documentation again. There are now more detailed technical notes describing the algorithm behavior in terms of a more generic sliding window size w<n (although ZX7 implementation uses a fixed sliding window size). This information will be more useful for people that care about the theoretical aspects of compression algorithms.

Could you please update file "zx7.txt" in z88dk repository one more time? Thank you!
alvin
Well known member
Posts: 1872
Joined: Mon Jul 16, 2007 7:39 pm

Post by alvin »

Updated.
Post Reply