mirror of
https://github.com/a2-4am/4cade.git
synced 2024-11-29 22:49:26 +00:00
move DrawPage inline
This commit is contained in:
parent
5a865d64de
commit
622e65929b
@ -7,7 +7,7 @@
|
|||||||
;
|
;
|
||||||
; LC RAM BANK 1
|
; LC RAM BANK 1
|
||||||
; D000..E789 - persistent data structures (gGlobalPrefsStore, gGamesListStore)
|
; D000..E789 - persistent data structures (gGlobalPrefsStore, gGamesListStore)
|
||||||
; E979..FFF1 - main program code
|
; E95E..FFF1 - main program code
|
||||||
; FFF2..FFF9 - API functions and global constants available for main program
|
; FFF2..FFF9 - API functions and global constants available for main program
|
||||||
; code, prelaunchers, transition effects, &c.
|
; code, prelaunchers, transition effects, &c.
|
||||||
; (Wait/UnwaitForVBL, MockingboardStuff, MachineStatus)
|
; (Wait/UnwaitForVBL, MockingboardStuff, MachineStatus)
|
||||||
@ -16,8 +16,8 @@
|
|||||||
; LC RAM BANK 2
|
; LC RAM BANK 2
|
||||||
; D000..D3FF - ProRWTS data
|
; D000..D3FF - ProRWTS data
|
||||||
; D400..D66F - ProRWTS code
|
; D400..D66F - ProRWTS code
|
||||||
; D670..DB91 - HGR font code & ProRWTS glue code
|
; D670..DB2D - HGR font code & ProRWTS glue code
|
||||||
; DB4D..DB5C - backup of stack (during gameplay and self-running demos)
|
; DB2E..DB3D - backup of stack (during gameplay and self-running demos)
|
||||||
; ...unused...
|
; ...unused...
|
||||||
; DBB4..DBFF - (de)acceleration function
|
; DBB4..DBFF - (de)acceleration function
|
||||||
; DC00..DFFF - HGR font data
|
; DC00..DFFF - HGR font data
|
||||||
|
22
src/macros.a
22
src/macros.a
@ -209,35 +209,35 @@
|
|||||||
|
|
||||||
; various language card configurations
|
; various language card configurations
|
||||||
!macro READ_RAM1_NO_WRITE {
|
!macro READ_RAM1_NO_WRITE {
|
||||||
bit $C088
|
sta $C088
|
||||||
}
|
}
|
||||||
|
|
||||||
!macro READ_RAM1_WRITE_RAM1 {
|
!macro READ_RAM1_WRITE_RAM1 {
|
||||||
bit $C08B
|
sta $C08B
|
||||||
bit $C08B
|
sta $C08B
|
||||||
}
|
}
|
||||||
|
|
||||||
!macro READ_RAM2_NO_WRITE {
|
!macro READ_RAM2_NO_WRITE {
|
||||||
bit $C080
|
sta $C080
|
||||||
}
|
}
|
||||||
|
|
||||||
!macro READ_RAM2_WRITE_RAM2 {
|
!macro READ_RAM2_WRITE_RAM2 {
|
||||||
bit $C083
|
sta $C083
|
||||||
bit $C083
|
sta $C083
|
||||||
}
|
}
|
||||||
|
|
||||||
!macro READ_ROM_WRITE_RAM1 {
|
!macro READ_ROM_WRITE_RAM1 {
|
||||||
bit $C089
|
sta $C089
|
||||||
bit $C089
|
sta $C089
|
||||||
}
|
}
|
||||||
|
|
||||||
!macro READ_ROM_WRITE_RAM2 {
|
!macro READ_ROM_WRITE_RAM2 {
|
||||||
bit $C081
|
sta $C081
|
||||||
bit $C081
|
sta $C081
|
||||||
}
|
}
|
||||||
|
|
||||||
!macro READ_ROM_NO_WRITE {
|
!macro READ_ROM_NO_WRITE {
|
||||||
bit $C082
|
sta $C082
|
||||||
}
|
}
|
||||||
|
|
||||||
; requires setting zpCharMask in zero page to #$FF or #$DF before use
|
; requires setting zpCharMask in zero page to #$FF or #$DF before use
|
||||||
|
@ -283,6 +283,7 @@ DrawGameTitleInActionSlideshow
|
|||||||
ldy gPathname
|
ldy gPathname
|
||||||
sta gPathname,y
|
sta gPathname,y
|
||||||
+LDADDR gPathname
|
+LDADDR gPathname
|
||||||
|
+ST16 PTR
|
||||||
sec
|
sec
|
||||||
jsr DrawString
|
jsr DrawString
|
||||||
@fallthroughForDHGR
|
@fallthroughForDHGR
|
||||||
|
106
src/ui.credits.a
106
src/ui.credits.a
@ -4,46 +4,10 @@
|
|||||||
; credits page
|
; credits page
|
||||||
;
|
;
|
||||||
; Public functions
|
; Public functions
|
||||||
; - Credits
|
|
||||||
; - Help
|
; - Help
|
||||||
|
; - Credits
|
||||||
;
|
;
|
||||||
|
|
||||||
;------------------------------------------------------------------------------
|
|
||||||
; 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
|
|
||||||
.clearAndDisplayHelp
|
|
||||||
jsr ForceHGRMode
|
|
||||||
jsr ClearOffscreen
|
|
||||||
ldx #0
|
|
||||||
.displayHelp
|
|
||||||
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
|
; Help
|
||||||
; display per-game or global help page and wait
|
; display per-game or global help page and wait
|
||||||
@ -83,3 +47,71 @@ Help
|
|||||||
jsr LoadHelpOffscreen ; load fancy backdrop
|
jsr LoadHelpOffscreen ; load fancy backdrop
|
||||||
ldx #7
|
ldx #7
|
||||||
bne .displayHelp ; always branches
|
bne .displayHelp ; always branches
|
||||||
|
|
||||||
|
;------------------------------------------------------------------------------
|
||||||
|
; 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
|
||||||
|
.clearAndDisplayHelp
|
||||||
|
jsr ForceHGRMode
|
||||||
|
jsr ClearOffscreen
|
||||||
|
ldx #0 ; left margin (0 for credits, different for global help)
|
||||||
|
.displayHelp
|
||||||
|
lda OffscreenPage
|
||||||
|
ror ; draw on offscreen page
|
||||||
|
+LDADDR $8000
|
||||||
|
+ST16 PTR
|
||||||
|
;DrawPageInternal inlined here
|
||||||
|
;
|
||||||
|
; PTR contains address of array of length-prefixed strings
|
||||||
|
; length #$FF terminates
|
||||||
|
; X contains 0-indexed left margin (HTAB)
|
||||||
|
; carry bit clear -> draw on page 1
|
||||||
|
; carry bit set -> draw on page 2
|
||||||
|
; drawing starts at VTAB 0
|
||||||
|
; each line starts at column X which was passed in (0-indexed)
|
||||||
|
; clobbers $FF
|
||||||
|
; clobbers A/X/Y
|
||||||
|
; preserves C, other flags clobbered
|
||||||
|
stx $FF
|
||||||
|
ldx #0
|
||||||
|
stx VTAB
|
||||||
|
php ; save C, but Z=1 because of ldx #0
|
||||||
|
@drawLine
|
||||||
|
lda $FF
|
||||||
|
sta HTAB
|
||||||
|
jsr DrawString
|
||||||
|
bmi @donePage
|
||||||
|
clc
|
||||||
|
adc PTR
|
||||||
|
sta PTR
|
||||||
|
bcc +
|
||||||
|
inc PTR+1
|
||||||
|
+ plp ; restore C to whatever it was on entry
|
||||||
|
php
|
||||||
|
beq @drawLine ; always branches
|
||||||
|
@donePage
|
||||||
|
plp
|
||||||
|
;end inline
|
||||||
|
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
|
||||||
|
@ -7,20 +7,15 @@
|
|||||||
; that live in LC RAM 2 now.
|
; that live in LC RAM 2 now.
|
||||||
;
|
;
|
||||||
; Public functions
|
; Public functions
|
||||||
; - DrawPage
|
|
||||||
; - Draw40Chars
|
; - Draw40Chars
|
||||||
; - DrawCenteredString
|
; - DrawCenteredString
|
||||||
; - DrawString
|
; - DrawString
|
||||||
;
|
;
|
||||||
|
|
||||||
DrawString
|
DrawString
|
||||||
jsr StoreAYAndSwitchToBank2
|
jsr SwitchToBank2
|
||||||
jsr DrawStringInternal
|
jsr DrawStringInternal
|
||||||
bne JmpSwitch ; always
|
; /!\ execution falls through here to JmpSwitch
|
||||||
|
|
||||||
DrawPage
|
|
||||||
jsr StoreAYAndSwitchToBank2
|
|
||||||
jsr DrawPageInternal
|
|
||||||
|
|
||||||
JmpSwitch
|
JmpSwitch
|
||||||
jmp SwitchToBank1
|
jmp SwitchToBank1
|
||||||
|
@ -8,39 +8,6 @@
|
|||||||
; which handle bank switching for you.
|
; which handle bank switching for you.
|
||||||
;
|
;
|
||||||
|
|
||||||
DrawPageInternal
|
|
||||||
; PTR contains address of array of length-prefixed strings
|
|
||||||
; length #$FF terminates
|
|
||||||
; X contains 0-indexed left margin (HTAB)
|
|
||||||
; carry bit clear -> draw on page 1
|
|
||||||
; carry bit set -> draw on page 2
|
|
||||||
; drawing starts at VTAB 0
|
|
||||||
; each line starts at column X which was passed in (0-indexed)
|
|
||||||
; clobbers PTR
|
|
||||||
; clobbers $FF
|
|
||||||
; clobbers A/X/Y
|
|
||||||
; preserves C, other flags clobbered
|
|
||||||
stx $FF
|
|
||||||
ldx #0
|
|
||||||
stx VTAB
|
|
||||||
php ; save C, but Z=1 because of ldx #0
|
|
||||||
@drawLine
|
|
||||||
lda $FF
|
|
||||||
sta HTAB
|
|
||||||
jsr DrawStringInternal
|
|
||||||
bmi @donePage
|
|
||||||
clc
|
|
||||||
adc PTR
|
|
||||||
sta PTR
|
|
||||||
bcc +
|
|
||||||
inc PTR+1
|
|
||||||
+ plp ; restore C to whatever it was on entry
|
|
||||||
php
|
|
||||||
beq @drawLine ; always branches
|
|
||||||
@donePage
|
|
||||||
plp
|
|
||||||
rts
|
|
||||||
|
|
||||||
Draw40CharsInternal
|
Draw40CharsInternal
|
||||||
; A/Y contains address of character buffer
|
; A/Y contains address of character buffer
|
||||||
; carry bit clear -> draw on page 1
|
; carry bit clear -> draw on page 1
|
||||||
|
Loading…
Reference in New Issue
Block a user