Cc65

Last updated
cc65
Developer Ullrich von Bassewitz
Initial releaseNovember 15, 1998;27 years ago (1998-11-15) [1]
Stable release
2.19 [2]   OOjs UI icon edit-ltr-progressive.svg / November 20, 2020;5 years ago (2020-11-20)
Repository
Written in ANSI C
Operating system Multiplatform
Type Cross compiler
License zlib license
Website cc65.github.io

cc65 is a cross development package for 6502 and 65C02 targets, including a macro assembler, a C cross compiler, linker, librarian and several other tools.

Contents

Overview

cc65 is based on a native C compiler that was originally adapted for the Atari 8-bit computers by John R. Dunning in 1989, which originated as a Small-C descendant. It 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. [3]

The compiler itself comes close to ANSI C compatibility, while C library features depend on 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 the Apple II. The library supports many of the Commodore platforms (C64, C128, C16/116/Plus/4, P500 and 600/700 family), Apple II, Atari 8-bit computers, Oric Atmos, Nintendo Entertainment System, [4] [5] Watara Supervision game console, Synertek Systems SYM-1 and Ohio Scientific Challenger 1P. [6]

Officially supported host systems include Linux, Microsoft Windows, MS-DOS and OS/2, but the source code itself has been reported[ by whom? ] to work almost unmodified on many platforms beside these.

The ca65 macro assembler supports 6502, 65C02, and 65C816 processors, and can be used standalone without the C compiler. [7]

Supported API

static

dynamic

conio dioemdjoymousertgi
apple2YesYes11112
apple2enhYesYes11112
atariYesYes215 [8]
atmosYes1
c16Yes11
c64Yes64311
c128Yes52312
cbm510Yes111
cbm610Yes11
geosYesYes111
lynx111
nesYes11
osic1pYes
petYes1
plus4Yes11
supervision
sym1
vic20Yes2

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

References

  1. ↑ C=Hacking #17 first mention
  2. ↑ "Release 2.19". 20 November 2020. Retrieved 8 December 2020.
  3. ↑ "Simplified license. · cc65/Cc65@aeb8492". GitHub .
  4. ↑ Hugg, Steven (2019). Making Games for the NES. Amazon Digital Services LLC. pp. 231–232. ISBN   9781075952722.
  5. ↑ Cruise, Tony (2024). Classic Game Programming on the NES. Manning Publications. p. 268. ISBN   9781633438019.
  6. ↑ "Ohio Scientific-specific information for cc65".
  7. ↑ ca65 Users Guide
  8. ↑ By Fatih Aygün. CIRCLE doesn't work at all, some graphics modes may crash on some machines.