The DUNGEON (Zork I) source

J.W.F. (he/him) c44f046a12 stop reused integers from being optimized out (#14) 3 years ago
.gitignore 0680b48f9a added gitignore 11 years ago
Makefile 95b1fd1fee Makefile - Also make manpages directory (#6) 7 years ago
README.md 4f0665ede4 updated readme 11 years ago
actors.c c7ef476c6b initial commit 11 years ago
ballop.c c7ef476c6b initial commit 11 years ago
clockr.c c7ef476c6b initial commit 11 years ago
demons.c c7ef476c6b initial commit 11 years ago
dgame.c c7ef476c6b initial commit 11 years ago
dinit.c c7ef476c6b initial commit 11 years ago
dmain.c c7ef476c6b initial commit 11 years ago
dso1.c c7ef476c6b initial commit 11 years ago
dso2.c c7ef476c6b initial commit 11 years ago
dso3.c c7ef476c6b initial commit 11 years ago
dso4.c c7ef476c6b initial commit 11 years ago
dso5.c c7ef476c6b initial commit 11 years ago
dso6.c c7ef476c6b initial commit 11 years ago
dso7.c c7ef476c6b initial commit 11 years ago
dsub.c c7ef476c6b initial commit 11 years ago
dtextc.dat c7ef476c6b initial commit 11 years ago
dungeon.6 c7ef476c6b initial commit 11 years ago
dverb1.c c7ef476c6b initial commit 11 years ago
dverb2.c c7ef476c6b initial commit 11 years ago
funcs.h c7ef476c6b initial commit 11 years ago
gdt.c c7ef476c6b initial commit 11 years ago
history c7ef476c6b initial commit 11 years ago
lightp.c c7ef476c6b initial commit 11 years ago
local.c c7ef476c6b initial commit 11 years ago
nobjs.c c7ef476c6b initial commit 11 years ago
np.c c7ef476c6b initial commit 11 years ago
np1.c c44f046a12 stop reused integers from being optimized out (#14) 3 years ago
np2.c c7ef476c6b initial commit 11 years ago
np3.c c7ef476c6b initial commit 11 years ago
nrooms.c c7ef476c6b initial commit 11 years ago
objcts.c c7ef476c6b initial commit 11 years ago
parse.h c7ef476c6b initial commit 11 years ago
readme.txt c7ef476c6b initial commit 11 years ago
rooms.c c7ef476c6b initial commit 11 years ago
sobjs.c c7ef476c6b initial commit 11 years ago
supp.c c7ef476c6b initial commit 11 years ago
sverbs.c c7ef476c6b initial commit 11 years ago
vars.h c7ef476c6b initial commit 11 years ago
verbs.c c7ef476c6b initial commit 11 years ago
villns.c c7ef476c6b initial commit 11 years ago

README.md

Welcome to Dungeon.			This version created 11-MAR-91.
You are in an open field west of a big white house with a boarded
front door.
There is a small mailbox here.
>

DUNGEON (Zork I)

Public Domain source code to the original DUNGEON game (Zork I). Released to the PD by Infocom. Includes source files, headers, and information.

$ make

History of the C Implementation of Dungeon

This version of dungeon has been modified from FORTRAN to C. The original was written in DEC FORTRAN, translated from MDL. It was then translated to f77 for UN*X systems, from which it was translated to C. The C translation was done with the help of f2c, the FORTRAN to C translator written by David Gay (AT&T Bell Labs), Stu Feldman (Bellcore), Mark Maimone (Carnegie-Mellon University), and Norm Schryer (AT&T Bell Labs).

I. From the original documentation...

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.

Summary

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.

II. DEC FORTRAN to f77 Conversion (17-nov-81)

The conversion from DEC FORTRAN to Unix f77 was done by Randy Dietrich, Lynn Cochran and Sig Peterson. Much hacking was done to get it to fit in the limited address space of a PDP-11/44 (split I/D). Suffice it to say that by leaving out the debugging package and not linking in the f77 i/o library they managed to get it to run.

III. PDP to VAX (dec-85)

Based on the work of Randy, Lynn and Sig, Bill Randle folded in the full save/restore functions and the game debugging package (gdt) into the pdp version to create a Vax/Unix version. This version also uses f77 i/o, thus eliminating the extra speak and listen processes needed on the pdp.

IV. Cleanup I (11-dec-86)

John Gilmore (hoptoad!gnu) cleaned up the source files by moving most of the common declarations into include files and added comments from the original (FORTRAN or MDL?) source. His efforts are greatly appreciated.

V. Cleanup II (9-feb-87)

Bill Randle (billr@tekred.tek.com) added the pdp dependencies back into the Vax source files with #ifdefs in order to have just one set of sources. Previously, there were two sets of source: one for the pdp and one for the Vax. In addition, a shell escape of the form !cmd was added and the wizard can enter the gdt without having to recompile the source. Finally, a man page was generated, based on the dungeon.doc file.

VI. f77 to C (11-mar-91)

Ian Lance Taylor (ian@airs.com or uunet!airs!ian) used the f2c translator to generate C source code. The resulting code was modified to remove the FORTRAN I/O library, to add simple more processing, and to change the format of the database file. Andre Srinivasan (andre@cs.pitt.edu) help test it. Jonathan Mark (uunet!microsoft!jonm) made it work under MS-DOS and Microsoft C.