Optimize handling of token's Z flag bit in 6809 LZSA2 depacker

This commit is contained in:
Doug Masten 2020-06-26 14:52:09 -05:00
parent 7b96368469
commit 061ca99838

View File

@ -67,10 +67,9 @@ lz2nolt ldb ,s ; get token again, don't pop it from the stack
lslb ; push token's Y flag bit into carry
bcs lz2offs9 ; if token's Y bit is set, 9 bits offset
lslb ; push token's Z flag bit into carry
tfr cc,a ; preserve cpu flags (to preserve carry)
sex ; push token's Z flag bit into reg A
bsr lz2nibl ; get offset nibble in B
tfr a,cc ; restore cpu flags
lsla ; retrieve token's Z flag bit and push into carry
rolb ; shift Z flag from carry into bit 0 of B
eorb #$e1 ; set bits 5-7 of offset, reverse bit 0
@ -106,10 +105,9 @@ lz2done rts
lz2replg lslb ; push token's Y flag bit into carry
bcs lz2rep16 ; if token's Y bit is set, rep or 16 bit offset
lslb ; push token's Z flag bit into carry
tfr cc,a ; preserve cpu flags (to preserve carry)
sex ; push token's Z flag bit into reg A
bsr lz2nibl ; get offset nibble in B
tfr a,cc ; restore cpu flags
lsla ; push token's Z flag bit into carry
rolb ; shift Z flag from carry into bit 0 of B
eorb #$e1 ; set bits 13-15 of offset, reverse bit 8