Original Fortran source code for Zork

Simon Morgan c5dbb9723f Initial import %!s(int64=7) %!d(string=hai) anos
actors.F c5dbb9723f Initial import %!s(int64=7) %!d(string=hai) anos
actors.for c5dbb9723f Initial import %!s(int64=7) %!d(string=hai) anos
advers.h c5dbb9723f Initial import %!s(int64=7) %!d(string=hai) anos
ballop.for c5dbb9723f Initial import %!s(int64=7) %!d(string=hai) anos
blkdata.for c5dbb9723f Initial import %!s(int64=7) %!d(string=hai) anos
clock.h c5dbb9723f Initial import %!s(int64=7) %!d(string=hai) anos
clockr.for c5dbb9723f Initial import %!s(int64=7) %!d(string=hai) anos
curxt.h c5dbb9723f Initial import %!s(int64=7) %!d(string=hai) anos
debug.h c5dbb9723f Initial import %!s(int64=7) %!d(string=hai) anos
demons.for c5dbb9723f Initial import %!s(int64=7) %!d(string=hai) anos
dgame.for c5dbb9723f Initial import %!s(int64=7) %!d(string=hai) anos
dindx.dat c5dbb9723f Initial import %!s(int64=7) %!d(string=hai) anos
dinit.for c5dbb9723f Initial import %!s(int64=7) %!d(string=hai) anos
dmain.for c5dbb9723f Initial import %!s(int64=7) %!d(string=hai) anos
dso1.for c5dbb9723f Initial import %!s(int64=7) %!d(string=hai) anos
dso2.for c5dbb9723f Initial import %!s(int64=7) %!d(string=hai) anos
dso3.for c5dbb9723f Initial import %!s(int64=7) %!d(string=hai) anos
dso4.for c5dbb9723f Initial import %!s(int64=7) %!d(string=hai) anos
dso5.for c5dbb9723f Initial import %!s(int64=7) %!d(string=hai) anos
dso6.for c5dbb9723f Initial import %!s(int64=7) %!d(string=hai) anos
dso7.for c5dbb9723f Initial import %!s(int64=7) %!d(string=hai) anos
dsub.for c5dbb9723f Initial import %!s(int64=7) %!d(string=hai) anos
dtext.dat c5dbb9723f Initial import %!s(int64=7) %!d(string=hai) anos
dverb1.for c5dbb9723f Initial import %!s(int64=7) %!d(string=hai) anos
dverb2.for c5dbb9723f Initial import %!s(int64=7) %!d(string=hai) anos
errors c5dbb9723f Initial import %!s(int64=7) %!d(string=hai) anos
exits.h c5dbb9723f Initial import %!s(int64=7) %!d(string=hai) anos
flags.h c5dbb9723f Initial import %!s(int64=7) %!d(string=hai) anos
gamestat.h c5dbb9723f Initial import %!s(int64=7) %!d(string=hai) anos
gdt.for c5dbb9723f Initial import %!s(int64=7) %!d(string=hai) anos
history c5dbb9723f Initial import %!s(int64=7) %!d(string=hai) anos
io.h c5dbb9723f Initial import %!s(int64=7) %!d(string=hai) anos
lightp.for c5dbb9723f Initial import %!s(int64=7) %!d(string=hai) anos
makefile c5dbb9723f Initial import %!s(int64=7) %!d(string=hai) anos
mindex.h c5dbb9723f Initial import %!s(int64=7) %!d(string=hai) anos
nobjs.for c5dbb9723f Initial import %!s(int64=7) %!d(string=hai) anos
np.for c5dbb9723f Initial import %!s(int64=7) %!d(string=hai) anos
np1.for c5dbb9723f Initial import %!s(int64=7) %!d(string=hai) anos
np2.for c5dbb9723f Initial import %!s(int64=7) %!d(string=hai) anos
np3.for c5dbb9723f Initial import %!s(int64=7) %!d(string=hai) anos
nrooms.for c5dbb9723f Initial import %!s(int64=7) %!d(string=hai) anos
objcts.for c5dbb9723f Initial import %!s(int64=7) %!d(string=hai) anos
objects.h c5dbb9723f Initial import %!s(int64=7) %!d(string=hai) anos
oflags.h c5dbb9723f Initial import %!s(int64=7) %!d(string=hai) anos
oindex.h c5dbb9723f Initial import %!s(int64=7) %!d(string=hai) anos
parser.h c5dbb9723f Initial import %!s(int64=7) %!d(string=hai) anos
puzzle.h c5dbb9723f Initial import %!s(int64=7) %!d(string=hai) anos
read.me c5dbb9723f Initial import %!s(int64=7) %!d(string=hai) anos
readit.c c5dbb9723f Initial import %!s(int64=7) %!d(string=hai) anos
readme c5dbb9723f Initial import %!s(int64=7) %!d(string=hai) anos
readme.src c5dbb9723f Initial import %!s(int64=7) %!d(string=hai) anos
rflag.h c5dbb9723f Initial import %!s(int64=7) %!d(string=hai) anos
rindex.h c5dbb9723f Initial import %!s(int64=7) %!d(string=hai) anos
rooms.for c5dbb9723f Initial import %!s(int64=7) %!d(string=hai) anos
rooms.h c5dbb9723f Initial import %!s(int64=7) %!d(string=hai) anos
rtim.for c5dbb9723f Initial import %!s(int64=7) %!d(string=hai) anos
screen.h c5dbb9723f Initial import %!s(int64=7) %!d(string=hai) anos
sobjs.for c5dbb9723f Initial import %!s(int64=7) %!d(string=hai) anos
state.h c5dbb9723f Initial import %!s(int64=7) %!d(string=hai) anos
sverbs.for c5dbb9723f Initial import %!s(int64=7) %!d(string=hai) anos
tempfile c5dbb9723f Initial import %!s(int64=7) %!d(string=hai) anos
verbs.for c5dbb9723f Initial import %!s(int64=7) %!d(string=hai) anos
verbs.h c5dbb9723f Initial import %!s(int64=7) %!d(string=hai) anos
villians.h c5dbb9723f Initial import %!s(int64=7) %!d(string=hai) anos
villns.for c5dbb9723f Initial import %!s(int64=7) %!d(string=hai) anos
vocab.h c5dbb9723f Initial import %!s(int64=7) %!d(string=hai) anos
xpars.h c5dbb9723f Initial import %!s(int64=7) %!d(string=hai) anos
xsrch.h c5dbb9723f Initial import %!s(int64=7) %!d(string=hai) anos

