mirror of
https://github.com/brouhaha/a2zip.git
synced 2024-06-10 15:29:27 +00:00
Add XZIP interpreter revision A. Some updates to EZIP and ZIP.
This commit is contained in:
parent
c80f8653c8
commit
939785c594
14
Makefile
14
Makefile
|
@ -11,7 +11,8 @@ all: zip1.lst zip1.bin zip1-check \
|
||||||
ezip2b.lst ezip2b.bin ezip2b-check \
|
ezip2b.lst ezip2b.bin ezip2b-check \
|
||||||
ezip2c.lst ezip2c.bin ezip2c-check \
|
ezip2c.lst ezip2c.bin ezip2c-check \
|
||||||
ezip2d.lst ezip2d.bin ezip2d-check \
|
ezip2d.lst ezip2d.bin ezip2d-check \
|
||||||
ezip2h.lst ezip2h.bin ezip2h-check
|
ezip2h.lst ezip2h.bin ezip2h-check \
|
||||||
|
xzip2a.lst xzip2a.bin xzip2a-check
|
||||||
|
|
||||||
|
|
||||||
%.p %.lst: %.asm
|
%.p %.lst: %.asm
|
||||||
|
@ -158,9 +159,20 @@ ezip2h-check: ezip2h.bin
|
||||||
echo "2683ce2f038bce968796540a3a9ce652a9e4120d06a75ee2e80c09cab7c09503 ezip2h.bin" | sha256sum -c
|
echo "2683ce2f038bce968796540a3a9ce652a9e4120d06a75ee2e80c09cab7c09503 ezip2h.bin" | sha256sum -c
|
||||||
|
|
||||||
|
|
||||||
|
xzip2a.p xzip2a.lst: xzip.asm
|
||||||
|
asl xzip.asm -o xzip2a.p -L -OLIST xzip2a.lst -D iver='$$0501'
|
||||||
|
|
||||||
|
xzip2a.bin: xzip2a.p
|
||||||
|
p2bin -r '$$d000-$$feff' xzip2a.p
|
||||||
|
|
||||||
|
xzip2a-check: xzip2a.bin
|
||||||
|
echo "9aaf97852fd38f0015248074e88e3b1045602cbf8d01bb11d489e0687dc5287d xzip2a.bin" | sha256sum -c
|
||||||
|
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -f zip{1,2,3,3a,3b}.{p,lst,bin}
|
rm -f zip{1,2,3,3a,3b}.{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 xzip2a.{p,lst,bin}
|
||||||
|
|
||||||
|
|
||||||
.PRECIOUS: %.lst
|
.PRECIOUS: %.lst
|
||||||
|
|
41
README.md
41
README.md
|
@ -13,8 +13,8 @@ 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 ZIP and
|
More recently I've partially reverse-engineered a few newer Apple II
|
||||||
EZIP interpreters.
|
ZIP, EZIP, and XZIP interpreters.
|
||||||
|
|
||||||
The reverse-engineered "source code" cross-assembles using the
|
The reverse-engineered "source code" cross-assembles using the
|
||||||
Macro Assembler AS, which is open source and supports common development
|
Macro Assembler AS, which is open source and supports common development
|
||||||
|
@ -63,7 +63,7 @@ printer interface card, which previously was required to be slot 1.
|
||||||
|
|
||||||
Revision B added support for splitting the screen into two windows.
|
Revision B added support for splitting the screen into two windows.
|
||||||
|
|
||||||
## Later ZIP interpreters
|
## Later ZIP interpreter revisions
|
||||||
|
|
||||||
Between revision B and revision F of the Apple II ZIP interpreters, a
|
Between revision B and revision F of the Apple II ZIP interpreters, a
|
||||||
substantial rearrangement of the code occurred.
|
substantial rearrangement of the code occurred.
|
||||||
|
@ -75,16 +75,19 @@ with the interpreter.
|
||||||
Currently revisions F, H, K, and M can be built from the source file
|
Currently revisions F, H, K, and M can be built from the source file
|
||||||
"zip-late.asm".
|
"zip-late.asm".
|
||||||
|
|
||||||
|
|
||||||
## EZIP
|
## EZIP
|
||||||
|
|
||||||
Z-Machine architecture v4 doubled the available virtual machine memory size
|
Z-Machine architecture v4 doubled the available virtual machine memory size
|
||||||
to 256 KiB, allowed a game to have more objects, allowed vocabulary words to
|
to 256 KiB, allowed a game to have more objects, allowed vocabulary words to
|
||||||
have up to nine significant characters, and added some improvements to I/O
|
have up to nine significant characters, and added some improvements to I/O
|
||||||
capabilities. The v4 interpreters are known as EZIP. There were five
|
capabilities. The v4 interpreters are known as EZIP.
|
||||||
revisions of the Apple II EZIP interpreter, designated 2A through 2D, and 2H.
|
|
||||||
These interpeters require an Apple IIe, IIc, IIC+, or IIgs with at least
|
There were five revisions of the Apple II EZIP interpreter, designated
|
||||||
128 KiB of RAM.
|
2A through 2D, and 2H. The numric character, 2 is a platform
|
||||||
|
identifier, referencing the Apple II family, while the alphabetic
|
||||||
|
character is the revision of the interpreter for that platform. These
|
||||||
|
interpeters require an Apple IIe, IIc, IIC+, or IIgs with at least 128
|
||||||
|
KiB of RAM.
|
||||||
|
|
||||||
As with later Apple II ZIP interpreter versions, the disk routines are more
|
As with later Apple II ZIP interpreter versions, the disk routines are more
|
||||||
tightly integrated with the interpreter. In EZIP (and the later XZIP),
|
tightly integrated with the interpreter. In EZIP (and the later XZIP),
|
||||||
|
@ -97,11 +100,25 @@ Roland Gustafsson's RWTS18.
|
||||||
Early work on reverse-engineering these is present in the source file
|
Early work on reverse-engineering these is present in the source file
|
||||||
"ezip.asm". This does not use an include file for macro definitions.
|
"ezip.asm". This does not use an include file for macro definitions.
|
||||||
|
|
||||||
## XZIP and YZIP
|
## XZIP
|
||||||
|
|
||||||
Eventually Infocom added even more capabilities, resulting in Z-Machine
|
The Z-Machine architecture v5 added support for character-cell graphics and
|
||||||
architectures 5 and 6, with interpreters known as XZIP and YZIP.
|
timed input. The v5 interpreters are known as XZIP.
|
||||||
These are not currently represented here.
|
|
||||||
|
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 revision A is
|
||||||
|
present in the source file "ezip.asm". This does not use an include
|
||||||
|
file for macro definitions.
|
||||||
|
|
||||||
|
## YZIP
|
||||||
|
|
||||||
|
Eventually Infocom added graphics and mouse support, resulting in
|
||||||
|
Z-Machine architectures 6, with the interpreter known as YZIP.
|
||||||
|
|
||||||
|
YZIP is not currently represented here.
|
||||||
|
|
||||||
## Archive of earliest reverse-engineered source files
|
## Archive of earliest reverse-engineered source files
|
||||||
|
|
||||||
|
|
|
@ -360,8 +360,8 @@ pre_nibble:
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
|
||||||
; write data field
|
write_data_field:
|
||||||
S093a: stx Z6e
|
stx Z6e
|
||||||
stx D0d51
|
stx D0d51
|
||||||
sec
|
sec
|
||||||
|
|
||||||
|
@ -893,7 +893,7 @@ L0ce5: sta Z66
|
||||||
lda mtr_off,x
|
lda mtr_off,x
|
||||||
rts
|
rts
|
||||||
|
|
||||||
L0ceb: jsr S093a
|
L0ceb: jsr write_data_field
|
||||||
bcc L0cdf
|
bcc L0cdf
|
||||||
lda #$10
|
lda #$10
|
||||||
bne L0ce4 ; always taken
|
bne L0ce4 ; always taken
|
||||||
|
|
Loading…
Reference in New Issue
Block a user