PDP-10 / its

Incompatible Timesharing System
Other
852 stars 80 forks source link

Muddle executables and save files #1940

Closed atsampson closed 3 years ago

atsampson commented 4 years ago

Notes on the surviving Muddle interpreter executables and save files, for the purposes of reconstructing the Muddle environment and applications. (Even when we have the source code, it's not always obvious what the resulting artefact should look like!)

This covers both ITS and TOPS-20 Muddle, and ignores anything earlier than version 50. See #1911 for the full history.

A Muddle save file is a dump of the interpreter's memory space minus the interpreter code itself; it can contain both interpreted and compiled code. The interpreter executable can also include preloaded Muddle code. The memory layout in the executable is different between ITS and TOPS-20, and between different versions. So you can't load a save file into a different version of Muddle from the one that produced it - all the references to interpreter variables and code locations would be wrong.

Compiled relocatable functions (RSUBRs) can be generated by the Muddle compiler or assembler (or by hand). RSUBRs need to refer to the interpreter's internal variables and functions, so they aren't inherently portable between Muddle versions or platforms, although there's a "fixups" mechanism that allows a list of patches to be applied when loading into a different version.

ITS files are usually in good shape. Unfortunately most of the TOPS-20 files we have are mangled, e.g. by newline conversion.

Interpreters

Source Filename Version Contents Notes
ToTS 2100085 MUDSAV; TS MUD54 54 Basics No GC, many binary patches
ToTS 9005143 MUDSAV; TS MUD54 54 Basics No GC, two more patches to above
This repo MUDSAV; TS MUD54 54 None Reconstructed source to match 9005143
ToTS 2100085 MUDSAV; TS MUD 54+dev ? Have partial source
UChicago uns:mdl104.exe.1 104 ? -Wascii, one corrupt page (won't affect Zork)
LCM+L uns:mdl105.exe.93 105 ? No GC, -Wascii, good
ToTS ? \<mdl>mdl105.exe.93 105 ? No GC, -Wascii, identical to above
Panda \<games>mdl105.exe 105 ? No GC, -Wascii, good
This repo MUDSAV; TS MUD56 56 None Built from 106 source + fixes
LCM+L uns:mdl106.exe.17 106 ? No GC, -Wascii, good
ToTS ? \<mdl>mdl106.exe.52 106 ? No GC, -Wascii, ?
? \<mdl.int>mdl106.exe.{1-5} 106 ? Have source, -Wascii, corrupt
? \<mdl.int>mdlxxx.exe.{1-2} 106+dev ? Have source, -Wascii, corrupt

"Basics" = the PKG, EDIT, etc. packages described in The MDL Programming Environment in compiled form.

"No GC" = the garbage collector files are missing; TS MUDxx should come with AGC MUDxx and (from 55 onwards) SGC MUDxx.

"54+dev" = some stage of development between versions 54 and 55. These tend not to work.

Save files

Source Filename Version Contents Notes
ToTS 9006234 MARC; TV SAVE 53 Trivia
ToTS 9006234 MADMAN; TRV SAVFIL 53 Trivia
ToTS 9005143 MADMAN; TRV SAVFIL 54 Trivia
ToTS 2100085 MUDSAV; LLSYS SAVE 54 Uncompiled application A relational database system?
ToTS 2100085 MUDSYS; FOO SAVE 54 Basics  
ToTS 2100085 MUDSAV; PC SAVE
MUDSAV; PC1 SAVE
None ? Saves from a development Muddle
ToTS 9006255 MADMAN; MADADV SAVE 54 Zork 1977-06-13 Bad file?
ToTS 9005183 & 2100085 MADMAN; MADADV SAVE 54 Zork 1977-06-14
ToTS 9005143 MADMAN; MADADV SAVE 54 Zork 1977-06-19 Last grue-free version
Zork 1977-12 MADMAN; OMADAD SAVE 54 Zork 1977-12-03  
Zork 1977-12 MADMAN; MADADV SAVE 54 Zork 1977-12-12  
Zork 1978-01 MADMAN; MADADV SAVE 54 Zork 1978-01-17  
Zork 1978-01 MADMAN; MADADV SAVE 54 Zork 1978-01-24  
Zork 1978-01 MADMAN; MADADV SAVE 54 Zork? File truncated
Zork 1978-01 MADMAN; MADADV SAVE 54 Zork 1978-01-24  
Zork 1978-01 MADMAN; MADADV SAVE 54 Zork 1978-01-24  
ToTS ? \<mdl>m104uni.save.1 104 Basics (?) -Wascii, corrupt (missing bytes)
UChicago uns:madadv.save 104 Zork 1978-03-28 -Wascii, first with endgame
Panda \<games>zork.sav 105 Zork 1979-12-11 -Wascii
? \<mdl.comp>pdmp.save.6 105 Muddle compiler (?) -Wascii, corrupt (missing bytes)
? \<mdl.comp>ppcomp.save.5 106 Muddle compiler (?) -Wascii, corrupt (missing bytes)
? \<mdl.comp>comp106.save.1 106 Muddle compiler (?) -Wascii, corrupt (missing bytes)

Not all FOO SAVE files are from Muddle: save files from MIM and Confusion use different formats, although they use similar names, and some are just backups of other random files.

Zork dates are from the issue of US News & Dungeon Report.

GC notes

Muddle 56/106 has three GCs: AGC is a compacting GC that copies between two ITS processes; SECGC is a compacting GC that uses TOPS-20 sections; SGC is a fast mark-sweep GC. SGC was introduced in Muddle 55/105, so earlier versions only have AGC or SECGC depending on the platform.

The GCs are quite big and don't need access to most of the interpreter, so they're mapped in from a separate file when needed, overlaying the interpreter from AGCLD onwards. They're assembled along with the rest of the interpreter using some MIDAS LOC/OFFSET trickery - the code is actually stored at REALGC (200000) but it thinks LOC is AGCLD (which means the symbol table from AGCLD onwards contains two overlapping sets of symbols, for the GC code and whatever it's overlaying). AGCLD is set by the AGCMRK source file; everything after AGCMRK in the link order is overlayed by the GC.

For Muddle 54/104, we have an ITS interpreter and a TOPS-20 interpreter. We only have the AGC file for the TOPS-20 version, but we have the symbols for it in ITS. AGC only has a single ITS conditional, for the page size, so it should be possible to rebuild the ITS version using the TOPS-20 one as a reference. Unfortunately the two copies don't quite match, going by the symbols - LOCFL1-GLOFLS=11 for TOPS-20 and 10 for ITS. (It's also 11 for TS MUD, which suggests the TOPS-20 version is a bit later...)

