[comp.sys.cbm] Annoucement: CC65 V 2.0

From: Marko Mäkelä (Marko.Makela_at_HUT.FI)
Date: 1998-10-04 17:36:42

Hello all!

Here's a nice project.  Now go and help Ullrich e.g. with the VIC-20 port.

I'll update the stuff on
http://www.funet.fi/pub/cbm/crossplatform/programming/cc65/ to this
new version, so you can soon download it also from there.

------- Start of forwarded message -------
From: Ullrich von Bassewitz <uz@musoftware.de>
Newsgroups: comp.sys.cbm
Subject: Annoucement: CC65 V 2.0
Date: 4 Oct 1998 15:56:37 +0200
Organization: MU Softwareentwicklung
Message-ID: <6v7uql$8tv$1@wuschel.musoftware.de>
Reply-To: uz@musoftware.de

I'm proud to announce version 2.0 of CC65, a C crosscompiler for 6502

There are many changes between this release and the last one. To highlight

  * Completely new set of binary utilities that include

      - A one pass macroassembler that outputs relocative modules, has
       	segment support, is switchable between 6502, 65SC02 and 65SC816

      - A new linker with a highly configurable output. The linker is able
	to support ROMable code (separate load and run addresses for
	data), multi-ROM environments (relocate into multiple memory
	areas) and more.

      - An all new archiver for the new object file format.

    Even if you don't need a C compiler, the new binutils are definitely
    worth a look!

    The new tools have a less restrictive copyright (no GPL!). There are
    no restrictions for use. You may even sell the tools or use the code
    in your projects without fear of "GPL infecting" your own code. See
    the doc files for details.

  * Better code for the compiler. The code is still far from being
    optimal, but you may expect speed improvements up to a factor of

  * The compiler is now much more standard conform. Many sources from
    other platforms should compile without changes.

  * Better support for the standard C libary. A very large subset of the
    standard ISO C library is available.

  * Conio library for direct console I/O is available on *all* supported
    systems. Text mode programs using conio are portable between all

  * Joystick support for the C64/C128 and Plus/4.

  * Supported systems: Because of lack of time, I had to drop the ACE
    libraries (anyone willing to help me here?). Support for

      	cbm 600/700 family (aka B series)

    is now equally available. The implementation for the 600/700 series is
    rather nice, since the 6509 runs with 2MHz on these systems, and
    programs compiled with cc65 use a separate memory bank, so you have
    almost FULL 64K of memory!

  * Completely new documentation. I've written new docs for the binutils
    and the compiler. More than 120K of text files are available and
    should help you to get started.

  * Updated sample programs. One of the samples plays the complete "Eine
    kleine Nachtmusik" (J.S.Bach) on platforms that have a SID chip (C64,
    C128 and the 600/700 series). It shows how easy it is to write
    programs that are portable between several platforms.

  * Easy hardware access. Writing to the SID on a C64 looks like

      	SID.v1.freq = 0x2345;
      	SID.v1.ctrl = 041;

  * The linker is able to create label files that may be read by VICE (I'm
    not sure if label support works in the current VICE version, I've used
    a beta). This allows you to debug your programs with VICE using the
    builtin machine language monitor, having symbolic names for
    subroutines available!

  * Special "fastcall" calling convention reduces the overhead when
    calling assembler functions.

  * A new optimizer for improved code.

Some more features that were already available in version 1.9 but have
been extended:

  * Support for all integer data types (char, int and a 32 bit long, of
    course all in signed and unsigned form).

  * Easy to use fullscreen debugger. Step through your code using a
    Turbo-Debugger like interface. See


    for a screenshot.


With the release of version 2.0, I will split development: I have some
ideas how to produce better code with the existing compiler. However, for
even greater improvement in the generated code, major parts of the
compiler need a rewrite. Because of this, and to get rid of the (somewhat
restrictive) compiler copyright, I will no longer put my ideas and work
into the current version, but start a complete new project.

So expect a "performance release" some time in the future, and then
(hopefully) an all new version with additional features.

More information:

For your convenience, I've put all doc files also on the web server:


The cc65 main page


will get updated to reflect the new version in the next few days.


Any help is appreciated! There are still areas, where the package is
incomplete, expecially when it comes to the libraries. If you think about
investing some time, here's a todo list:

  * File routines for the CBM systems are still missing. The C library
    uses a layered approach, so there are only 4 routines needed to get
    most of the higher level stuff up and running. All that is needed are
    C compatible open/close/read/write functions.

  * Support for the 80 column mode on the C128.

  * Support for ACE or other systems (VIC20, PET, even an Apple or Atari
    version shouldn't be too difficult).

  * A graphics library. The Plus/4 has a 320*200 mode that is very
    compatible the C64 and C128. With some clever programming it should be
    possible to write something that translates for all three platforms
    without changes.

Available packages:

As usual I will provide the complete sources and several binary packages.
This time, I've also prepared binary and source RPMs for RedHat and SuSE
Linux. So if you're using SuSE 5.x or RH 5.0/5.1, you will have the
fastest start by using the apropriate binary RPM.

Binaries for DOS and OS/2 will follow or may already be available at the
time you read this. NOTE: I planned to link the DOS version with the
PMODE/W DOS extender instead of DOS4G/W, but when testing this
combination, I experienced problems under Windows NT, so I abandoned this
idea. The paragraph in the announce.txt file that accompanies the packages
is wrong in this respect!

I've decided to compile the versions in order of operating system
importance, so the Windows version will be the last one available (take
that, Bill! :-)


For more information and links to the FTP server, see


For direct download, use



I would like to thank Keith W. Gerdes (kwg@freebird.ghofn.org) for his
really great help with this release. Keith did a real project using the
compiler, tested the daily snapshots and supplied me almost daily with bug
reports, fixes and suggestions. With his help, I was able to remove many
bugs and improve the overall quality greatly. If the compiler and the
tools work for you, this is not at least due to his great work.

While not being perfect, VICE was a great help when debugging parts of the
runtime libraries. The CBM610 support would not have been possible without
the work of the VICE team, especially Andre Fachat, who wrote the VICE
x610 emulator (currently in beta). Thanks!

Ullrich von Bassewitz                                  uz@musoftware.de
------- End of forwarded message -------
This message was sent through the cbm-hackers mailing list.
To unsubscribe: echo unsubscribe | mail cbm-hackers-request@dot.tcm.hut.fi.

Archive generated by hypermail 2.1.1.