Difference between revisions of "Zork"

From Computer History Wiki
Jump to: navigation, search
(added some history from http://www.csd.uwo.ca/Infocom/Articles/NZT/zorkhist.html)
(Unlink this ITS, there is another.)
 
(70 intermediate revisions by 6 users not shown)
Line 1: Line 1:
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 Bub Supnik is perhaps one of the more popular versions.
+
[[Image:QuickWin.jpg|200px|thumb|right|Dungeon 2.5.6 on Windows 3.0]]
 +
[[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 [[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:
 
A better introduction can be found here:
  
 
http://www.csd.uwo.ca/Infocom/dungeon.html
 
http://www.csd.uwo.ca/Infocom/dungeon.html
 
  
 
== Introduction ==
 
== Introduction ==
Line 50: 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.
  
== Notable versions ==
+
Various versions can be retrieved from https://www.ifarchive.org/indexes/if-archive/games/source/<br>
  
=== Zork on the PDP-8 running OS/8 ===
+
{| class="wikitable"
 +
|-
 +
!Source Code
 +
!Description
 +
|-
 +
|[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.
 +
|-
 +
|[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.
 +
|-
 +
|[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.
 +
|-
 +
|[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.
 +
|-
 +
|[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.
 +
|-
 +
|[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.
 +
|-
 +
|[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)
 +
|-
 +
|[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)
 +
|-
 +
|[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)
 +
|}
  
More information can be found on [http://www.rickmurphy.net/adventure.html http://www.rickmurphy.net/adventure.html]
+
== Notable Platforms ==
  
 +
=== Zork running on ITS ===
 +
[[Image:Zork-78.png|150px|thumb|right|Zork logotype from ITS era.]]
 +
Zork's [[Muddle]] source on [[Incompatible Timesharing System|ITS]] for the [[PDP-10]].
  
From the enclosed readme:
+
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.
  
<pre>  This version of adventure is based on the RT-11 version
+
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.
by Bob Supnik. It is essentially a recoding of the FORTRAN-IV
 
sources into RALF code. The RALF code has been  optimized
 
to fit into 32K. Also, many modifications were made to
 
the code to increase execution speed.
 
  
  Because it is based on the RT-11 version of ADVENTURE,
+
From the US NEWS & DUNGEON REPORT:
the following features of the FORTRAN-10 version are not
 
supported:
 
  
1) MAGIC mode was removed
+
<pre>
2) The SUSPEND and HOURS commands were deleted
+
                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:
  
  The program requires a secondary storage device with
+
                Infocom, Inc.
at least 250 blocks of free space for working storage.
+
                P.O. Box 120, Kendall Station
Included with the sources are batch stream files for
+
                Cambridge, Ma. 02142
compiling and loading the program.</pre>
+
</pre>
  
==== Running ====
+
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.
First you will need the [[SIMH]] [[PDP-8]] EmulatorNext download the following disk image which has [[OS/8]] and the compiled adventure fortran binaries [http://www.rickmurphy.net/advent-work.rk05 here].
+
 
 +
=== 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
  
OS8.ini
 
 
<pre>
 
<pre>
set cpu 32K
+
Revision history:
set cpu idle
+
 
att rk0 advent-work.rk05
+
28-nov-78    Minor cleanups (v2.1a).
boot rk0
+
10-sep-78    Endgame (V2.0a).
exit
+
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>
  
Once you've booted that, 'R FRTS', then at the '*' prompt enter 'ADVENT' and escape. You should be off and running.
+
So, while this isn't the oldest one, it's got to be more portable....
 +
 
 +
=== Zork on RT-11 ===
 +
[[Image:Zork I for the PDP-11.jpg|thumb|150px|right|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.
 +
 
 +
[http://www.getlamp.com/pdf/Zork_PDP_11.pdf Zork Manual]
  
*Special thanks to Rick Murphy.
+
[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.  This used to be the oldest known runnable version of Zork.
 +
<pre>
 +
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.
 +
</pre>
 +
 
 +
There is also some rx50 disk images, here [http://www.pdp11.co.uk/2009/05/17/rt-11-rx50-disk-images/ 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:
 +
<pre>
 +
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>
 +
 
 +
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 [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>
 +
 
 +
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>
  
 
=== Zork on the PDP-11 running BSD ===
 
=== Zork on the PDP-11 running BSD ===
Line 143: Line 285:
 
--ccw
 
--ccw
 
</pre>
 
</pre>
 
  
 
=== Zork on BSD/VAX ===
 
=== 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 nothing from the VAX's readme:
+
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:
  
 
<pre>
 
<pre>
Line 159: Line 300:
 
Using the save/restore commands will cause the program to crash.
 
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.
 +
<pre>
 +
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:
  
=== Zork on micro's ===
+
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>
  
Zork was also available on various microprocessors, including z80, 6502, 8086.
+
=== Zork on VMS/VAX ===
  
=== z80 ===
+
I wanted to have Zork (Dungeon) on [[VMS]], especially early VMS versions.
  
Zork was made available on the z80 running CP/M. You can run this game on [[SIMH]]
+
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]].
  
=== 6502 ===
+
I'm still looking for VAX FORTRAN V1.0 to compile Zork under VMS V1.0.
  
Of the 6502 based micro's the Apple ][, and the Commodore 64 both possesed ports of the interpeter required to run Zork.
+
The resulting '''DUNGEON.EXE''' runs on VMS V1.0 and V2.0; other versions will be tested, too.
  
=== 8086 ===
+
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.
  
The IBM PC was also able to run Zork, as shipped from Infocom.
+
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>
  
== History of Zork ==
+
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>
  
The following was taken from http://www.csd.uwo.ca/Infocom/Articles/NZT/zorkhist.html
+
=== Zork on micro's ===
  
The History of Zork
+
Zork was also available on various microprocessors, including z80, 6502, 8086.
  
 +
From what I can find, here is a list of all the platforms:
  
This is the history of the most famous of all interactive fiction games: Zork. It was written by Tim Anderson and Stu Galley and appeared in three issues of The New Zork Times.
+
*Amiga
Part 1: The New Zork Times, vol. 4 no. 1, Winter 1985
+
*Amstrad CPC
Part 2: The New Zork Times, vol. 4 no. 2, Spring 1985
+
*Apple II
Part 3: The New Zork Times, vol. 4 no. 3, Summer 1985
+
*Apricot
The History of Zork -- First in a Series
+
*Atari 8-bit
by Tim Anderson
+
*Atari ST
In the beginning, back in the 1960's, DEC (Digital Equipment Corporation) created the PDP-10, a medium-sized computer. The "10", as it was called, became popular at many research installations, and a great deal of software was written for it, some of which is still far in advance of systems on more modern machines. At MIT's Artificial Intelligence Lab, an operating system called ITS (Incompatible Time-sharing System) was written for the 10. ITS was designed to make software development easy. The designers of the system assumed that it would have a small, knowledgeable, friendly group of users, so they did not include any security features.
+
*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
  
Around 1970, the ARPAnet was invented. ARPAnet made it possible for researchers all over the country (indeed, all over the world) to communicate with each other, and to use each other's machines. In those halcyon days, access was unrestricted; you could get on from any machine connected to the net, or by knowing an appropriate phone number. Budding hackers from around the country soon discovered that this made a wonderful playground. They also discovered that there were some computers at MIT with some neat stuff on them and no security -- anyone who could connect to the machines could log in.
+
=== TRS-80 ===
  
Also around 1970, a language called MUDDLE (later renamed MDL) was developed as a successor to LISP. It never succeeded in fully replacing LISP, but it developed a loyal user community of its own, primarily at MIT's Project MAC (now called the Laboratory for Computer Science) and especially in the Dynamic Modelling Group (later the Programming Technology Division). The Dynamic Modelling Group (DM), in addition to its other accomplishments, was responsible for some famous games. The first of these was a multi-player graphics game called Maze, in which players wandered around a maze shooting each other. Each user's screen showed the view of the maze that his or her computerized alter-ego saw, updated in real time. Dave Lebling was among those chiefly responsible (to blame?) for the existence of the game.
+
[[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!
  
The next game of note was Trivia (who says research labs aren't ahead of their time?), an ongoing "can you top this" contest for the truly crazed. Trivia, unlike Maze, could be played by network users, and achieved wide popularity on the ARPAnet. Marc Blank wrote the second version, and I maintained/hacked it; it was actually a legitimate test of a database system the group used for a research project.
+
You can download it from here:
  
In early 1977, Adventure swept the ARPAnet. Willie Crowther was the original author, but Don Woods greatly expanded the game and unleashed it on an unsuspecting network. When Adventure arrived at MIT, the reaction was typical: after everybody spent a lot of time doing nothing but solving the game (it's estimated that Adventure set the entire computer industry back two weeks), the true lunatics began to think about how they could do it better. Adventure was written in FORTRAN, after all, so it couldn't be very smart. It accepted only two-word commands, it was obviously hard to change, and the problems were sometimes not everything one could desire. (I was present when Bruce Daniels, one of the DM'ers, figured out how to get the last point in Adventure by examining the game with a machine-language debugger. There was no other way to do it.)
+
http://www.classic-computers.org.nz/system-80/disks/zork1_80sssd_jv1.DSK
  
By late May, Adventure had been solved, and various DM'ers were looking for ways to have fun. Marc Blank was enjoying a respite from medical school; I had just finished my master's degree; Bruce Daniels was getting bored with his Ph.D. topic; and Dave Lebling was heartily sick of Morse code. Dave wrote (in MUDDLE) a command parser that was almost as smart as Adventure's; Marc and I, who were both in the habit of hacking all night, took advantage of this to write a prototype four-room game. It has long since vanished. There was a band, a bandbox, a peanut room (the band was outside the door, playing "Hail to the Chief"), and a "chamber filled with deadlines." Dave played and tested the game, saw that it was pretty awful, and left, to spend two weeks basking in the sun.
+
----
  
Marc, Bruce, and I sat down to write a real game. We began by drawing some maps, inventing some problems, and arguing a lot about how to make things work. Bruce still had some thoughts of graduating, thus preferring design to implementation, so Marc and I spent the rest of Dave's vacation in the terminal room implementing the first version of Zork. Zork, by the way, was never really named. "Zork" was a nonsense word floating around; it was usually a verb, as in "zork the fweep," and may have been derived from "zorch." ("Zorch" is another nonsense word implying total destruction.) We tended to name our programs with the word "zork" until they were ready to be installed on the system.
+
=== CP/M (8080/8086) ===
  
By the time Dave got back, there was a (more-or-less) working game. It probably wasn't as big as Adventure, and was certainly less than half the size of the final version, but it had the thief, the cyclops, the troll, the reservoir and dam, the house, part of the forest, the glacier, the maze, and a bunch of other stuff. The problems were not as interesting as those that came later: it took time for people to learn how to write good problems, and the early parsers wouldn't support complicated solutions anyway. What we had done right was all in the "substratum." There was a well-defined (and easily-changed) theory governing interactions among objects, verbs, and rooms. It was easy to drop in new parsers, which happened frequently, since everyone and his uncle tried his hand at writing a parser (Marc finally became obsessed with it, and wrote the last 40 or 50 of them himself). And it was easy to add new rooms, objects, and creatures (I won't discuss the difficulty of adding new concepts yet).  
+
[[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, like Adventure, survived only because it was played by people outside the small community that developed it. In the case of Adventure, this was possible because it was written in FORTRAN and could run on practically any machine. Zork was written in MUDDLE, which ran on only some PDP-10s. Its user community was the group of "net randoms" that infested the MIT systems; remember that we had no security at all at this time. DM had developed an active community largely because of Trivia. Since Trivia was pretty dead by the time Zork came along, there weren't many other things for the randoms to do, so they hung around waiting for the next game. Early players of Zork ranged from John McCarthy, the inventor of LISP (we actually have a copy of the connectivity matrix that McCarthy used instead of a map), to twelve-year-olds from Northern Virginia. No one ever officially announced Zork: people would log in to DM, see that someone was running a program named Zork, and get interested. They would then "snoop" on the console of the person running Zork, and see that it was an Adventure-like game. From there, it only took a little more effort to find out how to start it up. For a long time, the magic incantation was ":MARC;ZORK"; people who had never heard of ITS, DM, or PDP-10s somehow heard that if they got to something called "host 70" on the ARPAnet, logged in, and typed the magic word, they could play a game.  
+
You can download this version here:
 +
*[http://www.retroarchive.org/cpm/games/zork123_80.zip zork123_80.zip]
  
Although Zork in June 1977 was infinitely more primitive than, say, Zork I, it still had pretty much the same flavor. The Flathead family was represented, in the person of Lord Dimwit Flathead the Excessive, ruler of the Great Underground Empire; and the official currency was the zorkmid. Bruce was responsible for the purplish prose where these were first mentioned.  
+
Zork was also available for the [[i8086]] running CP/M, and you can find it here:
 +
*[http://www.retroarchive.org/cpm/games/zork123_86.zip zork123_86.zip]
  
Many of the details of the GUE were whimsical (if not silly), but we weren't completely immune to reality. In those days, if one wandered around in the dark area of the dungeon, one fell into a bottomless pit. Many users pointed out that a bottomless pit in an attic should be noticeable from the ground floor of the house. Dave came up with the notion of grues, and he wrote their description. From the beginning (or almost the beginning, anyway), the living room had a copy of "US News & Dungeon Report," describing recent changes in the game. All changes were credited to some group of implementers, but not necessarily to those actually responsible: one of the issues describe Bruce working for weeks to fill in all the bottomless pits in the dungeon, thus forcing packs of grues to roam around.  
+
Besides the 8080/8086 versions, I'm unaware of any CP/M 68k, or Z8000 version of Zork for CP/M.
  
The first major addition to the game, done in June 1977, was the river section, designed and implemented by Marc. It survives largely unchanged in Zork I, but illustrates very well the problems of building reality. There were minor problems of consistency -- some parts of the river were sunlit (and even reachable from outside), but others were dark. The major problem resulted from the new concept Marc introduced: vehicles. In the original game, there were rooms, objects, and a player; the player always existed in some room. Vehicles were objects that became, in effect, mobile rooms. This required changes in the (always delicate) interactions among verbs, objects, and rooms (we had to have some way of making "walk" do something reasonable when the player was in the boat). In addition, ever-resourceful Zorkers tried to use the boat anywhere they thought they could. The code for the boat itself was not designed to function outside the river section, but nothing kept the player from carrying the deflated boat to the reservoir and trying to sail across. Eventually the boat was allowed in the reservoir, but the general problem always remained: anything that changes the world you're modelling changes practically everything in the world you're modelling.
+
One thing of interest, is that the executable for zork1 for the 8080 is only 8704 bytes!
  
Although Zork was only a month old, it could already surprise its authors. The boat, due to the details of its implementation, turned into a "bag of holding": players could put practically anything into it and carry it around, even if the weight of the contents far exceeded what a player was allowed to carry. The boat was two separate objects: the "inflated boat" object contained the objects, but the player carried the "deflated boat" object around. We knew nothing about this: someone finally reported it to us as a bug. As far as I know, the bug is still there.
+
----
  
 +
=== 6502 (Apple II, Atari, Commodore 64) ===
  
--------------------------------------------------------------------------------
+
[[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.
  
The History of Zork -- Second in a Series
+
*[http://cbmfunet.retro-server.de/plus4/Games/misc/z/Zork%20I.d64.gz Zork] for the Commodore 64.
by Tim Anderson
+
*[http://plus4world.powweb.com/software/Zork_I Zork] for the Commodore Plus/4
When last seen, Zork(R) was a small game (probably slightly more than half the size of the final mainframe version) that ran on one computer. Although it was only six weeks old, and had never been advertised, it had a relatively large user community from all over the country. In some ways it was better than the classic Adventure at this time, but mostly it was the next game to come along, and it wasn't even the only contender.
 
  
The characters: MIT-DM, a PDP-10 running ITS; MDL (aka Muddle), a language that ran only on PDP-10s; Marc Blank, Bruce Daniels, Dave Lebling, and Tim Anderson, intrepid implementers; and assorted net randoms.  
+
Commodore OEM'd Zork onto their computer, and they had unique artwork done.
  
July 1977 saw two major additions to the game, the last for several months (we weren't exactly hired to write the thing, after all). The first of these was another BKD special: Bruce didn't write much code, but he was willing to design problems. We went to him, and asked for a particularly nasty section; the result was the coal mine. His design was originally nastier than the final implementation, since the maze was just about as horrible as the original one in the game; it got simplified due to popular demand. The problems were improving in quality, and the coal mine maze was a late example of making things hard by making them tedious.
+
=== 8086 ===
  
The volcano section was Marc's second vehicle implementation, but is perhaps more noteworthy for the loving portraits of Lord Dimwit Flathead the Excessive that decorated the coin and stamp found in the section. The river (see Part I) and volcano sections, in addition to vehicles, required a better concept of time: both the boat and the balloon moved more or less on their own, and the volcano required the use of explosives and fuses. Marc added a clock daemon, which processed a queue of events that would happen some fixed number of moves later. This handled, in addition to the movement of the vehicles, the fuse, the lantern burning out, and the mysterious gnomes that occasionally appear. The first of these was in the volcano: if the player got trapped in the upper reaches of the volcano by losing his balloon, after a few moves a volcano gnome would appear and offer freedom in exchange for a treasure. We were just being nice; most players weren't allowed to save their games, so they had no way of backing out if they made such a mistake. The gnome allowed them to keep playing, albeit with no chance of getting all the points.  
+
The IBM PC was also able to run Zork, as shipped from Infocom.
  
Even before the volcano section, we'd talked about a problem that involved flying; Dave had a preference for something with an eagle, and its aerie, but we could never figure out how to restrict things enough -- it wouldn't do to have a parallel map of the game viewed from the air. Once again, we worried about restraining a new concept, so the balloon had no way of leaving the volcano. And once again we were bitten by a new concept. When the player used the explosives in the wrong place, and didn't get out of the way, he'd end up with 20,000 pounds (or was it tons?) of rock on his head. This made a certain amount of sense in the underground section, but not out in the forest.
+
== History of Zork ==
  
No more sections were added to the game for several months after July, but it continued to improve. In addition it finally moved to machines other than DM, thus greatly expanding the number of players.  
+
The [[History of Zork]] can be found here http://www.csd.uwo.ca/Infocom/Articles/NZT/zorkhist.html
  
Although Muddle ran primarily on DM, a version for TENEX (the most popular PDP-10 operating system on the Arpanet) had existed for some time; the TENEX version could, with some minor modifications, run on TOPS-20 as well. We finally succumbed to one of the requests for a copy of Zork when we were given an account on a TOPS-20 machine on the net. After we made the necessary software modifications, of course, many copies could be made; a mailing list of Zork owners developed, so They could get whatever updates appeared.
+
=== The GDT command ===
  
Although people could get runnable Zorks, they couldn't get sources. We tried two approaches to protecting the sources (remember, there was no protection of any sort on DM): they were normally kept encrypted; and we patched the system to protect the directory where we kept the sources (named CFS, for either "Charles F. Stanley" or "Computer Fantasy and Simulation"). This worked pretty well, but was finally beaten by a system hacker from Digital: using some archaic ITS documentation (there's never been any other kind), he was able to figure out how to modify the running operating system. Being clever, he was also able to figure out how our patch to protect the source directory worked. Then it was just a matter of decrypting the sources, but that was soon reduced to figuring out the key we'd used. Ted had no trouble getting machine time; he just found a new TOPS-20 machine that was undergoing final testing, and started a program that tried every key until it got something that looked like text. After less than a day of crunching, he had a readable copy of the source. We had to concede that anyone who'd go to that much trouble deserved it. This led to some other things later on.  
+
The [[FORTRAN]] version of zork was interesting as it included a built in debugger. Depending how old they are, the question would be different.
  
Players hadn't been able to save their Zorks because the method we used at first took several hundred thousand bytes for each save, and even on a time-shared system that was excessive. Marc, around this time, invented a new way of saving that cut the size down to something more reasonable, with the slight disadvantages that any new rooms or objects added to the old game would break existing save files, and that it never quite worked right anyway. However, it did make it easier to play the game, and we still had the silly notion of being nice to our users.
+
For example some of the earlier ones look like this:
 +
<pre>
 +
.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>
 +
</pre>
  
Fall '77 saw two major additions to the game, as Marc took another break from medical school (yes, fans, he did graduate on time), and Dave got into coding in a big way. The Alice in Wonderland section, complete with its magic bucket and robot, was installed. The robot was the first "actor," an object that could perform some of the same tasks the player could. The style of address was familiar: "ROBOT, TAKE THE CAKE." The implementation of this required another change in the game's flow of control, and changes to anything else that one could reasonably talk to.  
+
And as Bob put it on a mailing list:
 +
<pre>
 +
Barney was the name of the cat I had when I did the bulk of the porting
 +
work.
  
The first version of fighting was added about the same time. Dave, an old Dungeons and Dragons player, didn't like the completely predictable ways of killing creatures off. In the original game, for example, one killed a troll by throwing a knife at him; he would catch the knife and gleefully eat it (like anything else you threw at him), but hemorrhage as a result. Dave added basically the full complexity of DD-style fighting, with different strengths for different weapons, wounds, unconsciousness, and death. Each creature had its own set of messages, so a fight with the thief (who uses a stiletto) would be very different from a fight with the troll and his axe.  
+
I'm fairly sure that 70524 was my DEC badge number.
  
As a result of the purloined sources at DEC, a lunatic there decided to translate Zork into FORTRAN. We had always assumed this would be impossible: Muddle is very (oops, very) different from FORTRAN, and much more complicated, and we'd used most of its features in designing Zork. The guy who did it was mostly a hardware person, so perhaps he didn't know what he was up against. At any rate, shortly after the Great Blizzard of '78 he had a working version, initially for PDP-11s. Since it was in FORTRAN, it could run on practically anything, and by now it has.  
+
So I guess my cat was working for DEC, indirectly.
  
Unfortunately, at some point in the preceding year we (no one will now admit to suggesting the idea) had decided to change the name of the game. Zork was too much of a nonsense word, not descriptive of the game, etc., etc., etc. Silly as it sounds, we eventually started calling it Dungeon. (Dave admits to suggesting the new name, but that's only a minor sin.) When Bob the lunatic released his FORTRAN version to the DEC users' group, that was the name he used. I'm sure many people have noticed a curious similarity between the Dungeon game they played on their friendly IBM 4341 and the Zork I they played on their equally friendly IBM PC; now you know why.
+
/Bob
 +
</pre>
  
Fortunately for us, a certain company (which shall remain nameless) decided to claim that it had trademark rights to the name Dungeon, as a result of certain games that it sold. We didn't agree (and MIT had some very expensive lawyers on retainer who agreed with us), but it encouraged us to do the right thing, and not hide our "Zorks" under a bushel.  
+
And more on the nature of GDT:
 +
<pre>
 +
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.
  
The next section that was added was intended to be the last: after a player had accumulated all the points in the game, he could play the End Game, designed largely by Dave. This became the section of Zork II with the Dungeon Master, and at the time was certainly the most involved, and hardest (as it should have been) thing in the game. The implementation was, if anything, more involved than the problem. Less than two months later, though, Marc had come up with something worse, probably during a boring anatomy lecture. The bank section has probably been fully deciphered by fewer people than anything else in the game; even those who solve it on their own don't usually understand what was going on. I can only say that it makes sense if you understand it.  
+
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.
  
For some time, we'd been getting bug reports, fan mail, and suggestions for new problems from all sorts of people. We were beginning to run a little short on ideas anyway, and one of the ideas we got was very good. During a lengthy dinner at Roy's, our favorite Chinese restaurant, we worked out the details of the jewel-encrusted egg, purple prose courtesy of Dave. Many people on the net had long since solved the game, but went back in and did any new problems that came along; one of them had played DD with Dave, and called him up about a day after the egg was announced. "I've gotten the egg opened, but I assume you losers have some nonsense where you do something with the canary and the songbird. Dave, no fool, said "Cough, cough, ahem, of course," and immediately went off and added the brass bauble.  
+
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.
  
The remaining puzzles, the Royal Zork Puzzle Museum and the palantirs, were added in the late summer and fall of 1978. The puzzle was designed (several times) primarily by Bruce, who in theory was back trying to finish his dissertation. Finding the minimum number of moves required to solve it was a popular pastime among dedicated Zorkers for a while.
+
/Bob
 
+
</pre>
The last (lousy) point was a tribute to the final point in the original Adventure, which involved leaving a particular object in a particular room for no particular reason. When we first solved Adventure in 1977, Bruce finally figured this out by using a machine-language debugger on the running game (since Adventure was not written in machine language, this was not easy). The major difference between that and our version (a stamp worth One Lousy point) is that it would be harder to find ours without the source of the game.
 
 
 
The last puzzle was added in February of '79. We (mainly I, at this point) kept fixing bugs for almost two more years -- the last mainframe update was created in January of '81. No new puzzles were added because none of the implementers had time or inclination, and because we had no more space available: at the time, we were limited to a megabyte of memory, and we had used it all up. The first article about Zork appeared in April of '79, and attracted a great deal of interest; some of this may have been because we offered to give people the game (if they didn't already have it), and gave them parts of the sacred sources as well.
 
 
 
Infocom was incorporated in 1979 by various people from the DM group, including Marc, Dave, and me. It was not founded to sell Zork; rather, it was founded to give group members somewhere to go from MIT. Marc and Joel Berez (both exiled to Pittsburgh) determined that it would be possible to make Zork run on something cheaper than the $400,000 PDP-10, and the company eventually went along. See the next NZT for further details.
 
 
 
In the meantime, we still get requests for hints on the mainframe Zork (sometimes it's called Dungeon, and often it's on something other than a PDP-10). The most recent request for a copy came in on April 1, but I think it was serious.
 
 
 
 
 
--------------------------------------------------------------------------------
 
 
 
The History of Zork -- The Final (?) Chapter: MIT, MDL, ZIL, ZIP
 
by Stu Galley
 
Special To The New Zork Times
 
The year: 1979. As Tim Anderson has recounted in previous installments in this series, Zork was one large computer game, about a megabyte in size -- as large as it could be and still fit in its original home, a DECsystem-10. Marc Blank and Dave Lebling designed and wrote the program, with the help of Bruce Daniels and Tim. They had met and worked together in a research group at M.I.T., and now the group was losing valuable talent through graduation and the lure of "the real world." Several members of the group believed that they could still produce outstanding computer-based products in almost any category -- from programming languages like MDL (an important influence on modern Lisp) to data bases, electronic mail and artificially intelligent systems -- if only centrifugal force didn't separate them.
 
 
 
The problem: What sort of product could the group work on together, and to whom could they sell it? As early as 1976, they had discussed the potential marketability of various computer games that had been designed or implemented by group members just for fun. Now their attention was focused on various potential products based on mini-computers, some involving custom hardware as well as software. The group was ignoring the potential of a mass market for micro-computers, not only from lack of experience with them (the group's unofficial motto is "We hate micros!") but also from serious concerns about software piracy.
 
 
 
Joel Berez had graduated from the group and was working in his family's business in Pittsburgh. Marc had finished medical school (and moonlighting on Zork development) and was starting his medical residency in Pittsburgh. These two had long been friends, and they liked getting together for a Chinese dinner and conversation.
 
 
 
One topic of conversation was "the good old days" at M.I.T., and one reason that the old days were good was Zork. They wished that Zork's wonderfulness (or "taste and winnage" in M.I.T. jargon) could somehow be brought to more people. But very few people had access to the large computers that could run Zork. More and more people were beginning to buy personal computers -- like the Radio Shack TRS-80 Model I or the Apple II -- but those computers were too small to run Zork. Or were they?
 
 
 
Joel and Marc began some seat-of-the-pants design work (much of it on Joel's parents' coffee table) on how much Zork could be compressed, and how to do so in a flexible way to allow for different, incompatible personal computers in the future. They considered using available "portable" tools for programming, like UCSD Pascal, but it soon became clear that Zork had too much text in it. (Keep in mind that a standard personal computer at this time came with 16K bytes of memory and no disk drive.) They finally concluded that, by inventing a programming system specifically for Zork, they could fit about half of it into a computer with 32K bytes of memory and one floppy-disk drive.
 
 
 
Meanwhile, the group at M.I.T. was in the process of forming a corporation -- choosing "Infocom" as the name least offensive to everyone -- and searching for a project that would quickly produce a product to start generating income for the company. Among the projects they considered were systems for keeping track of documents, handling electronic correspondence, and processing text. When Zork was added to the list of possibilities, Joel and Marc worked intensively during the summer and autumn creating the programming tools for their design. And they had to work for IOUs, since the company treasury -- which started with only $11,500 -- could afford to pay only for the hardware they needed at the time.
 
 
 
The key to their design was an imaginary computer chip called the "Z-machine." This chip would be able to run Zork (or at least part of it) if the program were coded in a special, very compact language. Then the design called for each personal computer to have a program (called a Z-machine Interpreter Program or ZIP) that would interpret the special Z-machine language and make the computer act the same way that a real Z-machine would. In order to get Zork written in this special language, another language was invented, called Zork Implementation Language (ZIL), similar in many ways to MDL. Marc built a two-stage translator program that would translate a ZIL program, first into an assembly language and then further into the Z-machine language. He also built a ZIP so that a DECsystem-20 could emulate the Z-machine.
 
 
 
There was still the problem of cutting Zork in half. Dave examined his complete map of Zork and drew a boundary around a portion that included about 100 or so locations: everything "above ground" and a large section surrounding the Round Room. The object was to create a smaller Zork that would fit within the constraints established by the design of Joel and Marc. Whatever wouldn't fit was to be saved for another game, another day.
 
 
 
In the process of being converted from MDL into ZIL, the program became "cleaner" and friendlier. The geographies of the maze and the coal mine were simplified so that the connections were less arbitrary, and in other places complexity was removed whenever it didn't serve a justifiable purpose. For example, there was originally a barrel sitting near the top of Aragain Falls, but it was just a red herring; its only purpose was to lure unsuspecting adventurers inside and carry them over the falls to destruction. The Rainbow Room had its name changed to On the Rainbow, and that meant removing the silly joke about Rockefeller Center and the NBC Commissary. Since the Land of the (Living) Dead (the word "Living" was removed in order to fit the name on the status line) no longer led to the stairway where Zork III later began, the crystal skull (a brand-new treasure) was put there instead.
 
 
 
By late 1979, Joel and Marc had both moved back to Boston. Joel had been elected president of Infocom and started business school, and Zork I was shaping up as Infocom's first product. Zork I first saw the light of day on a DECsystem-20 on which the company was renting time, then on the PDP-11 in Joel's bedroom. Scott Cutler (who had graduated from the group a couple of years before) used his TRS-80 Model II to create a ZIP for a TRS-80 Model I. As 1980 dawned, Infocom spent a large portion of its bank account to purchase a Model I, and Scott and Marc demonstrated that Zork I was alive in it by starting the game and actually collecting points with the incantation "N.E.OPEN.IN." (It's certainly no less inspiring than "Come here, Mr. Watson; I want you!")
 
 
 
Mike Dornbrook was enlisted to test Zork I for bugs and other bad features, because he had some experience with computers but no experience with the original Zork, exactly like our intended audience. (One of his contributions was the alternate -- and, some say, more logical -- solution to the Loud Room puzzle, which was added only after the first users of Zork I asked so often for hints for that puzzle.) He played it so much that he memorized the entire geography, and he fell in love with the game. He was convinced that it would attract a cult following, although others thought it would last maybe a year on the market and then fade away, like a video game. He urged the company to start planning spin-off products, like maps, hints, posters, T-shirts, etc. So the first published release of Zork I had another feature added, a "small piece of paper" in the artist's studio that said something like "Write to Infocom, P.O. Box 120, Cambridge, Mass. 02142 for info on other products, including Movement Assistance Planners (M.A.P.s) and Hierarchical Information for Novice Treasure Seekers (H.I.N.T.S.)." Besides leaving the door open for an after-market in Zork accessories, we wanted to start building a mailing list of customers for future direct mailings (like the one you are reading!).
 
 
 
Now that the company had a flesh-and-blood product, how could a small group of hackers market and sell it? One possibility was to produce it ourselves and distribute it through computer chain stores. But that meant devoting time and energy to finding suppliers, producing packages, supporting users, and so on. Another possibility was to contract with a software publisher, but which one? Joel contacted Microsoft, but they were already publishing the original "Colossal Cave" adventure game -- the one that inspired Zork -- and by the time Zork fan Bill Gates heard of our offer, Infocom was deep in negotiations with Personal Software Inc. (PS).
 
 
 
PS had several good features: it was the first true publisher of software developed by others; it was the leading publisher of computer games at the time; and it had strong ties to Software Arts Inc., where VisiCalc was invented (_requiescant_in_pace_), and where Zork I was demonstrated in February 1980. PS agreed in June to publish Zork I and sent us an advance on royalties, our first bonafide income! Sales began in December, and over the next nine months PS sold about 1500 copies of the TRS-80 version. *
 
 
 
Also in June, we paid for a search of trademark records in preparation for registering "Zork" as our own trademark. We discovered that Mattel Inc. had registered "Mighty Zork" in 1973 for a toy model motorcycle, but that registration was cancelled in October 1979. Other trademarks discovered in the search were the likes of Zorr, Zorak, Zark, and Zowees (all by Mattel); Zogg, Zon, Zak, Zok, Zot, Zonk, and Zerak; and variations on Mork and Ork (by Paramount Pictures). Not to mention the Zork Hardware Company of El Paso and Albuquerque.
 
 
 
We had another product in which PS had no interest: the PDP-11 version of Zork I. We sent product announcements to various places, including a newsletter for PDP-11 users, and as a result, the first copy of Zork I sold was a PDP-11 version! It came on an eight-inch floppy disk with a manual that I wrote and Joel had reproduced from a typewritten master.
 
 
 
By the end of 1980, the version of ZIP for the Apple II had been created by Bruce, who had designed puzzles for the original Zork before graduating from M.I.T. and going to work for Apple Computer Inc. Apple Zork I proved more popular than the TRS-80 version; PS sold over 6000 copies in eight months.
 
  
The first press reviews of Zork I were encouraging. In February 1981, BYTE magazine said, "No single advance in the science of Adventure has been as bold and exciting as the introduction of Personal Software Inc.'s Zork, The Great Underground Empire. . . . That the program is entertaining, eloquent, witty, and precisely written is almost beside the point. Unlike the kingdoms of the Adventures for machines with 16K bytes of memory and far from the classic counter-earthiness of the Colossal Cave in the original Adventure, Zork can be felt and touched -- experienced, if you will -- through the care and attention to detail the authors have rendered. .. . . [A] most excellent and memorable work of computerized fiction."
+
== Interrupters ==
  
Mike Dornbrook was enlisted again to fulfill mail orders for personalized hints. Joel collected orders from the post office box, passed orders for maps and posters to his Significant Other for fulfillment, gave requests for hints to Mike, and gave me the numerous small checks to deposit in the bank. Mike created personalized hints off the top of his head, typing them on an old office typewriter. (When Mike started business school in September 1981, he founded a separate company, the Zork User's Group, and took over all mail-order sales. Only then did he computerize the operation. In 1983, Mike came back to work for Infocom, bringing Z.U.G. with him.)
+
=== InfoTaskForce ===
  
Meanwhile, Dave was designing Zork II. At first, the most straightforward approach seemed to be to use everything left out of Zork I and simply convert it from MDL to ZIL. But Dave's active imagination kept inventing new puzzles that virtually begged to be implemented. So the final design left out the Royal Puzzle and the "end-game" (both to appear in Zork III) and instead included the Wizard of Frobozz, the garden, and the new diamond maze. (The last was re-oriented to the compass based on Mike's belief that "southpaw" should be a hint.) The last of the original puzzles -- the long slide and "sending for the brochure" -- were left out of Zork III and didn't reappear until Sorcerer.  
+
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].
  
Zork II was offered to PS in April and licensed in June 1981, about the same time that Joel graduated and became Infocom's first salaried employee. But we had serious concerns about PS's commitment, even to Zork I. After an initial rush of advertising, Zork I seemed to join PS's range of products as just another game. We were eager to make new versions and new titles -- including Zork III, "Zork: the Mystery" (Deadline), and "Zorks in Space" (Starcross) -- but not if our publisher wasn't also eager. The fact was that PS was planning to drop its line of entertainment software -- since their titles neither sold well over the long term nor brought in enough money to satisfy them -- and to change its name to Visicorp in order to identify closely with its "Visi-" series of business products. **
+
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
  
It now appeared that we had two choices: to negotiate and contract with another publisher (and to hope for more satisfaction), or to take the plunge and become a publisher. We definitely preferred the second choice, but that required office space, production facilities, an advertising agency, and so on -- and most of all, money. But we threw caution to the wind, and hired Mort Rosenthal (who later founded Corporate Software Inc.) as marketing manager, who found a time-shared office in Boston's venerable Faneuil Hall Marketplace, a time-shared production plant in Randolph, an ad agency in Watertown, an order-taking service in New Jersey, a supplier of disks in California, and so on. The money came both from the company's founders and from a bank loan that they personally guaranteed.
+
=== Pinfocom ===
  
We announced Zork II and our new role as publisher with a Christmas promotion as eye-catching as we could afford. Thanks to our ad agency, we had a new style of packaging for both Zorks (the stone-built letters that are still in use), a counter display for stores, ads in major computer magazines, and direct-mail ads for dealers. We also bought PS's entire inventory of Zork I (except the TRS-80 version, which they still wanted to sell) to prevent them from "dumping" it on the market at bargain prices and lowering the public's image of "Zork" in general. Our first shipment went out just in time for Christmas sales.
+
Pinfocom is a fork from InfoTaskForce, I'd guess version 3?
  
On New Year's Day 1982, we moved the company to larger space at the far end of Cambridge -- 55 Wheeler Street. Now we had office space for everyone, especially for Marc (now vice-president for product development) to finish Zork III. And we had enough space to set up all the personal computers -- instead of shuffling them from one person's home to another -- for testers to use, and for programmers to create or adapt ZIPs for Atari, CP/M, IBM PC, and other machines. Zork III was finished in the autumn, about the same time that the company began hiring people to begin developing its first business product. But that's another story. 
+
== See Also ==
  
* Zork I came under the wing of PS's New Products Manager, a fellow named Mitch Kapor, who later founded Lotus Development Corp.
+
* [[Zork hints]]
  
* In December 1984, after a long legal tangle with Software Arts over VisiCalc, Visicorp eventually merged into one of its own spin-off companies and disappeared.
+
[[Category:Games]]

Latest revision as of 07: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