Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Cc65
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{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}}<ref>[http://unusedino.de/ec64/technical/c=hacking/ch17.html C=Hacking #17] first mention</ref> | 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 [[MOS Technology 6502|6502]] and [[WDC 65C02|65C02]] targets, including a macro [[Assembly language#Assembler|assembler]], a [[C (programming language)|C]] [[cross compiler]], [[Linker (computing)|linker]], [[File archiver|librarian]] and several other [[programming tool|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.<ref>{{Cite web|url=https://github.com/cc65/cc65/commit/aeb849257277a6b98542de8579697b81c6dd70e6|title = Simplified license. · cc65/Cc65@aeb8492|website = [[GitHub]]}}</ref> The compiler itself comes close to [[ANSI C]] compatibility, while C library features depend on the target platform's hardware. [[Stdio.h|stdio]] is supported on many platforms, as is [[Borland]]-style {{mono|[[conio.h]]}} screen handling. [[GEOS (8-bit operating system)|GEOS]] is also supported on the [[Commodore 64]] and the [[Apple II]]. The library supports many of the Commodore platforms ([[Commodore 64|C64]], [[Commodore 128|C128]], [[Commodore 16|C16/116]]/[[Commodore Plus/4|Plus/4]], [[Commodore CBM-II|P500 and 600/700 family]]), Apple II, [[Atari 8-bit computers]], [[Oric Atmos]], [[Nintendo Entertainment System]],<ref>{{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}}</ref><ref>{{Cite book |last=Cruise |first=Tony |title=Classic Game Programming on the NES |publisher=[[Manning Publications]] |year=2024 |isbn=9781633438019 |pages=268 |language=en}}</ref> [[Watara Supervision]] game console, [[Synertek]] Systems [[SYM-1]] and [[Ohio Scientific]] Challenger 1P.<ref>{{Cite web|url=https://cc65.github.io/doc/osi.html|title = Ohio Scientific-specific information for cc65}}</ref> 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 [[MOS Technology 6502|6502]], [[WDC 65C02|65C02]], and [[WDC 65C816|65C816]] processors, and can be used standalone without the C compiler.<ref>[https://cc65.github.io/doc/ca65.html ca65 Users Guide]</ref> ==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 [[Expanded memory|EMS]]) *joystick (relative input devices) *mouse (absolute input devices) *serial (communication) *tgi (2D graphics primitives inspired by [[Borland Graphics Interface|BGI]]) {| class="wikitable" ! !![[conio.h|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<ref name="tgiAtari" /> |- ! 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 <!--|- ! lunix | x || || ||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== {{reflist|refs= <ref name="tgiAtari">By Fatih Aygün. CIRCLE doesn't work at all, some graphics modes may crash on some machines.</ref> }} ==External links== * [https://web.archive.org/web/20210120204936/https://www.cc65.org/ Official website (archive)] (no longer maintained) * [https://cc65.github.io Modern github fork of cc65] * [http://hitmen.c02.at/html/tools_contiki.html Contiki desktop, written with cc65] * [http://www.cc65.org/mailarchive/2009-11/7459.html Atari TGI 2009-11-02 release announcement on cc65 mailing list] * [https://github.com/efornara/jbit/wiki/Android Android host] [[Category:C (programming language) compilers]] [[Category:Cross-compilers]] [[Category:Free and open source compilers]] [[Category:Assemblers]] [[Category:Atari 8-bit computers]] [[Category:Commodore 64]] [[Category:Apple II family]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:By whom
(
edit
)
Template:Cite book
(
edit
)
Template:Cite web
(
edit
)
Template:Infobox
(
edit
)
Template:Infobox software
(
edit
)
Template:Lowercase title
(
edit
)
Template:Main other
(
edit
)
Template:Mono
(
edit
)
Template:Reflist
(
edit
)
Template:Template other
(
edit
)
Template:Yes
(
edit
)