A compiler targeting the Commodore 64
jeff65 is a compiler for the Commodore 64 (and perhaps in the future, other 6502-based computers). It is implemented in Python 3 and produces .prg files which can be loaded directly in VICE, or combined into .d64 disk images, written to a floppy disk, and run on real hardware.
note: this project is currently in its early stages. Features discussed below are largely the product of wishful thinking and may change at any time.
jeff65 compiles languages using gold syntax, producing blum files as intermediate files. gold syntax provides an imperative systems language for 6502-series processors.
usage: jeff65 compile [-h] [-v] file positional arguments: file the file to compile optional arguments: -h, --help show this help message and exit -v, --verbose show the output of each pass
The jeff65 compiler itself is provided under the GPLv3 license; if you
distribute a modified version of the compiler, you must also make the source
code for your modified version available, as described in the license terms. A
copy of the GPLv3 license is included in
LICENSE.txt in the source
The standard library units and runtime library, whenever they get written, will probably be provided either using the GPL with a linking exception, or under a non-copyleft license.
Gold-syntax provides an imperative systems programming language for 6502-series processors. Features of the processor are exposed in a friendly-but-powerful way; it should be possible to understand what code will be generated by looking directly at the source file.
Gold-syntax is not associated with the Gold parser framework or the gold LLVM linker.
Here is an example file which puts a light red heart to the top-left corner of the screen, which actually works with the compiler in its current, very unfinished, state:
use mem constant screen-corner: &u8 = mem.as-pointer(0x0400) constant screen-corner-color: &u8 = mem.as-pointer(0xd800) fun main() @screen-corner = 0x53 /* screencode for <3 */ @screen-corner-color = 10 /* light red */ endfun
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
|Filename, size||File type||Python version||Upload date||Hashes|
|Filename, size jeff65-0.0.1-py3-none-any.whl (48.1 kB)||File type Wheel||Python version py3||Upload date||Hashes View|
|Filename, size jeff65-0.0.1.tar.gz (34.4 kB)||File type Source||Python version None||Upload date||Hashes View|