Jan 252017
 

A new version of the Z88dk development environment for Z80 based computer (e.g. Amstrad CPC, Cambridge Z88, MSX, Sinclair ZX 81, Sinclair ZX Spectrum, etc.) was released. The release is a transition release on the way to v2.0 which aims on using both, the SDCC compiler and the Small-C compiler, to combine their advantages, which leads to much faster and smaller output binaries. You can choose between using the Small-C compiler with the old and the new C library or use the SDCC compiler with the new C library. The new C library also introduces full C standard compliance to Z88dk.
The newest version can be downloaded from the Z88dk homepage. The source code is available on GitHub.

Changelog:

Package:

  • The win32 and osx packages are complete and now include the zsdcc & zsdcpp binaries. zsdcc is z88dk’s customization of the sdcc compiler. Other users can compile zsdcc from source.
  • A VS2015 solution file is now available in z88dk/win32 for building all z88dk binaries except zsdcc & zsdcpp. Instructions for building zsdcc & zsdcpp can be found in the install instructions link above.

ZCC – Compiler Front End:

  • M4 has been added as an optional macro pre-processor. Any filename ending with extension “.m4” will automatically be passed through M4 and its output written to the original source directory with the “.m4” extension stripped prior to further processing. The intention is to allow source files like “foo.c.m4”, “foo.asm.m4”, “foo.h.m4” and so on to be processed by M4 and then that result to be processed further according to the remaining file extension.
  • In conjunction with the above, a collection of useful M4 macros has been started in “z88dk.m4” that can be included in any “.m4” file processed by zcc. Currently macros implementing for-loops and foreach-loops are defined.
  • List files ending with extension “.lst” can be used to specify a list of source files for the current compile, one filename per line. The list file is specified on the compile line with prefix @ as in “@foo.lst”. List files can contain any source files of any type understood by zcc and individual lines can be commented out with a leading semicolon. Paths of files listed in list files can be made relative to the list file itself (default) or relative to the directory where zcc was invoked (–listcwd). List files can list other list files, identified with leading ‘@’.
  • zcc now processes all files it is given to the final output file type specified. For example, with “-E” specified, all listed .c files will be run through the C pre-processor individually and all output copied to the output directory. Previous to this, only the first file listed was processed unless a binary was being built.
  • -v gives more information on what steps zcc takes to process each source file.
  • -x now builds a library out of the source files listed.
  • -c by itself will generate individual object files for each input source file. However, if -c is coupled with an output filename as in “-o name”, a single consolidated object file will now be built instead of individual ones. The intention is to provide a means to generate identical code in separate compiles by allowing this single object file to be specified on different compile lines.
  • Better error reporting for source files with unrecognized types.
  • Better parsing for compile line pragmas; pragma integer parameters can now be in decimal, hexadecimal or octal.
  • -pragma-include added to allow a list of compile time pragmas to be read from a file as in “-pragma-include:zpragma.inc”. This way projects can consolidate pragmas in one location; this is especially important for the new c library which uses pragmas extensively to customize the crt.
  • -pragma-export added, is similar to -pragma-define but the assembly label defined as a constant on the compile line is made public so that its value is visible across all source files.
  • –list will generate “.lis” files for each source file in a compile to a binary. The “.lis” file is an assembly listing of source prior to input to the linker.
  • –c-code-in-asm causes C code to be interspersed as comments in any generated assembly listing associated with C source files.
  • “.s” files are now understood by zcc to be asz80-syntax assembly language source files. This allows sdcc project files written in assembly language to be assembled by z88dk. asz80 mnemonics are non-standard so zcc attempts to translate to standard zilog mnemonics before assembling. You can see the translation to standard zilog form by using “-a” on a compile line. This is still a work-in-progress feature.
  • –no-crt allows compiles to proceed without using the library’s supplied crt for a target. The first file listed on a compile line will stand in as the crt and will be responsible for initialization and setting up the memory map.
  • Temporary files are always created in the temp directory. The option “-notemp” has been removed.
  • Library and include search paths have been fixed to honour the order specified on the compile line. This allows the user to override library functions when desired.
  • Source files are now processed from their original location so that includes can be properly resolved. Previously this was only done for .c files but this now applies to other file types.
  • clang/llvm compilation is in an experimental state.

Continue reading »

