Add XZIP interpreter revision H.

This commit is contained in:
Eric Smith 2023-07-05 19:36:07 -06:00
parent 5d1bf0a1bb
commit cd70cfb4a7
3 changed files with 48 additions and 8 deletions

View File

@ -15,7 +15,8 @@ all: zip1.lst zip1.bin zip1-check \
xzip2a.lst xzip2a.bin xzip2a-check \
xzip2c.lst xzip2c.bin xzip2c-check \
xzip2e.lst xzip2e.bin xzip2e-check \
xzip2f.lst xzip2f.bin xzip2f-check
xzip2f.lst xzip2f.bin xzip2f-check \
xzip2h.lst xzip2h.bin xzip2h-check
%.p %.lst: %.asm
@ -202,10 +203,20 @@ xzip2f-check: xzip2f.bin
echo "1df3dc06b9bbf9876a21ea67fa394bbbb44ca743b61380e9238a71e3bc2ec33d xzip2f.bin" | sha256sum -c
xzip2h.p xzip2h.lst: xzip.asm
asl xzip.asm -o xzip2h.p -L -OLIST xzip2h.lst -D iver='$$0508'
xzip2h.bin: xzip2h.p
p2bin -r '$$d000-$$feff' xzip2h.p
xzip2h-check: xzip2h.bin
echo "8743ec267305e7dc2a183fdb806fdd96bdaed4d02cbcd636294639dd019a6d40 xzip2h.bin" | sha256sum -c
clean:
rm -f zip{1,2,3,3a,3b}.{p,lst,bin}
rm -f zip{1,2,3,3a,3b,3f,3h,3m}.{p,lst,bin}
rm -f ezip2{a,b,c,d,h}.{p,lst,bin}
rm -f xzip2{a,c,e,f}.{p,lst,bin}
rm -f xzip2{a,c,e,f,h}.{p,lst,bin}
.PRECIOUS: %.lst

View File

@ -13,7 +13,7 @@ interpreted on a ZIP interpreter. ZIP interpreters were written for
many computers, including the Apple II. In 1983 to 1984 I reverse-engineered
a substantial portion of the Apple II version 1 through 3 ZIP interpreters.
More recently I've partially reverse-engineered a few newer Apple II
More recently I've partially reverse-engineered soem newer Apple II
ZIP, EZIP, and XZIP interpreters.
The reverse-engineered "source code" cross-assembles using the
@ -109,9 +109,8 @@ There were five revisions of the Apple II XZIP interpreter, A, C, E,
F, and H. The platform number will be reported as 2, except when using
an Apple IIc, which will be reported as 9.
Early work on reverse-engineering XZIP interpreter revisions A, C, E, and F
are present in the source file "xzip.asm". This does not use an
include file for macro definitions.
Early work on reverse-engineering thes is present int eh source file
"xzip.asm". This does not use an include file for macro definitions.
## YZIP

View File

@ -1601,7 +1601,7 @@ Sd871: lda #'1'
Sd899:
if iver>=iver_e
lda $f0d4
lda Df0d4
beq .fwd1
jmp Sd871
endif
@ -1949,8 +1949,12 @@ msg_out:
ldx #$00
.loop1:
.lda: fcb $bd,$00,$00 ; lda $0000,x ; self-modifying code, MUST be absolute,x
if iver<=iver_f
ldy invflg
bpl .fwd1
endif
ora #$80
.fwd1: jsr Sdb39
inx
@ -2092,7 +2096,11 @@ op_set_window:
ldx Zc7
lda cursrv
sta Dfdea,x
if iver<=iver_f
sta Dfde6,x
endif
lda D057b
sta Dfde8,x
lda arg1
@ -2120,7 +2128,11 @@ op_set_window:
ldx Zc7
lda Dfdea,x
sta cursrv
if iver<=iver_f
lda Dfde6,x
endif
lda Dfde8,x
sta D057b
jmp S08a9
@ -6070,8 +6082,12 @@ Sf69a: sta Zdc
.fwd3: cmp #' '
bcc .rtn
if iver<=iver_f
ldx invflg
bpl .fwd4
endif
ora #$80
.fwd4: ldx Zd6
sta D0200,x
@ -6644,8 +6660,12 @@ op_print_table:
beq .fwd1
lda arg3
.fwd1: sta Z71
if iver<=iver_f
lda cursrh
sta Z6d
endif
lda D057b
sta Z6d+1
lda cursrv
@ -6784,8 +6804,12 @@ Sfada: jsr Sf8e1
sta Dfde4
cmp #$80
bcs .fwd6
if iver<=iver_f
ldx invflg
bpl .fwd5
endif
ora #$80
.fwd5: jsr Sdb39
.fwd6: lda Dfde4
@ -6827,7 +6851,13 @@ Sfada: jsr Sf8e1
and #$01
beq .fwd11
ldy Dfde3
if iver<=iver_f
lda #$0d
else
lda #$00
endif
sta (Zc8),y
ldx Dfde3
dex