a little refactoring

This commit is contained in:
4am 2020-03-15 11:23:56 -04:00
parent 1a42f29478
commit d0cc8ecee1
6 changed files with 89 additions and 80 deletions

View File

@ -108,6 +108,7 @@ ResetVector ; 6 bytes, copied to $100
!source "src/parse.common.a"
!source "src/parse.prefs.a"
!source "src/glue.prorwts2.a"
!source "src/glue.decompress.a"
!source "src/ui.common.a"
; add new files above here so ui.wait stays last

87
src/glue.decompress.a Normal file
View File

@ -0,0 +1,87 @@
;license:MIT
;(c) 2018-2020 by 4am & qkumba
;
; Exomizer glue functions
;
; Public functions
; - DecompressHGR
; - DecompressDHGR
; - DecompressSHR
;
DECRUNCH = $0314 ; decrunch entry point
;------------------------------------------------------------------------------
; DecompressSHR
;
; in: compressed SHR loaded to $1FF8+
; file size in sizelo2/sizehi2 as set by ProRWTS2
; out: decompressed SHR at $2000..$9FFF
; $00A7..$00A8 clobbered by decompressor
; $00AE..$00AF clobbered by decompressor
; $00FC..$00FF clobbered by decompressor
; $0200..$03CB clobbered by decompressor
;------------------------------------------------------------------------------
DecompressSHR
lda #$1F
+HIDE_NEXT_2_BYTES
; /!\ execution falls through here
;------------------------------------------------------------------------------
; DecompressHGR
;
; in: compressed HGR loaded to $3FF8+
; file size in sizelo2/sizehi2 as set by ProRWTS2
; out: decompressed HGR at $4000..$5FFF
; $00A7..$00A8 clobbered by decompressor
; $00AE..$00AF clobbered by decompressor
; $00FC..$00FF clobbered by decompressor
; $0200..$03CB clobbered by decompressor
;------------------------------------------------------------------------------
DecompressHGR
lda #$3F
pha
jsr SwitchToBank2
jsr EnableAccelerator
lda sizehi2
pha
lda sizelo2
pha
lda #>(@loaddecrunch - 1)
pha
lda #<(@loaddecrunch - 1)
pha
lda auxreq
bne +
jmp LoadFile ; load decompression code to $200
+ jmp LoadAuxFile ; load decompression code to $200/aux
@loaddecrunch
!word kRootDirectory
!word kDecrunchFile
!word $200
ldx auxreq
sta READMAINMEM,x ; X = 0 or 1, so this will be READMAINMEM or READAUXMEM
sta WRITEMAINMEM,x ; X = 0 or 1, so this will be WRITEMAINMEM or WRITEAUXMEM
jsr DECRUNCH ; loaded from separate file
jsr SwitchToBank2
jmp DisableAcceleratorAndSwitchToBank1
;------------------------------------------------------------------------------
; DecompressDHGR
;
; in: compressed DHGR loaded to aux $3FF8+
; file size in sizelo2/sizehi2 as set by ProRWTS2
; out: decompressed HGR at $4000..$5FFF/main and $4000..$5FFF/aux
; $6000..$7FFF/aux clobbered by decompressor
; $00A7..$00A8 clobbered by decompressor
; $00AE..$00AF clobbered by decompressor
; $00FC..$00FF clobbered by decompressor
; $0200..$03CB clobbered by decompressor
;------------------------------------------------------------------------------
DecompressDHGR
jsr DecompressHGR
sta WRITEMAINMEM
lda #$60
sta PageFrom+2
lda #$40
jmp CopyHGR ; switches back to READMAINMEM on exit

View File

@ -304,25 +304,3 @@ RedrawForDHGR
dec i
bne --
jmp SwitchToBank1
;------------------------------------------------------------------------------
; DecompressDHGR [private]
;
; in: compressed DHGR loaded to aux $3FF8+
; file size in sizelo2/sizehi2 as set by ProRWTS2
; out: decompressed HGR at $4000..$5FFF/main and $4000..$5FFF/aux
; $6000..$7FFF/aux clobbered by decompressor
; $00A7..$00A8 clobbered by decompressor
; $00AE..$00AF clobbered by decompressor
; $00FC..$00FF clobbered by decompressor
; $0200..$03CB clobbered by decompressor
;------------------------------------------------------------------------------
DecompressDHGR
jsr DecompressHGR
sta $C004
lda #$60
sta PageFrom+2
lda #$40
jsr CopyHGR
sta $C002
rts

View File

@ -160,44 +160,3 @@ HGRActionCallback
!word $3FF8
jsr DecompressHGR
jmp DrawGameTitleInActionSlideshowHGR
;------------------------------------------------------------------------------
; DecompressHGR [private]
;
; in: compressed HGR loaded to $3FF8+
; file size in sizelo2/sizehi2 as set by ProRWTS2
; out: decompressed HGR at $4000..$5FFF
; $00A7..$00A8 clobbered by decompressor
; $00AE..$00AF clobbered by decompressor
; $00FC..$00FF clobbered by decompressor
; $0200..$03CB clobbered by decompressor
;------------------------------------------------------------------------------
DecompressHGR
lda #$3F
DecompressCommon
pha
jsr SwitchToBank2
jsr EnableAccelerator
lda sizehi2
pha
lda sizelo2
pha
lda #>(@loaddecrunch - 1)
pha
lda #<(@loaddecrunch - 1)
pha
lda auxreq
bne +
jmp LoadFile ; load decompression code to $200
+ jmp LoadAuxFile ; load decompression code to $200/aux
@loaddecrunch
!word kRootDirectory
!word kDecrunchFile
!word $200
ldx auxreq
sta $C002,x
sta $C004,x
jsr $314 ; decrunch entry
jsr SwitchToBank2
jmp DisableAcceleratorAndSwitchToBank1

View File

@ -141,19 +141,3 @@ BlankSHR
sta NEWVIDEO
rts
;------------------------------------------------------------------------------
; DecompressSHR [private]
;
; in: compressed SHR loaded to $1FF8+
; file size in sizelo2/sizehi2 as set by ProRWTS2
; out: decompressed SHR at $2000..$9FFF
; $00A7..$00A8 clobbered by decompressor
; $00AE..$00AF clobbered by decompressor
; $00FC..$00FF clobbered by decompressor
; $0200..$03CB clobbered by decompressor
;------------------------------------------------------------------------------
DecompressSHR
lda #$1F
jmp DecompressCommon

View File

@ -176,9 +176,9 @@ PageTo sta $FD00,y ; SMC
inc PageTo+2
dex
bne PageFrom
sta READMAINMEM
rts
ResyncPage
jsr ToggleOffscreenPage
; /!\ execution falls through here to ShowOtherPage