crustyBASIC - a BASIC cross-compiler for retro machines

crustyBASIC is a BASIC cross-compiler for retro systems and newer. It compiles BASIC source into native machine code. It runs on Windows, MacOS, and Linux. NOTE: this is a work in progress, but is being very actively developed/improved.

--== Join our new Discord at https://discord.gg/yFwSHMEm9 ==--

Currently supported target machines are:

- Apple ][

- Atari 8-bit (inc 5200), 2600 VCS, 7800

- Commodore 64, 128, Vic-20, Plus/4

- TRS-80 Color Computer 1/2/3

- Nintendo NES

- MSDOS 16 bit

- Windows 64 bit (Windows XP - 11)

- Linux 64 bit

- Sinclair ZX81

- Sinclair ZX Spectrum

Some are a little further along than others. More will be added in the future. Lots of example code is included to get you started.

- Compiles BASIC to native machine code for speed

- Options for speed vs size, carts, math libs, etc

- Flexible syntax at compile time with @REWRITE and @REWRITE_EXPR

- Modularity supported by @INCLUDE, pull in files and resources

- Portable APIs (TILE, SPRITE, FILE, GRAPHICS, CELL, IMAGE, INPUT, SOUND, etc) - write once and run multiple on systems

- Supports compiling old BASIC listings, including tokenized, even running on different systems!

Quick Start

@OPTION TARGET c64

CLS

POSITION 0, 0

PRINT "HELLO, WORLD!"

Build a runnable .prg in one shot:

crustybasic hello.cbs

Compile to assembly:

crustybasic compile hello.cbs -o hello.s

Full usage guide and language reference included as well as lots of example code. Bug reports/feature requests can be posted here in the forums or at https://github.com/bsturk/crustybasic

Download

Click download now to get access to the following files: