adventure: Initial commit
[pdp8.git] / sw / adventure / ADVENT.FT
diff --git a/sw/adventure/ADVENT.FT b/sw/adventure/ADVENT.FT
new file mode 100644 (file)
index 0000000..cecb72b
--- /dev/null
@@ -0,0 +1,106 @@
+C      ADVENTURES\r
+C\r
+C MODIFIED BY  KENT BLACKETT\r
+C              ENGINEERING SYSTEMS GROUP\r
+C              DIGITAL EQUIPMENT CORP.\r
+C              15-JUL-77\r
+C MODIFIED BY  BOB SUPNIK\r
+C              DISK ENGINEERING\r
+C              21-OCT-77\r
+C MODIFIED BY  BOB SUPNIK\r
+C              DISK ENGINEERING\r
+C              25-AUG-78\r
+C MODIFIED BY  BOB SUPNIK\r
+C              SMALL SYSTEMS\r
+C              12-NOV-78\r
+C ORIGINAL VERSION WAS FOR DECSYSTEM-10\r
+C NEXT VERSION WAS FOR FORTRAN IV-PLUS UNDER\r
+C THE IAS OPERATING SYSTEM ON THE PDP-11/70\r
+C THIS VERSION IS FOR FORTRAN IV (V01C OR LATER)\r
+C UNDER RT-11 ON *ANY* PDP-11\r
+C\r
+C\r
+C  CURRENT LIMITS:\r
+C      750 TRAVEL OPTIONS (TRAVEL, TRVSIZ).\r
+C      300 VOCABULARY WORDS (KTAB, ATAB, TABSIZ).\r
+C      150 LOCATIONS (LTEXT, STEXT, KEY, COND, ABB, ATLOC, LOCSIZ).\r
+C      100 OBJECTS (PLAC, PLACE, FIXD, FIXED, LINK (TWICE), PTEXT, PROP).\r
+C       35 "ACTION" VERBS (ACTSPK, VRBSIZ).\r
+C      205 RANDOM MESSAGES (RTEXT, RTXSIZ).\r
+C       12 DIFFERENT PLAYER CLASSIFICATIONS (CTEXT, CVAL, CLSMAX).\r
+C       20 HINTS, LESS 3 (HINTLC, HINTED, HINTS, HNTSIZ).\r
+C  THERE ARE ALSO LIMITS WHICH CANNOT BE EXCEEDED DUE TO THE STRUCTURE OF\r
+C  THE DATABASE.  (E.G., THE VOCABULARY USES N/1000 TO DETERMINE WORD TYPE,\r
+C  SO THERE CAN'T BE MORE THAN 1000 WORDS.)  THESE UPPER LIMITS ARE:\r
+C      1000 NON-SYNONYMOUS VOCABULARY WORDS\r
+C      300 LOCATIONS\r
+C      100 OBJECTS\r
+C\r
+C      IMPLICIT INTEGER (A-Z)\r
+       LOGICAL LMWARN,CLOSNG,PANIC,HINTED,\r
+     1         CLOSED,GAVEUP,SCORNG,DSEEN,BITSET\r
+C\r
+       COMMON /VERSN/ VMAJ, VMIN, VEDIT\r
+       COMMON /TXTCOM/ RTEXT,LINES,ASCVAR,TXTLOC,DATA\r
+       COMMON /VOCCOM/ KTAB,ATAB,TABSIZ\r
+       COMMON /PLACOM/ ATLOC,LINK,PLACE,FIXED,HOLDNG\r
+       COMMON /PTXCOM/ PTEXT\r
+       COMMON /ABBCOM/ ABB\r
+       COMMON /MISCOM/ LINUSE,TRVS,CLSSES,OLDLOC,LOC,CVAL,TK,NEWLOC,\r
+     1 KEY,PLAC,FIXD,ACTSPK,COND,HINTS,HNTMAX,PROP,TALLY,TALLY2,\r
+     2 HINTLC,CHLOC,CHLOC2,DSEEN,DFLAG,DLOC,DALTLC,KEYS,LAMP,GRATE\r
+       COMMON /MISCOM/\r
+     3 CAGE,ROD,ROD2,STEPS,BIRD,DOOR,PILLOW,SNAKE,FISSUR,TABLET,\r
+     4 CLAM,OYSTER,MAGZIN,DWARF,KNIFE,FOOD,BOTTLE,WATER,OIL,PLANT,\r
+     5 PLANT2,AXE,MIRROR,DRAGON,CHASM,TROLL,TROLL2,BEAR,MESSAG,VEND,\r
+     6 BATTER,NUGGET,COINS,CHEST,EGGS,TRIDNT,VASE,EMRALD,PYRAM\r
+       COMMON /MISCOM/\r
+     7 PEARL,RUG,CHAIN,BACK,LOOK,CAVE,NULL,ENTRNC,DPRSSN,SAY,LOCK,\r
+     8 THROW,FIND,INVENT,TURNS,LMWARN,KNFLOC,DETAIL,ABBNUM,\r
+     9 NUMDIE,MAXDIE,DKILL,FOOBAR,BONUS,CLOCK1,CLOCK2,\r
+     1 CLOSNG,PANIC,CLOSED,GAVEUP,SCORNG,ODLOC,STREAM,SPICES\r
+       COMMON /MISC2/ I,RTXSIZ,CLSMAX,LOCSIZ,CTEXT,STEXT,LTEXT,\r
+     1 SECT,TRAVEL,TRVCON,TRVLOC,TRVSIZ,TABNDX,OBJ,J,K,VERB,HNTSIZ,\r
+     2 MAXTRS,HINTED,HNTLOC,KK\r
+C\r
+       INTEGER LINES(12),DATA(52),RECORD\r
+C      The TRAVEL, TRVCON, and TRVLOC arrays are\r
+C      Packed with words 0,1,2 holding the data. Saves lots\r
+C      of wasted space at the expense of some complexity.\r
+       INTEGER TRAVEL(250), TRVCON(250), TRVLOC(250), TRVSIZ\r
+       INTEGER KTAB(300),ATAB(300),TABSIZ\r
+       INTEGER LTEXT(150),STEXT(150),KEY(150),COND(150),ABB(150),\r
+     1 ATLOC(150)\r
+       INTEGER PLAC(100),PLACE(100),FIXD(100),FIXED(100),LINK(200),\r
+     1 PTEXT(100),PROP(100),HOLDNG\r
+       INTEGER ACTSPK(35)\r
+       INTEGER RTEXT(205)\r
+       INTEGER CTEXT(12),CVAL(12)\r
+       INTEGER HINTLC(20),HINTS(20,4)\r
+       DIMENSION HINTED(20)\r
+       INTEGER TK(20),DLOC(6),ODLOC(6)\r
+       DIMENSION DSEEN(6)\r
+       INTEGER ASCVAR, TXTLOC, TRVS, CLSSES, OLDLOC\r
+       INTEGER HNTSIZ, HNTMAX, TALLY, TALLY2, CHLOC, CHLOC2, DFLAG\r
+       INTEGER DALTLC,GRATE,CAGE,ROD,ROD2,STEPS,BIRD,DOOR,PILLOW,SNAKE\r
+       INTEGER FISSUR,TABLET,CLAM,OYSTER,MAGZIN,DWARF,KNIFE,FOOD,BOTTLE\r
+       INTEGER WATER,OIL,PLANT,PLANT2,AXE,MIRROR,DRAGON,CHASM\r
+       INTEGER BEAR,MESSAG,VEND,BATTER,COINS,CHEST,EGGS,TRIDNT,VASE,EMRALD\r
+       INTEGER PYRAM,PEARL,RUG,CHAIN,BACK,LOOK,CAVE,NULL,ENTRNC,DPRSSN,SAY\r
+       INTEGER LOCK,THROW,FIND,INVENT,TURNS,KNFLOC,DETAIL,ABBNUM\r
+       INTEGER NUMDIE,MAXDIE,DKILL,FOOBAR,BONUS,CLOCK1,CLOCK2\r
+       INTEGER TROLL,TROLL2,STREAM,SPICES\r
+       INTEGER RTXSIZ,CLSMAX,LOCSIZ,SECT,TABNDX,OBJ\r
+       INTEGER VERB,HNTLOC,KK\r
+C\r
+C\r
+       INTEGER VMAJ, VMIN, VEDIT\r
+       DATA VMAJ/2/,VMIN/0/,VEDIT/'A'/\r
+\r
+       CALL SETIDL\r
+       CALL INIT\r
+CDEBUG WRITE(4,1)\r
+CDEBUG1        FORMAT(' INIT DONE')\r
+       CALL AMAIN\r
+       CALL EXIT\r
+       END\r