Dec 312016
 

Roudoudou worked on a compressor / decompressor which uses the LZ48 / LZ49 compression algorithm on the Amstrad CPC and released his work in the CPCWiki forums. The compressor is inspired by the LZ4 compression algorithm of Yann Collet and the modifications fits well to the Z80 CPU of the Amstrad CPC. The advantage of this compression method is, that the decompression code is very small (83 bytes) and very fast. The disadvatage is that there are other compressors which feature a better compression ratio, but require more memory and more time for decompression as well.
You can get more information about the modified algorithm and download the assembly source from the CPCWiki forums. You can also find a version for SDCC / CPCtelera and binary files for Windows there.

LZ48/49 (de)compressor
LZ48/49 (de)compressor
LZ48-49-de-compressor.zip
16.5 KiB
41 Downloads
Details
Dec 312016
 

Docent wrote a decompressor the the LZ4 compression algorithm, which can be used on any Zilog Z80 CPU. The focus of the LZ4 compression algorithm is a fast decompression speed and a small decompression routine. The size of Docents version of the decompression routine is 219 bytes (raw decompression routine under 110 bytes) and it supports the legacy and the newest LZ4 format (except for framing).
You can download the latest version of the decompression code here or at the end of this news.

Features

  • decompresses files packed by lz4 command line packer and raw lz4 compressed data
  • supports legacy and the newest lz4 file format (except framing)
  • fully relocatable code
  • total size of 219 bytes size with raw decompression routine below 110 bytes
  • cpc firmware friendly (no alternate register set used)
  • ROM friendly – no self modifying code or additional memory required
  • simple interface – only start of file in memory and target memory destination required

 

LZ4 Decompressor
LZ4 Decompressor
LZ4-Decompressor.zip
7.0 KiB
29 Downloads
Details
Nov 212016
 

Some time ago the Mojon Twins released their Amstrad CPC port of their game Sir Ababol 2 (you can download Sir Ababol here). In Sir Ababol 2 you have to guide the main character, Sir Ababol, to the top of the six towers of Freezia. Of course you have to fight against several enemies which you will meet on your way.

Sir Ababol 2 by the Mojon Twins

You can download Sir Ababol 2 from the Mojon Twins homepage or at the end of this posting. The source code for the game can be found there, too.

Sir Ababol 2 by the Mojon Twins - in game graphics

The game was developed with the Z88dk cross-compiler by using the PSG player by Wyz, the CPCRSlib by Artaburu and uses the Exomizer 2 compression library by MetalBrain.

Sir Ababol 2
Sir Ababol 2
mojon-twins-sir-ababol-2-CPC.zip
63.8 KiB
44 Downloads
Details
Sir Ababol 2 source code
Sir Ababol 2 source code
mojon-twins-sir-ababol-2-CPC-src.7z
737.8 KiB
99 Downloads
Details
Oct 272016
 

Kevin Thacker released new version of his cross-platform development tools CPCXfs and 2CDT. With CPCXfs you can transfer files between DSK images, which can be used in an emulator or to transfer files to the real Amstrad CPC, and your local file system. 2CDT is a similar tool, which is used to transfer files from your local file system intro a CDT cassette image. This can also be used in an emulator or transfered to the real machine. Both utilities are widely used for cross-platform development, e.g. with CPCtelera, to prepare your release.
You can download CPCXfs and 2CDT from the CPCWiki forums or at the end of this news. The source code is included in the ZIP archives of the release.

Changelog CPCXfs

  • Fixed errors shown with static analysis
  • CPCXfs will correctly set ERRORLEVEL command-line variable under more error conditions
  • Some other smaller bugfixes

Changelog 2CDT

  • You can define the sync byte for headerless
  • Command-line processing under windows and linux has been re-written. It is a lot better.
  • If you uses the mode with 2 blocks and you gave it a file which was shorter than a block it would not write it correctly. Now fixed.
  • When using pure tone it didn’t write the length of the ‘1’ pulse correctly
  • Some issues seen when running static analysis over the code.
2CDT
2CDT
2cdt-20161021.zip
95.0 KiB
48 Downloads
Details
CPCXfs
CPCXfs
cpcxfs-20161021.zip
485.0 KiB
46 Downloads
Details

By continuing to use the site, you agree to the use of cookies. more information

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.

Close