[comp.sources.games] v12i072: cdungeon - C language port of DECUS dungeon, Part05/12

billr@saab.CNA.TEK.COM (Bill Randle) (05/15/91)

Submitted-by: ian@airs.COM
Posting-number: Volume 12, Issue 72
Archive-name: cdungeon/Part05
Environment: Unix, MS-DOS



#! /bin/sh
# This is a shell archive.  Remove anything before this line, then unpack
# it by saving it into a file and typing "sh file".  To overwrite existing
# files, type "sh file -c".  You can also feed this as standard input via
# unshar, or by typing "sh <file", e.g..  If this archive is complete, you
# will see the following message at the end:
#		"End of archive 5 (of 12)."
# Contents:  gdt.c parse.h
# Wrapped by billr@saab on Tue May 14 16:27:38 1991
PATH=/bin:/usr/bin:/usr/ucb ; export PATH
if test -f 'gdt.c' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'gdt.c'\"
else
echo shar: Extracting \"'gdt.c'\" \(18109 characters\)
sed "s/^X//" >'gdt.c' <<'END_OF_FILE'
X/* GDT- GAME DEBUGGING TOOL */
X
X/*COPYRIGHT 1980, INFOCOM COMPUTERS AND COMMUNICATIONS, CAMBRIDGE MA. 02142*/
X/* ALL RIGHTS RESERVED, COMMERCIAL USAGE STRICTLY PROHIBITED */
X/* WRITTEN BY R. M. SUPNIK */
X
X#include <stdio.h>
X#include <ctype.h>
X#include "funcs.h"
X#include "vars.h"
X#include "parse.h"
X
X#ifdef ALLOW_GDT
X
Xvoid gdt_()
X{
X    /* Initialized data */
X
X    const integer cmdmax = 38;
X    const char *dbgcmd =
X	    "DRDODADCDXDHDLDVDFDSAFHENRNTNCNDRRRTRCRDTKEXARAOAAACAXAVD2DNANDMDTAHDPPDDZAZ";
X    static const integer argtyp[38] = { 2,2,2,2,2,0,0,2,2,0,1,0,0,0,0,0,0,
X	    0,0,0,1,0,3,3,3,3,1,3,2,2,1,2,1,0,0,0,0,1 };
X
X    /* System generated locals */
X    integer i__1, i__2;
X
X    /* Local variables */
X    integer i, j, k, l, l1;
X    char cmd[3];
X    integer fmax, smax;
X    char buf[80];
X    char *z;
X
X/* FIRST, VALIDATE THAT THE CALLER IS AN IMPLEMENTER. */
X
X    fmax = 46;
X/* 						!SET ARRAY LIMITS. */
X    smax = 22;
X
X    if (debug_1.gdtflg != 0) {
X	goto L2000;
X    }
X/* 						!IF OK, SKIP. */
X    more_output("You are not an authorized user.");
X/* 						!NOT AN IMPLEMENTER. */
X    return;
X/* 						!BOOT HIM OFF */
X
X/* GDT, PAGE 2A */
X
X/* HERE TO GET NEXT COMMAND */
X
XL2000:
X    printf("GDT>");
X/* 						!OUTPUT PROMPT. */
X    (void) fflush(stdout);
X    (void) fgets(buf, sizeof buf, stdin);
X    more_input();
X    cmd[0] = ' ';
X    cmd[1] = ' ';
X    sscanf(buf, "%2s", cmd);
X/* 						!GET COMMAND. */
X    if (cmd[0] == '\0')
X	goto L2000;
X/* 						!IGNORE BLANKS. */
X    if (islower(cmd[0]))
X	cmd[0] = toupper(cmd[0]);
X    if (islower(cmd[1]))
X	cmd[1] = toupper(cmd[1]);
X    i__1 = cmdmax;
X    for (i = 1; i <= i__1; ++i) {
X/* 						!LOOK IT UP. */
X	if (cmd[0] == dbgcmd[(i - 1) << 1] &&
X	    cmd[1] == dbgcmd[((i - 1) << 1) + 1]) {
X	    goto L2300;
X	}
X/* 						!FOUND? */
X/* L2100: */
X    }
XL2200:
X    more_output("?");
X/* 						!NO, LOSE. */
X    goto L2000;
X
X/* L230: */
X/* L240: */
X/* L225: */
X/* L235: */
X/* L245: */
X
XL2300:
X    switch (argtyp[i - 1] + 1) {
X	case 1:  goto L2400;
X	case 2:  goto L2500;
X	case 3:  goto L2600;
X	case 4:  goto L2700;
X    }
X/* 						!BRANCH ON ARG TYPE. */
X    goto L2200;
X/* 						!ILLEGAL TYPE. */
X
XL2700:
X    printf("Idx,Ary:  ");
X/* 						!TYPE 3, REQUEST ARRAY COORDS. */
X    (void) fflush(stdout);
X    (void) fgets(buf, sizeof buf, stdin);
X    more_input();
X    for (z = buf; *z != '\0'; z++)
X	if (*z == ',')
X	    *z = ' ';
X    j = 0;
X    k = 0;
X    sscanf(buf, "%d %d", &j, &k);
X    goto L2400;
X
XL2600:
X    printf("Limits:   ");
X/* 						!TYPE 2, READ BOUNDS. */
X    (void) fflush(stdout);
X    (void) fgets(buf, sizeof buf, stdin);
X    more_input();
X    for (z = buf; *z != '\0'; z++)
X	if (*z == ',')
X	    *z = ' ';
X    j = 0;
X    k = 0;
X    sscanf(buf, "%d %d", &j, &k);
X    if (k == 0) {
X	k = j;
X    }
X    goto L2400;
X
XL2500:
X    printf("Entry:    ");
X/* 						!TYPE 1, READ ENTRY NO. */
X    (void) fflush(stdout);
X    (void) fgets(buf, sizeof buf, stdin);
X    more_input();
X    j = 0;
X    sscanf(buf, "%d", &j);
X
XL2400:
X    switch (i) {
X	case 1:  goto L10000;
X	case 2:  goto L11000;
X	case 3:  goto L12000;
X	case 4:  goto L13000;
X	case 5:  goto L14000;
X	case 6:  goto L15000;
X	case 7:  goto L16000;
X	case 8:  goto L17000;
X	case 9:  goto L18000;
X	case 10:  goto L19000;
X	case 11:  goto L20000;
X	case 12:  goto L21000;
X	case 13:  goto L22000;
X	case 14:  goto L23000;
X	case 15:  goto L24000;
X	case 16:  goto L25000;
X	case 17:  goto L26000;
X	case 18:  goto L27000;
X	case 19:  goto L28000;
X	case 20:  goto L29000;
X	case 21:  goto L30000;
X	case 22:  goto L31000;
X	case 23:  goto L32000;
X	case 24:  goto L33000;
X	case 25:  goto L34000;
X	case 26:  goto L35000;
X	case 27:  goto L36000;
X	case 28:  goto L37000;
X	case 29:  goto L38000;
X	case 30:  goto L39000;
X	case 31:  goto L40000;
X	case 32:  goto L41000;
X	case 33:  goto L42000;
X	case 34:  goto L43000;
X	case 35:  goto L44000;
X	case 36:  goto L45000;
X	case 37:  goto L46000;
X	case 38:  goto L47000;
X    }
X    goto L2200;
X/* 						!WHAT??? */
X/* GDT, PAGE 3 */
X
X/* DR-- DISPLAY ROOMS */
X
XL10000:
X    if (! (j > 0 && j <= rooms_1.rlnt && (k > 0 && k <= rooms_1.rlnt) && j <= 
X	    k)) {
X	goto L2200;
X    }
X/* 						!ARGS VALID? */
X    more_output("RM#  DESC1  DESC2  EXITS ACTION  VALUE  FLAGS");
X/* 						!COL HDRS. */
X    i__1 = k;
X    for (i = j; i <= i__1; ++i) {
X	more_output(NULL);
X	printf("%3d", i);
X	for (l = 1; l <= 6; ++l)
X	    printf(" %6d", eqr[i + l * 200 - 201]);
X	printf("\n");
X
X/* L10100: */
X    }
X    goto L2000;
X
X
X/* DO-- DISPLAY OBJECTS */
X
XL11000:
X    if (! (j > 0 && j <= objcts_1.olnt && (k > 0 && k <= objcts_1.olnt) && j 
X	    <= k)) {
X	goto L2200;
X    }
X/* 						!ARGS VALID? */
X    more_output("OB# DESC1 DESC2 DESCO ACT FLAGS1 FLAGS2 FVL TVL	  SIZE CAPAC ROOM ADV CON  READ");
X/* 						!COL HDRS */
X    i__1 = k;
X    for (i = j; i <= i__1; ++i) {
X	more_output(NULL);
X	printf("%3d%6d%6d%6d%4d%7d%7d%4d%4d%6d%6d %4d%4d%4d%6d\n",
X		i, eqo[i + 1 * 220 - 221], eqo[i + 2 * 220 - 221],
X		eqo[i + 3 * 220 - 221], eqo[i + 4 * 220 - 221],
X		eqo[i + 5 * 220 - 221], eqo[i + 6 * 220 - 221],
X		eqo[i + 7 * 220 - 221], eqo[i + 8 * 220 - 221],
X		eqo[i + 9 * 220 - 221], eqo[i + 10 * 220 - 221],
X		eqo[i + 11 * 220 - 221], eqo[i + 12 * 220 - 221],
X		eqo[i + 13 * 220 - 221], eqo[i + 14 * 220 - 221]);
X
X/* L11100: */
X    }
X    goto L2000;
X
X
X/* DA-- DISPLAY ADVENTURERS */
X
XL12000:
X    if (! (j > 0 && j <= advs_1.alnt && (k > 0 && k <= advs_1.alnt) && j <= k)
X	    ) {
X	goto L2200;
X    }
X/* 						!ARGS VALID? */
X    more_output("AD#   ROOM  SCORE  VEHIC OBJECT ACTION  STREN  FLAGS");
X    i__1 = k;
X    for (i = j; i <= i__1; ++i) {
X	more_output(NULL);
X	printf("%3d", i);
X	for (l = 1; l <= 7; ++l)
X	    printf(" %6d", eqa[i + (l << 2) -  5]);
X	printf("\n");
X/* L12100: */
X    }
X    goto L2000;
X
X
X/* DC-- DISPLAY CLOCK EVENTS */
X
XL13000:
X    if (! (j > 0 && j <= cevent_1.clnt && (k > 0 && k <= cevent_1.clnt) && j 
X	    <= k)) {
X	goto L2200;
X    }
X/* 						!ARGS VALID? */
X    more_output("CL#   TICK ACTION  FLAG");
X    i__1 = k;
X    for (i = j; i <= i__1; ++i) {
X	more_output(NULL);
X	printf("%3d %6d %6d     %c\n", i, eqc[i + 1 * 25 - 26],
X		eqc[i + 2 * 25 - 26],
X		cevent_1.cflag[i - 1] ? 'T' : 'F');
X/* L13100: */
X    }
X    goto L2000;
X
X
X/* DX-- DISPLAY EXITS */
X
XL14000:
X    if (! (j > 0 && j <= exits_1.xlnt && (k > 0 && k <= exits_1.xlnt) && j <= 
X	    k)) {
X	goto L2200;
X    }
X/* 						!ARGS VALID? */
X    more_output("  RANGE   CONTENTS");
X/* 						!COL HDRS. */
X    i__1 = k;
X    for (i = j; i <= i__1; i += 10) {
X/* 						!TEN PER LINE. */
X/* Computing MIN */
X	i__2 = i + 9;
X	l = min(i__2,k);
X/* 						!COMPUTE END OF LINE. */
X	more_output(NULL);
X	printf("%3d-%3d  ", i, l);
X	for (l1 = i; l1 <= l; ++l1)
X	    printf("%7d", exits_1.travel[l1 - 1]);
X	printf("\n");
X/* L14100: */
X    }
X    goto L2000;
X
X
X/* DH-- DISPLAY HACKS */
X
XL15000:
X    more_output(NULL);
X    printf("THFPOS= %d, THFFLG= %c, THFACT= %c\n",
X	   hack_1.thfpos, hack_1.thfflg ? 'T' : 'F',
X	   hack_1.thfact ? 'T' : 'F');
X    more_output(NULL);
X    printf("SWDACT= %c, SWDSTA= %d\n", hack_1.swdact ? 'T' : 'F',
X	   hack_1.swdsta);
X    goto L2000;
X
X
X/* DL-- DISPLAY LENGTHS */
X
XL16000:
X    more_output(NULL);
X    printf("R=%d, X=%d, O=%d, C=%d\n", rooms_1.rlnt, exits_1.xlnt,
X	   objcts_1.olnt, cevent_1.clnt);
X    more_output(NULL);
X    printf("V=%d, A=%d, M=%d, R2=%d\n", vill_1.vlnt, advs_1.alnt,
X	   rmsg_1.mlnt, oroom2_1.r2lnt);
X    more_output(NULL);
X    printf("MBASE=%d, STRBIT=%d\n", star_1.mbase, star_1.strbit);
X    goto L2000;
X
X
X/* DV-- DISPLAY VILLAINS */
X
XL17000:
X    if (! (j > 0 && j <= vill_1.vlnt && (k > 0 && k <= vill_1.vlnt) && j <= k)
X	    ) {
X	goto L2200;
X    }
X/* 						!ARGS VALID? */
X    more_output("VL# OBJECT   PROB   OPPS   BEST  MELEE");
X/* 						!COL HDRS */
X    i__1 = k;
X    for (i = j; i <= i__1; ++i) {
X	more_output(NULL);
X	printf("%3d", i);
X	for (l = 1; l <= 5; ++l)
X	    printf(" %6d", eqv[i + (l << 2) - 5]);
X	printf("\n");
X/* L17100: */
X    }
X    goto L2000;
X
X
X/* DF-- DISPLAY FLAGS */
X
XL18000:
X    if (! (j > 0 && j <= fmax && (k > 0 && k <= fmax) && j <= k)) {
X	goto L2200;
X    }
X/* 						!ARGS VALID? */
X    i__1 = k;
X    for (i = j; i <= i__1; ++i) {
X	more_output(NULL);
X	printf("Flag #%-2d = %c\n", i, flags[i - 1] ? 'T' : 'F');
X/* L18100: */
X    }
X    goto L2000;
X
X
X/* DS-- DISPLAY STATE */
X
XL19000:
X    more_output(NULL);
X    printf("Parse vector= %6d %6d %6d      %c %6d\n",
X	   prsvec_1.prsa, prsvec_1.prso, prsvec_1.prsi,
X	   prsvec_1.prswon ? 'T' : 'F', prsvec_1.prscon);
X    more_output(NULL);
X    printf("Play vector=  %6d %6d      %c\n", play_1.winner, play_1.here,
X	    play_1.telflg ? 'T' : 'F');
X    more_output(NULL);
X    printf("State vector= %6d %6d %6d %6d %6d %6d %6d %6d %6d\n",
X	   state_1.moves, state_1.deaths, state_1.rwscor, state_1.mxscor,
X	   state_1.mxload, state_1.ltshft, state_1.bloc, state_1.mungrm,
X	   state_1.hs);
X    more_output(NULL);
X    printf("              %6d %6d\n", state_1.egscor, state_1.egmxsc);
X    more_output(NULL);
X    printf("Scol vector=  %6d %6d %6d\n", screen_1.fromdr,
X	   screen_1.scolrm, screen_1.scolac);
X    goto L2000;
X
X/* GDT, PAGE 4 */
X
X/* AF-- ALTER FLAGS */
X
XL20000:
X    if (! (j > 0 && j <= fmax)) {
X	goto L2200;
X    }
X/* 						!ENTRY NO VALID? */
X    printf("Old= %c      New= ", flags[j - 1] ? 'T' : 'F');
X/* 						!TYPE OLD, GET NEW. */
X    (void) fflush(stdout);
X    (void) fgets(buf, sizeof buf, stdin);
X    more_input();
X    for (z = buf; *z != '\0'; z++) {
X	if (! isspace(*z)) {
X	    if (*z == 't' || *z == 'T')
X		flags[j - 1] = 1;
X	    else if (*z == 'f' || *z == 'F')
X		flags[j - 1] = 0;
X	    break;
X	}
X    }
X    goto L2000;
X
X
X/* 21000-- HELP */
X
XL21000:
X    more_output("Valid commands are:");
X    more_output("AA- Alter ADVS          DR- Display ROOMS");
X    more_output("AC- Alter CEVENT        DS- Display state");
X    more_output("AF- Alter FINDEX        DT- Display text");
X    more_output("AH- Alter HERE          DV- Display VILLS");
X    more_output("AN- Alter switches      DX- Display EXITS");
X    more_output("AO- Alter OBJCTS        DZ- Display PUZZLE");
X    more_output("AR- Alter ROOMS         D2- Display ROOM2");
X    more_output("AV- Alter VILLS         EX- Exit");
X    more_output("AX- Alter EXITS         HE- Type this message");
X    more_output("AZ- Alter PUZZLE        NC- No cyclops");
X    more_output("DA- Display ADVS        ND- No deaths");
X    more_output("DC- Display CEVENT      NR- No robber");
X    more_output("DF- Display FINDEX      NT- No troll");
X    more_output("DH- Display HACKS       PD- Program detail");
X    more_output("DL- Display lengths     RC- Restore cyclops");
X    more_output("DM- Display RTEXT       RD- Restore deaths");
X    more_output("DN- Display switches    RR- Restore robber");
X    more_output("DO- Display OBJCTS      RT- Restore troll");
X    more_output("DP- Display parser      TK- Take");
X    goto L2000;
X
X/* NR-- NO ROBBER */
X
XL22000:
X    hack_1.thfflg = FALSE_;
X/* 						!DISABLE ROBBER. */
X    hack_1.thfact = FALSE_;
X    newsta_(oindex_1.thief, 0, 0, 0, 0);
X/* 						!VANISH THIEF. */
X    more_output("No robber.");
X    goto L2000;
X
X/* NT-- NO TROLL */
X
XL23000:
X    findex_1.trollf = TRUE_;
X    newsta_(oindex_1.troll, 0, 0, 0, 0);
X    more_output("No troll.");
X    goto L2000;
X
X/* NC-- NO CYCLOPS */
X
XL24000:
X    findex_1.cyclof = TRUE_;
X    newsta_(oindex_1.cyclo, 0, 0, 0, 0);
X    more_output("No cyclops.");
X    goto L2000;
X
X/* ND-- IMMORTALITY MODE */
X
XL25000:
X    debug_1.dbgflg = 1;
X    more_output("No deaths.");
X    goto L2000;
X
X/* RR-- RESTORE ROBBER */
X
XL26000:
X    hack_1.thfact = TRUE_;
X    more_output("Restored robber.");
X    goto L2000;
X
X/* RT-- RESTORE TROLL */
X
XL27000:
X    findex_1.trollf = FALSE_;
X    newsta_(oindex_1.troll, 0, rindex_1.mtrol, 0, 0);
X    more_output("Restored troll.");
X    goto L2000;
X
X/* RC-- RESTORE CYCLOPS */
X
XL28000:
X    findex_1.cyclof = FALSE_;
X    findex_1.magicf = FALSE_;
X    newsta_(oindex_1.cyclo, 0, rindex_1.mcycl, 0, 0);
X    more_output("Restored cyclops.");
X    goto L2000;
X
X
X/* RD-- MORTAL MODE */
X
XL29000:
X    debug_1.dbgflg = 0;
X    more_output("Restored deaths.");
X    goto L2000;
X
X/* GDT, PAGE 5 */
X
X/* TK-- TAKE */
X
XL30000:
X    if (! (j > 0 && j <= objcts_1.olnt)) {
X	goto L2200;
X    }
X/* 						!VALID OBJECT? */
X    newsta_(j, 0, 0, 0, play_1.winner);
X/* 						!YES, TAKE OBJECT. */
X    more_output("Taken.");
X/* 						!TELL. */
X    goto L2000;
X
X
X/* EX-- GOODBYE */
X
XL31000:
X    prsvec_1.prscon = 1;
X    return;
X
X/* AR--	ALTER ROOM ENTRY */
X
XL32000:
X    if (! (j > 0 && j <= rooms_1.rlnt && (k > 0 && k <= 5))) {
X	goto L2200;
X    }
X/* 						!INDICES VALID? */
X    printf("Old = %6d      New = ", eqr[j + k * 200 - 201]);
X/* 						!TYPE OLD, GET NEW. */
X    (void) fflush(stdout);
X    (void) fgets(buf, sizeof buf, stdin);
X    more_input();
X    sscanf(buf, "%d", &eqr[j + k * 200 - 201]);
X    goto L2000;
X
X
X/* AO-- ALTER OBJECT ENTRY */
X
XL33000:
X    if (! (j > 0 && j <= objcts_1.olnt && (k > 0 && k <= 14))) {
X	goto L2200;
X    }
X/* 						!INDICES VALID? */
X    printf("Old = %6d      New = ", eqo[j + k * 200 - 201]);
X    (void) fflush(stdout);
X    (void) fgets(buf, sizeof buf, stdin);
X    more_input();
X    sscanf(buf, "%d", &eqo[j + k * 220 - 221]);
X    goto L2000;
X
X/* AA-- ALTER ADVS ENTRY */
X
XL34000:
X    if (! (j > 0 && j <= advs_1.alnt && (k > 0 && k <= 7))) {
X	goto L2200;
X    }
X/* 						!INDICES VALID? */
X    printf("Old = %6d      New = ", eqa[j + (k << 2) - 5]);
X    (void) fflush(stdout);
X    (void) fgets(buf, sizeof buf, stdin);
X    more_input();
X    sscanf(buf, "%d", &eqa[j + (k << 2) - 5]);
X    goto L2000;
X
X/* AC-- ALTER CLOCK EVENTS */
X
XL35000:
X    if (! (j > 0 && j <= cevent_1.clnt && (k > 0 && k <= 3))) {
X	goto L2200;
X    }
X/* 						!INDICES VALID? */
X    if (k == 3) {
X	goto L35500;
X    }
X/* 						!FLAGS ENTRY? */
X    printf("Old = %6d      New = ", eqc[j + k * 25 - 26]);
X    (void) fflush(stdout);
X    (void) fgets(buf, sizeof buf, stdin);
X    more_input();
X    sscanf(buf, "%d", &eqc[j + k * 25 - 26]);
X    goto L2000;
X
XL35500:
X    (void) fflush(stdout);
X    (void) fgets(buf, sizeof buf, stdin);
X    more_input();
X    for (z = buf; *z != '\0'; z++) {
X	if (! isspace(*z)) {
X	    if (*z == 't' || *z == 'T')
X		cevent_1.cflag[j - 1] = 1;
X	    else if (*z == 'f' || *z == 'F')
X		cevent_1.cflag[j - 1] = 0;
X	    break;
X	}
X    }
X    goto L2000;
X/* GDT, PAGE 6 */
X
X/* AX-- ALTER EXITS */
X
XL36000:
X    if (! (j > 0 && j <= exits_1.xlnt)) {
X	goto L2200;
X    }
X/* 						!ENTRY NO VALID? */
X    printf("Old= %6d     New= ", exits_1.travel[j - 1]);
X    (void) fflush(stdout);
X    (void) fgets(buf, sizeof buf, stdin);
X    more_input();
X    sscanf(buf, "%d", &exits_1.travel[j - 1]);
X    goto L2000;
X
X
X/* AV-- ALTER VILLAINS */
X
XL37000:
X    if (! (j > 0 && j <= vill_1.vlnt && (k > 0 && k <= 5))) {
X	goto L2200;
X    }
X/* 						!INDICES VALID? */
X    printf("Old = %6d      New= ", eqv[j + (k << 2) - 5]);
X    (void) fflush(stdout);
X    (void) fgets(buf, sizeof buf, stdin);
X    more_input();
X    sscanf(buf, "%d", &eqv[j + (k << 2) - 5]);
X    goto L2000;
X
X/* D2-- DISPLAY ROOM2 LIST */
X
XL38000:
X    if (! (j > 0 && j <= oroom2_1.r2lnt && (k > 0 && k <= oroom2_1.r2lnt) && 
X	    j <= k)) {
X	goto L2200;
X    }
X    i__1 = k;
X    for (i = j; i <= i__1; ++i) {
X	more_output(NULL);
X	printf("#%2d   Room=%6d   Obj=%6d\n", i,
X		oroom2_1.rroom2[i - 1], oroom2_1.oroom2[i - 1]);
X/* L38100: */
X    }
X    goto L2000;
X
X
X/* DN-- DISPLAY SWITCHES */
X
XL39000:
X    if (! (j > 0 && j <= smax && (k > 0 && k <= smax) && j <= k)) {
X	goto L2200;
X    }
X/* 						!VALID? */
X    i__1 = k;
X    for (i = j; i <= i__1; ++i) {
X	more_output(NULL);
X	printf("Switch #%-2d = %d\n", i, switch_[i - 1]);
X/* L39100: */
X    }
X    goto L2000;
X
X
X/* AN-- ALTER SWITCHES */
X
XL40000:
X    if (! (j > 0 && j <= smax)) {
X	goto L2200;
X    }
X/* 						!VALID ENTRY? */
X    printf("Old= %6d      New= ", switch_[j - 1]);
X    (void) fflush(stdout);
X    (void) fgets(buf, sizeof buf, stdin);
X    more_input();
X    sscanf(buf, "%d", &switch_[j - 1]);
X    goto L2000;
X
X/* DM-- DISPLAY MESSAGES */
X
XL41000:
X    if (! (j > 0 && j <= rmsg_1.mlnt && (k > 0 && k <= rmsg_1.mlnt) && j <= k)
X	    ) {
X	goto L2200;
X    }
X/* 						!VALID LIMITS? */
X    more_output("  RANGE   CONTENTS");
X    i__1 = k;
X    for (i = j; i <= i__1; i += 10) {
X	more_output(NULL);
X/* Computing MIN */
X	i__2 = i + 9;
X	l = min(i__2,k);
X	printf("%3d-%3d  ", i, l);
X	for (l1 = i; l1 <= l; ++l1)
X	    printf(" %6d", rmsg_1.rtext[l1 - 1]);
X	printf("\n");
X/* L41100: */
X    }
X    goto L2000;
X
X
X/* DT-- DISPLAY TEXT */
X
XL42000:
X    rspeak_(j);
X    goto L2000;
X
X/* AH--	ALTER HERE */
X
XL43000:
X    printf("Old= %6d      New= ", play_1.here);
X    (void) fflush(stdout);
X    (void) fgets(buf, sizeof buf, stdin);
X    more_input();
X    sscanf(buf, "%d", &play_1.here);
X    eqa[0] = play_1.here;
X    goto L2000;
X
X/* DP--	DISPLAY PARSER STATE */
X
XL44000:
X    more_output(NULL);
X    printf("ORPHS= %7d%7d%7d%7d%7d%7d\n",
X	   orp[0], orp[1], orp[2], orp[3], orp[4], last_1.lastit);
X    more_output(NULL);
X    printf("PV=    %7d%7d%7d%7d%7d\n",
X	   pvec[0], pvec[1], pvec[2], pvec[3], pvec[4]);
X    more_output(NULL);
X    printf("SYN=   %7d%7d%7d%7d%7d%7d\n",
X	   syn[0], syn[1], syn[2], syn[3], syn[4], syn[5]);
X    more_output(NULL);
X    printf("              %7d%7d%7d%7d%7d\n",
X	   syn[6], syn[7], syn[8], syn[9], syn[10]);
X    goto L2000;
X
X
X/* PD--	PROGRAM DETAIL DEBUG */
X
XL45000:
X    printf("Old= %6d      New= ", debug_1.prsflg);
X/* 						!TYPE OLD, GET NEW. */
X    (void) fflush(stdout);
X    (void) fgets(buf, sizeof buf, stdin);
X    more_input();
X    sscanf(buf, "%d", &debug_1.prsflg);
X    goto L2000;
X
X/* DZ--	DISPLAY PUZZLE ROOM */
X
XL46000:
X    for (i = 1; i <= 64; i += 8) {
X/* 						!DISPLAY PUZZLE */
X	more_output(NULL);
X	printf(" ");
X	for (j = i; j <= i + 7; ++j)
X	     printf("%3d", puzzle_1.cpvec[j - 1]);
X	printf("\n");
X/* L46100: */
X    }
X    goto L2000;
X
X
X/* AZ--	ALTER PUZZLE ROOM */
X
XL47000:
X    if (! (j > 0 && j <= 64)) {
X	goto L2200;
X    }
X/* 						!VALID ENTRY? */
X    printf("Old= %6d      New= ", puzzle_1.cpvec[j - 1]);
X/* 						!OUTPUT OLD, */
X    (void) fflush(stdout);
X    (void) fgets(buf, sizeof buf, stdin);
X    more_input();
X    sscanf(buf, "%d", &puzzle_1.cpvec[j - 1]);
X    goto L2000;
X
X} /* gdt_ */
X
X#endif /* ALLOW_GDT */
END_OF_FILE
if test 18109 -ne `wc -c <'gdt.c'`; then
    echo shar: \"'gdt.c'\" unpacked with wrong size!
