4cade/src/demo/burgertime.a

89 lines
1.6 KiB
Plaintext

;license:MIT
;(c) 2021 by Frank M.
!cpu 6502
!to "res/DEMO/BU",plain
*=$300
!source "src/constants.a" ; no code in these
!source "src/macros.a"
+READ_RAM2_WRITE_RAM2
jsr EnableAccelerator
;+LOAD_FILE_KEEP_DIR
ldx #0 ; read to main memory
stx ldrhi
stx ldrlo
+LDADDR title
jsr iLoadFileDirect
ldx #5-1 ; we also need to copy the length byte
- lda newpath,x
sta $BFD0,x
dex
bpl -
lda #$60
sta $3ec9
sta $3f09
jsr $3e97 ; decompress
jsr DisableAccelerator
+READ_ROM_NO_WRITE
lda #$4C
sta $653F
lda #$8D
sta $653F+1
lda #$65
sta $653F+2 ; skip joystick/keyboard selection
lda #$b1
sta $646b
jsr $6400
+ENABLE_ACCEL
jsr $811
lda #0
sta $A30A
lda #1
sta $A30F ; reset vector patch
lda #$4C
sta $9FD3
sta $9FCF
sta $A497 ; set exits
lda #0
sta $9FD3+1
sta $9FCF+1
sta $A497+1
sta $A15B
sta $A16A
sta $A17B
sta $A1D0 ; disable sound
lda #1
sta $9FD3+2
sta $9FCF+2
sta $A497+2
+DISABLE_ACCEL
jmp $a300
newpath
!byte 4
!text "X/BU"
title !byte x_e-x_b
x_b !text "X/BU/BU"
x_e
!if * > $3F0 {
!error "code is too large, ends at ", *
}