KickC is a C-compiler for 6502-based platforms creating optimized and readable assembler code. The language is 95% standard C with a few limitations and a few extensions. Download Releases here https://gitlab.com/camelot/kickc/-/releases
Go to file
Flight_Control 1a53d6a913 - Refer .asm library imported global variables to the the namespace where the global variable resides.
- Generalized the AsmLibrary procedures to symbols, to also allow exporting variables.
- Removed the initialization part of .asm library header generation for global exported variables.
- The directive __asm_export can now also be used to indicate global variables exporting within C libraries (for potential .asm library generation).
- Converted the usage of typedef to struct for __conio global variable in cx16_conio.c
- Updated example code.
- Fixed a bug where for exported structs and imported structs, the variables were defined as volatile to non-volatile.
- VariableBuilder constructor now also received the program variable to refer to program level configurations defined.
- Remove to declare string constants as .asm library exported global variables.
- Removed the optimization PassNAsmLibraryGlobalVarsExport. It is not needed. Each global variable export must be explicitly declared using asm_export or __asm_export.
- Improved naming of variables and procedures to retrieve and manage import and export libraries within the program.
2024-04-26 12:44:28 +03:00
manual - Documentation for .asm libraries fixes. 2023-12-15 14:51:18 +01:00
repo Upgraded to KickAss 5.25 2023-09-03 14:44:43 +02:00
src - Refer .asm library imported global variables to the the namespace where the global variable resides. 2024-04-26 12:44:28 +03:00
.gitattributes Attempt at adding C-formatting. 2019-04-20 22:47:18 +02:00
.gitignore - Correct calculation of live ranges for exported and imported procedures parameters and return value, resulting in better ZP coalesce accuracy and ZP allocation compactness. (I really worked a lot on this ...) 2023-12-08 19:06:03 +01:00
.gitlab-ci.yml touching fragment cache. 2022-02-18 10:46:49 +01:00
CONTRIBUTING.md Update CONTRIBUTING.md 2020-08-24 21:32:24 +00:00
LICENSE.txt Added license 2017-12-31 00:12:09 +00:00
Makefile Tweaked doxygen documentation. #672 2021-06-20 10:07:38 +02:00
NOTICE.txt Added cruncher plug-in and example programs. Closes #603 2020-12-30 23:13:55 +01:00
README.md Update README.md 2021-09-29 07:49:24 +00:00
pom.xml #814 Upgrade to Java 17 plus upgraded libraries. 2023-04-06 08:44:31 +02:00

README.md

KickC - Optimizing C-compiler for 6502 platforms

KickC is a C-compiler for 6502-based platforms creating optimized and readable assembler code.

The language is 95% standard C99 with a few limitations, and a few extensions to ensure an optimal fit for creating 6502 assembler code.

The KickC-compiler includes all necessary linker and header files to makes it easy to create and test binaries for the following 6502-based platforms out-of-the-box:

  • Commodore VIC 20
  • Commodore 64
  • Commodore Plus/4 (Commodore 16 , Commodore 116)
  • Atari 2600
  • Atari XL/XE
  • Nintendo NES
  • MEGA65
  • Commander X16

KickC uses the very versatile Kick Assembler. The KickC Compiler produces assembler code for the MOS Technology 6502 processor family. Specifically the compiler supports 6502, 65C02, 65CE02 and 45GS02 CPUs.

Resources

  • Download the newest Release

  • Download a nightly build

  • Read the Reference Manual

  • See the included C standard library

  • Follow the features being developed

  • Discuss the compiler and receive news on facebook

  • Chat on discord

  • Examine the Compiler Source Code

  • Contribute to the development of KickC

BETA

KickC is currently in beta, and at times crash or creates ASM code that does not work properly. Feel free to test it and report any problems or errors you encounter, but do not expect it to produce production quality code. Also, be prepared that breaking changes (to syntax, to semantics, etc.) may be implemented in the next versions.