mirror of
https://github.com/a2-4am/4cade.git
synced 2025-08-10 08:25:13 +00:00
a little refactoring
This commit is contained in:
@@ -108,6 +108,7 @@ ResetVector ; 6 bytes, copied to $100
|
|||||||
!source "src/parse.common.a"
|
!source "src/parse.common.a"
|
||||||
!source "src/parse.prefs.a"
|
!source "src/parse.prefs.a"
|
||||||
!source "src/glue.prorwts2.a"
|
!source "src/glue.prorwts2.a"
|
||||||
|
!source "src/glue.decompress.a"
|
||||||
!source "src/ui.common.a"
|
!source "src/ui.common.a"
|
||||||
|
|
||||||
; add new files above here so ui.wait stays last
|
; add new files above here so ui.wait stays last
|
||||||
|
87
src/glue.decompress.a
Normal file
87
src/glue.decompress.a
Normal 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
|
@@ -304,25 +304,3 @@ RedrawForDHGR
|
|||||||
dec i
|
dec i
|
||||||
bne --
|
bne --
|
||||||
jmp SwitchToBank1
|
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
|
|
||||||
|
@@ -160,44 +160,3 @@ HGRActionCallback
|
|||||||
!word $3FF8
|
!word $3FF8
|
||||||
jsr DecompressHGR
|
jsr DecompressHGR
|
||||||
jmp DrawGameTitleInActionSlideshowHGR
|
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
|
|
||||||
|
@@ -141,19 +141,3 @@ BlankSHR
|
|||||||
sta NEWVIDEO
|
sta NEWVIDEO
|
||||||
|
|
||||||
rts
|
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
|
|
||||||
|
|
||||||
|
@@ -176,9 +176,9 @@ PageTo sta $FD00,y ; SMC
|
|||||||
inc PageTo+2
|
inc PageTo+2
|
||||||
dex
|
dex
|
||||||
bne PageFrom
|
bne PageFrom
|
||||||
|
sta READMAINMEM
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
|
||||||
ResyncPage
|
ResyncPage
|
||||||
jsr ToggleOffscreenPage
|
jsr ToggleOffscreenPage
|
||||||
; /!\ execution falls through here to ShowOtherPage
|
; /!\ execution falls through here to ShowOtherPage
|
||||||
|
Reference in New Issue
Block a user