dist | ||
res.org | ||
scrot | ||
src | ||
util | ||
.gitignore | ||
LICENSE | ||
Makefile | ||
README.md |
snake6502
snake6502 is a snake-like game clone for Commodore home computers, written for fun because «I always wanted to code something for a computer of my retrocomputers collection – actually, this is the main reason I collect them: to write programs».
Download the binary .prg.
Current development status here.
Compile
You need the GNU compiler collection and the dasm macro assembler, then:
$ make
You can also define the following environment variables:
$ DEBUG=1 make
build with debugging artifacts
$ VERBOSE=1 make
output useful info during compilation
$ CARTRIDGE=1 make
produces an 8K bin ready to be burnt to an *PROM
Developer docs
Memory map
Address | PRG | Description |
---|---|---|
$0000 - $0001 |
no | hardware |
$0002 - $00FF |
no | zero page pointers |
$0100 - $07FF |
no | free ram |
$0800 - $0FFF |
yes | autostart (BASIC or cartridge) + Low Program Segment |
$1000 - $1FFF |
yes | SID tune + Middle Program Segment |
$2000 - $27FF |
yes | custom char |
$2800 - $xxxx |
yes | High Program Segment (only needed part used) |
$xxxx - $CCFF |
no | free ram |
$CD00 - $CDFF |
no | data segment (not-initialized vars) |
$CE00 - $CEFF |
no | list X |
$CF00 - $CFFF |
no | list Y |
$D000 - $DFFF |
no | I/O |
$E000 - $FFFF |
no | Kernal |
Note: program (code) segments have been put in all possible free spots in order to squeeze the game into an 8K cartridge.
Custom charset
Index | Description |
---|---|
$00 - $1F |
A-Z (space first) |
$20 - $3F |
A-Z, reversed (space first) |
$40 - $4F |
hex digits |
$50 - $5F |
hex digits, reversed |
$60 - |
game tiles |
Cartridge
Cartridge version is at $8000 and simply copies itself back at $800.
Cartridge version can not be built with DEBUG=1 flag due to size constraints.