snake6502/src/cart.asm

55 lines
853 B
NASM
Raw Normal View History

processor 6502
2020-09-15 12:57:10 +00:00
SEG cartridgeSegment
org $8000
2020-09-15 12:57:10 +00:00
cartridge SUBROUTINE
WORD .coldstart
WORD .warmstart
2020-09-15 12:57:10 +00:00
; CBM80 in PETSCII (cartridge signature for autostart)
BYTE #$c3,#$c2,#$cd,#$38,#$30
.unlzg:
INCBIN "res.bin/unlzg.bin"
.lzpack:
INCBIN "bin/snake.pack.lz"
2020-09-15 12:57:10 +00:00
.coldstart:
sei
stx $d016
jsr $fda3
jsr $fd50
jsr $fd15
jsr $ff5b
cli
.warmstart:
; address of input compressed data
lda #<.lzpack
sta 26
lda #>.lzpack
sta 27
; address of output decompressed data
lda #$00
sta 28
lda #$10
sta 29
jsr .unlzg
; jump to program entry
jmp $2800
2020-09-15 12:57:10 +00:00
#if VERBOSE = 1
ECHO "8k CARTRIDGE SIZE:",(. - $8000),"=",[(. - $8000)d]
ECHO "SPACE LEFT:",($9fff - .),"=",[($9fff - .)d]
#endif
; force filler for the *PROM
. = $9fff
BYTE #$ff