Cc65

Last updated
cc65
Developer(s) Ullrich von Bassewitz
Initial releaseNovember 15, 1998;26 years ago (1998-11-15) [1]
Stable release
2.19 [2]   OOjs UI icon edit-ltr-progressive.svg / November 20, 2020;4 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.