Sep 222019
 

A new version of the SDCC C compiler is available. You can use SDCC to develop for the Amstrad CPC, e.g. with using the SDCC Code::Blocks template or the programming tutorials by Mochilote or with the CPCtelera framework that is used e.g. in the CPCRetroDev development competition. The new version contains also some features for the Z80 port, so be sure to update it. You can download it from http://sdcc.sourceforge.net.

Changelog:

  • Support for struct / union assignment.
  • Optimizations in the stm8 backend relevant to soft float increase Whetstone score by two thirds.
  • Improvements in rematerialization in the stm8 backend improve code generation for struct, union and arrays.
  • New stack allocator reduces stack space usage for the stm8, z80, z180, gbz80, r2k, r3ka, tlcs90 backends.
  • New ez80_z80 backend for eZ80 in Z80 mode.
  • Removed deprecated sdcclib utility.
  • New pdk14 backend for Padauk µC with 14-bit wide program memory.
  • New in-development pdk15 backend for Padauk µC with 15-bit wide program memory.
  • Numerous other new features and bug fixes are included as well.
Nov 102018
 

Wow… what a great game development competition – again! And the best of all: I was allowed to be in the jury which was a great honor for me. But let’s talk about the games… I guess that this competition has rised the bar of the quality of the entries again and the students used ASM instead of C. Finally the games Operation Alexandria by 4MHz (1st), Jarlac by Retrobytes Productions (2nd) and Legend of Steel by TOD Studios (3rd) won the competition. And they really, really, really deserve it, but download them (download link below) and you can see it by yourself.

My personal 2nd place (I had to vote for the playability), the game Taulellets by Vicente Jimenez, was finally ranked 17 – anyway, I still like it very much and I will play it from time to time for sure. It made me come back during the test of the other games to play a short round to get past the next level :-).

If you want to participate on the CPCRetroDev next year, be sure to download the games and have a look at the documentations in the games folder. All the developers wrote a small “Making Of” and all games contain the source code. So this is obviously a great learning resource for everyone who wants to code for the Amstrad CPC.

But enough from me… here are the results of the CPCRetroDev 2018 game development competition:

PositionImageGameGroupResult
1Operation Alexandra4MHz(393) Best Game, Carlos Abril Mention, Gominolas Mention, Relevo Mention
2JarlacRetrobytes Productions(380) 2nd Best Game, Pablo Ariza Mention
3Legend of SteelTOD Studios(283) 3rd Best Game
4The Adventures of Timothy GunnCNGSoft(278) 4th Best Game
5OPQA vs. QAOP: The Final BattleManuel Sagra(261)
677 AttemptsUnknown Design(202) Best Student Game
7Foosball F3Quique Miquel(180)
8Deeper WarrensArnoud Bouche(162)
9The Rookie ThiefCPZenon Games(145) 2nd Best Student Game
10Crimson Knight AdventuresNibble Games(134)
11Harvest DayPixel Productions(129)
12RedseaGameroid(114)
13Earth DefenderCarlos Perezgrin(113) Best Opera Prima Additional Mention
14Snake BubbleThe Bubble Club(106)
15The Last DebtRetrojam Games(105)
16KimoHiyokoSarayCow(103)
17TaulelletsVicente Jimenez(99)
18The Spirit Of HalloweenLab16Devs(98)
19The CryptRetroGamma(97)
20Cannon DuelsDavid Asta(96)
21Space CowboyVoxelTower(94)
22IndigoIndigo(87)
23BringRGBackDead Pixel(74)
24OverheapBastaCPC(70)
25Turtle SlamTurtleSlam(68)
26Space BallAltered Vision(67)
27Elfo Saves ChristmasNinja Pointer(66)
28Two Finger Death NowSpherp08(62)
29Cat PangLady Cats(61)
30Cuchara VoladoraCucharaVoladora(60)
31Fitzroy And The Infestationawergh(60)
32BankACReturns(53)
33HacktankRetroleto Games(50)
34LunaticLunatic(45)
35Invade SpaceProyecto Red(41)
36TankARDAD(41)
37DisassemblerMachine Gun(40)
38Killing MachinePizzarT(40)
39Penalty KicksSakis Kaffesakis(40)
40CrockerMerienda(20)
4118th Century InvadersLYSGames(3)

You can download the games in one package directly down below or from the download section of this site. More information about the game development competition can be found on the CPCRetroDev homepage.

 

CPCRetroDev2018 All Games
CPCRetroDev2018 All Games

CPCRetroDev2018_all_games_.zip

105.4 MiB
290 Downloads
Details
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 »

Jul 142016
 

A new version of the SDCC C compiler is available. You can use SDCC to develop for the Amstrad CPC, e.g. with using the SDCC Code::Blocks template or the programming tutorials by Mochilote or with the new CPCtelera framework. The new version contains also some features for the Z80 port, so be sure to update it. You can download it from http://sdcc.sourceforge.net.

Changes:

  • Merged upstream binutils 2.25
  • New memory management with lower overhead
  • Changed default language dialect to –std-sdcc11
  • Diagnostic for missing type specifier: No implicit int outside of C90 mode anymore
  • C11 generic selections
  • char type is now unsigned by default (old behaviour can be restored using –fsigned-char)
  • Character constants are now of type int instead of char.
  • ISO C95 and ISO C11 wide character constants
  • ISO C95 and ISO C11 wide string literals
  • Basic standard library support for wide characters: c16rtomb(), mbrtoc16(), mbsinit(), mbtowc(), mbrlen(), mbrtoc32, c32rtomb(), mbrtowc(), wcrtomb(), mblen(), wctomb()
  • Treat all ports the same in the manual (i.e. mcs51-specific stuff is now clearly described as such)
  • Reorganized interrupt handling for z80, z180, r2k, r3ka, tlcs90, gbz80 backends
  • Workaround for stm8 division hardware bug
  • ELF/DWARF support for stm8
  • Output symbol table for ELF
  • pic16 port now uses standard-compliant crt0iz that initializes static and globals to 0 by default
  • Numerous feature requests and bug fixes
Dec 242015
 

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 just released. The release is a transition release on the way to v2.0 which aims on using the SDCC compiler instead of the Small-C compiler, which was used before. This 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.

(Brief) Changelog:

  • [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.

 

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