4cade/src/ui.credits.a

143 lines
4.0 KiB
Plaintext
Raw Normal View History

2019-07-10 17:37:59 +00:00
;license:MIT
2021-10-08 06:28:11 +00:00
;(c) 2018-2021 by 4am & qkumba
2019-07-10 17:37:59 +00:00
;
; credits page
;
; Public functions
; - Credits
2019-10-08 03:50:23 +00:00
; - Help
2021-10-12 23:37:45 +00:00
; - LoadFulFile
2019-10-08 03:50:23 +00:00
;
2019-07-10 17:37:59 +00:00
2019-10-14 02:22:47 +00:00
;------------------------------------------------------------------------------
; Credits
; display credits page and wait
;
; in: none
; out: C clear
; all other flags and registers clobbered
;------------------------------------------------------------------------------
2019-07-10 17:37:59 +00:00
Credits
2019-09-10 02:38:17 +00:00
jsr LoadFile ; load credits text into $8000
!word kRootDirectory
2019-09-21 22:04:38 +00:00
!word kCreditsFile
2019-09-10 02:38:17 +00:00
!word $8000
2020-04-02 21:58:13 +00:00
-- jsr ForceHGRMode
2019-07-10 17:37:59 +00:00
jsr ClearOffscreen
2020-11-09 20:22:38 +00:00
ldx #0
- lda OffscreenPage
2019-07-10 17:37:59 +00:00
ror ; draw on offscreen page
+LDADDR $8000
2020-11-09 20:22:38 +00:00
jsr DrawPage ; draw credits
jsr ShowOtherPage ; show credits
jsr WaitForKeyFor30Seconds; wait
2020-03-24 20:30:14 +00:00
bit CLEARKBD ; don't care about key
2020-06-06 00:09:51 +00:00
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
2020-06-06 00:09:51 +00:00
bne +
jsr ToggleCheat
+ sec ; if called from search mode, tell caller to refresh
2019-07-10 17:37:59 +00:00
rts
2019-10-14 02:22:47 +00:00
;------------------------------------------------------------------------------
; Help
2020-04-02 21:58:13 +00:00
; display per-game or global help page and wait
2019-10-14 02:22:47 +00:00
;
; in: none
2020-03-24 20:30:14 +00:00
; out: see above
2019-10-14 02:22:47 +00:00
;------------------------------------------------------------------------------
Help
2020-04-02 21:58:13 +00:00
jsr GetGameToLaunch
bcs @global
2021-10-12 23:37:45 +00:00
+ST16 ++
2020-04-02 21:58:13 +00:00
jsr LoadFile
!word kRootDirectory
2021-10-13 02:55:41 +00:00
!word kGameHelpIndexFile
2021-10-12 23:37:45 +00:00
- !word $6000
jsr okvs_find
!word -
++ !word $DFDF ; SMC
+ST16 zpword
jsr LoadFulFile
!word kGameHelpFile
2021-10-12 23:37:45 +00:00
!word $8000
2020-04-02 21:58:13 +00:00
clc
bcc -- ; always branches
@global jsr LoadFile ; load help text into $8000
!word kRootDirectory
!word kHelpTextFile
!word $8000
2020-04-02 21:58:13 +00:00
jsr LoadHelpOffscreen ; load fancy backdrop
ldx #7
2021-10-13 06:05:41 +00:00
bne -- ; always branches
2021-10-08 06:28:11 +00:00
2021-10-12 23:37:45 +00:00
;------------------------------------------------------------------------------
; LoadFulFile
; Load a *ful file (compiled okvs with offset value) into memory all at once
;
; in: stack contains 4 bytes of parameters:
; +1 [word] pointer to filename to open
; +3 [word] address of load destination
; zpword: pointer to okvs key field
; out: all flags clobbered
; all registers clobbered
;------------------------------------------------------------------------------
LoadFulFile
+PARAMS_ON_STACK 4
+LDPARAM 1
2021-10-08 06:28:11 +00:00
+ST16 @filename
2021-10-12 23:37:45 +00:00
+LDPARAM 3
+ST16 @address
2021-10-08 06:28:11 +00:00
inc $BF0E ; disable ROM mapping on return
ldx #2
2021-10-12 23:37:45 +00:00
ldy #0
2021-10-08 06:28:11 +00:00
lda (zpword), y
tay
- iny
lda (zpword), y
sta @offset, x
dex
bpl -
2021-10-13 06:05:41 +00:00
dex
- iny
lda (zpword), y
sta @size - $fe, x
inx
bmi -
2021-10-08 06:28:11 +00:00
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
2021-10-12 23:37:45 +00:00
!byte 3
2021-10-08 06:28:11 +00:00
@filename
2021-10-12 23:37:45 +00:00
!word $DFDF ; SMC
!byte 0
2021-10-08 06:28:11 +00:00
@ce_parms
2021-10-12 23:37:45 +00:00
!byte $d0
!byte 1
@offset !byte 0, 0, 0 ; SMC
!byte $ff
2021-10-08 06:28:11 +00:00
@ca_parms
2021-10-12 23:37:45 +00:00
!byte $ff
2021-10-08 06:28:11 +00:00
@cc_parms
2021-10-12 23:37:45 +00:00
!byte 1
@address !word $DFDF ; SMC
2021-10-13 06:05:41 +00:00
@size !word $DFDF ; SMC
!word $ffff