A while ago, MIT released the source code of Zork. It's written in MDL which is a dialect of Lisp developed by the Sussman before he started working on Scheme.
https://github.com/MITDDC/zork
https://en.wikipedia.org/wiki/MDL_(programming_language)
https://medium.com/swlh/zork-the-great-inner-workings-b68012952bdc
Running it on a PDP-10 emulator is relatively easy. Make sure you have expect
, libncurses
and libcap
installed.
$ git clone https://github.com/PDP-10/its
$ cd its
$ make EMULATOR=simh
$ ./start
You'll be greated by a terse "DSKDMP". Type its
, ESC-G
then ^Z
and :zork
(Please Log In)
Losers who are not logged in cannot play ZORK!
Oops, you forgot to login.
:LOGIN ANON
^R
ANON; ..NEW. (UDIR)
This will create a user "ANON" and its home directory. You can also create a full MIT user with :INQUIR
Screenshot of the game running:
Welcome to Dungeon.
This version created January 28.
You are in an open field west of a big white house, with a boarded
front door.
There is a small mailbox here.
>kick grue
Munging a lurking grue doesn't do anything.
>
Yeah, the grue is always there, waiting for the dark.
You'll probably want to save and restore your game. You need to create a file. Once logged in as "ANON" type
:create anon; _msgs_ anon
^C
The ITS tape has many more games and programs. For instance, there's a very old Scheme interpreter:
:scheme
SCHEM1$J
This is SCHEME (DSK:QUUX;SCHINT LSP) running in LISP 2154.
;NIL NON-FIXNUM VALUE
;BKPT WRNG-TYPE-ARG
(* 2 3)
6
There are nice oddities too, like this ITS shell poetry by Guy L. Steele Jr.
Once before a console dreary, while I programmed, weak and weary,
Over many a curious program which did TECO's buffer fill, --
While I pondered, nearly sleeping, suddenly there came a feeping,
As of something gently beeping, beeping with my console's bell.
"'Tis my DDT," I muttered, "feeping on my console's bell:
Once it feeped, and now is still."Ah, distinctly I remember that dark night in bleak December,
And each separate glowing symbol danced before me, bright and chill.
Eagerly I wished the morrow; vainly I had sought to borrow
From my HACTRN aid for sorrow -- sorrow for the bugs which fill --
For the strange unknown and nameless bugs which ever all my programs f
Bugs which now I searched for still.And the coughing, whirring, gritty fan I heard inside my TTY
Made me with fantastic terrors never known before to thrill;
So that now, to still the beating of my heart I stood repeating,
"'Tis some interrupt entreating DDT to signal me --
Some strange interrupt entreating DDT to signal me --
Its importance surely nil."(...)