home *** CD-ROM | disk | FTP | other *** search
- Path: uunet!paladin.american.edu!gatech!nntp.msstate.edu!emory!dragon.com!cts
- From: cts@dragon.com
- Newsgroups: vmsnet.sources.games
- Subject: Dungeon Part 26/30
- Message-ID: <1992Feb24.013734.819@dragon.com>
- Date: 24 Feb 92 06:37:34 GMT
- Organization: Computer Projects Unlimited
- Lines: 1429
-
- -+-+-+-+-+-+-+-+ START OF PART 26 -+-+-+-+-+-+-+-+
- XC !ASK QUESTION.
- X RETURN
- XC
- X14200 CALL RSPEAK(798)
- XC !NO REPLY.
- X RETURN
- XC
- XC O46-- LOCKED DOOR
- XC
- X15000 IF(PRSA.NE.OPENW) GO TO 10
- XC !OPEN?
- X CALL RSPEAK(778)
- XC !CANT.
- X RETURN
- XC
- XC O47-- CELL DOOR
- XC
- X16000 NOBJS=OPNCLS(CDOOR,779,780)
- XC !OPEN/CLOSE?
- X RETURN
- X`0C
- XC NOBJS, PAGE 9
- XC
- XC O48-- DIALBUTTON
- XC
- X17000 IF(PRSA.NE.PUSHW) GO TO 10
- XC !PUSH?
- X CALL RSPEAK(809)
- XC !CLICK.
- X IF(QOPEN(CDOOR)) CALL RSPEAK(810)
- XC !CLOSE CELL DOOR.
- XC
- X DO 17100 I=1,OLNT
- XC !RELOCATE OLD TO HYPER.
- X IF((OROOM(I).EQ.CELL).AND.(and(OFLAG1(I),DOORBT).EQ.0))
- X & CALL NEWSTA(I,0,LCELL*HFACTR,0,0)
- X IF(OROOM(I).EQ.(PNUMB*HFACTR))
- X & CALL NEWSTA(I,0,CELL,0,0)
- X17100 CONTINUE
- XC
- X OFLAG2(ODOOR)=and(OFLAG2(ODOOR), not(OPENBT))
- X OFLAG2(CDOOR)=and(OFLAG2(CDOOR), not(OPENBT))
- X OFLAG1(ODOOR)=and(OFLAG1(ODOOR), not(VISIBT))
- X IF(PNUMB.EQ.4) OFLAG1(ODOOR)=or(OFLAG1(ODOOR),VISIBT)
- XC
- X IF(AROOM(PLAYER).NE.CELL) GO TO 17400
- XC !PLAYER IN CELL?
- X IF(LCELL.NE.4) GO TO 17200
- XC !IN RIGHT CELL?
- X OFLAG1(ODOOR)=or(OFLAG1(ODOOR), VISIBT)
- X F=MOVETO(NCELL,PLAYER)
- XC !YES, MOVETO NCELL.
- X GO TO 17400
- X17200 F=MOVETO(PCELL,PLAYER)
- XC !NO, MOVETO PCELL.
- XC
- X17400 LCELL=PNUMB
- X RETURN
- X`0C
- XC NOBJS, PAGE 10
- XC
- XC O49-- DIAL INDICATOR
- XC
- X18000 IF(PRSA.NE.SPINW) GO TO 18100
- XC !SPIN?
- X PNUMB=RND(8)+1
- XC !WHEE
- XC !
- X CALL RSPSUB(797,712+PNUMB)
- X RETURN
- XC
- X18100 IF((PRSA.NE.MOVEW).AND.(PRSA.NE.PUTW).AND.
- X & (PRSA.NE.TRNTOW)) GO TO 10
- X IF(PRSI.NE.0) GO TO 18200
- XC !TURN DIAL TO X?
- X CALL RSPEAK(806)
- XC !MUST SPECIFY.
- X RETURN
- XC
- X18200 IF((PRSI.GE.NUM1).AND.(PRSI.LE.NUM8)) GO TO 18300
- X CALL RSPEAK(807)
- XC !MUST BE DIGIT.
- X RETURN
- XC
- X18300 PNUMB=PRSI-NUM1+1
- XC !SET UP NEW.
- X CALL RSPSUB(808,712+PNUMB)
- X RETURN
- XC
- XC O50-- GLOBAL MIRROR
- XC
- X19000 NOBJS=MIRPAN(832,.FALSE.)
- X RETURN
- XC
- XC O51-- GLOBAL PANEL
- XC
- X20000 IF(HERE.NE.FDOOR) GO TO 20100
- XC !AT FRONT DOOR?
- X IF((PRSA.NE.OPENW).AND.(PRSA.NE.CLOSEW)) GO TO 10
- X CALL RSPEAK(843)
- XC !PANEL IN DOOR, NOGO.
- X RETURN
- XC
- X20100 NOBJS=MIRPAN(838,.TRUE.)
- X RETURN
- XC
- XC O52-- PUZZLE ROOM SLIT
- XC
- X21000 IF((PRSA.NE.PUTW).OR.(PRSI.NE.CSLIT)) GO TO 10
- X IF(PRSO.NE.GCARD) GO TO 21100
- XC !PUT CARD IN SLIT?
- X CALL NEWSTA(PRSO,863,0,0,0)
- XC !KILL CARD.
- X CPOUTF=.TRUE.
- XC !OPEN DOOR.
- X OFLAG1(STLDR)=and(OFLAG1(STLDR),not(VISIBT))
- X RETURN
- XC
- X21100 IF((and(OFLAG1(PRSO),VICTBT).EQ.0).AND.
- X & (and(OFLAG2(PRSO),VILLBT).EQ.0)) GO TO 21200
- X CALL RSPEAK(RND(5)+552)
- XC !JOKE FOR VILL, VICT.
- X RETURN
- XC
- X21200 CALL NEWSTA(PRSO,0,0,0,0)
- XC !KILL OBJECT.
- X CALL RSPSUB(864,ODO2)
- XC !DESCRIBE.
- X RETURN
- XC
- X END
- X`0C
- XC MIRPAN-- PROCESSOR FOR GLOBAL MIRROR/PANEL
- XC
- XC DECLARATIONS
- XC
- X LOGICAL FUNCTION MIRPAN(ST,PNF)
- X IMPLICIT INTEGER(A-Z)
- X LOGICAL PNF
- X
- X INCLUDE 'GAMESTATE.LIB'
- X INCLUDE 'PARSER.LIB'
- X INCLUDE 'VERBS.LIB'
- X INCLUDE 'FLAGS.LIB'
- X`0C
- XC MIRPAN, PAGE 2
- XC
- X MIRPAN=.TRUE.
- X NUM=MRHERE(HERE)
- XC !GET MIRROR NUM.
- X IF(NUM.NE.0) GO TO 100
- XC !ANY HERE?
- X CALL RSPEAK(ST)
- XC !NO, LOSE.
- X RETURN
- XC
- X100 MRBF=0
- XC !ASSUME MIRROR OK.
- X IF(((NUM.EQ.1).AND..NOT.MR1F).OR.
- X & ((NUM.EQ.2).AND..NOT.MR2F)) MRBF=1
- X IF((PRSA.NE.MOVEW).AND.(PRSA.NE.OPENW)) GO TO 200
- X CALL RSPEAK(ST+1)
- XC !CANT OPEN OR MOVE.
- X RETURN
- XC
- X200 IF(PNF.OR.((PRSA.NE.LOOKIW).AND.(PRSA.NE.EXAMIW).AND.
- X & (PRSA.NE.LOOKW))) GO TO 300
- X CALL RSPEAK(844+MRBF)
- XC !LOOK IN MIRROR.
- X RETURN
- XC
- X300 IF(PRSA.NE.MUNGW) GO TO 400
- XC !BREAK?
- X CALL RSPEAK(ST+2+MRBF)
- XC !DO IT.
- X IF((NUM.EQ.1).AND..NOT.PNF) MR1F=.FALSE.
- X IF((NUM.EQ.2).AND..NOT.PNF) MR2F=.FALSE.
- X RETURN
- XC
- X400 IF(PNF.OR.(MRBF.EQ.0)) GO TO 500
- XC !BROKEN MIRROR?
- X CALL RSPEAK(846)
- X RETURN
- XC
- X500 IF(PRSA.NE.PUSHW) GO TO 600
- XC !PUSH?
- X CALL RSPEAK(ST+3+NUM)
- X RETURN
- XC
- X600 MIRPAN=.FALSE.
- XC !CANT HANDLE IT.
- X RETURN
- XC
- X END
- $ CALL UNPACK [.SRC]NOBJS.FOR;1 1400445320
- $ create 'f'
- XC RDLINE- READ INPUT LINE
- XC
- XC COPYRIGHT 1980, INFOCOM COMPUTERS AND COMMUNICATIONS, CAMBRIDGE MA. 02142
- XC ALL RIGHTS RESERVED, COMMERCIAL USAGE STRICTLY PROHIBITED
- XC WRITTEN BY R. M. SUPNIK
- XC
- XC DECLARATIONS
- XC
- X SUBROUTINE RDLINE(BUFFER,LENGTH,WHO)
- X IMPLICIT INTEGER(A-Z)
- X CHARACTER BUFFER(78)
- X character*78 sysbuf
- X
- X INCLUDE 'PARSER.LIB'
- X INCLUDE 'IO.LIB'
- X
- X5 GO TO (90,10),WHO+1
- XC !SEE WHO TO PROMPT FOR.
- X10 WRITE(OUTCH,50)
- XC !PROMPT FOR GAME.
- X50 FORMAT(' >',$)
- X
- X90 READ(INPCH,100, END=210) BUFFER
- X100 FORMAT(78A1)
- X
- X DO 200 LENGTH=78,1,-1
- X IF(BUFFER(LENGTH).NE.' ') GO TO 250
- X200 CONTINUE
- X GO TO 5
- XC !END OF FILE
- X210 STOP
- XC !TRY AGAIN.
- X
- XC
- XC check for shell escape here before things are
- XC converted to upper case
- XC
- X250 if (buffer(1) .ne. '!') go to 300
- X sysbuf = ' '
- X do 275 j=2,length
- X sysbuf(j-1:j-1) = buffer(j)
- X275 continue
- X call system(sysbuf)
- X go to 5
- X
- XC CONVERT TO UPPER CASE
- X
- X300 DO 400 I=1,LENGTH
- X IF(and((BUFFER(I).GE.'a'),(BUFFER(I).LE.'z')))
- X & BUFFER(I)=char(ichar(BUFFER(I))-32)
- X400 CONTINUE
- X
- X IF(LENGTH.EQ.0) GO TO 5
- X PRSCON=1
- XC !RESTART LEX SCAN.
- X RETURN
- X END
- X`0C
- XC PARSE- TOP LEVEL PARSE ROUTINE
- XC
- XC DECLARATIONS
- XC
- XC THIS ROUTINE DETAILS ON BIT 0 OF PRSFLG
- XC
- X LOGICAL FUNCTION PARSE(INBUF,INLNT,VBFLAG)
- X IMPLICIT INTEGER(A-Z)
- X CHARACTER INBUF(78)
- X LOGICAL LEX,SYNMCH,VBFLAG
- X INTEGER OUTBUF(40)
- X
- X INCLUDE 'DEBUG.LIB'
- X INCLUDE 'PARSER.LIB'
- X INCLUDE 'XSRCH.LIB'
- XC
- X DFLAG=and(PRSFLG,1).NE.0
- X PARSE=.FALSE.
- XC !ASSUME FAILS.
- X PRSA=0
- XC !ZERO OUTPUTS.
- X PRSI=0
- X PRSO=0
- XC
- X IF(.NOT.LEX(INBUF,INLNT,OUTBUF,OUTLNT,VBFLAG)) GO TO 100
- X IF(SPARSE(OUTBUF,OUTLNT,VBFLAG)) 100,200,300
- XC !DO SYN SCAN.
- XC
- XC PARSE REQUIRES VALIDATION
- XC
- X200 IF(.NOT.VBFLAG) GO TO 350
- XC !ECHO MODE, FORCE FAIL.
- X IF(.NOT.SYNMCH(X)) GO TO 100
- XC !DO SYN MATCH.
- X IF(and((PRSO.GT.0),(PRSO.LT.XMIN))) LASTIT=PRSO
- XC
- XC SUCCESSFUL PARSE OR SUCCESSFUL VALIDATION
- XC
- X300 PARSE=.TRUE.
- X350 CALL ORPHAN(0,0,0,0,0)
- XC !CLEAR ORPHANS.
- X IF(DFLAG) WRITE(0,*) 'PARSE GOOD'
- X IF(DFLAG) PRINT 10,PARSE,PRSA,PRSO,PRSI
- X10 FORMAT(' PARSE RESULTS- ',L7,3I7)
- X RETURN
- XC
- XC PARSE FAILS, DISALLOW CONTINUATION
- XC
- X100 PRSCON=1
- X IF(DFLAG) WRITE(0,*) 'PARSE FAILED'
- X IF(DFLAG) PRINT 10,PARSE,PRSA,PRSO,PRSI
- X RETURN
- XC
- X END
- X`0C
- XC ORPHAN- SET UP NEW ORPHANS
- XC
- XC DECLARATIONS
- XC
- X SUBROUTINE ORPHAN(O1,O2,O3,O4,O5)
- X IMPLICIT INTEGER(A-Z)
- X COMMON /ORPHS/ A,B,C,D,E
- XC
- X A=O1
- XC !SET UP NEW ORPHANS.
- X B=O2
- X C=O3
- X D=O4
- X E=O5
- X RETURN
- X END
- X`0C
- XC LEX- LEXICAL ANALYZER
- XC
- XC
- XC THIS ROUTINE DETAILS ON BIT 1 OF PRSFLAG
- XC
- X LOGICAL FUNCTION LEX(INBUF,INLNT,OUTBUF,OP,VBFLAG)
- X IMPLICIT INTEGER(A-Z)
- X CHARACTER INBUF(78),J,DLIMIT(9)
- X INTEGER OUTBUF(40)
- X LOGICAL VBFLAG
- XC
- X INCLUDE 'PARSER.LIB'
- X INCLUDE 'DEBUG.LIB'
- XC
- X DATA DLIMIT/'A','Z','100'O,'1','9','22'O,'-','-','22'O/
- XC
- X DO 100 I=1,40
- XC !CLEAR OUTPUT BUF.
- X OUTBUF(I)=0
- X100 CONTINUE
- XC
- X DFLAG=and(PRSFLG,2).NE.0
- X LEX=.FALSE.
- XC !ASSUME LEX FAILS.
- X OP=-1
- XC !OUTPUT PTR.
- X50 OP=OP+2
- XC !ADV OUTPUT PTR.
- X CP=0
- XC !CHAR PTR=0.
- XC
- X200 IF(PRSCON.GT.INLNT) GO TO 1000
- XC !END OF INPUT?
- X J=INBUF(PRSCON)
- XC !NO, GET CHARACTER,
- X PRSCON=PRSCON+1
- XC !ADVANCE PTR.
- X IF(J.EQ.'.') GO TO 1000
- XC !END OF COMMAND?
- X IF(J.EQ.',') GO TO 1000
- XC !END OF COMMAND?
- X IF(J.EQ.' ') GO TO 6000
- XC !SPACE?
- X DO 500 I=1,9,3
- XC !SCH FOR CHAR.
- X IF(and((J.GE.DLIMIT(I)),(J.LE.DLIMIT(I+1))))
- X & GO TO 4000
- X500 CONTINUE
- XC
- X IF(VBFLAG) CALL RSPEAK(601)
- XC !GREEK TO ME, FAIL.
- X RETURN
- XC
- XC END OF INPUT, SEE IF PARTIAL WORD AVAILABLE.
- XC
- X1000 IF(PRSCON.GT.INLNT) PRSCON=1
- XC !FORCE PARSE RESTART.
- X IF(and((CP.EQ.0),(OP.EQ.1))) RETURN
- X IF(CP.EQ.0) OP=OP-2
- XC !ANY LAST WORD?
- X LEX=.TRUE.
- X IF(DFLAG) PRINT 10,CP,OP,PRSCON,(OUTBUF(I),I=1,OP+1)
- X10 FORMAT(' LEX RESULTS- ',3I7/1X,10O7)
- X RETURN
- XC
- XC LEGITIMATE CHARACTERS: LETTER, DIGIT, OR HYPHEN.
- XC
- X4000 J1=ichar(J)-ichar(DLIMIT(I+2))
- X IF(DFLAG) PRINT 20,J,J1,CP
- X20 FORMAT(' LEX- CHAR= ',3I7)
- X IF(CP.GE.6) GO TO 200
- XC !IGNORE IF TOO MANY CHAR.
- X K=OP+(CP/3)
- XC !COMPUTE WORD INDEX.
- X GO TO (4100,4200,4300),(MOD(CP,3)+1)
- XC !BRANCH ON CHAR.
- X4100 J2=J1*780
- XC !CHAR 1... *780
- X OUTBUF(K)=OUTBUF(K)+J2+J2
- XC !*1560 (40 ADDED BELOW).
- X4200 OUTBUF(K)=OUTBUF(K)+(J1*39)
- XC !*39 (1 ADDED BELOW).
- X4300 OUTBUF(K)=OUTBUF(K)+J1
- XC !*1.
- X CP=CP+1
- X GO TO 200
- XC !GET NEXT CHAR.
- XC
- XC SPACE
- XC
- X6000 IF(CP.EQ.0) GO TO 200
- XC !ANY WORD YET?
- X GO TO 50
- XC !YES, ADV OP.
- XC
- X END
- $ CALL UNPACK [.SRC]NP.FOR;1 544010258
- $ create 'f'
- XC SPARSE- START OF PARSE
- XC
- XC COPYRIGHT 1980, INFOCOM COMPUTERS AND COMMUNICATIONS, CAMBRIDGE MA. 02142
- XC ALL RIGHTS RESERVED, COMMERCIAL USAGE STRICTLY PROHIBITED
- XC WRITTEN BY R. M. SUPNIK
- XC
- XC DECLARATIONS
- XC
- XC THIS ROUTINE DETAILS ON BIT 2 OF PRSFLG
- XC
- X INTEGER FUNCTION SPARSE(LBUF,LLNT,VBFLAG)
- X IMPLICIT INTEGER(A-Z)
- X INTEGER LBUF(40)
- X LOGICAL LIT,OTEST,VBFLAG
- X
- X INCLUDE 'PARSER.LIB'
- X INCLUDE 'GAMESTATE.LIB'
- X INCLUDE 'DEBUG.LIB'
- X INCLUDE 'OBJECTS.LIB'
- X INCLUDE 'OINDEX.LIB'
- X INCLUDE 'ADVERS.LIB'
- X INCLUDE 'VERBS.LIB'
- X INCLUDE 'VOCAB.LIB'
- X`0C
- XC SPARSE, PAGE 2
- XC
- XC FUNCTIONS AND DATA
- XC
- X OTEST(R)=(R.GT.0).AND.(R.LT.R50MIN)
- XC
- X DATA R50MIN/1RA/,R50WAL/3RWAL/
- XC
- XC BUZZ WORDS-- IGNORED IN SYNTACTIC PROCESSING
- XC
- XC
- X DATA BVOC/3RAND,0,2RBY,0,2RIS,0,1RA,0,
- X & 2RAN,0,3RTHE,0,3RRUN,0,2RGO,0,3RPRO,3RCEE,0,0/
- XC
- XC
- XC
- XC PREPOSITIONS-- MAPS PREPOSITIONS TO INDICES
- XC
- 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/
- XC
- XC
- XC DIRECTIONS-- MAPS DIRECTIONS TO INDICES
- XC
- X DATA DVOC/1RN,0,'2000'o,3RNOR,2RTH,'2000'o,1RS,0,'12000'o,
- X &1RE,0,'6000'o,3REAS,1RT,'6000'o,1RW,0,'16000'o,3RWES,1RT,'16000'o,
- X &2RSE,0,'10000'o,2RSW,0,'14000'o,
- X &2RNE,0,'4000'o,2RNW,0,'20000'o,
- X &1RU,0,'22000'o,2RUP,0,'22000'o,1RD,0,'24000'o,3RDOW,1RN,'24000'o,
- X &3RLAU,3RNCH,'26000'o,3RLAN,1RD,'30000'o,3RENT,2RER,'32000'o,
- X &3REXI,1RT,'34000'o,3ROUT,0,'34000'o,3RLEA,2RVE,'34000'o,
- X &3RTRA,3RVEL,'36000'o,3RSOU,2RTH,'12000'o,
- X &2RIN,0,'32000'o,
- X &3RCRO,2RSS,'36000'o/
- X`0C
- XC
- XC
- XC SPARSE, PAGE 3
- XC
- XC ADJECTIVES-- MAPS ADJECTIVES TO OBJECT NUMBERS
- XC
- XC EACH ENTRY IS VARIABLE LENGTH AND CONSISTS OF A TWO WORD
- XC ADJECTIVE IN RADIX-50 FOLLOWED BY ONE OR MORE OBJECT NUMBERS.
- XC NOTE THAT ADJECTIVES CAN BE DISTINGUISHED FROM OBJECTS AS
- XC FOLLOWS-- ALL ADJECTIVES ARE .GE. 1RA (1600), WHILE ALL OBJECTS
- XC ARE .LE. OLNT (255 MAX).
- XC
- XC
- 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/
- XC
- XC
- 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 & 3RRAR,1RE,134,3ROBL,3RONG,135,3REAT,3R$ME,138,
- X & 3REAT,2RME,138,3RORA,3RNGE,139,3RECC,1RH,141/
- XC
- XC
- XC
- 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/
- XC
- XC
- XC
- X DATA AVOCND/-1/
- X`0C
- XC SPARSE, PAGE 4
- XC
- XC VERBS-- MAPS VERBS TO SYNTAX SLOTS
- XC
- XC EACH ENTRY IS VARIABLE LENGTH AND CONSISTS OF ONE OR MORE
- XC TWO WORD VERBS IN RADIX-50 FOLLOWED BY A SYNTAX WORD COUNT
- XC FOLLOWED BY ONE OR MORE SYNTAXES. NOTE THAT VERBS CAN BE
- XC DISTINGUISHED FROM WORD COUNTS AS FOLLOWS--
- XC ALL VERBS ARE .GE. 1RA (1600), WHILE ALL SYNTAX WORD COUNTS
- XC ARE .LE. 255.
- XC
- XC SYNTAX ENTRIES CONSIST OF A FLAG WORD FOLLOWED BY 0, 1, OR 2
- XC OBJECT DESCRIPTIONS. THE FLAG WORD HAS THE FOLLOWING FORMAT--
- XC
- XC BIT <14> IF 1, SYNTAX INCLUDES DIRECT OBJECT
- XC BIT <13> IF 1, SYNTAX INCLUDES INDIRECT OBJECT
- XC BIT <12> IF 1, DIRECT OBJECT IS IMPLICIT (STANDARD FORM)
- XC BIT <11> IF 1, DIRECT AND INDIRECT OBJECT MUST BE SWAPPED
- XC AFTER SYNTAX PROCESSING
- XC BIT <10> IF 1, THIS IS DEFAULT SYNTAX FOR ORPHANERY
- XC BITS <8:0> VERB NUMBER FOR VAPPLI
- XC
- XC OBJECT DESCRIPTIONS CONSIST OF A FLAG WORD AND TWO FWIM WORDS.
- XC THE FLAG WORD HAS THE FOLLOWING FORMAT--
- XC
- XC BIT <14> IF 1, SEARCH ADVENTURER FOR OBJECT
- XC BIT <13> IF 1, SEARCH ROOM FOR OBJECT
- XC BIT <12> IF 1, PARSER WILL TRY TO TAKE OBJECT
- XC BIT <11> IF 1, ADVENTURER MUST HAVE OBJECT
- XC BIT <10> IF 1, QUALIFYING BITS (NORMALLY -1,-1) ARE SAME
- XC AS FWIM BITS
- XC BIT <9> IF 1, OBJECT MUST BE REACHABLE
- XC BITS <8:0> PREPOSITION NUMBER FOR SYNMCH
- XC
- XC THE FWIM WORDS HAVE THE SAME FORMAT AS THE TWO OBJECT FLAG WORDS.
- XC
- XC NOTE THAT BITS 12 AND 11 OF OBJECT DESCRIPTIONS ACTUALLY HAVE
- XC FOUR DISTINCT STATES--
- XC
- XC BIT 12 BIT 11 MDLDESC INTERPRETATION
- XC ------ ------ ------- ---------------
- XC
- XC 0 0 -- NO PARSER ACTION
- XC 0 1 HAVE ADVENTURER MUST HAVE OBJECT
- XC 1 0 TRY TRY TO TAKE, DONT CARE IF FAIL
- XC 1 1 TAKE TRY TO TAKE, CARE IF FAIL
- XC
- X`0C
- XC SPARSE, PAGE 5
- XC
- XC THE FOLLOWING DATA STATEMENT WAS ORIGINALLY:
- XC
- 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/
- XC
- XC
- 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'o,
- 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/
- XC
- XC
- XC
- XC
- 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/
- XC
- XC
- XC
- XC
- X DATA VVOC2/3RDEF,3RLAT,1,'50147'o,
- X &3RDES,3RCRI,3RWHA,1RT,3REXA,3RMIN,1,'50170'o,
- X &3RFIL,1RL,11,'60206'o,'61000'o,'200'o,0,'61002'o,'400'o,0,
- X & '40206'o,'61000'o,'200'o,0,
- X &3RFIN,1RD,3RSEE,1RK,3RWHE,2RRE,3RSEE,0,4,'40177'o,'60000'o,-1,-1,
- X &3RFOL,3RLOW,2,'125'o,'50125'o,
- X &3RKIC,1RK,3RBIT,1RE,3RTAU,2RNT,1,'50153'o,3RLOW,2RER,1,'50156'o,
- X &3RPUS,1RH,3RPRE,2RSS,1,'50160'o,3RRIN,1RG,3RPEA,1RL,1,'50127'o,
- X &3RRUB,0,3RCAR,3RESS,3RTOU,2RCH,3RFON,3RDLE,1,'50157'o,
- X &3RSHA,2RKE,1,'50171'o,3RSPI,1RN,1,'50201'o,
- X &3RUNT,2RIE,3RFRE,1RE,1,'50161'o,3RWAL,1RK,9,'50216'o,
- X & '40126'o,'61002'o,-1,-1,'40126'o,'61005'o,-1,-1/
- XC
- XC
- XC
- XC
- XC
- XC
- X DATA VVOC3/3RATT,3RACK,3RFIG,2RHT,3RINJ,3RURE,3RHIT,0,3RHUR,1RT,
- X & 7,'60215'o,'21000'o,0,'200'o,'44002'o,0,'1000'o,
- X &3RBOA,2RRD,4,'40202'o,'21000'o,0,'2'o,
- X &3RBRU,2RSH,3RCLE,2RAN,5,'52130'o,'70130'o,'61002'o,-1,-1,
- X &3RBUR,1RN,3RIGN,3RITE,3RINC,3RINE,7,'60211'o,'61000'o,'20'o,0,
- X & '64002'o,'10'o,0,
- X &3RCLI,2RMB,12,'40235'o,'20007'o,0,'4000'o,
- X & '40236'o,'20006'o,0,'4000'o,'40234'o,'20000'o,0,'4000'o,
- X &3RCLO,2RSE,4,'40176'o,'61000'o,'10200'o,0,
- X &3RDIG,0,4,'40131'o,'44002'o,'4'o,0,
- X &3RDIS,3REMB,4,'40203'o,'20000'o,0,'2'o,
- X &3RDRI,2RNK,3RIMB,3RIBE,3RSWA,3RLLO,4,'40210'o,'61000'o,'400'o,0,
- X &3RDRO,1RP,3RREL,3REAS,11,'42221'o,'41000'o,-1,-1,
- X & '60221'o,'41000'o,-1,-1,'61005'o,-1,-1,
- X &3REAT,0,3RCON,3RSUM,3RGOB,3RBLE,3RMUN,2RCH,3RTAS,2RTE,
- X & 4,'40207'o,'75000'o,'2000'o,0,
- X &3REXT,3RING,3RDOU,2RSE,4,'40174'o,'75000'o,'100'o,0/
- XC
- XC
- XC
- X DATA VVOC4/3RGIV,1RE,3RHAN,1RD,3RDON,3RATE,11,'72222'o,'21004'o,
- X & '40'o,0,'64222'o,'21000'o,'40'o,0,'61000'o,-1,-1,
- X & 3RHEL,2RLO,2RHI,0,2,'2227'o,'50227'o,
- X & 3RBLO,1RW,15,'62146'o,'61007'o,-1,-1,'61002'o,'4'o,0,
- X & '40160'o,'61007'o,-1,-1,'40165'o,'61005'o,-1,-1,
- X & 3RINF,3RLAT,4,'70146'o,'61002'o,'4'o,0,
- X & 3RJUM,1RP,3RLEA,1RP,5,'133'o,'40133'o,'61001'o,-1,-1,
- X & 3RKIL,1RL,3RMUR,3RDER,3RSLA,1RY,3RSTA,1RB,3RDIS,3RPAT,
- X & 7,'60213'o,'21000'o,0,'200'o,
- X & '44002'o,0,'1000'o,
- X & 3RKNO,2RCK,3RRAP,0,12,'42166'o,'61003'o,-1,-1,
- X & '40166'o,'61012'o,-1,-1,'40215'o,'23006'o,'40'o,0,
- X & 3RLIG,2RHT,11,'42173'o,'75000'o,'100'o,0,
- X & '60211'o,'61000'o,'100'o,0,'54002'o,'10'o,0,
- X & 3RLOC,1RK,4,'40134'o,'20000'o,-1,-1/
- XC
- XC
- XC
- XC
- X DATA VVOC5/3RLOO,1RK,1RL,0,3RSTA,2RRE,3RGAZ,1RE,
- X & 13,'167'o,'40167'o,'60003'o,-1,-1,
- X & '40231'o,'61010'o,-1,-1,'40230'o,'60005'o,-1,-1,
- X & 3RMEL,1RT,3RLIQ,3RUIF,4,'70145'o,'61002'o,'10'o,0,
- X & 3RMOV,1RE,4,'40172'o,'20000'o,-1,-1,
- X & 3RPUL,1RL,3RTUG,0,8,'42172'o,'21000'o,-1,-1,
- X & '40172'o,'21012'o,-1,-1,
- X & 3RMUN,1RG,3RHAC,1RK,3RFRO,1RB,3RDAM,3RAGE,
- X & 5,'52212'o,'70212'o,'44002'o,-1,-1,
- X & 3ROPE,1RN,11,'42175'o,'61000'o,'10200'o,0,
- X & '60175'o,'61000'o,'10200'o,0,'54002'o,'4'o,'1000'o,
- X & 3RPIC,1RK,4,'40204'o,'61007'o,'20000'o,'40'o,
- X & 3RPLU,1RG,3RGLU,1RE,3RPAT,2RCH,4,'70152'o,'61002'o,-1,-1,
- X & 3RPOK,1RE,3RBRE,2RAK,3RJAB,0,7,'60212'o,'21000'o,0,'200'o,
- X & '44002'o,0,'1000'o,
- X & 3RPOU,1RR,3RSPI,2RLL,11,'42223'o,'42000'o,'400'o,0,
- X & '60223'o,'42000'o,'400'o,0,'60005'o,-1,-1,
- X & 3RPUM,1RP,4,'60232'o,'60007'o,-1,-1/
- XC
- XC
- XC
- XC
- X DATA VVOC6/3RPUT,0,3RINS,3RERT,3RSTU,2RFF,3RPLA,2RCE,
- X & 8,'72220'o,'61005'o,-1,-1,
- X & '40221'o,'61006'o,-1,-1,
- X & 3RRAI,2RSE,3RLIF,1RT,5,'52155'o,'40155'o,'61007'o,-1,-1,
- X & 3RREA,1RD,3RSKI,1RM,11,'42144'o,'71000'o,'40000'o,0,
- X & '60144'o,'71000'o,'40000'o,0,'61002'o,-1,-1,
- X & 3RSTR,3RIKE,12,'60215'o,'23000'o,'40'o,0,
- X & '44002'o,0,'1000'o,'42215'o,'23000'o,'40'o,0,'50173'o,
- X & 3RSWI,2RNG,3RTHR,3RUST,7,'60214'o,'44000'o,0,'1000'o,
- X & '21003'o,0,'200'o,
- X & 3RTAK,1RE,3RGET,0,3RHOL,1RD,3RCAR,2RRY,3RREM,3ROVE,
- X & 4,'40204'o,'61000'o,'20000'o,'40'o,
- X &3RTEL,1RL,3RCOM,3RMAN,3RREQ,3RUES,4,'40217'o,'20000'o,0,'2000'o,
- X &3RTHR,2ROW,3RHUR,1RL,3RCHU,2RCK,14,'60224'o,'44000'o,-1,-1,
- X & '21003'o,'40'o,0,'60224'o,'44000'o,-1,-1,'21002'o,'40'o,0/
- XC
- XC
- XC
- XC
- X DATA VVOC7/3RTIE,0,3RFAS,3RTEN,11,'70162'o,'61004'o,-1,-1,
- X & '60163'o,'21000'o,'40'o,0,'65002'o,'4'o,0,
- X & 3RTUR,1RN,3RSET,0,22,'62164'o,'61000'o,'2'o,0,
- X & '64002'o,'4'o,0,
- X & '40173'o,'75012'o,'100'o,0,'40174'o,'75013'o,'100'o,0,
- X & '60237'o,'61000'o,'2'o,0,'20004'o,-1,-1,
- X & 3RUNL,3ROCK,7,'60135'o,'21000'o,-1,-1,
- X & '74002'o,'4'o,0,
- X & 3RWAK,1RE,3RSUR,3RPRI,3RALA,2RRM,3RSTA,3RRTL,
- X & 8,'42150'o,'20000'o,'40'o,0,
- X & '40150'o,'20007'o,'40'o,0,
- X & 3RWAV,1RE,3RFLA,3RUNT,3RBRA,3RNDI,4,'40154'o,'40000'o,-1,-1,
- X & 3RWIN,1RD,5,'50233'o,'40233'o,'61007'o,-1,-1/
- XC
- XC
- XC
- XC
- X DATA VVOCND/-1/
- X`0C
- XC SPARSE, PAGE 6
- XC
- XC OBJECTS-- MAPS OBJECTS TO OBJECT INDICES
- XC
- XC SAME FORMAT AS AVOC.
- XC
- XC
- 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/
- XC
- XC
- XC
- 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/
- XC
- XC
- XC
- 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/
- XC
- XC
- 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/
- XC
- XC
- XC
- 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/
- XC
- XC
- XC
- 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/
- XC
- XC
- XC
- 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/
- XC
- XC
- 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/
- XC
- XC
- XC
- X DATA OVOCND/-1/
- X
- X`0C
- XC SPARSE, PAGE 7
- XC
- XC SET UP FOR PARSING
- XC
- X SPARSE=-1
- XC !ASSUME PARSE FAILS.
- X ADJ=0
- XC !CLEAR PARTS HOLDERS.
- X ACT=0
- X PREP=0
- X PPTR=0
- X O1=0
- X O2=0
- X P1=0
- X P2=0
- X DFLAG=and(PRSFLG,4).NE.0
- XC
- X BUZLNT=20
- X PRPLNT=48
- X DIRLNT=75
- X`0C
- XC SPARSE, PAGE 8
- XC
- XC NOW LOOP OVER INPUT BUFFER OF LEXICAL TOKENS.
- XC
- X DO 1000 I=1,LLNT,2
- XC !TWO WORDS/TOKEN.
- X LBUF1=LBUF(I)
- XC !GET CURRENT TOKEN.
- X LBUF2=LBUF(I+1)
- X if (dflag) write(0,*) 'lbuf1=',lbuf1,' lbuf2=',lbuf2
- X IF(LBUF1.EQ.0) GO TO 1500
- XC !END OF BUFFER?
- XC
- XC CHECK FOR BUZZ WORD
- XC
- X DO 50 J=1,BUZLNT,2
- X IF((LBUF1.EQ.BVOC(J)).AND.(LBUF2.EQ.BVOC(J+1)))
- X & GO TO 1000
- X50 CONTINUE
- XC
- XC CHECK FOR ACTION OR DIRECTION
- XC
- X IF(ACT.NE.0) GO TO 75
- XC !GOT ACTION ALREADY?
- X J=1
- XC !CHECK FOR ACTION.
- X125 IF((LBUF1.EQ.VVOC(J)).AND.(LBUF2.EQ.VVOC(J+1)))
- X & GO TO 3000
- X150 J=J+2
- XC !ADV TO NEXT SYNONYM.
- X IF(.NOT.OTEST(VVOC(J))) GO TO 125
- XC !ANOTHER VERB?
- X J=J+VVOC(J)+1
- XC !NO, ADVANCE OVER SYNTAX.
- X IF(VVOC(J).NE.-1) GO TO 125
- XC !TABLE DONE?
- XC
- X75 IF((ACT.NE.0).AND.((VVOC(ACT).NE.R50WAL).OR.
- X & (PREP.NE.0))) GO TO 200
- X DO 100 J=1,DIRLNT,3
- XC !THEN CHK FOR DIR.
- X IF((LBUF1.EQ.DVOC(J)).AND.(LBUF2.EQ.DVOC(J+1)))
- X & GO TO 2000
- X100 CONTINUE
- XC
- XC NOT AN ACTION, CHECK FOR PREPOSITION, ADJECTIVE, OR OBJECT.
- XC
- X200 DO 250 J=1,PRPLNT,3
- XC !LOOK FOR PREPOSITION.
- X IF((LBUF1.EQ.PVOC(J)).AND.(LBUF2.EQ.PVOC(J+1)))
- X & GO TO 4000
- X250 CONTINUE
- XC
- X J=1
- XC !LOOK FOR ADJECTIVE.
- X300 IF((LBUF1.EQ.AVOC(J)).AND.(LBUF2.EQ.AVOC(J+1)))
- X & GO TO 5000
- X J=J+1
- X325 J=J+1
- XC !ADVANCE TO NEXT ENTRY.
- X IF(OTEST(AVOC(J))) GO TO 325
- XC !A RADIX 50 CONSTANT?
- X IF(AVOC(J).NE.-1) GO TO 300
- XC !POSSIBLY, END TABLE?
- XC
- X J=1
- XC !LOOK FOR OBJECT.
- X450 IF((LBUF1.EQ.OVOC(J)).AND.(LBUF2.EQ.OVOC(J+1)))
- X & GO TO 600
- X J=J+1
- X500 J=J+1
- X IF(OTEST(OVOC(J))) GO TO 500
- X IF(OVOC(J).NE.-1) GO TO 450
- XC
- XC NOT RECOGNIZABLE
- XC
- X IF(VBFLAG) CALL RSPEAK(601)
- X RETURN
- X`0C
- XC SPARSE, PAGE 9
- XC
- XC OBJECT PROCESSING (CONTINUATION OF DO LOOP ON PREV PAGE)
- XC
- X600 OBJ=GETOBJ(J,ADJ,0)
- XC !IDENTIFY OBJECT.
- X IF(DFLAG) PRINT 60,J,OBJ
- X60 FORMAT(' SPARSE- OBJ AT ',I6,' OBJ= ',I6)
- X IF(OBJ.LE.0) GO TO 6000
- XC !IF LE, COULDNT.
- X IF(OBJ.NE.ITOBJ) GO TO 650
- XC !'IT'?
- X OBJ=GETOBJ(0,0,LASTIT)
- XC !FIND LAST.
- X IF(OBJ.LE.0) GO TO 6000
- XC !IF LE, COULDNT.
- XC
- X650 IF(PREP.EQ.9) GO TO 8000
- XC !'OF' OBJ?
- X IF(PPTR.EQ.2) GO TO 7000
- XC !TOO MANY OBJS?
- X PPTR=PPTR+1
- X OBJVEC(PPTR)=OBJ
- XC !STUFF INTO VECTOR.
- X PRPVEC(PPTR)=PREP
- X700 PREP=0
- X ADJ=0
- X
- XC Go to end of do loop (moved '1000 CONTINUE' to end of module, to avoid
- XC complaints about people jumping back into the doloop.)
- X
- X GOTO 1000
- X`0C
- XC SPARSE, PAGE 10
- XC
- XC SPECIAL PARSE PROCESSORS
- XC
- XC 2000-- DIRECTION
- XC
- X2000 PRSA=WALKW
- X PRSO=DVOC(J+2)
- X SPARSE=1
- X IF(DFLAG) PRINT 10,J
- X10 FORMAT(' SPARSE- DIR AT ',I6)
- X RETURN
- XC
- XC 3000-- ACTION
- XC
- X3000 ACT=J
- X OACT=0
- X IF(DFLAG) PRINT 20,J
- X20 FORMAT(' SPARSE- ACT AT ',I6)
- X if(dflag) write(0,*) 'count=',vvoc(j+2),' vnr=',vvoc(j+3)
- X GO TO 1000
- XC
- XC 4000-- PREPOSITION
- XC
- X4000 IF(PREP.NE.0) GO TO 4500
- X PREP=PVOC(J+2)
- X ADJ=0
- X IF(DFLAG) PRINT 30,J
- X30 FORMAT(' SPARSE- PREP AT ',I6)
- X GO TO 1000
- XC
- X4500 IF(VBFLAG) CALL RSPEAK(616)
- X RETURN
- XC
- XC 5000-- ADJECTIVE
- XC
- X5000 ADJ=J
- X J=(and(ONAME,OFLAG))
- X IF(DFLAG) PRINT 40,ADJ,J
- X40 FORMAT(' SPARSE- ADJ AT ',I6,' ORPHAN= ',I6)
- X IF((J.NE.0).AND.(I.GE.LLNT)) GO TO 600
- X GO TO 1000
- XC
- XC 6000-- UNIDENTIFIABLE OBJECT (INDEX INTO OVOC IS J)
- XC
- X6000 IF(OBJ.LT.0) GO TO 6100
- X J=579
- X IF(LIT(HERE)) J=618
- X IF(VBFLAG) CALL RSPEAK(J)
- X RETURN
- XC
- X6100 IF(OBJ.NE.-10000) GO TO 6200
- X IF(VBFLAG) CALL RSPSUB(620,ODESC2(AVEHIC(WINNER)))
- X RETURN
- XC
- X6200 IF(VBFLAG) CALL RSPEAK(619)
- X IF(ACT.EQ.0) ACT=(and(OFLAG,OACT))
- X CALL ORPHAN(-1,ACT,O1,PREP,J)
- X RETURN
- XC
- XC 7000-- TOO MANY OBJECTS.
- XC
- X7000 IF(VBFLAG) CALL RSPEAK(617)
- X RETURN
- XC
- XC 8000-- RANDOMNESS FOR 'OF' WORDS
- XC
- X8000 IF(OBJVEC(PPTR).EQ.OBJ) GO TO 700
- X IF(VBFLAG) CALL RSPEAK(601)
- X RETURN
- XC
- XC End of do-loop.
- XC
- X1000 CONTINUE
- XC !AT LAST.
- XC
- XC NOW SOME MISC CLEANUP -- We fell out of the do-loop
- XC
- X1500 IF(ACT.EQ.0) ACT=(and(OFLAG,OACT))
- X IF(ACT.EQ.0) GO TO 9000
- XC !IF STILL NONE, PUNT.
- X IF(ADJ.NE.0) GO TO 10000
- XC !IF DANGLING ADJ, PUNT.
- XC
- X IF((OFLAG.NE.0).AND.(OPREP.NE.0).AND.(PREP.EQ.0).AND.
- X & (O1.NE.0).AND.(O2.EQ.0).AND.(ACT.EQ.OACT))
- X & GO TO 11000
- XC
- X SPARSE=0
- XC !PARSE SUCCEEDS.
- X IF(PREP.EQ.0) GO TO 1750
- XC !IF DANGLING PREP,
- X IF((PPTR.EQ.0).OR.(PRPVEC(PPTR).NE.0))
- X & GO TO 12000
- X PRPVEC(PPTR)=PREP
- XC !CVT TO 'PICK UP FROB'.
- XC
- XC 1750-- RETURN A RESULT
- XC
- X1750 CONTINUE
- XC !WIN.
- X IF(DFLAG) PRINT 70,ACT,O1,O2,P1,P2
- X70 FORMAT(' SPARSE RESULTS- ',5I7)
- X if(dflag) write(0,*) 'sparse=',sparse
- X RETURN
- XC !LOSE.
- XC
- XC 9000-- NO ACTION, PUNT
- XC
- X9000 IF(O1.EQ.0) GO TO 10000
- XC !ANY DIRECT OBJECT?
- X IF(VBFLAG) CALL RSPSUB(621,ODESC2(O1))
- XC !WHAT TO DO?
- X CALL ORPHAN(-1,0,O1,0,0)
- X RETURN
- XC
- XC 10000-- TOTAL CHOMP
- XC
- X10000 IF(VBFLAG) CALL RSPEAK(622)
- XC !HUH?
- X RETURN
- XC
- XC 11000-- ORPHAN PREPOSITION. CONDITIONS ARE
- XC O1.NE.0, O2=0, PREP=0, ACT=OACT
- XC
- X11000 IF(OSLOT.NE.0) GO TO 11500
- XC !ORPHAN OBJECT?
- X P1=OPREP
- XC !NO, JUST USE PREP.
- X GO TO 1750
- XC
- X11500 O2=O1
- XC !YES, USE AS DIRECT OBJ.
- X P2=OPREP
- X O1=OSLOT
- X P1=0
- X GO TO 1750
- XC
- XC 12000-- TRUE HANGING PREPOSITION.
- XC ORPHAN FOR LATER.
- XC
- X12000 CALL ORPHAN(-1,ACT,0,PREP,0)
- XC !ORPHAN PREP.
- X GO TO 1750
- XC
- X END
- $ CALL UNPACK [.SRC]NP1.FOR;1 776142616
- $ create 'f'
- XC GETOBJ-- FIND OBJ DESCRIBED BY ADJ, NAME PAIR
- XC
- XC COPYRIGHT 1980, INFOCOM COMPUTERS AND COMMUNICATIONS, CAMBRIDGE MA. 02142
- XC ALL RIGHTS RESERVED, COMMERCIAL USAGE STRICTLY PROHIBITED
- XC WRITTEN BY R. M. SUPNIK
- XC
- XC DECLARATIONS
- XC
- XC THIS ROUTINE DETAILS ON BIT 3 OF PRSFLG
- XC
- X INTEGER FUNCTION GETOBJ(OIDX,AIDX,SPCOBJ)
- X IMPLICIT INTEGER(A-Z)
- X LOGICAL THISIT,GHERE,LIT,CHOMP
- X
- X INCLUDE 'PARSER.LIB'
- X INCLUDE 'GAMESTATE.LIB'
- XC
- XC MISCELLANEOUS VARIABLES
- XC
- X COMMON /STAR/ MBASE,STRBIT
- X
- X INCLUDE 'DEBUG.LIB'
- X INCLUDE 'OBJECTS.LIB'
- X INCLUDE 'OFLAGS.LIB'
- X INCLUDE 'ADVERS.LIB'
- X INCLUDE 'VOCAB.LIB'
- X`0C
- XC GETOBJ, PAGE 2
- XC
- X DFLAG=and(PRSFLG, 8).NE.0
- X CHOMP=.FALSE.
- X AV=AVEHIC(WINNER)
- X OBJ=0
- XC !ASSUME DARK.
- X IF(.NOT.LIT(HERE)) GO TO 200
- XC !LIT?
- XC
- X OBJ=SCHLST(OIDX,AIDX,HERE,0,0,SPCOBJ)
- XC !SEARCH ROOM.
- X IF(DFLAG) PRINT 10,OBJ
- X10 FORMAT(' SCHLST- ROOM SCH ',I6)
- X IF(OBJ) 1000,200,100
- XC !TEST RESULT.
- X100 IF((AV.EQ.0).OR.(AV.EQ.OBJ).OR.
- X & (and(OFLAG2(OBJ),FINDBT).NE.0)) GO TO 200
- X IF(OCAN(OBJ).EQ.AV) GO TO 200
- XC !TEST IF REACHABLE.
- X CHOMP=.TRUE.
- XC !PROBABLY NOT.
- XC
- X200 IF(AV.EQ.0) GO TO 400
- XC !IN VEHICLE?
- X NOBJ=SCHLST(OIDX,AIDX,0,AV,0,SPCOBJ)
- XC !SEARCH VEHICLE.
- X IF(DFLAG) PRINT 20,NOBJ
- X20 FORMAT(' SCHLST- VEH SCH ',I6)
- X IF(NOBJ) 1100,400,300
- XC !TEST RESULT.
- X300 CHOMP=.FALSE.
- XC !REACHABLE.
- X IF(OBJ.EQ.NOBJ) GO TO 400
- XC !SAME AS BEFORE?
- X IF(OBJ.NE.0) NOBJ=-NOBJ
- XC !AMB RESULT?
- X OBJ=NOBJ
- XC
- X400 NOBJ=SCHLST(OIDX,AIDX,0,0,WINNER,SPCOBJ)
- XC !SEARCH ADVENTURER.
- X IF(DFLAG) PRINT 30,NOBJ
- X30 FORMAT(' SCHLST- ADV SCH ',I6)
- X IF(NOBJ) 1100,600,500
- XC !TEST RESULT
- X500 IF(OBJ.NE.0) NOBJ=-NOBJ
- XC !AMB RESULT?
- X1100 OBJ=NOBJ
- XC !RETURN NEW OBJECT.
- X600 IF(CHOMP) OBJ=-10000
- XC !UNREACHABLE.
- X1000 GETOBJ=OBJ
- XC
- X IF(GETOBJ.NE.0) GO TO 1500
- XC !GOT SOMETHING?
- X DO 1200 I=STRBIT+1,OLNT
- XC !NO, SEARCH GLOBALS.
- X IF(.NOT.THISIT(OIDX,AIDX,I,SPCOBJ)) GO TO 1200
- X IF(.NOT.GHERE(I,HERE)) GO TO 1200
- XC !CAN IT BE HERE?
- X IF(GETOBJ.NE.0) GETOBJ=-I
- XC !AMB MATCH?
- X IF(GETOBJ.EQ.0) GETOBJ=I
- X1200 CONTINUE
- XC
- X1500 CONTINUE
- XC !END OF SEARCH.
- X IF(DFLAG) PRINT 40,GETOBJ
- X40 FORMAT(' SCHLST- RESULT ',I6)
- X RETURN
- X END
- X`0C
- XC SCHLST-- SEARCH FOR OBJECT
- XC
- XC DECLARATIONS
- XC
- X INTEGER FUNCTION SCHLST(OIDX,AIDX,RM,CN,AD,SPCOBJ)
- X IMPLICIT INTEGER(A-Z)
- X LOGICAL THISIT,QHERE,NOTRAN,NOVIS
- XC
- X COMMON /STAR/ MBASE,STRBIT
- X
- X INCLUDE 'OBJECTS.LIB'
- X INCLUDE 'OFLAGS.LIB'
- XC
- XC FUNCTIONS AND DATA
- XC
- X NOTRAN(O)=(and(OFLAG1(O),TRANBT).EQ.0).AND.
- X & (and(OFLAG2(O),OPENBT).EQ.0)
- X NOVIS(O)=(and(OFLAG1(O),VISIBT).EQ.0)
- XC
- X SCHLST=0
- XC !NO RESULT.
- X DO 1000 I=1,OLNT
- XC !SEARCH OBJECTS.
- X IF(NOVIS(I).OR.
- X & (((RM.EQ.0).OR.(.NOT.QHERE(I,RM))).AND.
- X & ((CN.EQ.0).OR.(OCAN(I).NE.CN)).AND.
- X & ((AD.EQ.0).OR.(OADV(I).NE.AD)))) GO TO 1000
- X IF(.NOT.THISIT(OIDX,AIDX,I,SPCOBJ)) GO TO 200
- X IF(SCHLST.NE.0) GO TO 2000
- XC !GOT ONE ALREADY?
- X SCHLST=I
- XC !NO.
- XC
- XC IF OPEN OR TRANSPARENT, SEARCH THE OBJECT ITSELF.
- XC
- X200 IF(NOTRAN(I)) GO TO 1000
- XC
- XC SEARCH IS CONDUCTED IN REVERSE. ALL OBJECTS ARE CHECKED TO
- XC SEE IF THEY ARE AT SOME LEVEL OF CONTAINMENT INSIDE OBJECT 'I'.
- XC IF THEY ARE AT LEVEL 1, OR IF ALL LINKS IN THE CONTAINMENT
- XC CHAIN ARE OPEN, VISIBLE, AND HAVE SEARCHME SET, THEY CAN QUALIFY
- XC AS A POTENTIAL MATCH.
- XC
- X DO 500 J=1,OLNT
- XC !SEARCH OBJECTS.
- X IF(NOVIS(J).OR. (.NOT.THISIT(OIDX,AIDX,J,SPCOBJ)))
- X & GO TO 500
- X X=OCAN(J)
- XC !GET CONTAINER.
- X300 IF(X.EQ.I) GO TO 400
- XC !INSIDE TARGET?
- X IF(X.EQ.0) GO TO 500
- XC !INSIDE ANYTHING?
- X IF(NOVIS(X).OR.NOTRAN(X).OR.
- X & (and(OFLAG2(X),SCHBT).EQ.0)) GO TO 500
- X X=OCAN(X)
- XC !GO ANOTHER LEVEL.
- X GO TO 300
- XC
- X400 IF(SCHLST.NE.0) GO TO 2000
- XC !ALREADY GOT ONE?
- X SCHLST=J
- XC !NO.
- X500 CONTINUE
- XC
- X1000 CONTINUE
- X RETURN
- XC
- X2000 SCHLST=-SCHLST
- XC !AMB RETURN.
- X RETURN
- XC
- X END
- X`0C
- XC
- XC THISIT-- VALIDATE OBJECT VS DESCRIPTION
- XC
- XC DECLARATIONS
- XC
- X LOGICAL FUNCTION THISIT(OIDX,AIDX,OBJ,SPCOBJ)
- X IMPLICIT INTEGER(A-Z)
- X LOGICAL NOTEST
- X
- X INCLUDE 'VOCAB.LIB'
- XC
- XC FUNCTIONS AND DATA
- XC
- X NOTEST(O)=(O.LE.0).OR.(O.GE.R50MIN)
- XC
- XC THE FOLLOWING DATA STATEMENT USED RADIX-50 NOTATION (R50MIN/1RA/)
- XC IN RADIX-50 NOTATION, AN 'A' IN THE FIRST POSITION IS
- XC ENCODED AS 1*40*40 = 1600.
- XC
- X DATA R50MIN/1600/
- XC
- X THISIT=.FALSE.
- XC !ASSUME NO MATCH.
- X IF((SPCOBJ.NE.0).AND.(OBJ.EQ.SPCOBJ)) GO TO 500
- XC
- XC CHECK FOR OBJECT NAMES
- XC
- X I=OIDX+1
- X100 I=I+1
- X IF(NOTEST(OVOC(I))) RETURN
- XC !IF DONE, LOSE.
- X IF(OVOC(I).NE.OBJ) GO TO 100
- XC !IF FAIL, CONT.
- XC
- X IF(AIDX.EQ.0) GO TO 500
- XC !ANY ADJ?
- X I=AIDX+1
- X200 I=I+1
- X IF(NOTEST(AVOC(I))) RETURN
- XC !IF DONE, LOSE.
- X IF(AVOC(I).NE.OBJ) GO TO 200
- XC !IF FAIL, CONT.
- XC
- X500 THISIT=.TRUE.
- X RETURN
- X END
- $ CALL UNPACK [.SRC]NP2.FOR;1 723588376
- $ create 'f'
- XC SYNMCH-- SYNTAX MATCHER
- XC
- XC COPYRIGHT 1980, INFOCOM COMPUTERS AND COMMUNICATIONS, CAMBRIDGE MA. 02142
- XC ALL RIGHTS RESERVED, COMMERCIAL USAGE STRICTLY PROHIBITED
- XC WRITTEN BY R. M. SUPNIK
- XC
- XC DECLARATIONS
- XC
- XC THIS ROUTINE DETAILS ON BIT 4 OF PRSFLG
- XC
- X LOGICAL FUNCTION SYNMCH()
- X IMPLICIT INTEGER(A-Z)
- X LOGICAL SYNEQL,TAKEIT
- X
- X INCLUDE 'PARSER.LIB'
- X INCLUDE 'VOCAB.LIB'
- X INCLUDE 'DEBUG.LIB'
- XC
- X DATA R50MIN/1RA/
- XC
- XC
- X SYNMCH=.FALSE.
- X DFLAG=and(PRSFLG, 16).NE.0
- X if(dflag) write(0,*) 'synflags=',sdir,sind,sstd,sflip,sdriv,svmask
- X J=ACT
- XC !SET UP PTR TO SYNTAX.
- X DRIVE=0
- +-+-+-+-+-+-+-+- END OF PART 26 +-+-+-+-+-+-+-+-
-