I'm proud to announce version 2.7.0 of CC65, a C crosscompiler / crossassembler combo for 6502 systems. CC65 has C and runtime library support for many of the old 6502 machines, including - The Commodore C64, C128 and the C16, C116, Plus/4 machines. - The CBM 510 (aka P500), a quite rare Commodore machine (programs run in bank 0). - The CBM 600/700 family (programs run in bank 1). - Newer PET machines (not 2001) - The Apple ][ (library support by Kevin Ruland ) - The Atari 8 bit machines (thanks to the Atari team: Christian Groessler , Mark Keates , Freddy Offenga and David Lloyd, ). - GEOS for the C64 and C128 (GEOSLib by Maciej Witkowiak ) The libraries are fairly portable, so creating a version for other 6502s shouldn't be too much work. Version 2.7 has a real lot of changes, including a completely rewritten backend. Here is a short list: - New compiler option --create-dep to create a dependency list for a makefile. - Option and pragma to generate stack overflow checks (both, parameter and CPU stack). - Transparent and efficient handling of fixed params in variadic functions. - Build parameter frames when calling other functions by adjusting the stack once and then storing into this frame instead of pushing each parameter separately. - More flexible .INCBIN command for the assembler. - Compiler generates line info for the assembler. The assembler passes this to the linker, which is able to generate files containing this information. - New, much improved compiler backend. - The literal pool works now without a hardcoded limit. - C functions may now be declared as __fastcall__. - New #elif preprocessor directive - Boolean and and or in preprocessor #if clauses does now work. - New, improved __asm__ syntax for the inline assembler. - New code generation for the switch statement. - Optimizations. Please note that some of the optimizations of the old backend are no longer there, so in rare cases, code may be slower when compiled with this version. - Symbols may now be defined in the linker config file. This is used for most platforms to define the size of the stack. - Updated the cc65 utility with all the new command line switches. - C64 startup code no longer uses fixed stack top. - Several changed/added runtime functions for better performance. - CBM BASIC compatible file I/O functions by Marc Rintsch. - Support for the Commodore 510. - Mouse routines completed! Mouse support is available for the following systems: Atari, C64, C128, CBM 510 and GEOS. - Command line response files are now supported to aid those people working with "operating systems" that have a serious command line length limit. - A new plasma graphics demo written in pure C (by groepaz/hitmen). - And lots of other minor changes... There is still no support for the following features: * Floats and bit fields. * stdio file routines on most systems. The 8 bit Ataris are the first machines that do have full file I/O support. Please note that the complete CBM family doesn't have stdio file support! * The 80 column mode on the C128 is not supported by the conio library. Available packages: As usual I will provide the complete sources and several binary packages, including RPMs for RedHat Linux. Linux is the primary development platform, so the sources do compile out of the box on Linux machines. Please note that there are now separate RPMs for the compiler proper and the target specific libraries. To develop for one of the predefined target systems you need the compiler RPM package *and* one of the target machine packages. Binaries for DOS and and Windows will follow or may already be available at the time you read this. OS/2 packages will again be available, but since there are almost no downloads for OS/2, so the host platform may get dropped in the near future (again). As with the RPM packages, you need the package for the development system (Windows, etc.) *and* one of the target machine packages. Download: More information information and a download link, please visit the cc65 web page at http://www.cc65.org/ Thanks to all who sent feedback and suggestions and of course to anyone who helped developing cc65! -- Ullrich von Bassewitz uz@musoftware.de