cc65
{{lowercase title|cc65}}
{{Infobox software
| name = cc65
| logo = Cc65-logo.png
| screenshot =
| caption =
| developer = Ullrich von Bassewitz
| released = {{Start date and age|1998|11|15}}[http://unusedino.de/ec64/technical/c=hacking/ch17.html C=Hacking #17] first mention
| latest release version = {{wikidata|property|preferred|references|edit|Q1052150|P348}}
| latest release date = {{Start date and age|2020|11|20}}
| latest preview version =
| programming language = ANSI C
| operating system = Multiplatform
| genre = Cross compiler
| license = zlib license
| website = {{URL|https://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.
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.{{Cite web|url=https://github.com/cc65/cc65/commit/aeb849257277a6b98542de8579697b81c6dd70e6|title = Simplified license. · cc65/Cc65@aeb8492|website = GitHub}}
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 {{mono|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,{{Cite book |last=Hugg |first=Steven |title=Making Games for the NES |publisher=Amazon Digital Services LLC |year=2019 |isbn=9781075952722 |pages=231–232 |language=en}}{{Cite book |last=Cruise |first=Tony |title=Classic Game Programming on the NES |publisher=Manning Publications |year=2024 |isbn=9781633438019 |pages=268 |language=en}} Watara Supervision game console, Synertek Systems SYM-1 and Ohio Scientific Challenger 1P.{{Cite web|url=https://cc65.github.io/doc/osi.html|title = Ohio Scientific-specific information for cc65}}
Officially supported host systems include Linux, Microsoft Windows, MS-DOS and OS/2, but the source code itself has been reported{{by whom|date=November 2017}} 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.[https://cc65.github.io/doc/ca65.html ca65 Users Guide]
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)
class="wikitable"
! !!conio !!dio !!emd !!joy !!mou !!ser !!tgi |
apple2
| {{yes}} ||{{yes}} ||1 ||1 ||1 ||1 ||2 |
---|
apple2enh
| {{yes}} ||{{yes}} ||1 ||1 ||1 ||1 ||2 |
atari |
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
|