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 \ xzip2a.lst xzip2a.bin xzip2a-check \
xzip2c.lst xzip2c.bin xzip2c-check \ xzip2c.lst xzip2c.bin xzip2c-check \
xzip2e.lst xzip2e.bin xzip2e-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 %.p %.lst: %.asm
@ -202,10 +203,20 @@ xzip2f-check: xzip2f.bin
echo "1df3dc06b9bbf9876a21ea67fa394bbbb44ca743b61380e9238a71e3bc2ec33d xzip2f.bin" | sha256sum -c 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: 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 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 .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 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. 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. ZIP, EZIP, and XZIP interpreters.
The reverse-engineered "source code" cross-assembles using the 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 F, and H. The platform number will be reported as 2, except when using
an Apple IIc, which will be reported as 9. an Apple IIc, which will be reported as 9.
Early work on reverse-engineering XZIP interpreter revisions A, C, E, and F Early work on reverse-engineering thes is present int eh source file
are present in the source file "xzip.asm". This does not use an "xzip.asm". This does not use an include file for macro definitions.
include file for macro definitions.
## YZIP ## YZIP

View File

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