cc65
Developer(s) | Ullrich von Bassewitz |
---|---|
Initial release | April 26, 1999 (email list) |
Stable release | 2.13.3 / February 8, 2012 |
Preview release | 2.13.9 |
Written in | ANSI C |
Operating system | Multiplatform |
Type | Cross compiler |
License | zlib license |
Website | www.cc65.org |
cc65 is a complete cross development package for 65(C)02 systems, including a powerful macro assembler, a C compiler, linker, librarian and several other tools.
It is based on a C compiler that was originally adapted for the Atari 8-bit computers by John R. Dunning. The original C compiler is a Small C descendant but 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.[1] The ca65 cross-assembler is one of the most powerful 6502 cross-assemblers available under an open-source license.
The compiler itself is almost completely ANSI C compatible, though not completely. The C library is quite extensive, and allows extensive usage of 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.[2]
The officially supported host systems include Linux, Microsoft Windows, DOS and OS/2, but the source code itself is quite portable and has been reported to work almost unmodified on many platforms beside these.
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[3] | |||
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.
- ↑ https://github.com/cc65/cc65/commit/aeb849257277a6b98542de8579697b81c6dd70e6
- ↑ http://cc65.github.io/doc/osi.html
- ↑ By Fatih Aygün. CIRCLE doesn't work at all, some graphics modes may crash on some machines.
External links
- Official website (no longer maintained)
- Modern github fork of cc65
- Contiki desktop, written with cc65
- TGI drivers for atari8
- Atari TGI 2009-11-02 release announcement on cc65 mailing list