4cade/src/4cade.a
2019-01-14 19:06:58 -05:00

71 lines
1.9 KiB
Plaintext

;license:MIT
;(c) 2018 by 4am
;
!cpu 6502
!to "build/LAUNCHER.SYSTEM",plain
*=$2000
!source "src/constants.a"
!source "src/macros.a"
; first-run initialization, relocates code to language card and continues from Main
!source "src/4cade.init.a"
FirstMover
!pseudopc $D000 {
Reenter ; self-running demos should call this to exit back to 4cade
cld
cli
+READ_RAM1_WRITE_RAM1
jsr CloseHandles ; close any open handles to restore ProRWTS state to original
jsr SaveScreenHoles ; restore screen hole contents from saved copy
Main
ldx #$FF
txs
ldx #5
- lda Prelaunch,x ; copy reset vector code (switches to LC RAM and jumps to |Reenter|)
sta $100,x
dex
bpl -
inx
stx $3F2 ; set up reset vectors
stx $FFFC
inx
stx $3F3
stx $FFFD
txa
eor #$A5
sta $3F4
jsr BlankHGR
@loop
lda $C000
cmp #$8D
bne +
jsr Play
+
bit $C010
jsr AttractMode
jmp @loop
; these routines will only be called after relocating to language card
!source "src/ui.search.mode.a"
!source "src/ui.attract.mode.a"
!source "src/ui.attract.hgr.a"
!source "src/ui.attract.dhgr.a"
!source "src/ui.attract.shr.a"
!source "src/prodos.path.a"
!source "src/glue.launch.a"
!source "src/glue.prorwts2.a"
!source "src/okvs.a"
!source "src/wait.a"
!source "src/parse.common.a"
!source "src/parse.prefs.a"
!source "src/parse.games.a"
!source "src/ui.font.a"
!source "src/ui.font.data.a"
gGlobalPrefsStore
!word *+2 ; address of first okvs store
}
LastMover