Re: [MZF] MZ7: MZF file compressor using ZX7 algorithms
Posted: Wed Oct 23, 2019 10:04 am
I probably have more tapes than you, I have copies of the Sharp Libraries, and it was the second tape I tried to to compress that highlighted the problem. Secondly I need the comment area free to hold my High Speed serial transfer code that has transfer rates of 5KBytes/sec on a 2MHz k/a 10K at 4MHz and 9Kbytes/sec on the 700/800. At that speed I would not bother with compression but every bit helps.
I find it easier to compress the obj file first and add my loader/mover, and decoder as a prefix to the compressed data.
I have written how to make a BTX file auto-run from the monitor on the MZ80A using SP-5510 in the Sharp Users Club magazine 2019 vol2 (November issue) and the Compressed Files in the 2020 vol1
Most M/C programs clear the screen, but I agree not all, but basic does.
The RCS stuff is dzx7_smartrcs decoder the with
; Convert an RCS address 010RRccc ccrrrppp to screen address 010RRppp rrrccccc
; (note: replace both EX AF,AF' with PUSH AF/POP AF if you want to preserve AF')
dzx7r_convert:
ex af, af'
ld a, d ; A = 010RRccc
cp $58
jr nc, dzx7r_skip
xor e
and $f8
xor e ; A = 010RRppp
push af
xor d
xor e ; A = ccrrrccc
rlca
rlca ; A = rrrccccc
pop de ; D = 010RRppp
ld e, a ; E = rrrccccc
dzx7r_skip:
ex af, af'
ret
removed as it relates to addresses at 16384 the spectrum screen area, not needed on the Sharp's.
I will send you details of the auto-run tapes routines
I find it easier to compress the obj file first and add my loader/mover, and decoder as a prefix to the compressed data.
I have written how to make a BTX file auto-run from the monitor on the MZ80A using SP-5510 in the Sharp Users Club magazine 2019 vol2 (November issue) and the Compressed Files in the 2020 vol1
Most M/C programs clear the screen, but I agree not all, but basic does.
The RCS stuff is dzx7_smartrcs decoder the with
; Convert an RCS address 010RRccc ccrrrppp to screen address 010RRppp rrrccccc
; (note: replace both EX AF,AF' with PUSH AF/POP AF if you want to preserve AF')
dzx7r_convert:
ex af, af'
ld a, d ; A = 010RRccc
cp $58
jr nc, dzx7r_skip
xor e
and $f8
xor e ; A = 010RRppp
push af
xor d
xor e ; A = ccrrrccc
rlca
rlca ; A = rrrccccc
pop de ; D = 010RRppp
ld e, a ; E = rrrccccc
dzx7r_skip:
ex af, af'
ret
removed as it relates to addresses at 16384 the spectrum screen area, not needed on the Sharp's.
I will send you details of the auto-run tapes routines