snake6502/README.md

2.1 KiB
Raw Blame History

snake6502

Gameplay screenshot

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.