C syntax compiler optimized for the 6502 microprocessor
Go to file
Curtis F Kaylor ae38a81b3f Add generation of BRA instructions for 65C02 2018-02-04 22:30:23 -05:00
apple1 Add generation of BRA instructions for 65C02 2018-02-04 22:30:23 -05:00
doc Renamed stdio functions to match C standard 2018-02-02 16:33:57 -05:00
include Added new function definitions to stdiox.h02 2018-02-03 12:43:05 -05:00
py65 Added Left and Right Justified Decimal to stdiox.a02 2018-02-02 18:37:19 -05:00
test Added generic C02 test programs test/* 2018-01-28 14:47:06 -05:00
vcs Added Atari 2600 C02 test programs vcs/*.c02 2018-01-28 14:44:10 -05:00
vic20 Added VIC-20 specific C02 compile scripts vic20/c02.bat and vic20/c02.sh 2018-01-28 14:38:11 -05:00
.gitignore Added file types to .gitignore and clean02.bat 2018-02-03 13:39:17 -05:00
README.md Updated Intro section of README.md 2018-02-03 14:10:33 -05:00
asm.c Numerous modifications 2017-06-26 20:16:23 -04:00
asm.h Save entire project before changing condition parser to use JMP 2017-04-22 14:39:52 -04:00
asm6502.c Numerous modifications 2017-06-26 20:16:23 -04:00
c02.bat Added DOS batch, Bash script, and Notepad++ language files 2018-01-28 13:43:17 -05:00
c02.c Add generation of BRA instructions for 65C02 2018-02-04 22:30:23 -05:00
c02.exe Add generation of BRA instructions for 65C02 2018-02-04 22:30:23 -05:00
c02.lang Added DOS batch, Bash script, and Notepad++ language files 2018-01-28 13:43:17 -05:00
c02.ppj Added Pelles C IDE project files 2018-01-28 13:32:49 -05:00
c02.ppx Add generation of BRA instructions for 65C02 2018-02-04 22:30:23 -05:00
c02.sh Added DOS batch, Bash script, and Notepad++ language files 2018-01-28 13:43:17 -05:00
c02.tag Add generation of BRA instructions for 65C02 2018-02-04 22:30:23 -05:00
clean02.bat Added file types to .gitignore and clean02.bat 2018-02-03 13:39:17 -05:00
clean02.sh Added cleanup scripts clean02.bat and clean02.sh 2018-01-28 14:57:18 -05:00
common.c Save entire project before changing condition parser to use JMP 2017-04-22 14:39:52 -04:00
common.h Add generation of BRA instructions for 65C02 2018-02-04 22:30:23 -05:00
cond.c Numerous modifications 2017-06-26 20:16:23 -04:00
cond.h Implemented do, while, and for 2017-04-30 21:17:50 -04:00
expr.c Fixed bug with constant parsing and array indexes. 2018-01-28 13:27:33 -05:00
expr.h Numerous modifications 2017-06-26 20:16:23 -04:00
files.c Save entire project before changing condition parser to use JMP 2017-04-22 14:39:52 -04:00
files.h Save entire project before changing condition parser to use JMP 2017-04-22 14:39:52 -04:00
include.c Fixed bug with constant parsing and array indexes. 2018-01-28 13:27:33 -05:00
include.h Numerous modifications 2017-06-26 20:16:23 -04:00
label.c Numerous modifications 2017-06-26 20:16:23 -04:00
label.h Numerous modifications 2017-06-26 20:16:23 -04:00
parse.c Add generation of BRA instructions for 65C02 2018-02-04 22:30:23 -05:00
parse.h Updates to compiler header files 2018-01-28 13:38:17 -05:00
stmnt.c Add generation of BRA instructions for 65C02 2018-02-04 22:30:23 -05:00
stmnt.h Numerous modifications 2017-06-26 20:16:23 -04:00
test.asm Initial commit of c02.c and test.asm 2017-03-28 00:09:18 -04:00
vars.c Fixed bug with constant parsing and array indexes. 2018-01-28 13:27:33 -05:00
vars.h Updates to compiler header files 2018-01-28 13:38:17 -05:00

README.md

C02

C02 is a simple C-syntax language designed to generate highly optimized code for the 6502 microprocessor. The C02 specification is a highly specific subset of the C standard with some modifications and extensions

The compiler generates assembly language code, currently targeted to the DASM assembler.

See the top-level documentation for more information.

Building the Compiler

In Linux, use gcc and the Makefile.

In Windows use the Pelles C IDE and the file ./C02.ppj.

Compiling C02 programs

At a command line, cd into the appropriate directory, e.g. py65 or vic20.

Execute the c02 compiler from the parent directory using the c02 source file (without the .c02 extension) as an argument.

For example, to compile the program conds.c02, in the py65 directory, use the command

../c02 conds

in Linux, or

..\c02 conds

in Windows.

Some of the subdirectories contain a c02.bat file, which will compile the .c02 program, then run dasm to assemble the code. However, the path to dasm is hardcoded, so you will likely need to change it.

The file c02.sh provides the same functionality in Linux, but it may not be in a working state.