Jump to content

cc65

From Wikipedia, the free encyclopedia
cc65
Developer(s)Ullrich von Bassewitz
Initial releaseNovember 15, 1998;25 years ago(1998-11-15)[1]
Stable release
2.19[2]Edit this on Wikidata / November 20, 2020;3 years ago(2020-11-20)
Repository
Written inANSI C
Operating systemMultiplatform
TypeCross compiler
Licensezlib license
Websitecc65.github.io

cc65is a cross development package for6502and65C02targets, including a macroassembler,aCcross compiler,linker,librarianand several othertools.

Overview[edit]

cc65 is based on a native C compiler that was originally adapted for theAtari 8-bit computersby John R. Dunning in 1989, which originated as aSmall-Cdescendant. 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 tozlib's.[3]

The compiler itself comes close toANSI Ccompatibility, while C library features depend on the target platform's hardware.stdiois supported on many platforms, as isBorland-styleconio.hscreen handling.GEOSis also supported on theCommodore 64and theApple 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,Watara Supervisiongame console,SynertekSystemsSYM-1andOhio ScientificChallenger 1P.[4]

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

The ca65 macro assembler supports6502,65C02,and65C816processors, and can be used standalone without the C compiler.[5]

Supported API[edit]

static[edit]

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

dynamic[edit]

  • em (expanded memory, used for all kinds of memory beyond the 6502's 64K barrier, similarEMS)
  • joystick (relative input devices)
  • mouse (absolute input devices)
  • serial (communication)
  • tgi (2D graphics primitives inspired byBGI)
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[6]
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 1
osic1p Yes
pet Yes 1
plus4 Yes 1 1
supervision
sym1
vic20 Yes 2

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

References[edit]

  1. ^C=Hacking #17first mention
  2. ^"Release 2.19".20 November 2020.Retrieved8 December2020.
  3. ^"Simplified license. · cc65/Cc65@aeb8492".GitHub.
  4. ^"Ohio Scientific-specific information for cc65".
  5. ^ca65 Users Guide
  6. ^By Fatih Aygün. CIRCLE doesn't work at all, some graphics modes may crash on some machines.

External links[edit]