readme

This is a source file distribution for the game dungeon as implemented
in f77 for Unix(R) systems. It is based on the game dungeon as
distributed on a DECUS tape, circa 1980. It has been converted from
the original DEC FORTRAN into something that is palatable to Unix f77.
See the file "History" for some revision history and credit to those
whose efforts have made this possible.

Checkout the Makefile and adjust it to fit your system. The only
things that should really need tweaking are the directory definitions
and the "-D" defines. There is an example for both large address
machines (e.g. Vax) that get the complete game and small address
machines (e.g. Pdp-11) that get a modified game with minor functionality
missing (to get it to fit). Also edit the include file "files.h" if
necessary.

All of the f77 files end in a '.F' extension to force f77 to invoke the
C preprocessor for the #include files and #ifdefs. Most of the #ifdefs
are for the PDP version (default non-pdp) and for debug (default off).

Except for DTEXT.DAT, all files in the distribution kit are ASCII.
DTEXT.DAT is a binary file consisting of 76-byte fixed length records.

This has been compiled and tested on a PDP-11/44 Version 7, PDP-11/70
2.9bsd Vax-11/785 4.3bsd and Sun-3 before the pdp and Vax sources were
merged (see the file "History"). After the merge it was again tested on
the Vax 11-785 4.3bsd.

I/we consider my/our changes to be in the public domain. The original
source, however, is copyright.

John Gilmore, Nebula Consultants
hoptoad!gnu
11 December 1986

Bill Randle
Tektronix, Inc.
billr@tekred.TEK.COM
9 February 1987

Dungeon consists of the following files:

dmain.F -program root
dgame.F -main routine
dsub.F -resident subroutines
dinit.F -initialization routine
np.F -parser, part 0
np1.F -parser, part 1
np2.F -parser, part 2
np3.F -parser, part 3
gdt.F -game debugging tool
verbs.F -principal verbs
objcts.F -principal objects
sverbs.F -simple verbs
dverb1.F -auxiliary verbs, part 1
dverb2.F -auxiliary verbs, part 2
actors.F -character processors
demons.F -demon processors
clockr.F -clock event processors
rooms.F -room processors
nrooms.F -new room processors
sobjs.F -simple objects
nobjs.F -new objects
ballop.F -balloon processor
lightp.F -light processors
villns.F -villain processors
dso1.F -overlaid subroutines, part 1
dso2.F -overlaid subroutines, part 2
dso3.F -overlaid subroutines, part 3
dso4.F -overlaid subroutines, part 4
dso5.F -overlaid subroutines, part 5
dso6.F -overlaid subroutines, part 6
dso7.F -overlaid subroutines, part 7
advers.h -header file
clock.h -header file
curxt.h -header file
debug.h -header file
exits.h -header file
files.h -header file for directory paths
flags.h -header file
gamestate.h -header file
io.h -header file
objects.h -header file
oflags.h -header file
oindex.h -header file
parser.h -header file
puzzle.h -header file
rflag.h -header file
rindex.h -header file
rooms.h -header file
screen.h -header file
state.h -header file
verbs.h -header file
villians.h -header file
vocab.h -header file
xpars.h -header file
xsrch.h -header file
cinit.c -C routine to initialize game [pdp ver]
cio.c -C routine for misc i/o [pdp version]
rtim.c -C routines for system dependent functions
listen.c -C co-process for reading keyboard [pdp]
cspeak.c -C co-process for displaying messages [pdp]
speak.F -lookup messages for speak process [pdp]
decode.c -C routine to decode binary text file [debug]
dindx.dat -initialization data base
dtext.dat -main data base [binary file]
rtext.dat -message index file [pdp version]
dungeon.sh -shell script to invoke pdp version
dungeon.doc -original documentation file
dungeon.6 -man page abstracted from dungeon.doc
Makefile -Makefile for making pdp or vax versions
History -Some revision history notes
PDP.doc -Notes on the PDP-11/Unix conversion
README -This file