Skip to content

Commit d9b508f

Browse files
author
Maciej Małecki
committed
externalize zp registers for exo decrunch
1 parent 95642fd commit d9b508f

2 files changed

Lines changed: 14 additions & 8 deletions

File tree

lib/exo-decrunch-global.asm

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,4 +26,6 @@
2626
#importonce
2727
.filenamespace c64lib
2828

29-
.macro @c64lib_exoDecrunch(exod_get_crunched_byte, exod_decrunch_table) { exoDecrunch(exod_get_crunched_byte, exod_decrunch_table) }
29+
.macro @c64lib_exoDecrunch(exod_get_crunched_byte, exod_decrunch_table, exod_zp_len_lo, exod_zp_src_lo, exod_zp_bits_hi, exod_zp_bitbuf) {
30+
exoDecrunch(exod_get_crunched_byte, exod_decrunch_table, exod_zp_len_lo, exod_zp_src_lo, exod_zp_bits_hi, exod_zp_bitbuf)
31+
}

lib/exo-decrunch.asm

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -96,8 +96,12 @@ _init_zp:
9696
}
9797

9898

99+
.macro exoDecrunchOriginal(exod_get_crunched_byte) {
100+
exoDecrunch(exod_get_crunched_byte, 0, $9e, $ae, $a7, $fd)
101+
}
102+
99103

100-
.macro exoDecrunch(exod_get_crunched_byte, exod_decrunch_table) {
104+
.macro exoDecrunch(exod_get_crunched_byte, exod_decrunch_table, exod_zp_len_lo, exod_zp_src_lo, exod_zp_bits_hi, exod_zp_bitbuf) {
101105
jmp exod_decrunch
102106
// -------------------------------------------------------------------
103107
// Known quirks:
@@ -160,18 +164,18 @@ _init_zp:
160164
// -------------------------------------------------------------------
161165
// zero page addresses used
162166
// -------------------------------------------------------------------
163-
.label exod_zp_len_lo = $9e
164-
.label exod_zp_len_hi = $9f
167+
// .label exod_zp_len_lo = $9e
168+
.label exod_zp_len_hi = exod_zp_len_lo + 1//$9f
165169

166-
.label exod_zp_src_lo = $ae
170+
// .label exod_zp_src_lo = $ae
167171
.label exod_zp_src_hi = exod_zp_src_lo + 1
168172

169-
.label exod_zp_bits_hi = $a7
173+
// .label exod_zp_bits_hi = $a7
170174
#if !EXO_DONT_REUSE_OFFSET
171-
.label exod_zp_ro_state = $a8
175+
.label exod_zp_ro_state = exod_zp_bits_hi+1//$a8
172176
#endif
173177

174-
.label exod_zp_bitbuf = $fd
178+
// .label exod_zp_bitbuf = $fd
175179
.label exod_zp_dest_lo = exod_zp_bitbuf + 1 // dest addr lo
176180
.label exod_zp_dest_hi = exod_zp_bitbuf + 2 // dest addr hi
177181

0 commit comments

Comments
 (0)