Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!uunet!husc6!cmcl2!rutgers!mcnc!gatech!amd!reeves From: reeves@amd.AMD.COM (James Reeves) Newsgroups: rec.games.misc,comp.sys.apple Subject: Re: zork decoding Message-ID: <4651@amd.AMD.COM> Date: Tue, 10-Nov-87 10:27:21 EST Article-I.D.: amd.4651 Posted: Tue Nov 10 10:27:21 1987 Date-Received: Thu, 12-Nov-87 22:58:31 EST References: <2804@batcomputer.tn.cornell.edu> <7639@reed.UUCP> <434@ur-tut.UUCP> <436@ur-tut.UUCP> <2846@batcomputer.tn.cornell.edu> Reply-To: reeves@amd.UUCP (James Reeves) Organization: Advanced Micro Devices Lines: 31 Keywords: zork,infocom Xref: mnetor rec.games.misc:1130 comp.sys.apple:3251 In article <2846@batcomputer.tn.cornell.edu> dyon@tcgould.tn.cornell.edu (Dyon Anniballi) writes: > > Back in the old days, a friend and I made some headway in disassembling >the Zork interpreter. If I recall correctly, they used 5 bits per char. >for encoding text. Only 32 combinations you say? Well, the first 26 >were the lower case alphabet, and the other 6 were for switching character >sets. That is, one would switch to upper case, another to punctuation type >stuff, etc. I don't remember the specifics though, sorry. > >-- >--Dyon Anniballi I'm sorry to get involved in this but this last statement was truly ridiculous. with 2^5 you have 32 combinations. That's it. Done. No more. I have spent hours trying to decode the Infocom files and have found some very interesting thing. First of all I am almost positive that they DO NOT USE A 5 bit encodeing scheme. (Actually I should say that they do not solely use a 5 nit encoding scheme) I have played around weth some of the bits in the .DAT file and watched how the text changed. It definitely didn't react in a way that would indicate a 5 bit encoding scheme. It think that there is a tokenizing scheme as well as a compression method. When I attempted to debug the code I found some nasty GOTCHAs in the code. The loop for creating a text sentence apparently pushes a whole lot of SH*T on the stack and then goes through some calculations as it pops it off. I also seem to remeber that there is some initial code that scans the memory for INT 3 instructions that make it very difficult to place breakpoints in the code. Anyway, the person who wrote ZORK Tools should be able to help where is he/she when you need them. James