Rocksolid Light

Welcome to novaBBS (click a section below)

mail  files  register  newsreader  groups  login

Message-ID:  

Truly simple systems... require infinite testing. -- Norman Augustine


computers / comp.sys.apple2 / Re: Attempting to reverse-engineer Infocom's Z3 interpreter again

SubjectAuthor
* Attempting to reverse-engineer Infocom's Z3 interpreter againSteve Nickolas
`* Re: Attempting to reverse-engineer Infocom's Z3 interpreter againSteve Nickolas
 `- Re: Attempting to reverse-engineer Infocom's Z3 interpreter againSteve Nickolas

1
Attempting to reverse-engineer Infocom's Z3 interpreter again

<alpine.DEB.2.21.2201101009180.15718@sd-119843.dedibox.fr>

 copy mid

https://www.novabbs.com/computers/article-flat.php?id=3994&group=comp.sys.apple2#3994

 copy link   Newsgroups: comp.sys.apple2
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: usots...@buric.co (Steve Nickolas)
Newsgroups: comp.sys.apple2
Subject: Attempting to reverse-engineer Infocom's Z3 interpreter again
Date: Mon, 10 Jan 2022 10:21:33 -0500
Organization: A noiseless patient Spider
Lines: 48
Message-ID: <alpine.DEB.2.21.2201101009180.15718@sd-119843.dedibox.fr>
Mime-Version: 1.0
Content-Type: multipart/mixed; boundary="8323329-1912786191-1641828099=:15718"
Injection-Info: reader02.eternal-september.org; posting-host="4c9c12e8197b4a5b801eaed234ed6517";
logging-data="13037"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX198g4VMfv5TITouzH24zYhBblozuYGD+Tc="
User-Agent: Alpine 2.21 (DEB 202 2017-01-01)
Cancel-Lock: sha1:svbbNjdbl3yHXdzbfaQql6Owl5Q=
X-X-Sender: mary@sd-119843.dedibox.fr
 by: Steve Nickolas - Mon, 10 Jan 2022 15:21 UTC

I've gotten quite a bit further this time than I did last time.

https://6.buric.co/zterp.a65.txt
https://6.buric.co/zterp.lst.txt

(I know there's a disassembly of another version; this one's
machine-readable and is of the latest known version, that's why I'm doing
it.)

The image I disassembled is captured from where execution hits $176B.
I've actually identified a few subroutines and tables (for example there's
some RWTS data tables starting at 0B23, which is a really unusual place to
put them but I think the code is trying to use as little memory as
possible). As I believe I've mentioned, the entire interpreter, including
the IPL, only takes 8K on disk; track $02 is empty (and my Apple ///
compatibility hack exploits this). I know there's disk code in 0900-0AFF
and 0C00-0D2E at least.

My intentions are:

1. If I can sufficiently understand it, I would like to relocate the code
and make a more proper Apple ///-compatible interpreter. (I had to
cripple it on the /// because of the 80-column text memory being located
in 0800-0BFF.)

2. I'm thinking about teaching myself a bit about other 6502-based systems
by porting the code over ;). I know there's a PET interpreter already but
I want to kind-of get my wings by trying to port this one over.

3. I'm thinking of translating the code to 8086 for kicks. 🤪

-uso.

Re: Attempting to reverse-engineer Infocom's Z3 interpreter again

<alpine.DEB.2.21.2201112050120.23804@sd-119843.dedibox.fr>

 copy mid

https://www.novabbs.com/computers/article-flat.php?id=3995&group=comp.sys.apple2#3995

 copy link   Newsgroups: comp.sys.apple2
Path: i2pn2.org!i2pn.org!aioe.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: usots...@buric.co (Steve Nickolas)
Newsgroups: comp.sys.apple2
Subject: Re: Attempting to reverse-engineer Infocom's Z3 interpreter again
Date: Tue, 11 Jan 2022 20:55:16 -0500
Organization: A noiseless patient Spider
Lines: 8
Message-ID: <alpine.DEB.2.21.2201112050120.23804@sd-119843.dedibox.fr>
References: <alpine.DEB.2.21.2201101009180.15718@sd-119843.dedibox.fr>
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII; format=flowed
Injection-Info: reader02.eternal-september.org; posting-host="9a56d9ea982c990028d3c75b99361aa3";
logging-data="31394"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/zAy5BD2/QjsGWYxWVSzOUiRoT9OfLVTE="
User-Agent: Alpine 2.21 (DEB 202 2017-01-01)
Cancel-Lock: sha1:b8zY+nAIa5X3ofNXtzbfFAnfOio=
In-Reply-To: <alpine.DEB.2.21.2201101009180.15718@sd-119843.dedibox.fr>
X-X-Sender: mary@sd-119843.dedibox.fr
 by: Steve Nickolas - Wed, 12 Jan 2022 01:55 UTC

Replying to myself. I've been periodically updating the documents at the
links in my previous post as I've figured out more things about the code.

I now actually have the jump tables fully parsed out and labelled, but I
haven't figured them out fully to comment them. These entry points are
all labelled starting Z_.

-uso.

Re: Attempting to reverse-engineer Infocom's Z3 interpreter again

<alpine.DEB.2.21.2201121402340.27894@sd-119843.dedibox.fr>

 copy mid

https://www.novabbs.com/computers/article-flat.php?id=3997&group=comp.sys.apple2#3997

 copy link   Newsgroups: comp.sys.apple2
Path: i2pn2.org!rocksolid2!i2pn.org!aioe.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: usots...@buric.co (Steve Nickolas)
Newsgroups: comp.sys.apple2
Subject: Re: Attempting to reverse-engineer Infocom's Z3 interpreter again
Date: Wed, 12 Jan 2022 14:07:23 -0500
Organization: A noiseless patient Spider
Lines: 11
Message-ID: <alpine.DEB.2.21.2201121402340.27894@sd-119843.dedibox.fr>
References: <alpine.DEB.2.21.2201101009180.15718@sd-119843.dedibox.fr> <alpine.DEB.2.21.2201112050120.23804@sd-119843.dedibox.fr>
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII; format=flowed
Injection-Info: reader02.eternal-september.org; posting-host="9a56d9ea982c990028d3c75b99361aa3";
logging-data="20036"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19sf8n8Yka1fa+0+Alw7gcoTFl2Qv3WeN0="
User-Agent: Alpine 2.21 (DEB 202 2017-01-01)
Cancel-Lock: sha1:jhWT2jU5czCdi59d+6upr/q2sAg=
In-Reply-To: <alpine.DEB.2.21.2201112050120.23804@sd-119843.dedibox.fr>
X-X-Sender: mary@sd-119843.dedibox.fr
 by: Steve Nickolas - Wed, 12 Jan 2022 19:07 UTC

Just in case someone asks why I didn't start from
https://github.com/brouhaha/a2zip

It looks like at some point between interpreters B and E, there was an
overhaul of the code. E, however, does seem to highly resemble M.

I can't seem to figure out some very important parts of how the code
works - like the paging functionality. But I *have* at least fully
commented the dispatch tables.

-uso.

1
server_pubkey.txt

rocksolid light 0.9.7
clearnet tor