mirror of https://github.com/brouhaha/a2zip.git
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 \
|
||||
ezip2c.lst ezip2c.bin ezip2c-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
|
||||
|
@ -158,9 +159,20 @@ ezip2h-check: ezip2h.bin
|
|||
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:
|
||||
rm -f zip{1,2,3,3a,3b}.{p,lst,bin}
|
||||
rm -f ezip2{a,b,c,d,h}.{p,lst,bin}
|
||||
rm -f xzip2a.{p,lst,bin}
|
||||
|
||||
|
||||
.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
|
||||
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
|
||||
EZIP interpreters.
|
||||
More recently I've partially reverse-engineered a few newer Apple II
|
||||
ZIP, EZIP, and XZIP interpreters.
|
||||
|
||||
The reverse-engineered "source code" cross-assembles using the
|
||||
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.
|
||||
|
||||
## Later ZIP interpreters
|
||||
## Later ZIP interpreter revisions
|
||||
|
||||
Between revision B and revision F of the Apple II ZIP interpreters, a
|
||||
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
|
||||
"zip-late.asm".
|
||||
|
||||
|
||||
## EZIP
|
||||
|
||||
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
|
||||
have up to nine significant characters, and added some improvements to I/O
|
||||
capabilities. The v4 interpreters are known as EZIP. There were five
|
||||
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
|
||||
128 KiB of RAM.
|
||||
capabilities. The v4 interpreters are known as EZIP.
|
||||
|
||||
There were five revisions of the Apple II EZIP interpreter, designated
|
||||
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
|
||||
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
|
||||
"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
|
||||
architectures 5 and 6, with interpreters known as XZIP and YZIP.
|
||||
These are not currently represented here.
|
||||
The Z-Machine architecture v5 added support for character-cell graphics and
|
||||
timed input. The v5 interpreters are known as XZIP.
|
||||
|
||||
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
|
||||
|
||||
|
|
|
@ -360,8 +360,8 @@ pre_nibble:
|
|||
rts
|
||||
|
||||
|
||||
; write data field
|
||||
S093a: stx Z6e
|
||||
write_data_field:
|
||||
stx Z6e
|
||||
stx D0d51
|
||||
sec
|
||||
|
||||
|
@ -893,7 +893,7 @@ L0ce5: sta Z66
|
|||
lda mtr_off,x
|
||||
rts
|
||||
|
||||
L0ceb: jsr S093a
|
||||
L0ceb: jsr write_data_field
|
||||
bcc L0cdf
|
||||
lda #$10
|
||||
bne L0ce4 ; always taken
|
||||
|
|
Loading…
Reference in New Issue