cc65

From Infogalactic: the planetary knowledge core
Jump to: navigation, search
cc65
Developer(s) Ullrich von Bassewitz
Initial release April 26, 1999; 24 years ago (1999-04-26) (email list)
Stable release 2.13.3 / February 8, 2012 (2012-02-08)
Preview release 2.13.9
Written in ANSI C
Operating system Multiplatform
Type Cross compiler
License zlib license
Website www.cc65.org

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.

It is based on a C compiler that was originally adapted for the Atari 8-bit computers by John R. Dunning. The original C compiler is a Small C descendant but has several extensions, and some of the limits of the original Small C compiler are gone.

The toolkit has largely been expanded by Ullrich von Bassewitz and other contributors. The actual cc65 compiler, a complete set of binary tools (assembler, linker, etc.) and runtime library are under a license identical to zlib's.[1] The ca65 cross-assembler is one of the most powerful 6502 cross-assemblers available under an open-source license.

The compiler itself is almost completely ANSI C compatible, though not completely. The C library is quite extensive, and allows extensive usage of the target platform's hardware. stdio is supported on many platforms, as is Borland-style conio.h screen handling. GEOS is also supported on the Commodore 64 and even the Apple II. The library supports many of the Commodore platforms (C64, C128, C16/116/Plus/4, P500 and 600/700 family), Apple II family, Atari 8-bit family, Oric Atmos, Nintendo Entertainment System and Watara Supervision game console.

The officially supported host systems include Linux, Microsoft Windows, DOS and OS/2, but the source code itself is quite portable and has been reported to work almost unmodified on many platforms beside these.

Supported API

static

  • conio (text-based console I/O non-scrolling)
  • dio (block-oriented disk I/O bypassing the file system)

dynamic

  • em (expanded memory, used for all kinds of memory beyond the 6502's 64K barrier, similar EMS)
  • joystick (relative input devices)
  • mouse (absolute input devices)
  • serial (communication)
  • tgi (2D graphics primitives inspired by BGI)
conio dio emd joy mou ser tgi
apple2 Yes Yes 1 1 1 1 2
apple2enh Yes Yes 1 1 1 1 2
atari Yes Yes 2 15[2]
atmos Yes 1
c16 Yes 1 1
c64 Yes 6 4 3 1 1
c128 Yes 5 2 3 1 2
cbm510 Yes 1 1 1
cbm610 Yes 1 1
geos Yes Yes 1 1 1
lynx 1 1 1
nes Yes 1
pet Yes 1
plus4 Yes 1 1
supervision
vic20 Yes 2

Note: For static libraries, "Yes" means the feature is available. For dynamic libraries, the columns list the number of available drivers.

  1. https://github.com/cc65/cc65/commit/aeb849257277a6b98542de8579697b81c6dd70e6
  2. By Fatih Aygün. CIRCLE doesn't work at all, some graphics modes may crash on some machines.

External links