cc65

A complete cross development package for 65(C)02 systems, including a powerful macro assembler, a C compiler, linker, librarian
Download

cc65 Ranking & Summary

Advertisement

  • Rating:
  • License:
  • Freeware
  • Publisher Name:
  • Ullrich von Bassewitz
  • Operating Systems:
  • Windows All
  • File Size:
  • 660 KB

cc65 Tags


cc65 Description

A complete cross development package for 65(C)02 systems, including a powerful macro assembler 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 8bit 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. I'm working hard to make the compiler ISO C compatible, so you should be able to translate many sources from other systems. The following features are not available or do not work as described in the standard: * The volatile qualifier is parsed but has no effect. * The datatypes float and double are not available. * Several C99 data types are not available: long long int, _Complex, _Bool and a few more. For most of these data types, this is a permanent limitation as I cannot see any sense in supporting 64-bit integers or complex numbers on a 6502 platform. * C functions may not return structs and structs may not be passed as parameters by value. Struct assignment is possible. Assembler functions may return structs of size 1, 2 or 4. * There are some limitation on the size of local variables. Not all operations are available if the size of local variables exceeds 256 bytes. * Part of the C library is available only with fastcall calling conventions (see below). This means, that you may not mix pointers to those functions with pointers to user written functions. * Some functions for wide characters (wchar_t) aren't available. There may be other target system dependent limitations. One example is file I/O, which is not implemented on all platforms. This is no technical limitation (as with the stuff mentioned above) but does just mean that no one cared enough to write the actual code. Depending on the mode the compiler is in (set with the --standard compiler switch), the following non standard features may be available: * Single line comments that start with //. * Unnamed parameters in parameter lists. The compiler will not issue warnings about unused parameters that don't have a name. * Additional keywords that are needed for special features. * Inline assembler commands. * Flexible array members in structs. * Unstructured data using the void keyword.


cc65 Related Software