cc64 is a small-C compiler, written in Forth (here's why), targeting the 6502 CPU. It's hosted on the Commodore C64, on the C16 with 64k RAM and the Plus4, and on the new Commander X16, and runtime targets are also available for all 3 platforms, on each host, allowing cross-compilation.
cc64 language restrictions lists the subset of C that cc64 supports.
Code layout and library concept explains, among others, how to create a new target.
Emulator and file formats describes the emulator setup I use for developing and testing.
I wrote cc64 during my university years; the majority of the code was written 1989-1991. Motivated by buzzphp who's building a C library for cc64, and also by Johan Kotlinski of DurexForth and AcmeForth, I have finally open-sourced the project. See Versions for more info.
I hope you'll find cc64 fun to use; I definitely had - and am having - fun developing it.