1977, 1978, 1979 & 1981 Mainframe Zork in Confusion

I played through the 780124 version up until 500 points. Unfortunately the end-game herald didn’t appear, but I know what’s the problem so I’m gonna fix it soon and play through the end-game too.

If there is someone who like to hone their MDL skills there is two parser bugs, one in the 77 version and one in the 78 version that I found. These are probably original bugs but it would be nice to fix things like this. So, if you so inclined take a look at the issues and offer a solution (I’m gonna give them a crack later when the end-game is fixed).

I glady take reports of any other bugs you can find!

1 Like

I have seen reports of bugs in the 1981 version if you try to PLAY VIOLIN and somthing about LIGHT WIRE when you gonna blow the safe open. My ambition is to fix these bugs eventually.

I have fixed some 39 year old bugs in the original MDL code. These are bugs that I found in comments from when Renga in Blue and @beslayed played the game.

The fixes are the following (in the 1981-07-22 version):

Change line 1381 in act3.mud to make "play violin" respond "An amazingly offensive noise issues from the violin.":
	<COND (<AND <NOT <EMPTY? <PRSI>>> <TRNN <PRSI> ,WEAPONBIT>>

Change line 153 in parser.mud to prevent the parser from crashing with phrases like "HELLLO, SAILOR":
	<COND (<N=? <PRSO> <>> <SET ANDFLG T>)> ;"AND is only allowed between NOUN-phrases"

Change line 1386-88 in act3.mud to make "play me/thief/troll" work:
	   <JIGS-UP <STRING
"You are so engrossed in the role of the " <ODESC2 <PRSO>> " that
you kill yourself, just as he would have done!">>)>>

Change line 1207-08 in dung.mud to make save/restore during thief melee (for FLAGS to be properly saved/restored they have to be defined in MGVALS.)
	 THIEF-ENGROSSED!-FLAG
	 ]>

BINF!-FLAG is used to hold the OBJECT that's burning in the receptacle. When restored it is unlikly that the pointer will point to the same OBJECT. 
To fix this add this line after line 414 in act2.mud to make save/restore work during balloon ride:
	<COND (.BINF <SET BINF <SETG BINF!-FLAG <1 <OCONTENTS .CONT>>>>)> ;"Rebind BINF to OBJ burning in receptacle."

All four versions is now fully playable from start to finish! See the project at my GitHub-page and please report any additional bugs that you can find.

2 Likes

I think I’ve had several email discussions over the years with people (not Henrik) reporting the balloon and thief issues as a bug in Confusion. My speculation was that BINF!-FLAG was once really a flag, but it looks like it was an object even in the 1977 version. Quite possibly it works in real MDL.

1 Like

Lars Brinkhoff leads an effort to emulate and restore the PDP-10 ITS. It’s an ongoing effort but a couple of months ago they got the 1978 version of Zork up and running. So there is a possobility to test your thesis that it was possible that the BINF!-FLAG worked in real MDL. I think I’m gonna test that later today.

It’s not possible to test this in my reconstructions of the 1977 or 1978 versions because I used your implementation of SAVE/RESTORE (of the whole workbench) in these.

Nice hearing from you! I find your Confusion amazing and quite an achievment.

I’ve tried the 1978 version that’s on the PDP-10 ITS and in the original MDL it’s possible to save both during the fight with the thief and during the balloon ride. So the problem with BINF!-FLAG seems to be isolated to Confusion.