cc65
This articleneeds additional citations forverification.(May 2010) |
![]() | |
Developer(s) | Ullrich von Bassewitz |
---|---|
Initial release | November 15, 1998[1] |
Stable release | 2.19[2] ![]() |
Repository | |
Written in | ANSI C |
Operating system | Multiplatform |
Type | Cross compiler |
License | zlib license |
Website | cc65 |
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]
- ^C=Hacking #17first mention
- ^"Release 2.19".20 November 2020.Retrieved8 December2020.
- ^"Simplified license. · cc65/Cc65@aeb8492".GitHub.
- ^"Ohio Scientific-specific information for cc65".
- ^ca65 Users Guide
- ^By Fatih Aygün. CIRCLE doesn't work at all, some graphics modes may crash on some machines.