1978 Zork running on PDP-10 emulator

With MIT’s release of a January 1978 version of the original MDL Zork, it is now possible to play the game on a PDP-10 emulator running ITS. Here is a little demo:

The game is also available online:

  1. telnet to its.pdp10.se port 10003
  2. Type Control-Z
  3. Log in with :login <something>
  4. Type :zork
  5. When done, type quit
  6. And then :logout
3 Likes

I played past the troll and it seems to work just fine. Great fun!

What happens if I try to save? Would the save file (as I remember there’s only one save slot) be available when I log in (with the same user) at a later date?

It should be possible to just type save to save your game, but it appears this doesn’t work yet:

>save
Can't open channel for save.

Ok.

If I download the the ITS-project and make it. Would Zork be preinstalled?

And what is the recommended platform to use as host? I built it on CygWin (simh) about a year ago and got it to work eventually, but it was not a “smooth” process. ZoBoRf reports that he had problem to build it for ZILCH on Ubuntu and had to use Debian.

Yes, Zork is now included and ready to run.

For ITS, the most well-tested platform is Linux, preferrably Ubuntu or Debian. FreeBSD should also work. SIMH also runs natively on Windows, but that’s not something anyone I know is testing.

It depends on what kind of PDP-10 hardware you like to emulate. For the most plain text experience, SIMH should be fine on most platforms. If you want the fancy graphical displays, Linux may be the only option. If you want TCP/IP networking, KLH10 is your best bet but again a Linux or other Unix system is necessary.

1 Like

I’m trying it on MacOS. It seems to be installing correctly, but wow, this expect script is not speedy. :)

If it’s still running an hour from now, I’m going to be watching Tim Cook introduce the latest iOS while a PDP-10 sets itself up in the background…

EDIT-ADD: We’re talking about this repository: https://github.com/PDP-10/its

Sorry, it does take hours because it’s rebuilding everything from sources where possibly.

In the future there may be some solution providing ready-made disk images for download.

I’m trying to built it on Ubuntu 20.04 with:

make EMULATOR=simh

I’m on my third runthrough (because it requested some packages). But now it stops with:

git submodule sync `dirname tools/pdp6/.gitignore`
Synchronizing submodule url for 'tools/pdp6'
git submodule update --init `dirname tools/pdp6/.gitignore`
make: *** No rule to make target 'out/simh/output.tape', needed by 'out/simh/bootvt.bin'.  Stop.

Any idea what’s missing?

My MacOS build (make EMULATOR=simh) ran for about 30 minutes and then bombed out:

@delete * unfasl
Delete? (Y or N): yes.
   %PRINT UNFASL
   6BIT   UNFASL
   APROPO UNFASL
   ARITH  UNFASL
   ARYFIL UNFASL
   ATAN   UNFASL
   AUTODF UNFASL
   BBOOLE UNFASL
   BENCH  UNFASL
   BINPRT UNFASL
   BREAK  UNFASL
   BS     UNFASL
   CARCDR UNFASL
   CHAR   UNFASL
   COMRD  UNFASL
   COMRED UNFASL
   DBG    UNFASL
   DEBUG* UNFASL
   DEFSTA UNFASL
   DOCTOR UNFASL
   DOW    UNFASL
   DPRINT UNFASL
   DRIBBL UNFASL
   DUMPGC UNFASL
   FAKE-S UNFASL
   FASDMP UNFASL
   FFORMA UNFASL
   FILBIT UNFASL
   FLOAD  UNFASL
   FONTRD UNFASL
   FOR    UNFASL
   GENFNS UNFASL
   GPRINT UNFASL
   GRAPH$ UNFASL
   GRAPHA UNFASL
   GRAPHM UNFASL
   GRAPHS UNFASL
   GRAPHT UNFASL
   IMPDEF UNFASL
   IOTA   UNFASL
   LAUGH  UNFASL
   LETFEX UNFASL
   LETS   UNFASL
   LINERE UNFASL
   LISPM  UNFASL
   LISPT  UNFASL
   LOOP   UNFASL
   LSPMAC UNFASL
   LUSETS UNFASL
   MORE   UNFASL
   NSHARE UNFASL
   OCTAL  UNFASL
   OD     UNFASL
   OPTDEF UNFASL
   PHSPRT UNFASL
   PRIVOB UNFASL
   PROMPT UNF
The last command timed out.
make: *** [out/simh/rp0.dsk] Error 1

I tried starting it anyway, and I successfully logged in, but :zork got the “This is not the machine of the Zork Implementors!” response.

Henrik,

My best guess would be that some make dependency is in a wedged state. Try to do a clean build: make clean all EMULATOR=simh

Andrew,

I don’t know why the build would time out there. But this is in the Macsyma part of the build script, which I guess you can skip. Try MACSYMA=no make clean all EMULATOR=simh

As for the response from :zork that is because the real zork hasn’t been built yet at this point. There is a stub zork too which emits this message.

Thanks. I’ll try that later today.

I noticed that I was missing “expect”-package. Now it’s rolling again…

To anyone who would like them, I offer to put disk images online for download. Just let me know.

And for the super impatient, the telnet instructions in the first post above should be a quick way to run Zork.

I was amused to realize that (a) MacOS no longer includes telnet by default; (b) I hadn’t noticed because it’s been years since I tried to telnet.

(You can install telnet via homebrew, no problem.)

(/usr/bin/expect exists, I didn’t need to install that.)

Everything moving along fine now.

I started with a newly installed virtual Ubuntu 20.04 lts in Virtual Box and then:

1. Open terminal and install packages:
	sudo apt-get install gcc
	sudo apt-get install libsdl2-dev
	sudo apt-get install libpcap-dev
	sudo apt-get install libvdeplug-dev
	sudo apt.get install libncurses-dev
	sudo apt-get install expect

2. sudo git clone https://github.com/PDP-10/its its

3. cd its

4. sudo make EMULATOR=simh
	(takes long time... 2 h, at least)

I’ll report back when I’m finished (I’m about halfway, I think).

(EDIT: needed one more package - libncurses-dev.)

And there, the installation is finished. Now I can play Zork the way it was intended…

restore
DSK:HEASM;ZORK SAVE NON-EXISTENT DIRECTORY
>save
Can't open channel for save.

I get this when I try to “restore”. Could it be that it’s only a directory that is missing?

Thanks for reporting the successful build!

You would need to create a user directory for save and restore to work. But I have one, and it still doesn’t work.

To make your directory, type
:print hesam;…new. (udir)

I was amused when I tried telnetting in to find I’d previously set up telnet in my Mac already for a MUD thing some years ago. Yes via Homebrew :stuck_out_tongue_winking_eye: