Jul 122012
 

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. In the new version, there are a lot of optimisations for the Z80 backend, so be sure to update if you already use the old version. You can download it from http://sdcc.sourceforge.net.

Changes:

  • Named address spaces with optimal placement of bank selection calls.
  • _Noreturn.
  • –std-c11 command line option for ISO C11.
  • ucsim support for the LR35902 (gameboy CPU).
  • The gbz80 port is alive again, there were many bug fixes and the generated code is much better now.
  • Pic 14 enhanced core libraries are included in sdcc builds by default
  • Added pic 14 enhanced core devices: 16f1503, 16f1508, 16f1509, 16f1516, 16f1517, 16f1518, 16f1519, 16f1526, 16f1527, 16f1946, 16f1947
  • PIC14/PIC16: Implemented __critical; PIC14 __critical function cannot have arguments for now, though
  • inclusion of some tests from the gcc test suite into the sdcc regression test suite led to many bugs being found and fixed.
  • Many macros with previously non-standard-compliant names have been renamed (SDCC_REVISION to __SDCC_REVISION, etc).
  • setjmp() / longjmp() for the z180 and r2k ports.
  • Added sdar archive managing utility. sdar and sdranlib are derived from GNU binutils package
  • Added support for pic 14 core devices: 16f720, 16f721, 16f882, 16f883, 16f884, 16f747, 16f946
  • sdcpp synchronized with GNU cpp 4.6.3
  • Added support for pic 18f1230/18f1330 device family
  • Implemented #pragma config for pic16 target
  • sdcc now works on Debian GNU/Hurd.
  • New register allocator for the hc08 port, resulting in better code being generated.
  • New s08 port.
  • New r3ka port.
  • Many small improvements in the z80, hc08 and r2k code generation, reducing code size.
  • Shift, multiplication, division and returning of long long are now supported (modulo for long long is still missing, integer literals of type long long are broken).
Mar 032012
 

Mochilote wrote some tutorials on how to write applications for the Amstrad CPC. In his tutorials he uses different technologies, e.g. he explains how to use the Z88dk C compiler, the SDCC C compiler or the Pasmo Z80 assembler. All tutorials are available in english and in spanish. In the new section of his homepage you currently find the following tutorials:

Dec 082011
 

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 article in the CPCWiki. In the new version, there are a lot of optimisations for the Z80 backend, so be sure to update if you already use the old version. You can download it from http://sdcc.sourceforge.net.

Changes:

  • include/pic, non-free/include/pic, lib/pic, non-free/lib/pic renamed to */pic14
  • implemented –fomit-frame-pointer for mcs51
  • support for use of sdcc in z88dk (–reserve-regs-iy and –no-optsdcc-in-asm options; smallc calling convention)
  • new register allocator in the z80 and gbz80 ports (optimal when using –opt-code-size and a sufficiently high value for –max-allocs-per-node for the z80 port)
    C99 designated initializers
  • added strxfrm() and strcoll() functions; strerror() is the only string handling function still missing
  • added support for pic18f2xk22/pic18f4xk22 family (requires gputils > 0.14.0 and –enable-new-pics configure flag)
  • added support for enhanced core pic14 devices (requires gputils > 0.14.0 and –enable-new-pics configure flag)
  • setjmp() / longjmp() for the z80 port
  • _Bool / bool for the hc08, pic16 and pic14 ports
  • sdcpp synchronized with GNU cpp 4.6.1
  • z180 port
  • very basic (no integer constants, multiplication, division, shifts or use as return value) support for data types long long, unsigned long long, int_fast64_t, int_least64_t, int64_t, uint_fast64_t, uint_least64_t, uint64_t in the z80, z180, r2k and gbz80 ports
  • r2k port for the Rabbit 2000 and Rabbit 3000
  • Numerous feature requests and bug fixes are included as well.
Dec 192010
 

The SDCC C cross-compiler is now available in version 3.0.0. It is also possible to produce binaries for the Amstrad CPC with it (see this [[SDCC and CPC|CPC Wiki article]]). Here are the features of the final 3.0.0 version:

  • sdcpp synchronized with GNU cpp 4.5.0
  • changed z80 and gb targets object file extension to .rel
  • special sdcc keywords which are not preceded by a double underscore are deprecated in sdcc version 3.0.0 and higher. See section ANSI-Compliance in sdccman
  • xa51 and avr targets are disabled by default in sdcc version 3.0.0 and higher
  • introduced new memory model huge for mcs51 to use bankswitching for all functions
  • removed generation of GameBoy binary image file format, rrgb map file format and no$gmb sym file format from sdld linker. Utility makebin generates GameBoy binary image file format, utility as2gbmap utility converts sdas map file to rrgb map and no$gmb sym file formas.
  • implemented __builtin_offsetof
  • asxxxx / aslink renamed to sdas / sdld and synchronized with ASXXXX V2.0
  • majority of sdcc run time library released under GPL+LE license
  • introduced –use-non-free command line option
  • non free (non GPL compatible) header and library files moved to non-free directory
  • deprecated –no-pack-iram command line option

As always you can download it from the SDCC homepage.

Mar 272010
 

Right after the release of version 1.0, Norecess released a new bugfix version of his C compiler for the CPC and for PC. You can read more about it in my previous article about PhrozenC.

Here are the changes of the new version:

  • CC (Win32) Fixed crash when included file does not exist
  • Fixed crash when calling CC with a C file entirely created on a CPC
  • Fixed CS RSX-command usage. Now only ROM-based, but 100% safe
  • Updated documentation with compiler internal section

You can download the latest version from Sourceforge.

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