Difference between revisions of "Zork"

From Computer History Wiki
Jump to: navigation, search
(Zork on the IBM 370 mainframe)
(Unlink this ITS, there is another.)
 
(20 intermediate revisions by 6 users not shown)
Line 2: Line 2:
 
[[Image:Map of Dungeon.jpg|200px|thumb|right|A map of Dungeon]]
 
[[Image:Map of Dungeon.jpg|200px|thumb|right|A map of Dungeon]]
  
Zork is one of the most popular, and ported games for mini and personal computers. Zork was written in MIT (Marc Blanc, Joel Berez and others) in the [[MDL]] language. It was VERY popular and was ported to various other langauges and systems. The [[FORTRAN]] port by Bob Supnik is perhaps one of the more popular versions.
+
Zork is one of the most popular, and ported games for mini and personal computers. Zork was written in MIT (Marc Blanc, Joel Berez and others) in the [[Muddle]] language. It was VERY popular and was ported to various other languages and systems. The [[FORTRAN]] port by Bob Supnik is perhaps one of the more popular versions.
  
 
There is a little confusion as the the name, Zork started out as the original name, but as time went on, it became "Dungeon".  However TSR threatened [[Infocom]] that Dungeon sounded too much like Dungeons & Dragons, so the name was changed back to Zork.
 
There is a little confusion as the the name, Zork started out as the original name, but as time went on, it became "Dungeon".  However TSR threatened [[Infocom]] that Dungeon sounded too much like Dungeons & Dragons, so the name was changed back to Zork.
Line 9: Line 9:
  
 
http://www.csd.uwo.ca/Infocom/dungeon.html
 
http://www.csd.uwo.ca/Infocom/dungeon.html
 
  
 
== Introduction ==
 
== Introduction ==
Line 55: Line 54:
 
== Source code ==
 
== Source code ==
  
