Wikipedia

cc65

cc65
Cc65-logo.png
Developer(s)Ullrich von Bassewitz
Initial releaseNovember 15, 1998[1]
Stable release
2.19 / November 20, 2020 (2020-11-20)
Repository Edit this at Wikidata
Written inANSI C
Operating systemMultiplatform
TypeCross compiler
Licensezlib license
Websitecc65.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.[2] The ca65 cross-assembler is one of the most powerful 6502 cross-assemblers available under an open-source license.

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 even the Apple II. The library supports many of the Commodore platforms (C64, C128, C16/116/Plus/4, P500 and 600/700 family), Apple II family, Atari 8-bit family, Oric Atmos, Nintendo Entertainment System, Watara Supervision game console and Ohio Scientific Challenger 1P.[3]

Officially supported host systems include Linux, Microsoft Windows, MS-DOS and OS/2, but the source code itself has been reported 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.[4]

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)
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[5]
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
osi Yes
pet Yes 1
plus4 Yes 1 1
supervision
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

External links

This article is copied from an article on Wikipedia® - the free encyclopedia created and edited by its online user community. The text was not checked or edited by anyone on our staff. Although the vast majority of Wikipedia® encyclopedia articles provide accurate and timely information, please do not assume the accuracy of any particular article. This article is distributed under the terms of GNU Free Documentation License.

Copyright © 2003-2025 Farlex, Inc Disclaimer
All content on this website, including dictionary, thesaurus, literature, geography, and other reference data is for informational purposes only. This information should not be considered complete, up to date, and is not intended to be used in place of a visit, consultation, or advice of a legal, medical, or any other professional.