Neha Patil (Editor)

Cc65

Updated on
Edit
Like
Comment
Share on FacebookTweet on TwitterShare on LinkedInShare on Reddit
Developer(s)
  
Ullrich von Bassewitz

Written in
  
ANSI C

Preview release
  
2.13.9

Operating system
  
Multiplatform

Initial release
  
April 26, 1999; 17 years ago (1999-04-26) (email list) May 28, 2000; 16 years ago (2000-05-28) (repository)

Stable release
  
2.13.3 / February 8, 2012; 5 years ago (2012-02-08)

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.

Contents

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. 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.

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.

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)
  • Note: For static libraries, "Yes" means the feature is available. For dynamic libraries, the columns list the number of available drivers.

    References

    Cc65 Wikipedia