I'm proud to announce cc65 version 2.10.0 ("christmas edition"). cc65 is a complete cross development package for 65(C)02 systems, including a powerful macro assembler, a C compiler, linker, librarian and several other tools. cc65 has C and runtime library support for many of the old 6502 machines, including - The Commodore VIC20 (contributed by Steve Schmidtke ). - The Commodore C64 and C128. - The Commodore C16, C116 and Plus/4. - 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 (by Maciej Witkowiak ) - The Nintendo Entertainment System (NES) (contributed by Groepaz, . - The Supervision console (contributed by Peter Trauner, ) (startup code and linker config only). - The Oric Atmos (this one is BETA!). The libraries are fairly portable, so creating a version for other 6502s shouldn't be too much work. Changes to the last version: This is a major release with many new features and (of course) bug fixes. Lots of things have changed since the last major release. The compiler itself got only a few user visible changes, but there are many visible additions to the libraries. Hardware support has been much improved thanks to the help of many contributors. Serial drivers are now loadable at runtime, which means that applications can support a much broader palette of serial devices (and can even support hardware that wasn't known when the application was built). Serial support is now available for more machines than before, so the Contiki team has something to do over christmas:-) Lots of new extended memory and grahpics drivers are available. To sum it up: Library support for more platforms and better library support for existing platforms. The assembler has gotten some nice enhancements: Better 65816 support, improved scoping, and the addition of structs/unions and other high level constructs. And last but not least: The documentation has been extended, the function reference is much more complete, and there are now docs that outline the special features for each platform. See the (almost) full list of changes below for more information. 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 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. Starting with this version, the docs are also in a separate package, so if you want docs (recommended), be sure to download the cc65-doc archive. 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 or more of the target machine packages, plus optionally the doc package. Download: For more information and a download link, please visit the cc65 web page at http://www.cc65.org/ Mailing list: There is a mailing list for discussing cc65 related issues (programming, suggestions, bugs, ...). See http://www.cc65.org/#List for information on how to subscribe to this list. ----------- Thanks to all who sent feedback and suggestions, and of course to anyone who helped developing cc65. I wish you a merry christmas and lots of fun with this new cc65 release! Regards Uz ------------------------------------------------------------------------------ List of changes for 2.10.0: * Assembler: - New .FORCEIMPORT command. - New address size override symbols (z:, ...) - New macro package "cpu". - New assignment operator := - INCOMPATIBLE CHANGE of the .CPU pseudo variable - New pseudo functions .SIZEOF, .HIBYTE, .HIWORD, .LOBYTE, .LOWORD, .BANKBYTE - Structures, unions and enums: .STRUCT, .UNION, .ENUM and .TAG. - New, improved scoping rules. - First support for far and near segments/procedures. * Compiler: - Flexible array struct members. - Provisions for handling arguments to main() - Rewrite of the type conversion. - New keywords (some of them only in non ANSI mode): far, near, __far__, __near__ - Slightly improved code in a few situations. * Linker - New directory search options. - Generation of debug info is now "official" (but the format of the file may still change). NOTE: The VICE label file will go in the next release, so if you are using it for some other purpose than feeding it into VICE, please think about using the debug info file instead. * cl65 utility: - Small additions to track changes in the tools called. * ca65html - New --linenumbers and --linelabels options - Ability to convert tabs to spaces in the output - Colorization - Can generate links to the C source files (must be generated by c2html) * Library - New directory functions for the CBMs contributed by Josef Soucek. - Joystick drivers are now loadable modules. The old statically linked code has been converted to loadable drivers and is no longer available. - Library support for the NES by groepaz - system() function. - isblank() is "official" in C99. - Arguments passed to main for several platforms (includes GEOS!) - The open function for the CBMs will no longer add a file type, so files of any type can be opened without changing _filetype. - Joystick driver for the Apple 2 contributed by Stefan Haubenthal. - Two joystick drivers for the C64 contributed by groepaz, one of them converted to c128 by me. - Minimal Supervision support (linker config and startup file) contributed by Peter Trauner. - Several graphics drivers for the C128 and GEOS written and contributed by Maciej Witkowiak. - New ramcart extended memory driver for the C128 written by Maciej Witkowiak. - Two new Apple ][ TGI drivers contributed by Stefan Haubenthal. - One new extended memory driver for the Apple ][ contributed by Stefan Haubenthal. - New serial (RS232) driver architecture. RS232 drivers are now loadable. Drivers are available for C64/SwiftLink, C128/SwiftLink and Plus/4 (builtin ACIA). The latter is not tested because of the lack of an RS232 interface on my side, but since it is to more than 90% identical to the (tested) C64 version, there's a good chance it will work. The old static drivers are still available but deprecated. They will get removed in one of the next releases. - INCOMPATIBLE CHANGE for GEOS applications: Exiting main() now ends the program. Before, exit() had to be called explicitly. Please read the docs! - Full file I/O support and other improvements for the Commodore 610. - RAM extended memory driver for the CBM610 does now work. - New loadable serial driver for the builtin ACIA of the Commodore 610. - More small changes/additions. * Documentation - Platform specific docs for the Atari, C128, C16, C64, Plus/4 and CBM610. - Much extended function reference. - Documentation for ca65html (an assembler source to HTML converter) added. - Lots of other additions. * Other - New co65 utility that allows to convert an o65 file into an assembler module, so it can be linked statically. - Changed object file format. - Disassembler ready, documentation added. -- Ullrich von Bassewitz uz@spamtrap.musoftware.de 21:52:41 up 7 days, 23:48, 10 users, load average: 0.43, 0.52, 0.73