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 <> 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.