rmaldersoniii commented 4 years ago

The Toad systems at Living Computers: Museum + Labs (which are still available online) have working executables for MDL104.EXE and MADADV.SAV, which I installed myself from my personal magtape, whose contents originated at UChicago in the 1970s. I can arrange to put those files somewhere where you can pick them up for inclusion in the collection.

Rich Alderson github@alderson.users.panix.com its@alderson.users.panix.com

On Sep 1, 2020, at 4:23 PM, Adam Sampson notifications@github.com wrote:

Notes on the surviving Muddle interpreter executables and save files, for the purposes of reconstructing the Muddle environment and applications. (Even when we have the source code, it's not always obvious what the resulting artefact should look like!)

This covers both ITS and TOPS-20 Muddle, and ignores anything earlier than version 50. See #1911 https://github.com/PDP-10/its/issues/1911 for the full history.

A Muddle save file is a dump of the interpreter's memory space minus the interpreter code itself; it can contain both interpreted and compiled code. The interpreter executable can also include preloaded Muddle code. The memory layout in the executable is different between ITS and TOPS-20, and between different versions.

Compiled relocatable functions (RSUBRs) can be generated by the Muddle compiler or assembler (or by hand). RSUBRs need to refer to the interpreter's internal variables and functions, so they aren't inherently portable between Muddle versions or platforms, although there's a "fixups" mechanism that allows a list of patches to be applied when loading into a different version.

ITS files are usually in good shape. Unfortunately most of the TOPS-20 files we have are mangled, e.g. by newline conversion.

"Basics" = the PKG, EDIT, etc. packages described in The MDL Programming Environment https://github.com/PDP-10/muddle/blob/master/doc/MDL_Programming_Environment.pdf in compiled form.

Interpreters

Source Filename Version Contents Notes XX mdl105.exe.93 https://github.com/PDP-10/muddle/blob/master/%3Cmdl%3E/mdl105.exe.93 105 ? -Wascii, ? Panda mdl105.exe https://github.com/PDP-10/panda/blob/master/files/games/mdl105.exe 105 ? -Wascii, good This repo MUDSYS; TS MDL56 56 None Built from the 106 source XX mdl106.exe.52 https://github.com/PDP-10/muddle/blob/master/%3Cmdl%3E/mdl106.exe.52 106 ? -Wascii, ? ? mdl106.exe https://github.com/PDP-10/muddle/blob/master/%3Cmdl.int%3E/mdl106.exe.5.{1-5} 106 ? -Wascii, corrupt ? mdlxxx.exe https://github.com/PDP-10/muddle/blob/master/%3Cmdl.int%3E/mdlxxx.exe.2.{1-2} After 106 ? -Wascii, corrupt, probably broken Save files

Source Filename Version Contents Notes XX m104uni.save.1 https://github.com/PDP-10/muddle/blob/master/%3Cmdl%3E/m104uni.save.1 104 Basics (?) -Wascii, corrupt (missing bytes) Panda zork.sav https://github.com/PDP-10/panda/blob/master/files/games/zork.sav 105 Compiled Zork 7/22/81 https://github.com/PDP-10/zork/ -Wascii, good — You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/PDP-10/its/issues/1940, or unsubscribe https://github.com/notifications/unsubscribe-auth/ADLCRX36BIFEJROA766HNWLSDV67PANCNFSM4QSLKZEQ.

larsbrinkhoff commented 4 years ago

Thanks @rmaldersoniii, please do!

I have updated @brouhaha's copy of "read20" with a -b option to write binary files preserving all bits: https://github.com/brouhaha/tapeutils FTP binary image mode would also be fine.

atsampson commented 4 years ago

It looks like there are actually three versions of Muddle in UNS: on the LCM TOAD-2, including an AGC file for 104 (which would be particularly useful since we're missing it for 54):

MADADV.HELP.1;P775252      5 2101(36)    7-Aug-1978 23:00:26 ALDERSON  
  .INFO.1;P775252          1 369(36)    10-Mar-1978 21:07:48 ALDERSON  
  .SAVE.1;P775252        274 140288(36)  3-Dec-1993 17:11:58 ALDERSON  

AGC.MUD104.1;P775252      12 6144(36)    6-Sep-1977 07:51:11 ALDERSON  
MDL104.EXE.1;P775252     132 67584(36)   3-Dec-1993 16:33:46 ALDERSON  
  .SYMBOLS.1;P775252      38 19374(36)   6-Sep-1977 08:05:09 ALDERSON  
MDL105.EXE.93;P775252    104 53248(36)   6-May-1981 10:06:24 ALDERSON  
MDL106.EXE.17;P775252    107 54784(36)  11-Jun-1981 11:33:25 ALDERSON  

ZORK.EXE.1;P775252         4 2048(36)   19-Dec-2005 16:08:58 ALDERSON  
  .LOG.1;P775252           1 165(36)    10-May-2019 16:54:30 ALDERSON  
atsampson commented 4 years ago

I've been able to download those from TOAD-2 using Kermit - thanks, @rmaldersoniii!

rmaldersoniii commented 4 years ago

I have make two files available on my personal web page (but not in the index.html) to solve all the issues which people are seeing with previous attempts to move thing from the LCM+L Toad-2.

The first is a copy of DUMPER, modified to allow the use of on-disk image files as input and output (as 36 bit files, not as tape images): https://www.panix.com/~alderson/dumper.exe

The second is a DUMPER image of all the relevant files, including the ZORK.MAC files used at UChicago and LCM+L: https://www.panix.com/~alderson/zork.dumper

These files were created with the image command to the BSD ftp program, to fetch them from the Toad-2. Once you have a copy, use the same command to write them to a running KLH10-based Tops-20 system such as Panda; this DUMPER will not run on a KS10 or SimH. Then use DUMPER (commands INFILE ZORK.DUMPER, then TRANSFER .) to put them into your connected directory.

atsampson commented 4 years ago

I believe I've now listed all the executables and save files we know about above - if you find any more, please let me know.

I've added dates for all the Zork save files based on the newspaper in the white house's living room (search for "news" in the file, or climb through the window and go west). We've got more distinct versions than I thought - and none that corresponds to the final source.

larsbrinkhoff commented 4 years ago

@eswenson1's copy of the sources from 1979 shows only trivial changes were added for the final 1981 version.

larsbrinkhoff commented 3 years ago

Added Zork 1977-06-13 @ ToTS 9006255, and 1977-06-14 @ 9005183 & 2100085 to the table.

heasm66 commented 3 years ago

On the its.pdp10.se server the MADMAN; contains the following files:

:listf madman
TT   MADMAN
FREE BLOCKS #2=5207 #3=7166 #0=6920 #1=4654 #4=793 #5=622 #6=5065 #7=1449
  2   MADADV DEC12  119 ! 12/12/1977 22:48:06
  5   MADADV HELP   3   9/14/2020 09:04:35
  5   MADADV INFO   1   9/14/2020 09:04:35
  2   MADADV JAN23  144 ! 1/23/1978 00:26:53
  5   MADADV JAN7   121 ! 9/14/2020 09:04:35
  2   MADADV JUL1   88 ! 7/1/1977 00:01:02
  2   MADADV JUN12  65 ! 6/12/1977 22:46:51
  2   MADADV JUN14  66 ! 6/14/1977 03:29:10
  2   MADADV SAVE   66 ! 6/14/1977 03:29:10
  2   MADMAN SAVE   144 ! 1/23/1978 00:26:53
  6   OMADAD SAVE   115   12/4/1977 17:44:35
  1   TRV    SAVFIL 105 ! 6/27/1977 21:58:25
  1   TV     FILE   301 ! 6/24/1977 21:50:41
  2   ZORK   BUG    0 ! 9/28/2020 22:45:18
  7   ZORK   LOG    2 ! 1/23/2021 20:38:23

The one i wonder about is the "MADADV JAN7". If the JAN7 is correct, this file isn't in the above list.

When I start the file it says:

Welcome to Dungeon.
This version created January 28.
You are in an open field west of a big white house, with a boarded
front door.
There is a small mailbox here.
>

The issue of US NEWS & DUNGEON REPORT is dated 1/24/78 so maybe the file is one of the above dated 1978-01-24?

Would it be possible to expand the list above with a column that list the the correct filenames on its.pdp10.se?

Is it possible to start the "OMADAD SAVE" file or is it corrupted (it doesn't start on the its.pdp10.se in MUD54)?

larsbrinkhoff commented 3 years ago

Maybe I fumbled the JAN7 file. There is a single tape with several MADADV SAVE files on it, which can be confusing. They are the Zork 1978-01 files with suffix _0 etc in the table above. If you like, I can make a second pass and install them all with the proper date.

The OMADAD file can be started by copying it to MADMAN; MADADV SAVE and then start ZORK. This will affect other users, so it's best to be a little careful. It should look like this:

:copy madadv; omadad save, madman save
zork^K
heasm66 commented 3 years ago

There is no rush to fix the timestamp on the file for me. Maybe it could be done when MADMAN is updated with the new file from march/april of 1978 (nudge, nudge...).

Is there a reason that OMADAD-file don't start with:

:mud54
<RESTORE "MADMAN; OMADAD SAVE">$

But it would start if a rename/copy the file to "MADADV SAVE"?

I'm not gonna tinker with the server and potentionally mess it up for other users, even though I havn't seen that many (I even tried to promote the server a bit on IntFiction)...

larsbrinkhoff commented 3 years ago

The April files don't include an executable SAVE file, only sources.

I updated all the January files. The files are named from their timestamps. I haven't checked if that's consistent with the dates inside the game.

There must be a reason OMADAD can't be RESTORED, but I don't know what it is. It's ok to mess around a bit, but I understand if you are reluctant.

heasm66 commented 3 years ago

I got the April files mixed up with the 3/28/78 one above (for MUDDLE104).

I get these results from the files in MADMAN;

                 Date
Name         Pts T-stamp  Start    Issue    Comment
MADADV JUN12 285 6/12/77  ---      ---
MADADV JUN14 285 6/14/77  ---      ---
MADADV JUL1  387 7/1/77   7/1/77    ---     There also the date 6/19/77 in the issue masthead
OMADAD SAVE  500 12/4/77  ?        12/3/77  Don't start. Corrupt?
MADADV DEC12 500 12/12/77 12/12/77 12/12/77
MADADV JAN7  500 1/7/78   ?        ?        Don't start. Corrupt?
MADADV JAN11 500 1/11/78  ?        ?        Don't start. Corrupt?
MADADV JAN23 500 1/23/78  1/23/78  1/17/78
MADADV JAN24 500 1/24/78  1/24/78  1/24/78
MADADV JAN26 500 1/26/78  1/26/78  1/24/78
MADADV JAN28 500 1/28/78  1/28/78  1/24/78

T-Stamp = The date on the files timestamp
Start = The compilation date that greets you on startup.
Issue = The date on the "US NEWS & DUNGEON REPORT" in the Living Room
eswenson1 commented 3 years ago

I've not found that the file name or location of a Muddle save file bears on the ability or not to run it. In other words if you do <RESTORE "..."> and it won't run, moving it or renaming it isn't going to help.

What Lars meant by copying the file to MADMAN;MADADV SAVE was to allow the :ZORK or ZORK^K DDT command to use it automatically.

heasm66 commented 3 years ago

Are the "MADADV SAVE"-files from ToTS 9006255, 9005183, 2100085 & 9005143 (MADADV JUN12, JUN14 & JUL1) available anywhere, or do I have to wait until MITDDC releases them?

(I'm trying to compile my own little MADMAN-collection to import/export from/to my own offline emulation via DUMP.)

heasm66 commented 3 years ago

Are the timestamps, the time part, correct for the above files, or are they arbitrary?

(The tree.txt on MITDDC only report the date not the time.)

larsbrinkhoff commented 3 years ago

The SAVE files are not available until released by MITDDC.

The tapes carry standard ITS timestamps which have a 0.5 second resolution. Possibly there is some rounding when files are stored in a Unix file system, but the timestamps listed above should be accurate to the second. They are not arbitrary.

heasm66 commented 3 years ago

Currently at the its.pdp-10.se server all the zork-files from MADADV DEC12 and forward crashes on startup. I'm not sure of something has changed on the platform or the servre just is in a need of a reboot.

*:mud54
MUDDLE 54 IN OPERATION.
LISTENING-AT-LEVEL 1 PROCESS 1
<RESTORE "MADMAN;MADADV DEC12">$
I'm sorry, you seem to have encountered an error in the program.Send mail to         DUNGEON@MIT-DMS describing what it was you tried to do.
This version created December 12.

PURE-LOAD-FAILURE!-ERRORS
FIELD
Your score is 23748389065 [total of 500 points], in -1 moves.
This score gives you the rank of Wizard.

The strange thing is that even the files like the one from 77-12-04 crashes in the same way. On my own installation of ITS this file refuses to start at all and just hangs without printing anything (the dec12-file works, though).

larsbrinkhoff commented 3 years ago

@heasm66, indeed I have made a change in the platform: I have updated the PDP-10 emulator to test a bug fix. However it's only related to one of the terminal I/O devices, so I'd be surprised if it affects Muddle or Zork.

I rebooted, but MADADV DEC12 still crashes like above. I changed back to the older emulator, still same thing.

larsbrinkhoff commented 3 years ago

Ah, I also changed MUDSAV; SAV FILE and FIXUP FILE for running Trivia. I changed back, and now MADADV DEC12 works fine again.

heasm66 commented 3 years ago
TT   MUDSAV
FREE BLOCKS #2=5394 #3=4342 #0=5332 #1=4661 #4=793 #5=803 #6=5312 #7=790
  4   AGC    MUD54  6   9/14/2020 16:50:11
  4   AGC    MUD56  6   9/14/2020 16:52:10
  2   FIXUP  FILE   2 ! 9/14/2020 16:52:19
  3   FIXUP  FILE54 477 ! 12/9/1977 01:17:48
  4   FIXUP  FILE56 2 ! 9/14/2020 16:52:19
  2   SAV    FILE   4 ! 9/14/2020 16:52:19
  3   SAV    FILE54 2158 ! 12/9/1977 01:17:48
  4   SAV    FILE56 4 ! 9/14/2020 16:52:19
  4   SGC    MUD56  1   9/14/2020 16:52:10
  4   SQUOZE TAB54  1   9/14/2020 16:50:11
  4   SQUOZE TAB56  1   9/14/2020 16:52:10
  4   TS     MDL56  61   4/16/2020 10:33:58
  4   TS     MUD54  63   9/14/2020 16:50:16
  4   TS     MUD56  63   9/14/2020 16:52:14

Just so I understand this correctly: SAV FILE54 & FIXUP FILE54 is needed as SAV FILE & FIXUP FILE for TRIVIA. SAV FILE56 & FIXUP FILE56 is needed as SAV FILE & FIXUP FILE for ZORK.

heasm66 commented 3 years ago

The PURE-LOAD-FAILURE has this explanation in "The MDL Programming Language":

Pure-code file disappeared.

Whatever that means...

eswenson1 commented 3 years ago

I suspect it means that a file whose code/data lives in the SAV or FIXUP files in the MUDSAV directory at the time the Muddle image was saved is no longer present on the machine on which the SAVE file is being RESTORed.

eswenson1 commented 3 years ago

Regarding your dependencies question regarding Zork and Trivia and corresponding files in MUDSAV, I believe you are correct. One issue I found is that when I built and ran the latest Zork under muddle 55, I had to replace the SAV FILE and FIXUP FILE files in MUDSAV. I couldn't just name them SAV 55FILE and FIXUP 55FILE. Not sure why the pattern of nnFILE didn't work for me, Zork, and MDL 55.

eswenson1 commented 3 years ago

I meant FILEnn, above, I guess. I thought it was FILEnn, but must be mistaken.

heasm66 commented 3 years ago

The binaries, and source, from tape 9005143, 9005183 & 9006255 have been released at MITDDC and the links in the above table can be updated.

(I just noticed that I have edit rights in the above mentioned post. Should I update the links myself?)

atsampson commented 3 years ago

Cool! The Trivia files can also be added (my explain-muddle script should be able to handle them too if you want to poke around in them).

Edit: Added. MARC; TV SAVE is a Muddle 53 image so explain-muddle doesn't understand it yet; I need to figure out the locations of the variables it uses. The later MADMAN; TRV SAVFIL is a 54 image and decodes fine.

heasm66 commented 3 years ago

Maybe this is old news but I found a way to stop execution without KILLing the Muddle interpreter.

  1. Login in as one of the "WINNERS" (MARC, PDL, TAA, ...)
  2. Load the game-file: <RESTORE "MADMAN;MADADV JUL1">
  3. CTRL-G stops the execution but you remain in the interpreter and can inspect variables. Unfortunately all the FUNCTIONs seems to be compiled so you don't see their definitions.

This could be useful to recreate the ACT & DUNGON-files.


    :mud54
    MUDDLE 54 IN OPERATION.
    LISTENING-AT-LEVEL 1 PROCESS 1
    <RESTORE "MADMAN;MADADV JUL1">$
    Welcome to adventure.
    You are in an open field west of a big white house, with a closed, locked
    front door.
    There is a small mailbox here.
    >
    *ERROR*
    CONTROL-G?
    LISTENING-AT-LEVEL 2 PROCESS 1
    ,SAVE-IT$
    %<RSUBR-ENTRY '[MSETG SAVE-IT #DECL ("VALUE" ANY "OPTIONAL" ANY)] 385>
    ,TROLL$
    %<RSUBR-ENTRY '[MSETG TROLL #DECL ("VALUE" ANY)] 10337>
    ,HANDLE$
    %<RSUBR-ENTRY '[MSETG HANDLE #DECL ("VALUE" ANY ANY "TUPLE" ANY)] 533>
    ,ROOM$
    %<RSUBR-ENTRY '[MSETG ROOM #DECL ("VALUE" ANY <OR STRING ATOM> STRING STRING <OR ATOM FORM FALSE> EXIT "OPTIONAL" ANY <OR FORM FALSE ATOM> FIX)] 7845>
    ,ROOMS$
    (#ROOM [CLMID "Rocky Ledge" UP CLIMB DOWN] #ROOM [CLBOT "Canyon Bottom" UP CLIMB NORTH] #ROOM [POG "Pot of Gold Room" UP NW WEST SE RAINB POT ] 
    #ROOM [RAINB "Rainbow Room" EAST WEST] #ROOM [BARRE "Barrel" EXIT] #ROOM [FCHMP "" NORTH] #ROOM [WCLF2 "White Cliffs Beach" NORTH LAUNC]
    ...
larsbrinkhoff commented 3 years ago

Great tip, thanks!

heasm66 commented 3 years ago

,ROOMS lists all the room defintions. ,OBJECTS lists all the object definitions. <1 .OBLIST> lists all the defined variables and functions (ATOMs). <MOBLIST WORDS> lists all the words in the dictionary.

You can change variables, texts and even replace existing functions with your own version (you need to <SET REDEFINE T> first). If you then call <SAVE-IT> the program saves a new MADMAN;MADADV SAVE file that is a new game with your modifications.

eswenson1 commented 3 years ago

I'm reading this, a little surprised that it is news. I've used this to debug Zork images many times. When I ran into errors with compiled/saved Zork in MDL55, were it not for this ability to debug, it would have been impossible.

I thought I'd mention, in case you didn't already know, that when you get to a Muddle listener, you can load in any functions, to help debugging and introspection -- most importantly the Zork bible code (IIRC this is LCF; B >.

You can make nice charts of all objects, rooms, points, etc. There are other debug helper functions scattered around the source trees that are also useful here.

When I have a chance, I'll provide more details. Not near a (real) computer now.

heasm66 commented 3 years ago

Unfortunately the earliest "BIBLE" code I could find was from your 1979 version and it doesn't work out-of-the-box with the earlier images. I guess at least some ATOMs changed names. But it always possible to rewrite the code. Shouldn't be to hard...

eswenson1 commented 3 years ago

Oh right. I was working with the 616+100-point version when using the Bible.

larsbrinkhoff commented 3 years ago

Charts?!? I'd like to see this!

heasm66 commented 3 years ago

It would look like this (there is, of course, many pages of this but I cut it off after a couple of entries for each command),:


<GET-WORDS>  ;"Prints info about words""
1ST?          ACTION                        Top Level
200          ADJECTIVE
A          BUZZ WORD
AN          BUZZ WORD
ANCIE          ADJECTIVE
AND          BUZZ WORD
ANSWE          ACTION                        Top Level
AT          PREP
ATTAC          ACTION                        Top Level
BACK          ACTION                        Top Level
BARE          ADJECTIVE
BARRE          ADJECTIVE
BEAUT          ADJECTIVE
BIRDS          ADJECTIVE
BLACK          ADJECTIVE
BLAST          ACTION                        Top Level

<CATALOG> ;"Prints info about objects"
====== A rusty iron key {PKEY} ======

Synonyms: KEY.
Adjectives: IRON, RUSTY.

[No description]

In a keyhole {PKH2}, in the Dreary Room {PALAN}.
Weighs 5.
The rusty iron key {PKEY} is visible, takeable, indescribable, a tool, turnable.
Special action function: PKEY-FUNCTION

====== A beautiful brass bauble {BAUBL} ======

Adjectives: BRASS, BEAUT.

`There is a beautiful brass bauble here.'

No initial location.
Value: 1 if found, 1 more if in trophy case.
Weighs 5.
The beautiful brass bauble {BAUBL} is visible, takeable.

<ATLAS> ;"Prints info about rooms"
====== Prison Cell {PCELL} ======

Room is Lighted, part of the End Game.

Exit is closed: The door is securely fastened.

<GET-ACTIONS> ;"Prints info about actions (verbs)"
ATTAC (INJUR HURT HIT FIGHT)
      Attack <any/a villain:room> with <any/a weapon:have,adv>

BACK ()

BLAST ()

BLOW ()
    * Blow up <any:adv,room> with <any/a tool:adv,room>
      Blow up <any:adv,room>
      Blow in <any:adv,room>

BOARD ()
      Board <any/a vehicle:room>
eswenson1 commented 3 years ago

Yup. I have an XGP printout of all this in my circa 1980 Zork binder!

larsbrinkhoff commented 3 years ago

Cool, thanks!

larsbrinkhoff commented 3 years ago

These are now online:
https://github.com/MITDDC/zork-1978-04
https://github.com/MITDDC/zork-1989-01

As far as I can see, this completes the set of Zork source and binary files from ToTS.

heasm66 commented 3 years ago

The MADADV SAVE from the 1989-01 is for MDL104 and have this dates internally:

There is an issue of US NEWS & DUNGEON REPORT dated 3/17/79 here.

and

        US NEWS & DUNGEON REPORT
3/23/79                        Late G.U.E. Edition
         Send correspondence to ZORK@DM

          !CHANGE OF ADDRESS!

    Note the change in our preferred net address, above.

             !NEW PARSER!

    Several changes have been made in the Zork parser in an attempt 
to disambiguate nouns and adjectives.  This allows words in the Zork
vocabulary which are both adjectives and nouns.  'Take gold' has not
worked in the past, because 'gold' was defined as an adjective only.
Now, however, this should work.  

              !APOLOGY!

    The implementers apologize for the length of time it has taken
for the recent problems with the parser to be fixed.  This version
should have all or most of those bugs fixed.  Please report any
new (or previous) problems with the parser.

This file seems to be from a couple of months before the source code from 1979 @eswenson1 "extracted".

eswenson1 commented 3 years ago

How many points does this version have?

heasm66 commented 3 years ago

I can't start it, but I guess it's 616 points + 100 points endgame because the Donald Woods stamp is there (the last lousy point).