4cade/src/demo/apple.invader.a
frankmilliron 85fbe53fcf
sync Apple Invader demo to recent changes in prelaunch (#485)
* Add files via upload

* Add files via upload
2022-07-11 15:17:35 -04:00

75 lines
1.7 KiB
Plaintext

;license:MIT
;(c) 2021 by Frank M.
!cpu 6502
!to "res/DEMO/APPLE.INVADER",plain
*=$200
!source "src/constants.a" ; no code in these
!source "src/macros.a"
+GAME_REQUIRES_JOYSTICK
lda $7fe
pha
+READ_RAM2_WRITE_RAM2
jsr EnableAccelerator
pla
sta $7fe ; overwritten by GS acceleration
+LOAD_FILE_AT title, $00
+READ_ROM_NO_WRITE
lda #$60
sta $6020
jsr $6002 ; decompress
lda #$D8 ; move location from $3F2 to $3D8
sta $1113 ; (program uses reset vector for storage)
sta $1245
sta $4A2C
sta $4A34
sta $4A41
sta $5A9C
sta $5AA4
sta $5AB1
sta $5A9C
lda #$D9 ; move location from $3F3 to $3D9
sta $1FA0
sta $4A31
sta $4F4D
sta $5AA1
lda #$DA ; move location from $3F4 to $3DA
sta $11AF
sta $1824
sta $19DF
sta $1DE8
sta $1E5A ; reset vector fix
lda #$4C
sta $46C0
lda #0
sta $46C0+1
sta $4A96 ; (moved to $1E37+1)
lda #1
sta $46C0+2 ; exit on keypress
sta $4A9B ; exit at end of demo loop (moved to $1E37+2)
+READ_RAM2_NO_WRITE
lda $7fe
pha
jsr DisableAccelerator
+READ_ROM_NO_WRITE
pla
sta $7fe ; overwritten by GS acceleration
jmp $5F00
title !byte x_e-x_b
x_b !text "X/APPLE.INVADER/APPLE.INVADER"
x_e
!if * > $300 {
!error "code is too large, ends at ", *
}