[net.sources.bugs] zork sources

gnu@l5.uucp (John Gilmore) (11/13/85)

In article <138@amc.UUCP>, jon@amc.UUCP (Jon Mandrell) writes:
> The Fortran source and data files were distributed on the CP/M user
> group volumes, which means that they seem to be in the public domain.

This is true.  I searched the SIG/M archives on SIMTEL20 on the Arpanet
and found Dungeon, the predecessor of Zork, in volumes 45, 46, and 47.
You can ftp them from directories PD:<SIGM.VOL045>, 46, and 47.  You
have to ftp a bunch of separate files from each directory.  One file
(DTEXT.DAT) must be ftp'd in IMAGE mode; the rest are ASCII.  See the file
PD:<SIGM>SIGM.CRCLST for more information.

The sources are in Fortran and for various PDP-11 operating systems
(not Unix).  I haven't tried to recompile them for Unix and the author
thinks it would be hard.  An [abstracted] note from the author follows.

I am willing for people to call my system to uucp the sources, but you
must set up a direct uucp link; I won't pass them thru anybody else.
The sources are about 750K.  This is designed to discourage everyone but
the people most interested in porting it [if any].  Send me mail
{ihnp4,sun,lll-crg,ptsfa,nsc}!l5!gnu if you are interested.

--------
To:	Dungeon Players
From:	"The Translator"
Subj:	Game Information
Date:	8-OCT-80

This is the first (and last) source release of the PDP-11 version of 
Dungeon.

Please note that Dungeon has been superceded by the game ZORK(tm).
The following is an extract from the new product announcement for
ZORK in the September, 1980 issue of the RT-11 SIG newsletter:

  "'ZORK:  The Great Underground Empire - Part I' ...was developed
   by the original authors based on their ZORK (Dungeon) game for
   the PDP-10.  It features a greatly improved parser;  command
   input and transcript output files;  SAVEs to any device and
   file name;  and adaptation to different terminal types,
   including a status line on VT100s.  Note:  this is not the
   FORTRAN version that has been available through DECUS.  This
   version has been completely rewritten to run efficiently on
   small machines - up to 10 times as fast as the DECUS version.

   ...ZORK runs under RT-ll, HT-ll, or RSTS/E and requires as
   little as 20K words of memory and a single floppy disk drive.
   The game package, consisting of an RX01-format diskette and
   an instruction booklet, is available from Infocom, Inc.,
   P.O. Box 120, Kendall Station, Cambridge, Ma. 02142."

ZORK(tm) is a trademark of Infocom, Inc.  It is available for several
popular personal computers as well as for the PDP-ll.


1.  Components

Dungeon is a maze-solving game for solitaire play.  It runs on any PDP-11
(with 28KW of memory or more) or VAX-11.  [...It runs under RT11,
RSTS/E, RSX11M, RSX11M+, or VMS.]

6.  Warnings and Restrictions

For those familiar with the MDL version of the game on the ARPAnet,
the following is a list of the major incompatabilties:

	-The first six letters of a word are considered
	 significant, instead of the first five.
	-The syntax for TELL, ANSWER, and INCANT is different.
	-Compound objects are not recognized.
	-Compound commands can be delimited with comma as well
	 as period.

Also, the palantir, brochure, and dead man problems are not
implemented.

...

   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.

...

- Converting the game to another processor is not a straightforward
  procedure.  The game makes heavy use of extended and/or
  idiosynchratic features of PDP-11 Fortran.  Particular nasties
  include the following:

  > The game vocabulary is stored in Radix-50 notation.

  > The game uses the extended I/O commands OPEN and CLOSE.

  > The game uses LOGICAL*1 variables for character strings.

  > The game uses logical operators on integers for bitwise binary
    operations.

  > The game treats certain arrays and variables as unsigned
    16-bit integers (integer overflow may occur).

  In general, the game was implemented to fit in memory, not to be
  transported.  You're on your own, friend!