I'm proud to announce cc65 version 2.11.0. 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 <steve_schmidtke@hotmail.com>). - 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 ][ and successors (basic support by Kevin Ruland <kevin@rodin.wustl.edu> and many, many additions by Oliver Schmidt, <ol.sc@web.de>). - The Atari 8 bit machines (thanks to the Atari team: Christian Groessler <cpg@aladdin.de>, Mark Keates <markk@dendrite.co.uk>, Freddy Offenga <taf_offenga@yahoo.com> and David Lloyd, <dmlloyd@atari-central.com>). - GEOS for the C64 and C128 (by Maciej Witkowiak <ytm@elysium.pl>) - The Nintendo Entertainment System (NES) (contributed by Groepaz, <groepaz@gmx.net>). - The Supervision console (contributed by Peter Trauner, <peter.trauner@utanet.at>) (startup code and linker config only). - The Oric Atmos (this one is - still - BETA!). - The Lynx Console. Support was added by Karri Kaksonen <karri@sipo.fi> based on the original Lynx compiler by Bastian Schick. Bastians code was used with permission - thanks! 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 quite a large step from the last version. See the (probably incomplete) 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 Enterprise Linux 3. 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, the docs, 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. Be sure to download the documentation package if you're not already a cc65 user. Binaries for DOS and and Windows should also 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. New in the windows version is the beta version of a poor mans windows installer: Grab all the windows packages you need and unpack them into one tree. Then double click on the "install.vbs" file. This will install the tools in the program directory, will add start menu entries for the docs, setup the necessary environment variables, and add an uninstaller as well. IF YOU HAVE ANY PROBLEMS SETTING UP CC65, IT IS STRONGLY ADVISED THAT YOU GIVE THE INSTALLER A TRY! 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. Many people have contributed to this version, please be sure to have a look at the CREDITS file. Thanks to all contributors! Have fun! Uz ----------------------------------------------------------------------------- [Incomplete list of changes against version 2.10] * Assembler: - New feature missing_char_term. - New feature ubiquitous_idents. - Optional curly braces allowed as delimiters for token lists. Incompatible change: Brace matching in some cases is gone. - New 6502X cpu that includes 6502 illegal opcodes. - Better error messages in case of a range error. - Assembler defines target system symbols (__C64__ etc.) similar to the C compiler. - Handle foreign newline sequences (cr/lf under Unix) more gracefully. - Fixed problems with unnamed labels. - The assembler does now support the SWEET16 16 bit pseudo CPU. - Support for zilog/intel style hex numbers (trailing 'h'). - New .ident and .sprintf pseudo functions. - Variable symbols using .set. - Support for a "none" CPU that has no opcode mnemonics at all. People use ca65 to implement instructions sets for other CPUs using macros, and this pseudo CPU should remove any conflicts. - Support for the HuC6280 CPU used in the PC engine. * Compiler: - Rewrite of input and preprocessor routines. Among other things, this adds variadic macros and removes the input line limit. - Stackable pragmas using #pragma(push, val) and #pragma(pop) - New pragmas codesize, optimize, regvars, and warn (all stackable) - New option --writable-strings - Rewrote part of the parser allowing better code generation in a few places. - The "inline standard functions" option (-Os) has slightly changed its meaning: In older versions it controlled inlining. Now, the compiler will always inline if it considers it safe to do so, and the flag does only control inlining in situations where inlining is not always completely safe. - More and better inlining of known standard functions. The following functions may get inlined: strcpy, strlen, memcpy, memset. - Inline assembly can now reference C labels with the %g format specifier. - The -A and --ansi switches are gone, together with the __STRICT_ANSI__ predefined macro. Instead there is now a command line option --standard that allows to set c89, c99 or cc65 as language standard. The compiler defines a macro __CC65_STD__ that is one of __CC65_STD_C89__, __CC65_STD_C99__ or __CC65_STD_CC65__ depending on the command line option. Default is cc65 (all extensions) as before. - Improved code for shifts. * Linker - Start Oric programs at $500 (Stefan Haubenthal) - Added library groups. - Simple expressions now supported in the config files. * cl65 utility: - Extended to support additional command line switches of the underlying tools as needed. - New -Wa and -Wl switches to pass options to the assembler and linker. * Disassembler - New "asminc" directive that allows to read in a file containing assembler symbol assignments in the form "name = value". - New "comment" attribute for several directives. * Library - Mouse support uses loadable drivers. - Changed command line argument syntax for C64. - Command line parameters are now working for: C64, C128, Plus/4, C16, VIC20. - ungetc is available. Read functions on streams support pushed back characters. - New apple2enh target by Oliver Schmidt. - Lots of Apple2 improvements by Oliver Schmidt. - Oric TGI driver by Stefan Haubenthal. - New _heapblocksize function that returns the size of an allocated block. - New lynx target by Karri Kaksonen and Shawn Jefferson based on Bastian Schicks cc65 port (thanks!). - Joystick and TGI drivers do now have an interrupt entry. The API version has been changed which means that old drivers will need an update. - Full set of scanf functions available (base work by me, lots of improvements by Greg King). - scanf functions for conio (Greg King). - New function posix_memalign. - Directory routines for the Apple machines (by Oliver Schmidt). - SSC serial driver for the apple2 and apple2enh targets (Oliver Schmidt). * Documentation - Lots of additions to the function reference. - Several target specific docs (one prominent contributor was Stefan Haubenthal). * Other - Poor mans windows installer. - The output of --help goes to stdout instead of stderr. -- Ullrich von Bassewitz uz@musoftware.de ---------------------------------------------------------------------- To unsubscribe from the list send mail to majordomo@musoftware.de with the string "unsubscribe cc65" in the body(!) of the mail.Received on Sat Sep 10 17:10:37 2005
This archive was generated by hypermail 2.1.8 : 2005-09-10 17:10:40 CEST