mirror of
https://github.com/a2-4am/4cade.git
synced 2024-06-17 23:29:31 +00:00
115 lines
3.1 KiB
Plaintext
115 lines
3.1 KiB
Plaintext
;license:MIT
|
|
;(c) 2018-2021 by 4am & qkumba
|
|
;
|
|
; credits page
|
|
;
|
|
; Public functions
|
|
; - Credits
|
|
; - Help
|
|
;
|
|
|
|
;------------------------------------------------------------------------------
|
|
; Credits
|
|
; display credits page and wait
|
|
;
|
|
; in: none
|
|
; out: C clear
|
|
; all other flags and registers clobbered
|
|
;------------------------------------------------------------------------------
|
|
Credits
|
|
jsr LoadFile ; load credits text into $8000
|
|
!word kRootDirectory
|
|
!word kCreditsFile
|
|
!word $8000
|
|
-- jsr ForceHGRMode
|
|
jsr ClearOffscreen
|
|
ldx #0
|
|
- lda OffscreenPage
|
|
ror ; draw on offscreen page
|
|
+LDADDR $8000
|
|
jsr DrawPage ; draw credits
|
|
jsr ShowOtherPage ; show credits
|
|
jsr WaitForKeyFor30Seconds; wait
|
|
bit CLEARKBD ; don't care about key
|
|
cmp #$81 ; Ctrl-A = about
|
|
beq Credits
|
|
cmp #$90 ; Ctrl-P = launch joystick calibration program
|
|
bne +
|
|
jmp Joystick
|
|
+ cmp #$83 ; Ctrl-C = toggle cheat mode
|
|
bne +
|
|
jsr ToggleCheat
|
|
+ sec ; if called from search mode, tell caller to refresh
|
|
rts
|
|
|
|
;------------------------------------------------------------------------------
|
|
; Help
|
|
; display per-game or global help page and wait
|
|
;
|
|
; in: none
|
|
; out: see above
|
|
;------------------------------------------------------------------------------
|
|
Help
|
|
jsr GetGameToLaunch
|
|
bcs @global
|
|
+ST16 SRC
|
|
jsr LoadFile
|
|
!word kRootDirectory
|
|
!word kGameHelpFile
|
|
!word $6000
|
|
jsr $6000
|
|
clc
|
|
bcc -- ; always branches
|
|
@global jsr LoadFile ; load help text into $8000
|
|
!word kRootDirectory
|
|
!word kHelpTextFile
|
|
!word $8000
|
|
jsr LoadHelpOffscreen ; load fancy backdrop
|
|
ldx #7
|
|
bne - ; always branches
|
|
|
|
LoadFX
|
|
+ST16 @filename
|
|
inc $BF0E ; disable ROM mapping on return
|
|
ldx #2
|
|
ldy #0 ; SMC
|
|
lda (zpword), y
|
|
tay
|
|
iny
|
|
- iny
|
|
lda (zpword), y
|
|
sta @offset, x
|
|
dex
|
|
bpl -
|
|
jsr $bf00 ; yes, ProDOS abstraction
|
|
!byte $c8
|
|
!word @c8_parms
|
|
jsr $bf00
|
|
!byte $ce
|
|
!word @ce_parms
|
|
jsr $bf00
|
|
!byte $ca
|
|
!word @ca_parms
|
|
jsr $bf00
|
|
!byte $cc
|
|
!word @cc_parms
|
|
dec $BF0E ; re-enable ROM mapping on return
|
|
jmp SwitchToBank1
|
|
|
|
@c8_parms
|
|
!byte 3
|
|
@filename
|
|
!word $DFDF ; SMC
|
|
!byte 0
|
|
@ce_parms
|
|
!byte $d0
|
|
!byte 1
|
|
@offset !byte 0, 0, 0 ; SMC
|
|
!byte $ff
|
|
@ca_parms
|
|
!byte $ff
|
|
@cc_parms
|
|
!byte 1
|
|
!word $6000
|
|
!word $600
|