fi
# end of 'gdt.c'
fi
if test -f 'parse.h' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'parse.h'\"
else
echo shar: Extracting \"'parse.h'\" \(34040 characters\)
sed "s/^X//" >'parse.h' <<'END_OF_FILE'
X/* parse.h -- header file for parsing structures used by dungeon */
X
X/* These structures are only used by the parsing routines.  They are in
X * their own file since they are so large.
X */
X
X#ifndef PARSE_H
X#define PARSE_H
X
X#ifndef EXTERN
X#define EXTERN extern
X#endif
X
XEXTERN struct {
X    integer act, o1, o2, p1, p2;
X} pv_;
X
X#define pv_1 pv_
X#define pvec ((integer *)&pv_1)
X#define objvec ((integer *)&pv_1 + 1)
X#define prpvec ((integer *)&pv_1 + 3)
X
XEXTERN struct {
X    integer vflag, dobj, dfl1, dfl2, dfw1, dfw2, iobj, ifl1, ifl2, ifw1, ifw2;
X
X} syntax_;
X
X#define syntax_1 syntax_
X#define syn ((integer *)&syntax_1)
X
X/* Object flags (objflg) */
X
X#define VABIT (16384)
X#define VRBIT (8192)
X#define VTBIT (4096)
X#define VCBIT (2048)
X#define VEBIT (1024)
X#define VFBIT (512)
X#define VPMASK (511)
X
X/* Syntax flags (synflg) */
X
X#define SDIR (16384)
X#define SIND (8192)
X#define SSTD (4096)
X#define SFLIP (2048)
X#define SDRIV (1024)
X#define SVMASK (511)
X
X/* BUZZ WORDS--	IGNORED IN SYNTACTIC PROCESSING */
X
X/*   THE FOLLOWING DATA STATEMENT WAS CONVERTED FROM: */
X
X/* 	DATA BVOC/3RAND,0,2RBY,0,2RIS,0,1RA,0, */
X/* &		2RAN,0,3RTHE,0,3RRUN,0,2RGO,0,3RPRO,3RCEE,0,0/ */
X
XEXTERN const struct {
X    integer bvoc[20];
X} buzvoc_
X#ifdef INIT
X	= { 2164, 0, 4200, 0, 15160, 0, 1600, 0, 2160, 0, 32325, 0, 
X	    29654, 0, 11800, 0, 26335, 5005, 0, 0 }
X#endif
X	;
X
X#define buzvoc_1 buzvoc_
X
X/* PREPOSITIONS--	MAPS PREPOSITIONS TO INDICES */
X
X/*   THE FOLLOWING DATA STATEMENT WAS CONVERTED FROM: */
X
X/* 	DATA PVOC/3ROVE,1RR,1,3RWIT,1RH,2,3RUSI,2RNG,2,3RTHR,3ROUG,2, */
X/* &		2RAT,0,3,2RTO,0,4,2RIN,0,5,3RINS,3RIDE,5,3RINT,1RO,5, */
X/* &		3RDOW,1RN,6,2RUP,0,7,3RUND,2RER,8,2ROF,0,9,2RON,0,10, */
X/* &		3ROFF,0,11/ */
X
XEXTERN const struct {
X    integer pvoc[45];
X} prpvoc_
X#ifdef INIT
X	= { 24885, 28800, 1, 37180, 12800, 2, 34369, 22680, 2, 32338, 
X	    24847, 2, 2400, 0, 3, 32600, 0, 4, 14960, 0, 5, 14979, 14565, 5, 
X	    14980, 0, 5, 7023, 22400, 6, 34240, 0, 7, 34164, 8720, 8, 24240, 
X	    0, 9, 24560, 0, 10, 24246, 0, 11 }
X#endif
X	;
X
X#define prpvoc_1 prpvoc_
X
X/* DIRECTIONS--	MAPS DIRECTIONS TO INDICES */
X
X/*   THE FOLLOWING DATA STATEMENT WAS CONVERTED FROM: */
X
X/* 	DATA DVOC/1RN,0,"2000,3RNOR,2RTH,"2000,1RS,0,"12000, */
X/* &	 1RE,0,"6000,3REAS,1RT,"6000,1RW,0,"16000,3RWES,1RT,"16000, */
X/* &	 2RSE,0,"10000,2RSW,0,"14000, */
X/* &	 2RNE,0,"4000,2RNW,0,"20000, */
X/* &	 1RU,0,"22000,2RUP,0,"22000,1RD,0,"24000,3RDOW,1RN,"24000, */
X/* &	 3RLAU,3RNCH,"26000,3RLAN,1RD,"30000,3RENT,2RER,"32000, */
X/* &	 3REXI,1RT,"34000,3ROUT,0,"34000,3RLEA,2RVE,"34000, */
X/* &	 3RTRA,3RVEL,"36000,3RSOU,2RTH,"12000, */
X/* &	 2RIN,0,"32000, */
X/* &	 3RCRO,2RSS,"36000/ */
X
XEXTERN const struct {
X    integer dvoc[75];
X} dirvoc_
X#ifdef INIT
X	= { 22400, 0, 1024, 23018, 32320, 1024, 30400, 0, 5120, 8000, 0,
X	    3072, 8059, 32000, 3072, 36800, 0, 7168, 37019, 32000, 7168, 
X	    30600, 0, 4096, 31320, 0, 6144, 22600, 0, 2048, 23320, 0, 8192, 
X	    33600, 0, 9216, 34240, 0, 9216, 6400, 0, 10240, 7023, 22400, 
X	    10240, 19261, 22528, 11264, 19254, 6400, 12288, 8580, 8720, 13312,
X	    8969, 32000, 14336, 24860, 0, 14336, 19401, 35400, 14336, 32721, 
X	    35412, 15360, 31021, 32320, 5120, 14960, 0, 13312, 5535, 31160, 
X	    15360 }
X#endif
X	;
X
X#define dirvoc_1 dirvoc_
X
X/* ADJECTIVES--	MAPS ADJECTIVES TO OBJECT NUMBERS */
X
X/* EACH ENTRY IS VARIABLE LENGTH AND CONSISTS OF A TWO WORD */
X/* ADJECTIVE IN RADIX-50 FOLLOWED BY ONE OR MORE OBJECT NUMBERS. */
X/* NOTE THAT ADJECTIVES CAN BE DISTINGUISHED FROM OBJECTS AS */
X/* FOLLOWS-- ALL ADJECTIVES ARE .GE. 1RA (1600), WHILE ALL OBJECTS */
X/* ARE .LE. OLNT (255 MAX). */
X
X/*   THE DATA STATEMENT BELOW WAS CONVERTED FROM: */
X
X/* 	DATA AVOC1/3RBRO,2RWN,1,81,3RELO,3RNGA,1,3RHOT,0,3,3RPEP,3RPER,3, */
X/* &	 3RVIT,3RREO,4,3RJAD,1RE,6,3RHUG,1RE,8,3RENO,3RRMO,8,122, */
X/* &	 3RTRO,3RPHY,9,3RCLE,2RAR,10,3RLAR,2RGE,12,26,47,95,96,123, */
X/* &	 133,135,146,147,150,176,3RNAS,2RTY,13,3RELV,3RISH,14, */
X/* &	 3RBRA,2RSS,15,16,46,156, */
X/* &	 3RBRO,3RKEN,16,22,92,113,155,158,3RORI,3RENT,17, */
X/* &	 3RBLO,3RODY,20,3RRUS,2RTY,21,3RBUR,3RNED,22, */
X/* &	 3RDEA,1RD,22,3ROLD,0,25,41,44,45,3RLEA,3RTHE,25, */
X/* &	 3RPLA,3RTIN,26,3RPEA,2RRL,27, */
X/* &	 3RMOB,1RY,31,3RCRY,3RSTA,32,126, */
X/* &	 3RGOL,1RD,33,85,104,157,158,188, */
X/* &	 3RIVO,2RRY,34,3RSAP,3RPHI,37,3RWOO,3RDEN,38,67,136,137, */
X/* &	 165,173,174,175,3RWOO,1RD,38,67,136,137,165,173,174,175, */
X/* &	 3RSTE,2REL,39,125,189, */
X/* &	 3RDEN,3RTED,39,3RFAN,2RCY,40,3RANC,3RIEN,41,44, */
X/* &	 3RSMA,2RLL,5,46,52,53,89,102,103,153,187, */
X/* &	 3RBLA,2RCK,47,162,3RTOU,1RR,49, */
X/* &	 3RVIS,3RCOU,55,3RVIC,3RIOU,62, */
X/* &	 3RGLA,2RSS,10,126,132,3RTRA,1RP,66/ */
X
X/* 	DATA AVOC2/3RFRO,2RNT,68,3RSTO,2RNE,69,150,214,3RMAN,3RGLE,72, */
X/* &	 3RRED,0,79,94,140,161,170,171,3RYEL,3RLOW,80,159, */
X/* &	 3RBLU,1RE,82,112,114,141, */
X/* &	 3RVAM,3RPIR,83,3RMAG,2RIC,90, */
X/* &	 3RSEA,3RWOR,90,3RTAN,0,91,3RSHA,2RRP,92, */
X/* &	 3RWIC,3RKER,98,3RCLO,2RTH,100, */
X/* &	 3RBRA,3RIDE,101, */
X/* &	 3RGAU,2RDY,108,3RSQU,3RARE,109,127,3RCLA,1RY,109, */
X/* &	 3RSHI,2RNY,110,3RTHI,1RN,110, */
X/* &	 3RGRE,2REN,115,143,3RPUR,3RPLE,116,3RWHI,2RTE,117,147,160, */
X/* &	 3RMAR,3RBLE,119,3RCOK,1RE,121,3REMP,2RTY,121, */
X/* &	 3RROU,2RND,128,3RTRI,3RANG,129, */
X/* &	2 3RRAR,1RE,134,3ROBL,3RONG,135,3REAT,3R$ME,138, */
X/* &	 3REAT,2RME,138,3RORA,3RNGE,139,3RECC,1RH,141/ */
X
X/* 	DATA AVOC3/3RROC,2RKY,147,3RSHE,2RER,147, */
X/* &	 3R200,0,148,3RNEA,1RT,148,3RSHI,3RMME,151, */
X/* &	 3RZUR,3RICH,152,3RBIR,2RDS,153,154,155, */
X/* &	 3RENC,3RRUS,154,155,3RBEA,3RUTI,156,3RCLO,3RCKW,157,158, */
X/* &	 3RMEC,3RHAN,157,158, */
X/* &	 3RMAH,3ROGA,163,3RPIN,1RE,164,3RLON,1RG,166, */
X/* &	 3RCEN,3RTER,166,3RSHO,2RRT,167,1RT,0,168, */
X/* &	 3RCOM,3RPAS,169,211,3RBRO,3RNZE,172,3RCEL,1RL,174,175, */
X/* &	 3RLOC,3RKED,174,3RSUN,0,177, */
X/* &	 3RBAR,1RE,200,3RSON,1RG,203, */
X/* &	 3RNOR,2RTH,205,3RNOR,3RTHE,205,3RSOU,2RTH,206, */
X/* &	 3RSOU,3RTHE,206,3REAS,1RT,207,3REAS,3RTER,207, */
X/* &	 3RWES,1RT,208,3RWES,3RTER,208,3RDUN,3RGEO,215/ */
X
XEXTERN const integer avoc[]
X#ifdef INIT
X	= { 3935, 37360, 1, 81, 8495, 22681, 1, 13420, 0, 3, 25816, 
X	    25818, 3, 35580, 29015, 4, 16044, 8000, 6, 13647, 8000, 8, 8575, 
X	    29335, 8, 122, 32735, 25945, 9, 5285, 2320, 10, 19258, 11400, 12, 
X	    26, 47, 95, 96, 123, 133, 135, 146, 147, 150, 176, 22459, 33000, 
X	    13, 8502, 15168, 14, 3921, 31160, 15, 16, 46, 156, 3935, 17814, 
X	    16, 22, 92, 113, 155, 158, 24729, 8580, 17, 3695, 24185, 20, 
X	    29659, 33000, 21, 4058, 22604, 22, 6601, 6400, 22, 24484, 0, 25, 
X	    41, 44, 45, 19401, 32325, 25, 26081, 32374, 26, 25801, 29280, 27, 
X	    21402, 40000, 31, 5545, 31201, 32, 126, 11812, 6400, 33, 85, 104, 
X	    157, 158, 188, 15295, 29800, 34, 30456, 25929, 37, 37415, 6614, 
X	    38, 67, 136, 137, 165, 173, 174, 175, 37415, 6400, 38, 67, 136, 
X	    137, 165, 173, 174, 175, 31205, 8480, 39, 125, 189, 6614, 32204, 
X	    39, 9654, 5800, 40, 2163, 14614, 41, 44, 30921, 19680, 5, 46, 52, 
X	    53, 89, 102, 103, 153, 187, 3681, 5240, 47, 162, 32621, 28800, 49,
X	     35579, 5421, 55, 35563, 15021, 62, 11681, 31160, 10, 126, 132, 
X	    32721, 25600, 66, 10335, 23200, 68, 31215, 22600, 69, 150, 214, 
X	    20854, 11685, 72, 29004, 0, 79, 94, 140, 161, 170, 171, 40212, 
X	    19823, 80, 159, 3701, 8000, 82, 112, 114, 141, 35253, 25978, 83, 
X	    20847, 14520, 90, 30601, 37418, 90, 32054, 0, 91, 30721, 29440, 
X	    92, 37163, 17818, 98, 5295, 32320, 100, 3921, 14565, 101, 11261, 
X	    7400, 108, 31101, 2325, 109, 127, 5281, 4000, 109, 30729, 23400, 
X	    110, 32329, 22400, 110, 11925, 8560, 115, 143, 26458, 26085, 116, 
X	    37129, 32200, 117, 147, 160, 20858, 3685, 119, 5411, 8000, 121, 
X	    8536, 33000, 121, 29421, 22560, 128, 32729, 2167, 129, 28858, 
X	    8000, 134, 24092, 24567, 135, 8060, 43725, 138, 8060, 21000, 138, 
X	    24721, 22685, 139, 8123, 12800, 141, 29403, 18600, 147, 30725, 
X	    8720, 147, 52430, 0, 148, 22601, 32000, 148, 30729, 21325, 151, 
X	    42458, 14528, 152, 3578, 7160, 153, 154, 155, 8563, 29659, 154, 
X	    155, 3401, 34409, 156, 5295, 5263, 157, 158, 21003, 12854, 157, 
X	    158, 20848, 24281, 163, 25974, 8000, 164, 19814, 11200, 166, 5014,
X	     32218, 166, 30735, 29600, 167, 32000, 0, 168, 5413, 25659, 169, 
X	    211, 3935, 23445, 172, 5012, 19200, 174, 175, 19803, 17804, 174, 
X	    31254, 0, 177, 3258, 8000, 200, 31014, 11200, 203, 23018, 32320, 
X	    205, 23018, 32325, 205, 31021, 32320, 206, 31021, 32325, 206, 
X	    8059, 32000, 207, 8059, 32218, 207, 37019, 32000, 208, 37019, 
X	    32218, 208, 7254, 11415, 215, -1 }
X#endif
X	;
X
X/* VERBS--	MAPS VERBS TO SYNTAX SLOTS */
X
X/* EACH ENTRY IS VARIABLE LENGTH AND CONSISTS OF ONE OR MORE */
X/* TWO WORD VERBS IN RADIX-50 FOLLOWED BY A SYNTAX WORD COUNT */
X/* FOLLOWED BY ONE OR MORE SYNTAXES.  NOTE THAT VERBS CAN BE */
X/* DISTINGUISHED FROM WORD COUNTS AS FOLLOWS-- */
X/* ALL VERBS ARE .GE. 1RA (1600), WHILE ALL SYNTAX WORD COUNTS */
X/* ARE .LE. 255. */
X
X/* SYNTAX ENTRIES CONSIST OF A FLAG WORD FOLLOWED BY 0, 1, OR 2 */
X/* OBJECT DESCRIPTIONS.  THE FLAG WORD HAS THE FOLLOWING FORMAT-- */
X
X/* BIT <14>	IF 1, SYNTAX INCLUDES DIRECT OBJECT */
X/* BIT <13>	IF 1, SYNTAX INCLUDES INDIRECT OBJECT */
X/* BIT <12>	IF 1, DIRECT OBJECT IS IMPLICIT (STANDARD FORM) */
X/* BIT <11>	IF 1, DIRECT AND INDIRECT OBJECT MUST BE SWAPPED */
X/* 			AFTER SYNTAX PROCESSING */
X/* BIT <10>	IF 1, THIS IS DEFAULT SYNTAX FOR ORPHANERY */
X/* BITS <8:0>	VERB NUMBER FOR VAPPLI */
X
X/* OBJECT DESCRIPTIONS CONSIST OF A FLAG WORD AND TWO FWIM WORDS. */
X/* THE FLAG WORD HAS THE FOLLOWING FORMAT-- */
X
X/* BIT <14>	IF 1, SEARCH ADVENTURER FOR OBJECT */
X/* BIT <13>	IF 1, SEARCH ROOM FOR OBJECT */
X/* BIT <12>	IF 1, PARSER WILL TRY TO TAKE OBJECT */
X/* BIT <11>	IF 1, ADVENTURER MUST HAVE OBJECT */
X/* BIT <10>	IF 1, QUALIFYING BITS (NORMALLY -1,-1) ARE SAME */
X/* 			AS FWIM BITS */
X/* BIT <9>	IF 1, OBJECT MUST BE REACHABLE */
X/* BITS <8:0>	PREPOSITION NUMBER FOR SYNMCH */
X
X/* THE FWIM WORDS HAVE THE SAME FORMAT AS THE TWO OBJECT FLAG WORDS. */
X
X/* NOTE THAT BITS 12 AND 11 OF OBJECT DESCRIPTIONS ACTUALLY HAVE */
X/* FOUR DISTINCT STATES-- */
X
X/* 	BIT 12	BIT 11	MDLDESC		INTERPRETATION */
X/* 	------	------	-------		--------------- */
X
X/* 	  0	  0	 --		NO PARSER ACTION */
X/* 	  0	  1	 HAVE		ADVENTURER MUST HAVE OBJECT */
X/* 	  1	  0	 TRY		TRY TO TAKE, DONT CARE IF FAIL */
X/* 	  1	  1	 TAKE		TRY TO TAKE, CARE IF FAIL */
X
X/*   THE FOLLOWING DATA STATEMENT WAS ORIGINALLY: */
X
X/* 	DATA VVOC1/3RBRI,2REF,1,70,3RVER,3RBOS,1,71, */
X/* &	 3RSUP,3RERB,1,72,3RSTA,1RY,1,73,3RVER,3RSIO,1,74, */
X/* &	 3RSWI,1RM,3RBAT,2RHE,3RWAD,1RE,1,75,3RGER,3RONI,1,76, */
X/* &	 3RULY,3RSSE,3RODY,3RSSE,1,77, */
X/* &	 3RWEL,1RL,1,78,3RPRA,1RY,1,79,3RTRE,3RASU,1,80, */
X/* &	 3RTEM,3RPLE,1,81,3RBLA,2RST,1,82,3RSCO,2RRE,1,83, */
X/* &	 1RQ,0,3RQUI,1RT,1,84,3RHEL,1RP,1,40,3RINF,1RO,1,41, */
X/* &	 3RHIS,3RTOR,3RUPD,3RATE,1,42,3RBAC,1RK,1,43, */
X/* &	 3RSIG,1RH,3RMUM,3RBLE,1,44/ */
X
X/* 	DATA VVOC1A/3RCHO,2RMP,3RLOS,1RE,3RBAR,1RF,1,45, */
X/* &	 3RDUN,3RGEO,1,46,3RFRO,3RBOZ,1,47,3RFOO,0,3RBLE,3RTCH, */
X/* &	 3RBAR,0,1,48,3RREP,3RENT,1,49,3RHOU,2RRS,3RSCH,3REDU,1,50, */
X/* &	 3RWIN,0,1,51,3RYEL,1RL,3RSCR,3REAM,3RSHO,2RUT,1,52, */
X/* &	 3RHOP,0,3RSKI,1RP,1,53,3RFUC,1RK,3RSHI,1RT,3RDAM,1RN, */
X/* &	 3RCUR,2RSE,1,54,3RZOR,1RK,1,55,3RGRA,3RNIT,1,"50070, */
X/* &	 3RSAV,1RE,1,149,3RRES,3RTOR,1,150,3RTIM,1RE,1,90, */
X/* &	 3RDIA,3RGNO,1,94,3REXO,3RRCI,1,105,3RINV,3RENT, */
X/* &	 1RI,0,1,133,3RWAI,1RT,1,128, */
X/* &	 3RINC,3RANT,1,95,3RANS,3RWER,1,96/ */
X
X/* 	DATA VVOC1B/3RAGA,2RIN,1,57,3RNOO,2RBJ,1,58, */
X/* &	 3RBUG,0,3RGRI,2RPE,3RCOM,3RPLA,1,59, */
X/* &	 3RFEA,3RTUR,3RCOM,3RMEN,3RSUG,3RGES,3RIDE,1RA,1,60, */
X/* &	 3RROO,1RM,1,65,3ROBJ,3RECT,1,66,3RRNA,2RME,1,67/ */
X
X/* 	DATA VVOC2/3RDEF,3RLAT,1,"50147, */
X/* &	 3RDES,3RCRI,3RWHA,1RT,3REXA,3RMIN,1,"50170, */
X/* &	 3RFIL,1RL,11,"60206,"61000,"200,0,"61002,"400,0, */
X/* &		"40206,"61000,"200,0, */
X/* &	 3RFIN,1RD,3RSEE,1RK,3RWHE,2RRE,3RSEE,0,4,"40177,"60000,-1,-1, */
X/* &	 3RFOL,3RLOW,2,"125,"50125, */
X/* &	 3RKIC,1RK,3RBIT,1RE,3RTAU,2RNT,1,"50153,3RLOW,2RER,1,"50156, */
X/* &	 3RPUS,1RH,3RPRE,2RSS,1,"50160,3RRIN,1RG,3RPEA,1RL,1,"50127, */
X/* &	 3RRUB,0,3RCAR,3RESS,3RTOU,2RCH,3RFON,3RDLE,1,"50157, */
X/* &	 3RSHA,2RKE,1,"50171,3RSPI,1RN,1,"50201, */
X/* &	 3RUNT,2RIE,3RFRE,1RE,1,"50161,3RWAL,1RK,9,"50216, */
X/* &		"40126,"61002,-1,-1,"40126,"61005,-1,-1/ */
X
X/* 	DATA VVOC3/3RATT,3RACK,3RFIG,2RHT,3RINJ,3RURE,3RHIT,0,3RHUR,1RT, */
X/* &		7,"60215,"21000,0,"200,"44002,0,"1000, */
X/* &	 3RBOA,2RRD,4,"40202,"21000,0,"2, */
X/* &	 3RBRU,2RSH,3RCLE,2RAN,5,"52130,"70130,"61002,-1,-1, */
X/* &	 3RBUR,1RN,3RIGN,3RITE,3RINC,3RINE,7,"60211,"61000,"20,0, */
X/* &		"64002,"10,0, */
X/* &	 3RCLI,2RMB,12,"40235,"20007,0,"4000, */
X/* &		"40236,"20006,0,"4000,"40234,"20000,0,"4000, */
X/* &	 3RCLO,2RSE,4,"40176,"61000,"10200,0, */
X/* &	 3RDIG,0,4,"40131,"44002,"4,0, */
X/* &	 3RDIS,3REMB,4,"40203,"20000,0,"2, */
X/* &	 3RDRI,2RNK,3RIMB,3RIBE,3RSWA,3RLLO,4,"40210,"61000,"400,0, */
X/* &	 3RDRO,1RP,3RREL,3REAS,11,"42221,"41000,-1,-1, */
X/* &		"60221,"41000,-1,-1,"61005,-1,-1, */
X/* &	 3REAT,0,3RCON,3RSUM,3RGOB,3RBLE,3RMUN,2RCH,3RTAS,2RTE, */
X/* &		4,"40207,"75000,"2000,0, */
X/* &	 3REXT,3RING,3RDOU,2RSE,4,"40174,"75000,"100,0/ */
X
X/* 	DATA VVOC4/3RGIV,1RE,3RHAN,1RD,3RDON,3RATE,11,"72222,"21004, */
X/* &		"40,0,"64222,"21000,"40,0,"61000,-1,-1, */
X/* &	 3RHEL,2RLO,2RHI,0,2,"2227,"50227, */
X/* &	 3RBLO,1RW,15,"62146,"61007,-1,-1,"61002,"4,0, */
X/* &		"40160,"61007,-1,-1,"40165,"61005,-1,-1, */
X/* &	 3RINF,3RLAT,4,"70146,"61002,"4,0, */
X/* &	 3RJUM,1RP,3RLEA,1RP,5,"133,"40133,"61001,-1,-1, */
X/* &	 3RKIL,1RL,3RMUR,3RDER,3RSLA,1RY,3RSTA,1RB,3RDIS,3RPAT, */
X/* &		7,"60213,"21000,0,"200, */
X/* &		"44002,0,"1000, */
X/* &	 3RKNO,2RCK,3RRAP,0,12,"42166,"61003,-1,-1, */
X/* &		"40166,"61012,-1,-1,"40215,"23006,"40,0, */
X/* &	 3RLIG,2RHT,11,"42173,"75000,"100,0, */
X/* &		"60211,"61000,"100,0,"54002,"10,0, */
X/* &	 3RLOC,1RK,4,"40134,"20000,-1,-1/ */
X
X/* 	DATA VVOC5/3RLOO,1RK,1RL,0,3RSTA,2RRE,3RGAZ,1RE, */
X/* &		13,"167,"40167,"60003,-1,-1, */
X/* &		"40231,"61010,-1,-1,"40230,"60005,-1,-1, */
X/* &	 3RMEL,1RT,3RLIQ,3RUIF,4,"70145,"61002,"10,0, */
X/* &	 3RMOV,1RE,4,"40172,"20000,-1,-1, */
X/* &	 3RPUL,1RL,3RTUG,0,8,"42172,"21000,-1,-1, */
X/* &		"40172,"21012,-1,-1, */
X/* &	 3RMUN,1RG,3RHAC,1RK,3RFRO,1RB,3RDAM,3RAGE, */
X/* &		5,"52212,"70212,"44002,-1,-1, */
X/* &	 3ROPE,1RN,11,"42175,"61000,"10200,0, */
X/* &		"60175,"61000,"10200,0,"54002,"4,"1000, */
X/* &	 3RPIC,1RK,4,"40204,"61007,"20000,"40, */
X/* &	 3RPLU,1RG,3RGLU,1RE,3RPAT,2RCH,4,"70152,"61002,-1,-1, */
X/* &	 3RPOK,1RE,3RBRE,2RAK,3RJAB,0,7,"60212,"21000,0,"200, */
X/* &		"44002,0,"1000, */
X/* &	 3RPOU,1RR,3RSPI,2RLL,11,"42223,"42000,"400,0, */
X/* &		"60223,"42000,"400,0,"60005,-1,-1, */
X/* &		3RPUM,1RP,4,"60232,"60007,-1,-1/ */
X
X/* 	DATA VVOC6/3RPUT,0,3RINS,3RERT,3RSTU,2RFF,3RPLA,2RCE, */
X/* &		8,"72220,"61005,-1,-1, */
X/* &		"40221,"61006,-1,-1, */
X/* &	 3RRAI,2RSE,3RLIF,1RT,5,"52155,"40155,"61007,-1,-1, */
X/* &	 3RREA,1RD,3RSKI,1RM,11,"42144,"71000,"40000,0, */
X/* &		"60144,"71000,"40000,0,"61002,-1,-1, */
X/* &	 3RSTR,3RIKE,12,"60215,"23000,"40,0, */
X/* &		"44002,0,"1000,"42215,"23000,"40,0,"50173, */
X/* &	 3RSWI,2RNG,3RTHR,3RUST,7,"60214,"44000,0,"1000, */
X/* &		"21003,0,"200, */
X/* &	 3RTAK,1RE,3RGET,0,3RHOL,1RD,3RCAR,2RRY,3RREM,3ROVE, */
X/* &		4,"40204,"61000,"20000,"40, */
X/* &	 3RTEL,1RL,3RCOM,3RMAN,3RREQ,3RUES,4,"40217,"20000,0,"2000, */
X/* &	 3RTHR,2ROW,3RHUR,1RL,3RCHU,2RCK,14,"60224,"44000,-1,-1, */
X/* &		"21003,"40,0,"60224,"44000,-1,-1,"21002,"40,0/ */
X
X/* 	DATA VVOC7/3RTIE,0,3RFAS,3RTEN,11,"70162,"61004,-1,-1, */
X/* &		"60163,"21000,"40,0,"65002,"4,0, */
X/* &	 3RTUR,1RN,3RSET,0,22,"62164,"61000,"2,0, */
X/* &		"64002,"4,0, */
X/* &		"40173,"75012,"100,0,"40174,"75013,"100,0, */
X/* &		"60237,"61000,"2,0,"20004,-1,-1, */
X/* &	 3RUNL,3ROCK,7,"60135,"21000,-1,-1, */
X/* &		"74002,"4,0, */
X/* &	 3RWAK,1RE,3RSUR,3RPRI,3RALA,2RRM,3RSTA,3RRTL, */
X/* &		8,"42150,"20000,"40,0, */
X/* &		"40150,"20007,"40,0, */
X/* &	 3RWAV,1RE,3RFLA,3RUNT,3RBRA,3RNDI,4,"40154,"40000,-1,-1, */
X/* &	 3RWIN,1RD,5,"50233,"40233,"61007,-1,-1/ */
X
XEXTERN const integer vvoc[]
X#ifdef INIT
X	= { 3929, 8240, 1, 70, 35418, 3819, 1, 71, 31256, 8722, 1, 72, 
X	    31201, 40000, 1, 73, 35418, 30775, 1, 74, 31329, 20800, 3260, 
X	    13000, 36844, 8000, 1, 75, 11418, 24569, 1, 76, 34105, 31165, 
X	    24185, 31165, 1, 77, 37012, 19200, 1, 78, 26321, 40000, 1, 79, 
X	    32725, 2381, 1, 80, 32213, 26085, 1, 81, 3681, 31200, 1, 82, 
X	    30535, 29000, 1, 83, 27200, 0, 28049, 32000, 1, 84, 13012, 25600, 
X	    1, 40, 14966, 24000, 1, 41, 13179, 32618, 34244, 2405, 1, 42, 
X	    3243, 17600, 1, 43, 30767, 12800, 21653, 3685, 1, 44, 5135, 21440,
X	    19819, 8000, 3258, 9600, 1, 45, 7254, 11415, 1, 46, 10335, 3826, 
X	    1, 47, 10215, 0, 3685, 32128, 3258, 0, 1, 48, 29016, 8580, 1, 49, 
X	    13421, 29560, 30528, 8181, 1, 50, 37174, 0, 1, 51, 40212, 19200, 
X	    30538, 8053, 30735, 34400, 1, 52, 13416, 0, 30849, 25600, 1, 53, 
X	    10443, 17600, 30729, 32000, 6453, 22400, 5658, 30600, 1, 54, 
X	    42218, 17600, 1, 55, 11921, 22780, 1, 20536, 30462, 8000, 1, 149, 
X	    29019, 32618, 1, 150, 32373, 8000, 1, 90, 6761, 11775, 1, 94, 
X	    8975, 28929, 1, 105, 14982, 8580, 14400, 0, 1, 133, 36849, 32000, 
X	    1, 128, 14963, 2180, 1, 95, 2179, 37018, 1, 96, 1881, 14960, 1, 
X	    57, 23015, 3600, 1, 58, 4047, 0, 11929, 25800, 5413, 26081, 1, 59,
X	     9801, 32858, 5413, 21014, 31247, 11419, 14565, 1600, 1, 60, 
X	    29415, 20800, 1, 65, 24090, 8140, 1, 66, 29361, 21000, 1, 67, 
X	    6606, 19260, 1, 20583, 6619, 5529, 37121, 32000, 8961, 21174, 1, 
X	    20600, 9972, 19200, 11, 24710, 25088, 128, 0, 25090, 256, 0, 
X	    16518, 25088, 128, 0, 9974, 6400, 30605, 17600, 37125, 29000, 
X	    30605, 0, 4, 16511, 24576, -1, -1, 10212, 19823, 2, 85, 20565, 
X	    17963, 17600, 3580, 8000, 32061, 23200, 1, 20587, 19823, 8720, 1, 
X	    20590, 26459, 12800, 26325, 31160, 1, 20592, 29174, 11200, 25801, 
X	    19200, 1, 20567, 29642, 0, 4858, 8779, 32621, 5120, 10214, 6885, 
X	    1, 20591, 30721, 17800, 1, 20601, 31049, 22400, 1, 20609, 34180, 
X	    14600, 10325, 8000, 1, 20593, 36852, 17600, 9, 20622, 16470, 
X	    25090, -1, -1, 16470, 25093, -1, -1, 2420, 1731, 9967, 13600, 
X	    14970, 34325, 13180, 0, 13658, 32000, 7, 24717, 8704, 0, 128, 
X	    18434, 0, 512, 3801, 28960, 4, 16514, 8704, 0, 2, 3941, 30720, 
X	    5285, 2160, 5, 21592, 28760, 25090, -1, -1, 4058, 22400, 14694, 
X	    15205, 14963, 14965, 7, 24713, 25088, 16, 0, 26626, 8, 0, 5289, 
X	    20880, 12, 16541, 8199, 0, 2048, 16542, 8198, 0, 2048, 16540, 
X	    8192, 0, 2048, 5295, 30600, 4, 16510, 25088, 4224, 0, 6767, 0, 4, 
X	    16473, 18434, 4, 0, 6779, 8522, 4, 16515, 8192, 0, 2, 7129, 22840,
X	    14922, 14485, 31321, 19695, 4, 16520, 25088, 256, 0, 7135, 25600,
X	    29012, 8059, 11, 17553, 16896, -1, -1, 24721, 16896, -1, -1, 
X	    25093, -1, -1, 8060, 0, 5414, 31253, 11802, 3685, 21654, 5120, 
X	    32059, 32200, 4, 16519, 31232, 1024, 0, 8980, 14967, 7021, 30600, 
X	    4, 16508, 31232, 64, 0, 11582, 8000, 12854, 6400, 7014, 2405, 11, 
X	    29842, 8708, 32, 0, 26770, 8704, 32, 0, 25088, -1, -1, 13012, 
X	    19800, 13160, 0, 2, 1175, 20631, 3695, 36800, 15, 25702, 25095, 
X	    -1, -1, 25090, 4, 0, 16496, 25095, -1, -1, 16501, 25093, -1, -1, 
X	    14966, 19260, 4, 28774, 25090, 4, 0, 16853, 25600, 19401, 25600, 
X	    5, 91, 16475, 25089, -1, -1, 17972, 19200, 21658, 6618, 30881, 
X	    40000, 31201, 3200, 6779, 25660, 7, 24715, 8704, 0, 128, 18434, 0,
X	    512, 18175, 5240, 28856, 0, 12, 17526, 25091, -1, -1, 16502, 
X	    25098, -1, -1, 16525, 9734, 32, 0, 19567, 13600, 11, 17531, 31232,
X	    64, 0, 24713, 25088, 64, 0, 22530, 8, 0, 19803, 17600, 4, 16476, 
X	    8192, -1, -1, 19815, 17600, 19200, 0, 31201, 29000, 11266, 8000, 
X	    13, 119, 16503, 24579, -1, -1, 16537, 25096, -1, -1, 16536, 24581,
X	    -1, -1, 21012, 32000, 19577, 33966, 4, 28773, 25090, 8, 0, 21422,
X	    8000, 4, 16506, 8192, -1, -1, 26452, 19200, 32847, 0, 8, 17530, 
X	    8704, -1, -1, 16506, 8714, -1, -1, 21654, 11200, 12843, 17600, 
X	    10335, 3200, 6453, 1885, 5, 21642, 28810, 18434, -1, -1, 24645, 
X	    22400, 11, 17533, 25088, 4224, 0, 24701, 25088, 4224, 0, 22530, 4,
X	    512, 25963, 17600, 4, 16516, 25095, 8192, 32, 26101, 11200, 
X	    11701, 8000, 25660, 5120, 4, 28778, 25090, -1, -1, 26211, 8000, 
X	    3925, 2040, 16042, 0, 7, 24714, 8704, 0, 128, 18434, 0, 512, 
X	    26221, 28800, 31049, 19680, 11, 17555, 17408, 256, 0, 24723, 
X	    17408, 256, 0, 24581, -1, -1, 26453, 25600, 4, 24730, 24583, -1, 
X	    -1, 26460, 0, 14979, 8740, 31221, 9840, 26081, 5000, 8, 29840, 
X	    25093, -1, -1, 16529, 25094, -1, -1, 28849, 30600, 19566, 32000, 
X	    5, 21613, 16493, 25095, -1, -1, 29001, 6400, 30849, 20800, 11, 
X	    17508, 29184, 16384, 0, 24676, 29184, 16384, 0, 25090, -1, -1, 
X	    31218, 14845, 12, 24717, 9728, 32, 0, 18434, 0, 512, 17549, 9728, 
X	    32, 0, 20603, 31329, 22680, 32338, 34380, 7, 24716, 18432, 0, 512,
X	    8707, 0, 128, 32051, 8000, 11420, 0, 13412, 6400, 4858, 29800, 
X	    29013, 24885, 4, 16516, 25088, 8192, 32, 32212, 19200, 5413, 
X	    20854, 29017, 33819, 4, 16527, 8192, 0, 1024, 32338, 24920, 13658,
X	    19200, 5141, 5240, 14, 24724, 18432, -1, -1, 8707, 32, 0, 24724, 
X	    18432, -1, -1, 8706, 32, 0, 32365, 0, 9659, 32214, 11, 28786, 
X	    25092, -1, -1, 24691, 8704, 32, 0, 27138, 4, 0, 32858, 22400, 
X	    30620, 0, 22, 25716, 25088, 2, 0, 26626, 4, 0, 16507, 31242, 64, 
X	    0, 16508, 31243, 64, 0, 24735, 25088, 2, 0, 8196, -1, -1, 34172, 
X	    24131, 7, 24669, 8704, -1, -1, 30722, 4, 0, 36851, 8000, 31258, 
X	    26329, 2081, 29320, 31201, 29612, 8, 17512, 8192, 32, 0, 16488, 
X	    8199, 32, 0, 36862, 8000, 10081, 34180, 3921, 22569, 4, 16492, 
X	    16384, -1, -1, 37174, 6400, 5, 20635, 16539, 25095, -1, -1, -1 }
X#endif
X	;
X
X/* OBJECTS--	MAPS OBJECTS TO OBJECT INDICES */
X
X/* SAME FORMAT AS AVOC. */
X
X/*   THE FOLLOWING DATA STATEMENT WAS ORIGINALLY: */
X
X/* 	DATA OVOC1/3RBAG,0,1,25,100,3RSAC,1RK,1,3RGAR,3RLIC,2, */
X/* &	 3RCLO,2RVE,2,3RFOO,1RD,3,3RSAN,3RDWI,3,3RLUN,2RCH,3, */
X/* &	 3RDIN,3RNER,3, */
X/* &	 3RGUN,1RK,4,55,3RPIE,2RCE,4,143,186,3RSLA,1RG,4,3RCOA,1RL,5, */
X/* &	 3RPIL,1RE,5,18,38,78,87,88,122,3RHEA,1RP,5, */
X/* &	 3RFIG,3RURI,6, */
X/* &	 3RMAC,3RHIN,7,3RPDP,2R10,7,3RPDP,2R11,7,3RDRY,2RER,7, */
X/* &	 3RLID,0,7,3RDIA,3RMON,8,3RCAS,1RE,9,123,3RBOT,3RTLE,10,121, */
X/* &	 3RCON,3RTAI,10,3RWAT,2RER,11,209,3RQUA,3RNTI,11,209, */
X/* &	 3RLIQ,3RUID,11,209,3RH2O,0,11,209, */
X/* &	 3RROP,1RE,12,101,3RHEM,1RP,12,3RCOI,1RL,12,110, */
X/* &	 3RKNI,2RFE,13,21,3RBLA,2RDE,13,14,3RSWO,2RRD,14,3RORC,3RHRI,14, */
X/* &	 3RGLA,3RMDR,14,3RLAM,1RP,15,16,22,3RLAN,3RTER,15,16,22, */
X/* &	 3RRUG,0,17,3RCAR,3RPET,17, */
X/* &	 3RLEA,3RVES,18,3RLEA,1RF,18,3RTRO,2RLL,19, */
X/* &	 3RAXE,0,20,3RDIN,3RNER,3/ */
X
X/* 	DATA OVOC2/3RKEY,1RS,23,3RKEY,0,23, */
X/* &	 3RSET,0,23,3RBON,2RES,24,3RSKE,3RLET,24,3RBOD,1RY,24,73, */
X/* &	 3RCOI,2RNS,25,3RBAR,0,26,165,168, */
X/* &	 3RNEC,3RKLA,27,3RPEA,3RRLS,27,3RMIR,3RROR,28,29,212, */
X/* &	 3RICE,0,30,3RMAS,1RS,30,3RGLA,3RCIE,30,3RRUB,1RY,31, */
X/* &	 3RTRI,3RDEN,32,3RFOR,1RK,32,3RCOF,3RFIN,33,3RCAS,3RKET,33, */
X/* &	 3RTOR,2RCH,34,3RCAG,1RE,35,36,124,125,3RDUM,3RBWA,35,36, */
X/* &	 3RBAS,3RKET,35,36,98,113,3RBRA,3RCEL,37, */
X/* &	 3RJEW,2REL,37,3RTIM,3RBER,38,3RBOX,0,39,53,105,3RSTR,3RADI,40, */
X/* &	 3RVIO,3RLIN,40,3RENG,3RRAV,41,3RINS,3RCRI,41,44,3RGHO,2RST,42, */
X/* &	 3RSPI,3RRIT,42,3RFIE,2RND,42,3RGRA,2RIL,43,3RPRA,3RYER,44,47, */
X/* &	 3RTRU,2RNK,45,3RCHE,2RST,45,3RBEL,1RL,46, */
X/* &	 3RBOO,1RK,47,49,114,115,116,117,3RBIB,2RLE,47/ */
X
X/* 	DATA OVOC3/3RGOO,3RDBO,47,3RCAN,3RDLE,48,3RPAI,1RR,48, */
X/* &	 3RGUI,3RDEB,49, */
X/* &	 3RGUI,2RDE,49,3RPAP,2RER,50,122,143,186,3RNEW,3RSPA,50, */
X/* &	 3RISS,2RUE,50,3RREP,3RORT,50,3RMAG,3RAZI,50,3RNEW,1RS,50, */
X/* &	 3RMAT,3RCHB,51, */
X/* &	 3RMAT,2RCH,51,3RMAT,3RCHE,51,3RADV,3RERT,52,3RPAM,3RPHL,52, */
X/* &	 3RLEA,3RFLE,52,3RBOO,3RKLE,52,3RMAI,3RLBO,53, */
X/* &	 3RTUB,1RE,54,3RTOO,3RTHP,54,3RPUT,2RTY,55,3RMAT,3RERI,55, */
X/* &	 3RGLU,1RE,55,3RWRE,3RNCH,56,3RSCR,3REWD,57, */
X/* &	 3RCYC,3RLOP,58,3RMON,3RSTE,58,3RCHA,3RLIC,59,3RCUP,0,59, */
X/* &	 3RGOB,3RLET,59,3RPAI,3RNTI,60,149,3RART,0,60,149, */
X/* &	 3RCAN,3RVAS,60,3RPIC,3RTUR,60,3RWOR,1RK,60, */
X/* &	 3RMAS,3RTER,60,215,3RTHI,2REF,61,3RROB,3RBER,61, */
X/* &	 3RCRI,3RMIN,61,3RBAN,3RDIT,61,3RCRO,2ROK,61,3RGEN,1RT,61, */
X/* &	 3RGEN,3RTLE,61,3RMAN,0,61,3RTHU,1RG,61, */
X/* &	 3RBAG,3RMAN,61,3RSTI,3RLLE,62/ */
X
X/* 	DATA OVOC4/3RWIN,3RDOW,63,3RBOL,1RT,64,3RNUT,0,64, */
X/* &	 3RGRA,2RTE,65,3RGRA,3RTIN,65,3RDOO,1RR,66,67,68,69, */
X/* &	 164,172,173,174,175,189,3RTRA,3RPDO,66, */
X/* &	 3RTRA,3RP$D,66,3RSWI,3RTCH,70,76,79,80,81,82,170, */
X/* &	 3RHEA,1RD,71,120,3RCOR,3RPSE,72,73,3RBOD,3RIES,73, */
X/* &	 3RDAM,0,74,3RGAT,2RES,74,76,3RGAT,1RE,74,76, */
X/* &	 3RFCD,0,74,3RRAI,1RL,75,3RRAI,3RLIN,75, */
X/* &	 3RBUT,3RTON,76,79,80,81,82,127,128,129,170,176, */
X/* &	 3RBUB,3RBLE,77,3RLEA,1RK,78,3RDRI,1RP,78, */
X/* &	 3RHOL,1RE,78,107, */
X/* &	 3RBAT,0,83,3RRAI,3RNBO,84, */
X/* &	 3RPOT,0,85,3RSTA,3RTUE,86,3RSCU,3RLPT,86,3RROC,1RK,86, */
X/* &	 3RBOA,1RT,87,88,90,3RPLA,3RSTI,87,88, */
X/* &	 3RPUM,1RP,89/ */
X
X/* 	DATA OVOC5/3RAIR,3RPUM,89,3RAIR,3R$PU,89,3RLAB,2REL,91,112, */
X/* &	 3RFIN,3REPR,91,3RSTI,2RCK,92,3RBAR,3RREL,93,3RBUO,1RY,94, */
X/* &	 3REME,3RRAL,95,3RSHO,3RVEL,96,3RGUA,2RNO,97,3RCRA,1RP,97, */
X/* &	 3RSHI,1RT,97,3RHUN,1RK,97,3RBAL,3RLOO,98,113, */
X/* &	 3RREC,3REPT,99,3RWIR,1RE,101,110, */
X/* &	 3RHOO,1RK,102,103,3RZOR,3RKMI,104,148,3RCOI,1RN,104, */
X/* &	 3RSAF,1RE,105,3RCAR,1RD,106,188,3RNOT,1RE,106,186, */
X/* &	 3RSLO,1RT,107,187,3RCRO,2RWN,108,3RBRI,2RCK,109, */
X/* &	 3RFUS,1RE,110,3RGNO,2RME,111,152, */
X/* &	 3RSTA,2RMP,118, */
X/* &	 3RTOM,1RB,119,3RCRY,2RPT,119,3RGRA,2RVE,119,3RHEA,2RDS,120, */
X/* &	 3RPOL,2RES,120,3RIMP,3RLEM,120/ */
X
X/* 	DATA OVOC6/3RLOS,3RERS,120,3RCOK,2RES,121, */
X/* &	 3RLIS,3RTIN,122,3RSTA,2RCK,122, */
X/* &	 3RPRI,3RNTO,122, */
X/* &	 3RSPH,3RERE,126,3RBAL,1RL,126, */
X/* &	 3RETC,3RHIN,130,131, */
X/* &	 3RWAL,2RLS,130,131,198,205,206,207,208,3RWAL,1RL, */
X/* &	 130,131,159,160,161,162,163,164,198,205,206,207,208, */
X/* &	 3RFLA,2RSK,132,3RPOO,1RL,133,3RSEW,3RAGE,133, */
X/* &	 3RTIN,0,134,3RSAF,3RFRO,134,3RSPI,3RCES,134,3RTAB,2RLE,135, */
X/* &	 3RPOS,1RT,136,166,167,3RPOS,2RTS,136,3RBUC,3RKET,137, */
X/* &	 3RCAK,1RE,138,139,140,141,3RICI,2RNG,139,140,141, */
X/* &	 3RROB,2ROT,142,3RROB,2RBY,142, */
X/* &	 3RC3P,1RO,142,3RR2D,1R2,142/ */
X
X/* 	DATA OVOC6A/3RPAN,2REL,159,160,161,162,163,164,213, */
X/* &	 3RPOL,1RE,166,167,3RTBA,1RR,168,3RT$B,2RAR,168, */
X/* &	 3RARR,2ROW,169,3RPOI,2RNT,169,3RBEA,1RM,171, */
X/* &	 3RDIA,1RL,177,3RSUN,3RDIA,177,1R1,0,178, */
X/* &	 3RONE,0,178,1R2,0,179,3RTWO,0,179,1R3,0,180, */
X/* &	 3RTHR,2REE,180,1R4,0,181,3RFOU,1RR,181,1R5,0,182, */
X/* &	 3RFIV,1RE,182,1R6,0,183,3RSIX,0,183,1R7,0,184, */
X/* &	 3RSEV,2REN,184,1R8,0,185,3REIG,2RHT,185, */
X/* &	 3RWAR,3RNIN,186,3RSLI,1RT,187, */
X/* &	 2RIT,0,192,3RTHA,1RT,192,3RTHI,1RS,192/ */
X
X/* 	DATA OVOC7/2RME,0,193,3RMYS,3RELF,193,3RCRE,3RTIN,193, */
X/* &	 3RALL,0,194,3REVE,3RRYT,194, */
X/* &	 3RTRE,3RASU,195,3RVAL,3RUAB,195,3RSAI,3RLOR,196,3RTEE,2RTH,197, */
X/* &	 3RGRU,1RE,199,3RHAN,1RD,200,3RHAN,2RDS,200, */
X/* &	 3RLUN,2RGS,201,3RAIR,0,201,3RAVI,3RATO,202, */
X/* &	 3RFLY,2RER,202,3RTRE,1RE,144,145,204, */
X/* &	 3RCLI,2RFF,146,147,3RLED,2RGE,146,147,3RPOR,3RTRA,149, */
X/* &	 3RSTA,2RCK,148,3RBIL,2RLS,148, */
X/* &	 3RVAU,2RLT,150,3RCUB,1RE,150,3RLET,3RTER,67,150, */
X/* &	 3RCUR,3RTAI,151,3RLIG,2RHT,151,3RNES,1RT,153, */
X/* &	 3REGG,0,154,155,3RBAU,3RBLE,156,3RCAN,3RARY,157,158, */
X/* &	 3RBIR,1RD,203,3RSON,3RGBI,203, */
X/* &	 3RGUA,2RRD,210,3RGUA,3RRDI,210,3RROS,1RE,211, */
X/* &	 3RSTR,3RUCT,212,3RCHA,3RNNE,214, */
X/* &	 3RKEE,3RPER,215,3RLAD,3RDER,216/ */
X
XEXTERN const integer ovoc[]
X#ifdef INIT
X	= { 3247, 0, 1, 25, 100, 30443, 17600, 1, 11258, 19563, 2, 5295,
X	    35400, 2, 10215, 6400, 3, 30454, 7329, 3, 20054, 5120, 3, 6774, 
X	    22618, 3, 12054, 17600, 4, 55, 25965, 5000, 4, 143, 186, 30881, 
X	    11200, 4, 5401, 19200, 5, 25972, 8000, 5, 18, 38, 78, 87, 88, 122,
X	    13001, 25600, 5, 9967, 34329, 6, 20843, 13174, 7, 25776, 50800, 
X	    7, 25776, 50840, 7, 7145, 8720, 7, 19564, 0, 7, 6761, 21414, 8, 
X	    4859, 8000, 9, 123, 3820, 32485, 10, 121, 5414, 32049, 10, 36860, 
X	    8720, 11, 209, 28041, 23209, 11, 209, 19577, 33964, 11, 209, 
X	    14095, 0, 11, 209, 29416, 8000, 12, 101, 13013, 25600, 12, 5409, 
X	    19200, 12, 110, 18169, 9800, 13, 21, 3681, 6600, 13, 14, 31335, 
X	    28960, 14, 24723, 13529, 14, 11681, 20978, 14, 19253, 25600, 15, 
X	    16, 22, 19254, 32218, 15, 16, 22, 29647, 0, 17, 4858, 25820, 17, 
X	    19401, 35419, 18, 19401, 9600, 18, 32735, 19680, 19, 2565, 0, 20, 
X	    6774, 22618, 3, 17825, 30400, 23, 17825, 0, 23, 30620, 0, 23, 
X	    3814, 8760, 24, 30845, 19420, 24, 3804, 40000, 24, 73, 5409, 
X	    23160, 25, 3258, 0, 26, 165, 168, 22603, 18081, 27, 25801, 29299, 
X	    27, 21178, 29418, 28, 29, 212, 14525, 0, 30, 20859, 30400, 30, 
X	    11681, 5165, 30, 29642, 40000, 31, 32729, 6614, 32, 10218, 17600, 
X	    32, 5406, 9974, 33, 4859, 17820, 33, 32618, 5120, 34, 4847, 8000, 
X	    35, 36, 124, 125, 7253, 4121, 35, 36, 3259, 17820, 35, 36, 98, 
X	    113, 3921, 5012, 37, 16223, 8480, 37, 32373, 3418, 38, 3824, 0, 
X	    39, 53, 105, 31218, 1769, 40, 35575, 19574, 40, 8567, 28862, 41, 
X	    14979, 5529, 41, 44, 11535, 31200, 42, 31049, 29180, 42, 9965, 
X	    22560, 42, 11921, 14880, 43, 26321, 40218, 44, 47, 32741, 22840, 
X	    45, 5125, 31200, 45, 3412, 19200, 46, 3815, 17600, 47, 49, 114, 
X	    115, 116, 117, 3562, 19400, 47, 11815, 6495, 47, 4854, 6885, 48, 
X	    25649, 28800, 48, 12049, 6602, 49, 12049, 6600, 49, 25656, 8720, 
X	    50, 122, 143, 186, 22623, 31041, 50, 15179, 33800, 50, 29016, 
X	    24740, 50, 20847, 2649, 50, 22623, 30400, 50, 20860, 5122, 51, 
X	    20860, 5120, 51, 20860, 5125, 51, 1782, 8740, 52, 25653, 25932, 
X	    52, 19401, 10085, 52, 3815, 18085, 52, 20849, 19295, 53, 32842, 
X	    8000, 54, 32615, 32336, 54, 26460, 33000, 55, 20860, 8729, 55, 
X	    11701, 8000, 55, 37525, 22528, 56, 30538, 8924, 57, 5803, 19816, 
X	    58, 21414, 31205, 58, 5121, 19563, 59, 5656, 0, 59, 11802, 19420, 
X	    59, 25649, 23209, 60, 149, 2340, 0, 60, 149, 4854, 35259, 60, 
X	    25963, 32858, 60, 37418, 17600, 60, 20859, 32218, 60, 215, 32329, 
X	    8240, 61, 29402, 3418, 61, 5529, 21175, 61, 3254, 6780, 61, 5535, 
X	    24440, 61, 11414, 32000, 61, 11414, 32485, 61, 20854, 0, 61, 
X	    32341, 11200, 61, 3247, 20854, 61, 31209, 19685, 62, 37174, 7023, 
X	    63, 3812, 32000, 64, 23260, 0, 64, 11921, 32200, 65, 11921, 32374,
X	     65, 7015, 28800, 66, 67, 68, 69, 164, 172, 173, 174, 175, 189, 
X	    32721, 25775, 66, 32721, 26684, 66, 31329, 32128, 70, 76, 79, 80, 
X	    81, 82, 170, 13001, 6400, 71, 120, 5418, 26365, 72, 73, 3804, 
X	    14619, 73, 6453, 0, 74, 11260, 8760, 74, 76, 11260, 8000, 74, 76, 
X	    9724, 0, 74, 28849, 19200, 75, 28849, 19574, 75, 4060, 32614, 76, 
X	    79, 80, 81, 82, 127, 128, 129, 170, 176, 4042, 3685, 77, 19401, 
X	    17600, 78, 7129, 25600, 78, 13412, 8000, 78, 107, 3260, 0, 83, 
X	    28849, 22495, 84, 26220, 0, 85, 31201, 32845, 86, 30541, 19860, 
X	    86, 29403, 17600, 86, 3801, 32000, 87, 88, 90, 26081, 31209, 87, 
X	    88, 26453, 25600, 89, 1978, 26453, 89, 1978, 43861, 89, 19242, 
X	    8480, 91, 112, 9974, 8658, 91, 31209, 5240, 92, 3258, 29012, 93, 
X	    4055, 40000, 94, 8525, 28852, 95, 30735, 35412, 96, 12041, 23000, 
X	    97, 5521, 25600, 97, 30729, 32000, 97, 13654, 17600, 97, 3252, 
X	    19815, 98, 113, 29003, 8660, 99, 37178, 8000, 101, 110, 13415, 
X	    17600, 102, 103, 42218, 18129, 104, 148, 5409, 22400, 104, 30446, 
X	    8000, 105, 4858, 6400, 106, 188, 23020, 8000, 106, 186, 30895, 
X	    32000, 107, 187, 5535, 37360, 108, 3929, 5240, 109, 10459, 8000, 
X	    110, 11775, 21000, 111, 152, 31201, 21440, 118, 32613, 3200, 119, 
X	    5545, 26400, 119, 11921, 35400, 119, 13001, 7160, 120, 26212, 
X	    8760, 120, 14936, 19413, 120, 19819, 8739, 120, 5411, 8760, 121, 
X	    19579, 32374, 122, 31201, 5240, 122, 26329, 23215, 122, 31048, 
X	    8725, 126, 3252, 19200, 126, 8803, 13174, 130, 131, 36852, 19960, 
X	    130, 131, 198, 205, 206, 207, 208, 36852, 19200, 130, 131, 159, 
X	    160, 161, 162, 163, 164, 198, 205, 206, 207, 208, 10081, 30840, 
X	    132, 26215, 19200, 133, 30623, 1885, 133, 32374, 0, 134, 30446, 
X	    10335, 134, 31049, 5019, 134, 32042, 19400, 135, 26219, 32000, 
X	    136, 166, 167, 26219, 32760, 136, 4043, 17820, 137, 4851, 8000, 
X	    138, 139, 140, 141, 14529, 22680, 139, 140, 141, 29402, 24800, 
X	    142, 29402, 4200, 142, 6136, 24000, 142, 30084, 51200, 142, 25654,
X	    8480, 159, 160, 161, 162, 163, 164, 213, 26212, 8000, 166, 167, 
X	    32081, 28800, 168, 33082, 2320, 168, 2338, 24920, 169, 26209, 
X	    23200, 169, 3401, 20800, 171, 6761, 19200, 177, 31254, 6761, 177, 
X	    49600, 0, 178, 24565, 0, 178, 51200, 0, 179, 32935, 0, 179, 52800,
X	    0, 180, 32338, 8200, 180, 54400, 0, 181, 10221, 28800, 181, 
X	    56000, 0, 182, 9982, 8000, 182, 57600, 0, 183, 30784, 0, 183, 
X	    59200, 0, 184, 30622, 8560, 184, 60800, 0, 185, 8367, 13600, 185, 
X	    36858, 22774, 186, 30889, 32000, 187, 15200, 0, 192, 32321, 32000,
X	    192, 32329, 30400, 192, 21000, 0, 193, 21819, 8486, 193, 5525, 
X	    32374, 193, 2092, 0, 194, 8885, 29820, 194, 32725, 2381, 195, 
X	    35252, 33642, 195, 30449, 19818, 196, 32205, 32320, 197, 11941, 
X	    8000, 199, 12854, 6400, 200, 12854, 7160, 200, 20054, 11960, 201, 
X	    1978, 0, 201, 2489, 2415, 202, 10105, 8720, 202, 32725, 8000, 144,
X	    145, 204, 5289, 9840, 146, 147, 19404, 11400, 146, 147, 26218, 
X	    32721, 149, 31201, 5240, 148, 3572, 19960, 148, 35261, 20000, 150,
X	    5642, 8000, 150, 19420, 32218, 67, 150, 5658, 32049, 151, 19567, 
X	    13600, 151, 22619, 32000, 153, 8287, 0, 154, 155, 3261, 3685, 156,
X	    4854, 2345, 157, 158, 3578, 6400, 203, 31014, 11289, 203, 12041, 
X	    28960, 210, 12041, 28969, 210, 29419, 8000, 211, 31218, 33740, 
X	    212, 5121, 22965, 214, 17805, 25818, 215, 19244, 6618, 216, -1 }
X#endif
X	;
X
X#endif
END_OF_FILE
if test 34040 -ne `wc -c <'parse.h'`; then
    echo shar: \"'parse.h'\" unpacked with wrong size!
fi
# end of 'parse.h'
fi
echo shar: End of archive 5 \(of 12\).
cp /dev/null ark5isdone
MISSING=""
for I in 1 2 3 4 5 6 7 8 9 10 11 12 ; do
    if test ! -f ark${I}isdone ; then
	MISSING="${MISSING} ${I}"
    fi
done
if test "${MISSING}" = "" ; then
    echo You have unpacked all 12 archives.
    rm -f ark[1-9]isdone ark[1-9][0-9]isdone
else
    echo You still need to unpack the following archives:
    echo "        " ${MISSING}
fi
##  End of shell archive.
exit 0