-
Notifications
You must be signed in to change notification settings - Fork 83
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Zork fixes from various places #1965
Comments
Among those is a Y2K bug fix:
I guess WINDOW-YEAR is something specific to Confusion, but we could adapt the change. |
From where did the above zork sources come? Are they official sources from MIT/Infocom? Or are they modified by some user? What were they intended to run on -- what version of Muddle and on what OSes? |
They come from Matthew Russotto, but it looks like a lightly edited version of the Supnik files. I believe the changes are to run bettter on the Confusion MDL interpreter. |
But there is something really interesting here. In tell-repl.mud, there is a definition of a a PSTRING function. In our sources, I couldn't find one. And attempts to compile zork are failing due to a missing PSTRING function. In other words, I find nothing in our sources that allows <PSTRING "FOO">, but there are plenty of references to <PSTRING ,XXX> in the code. These cause the compiler to fail. I don't understand how this could ever work without this definition. Since PSTRING is a type defined by zork, it shouldn't be a case of some missing external function definition. I may try to incorporate this definition into an updated version of our sources to see if I can then get things to compile. |
Yes, that's the version that's modified for Confusion. I used some of its function definitions when I was first getting Zork to run interpreted on Muddle 56. @eswenson1, the definitions of |
That's interesting. I saw the I don't (yet) know how to assemble TELL. Do you just use PCOMP and it knows how to invoke the assembler? I think I tried that and it failed. I don't know how how to invoke the assembler. Do you? |
There is a library called ASSEM. There is an FBIN, SAVE, and source UNDR88. |
@hesam66 says he also has some fixes:
|
Maybe @jclaar fixed some things in his C++ translation. |
@larsbrinkhoff Is this referring to a specific issue? I don't see what you might be referring to here. |
I just ran into an issue where if you type "u" in the Loud Room (rather than what you need to do), you get a crash. The issue is that ECHO-ROOM (in ACT1 254) attempts to do a:
But in this case <2 ,PRSVEC> is a DIRECTION (not a structured type, but a NEWTYPE) and therefore, you can't call EMPTY? on it. EMPTY? only works on structured types.
Note: I'm using the ZORK sources from this (pdp-10/its) repository -- not your updated ones. |
Ah, I see you fixed this in your version too! But your fix is simpler (and more elegant than mine). You changed the line to simply:
which should work fine because it will either return #FALSE() or something else. |
@jclaar, sorry for the confusion (no pun intended). I didn't mean any specific issue. So to clarify, have you found and fixed any bugs when translating Zork from MDL to C++? |
@eswenson1, where did you find the fix? There are potentially four places to check: Supnik, Rusotto, Claar, and Åsman. |
I found the fix here: https://github.com/heasm66/mdlzork/blob/master/mdlzork_810722/patched_confusion/act1.mud |
@eswenson1 Just to be clear. The fix you found is done by Russotto. In my structure the "original_source" is in this case the files that Bob Supnik lifted way back and the "patched_confusion" for the 1981 files are mostly the patches that Russotto did to make it run under Confusion. Beyond that I did a couple of changes that I documented in the readme.md. |
Thanks. I admit I couldn't figure out who fixed what. Thanks for the explanation. |
I'm thinking of doing a data analysis of the development (evolution) of Zork and matching it with the articles "History of Zork" in New Zork Times (found here and here). Currently I know of four batches of source-files with hopefully a fifth batch coming soon. I wonder about the usernames and timestamps of these files. If you look at the tape.999-file in the lcf-directory it looks like this:
Is the username here the name of the one doing the backup, the one creating the file or the one last writing the file? Is the timestamp from the last write to the file or the time of the backup? Bonus question: Is there files, in this project, with more metadata than in the lcf-directory (Ex. The files I have from 1979 & 1981 only have the extension .mud, not the version number)? EDIT: Looking in the lcf-directory (dung.354: row 5149, 5153) it says: "7/22/81" but the timestamps above says: "4/12/80". How is this possible? |
@heasm66, that's great! I very much like people to do this kind of deep analysis. The user name in the listing is also the directory name, and is the person doing the backup: @eswenson1. His account of the events is here: #813. The timestamps are from the time of the copy. The original "last write" timestamps for this set of files are lost. As you can see in @taa01776's "History", he says the directory name for the source code was CFS. That could have been true for some time period, but all evidence I can see from the backup tapes point to the directory being LCF. CFS was only used for binary files. The "7/22/81" date should be from Bob Supnik's fileset. The EJS copy has dates from /79. Commit 1b55589 has the EJS files with original filenames. |
I see these two dates in the EJS fileset. Note the slight inconsistency.
|
I probably created a personal tape, and used the tape number 999. That is very much something I might do. I FTP'ed the files from DM to MIT-MULTICS, where I knew none of the DM implementors could find/delete my stolen files. This process destroyed the real file dates. At some future point (probably the next day or so, given that I was obsessed with the sources back then -- still am, I guess), I FTP'ed them back to ITS, encrypted them, and put them in an ITS archive. I think I renamed the archive to some non-standard name and made it look like a binary file so that no one could tell that it was an archive of Zork sources. At some time, I printed them all out on MC's XGP printer (I still have the printouts). I probably then created "tape 999" with the files and kept that tape for many, many years -- until my wife "encouraged me" to "throw out all that junk that you'll never look at again". I was a dutiful husband, alas, but I did manage to preserve my Zork maps and printouts. I have them in my home office and recently used them to play through the FORTRAN Dungeon on Multics and the ITS Zork I recently built on ITS. |
Fantastic story! This is probably the only time since chilldhood I wish I was a couple of years older to have "been there" during this exciting times but I was only 10 years old at the time. |
I diff:ed the files that I have over at my "Confusion"-repo and the original files I had in the 1979 & 1981 folders are identical to the files here. I have now updaded them with the correct version-number instead of the generic ".mud"-extension they had. |
As you may know, DUMP saves information about all backup tapes. TAPE 999 is no different, and the backup record is in .TAPE5; TAPE 999 dated 1979-05-16 on at least three ToTS tapes. My "tape-dir" tool doesn't handle it well, but enough to recognize some of the file names. |
Yes, but it doesn't apply to the latest version of zork. Are you suggesting we try to back-port this to the old zorks? |
No, just the latest. I don't immediately check all bug fixes whether they apply, just collecting pointers. |
@eswenson1 That explains it. Thank you! |
Trying the 616+100
These commands get the text from the external files EDIT: Copying the files to And then there's this (when you quit or restart), anya ideas why that is?
|
We changed the directory from MADADV to CFS to keep the two versions of zork separate. It would appear that the new zork is looking in CFS and since we didn't place a copy or link to the files in that directory, it is failing. I'll fix. Thanks for finding that. I'm not sure that we really have better/newer versions of the MADADV HELP and MADADV INFO files than we used for the old MDL 54 zork. I've compared the latest ones I can find and while they differ a bit, there is no substantive changes. In fact the ones we have in MADADV are probably the best versions. |
Regarding your "I"m sorry, ..." error, I cannot reproduce this. When I quit, I get this:
|
I did a new build from latest sources on Ubuntu 20.04.2 LTS with:
The terminating bug is still there for me. I tried starting both with:
Do anyone else experience this? |
@heasm66 Which bug is the “terminating” bug? I don’t see reference to it here — with the term “terminating”. |
|
Oh, ok. I'm building from the HEAD of master branch (EMULATOR=klh10 -- since I find it the most stable and usable for networking). I'll try that out as soon as the build finishes. It doesn't happen on my ES system, and didn't happen on my DB system (with the prior commit -- i.e. without the links to the MADADV INFO/HELP added to CFS). But I don't see why things should be any different with that commit. I'll let you know. |
Still can't reproduce this. I built a new DB (KLH10) from the head of the master branch, started zork, and then:
I'm wondering if you could TAR up your system that exhibits the issue and then I can run and debug it. If you do this, I'll need both the "out" directory and the "build/xxx" directory (where xxx is the simulator directory). If you like, I can do the same (TAR up my just-generated-system) and you could try it. I"m doing a "sudo make EMULATOR=simh clean all" now to see if the simulator makes a difference. |
Well, I don't know why I can't even boot ITS with that emulator, but I'm stuck. Why are you using simh rather than klh10?
|
You're logged in as eswenson, but the file is owned by root, and go=r? |
Now how did that happen? :-). Thanks. Using the SIMH build, I still don't have any issues with zork and quitting. Here is what happened for me.
This is running the build I just created from head of master branch with EMULATOR=simh. |
My problem solved... I hadn't set the date and time. When date/time is correctly set it works perfectly. I think it's the RECORD function that can't handle time not set. (When I first installed I didn't know what platform to use so SIMH was more at random. There was no platform recommended what I could see.) |
We probably should make it so that Zork doesn’t start if the time isn’t set…. |
It occurs to me that the TOPS-20 directory <ZORK> (from XX?) has a full copy of the source code with possibly correct file versions (or they could have started over from 1). #832 (comment) |
@larsbrinkhoff but we already have a full copy of the source with version numbers. I’m confused…. |
Regarding the Zork documentation. There is one file missing,
The most logical namning for me would be:
|
I confirmed that the contents of MADADV DOC is correct -- or rather the link points to the correct contents. I confirmed this by looking in ToTS at a couple copies of this file. There are multiple files called MADADV HELP in ToTS. One has this contents, which does't jive with "Prints a short summary of useful commands.":
Another copy has this content (also doesn't match the info on the HELP command in MADADV HELP document:
In fact all copies I can find, save one, has similar content. None has a list of commands. One copy is the same as MADADV DOC. But I agree with you, we should match that description of the HELP command. I'll see if there is any file that has those content, and if not, we can use your suggested contents. |
I looked through all MADADV HELP/INFO I could find at MITDOC, but I didn't find one with the exact text as the one currently in |
In ToTS, there are different versions of madadv.info, 7 versions of madadv.help, and 2 versions of madadv.doc. The dates range from 1977-1989 and one outlier with a date of 2001. Send me an email at eric at swenson.org if you want more details. Some of the madadv.info files start with "Welcome to Zork", others with "Welcome to Dungeon", and two with no heading. One of the madadv.help files starts with:
Another starts with:
And a third starts with:
Two of the ones called madadv.help are variations on madadv.info. Both of the copies of madadv.doc are very similar and match what we have in madadv.help in DB. |
These examples feels like "earlier" versions (june-december 1977, maybe). |
We recently discussed the version numbers, and if I remember correctly the numbers are invented by me based on the 1979 versions, plus one. E.g. see this: #800 (comment) |
@eswenson1 I checked the different versions of I short. My opinion is that, for the Zork in
There are some |
Hmmm…. The version numbers are almost identical to the ones I had in my archive on MC, increased by one or two for those couple files changed. So i think they’re good as they are, but feel free to propose changing them if you think you can make them more accurate. |
@heasm66 Great! Do you want to update the help/doc/info files in CFS or do you want me to? |
@eswenson1 I prefer you (I'm not comfortable pull requesting into this great project yet). I'll send you an email momentarily with more clarifactions. |
@heasm66 ok! |
Diffing our 1981 copy of Zork sources against http://www.russotto.net/~mrussotto/confusion/mdlzork.tgz, there are some updates.
The text was updated successfully, but these errors were encountered: