Return to BSD News archive
Newsgroups: alt.folklore.computers,rec.games.int-fiction,comp.unix.bsd.misc Path: euryale.cc.adfa.oz.au!newshost.anu.edu.au!harbinger.cc.monash.edu.au!news.uwa.edu.au!classic.iinet.com.au!news.uoregon.edu!usenet.eel.ufl.edu!news.ultranet.com!news.sprintlink.net!dfw.nkn.net!vortex.fastlane.net!rowdy.lonestar.org!nemesis!uhclem From: uhclem@nemesis.lonestar.org (Frank Durda IV) Subject: Re: xyzzy X-Newsreader: Tin 1.1 PL5 Organization: The Big Blue Box Message-ID: <DF8FM4.3AJ@nemesis.lonestar.org> References: <43n91t$4nh@gap.cco.caltech.edu> Date: Thu, 21 Sep 1995 01:46:51 GMT Lines: 53 Xref: euryale.cc.adfa.oz.au alt.folklore.computers:88451 rec.games.int-fiction:7436 comp.unix.bsd.misc:235 The REAL original ZORK ran on DECsystem-10 and 20 systems, using this bizzare language called MDL. Think of LISP with C data structures and you are partly on the way to MDL. And make it an interpreter. The game was actually started by "restoring" a MDL session to a previous state. So the creators got things in the environment ready and then did the equivalent of a Holodeck "Freeze Program". When you played the game later, you did a "Resume Program". I think they did it this way to prevent you from dumping out the code. One of the authors gave me the file "PARSER.MUD" from ZORK, circa 1979. Uh, the code isn't that clear (even after reading the MDL primer), but it looks impressive. Stuff like: <COND (<AND .ADJ <COND (<AND <SET OBJ <GET-OBJECT <CHTYPE .ADJ PSTRING> <>>> <SET OS <STUFF-OBJ .OBJ .PREP .PREPVEC .PVR .VB>>> <SET PREPVEC <1 .OS>> <SET PVR <2 .OS>> <SET PREP <SET ADJ <>>>) (<OR .OBJ <OR .VB <TELL "I can't see any " 1 <LCIFY <STRINGP.ADJ>> " here.">>> <RETURN <> >SPAROUT>)>>) (I used to scare the Survey of Languages courses with this code fragment.) The original version said "Welcome to the dungeon", but came on the tape from MIT named ZORK, but the actual program file was MADADV.SAV or something like that. "ZORK" was simply a front end that started MDL and shoved the restore command into the interpreter. The ZORK executable also provided a way to block access to the game during prime system hours, at least for people who didn't know how to run MDL directly. I was really disappointed by the PC (and before that Z80) versions. The mazes and puzzles were scaled way back from the original to make it fit, and the parser was much stupider than the MDL one. Even the FORTRAN port by the unnamed DEC engineer (not me) never got things to work as well as the MDL version worked. Of course, one of the guys that worked on the Infocom PC port now goes around telling people he was one of the original authors of ZORK, but he was really working at GE at the time.... Frank Durda IV <uhclem@nemesis.lonestar.org>|"$ mdl104 or uhclem%nemesis@fw.ast.com (Fastest Route)| restor <madadv.sav>$" ...letni!rwsys!nemesis!uhclem |or something like that. ...decvax!fw.ast.com!nemesis!uhclem |