Adventure was the very first text adventure, written by Will Crowther and
Don Woods, circa 1977. The original (which had a maximum score of 350
points) has been modified and extended by many people.

Presented here is an extended 551 point version of Adventure, by David Long
and Doug McDonald. This port has an Amiga specific front-end, with proper
command line editing, a command line history (use the cursor up/down keys to
step through previously entered commands) and file requesters for the save
and restore operations. It requires at least Kickstart 2.04. The porting was
performed by

	David Kinder
	kinder@teaching.physics.ox.ac.uk

What follows is the original description from the source archive:



`Generic Adventure 551' is a cleaned up and enhanced version of the 
old classic text game `Adventure'. It is based on a version close to the
seriously non-portable (and buggy) version for Primes posted last spring. I 
have done a fair job of cleaning it up, portabilizing it, and debugging, but
it is still Fortran spaghetti. For you with no Fortran compilers, this is
the excuse you need to get "f2c" working!!! It has worked on the IBM-PC,
VMS, the MIPS 120, the IBM RISCstation 600, the VAX/Ultrix, and a Prime. It
will however expose toy Fortran compilers as just that - toys. I would like
to  thank Larry Estep for finding some hidden bugs.

For those that have not experienced this, the very first text adventure
game, it is a romp through the darkest reaches of Colossal Cave in search of
riches. You will find evocative descriptions of the darker, more mysterious
places of the earth, and severely test your abilities to map the
contortions of the cave. You will find some hard - and some deceptively
easy - puzzles to solve.

Doug McDonald



This is the hopefully portable ADVENTURE 551 program. Its BETA!!!!!
I've tested it as well as I can, but you never know!!!! It comes as three
Fortran files, aamain.f, the main game program; asetup.f, a program that 
reads the ASCII data file ADVDAT and makes a runtime data file ADVTXT;
asubs.f, that needs to be liked with each of the above; and ADVDAT,
the ASCII data file itself (note all caps for Unix users). 

It is based on the old old old Fortran one posted recently in comp.sources.
games - or rather one very close to that. I added a small piece of game,
and the version I started from was lacking a tiny (and uncompleted) part.
But mostly I fixed bugs. Oh! My! What a mess it was. You think it is
bad now? Well, it is still F66 spaghetti, but previously it was full
of Holleriths, system dependencies, and just plain bugs. Code bugs,
game bugs, out of range subscripts ad nauseum. I played it to
completion, and got all 551 points. That means it is possible to win. But
it does NOT guarantee no bugs - as I found a bad one just playing it
this last time. So have other testers. The only blatent non-portability
is that it assumes ASCII. 

For Unix people with Fortran, first make sure that the file is ADVDAT,
all upper case, make sure the name of your Fortran compiler is right in the
makefile and then type 'make'. To play, type "adventure".

If your Unix system lacks the MIL std Fortran functions ior, ieor, and iand,
you'll have to make up some with whatever bit functions you do have.
It's up to you. These functions just take two integer variables and
return the appropriate bitwise functions OR, XOR, and AND. If you get them
wrong the asetup program will die at section 9 of the data file. 

For folks on MS-DOS, rename the .f files to .for. Then compile and link
asetup with asubs to make asetup.exe. Make SURE to have your Fortran
compiler use 4-byte integers!!! (Use /4I4 for Microsoft Fortran).  Run
asetup.exe. Then compile aamain.for and link with asubs.obj to make
aamain.exe. Rename aamain.exe to "adventure" and play the game.

For VMS folks, do as MS-DOS except that you have to add ".dat" to the advdat
filename, and compile with /check=noover. This last is necessary as the
random number generator actually depends on overflows.

For folks with Unix systems and no (or broken!!! - Sun 3's) Fortran
compilers, it works with the "f2c" program available from research.att.com.
This took me a bit of work on our Mips machine. It is easy to generate the
f2c program and its two libraries libF77 and libI77 but it didn't link
right. The solution was to use the librarian (ar) to make a single library
libF2C with all the .o files from BOTH libraries, put that in the directory
you are working with and tell cc to use that as an ordinary object file i.e.
f2c *.f
<<edit iors.c as instructed in the iors.f file!!!!!>>
cc -c *.c
cc asetup.o asubs.o iors.o libF2C -lm -lc
a.out
cc aamain.o asubs.o iors.o libF2C -lm -lc
mv a.out adventure

(Note the lack of a -l before the libF2C - read the READMEs that
come with f2c.)

then just play! I suppose I could distribute the .c files f2c produces,
but the main problem is that I would also have to distribute the libs,
which are the big problem anyway.

It hopefully will just work. There are two places to look at the
source code: First, look in asubs.f for the string ?????, which occurs
twice. Thereabouts is code which works on VMS, the IBM-PC, and f2c to allow 
you to get a prompt on the same line as your response. It fails miserably in
F77 on my MIPS Unix machine. If you can make this or some other prompting
mechanism work on your machine, PLEASE report it to me. Second, in aamain.f
look for the the string ?????. There you can uncomment a line to activate
Wizard mode, which allows a modest amount of cheating. Uncautious use
of it, however, can prevent actually winning.

This version compiles and runs using f77 on a MIPS unix box, on the VAX
using VMS VAX Fortran or using Ultrix and its Fortran compiler (though you
must supply the bitwise functions), on the IBM PC using either the MicroWay
386  32-bit compiler or Microsoft Fortran 4.1 in large model, and on the IBM
Riscstation 6000.

It compiles but does NOT run on a Sun 3 (with a F77 compiler with a 1988
date) due to the compiler simply being unable (with no help from 
switches) to compile correctly the main program. Tests indicate that
this compiler barfs on files with much more than 400 lines of significant
code. If anybody can get it to run on a Sun 3, please let me know how.
I find it hard to believe that they would let out a compiler this limited.

Doug McDonald (mcdonald@aries.scs.uiuc.edu)

Adventurer Grandmaster!!!
(its not easy, even if you do read the source code)



Finally, buried deep within the game is the following history of this
version of Adventure:

ADVENTURE was originally developed by William Crowther, and later
substantially rewritten and expanded by Don Woods at Stanford Univ.
According to legend, Crowther's original version was modelled on an a real
cavern, called Colossal Cave, which is a part of Kentucky's Mammoth Caverns.
That version of the game included the main maze and a portion of the third-
level (Complex Junction - Bedquilt - Swiss Cheese rooms, etc.), but not much
more. Don Woods and some others at Stanford later rewrote portions of the
original program, and greatly expanded the cave.  That version of the game
is recognizable by the maximum score of 350 points. Some major additions
were done by David Long while at the University of Chicago, Graduate School
of Business. Long's additions include the seaside entrance and all of the
cave on the "far side" of Lost River (Rainbow Rm - Crystal Palace - Blue
Grotto, etc.). The castle problem was added in late 1984 by an anonymous
writer. Thanks are owed to Roger Matus and David Feldman, both of U. of C.,
for several suggestions, including the Rainbow Room, the telephone booth and
the fearsome Wumpus. Most thanks (and apologies) go to Thomas Malory,
Charles Dodgson, the Grimm Brothers, Dante, Homer, Frank Baum and especially
Anon., the real authors of ADVENTURE.
