1978 Zork running on PDP-10 emulator

I copied madman/madadv.save to my home directory and renamed it to zork.save. Restore recognized the file but said it was the wrong file format. No luck with SAVE, yet. Guess I’ll try the code snippet in MUDDLE to see what is happening (it is the DO-SAVE in dung.mud).

Same error, very nearly in the same place.

   OD     UNFASL
The last command timed out.
make: *** [out/simh/rp0.dsk] Error 1

This seems to be in build/lisp.tcl, actually, so MACSYMA=no doesn’t help.

Maybe a dumb question, but if I have an old build of the pdp-10 repository can I update it without rebuilding all from scratch?

Muddle mastermind Adam Sampson solved the save mystery. Just create a file called <user>; _msgs_ <user>

E.g., if you are logged in as HESAM, type:
:create hesam; _msgs_ hesam
And then ^C to make an empty file.

1 Like

About upgrading an existing image, I added a script the other day that attempts to do that.

It’s called build/dump-diff.sh. You are supposed to pass in the filenames of two full backups. The script will compare the contents and make a new tape with just the new or updated files. The process isn’t 100% reliable and requires knowledge of how to mount tapes and running DUMP from ITS to save and load files from tapes.

1 Like


Sorry, I have no explanation for this. Possible workarounds are to comment out lisp.tcl (and also macsymal.tcl and scheme.tcl which depend on Lisp), or try another emulator: SIMH KA10 (“pdp10-ka”) or KLH10.

As an outsider, I found this so hilariously crazy that I just had to go and look up how the commandline shell works in ITS (it’s called HACTRN or DDT). Further down that rabbit hole I was delighted to discover Guy L. Steele Jr’s brilliant take on Poe’s Raven (glossary and pronunciation instructions at the end of the page). This is probably old hat for some of you, but younger forum members may find it a thrilling read, as I did.


I’m happy to report that it’s possible to install PDP-10 ITS on CygWin. Unfortunately my CygWin was an old installation so I’m not sure which packages I need to have installed but it’s about the same as I reported above for Ubuntu.

One strange thing is that the build needs to run twice. The first one ends in an error during installation of simh, but I just restarted it and the second time it got through to the end.

make EMULATOR=simh


Zork starts and SAVE works fine with the directory and file in place.

Linus, I agree and that’s only one of many hilarious details about ITS!

Speaking of poems, here’s one by Dave Lebling who’s name will be familiar to many forum members:


I wonder how often people call @lft this way…

Sorry! I edited my message.

Actually I’m interested in the answer, seems like an easy mistake to make.

It happens occasionally. More often in speech than in writing. I don’t mind—it’s an easy slip to make.

1 Like

Update on getting it built on MacOS: I succeeded.

  • I had to install SDL2 (brew install sdl2)
  • I also installed autoconf and automake, but those might not have been needed for the simh build.
  • I edited the build.tcl file to comment out the lines:
    #source $build/lisp.tcl
    #if {$env(MACSYMA)=="yes"} {
        #source $build/macsyma.tcl
    #source $build/scheme.tcl

These parts of the build all failed on MacOS, but they’re not needed for MDL so the heck with 'em.

I then did make all EMULATOR=simh and it all went through correctly. Took a long time to run, and there was a lot of beeping, but it finished successfully.

1 Like

Thanks for testing!

Just to clarify how to get SAVE to work with Zork:

if you, as in my case, log in as the user "heasm"

:login heasm

:print heasm;..new. (udir)

:create heasm;_msgs_ heasm


Spaces are important (notice that there’s a space between _msgs_ and heasm. As I understand it the ITS doesn’t have the usual directory tree. It is just one level and the filename is built-up something like: [directory];[filename] [file-extension].

1 Like

The PDP-10 ITS also have three versions of Adventure pre-installed. Start it with:


For the original Crowthers version without the Woods additions.


For the 350 point version, and


for the 448 point version.

1 Like

Good clarification.

Yes, ITS filenames have four parts: device, directory, and two filenames. Space around the parts are optional unless necessary to tell fiename1 from filename2. The order is also unimportant, so you could actually write :create _msgs_ hesam dsk: heam; with an explicit disk device and the directory at the end. Another case of hacker humour?

The Woods-less Adventure is the default, but there are also 350 and 448-point versions in the GAMES directory.

1 Like

I’ve edited my orginal post to reflect how to start the different versions of adventure.