back to article Source code for seminal adventure game Zork circa-1977 exhumed from MIT tapes, plonked on GitHub

Source code for seminal adventure game Zork, dating back to 1977 and recovered from MIT tapes, was published this week on GitHub. While classic adventure games (aka interactive fiction) are well represented in the Internet Archive – there’s plenty of playable Zork versions here – this latest trove is source code retrieved from …

  1. jake Silver badge

    Thanks for the pointer, Simon.

    I have several old copies of Zork, but most are PDP-11 / BSD ports from the late '70s to early '80s ... I think the earliest was for 2BSD, which would have been 1979. I might have copies from earlier, for other hardware and OSes, but I haven't fully cataloged the tapes I have managed to archive yet. Rainy day project that hopefully will wind up at TUHS, once I figure out what I can legally make available.

    I have a copy of ADVENT that claims to be from 1976 that runs on TOPS-10 ... will ask MIT for an unmolested copy of ZORK and see if I can't get it to run on the hardware and OS it was intended to run on ... I've been meaning to break out the ITS tapes anyway, a friend wants to fiddle about with SHRDLU in its original home for some reason ... He even wants to borrow a Model 33 ASR & acoustic modem to go full retro. I suspect he's writing his life story, I know he worked with that kit at UNI ...

    You are in an open field west of a big white house with a boarded front door.

    There is a small mailbox here.

    1. tfb Silver badge

      Re: Thanks for the pointer, Simon.

      There's an ITS environment on, I think, GitHub somewhere. It sits on top of a simulator obviously, and there is a choice of several. I had a brief try at building it on a recent Ubuntu, as I wanted to run MACLISP, but failed. I didn't spend enough time to understand why: turns out I didn't want to remind myself how grotty pre-Common-Lisp Lisps were that much...

      1. JQW

        Re: Thanks for the pointer, Simon.

        I have managed to get it to build. The documentation isn't that great, and the build process has a choice of several different PDP-10 simulators to build as part of the process, each with different pre-requisites. Even once every required component is installed, the build process could time-out, but I gather these problems have been somewhat alleviated.

        The last time I tried to build it I had other probems - although the ITS installation itself built fine, I had issues building one of the extra graphical terminal emulators which I couldn't resolve at the time.

      2. Quentin North

        Re: Thanks for the pointer, Simon.

        You can get ITS at https://github.com/PDP-10/its along with a whole load of other PDP10 stuff.

    2. larsbrinkhoff

      Re: Thanks for the pointer, Simon.

      Hello,

      i'm the one who found the 1977 Zork files, and I'm working on ITS.

      I'm curious about your ITS tapes. SHRDLU is one program that still won't run.

      Best regards,

      Lars Brinkhoff

  2. BebopWeBop Silver badge

    I remember wating a lot of my time on this on a rather elderly ICL (a 2960 if I remember correctly) , machine running EMAS (Edinburgh Multi Access System) - oh how overjoyed we were to get BSD on a Vax - ported by a bored PhD student.

    1. jake Silver badge

      We had UNIX/32V running on a VAX at Berkeley in June of '79 ... and the 2BSD mods that became 3BSD soon after that. If you requested a copy of BSD for your VAX after 1979 there would have been no need for porting it ... and prior to that, whatever was ported to the VAX at Edinburgh wouldn't have been BSD.

      1. BebopWeBop Silver badge

        I as not clear. Zork was ported, not BSD! c/o a US friend apparently)

    2. Steve Graham

      Edinburgh was my alma mater too. What was the programming language? I vaguely remember parallelism in it, and the instruction "***".

      (I graduated in Physics exactly 40 years ago.)

      1. BebopWeBop Silver badge

        I believe MDL (model development language?) I am given to understand he ported the compiler. I wa just a snotty undergrad at the time.

    3. Anonymous Coward
      Anonymous Coward

      I remember when the 2960 was new. I worked on the test operating system.

      The best thing to come out of Edinburgh was POP-2 - that was/is a really good language, IMHO.

    4. JQW

      As I understand it, the BSD ports of Zork were actually an emulator to run an RT-11 Zork binary from a PDP-11. The source code for the RT-11 version had been lost.

      1. jake Silver badge

        Zork on BSD was the PDP-11 UNIX port in C, starting in 2BSD. I know a few people ran it on the BSD MDL port, but in that era everything (including the kitchen sink, as legend has it) was being ported to C by grad students learning the ins and outs of the language.

        As a side note, porting a game, even a small one, is a good way to learn the piddly little details of not one, but two languages. If you've never done it, try it.

    5. CommanderGalaxian
      Mushroom

      GRTX (Glasgow Real-Time eXecutive) was much better than that Edinburgh pish.

  3. Anonymous South African Coward Silver badge

    All Hail the Grue in its natural habitat!

  4. Steve Graham

    You could say "Kick the grue." at any point. It didn't achieve anything, but it worked, and it proved that the grue was always near, just waiting for the dark.

    1. poohbear

      Whatever you do, don't kick the bucket.

      1. Charles 9 Silver badge

        For the record, how many other games of the Zork type took this type of request into consideration? I know Quest for Glory did take "Pick Nose" into consideration.

  5. Magani
    Thumb Up

    Xyzzy (or PLUGH)

    You are in a maze of twisty little passages...

    1. Andy Non Silver badge

      Re: Xyzzy (or PLUGH)

      I remember those passages well. Got stuck down there for ages wandering around in the dark. xyzzy was the code for something, was it a magic rod or lamp or something that teleported you elsewhere... it was a very long time ago.

      1. Michael Hoffmann
        Facepalm

        Re: Xyzzy (or PLUGH)

        And the revelation when I played Zork on 80characters for the first time and ran into the Cyclops!

        Now that was a d'oh moment because you couldn't easily see the clue with 40 character screens.

    2. Anonymous South African Coward Silver badge

      Re: Xyzzy (or PLUGH)

      Not to mention the "Hello Sailor" one in one of the Zork trilogy ones.

      I'm still in awe of FCD #3

    3. Stoneshop Silver badge

      Re: Xyzzy (or PLUGH)

      Those were gleaned from Colossal Cave, but as "Zork bore about the same relationship to Adventure as the splashiest arcade games do to the little white light that bounced through the primitive Pong" (a quote from the Boston Globe, 1984) invoking 'XYZZY' or 'Plugh' probably didn't quite have the same effect. Or had different prerequisites before they actually worked.

      Never played Zork, but I did play Colossal Cave on a DECSystem 10, via a modem, acoustic coupler and a portable hardcopy terminal. Later on my own PC under OS/2, and there's still a Linux version lurking in ~/advent/

      1. Jason Bloomberg Silver badge
        Pint

        Re: Xyzzy (or PLUGH)

        Never played Zork, but I did play Colossal Cave on a DECSystem 10

        Same here. My DECsystem-10 introduction came in September 1977. I recall Zork was developed during that summer so the fan-fold listing in my loft may be this released version, perhaps earlier because I recall it being Dungeon back then. I'll have a look later.

        There was a bug under TOPS-10 such that anyone could steal a mounted DECtape off another user so "ADVENT" was everywhere. Had many an hour enjoying that and drawing maps.

        The BOFH's were not going to let Zork spread the same way so they banned it. A few years later it appeared on a VAX but I never had an account so never got to play it.

        1. jake Silver badge

          Re: Xyzzy (or PLUGH)

          "There was a bug under TOPS-10 such that anyone could steal a mounted DECtape off another user"

          That wasn't a bug, that was an undocumented feature.

  6. MacroRodent Silver badge

    MDL

    Peeked at some of the files. This MDL language looks interesting. A lot like a variant of LISP, but with <> used instead of () in some places. Wikipedia has a description [ https://en.wikipedia.org/wiki/MDL_(programming_language) ] but no link to any implementation. So anyone porting Zork would have to start making one...

  7. jelabarre59 Silver badge

    Schmoo?

    If I'm remembering the name right, our PDP-11/20 in high school had a simpler text game called "Schmoo", which involved slinging mud at the schmoo creature (who liked mud being slung at it) by guessing direction and distance. Then you make YOU happy (so it thought) it would then sling mud back at you. Was probably a couple other basic games, can't remember what they were anymore.

    Oh yes, and here was our old machine.

    1. whbjr

      Re: Schmoo?

      Unless I'm very much mistaken, your machine is attempting to pass you a note. I'm not saying you should accept it, or read it, or follow its directive(s), I'm just saying that it's there...

      1. jelabarre59 Silver badge

        Re: Schmoo?

        I was wondering if anyone would have noticed the (un)Official DEC Auxiliary Output Delivery System we had installed.

  8. ReadyKilowatt

    Build your own PiDP-11

    https://obsolescence.wixsite.com/obsolescence/pidp-11

    1. james_smith Silver badge

      The same guy has also made a PDP-8 control panel. Both kits use a Raspberry Pi running SIMH as the guts of the system. I've built the PDP-11 kit and it's fantastic, want to replace the Pi with an FPGA recreation of the PDP-11's internals at some point as someone else has that project on the go. Hoping there'll be a PDP-10 control panel next!

      1. Tom 7 Silver badge

        I think an GUI screen emulator might be more use to most people. Could probably do one with curses!

        1. Unicornpiss Silver badge
          Coat

          @curses

          "I think an GUI screen emulator might be more use to most people. Could probably do one with curses!"

          Every time I try to program something, it is with plenty of curses..

  9. Ozan

    Let me drop one of my favorite BOFH stories:

    https://www.theregister.co.uk/2004/03/23/bofh_hitting_the_savegame_panic/

    I guess Simon was not fan of Zork.

    1. Anonymous South African Coward Silver badge

      The Grue has eaten the BOFH's savegame and is about to be cattleprodded by the BOFH....

  10. DougMac

    Odd? We already had this?

    The original MDL source to Zork has been out for a number of years.

    Ie. see this github repo

    https://github.com/itafroma/zork-mdl

    Perhaps this is signifigant as to be closer to the epicenter.

    I believe the main problem right now is that there isn't a original MDL compiler extant that can handle compiling this code, although I believe there was some work to create a MDL compiler that can handle this code.

    1. diodesign (Written by Reg staff) Silver badge

      Re: Odd? We already had this?

      This appears to be an earlier 1977 version, as the article notes, not the wildly distributed version.

      The file trees are not quite the same, for one thing.

      C.

    2. jake Silver badge

      Re: Odd? We already had this?

      People have MDL compilers from the era (see the DECtape bugfeature, above, among other vectors), the only issue is are we really allowed to release what we have? My lawyers say no, not at the moment anyway. People are working on this quietly behind the scenes.

      1. MacroRodent Silver badge

        Re: Odd? We already had this?

        People have MDL compilers from the era (see the DECtape

        At this time, a good language spec might be more useful. The wikipedia page suggests to me an interpreter could be implemented with some LISP hacking, the languages appear to be related.

        1. larsbrinkhoff

          Re: Odd? We already had this?

          The ITS/TENEX/TOPS-20 MDL interprter is running fine:

          https://github.com/PDP-10/its/tree/master/src/mudsys

          Whoever, the compiler is needed to run the full final version Zork.

  11. Stoneshop Silver badge

    It is dark

    Your source code has been eaten by the compiler.

    1. jake Silver badge

      Re: It is dark

      I'd rather have it eaten than spat out for being unpalatable!

      1. Stoneshop Silver badge

        Re: It is dark

        Which should be a standard, non-negatable feature on every compiler.

        It will of course cause much wailing and gnashing of teeth in every Agile-infested software 'development' department. Let's hope the sackcloth, ashes and hair being torn out help to dehipsterize these vile dens of depravity.

  12. Version 1.0 Silver badge
    Happy

    Nice!

    I used to run the DECUS version on my PDP-11/23+ under RSX-11M, it was fun - I'll have to go look in the cupboards, I saw the map that I drew of the land about 20 years ago.

  13. Unicornpiss Silver badge
    Pint

    Played this when I was a kid..

    ..on a local university's PDP 11/40... or maybe it was an 11/70. I recall the notes said it was translated from FORTRAN. Somewhere I still have the green bar printout from a Decwriter I played it on. One of the moments from my childhood that got me (or kept me) interested in computing.

    1. jake Silver badge

      Re: Played this when I was a kid..

      I don't think it was ever ported to Fortran (I'm prepared to be wrong ... if it exists, I'd like a copy, I collect such trivia ... anybody?). In the PDP-11 days, it was probably an MDL implementation[0] ... However, if it was on a PDP-11, there is an equally good chance that it was in C and shifted over from BSD.

      [0] 4BSD (and the derived SunOS) had an MDL port ... Wheels within wheels.

      1. Unicornpiss Silver badge

        Re: Played this when I was a kid..

        It's been so long I can't remember. Maybe the printout says if I can ever find it. But I think it said it was translated from FORTRAN and not to FORTRAN.

      2. larsbrinkhoff

        Re: Played this when I was a kid..

        Zork was ported from MDL to Fortran by Bob Supnik in 1978. I transcribed his Get Lamp interview here:

        https://github.com/PDP-10/its/wiki/Zork-escape

  14. Quentin North
    Holmes

    Essex MUD and BCPL

    Related to this I managed to get the original BCPL source of Essex MUD by Richard Bartle and Roy Trubshaw up and running on a simh PDP-10 under TOPS-10 o/s. The source for this is also on github along with build instructions.

    1. jake Silver badge

      Re: Essex MUD and BCPL

      Bartle's still in the business.

      Still runs his MUD, too.

      This history might interest some.

      And the PDP-10 Source, of course.

      1. jake Silver badge

        Re: Essex MUD and BCPL

        Sorry about that ... history.

  15. Lotaresco Silver badge

    M/Cr CDC Cyber 170-720

    It was definitely overkill for the purpose, but I can remember playing Zork and other games on the Manchester CDC Cyber 170-720 supercomputer between 1981-1984. Years later I met (meatspace) the guy who ported many of the games to the Cyber, obviously done for this own amusement. We still keep in touch from time to time over various nertnet systems.

POST COMMENT House rules

Not a member of The Register? Create a new account here.

  • Enter your comment

  • Add an icon

Anonymous cowards cannot choose their icon

Biting the hand that feeds IT © 1998–2020