The MDL source code is available from the SIMH software site [http://simh.trailing-edge.com/games/zork-mdl.zip here].  Likewise, Bob's port to Fortran is available [http://simh.trailing-edge.com/games/dungeon.zip here].  The Fortran version was last updated from 1990.
+
The Muddle source code is available from the SIMH software site [http://simh.trailing-edge.com/games/zork-mdl.zip here].  Likewise, Bob's port to Fortran is available [http://simh.trailing-edge.com/games/dungeon.zip here].  The Fortran version was last updated from 1990.
  
 
+
Various versions can be retrieved from https://www.ifarchive.org/indexes/if-archive/games/source/<br>
Various versions can be retrieved from http://ftp.giga.or.at/pub/ifarchive/games/source/<br>
 
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 65: Line 63:
 
!Description
 
!Description
 
|-
 
|-
|[http://ftp.giga.or.at/pub/ifarchive/games/source/Dungeon_source.sit Dungeon_source.sit]
+
|[https://www.ifarchive.org/if-archive/games/source/Dungeon_source.sit Dungeon_source.sit]
 
|C source code for Dungeon (the more or less public domain version of the original MIT Zork) for the Macintosh.
 
|C source code for Dungeon (the more or less public domain version of the original MIT Zork) for the Macintosh.
 
|-
 
|-
|[http://ftp.giga.or.at/pub/ifarchive/games/source/dungeon-2.5.6.tar.gz dungeon-2.5.6.tar.gz]
+
|[https://www.ifarchive.org/if-archive/games/source/dungeon-2.5.6.tar.gz dungeon-2.5.6.tar.gz]
 
|FORTRAN source code of Dungeon, the more or less public domain version of the original MIT Zork, version 2.5A, 30-Aug-90. This version is Robert M. Supnik's DECUS version 2.5A (18-Jul-80), ported to Linux with f2c.
 
|FORTRAN source code of Dungeon, the more or less public domain version of the original MIT Zork, version 2.5A, 30-Aug-90. This version is Robert M. Supnik's DECUS version 2.5A (18-Jul-80), ported to Linux with f2c.
 
|-
 
|-
|[http://ftp.giga.or.at/pub/ifarchive/games/source/dungeon-3.2A.tar.Z dungeon-3.2A.tar.Z]
+
|[https://www.ifarchive.org/if-archive/games/source/dungeon-3.2A.tar.Z dungeon-3.2A.tar.Z]
 
|Dungeon version 3.2A, 1-Oct-94; contains all the rooms and puzzles of the original MIT Zork. DEC FORTRAN source code by Robert M. Supnik; see dungn32b.zip for a port to DOS.
 
|Dungeon version 3.2A, 1-Oct-94; contains all the rooms and puzzles of the original MIT Zork. DEC FORTRAN source code by Robert M. Supnik; see dungn32b.zip for a port to DOS.
 
|-
 
|-
|[http://ftp.giga.or.at/pub/ifarchive/games/source/dungeon-3.2B.patch dungeon-3.2B.patch]
+
|[https://www.ifarchive.org/if-archive/games/source/dungeon-3.2B.patch dungeon-3.2B.patch]
 
|Source code patch by Robert M. Supnik to upgrade Dungeon version 3.2A to version 3.2B.
 
|Source code patch by Robert M. Supnik to upgrade Dungeon version 3.2A to version 3.2B.
 
|-
 
|-
|[http://ftp.giga.or.at/pub/ifarchive/games/source/dungeon-3.2B.unidiff dungeon-3.2B.unidiff]
+
|[https://www.ifarchive.org/if-archive/games/source/dungeon-3.2B.unidiff dungeon-3.2B.unidiff]
 
|Same patch, converted to Larry Wall's 'patch' utility format (unified diff) by David Bristow.
 
|Same patch, converted to Larry Wall's 'patch' utility format (unified diff) by David Bristow.
 
|-
 
|-
|[http://ftp.giga.or.at/pub/ifarchive/games/source/dungeon-glk.tar.Z dungeon-glk.tar.Z]
+
|[https://www.ifarchive.org/if-archive/games/source/dungeon-glk.tar.Z dungeon-glk.tar.Z]
 
|Dungeon, the more or less public domain version of the original MIT Zork, version 3.2B. Andrew Plotkin ported this version to C |and added the Glk interface.
 
|Dungeon, the more or less public domain version of the original MIT Zork, version 3.2B. Andrew Plotkin ported this version to C |and added the Glk interface.
 
|-
 
|-
|[http://ftp.giga.or.at/pub/ifarchive/games/source/dungn26b-src.zip dungn26b-src.zip]
+
|[https://www.ifarchive.org/if-archive/games/source/dungn26b-src.zip dungn26b-src.zip]
 
|FORTRAN source code of Dungeon, the more or less public domain version of the original MIT Zork, version 2.6B, 07-Apr-88. This |version is Robert M. Supnik's DECUS version 2.6A (18-Oct-80), ported to MS-DOS by Kevin Black. (an MS-DOS executable of this |version is in games/pc/dungn26b.zip)
 
|FORTRAN source code of Dungeon, the more or less public domain version of the original MIT Zork, version 2.6B, 07-Apr-88. This |version is Robert M. Supnik's DECUS version 2.6A (18-Oct-80), ported to MS-DOS by Kevin Black. (an MS-DOS executable of this |version is in games/pc/dungn26b.zip)
 
|-
 
|-
|[http://ftp.giga.or.at/pub/ifarchive/games/source/dungn27s.zip dungn27s.zip]
+
|[https://www.ifarchive.org/if-archive/games/source/dungn27s.zip dungn27s.zip]
 
|C source code of Dungeon, the more or less public domain version of the original MIT Zork, version 2.7A, 11-Mar-91. (an MS-DOS |executable of this version is in games/pc/dungn27a.zip, an Amiga port is in games/amiga/Dungeon.lzh, and a port to the Acorn |Archimedes is in games/archimedes/dungeon.spk)
 
|C source code of Dungeon, the more or less public domain version of the original MIT Zork, version 2.7A, 11-Mar-91. (an MS-DOS |executable of this version is in games/pc/dungn27a.zip, an Amiga port is in games/amiga/Dungeon.lzh, and a port to the Acorn |Archimedes is in games/archimedes/dungeon.spk)
 
|-
 
|-
|[http://ftp.giga.or.at/pub/ifarchive/games/source/dungn32b.zip dungn32b.zip]
+
|[https://www.ifarchive.org/if-archive/games/source/dungn32b.zip dungn32b.zip]
 
|Dungeon, the more or less public domain version of the original MIT Zork, version 3.2B, 1-Oct-94. DOS executable for 386+ only and |FORTRAN source code, ported from DEC FORTRAN to GNU G77 FORTRAN by Volker Blasius and David Kinder. The original source code is in |dungeon-32A.tar.Z (file is linked to games/pc/dungn32b.zip)
 
|Dungeon, the more or less public domain version of the original MIT Zork, version 3.2B, 1-Oct-94. DOS executable for 386+ only and |FORTRAN source code, ported from DEC FORTRAN to GNU G77 FORTRAN by Volker Blasius and David Kinder. The original source code is in |dungeon-32A.tar.Z (file is linked to games/pc/dungn32b.zip)
 
|}
 
|}
Line 96: Line 94:
  
 
=== Zork running on ITS ===
 
=== Zork running on ITS ===
[[Image:Zork on infoton terminal.jpg|150px|thumb|right|Zork on the PDP-10]]
+
[[Image:Zork-78.png|150px|thumb|right|Zork logotype from ITS era.]]
Zork's [[MDL]] source on [[ITS]] for the [[PDP-10]].  Keep checking back....
+
Zork's [[Muddle]] source on [[Incompatible Timesharing System|ITS]] for the [[PDP-10]].
 +
 
 +
There is a [http://github.com/PDP-10/its/blob/master/src/mudsys working Muddle interpreter] for ITS, but the code will not fit even in a [[moby]] memory.  A [http://github.com/PDP-10/its/blob/master/src/mudsys Muddle compiler] has been recovered and used to build a working game from source code.
 +
 
 +
There is a Muddle interpreter called [http://ifarchive.org/indexes/if-archiveXprogrammingXmdlXinterpretersXconfusion.html Confusion] that is capable or running a slightly patched version of the original Muddle Zork code.
 +
 
 +
From the US NEWS & DUNGEON REPORT:
 +
 
 +
<pre>
 +
                US NEWS & DUNGEON REPORT
 +
7/22/81                                        Last G.U.E. Edition
 +
 
 +
This version of ZORK is no longer being supported on this or any other
 +
machine.  In particular, bugs and feature requests will, most likely, be
 +
read and ignored.  There are updated versions of ZORK, including some
 +
altogether new problems, available for PDP-11s and various
 +
microcomputers (TRS-80, APPLE, maybe more later).  For information, send
 +
a SASE to:
 +
 
 +
                Infocom, Inc.
 +
                P.O. Box 120, Kendall Station
 +
                Cambridge, Ma. 02142
 +
</pre>
 +
 
 +
The ITS repository on GitHub has 1979 and 1981 version of Zork sources checked in.  There are also [https://github.com/MITDDC binary files from 1977-1978] which can be played.  The file from June 14, 1977 is the oldest know version of Zork.
 +
 
 +
=== Zork running on TENEX and TOPS-20 ===
 +
[[Image:Zork on infoton terminal.jpg|150px|thumb|right|Zork on TOPS-20.]]
 +
 
 +
Muddle was ported to TENEX machines at ISI, and Zork quickly followedTOPS-20 support followed, and many sites received a copy of Zork.
 +
 
 +
On a [https://www.tuhs.org/Archive/Applications/Shoppa_Tapes/usenix878889.tar.gz 1987 Usenix tape] is a copy of Fortran Zork backported to TOPS-20.  Building or running it hasn't been tested, but it does include source, and the text files include the following:
 +
 
 +
<pre>
 +
Welcome to Dungeon.
 +
This version created Sep 21, 1981
 +
</pre>
 +
 
 +
And the history
 +
 
 +
<pre>
 +
Revision history:
 +
 
 +
28-nov-78    Minor cleanups (v2.1a).
 +
10-sep-78    Endgame (V2.0a).
 +
10-AUG-78    DECUS version (V1.1b).
 +
14-JUN-78    Public version with parser (V1.1a).
 +
4-MAR-78      Debugging version (V1.0a).
 +
</pre>
 +
 
 +
So, while this isn't the oldest one, it's got to be more portable....
  
 
=== Zork on RT-11 ===
 
=== Zork on RT-11 ===
Line 108: Line 156:
 
[http://pdp11.saracom.com/ Saracom link]
 
[http://pdp11.saracom.com/ Saracom link]
  
This version can be converted to disk images with [http://www.dbit.com/pub/putr putr], which you can then copy to a larger disk and run it.  At the moment this is the oldest known runnable version of Zork.
+
This version can be converted to disk images with [http://www.dbit.com/pub/putr putr], which you can then copy to a larger disk and run it.  This used to be the oldest known runnable version of Zork.
 
<pre>
 
<pre>
 
RT-11SJ  V04.00C
 
RT-11SJ  V04.00C
Line 157: Line 205:
 
I've also managed to track back the source to a newer version, and setup some instructions on how to build it with RT-11 in the tutorial aptly named [[Compiling Dungeon on RT-11]].
 
I've also managed to track back the source to a newer version, and setup some instructions on how to build it with RT-11 in the tutorial aptly named [[Compiling Dungeon on RT-11]].
  
=== Zork on TOPS-20 ===
+
=== Zork on the IBM 370 mainframe ===
I came across this looking at old UseNIX software, and oddly enough in the [http://tuhs.gcu.info/Applications/Shoppa_Tapes/usenix878889.tar.gz 1987 tape], I found this..  I haven't tried to build it or run it, but it does include source, and in the text files I could extract the following:
+
 
 +
Recently I've found an [http://web.archive.org/web/20050914173504/http://pucc.princeton.edu/~melinda/ archive of Zork] that includes source that runs on CMS for the IBM [[System/370]] mainframe..  I've run it under [[VM/370]].
  
 
<pre>
 
<pre>
Welcome to Dungeon.
+
 
This version created Sep 21, 1981
+
version
 +
V1. 2C
 +
>
 +
history
 +
Revision history:
 +
 
 +
V1.0          Appeared fully-formed in someone's VM reader.
 +
>
 
</pre>
 
</pre>
  
And the history
+
It's scored in 500 points, and the dates all seem to point to 1980 and 1981.
  
 
<pre>
 
<pre>
Revision history:
+
              US NEWS & DUNGEON REPORT
 +
01-MAR-81                                    Late Dungeon Edition
 +
This is a version of Zork on VM/370
 +
 
 +
The problems with it are:
 +
      -Lack of an endgame.
 +
      -Simple parser (no compound sentences).
 +
      -Numerous bugs and spelling errors.
 +
But so what.
  
28-nov-78    Minor cleanups (v2.1a).
+
If you encounter problems or find logic, spelling, or usage bugs,
10-sep-78    Endgame (V2.0a).
+
keep them to yourself.
10-AUG-78    DECUS version (V1.1b).
 
14-JUN-78    Public version with parser (V1.1a).
 
4-MAR-78      Debugging version (V1.0a).
 
 
</pre>
 
</pre>
 
 
So, while this isn't the oldest one, it's got to be more portable....
 
  
 
=== Zork on the PDP-11 running BSD ===
 
=== Zork on the PDP-11 running BSD ===
Line 226: Line 284:
  
 
--ccw
 
--ccw
</pre>
 
 
 
=== Zork on the IBM 370 mainframe ===
 
It's a CMS executable...
 
 
<pre>
 
 
version
 
V1. 2C
 
>
 
history
 
Revision history:
 
 
V1.0          Appeared fully-formed in someone's VM reader.
 
>
 
</pre>
 
 
It's scored in 500 points, and the dates all seem to point to 1980 and 1981.
 
 
<pre>
 
              US NEWS & DUNGEON REPORT
 
01-MAR-81                                    Late Dungeon Edition
 
This is a version of Zork on VM/370
 
 
The problems with it are:
 
      -Lack of an endgame.
 
      -Simple parser (no compound sentences).
 
      -Numerous bugs and spelling errors.
 
But so what.
 
 
If you encounter problems or find logic, spelling, or usage bugs,
 
keep them to yourself.
 
 
</pre>
 
</pre>
  
Line 288: Line 313:
 
14-JUN-78      Public version with parser (V1.1a).
 
14-JUN-78      Public version with parser (V1.1a).
 
4-MAR-78        Debugging version (V1.0a).
 
4-MAR-78        Debugging version (V1.0a).
 +
>
 +
</pre>
 +
 +
=== Zork on VMS/VAX ===
 +
 +
I wanted to have Zork (Dungeon) on [[VMS]], especially early VMS versions.
 +
 +
I found [[FORTRAN]] sources for Zork V2.2A and compiled them using VAX FORTRAN V2.4 under VMS V2.0 on a [[SIMH]] [[VAX-11/780]].
 +
 +
I'm still looking for VAX FORTRAN V1.0 to compile Zork under VMS V1.0.
 +
 +
The resulting '''DUNGEON.EXE''' runs on VMS V1.0 and V2.0; other versions will be tested, too.
 +
 +
You will find the result for download [https://drive.google.com/drive/folders/1Pon-KHWM2oq0iZx2mtfeR2N1hi-KJsXu?usp=sharing here] in form of a zipped [[RK06/07 disk drive|RK07]] disk image.
 +
 +
Some details:
 +
<pre>
 +
>HISTORY
 +
REVISION HISTORY:
 +
 +
3-NOV-78        REVISED DECUS VERSION (V2.2A).
 +
10-OCT-78      PUZZLE ROOM (V2.1A).
 +
10-SEP-78      ENDGAME (V2.0A).
 +
10-AUG-78      DECUS VERSION (V1.1B).
 +
14-JUN-78      PUBLIC VERSION WITH PARSER (V1.1A).
 +
4-MAR-78        DEBUGGING VERSION (V1.0A).
 +
>
 +
</pre>
 +
 +
This version contains the '''GDT''' command:
 +
<pre>
 +
>GDT
 +
A BOOMING VOICE CALLS OUT, "TO PROVE YOUR WORTHINESS,
 +
ANSWER THE FOLLOWING CHALLENGE."
 +
CHALLENGE: YRUZEV
 +
RESPONSE:  VAX
 +
A BOOMING VOICE SAYS, "WRONG, CRETIN!", AND YOU NOTICE THAT YOU
 +
HAVE TURNED INTO A PILE OF DUST.
 +
DO YOU WISH ME TO TRY TO PATCH YOU?
 +
YES
 +
NOW LET ME SEE...
 +
WELL, WE WEREN'T QUITE ABLE TO RESTORE YOUR STATE.  YOU CAN'T HAVE
 +
EVERYTHING.
 +
>SCORE
 +
YOUR SCORE IS -10 [TOTAL OF 585 POINTS], IN    2 MOVES.
 +
THIS GIVES YOU THE RANK OF BEGINNER.
 
>
 
>
 
</pre>
 
</pre>
  
 
=== Zork on micro's ===
 
=== Zork on micro's ===
 +
 
Zork was also available on various microprocessors, including z80, 6502, 8086.
 
Zork was also available on various microprocessors, including z80, 6502, 8086.
  
Line 323: Line 395:
  
 
=== TRS-80 ===
 
=== TRS-80 ===
 +
 
[[Image:Zork1 trs80.jpg|thumb|150px|right|Zork 1 for the TRS 80]]
 
[[Image:Zork1 trs80.jpg|thumb|150px|right|Zork 1 for the TRS 80]]
 
Zork was first available on the [[TRS-80]] requiring 32kb of ram, and a floppy disk drive!
 
Zork was first available on the [[TRS-80]] requiring 32kb of ram, and a floppy disk drive!
Line 333: Line 406:
  
 
=== CP/M (8080/8086) ===
 
=== CP/M (8080/8086) ===
 +
 
[[Image:zork1 CPM kit.jpg|thumb|right|150px|Zork 1 for CP/M]]
 
[[Image:zork1 CPM kit.jpg|thumb|right|150px|Zork 1 for CP/M]]
 
Zork was made available on the [[i8080]] running [[CP/M]].  You can run this game on [[SIMH]], and also [[emu8080]].
 
Zork was made available on the [[i8080]] running [[CP/M]].  You can run this game on [[SIMH]], and also [[emu8080]].
Line 349: Line 423:
  
 
=== 6502 (Apple II, Atari, Commodore 64) ===
 
=== 6502 (Apple II, Atari, Commodore 64) ===
 +
 
[[Image:Commodore OEM Zork 1.jpg|150px|thumb|right|Commodore Zork]]
 
[[Image:Commodore OEM Zork 1.jpg|150px|thumb|right|Commodore Zork]]
 
Of the 6502 based micro's the [[Apple II]], [[Atari 800]], and the [[Commodore 64]] both possesed ports of the interpeter required to run Zork.
 
Of the 6502 based micro's the [[Apple II]], [[Atari 800]], and the [[Commodore 64]] both possesed ports of the interpeter required to run Zork.
 
  
 
*[http://cbmfunet.retro-server.de/plus4/Games/misc/z/Zork%20I.d64.gz Zork] for the Commodore 64.
 
*[http://cbmfunet.retro-server.de/plus4/Games/misc/z/Zork%20I.d64.gz Zork] for the Commodore 64.
 +
*[http://plus4world.powweb.com/software/Zork_I Zork] for the Commodore Plus/4
  
 
Commodore OEM'd Zork onto their computer, and they had unique artwork done.
 
Commodore OEM'd Zork onto their computer, and they had unique artwork done.
Line 366: Line 441:
  
 
=== The GDT command ===
 
=== The GDT command ===
 +
 
The [[FORTRAN]] version of zork was interesting as it included a built in debugger.  Depending how old they are, the question would be different.
 
The [[FORTRAN]] version of zork was interesting as it included a built in debugger.  Depending how old they are, the question would be different.
  
Line 429: Line 505:
 
</pre>
 
</pre>
  
== see also ==
+
== Interrupters ==
[[Zork hints]]
+
 
 +
=== InfoTaskForce ===
 +
 
 +
Started as a side project back in the mid 1980's as first decompiling the 8080 version of Zork.  Afterwards they reimplemented it in [[C (language)|C]], and thus were able to run [[Infocom]] games on any machine that they could compile on.  I have been able to track down [http://www.planetemu.net/rom/tandy-radio-shack-trs-80-model-1/infocom-adventure-executor-source-files-1987-infotaskforce-c version 1.0], which included support for various mini-computers & personal computers of 1987.  Version 1.0 is only capable of playing [[Infocom Game Versions|version 3]] games.  I've been able to get this running on the [[x68000]] platform via emulation.  Notes for this port are [http://virtuallyfun.superglobalmegacorp.com/2014/12/15/tracking-down-the-infotaskforce-from-1987/ on my blog].  Also I did a port to the [[cisco]] [[1700]] router platform.  Again notes are [http://virtuallyfun.superglobalmegacorp.com/2015/09/27/infotaskforce-running-on-powerpc-dynamips/ on my blog].
 +
 
 +
The much later [http://www.ifarchive.org/indexes/if-archiveXinfocomXinterpretersXoldXitf.html Version 4.01] build of InfoTaskForce includes support for more platforms, and more versions of Infocom games.  This also served as the base for later intpreters
 +
 
 +
=== Pinfocom ===
 +
 
 +
Pinfocom is a fork from InfoTaskForce, I'd guess version 3?
 +
 
 +
== See Also ==
 +
 
 +
* [[Zork hints]]
  
 
[[Category:Games]]
 
[[Category:Games]]

Latest revision as of 06:30, 6 September 2023

Dungeon 2.5.6 on Windows 3.0
A map of Dungeon

Zork is one of the most popular, and ported games for mini and personal computers. Zork was written in MIT (Marc Blanc, Joel Berez and others) in the Muddle language. It was VERY popular and was ported to various other languages and systems. The FORTRAN port by Bob Supnik is perhaps one of the more popular versions.

There is a little confusion as the the name, Zork started out as the original name, but as time went on, it became "Dungeon". However TSR threatened Infocom that Dungeon sounded too much like Dungeons & Dragons, so the name was changed back to Zork.

A better introduction can be found here:

http://www.csd.uwo.ca/Infocom/dungeon.html

Introduction

Zork started the genre that would be better known as interactive fiction. You simply type in what you would want to do, and the story unfolds..

# ./zork
You are in an open field west of a big white house with a boarded
front door.
There is a small mailbox here.
>open mailbox
Opening the mailbox reveals:
  A leaflet.
>take leaflet
Taken.
>read leaflet
                    Welcome to Dungeon!

   Dungeon is a game of adventure, danger, and low cunning.  In it
you will explore some of the most amazing territory ever seen by mortal
man.  Hardened adventurers have run screaming from the terrors contained
within.

   In Dungeon, the intrepid explorer delves into the forgotten secrets
of a lost labyrinth deep in the bowels of the earth, searching for
vast treasures long hidden from prying eyes, treasures guarded by
fearsome monsters and diabolical traps!

   No DECsystem should be without one!

   Dungeon was created at the Programming Technology Division of the MIT
Laboratory for Computer Science by Tim Anderson, Marc Blank, Bruce
Daniels, and Dave Lebling.  It was inspired by the Adventure game of
Crowther and Woods, and the Dungeons and Dragons game of Gygax
and Arneson.  The original version was written in MDL (alias MUDDLE).
The current version was translated from MDL into FORTRAN IV by
a somewhat paranoid DEC engineer who prefers to remain anonymous.

   On-line information may be obtained with the commands HELP and INFO.
>

Source code

The Muddle source code is available from the SIMH software site here. Likewise, Bob's port to Fortran is available here. The Fortran version was last updated from 1990.

Various versions can be retrieved from https://www.ifarchive.org/indexes/if-archive/games/source/

Source Code Description
Dungeon_source.sit C source code for Dungeon (the more or less public domain version of the original MIT Zork) for the Macintosh.
dungeon-2.5.6.tar.gz FORTRAN source code of Dungeon, the more or less public domain version of the original MIT Zork, version 2.5A, 30-Aug-90. This version is Robert M. Supnik's DECUS version 2.5A (18-Jul-80), ported to Linux with f2c.
dungeon-3.2A.tar.Z Dungeon version 3.2A, 1-Oct-94; contains all the rooms and puzzles of the original MIT Zork. DEC FORTRAN source code by Robert M. Supnik; see dungn32b.zip for a port to DOS.
dungeon-3.2B.patch Source code patch by Robert M. Supnik to upgrade Dungeon version 3.2A to version 3.2B.
dungeon-3.2B.unidiff Same patch, converted to Larry Wall's 'patch' utility format (unified diff) by David Bristow.
dungeon-glk.tar.Z and added the Glk interface.
dungn26b-src.zip version is Robert M. Supnik's DECUS version 2.6A (18-Oct-80), ported to MS-DOS by Kevin Black. (an MS-DOS executable of this |version is in games/pc/dungn26b.zip)
dungn27s.zip executable of this version is in games/pc/dungn27a.zip, an Amiga port is in games/amiga/Dungeon.lzh, and a port to the Acorn |Archimedes is in games/archimedes/dungeon.spk)
dungn32b.zip FORTRAN source code, ported from DEC FORTRAN to GNU G77 FORTRAN by Volker Blasius and David Kinder. The original source code is in |dungeon-32A.tar.Z (file is linked to games/pc/dungn32b.zip)

Notable Platforms

Zork running on ITS

Zork logotype from ITS era.

Zork's Muddle source on ITS for the PDP-10.

There is a working Muddle interpreter for ITS, but the code will not fit even in a moby memory. A Muddle compiler has been recovered and used to build a working game from source code.

There is a Muddle interpreter called Confusion that is capable or running a slightly patched version of the original Muddle Zork code.

From the US NEWS & DUNGEON REPORT:

                US NEWS & DUNGEON REPORT
7/22/81                                        Last G.U.E. Edition

This version of ZORK is no longer being supported on this or any other
machine.  In particular, bugs and feature requests will, most likely, be
read and ignored.  There are updated versions of ZORK, including some
altogether new problems, available for PDP-11s and various
microcomputers (TRS-80, APPLE, maybe more later).  For information, send
a SASE to:

                Infocom, Inc.
                P.O. Box 120, Kendall Station
                Cambridge, Ma. 02142

The ITS repository on GitHub has 1979 and 1981 version of Zork sources checked in. There are also binary files from 1977-1978 which can be played. The file from June 14, 1977 is the oldest know version of Zork.

Zork running on TENEX and TOPS-20

Zork on TOPS-20.

Muddle was ported to TENEX machines at ISI, and Zork quickly followed. TOPS-20 support followed, and many sites received a copy of Zork.

On a 1987 Usenix tape is a copy of Fortran Zork backported to TOPS-20. Building or running it hasn't been tested, but it does include source, and the text files include the following:

Welcome to Dungeon.
This version created Sep 21, 1981

And the history

Revision history:

28-nov-78     Minor cleanups (v2.1a).
10-sep-78     Endgame (V2.0a).
10-AUG-78     DECUS version (V1.1b).
14-JUN-78     Public version with parser (V1.1a).
4-MAR-78      Debugging version (V1.0a).

So, while this isn't the oldest one, it's got to be more portable....

Zork on RT-11

The cover for Zork I on the PDP-11

I've managed to track back some source & binaries for this RT-11 version. Also the fabled manual was recently found, sold and scanned. It's even autographed.

Zork Manual

Saracom link

This version can be converted to disk images with putr, which you can then copy to a larger disk and run it. This used to be the oldest known runnable version of Zork.

RT-11SJ  V04.00C

.D 56=5015

.TYPE V4USER.TXT
Welcome to RT-11 Version 4. RT-11 V04 provides new hardware support
and some major enhancements over Version 3B.

Please use the HELP command;  it describes the new options in many
of the utilities.

If you are using a terminal that requires fill characters,
modify location 56 with a Deposit command before proceeding with
system installation. LA36 DECwriter II and VT52 DECscope terminals
do NOT require such modification.


.D 56=0

.RUN DUNGEO
Welcome to Dungeon.                     This version created 10-AUG-78.
You are in an open field west of a big white house with a boarded
front door.
There is a small mailbox here.
>HISTORY
Revision history:

10-AUG-78       DECUS version.
14-JUL-78       Bug fixes.
6-JUL-78        Multiple system play test version.
28-JUN-78       Complete play test version.
18-JUN-78       Play test public version.
14-JUN-78       Initial public version.
4-MAR-78        Initial version.

There is also some rx50 disk images, here here dungeon1,dungeon2 & asc are the disks needed for dungeon. This version however is the source code version, Instructions on compiling it can be found in the tutorial Compiling Dungeon on RT-11. Extracting the strings I see this for the history portion:

10-OCT-78       Puzzle Room (V2.1A)
10-SEP-78       Endgame (V2.0A).
10-AUG-78       DECUS version (V1.1B).
14-JUN-78       Public version with parser (V1.1A).
4-MAR-78        Debugging version (V1.0A).

I've also managed to track back the source to a newer version, and setup some instructions on how to build it with RT-11 in the tutorial aptly named Compiling Dungeon on RT-11.

Zork on the IBM 370 mainframe

Recently I've found an archive of Zork that includes source that runs on CMS for the IBM System/370 mainframe.. I've run it under VM/370.


version
 V1. 2C
 >
history
 Revision history:

 V1.0          Appeared fully-formed in someone's VM reader.
 >

It's scored in 500 points, and the dates all seem to point to 1980 and 1981.

               US NEWS & DUNGEON REPORT
 01-MAR-81                                    Late Dungeon Edition
 This is a version of Zork on VM/370

 The problems with it are:
      -Lack of an endgame.
      -Simple parser (no compound sentences).
      -Numerous bugs and spelling errors.
 But so what.

 If you encounter problems or find logic, spelling, or usage bugs,
 keep them to yourself.

Zork on the PDP-11 running BSD

This version of Zork contains the following readme, with some information as to the history of Zork on the mini's:

This is a patched up RT-11 binary which ran on an LSI-11.
This program was originally distributed on a Purdue mailing and
was full of bugs.  Many bugs in that distribution have been fixed.
This is not a pristine, elegent implemention but it works!

DUNGEON expects following files:

/usr/chris/dungeon/zork         UNIX a.out file for Dungeon root
                                segment and RT-11 Fortran Runtime
/usr/chris/dungeon/dtext.dat    Text file in random access-format
/usr/chris/dungeon/dindex.dat   Indicies (probably into dtext.dat)
/usr/chris/dungeon/doverlay     Original RT-11 DUNGEO.SAV
                                (reads overlays from here)


If you don't like these pathnames, "dungeon.c" may be modified to
reflect the desired names.  Pathnames were originally in "o.s" but
"dungeon.c" was implemented at Purdue as an easier way to change them
than patching binaries.  However, we have standardized the d/o.s
interface.  It now would be an simple task to put pathnames in o.s
if one so desired.

Other files of interest:

dungeon.c       C program with date and UID check and exec of dungeon.

o.s             Assembler driver to make dungeon run under UNIX.
                Loads overlays, save/restore games, etc.  This must
                be relocated to 0146000 and stuck on the end of the
                dungeon binary file "d". (We don't have sources)

p1              sh file to patch up a.out file "dung" so interface
                between "d" and "o.s" works.

1.s             kludge file to achive . = .+ 0146000

mkovl           sh file to make overlay driver, attach it to "d",
                and make a UNIX a.out file by attaching the
                proper header.

--ccw

Zork on BSD/VAX

This version is infact the same version that runs on the PDP-11 versions of BSD Unix. What is interesting is that this version uses a PDP/11 emulator to run the above binary. It's also worth noting from the VAX's readme:

     !cmd (the usual shell escape convention)

     >    (to save a game)

     <    (to restore a game)

Using the save/restore commands will cause the program to crash.

The following is a quick session of the 4.2 BSD version of zork. I think this was the same under all 4.x BSD vax releases.

myname# zork
You are in an open field west of a big white house with a boarded
front door.
There is a small mailbox here.
>history
Revision history:

10-SEP-78       Endgame (V2.0a).
10-AUG-78       DECUS version (V1.1b).
14-JUN-78       Public version with parser (V1.1a).
4-MAR-78        Debugging version (V1.0a).
>

Zork on VMS/VAX

I wanted to have Zork (Dungeon) on VMS, especially early VMS versions.

I found FORTRAN sources for Zork V2.2A and compiled them using VAX FORTRAN V2.4 under VMS V2.0 on a SIMH VAX-11/780.

I'm still looking for VAX FORTRAN V1.0 to compile Zork under VMS V1.0.

The resulting DUNGEON.EXE runs on VMS V1.0 and V2.0; other versions will be tested, too.

You will find the result for download here in form of a zipped RK07 disk image.

Some details:

>HISTORY
REVISION HISTORY:

3-NOV-78        REVISED DECUS VERSION (V2.2A).
10-OCT-78       PUZZLE ROOM (V2.1A).
10-SEP-78       ENDGAME (V2.0A).
10-AUG-78       DECUS VERSION (V1.1B).
14-JUN-78       PUBLIC VERSION WITH PARSER (V1.1A).
4-MAR-78        DEBUGGING VERSION (V1.0A).
>

This version contains the GDT command:

>GDT
A BOOMING VOICE CALLS OUT, "TO PROVE YOUR WORTHINESS,
ANSWER THE FOLLOWING CHALLENGE."
CHALLENGE: YRUZEV
RESPONSE:  VAX
A BOOMING VOICE SAYS, "WRONG, CRETIN!", AND YOU NOTICE THAT YOU
HAVE TURNED INTO A PILE OF DUST.
DO YOU WISH ME TO TRY TO PATCH YOU?
YES
NOW LET ME SEE...
WELL, WE WEREN'T QUITE ABLE TO RESTORE YOUR STATE.  YOU CAN'T HAVE
EVERYTHING.
>SCORE
YOUR SCORE IS -10 [TOTAL OF 585 POINTS], IN    2 MOVES.
THIS GIVES YOU THE RANK OF BEGINNER.
>

Zork on micro's

Zork was also available on various microprocessors, including z80, 6502, 8086.

From what I can find, here is a list of all the platforms:

  • Amiga
  • Amstrad CPC
  • Apple II
  • Apricot
  • Atari 8-bit
  • Atari ST
  • Commodore 128
  • Commodore 64
  • Commodore Plus/4
  • CP/M
  • DECmate
  • DEC Rainbow
  • Epson QX-10
  • Kaypro II
  • Macintosh
  • NEC APC
  • PC
  • PDP-9 RT-11
  • PDP-10
  • PDP-11 RT-11
  • Tandy
  • TI-99/4A
  • TI Professional
  • TRS-80 [Model I and III.]
  • TRS-80 Color

TRS-80

Zork 1 for the TRS 80

Zork was first available on the TRS-80 requiring 32kb of ram, and a floppy disk drive!

You can download it from here:

http://www.classic-computers.org.nz/system-80/disks/zork1_80sssd_jv1.DSK


CP/M (8080/8086)

Zork 1 for CP/M

Zork was made available on the i8080 running CP/M. You can run this game on SIMH, and also emu8080.

You can download this version here:

Zork was also available for the i8086 running CP/M, and you can find it here:

Besides the 8080/8086 versions, I'm unaware of any CP/M 68k, or Z8000 version of Zork for CP/M.

One thing of interest, is that the executable for zork1 for the 8080 is only 8704 bytes!


6502 (Apple II, Atari, Commodore 64)

Commodore Zork

Of the 6502 based micro's the Apple II, Atari 800, and the Commodore 64 both possesed ports of the interpeter required to run Zork.

  • Zork for the Commodore 64.
  • Zork for the Commodore Plus/4

Commodore OEM'd Zork onto their computer, and they had unique artwork done.

8086

The IBM PC was also able to run Zork, as shipped from Infocom.

History of Zork

The History of Zork can be found here http://www.csd.uwo.ca/Infocom/Articles/NZT/zorkhist.html

The GDT command

The FORTRAN version of zork was interesting as it included a built in debugger. Depending how old they are, the question would be different.

For example some of the earlier ones look like this:

.RUN DUNGEO
Welcome to Dungeon.                     This version created 6-JUL-78.
You are in an open field west of a big white house with a boarded
front door.
There is a small mailbox here.
>HISTORY
Revision history:
6-JUL-78        Multiple system play test version.
28-JUN-78       Complete play test version.
18-JUN-78       Play test public version.
14-JUN-78       Initial public version.
4-MAR-78        Initial version.
>GDT
A booming voice calls out, "Who summons the right hand of
the translator?  State your name, cat, and serial number!"
SUPNIK,BARNEY,70524
At your service!
GDT>

And as Bob put it on a mailing list:

Barney was the name of the cat I had when I did the bulk of the porting
work.

I'm fairly sure that 70524 was my DEC badge number.

So I guess my cat was working for DEC, indirectly.

/Bob

And more on the nature of GDT:

GDT dates from a very early version of the game, in fact, before the
game was actually finished.  I realized early on that debugging an
interactive program with the traditional PRINT statements was going to
be very cumbersome, and that the interactive debug tools of the day
(1978) had no semantic understanding of the program.  GDT was the
answer.  It enabled me to track when things went wrong, and to simulate
parts of the game that hadn't been implemented yet.

Originally, GDT was just a command like any other.  Once the game was
released, players quickly realized that it offered a simple way to short
circuit the game and to undo mistakes.  Lost something to the thief?
Take it back.  Getting killed too often?  Turn on immortality mode.  So
I implemented a variety of challenges to prevent players from entering
GDT without making the mechanism too difficult for me to remember.  I
think the INCANT mechanism might have been the final PDP-11 challenge.

When I did the VAX version, I abandoned all that and went back to GDT as
universally enabled, under control of a run time flag, GDTFLG.  I think
I intended to turn GDTFLG off before releasing the VAX version, so that
it would be impossible to get into GDT without patching the binaries;
but in fact the final VAX sources have GDTFLG=1.

/Bob

Interrupters

InfoTaskForce

Started as a side project back in the mid 1980's as first decompiling the 8080 version of Zork. Afterwards they reimplemented it in C, and thus were able to run Infocom games on any machine that they could compile on. I have been able to track down version 1.0, which included support for various mini-computers & personal computers of 1987. Version 1.0 is only capable of playing version 3 games. I've been able to get this running on the x68000 platform via emulation. Notes for this port are on my blog. Also I did a port to the cisco 1700 router platform. Again notes are on my blog.

The much later Version 4.01 build of InfoTaskForce includes support for more platforms, and more versions of Infocom games. This also served as the base for later intpreters

Pinfocom

Pinfocom is a fork from InfoTaskForce, I'd guess version 3?

See Also