1
2
3
4
5
6
7
8
9
10
11
12 bug
13
14
15
16
17
18
19
20
21 RDLINE(INLINE,INLEN,WHO)
22 IMPLICIT INTEGER(A-Z)
23 %include dparam
24 CHARACTER*(TEXLNT) INLINE
25
26 LUCVT=ICHAR('A')-ICHAR('a')
27 5 GO TO (90,10),WHO+1
28 10 WRITE(OUTCH,50)
29 50 FORMAT(' >',$)
30
31 90 READ(INPCH,100,END=5) INLINE
32 100 FORMAT(A)
33
34 INLEN=NBLEN(INLINE)
35 IF(INLEN.LE.0) GO TO 5
36 DO 400 I=1,INLEN
37 IF((INLINE(I:I).GE.'a').AND.(INLINE(I:I).LE.'z'))
38 & INLINE(I:I)=CHAR(ICHAR(INLINE(I:I))+LUCVT)
39 400 CONTINUE
40 PRSCON=1
41 RETURN
42
43
44
45
46
47
48
49
50 LOGICAL PARSE(INLINE,INLEN,VBFLAG)
51 IMPLICIT INTEGER(A-Z)
52 %include dparam
53 CHARACTER*(TEXLNT) INLINE
54 CHARACTER*(WRDLNT) OUTBUF(LEXMAX),BAKBUF(LEXMAX)
55 LOGICAL LEX,SYNMCH,DFLAG,VBFLAG
56 SAVE BAKBUF,BAKLEN
57 DATA BAKBUF(1)/'L'/,BAKLEN/1/
58
59
60 DFLAG=AND(PRSFLG,1).NE.0
61 PARSE=.FALSE.
62 PRSA=0
63 PRSI=0
64 PRSO=0
65
66 IF(.NOT.LEX(INLINE,INLEN,OUTBUF,OUTLEN,VBFLAG)) GO TO 1000
67 IF((OUTLEN.NE.1).OR.(OUTBUF(1).NE.'AGAIN')) GO TO 100
68 DO 50 I=1,LEXMAX
69 OUTBUF(I)=BAKBUF(I)
70 50 CONTINUE
71 OUTLEN=BAKLEN
72 100 IF(SPARSE(OUTBUF,OUTLEN,VBFLAG)) 1000,200,300
73
74
75
76 200 IF(.NOT.VBFLAG) GO TO 350
77 IF(.NOT.SYNMCH(X)) GO TO 1000
78 IF(PRSO.EQ.BUNOBJ) LASTIT=BUNVEC(1)
79 IF((PRSO.GT.0).AND.(PRSO.LT.BUNOBJ)) LASTIT=PRSO
80
81
82
83 300 PARSE=.TRUE.
84 350 CALL ORPHAN(0,0,0,0,0,' ',0,0)
85 DO 400 I=1,LEXMAX
86 BAKBUF(I)=OUTBUF(I)
87 400 CONTINUE
88 BAKLEN=OUTLEN
89 IF(DFLAG) WRITE(OUTCH,500) PARSE,PRSA,PRSO,PRSI
90 500 FORMAT(' PARSE RESULTS- ',L7,3I7)
91 RETURN
92
93
94
95 1000 PRSCON=1
96 IF(DFLAG) WRITE(OUTCH,500) PARSE,PRSA,PRSO,PRSI
97 RETURN
98
99
100
101
102
103
104
105
106
107 LOGICAL LEX(INLINE,INLEN,OUTBUF,OP,VBFLAG)
108 IMPLICIT INTEGER(A-Z)
109 %include dparam
110 CHARACTER*(TEXLNT) INLINE
111 CHARACTER*(WRDLNT) OUTBUF(LEXMAX)
112 CHARACTER*1 J
113 LOGICAL DFLAG,VBFLAG
114
115
116 DFLAG=AND(PRSFLG,2).NE.0
117 LEX=.FALSE.
118 OP=0
119 DO 10 I=1,LEXMAX
120 OUTBUF(I)=' '
121 10 CONTINUE
122
123 50 OP=OP+1
124 CP=0
125
126 200 IF(PRSCON.GT.INLEN) GO TO 2000
127 J=INLINE(PRSCON:PRSCON)
128 IF((J.EQ.'"').OR.(J.EQ.'''')) GO TO 3000
129 PRSCON=PRSCON+1
130 IF(J.EQ.' ') GO TO 1000
131 IF((J.EQ.'.').OR.(J.EQ.';').OR.
132 & (J.EQ.'!').or.(J.EQ.'?')) GO TO 2000
133 IF(J.EQ.',') GO TO 4000
134 IF(OP.GT.LEXMAX) GO TO 5000
135 CP=CP+1
136 IF(CP.LE.WRDLNT) OUTBUF(OP)(CP:CP)=J
137 GO TO 200
138
139
140
141 1000 IF(CP.EQ.0) GO TO 200
142 GO TO 50
143
144
145
146 2000 IF(PRSCON.GT.INLEN) PRSCON=1
147 IF((CP.EQ.0).AND.(OP.EQ.1)) RETURN
148 IF(CP.EQ.0) OP=OP-1
149 LEX=.TRUE.
150 IF(DFLAG) WRITE(OUTCH,2020) CP,OP,PRSCON,(OUTBUF(I),I=1,OP)
151 2020 FORMAT(' LEX RESULTS- ',3I7/1X,8(A,1X))
152 RETURN
153
154
155
156 3000 IF(SUBLNT.NE.0) GO TO 3400
157 3100 PRSCON=PRSCON+1
158 IF(PRSCON.GT.INLEN) GO TO 3500
159 IF(INLINE(PRSCON:PRSCON).EQ.' ') GO TO 3100
160 K=INDEX(INLINE(PRSCON:INLEN),J)
161 IF(K.LE.1) GO TO 3500
162 SUBBUF=INLINE(PRSCON:PRSCON+K-2)
163 SUBLNT=K-1
164 PRSCON=PRSCON+K
165 IF(DFLAG) WRITE(OUTCH,3030) SUBLNT,SUBBUF(1:SUBLNT)
166 3030 FORMAT(' SUBSTRING- ',I7,' "',A,'"')
167 GO TO 1000
168
169 3400 IF(VBFLAG) CALL RSPEAK(1046)
170 RETURN
171
172 3500 IF(VBFLAG) CALL RSPEAK(616)
173 RETURN
174
175
176
177 4000 IF(CP.NE.0) OP=OP+1
178 IF(OP.EQ.1) GO TO 4500
179 IF(OP.GT.LEXMAX) GO TO 5000
180 OUTBUF(OP)='AND'
181 GO TO 50
182
183 4500 IF(VBFLAG) CALL RSPEAK(1047)
184 RETURN
185
186
187
188 5000 IF(VBFLAG) CALL RSPEAK(1048)
189 RETURN
190
191
192
193
194
195
196
197
198
199 INTEGER SPARSE(LBUF,LLNT,VBFLAG)
200 IMPLICIT INTEGER(A-Z)
201 %include dparam
202 CHARACTER*(WRDLNT) LBUF(LEXMAX),WORD,LCWORD,LCIFY
203 CHARACTER*(WRDLNT+2) LCWRD1
204 LOGICAL LIT,DFLAG,VBFLAG,ANDFLG,BUNFLG
205 INTEGER OBJVEC(2),PRPVEC(2)
206 EQUIVALENCE (OBJVEC(1),OBJ1),(PRPVEC(1),PREP1)
207
208
209
210
211
212 SPARSE=-1
213 ADJ=0
214 ACT=0
215 PREP=0
216 PPTR=0
217 OBJ1=0
218 OBJ2=0
219 PREP1=0
220 PREP2=0
221 LOBJ=0
222 ANDFLG=.FALSE.
223 BUNFLG=.FALSE.
224
225 DFLAG=AND(PRSFLG,4).NE.0
226
227
228
229
230
231 I=0
232 10 I=I+1
233 WORD=LBUF(I)
234 ERRVOC=0
235 IF(WORD.EQ.' ') GO TO 1000
236 IF(WORD.EQ.'AND') GO TO 1500
237 IF((WORD.EQ.'EXCEPT').OR.(WORD.EQ.'BUT')) GO TO 2500
238
239
240
241 DO 50 J=1,BWMAX
242 IF(WORD.EQ.BWORD(J)) GO TO 1000
243 50 CONTINUE
244
245
246
247 J=1
248 DO 70 K=1,VWMAX
249 IF(VWORD(K)(1:1).EQ.'*') GO TO 65
250 IF(WORD.EQ.VWORD(K)) GO TO 2000
251 J=J+VVOC(J)+1
252 GO TO 70
253 65 IF(WORD.EQ.VWORD(K)(2:WRDLNT)) GO TO 2000
254 70 CONTINUE
255
256 75 IF((ADJ.NE.0).OR.(PREP.NE.0).OR.(OBJ1.NE.0)) GO TO 200
257 IF(ACT.EQ.0) GO TO 80
258
259 IF(AND(VVOC(ACT+1),SVMASK).NE.WALKW) GO TO 200
260 80 DO 100 J=1,DWMAX
261 IF(WORD.EQ.DWORD(J)) GO TO 3000
262 100 CONTINUE
263
264
265
266 200 DO 250 J=1,PWMAX
267 IF(WORD.EQ.PWORD(J)) GO TO 4000
268 250 CONTINUE
269
270 J=1
271 DO 350 K=1,AWMAX
272 IF(WORD.EQ.AWORD(K)) GO TO 5000
273 300 J=J+1
274 IF(AVOC(J).LT.0) GO TO 300
275 350 CONTINUE
276
277 400 J=1
278 DO 550 K=1,OWMAX
279 IF(WORD.EQ.OWORD(K)) GO TO 6000
280 500 J=J+1
281 IF(OVOC(J).LT.0) GO TO 500
282 550 CONTINUE
283
284
285
286 IF(.NOT.VBFLAG) RETURN
287 LCWORD=LCIFY(WORD,1)
288 WRITE(OUTCH,600) LCWORD(1:NBLEN(LCWORD))
289 600 FORMAT(' I don''t understand "',A,'".')
290 CALL RSPEAK(ERRVOC)
291 800 TELFLG=.TRUE.
292 BUNSUB=0
293 RETURN
294
295
296
297 1000 IF(I.LT.LLNT) GO TO 10
298
299
300
301
302
303
304
305
306 IF(ADJ.NE.0) GO TO 4500
307 IF(BUNFLG) OBJ1=BUNOBJ
308 IF(BUNFLG.AND.(BUNSUB.NE.0).AND.(BUNLNT.EQ.0))
309 & GO TO 13200
310
311 IF(ACT.EQ.0) ACT=AND(OFLAG,OACT)
312 IF(ACT.EQ.0) GO TO 10000
313
314
315 IF((AND(VVOC(ACT+1),SVMASK).NE.WALKW).OR.(OBJ1.LT.XMIN))
316 & GO TO 1100
317 IF ((OBJ2.NE.0).OR.(PREP1.NE.0).OR.(PREP2.NE.0))
318 & GO TO 1050
319 PRSA=WALKW
320 PRSO=OBJ1
321 SPARSE=1
322 RETURN
323
324 1050 IF(VBFLAG) CALL RSPEAK(618)
325 GO TO 800
326
327 1100 IF((OFLAG.NE.0).AND.(OPREP.NE.0).AND.(PREP.EQ.0).AND.
328 & (OBJ1.NE.0).AND.(OBJ2.EQ.0).AND.(ACT.EQ.OACT))
329 & GO TO 11000
330
331 IF(PREP.EQ.0) GO TO 1200
332 IF(PPTR.EQ.0) GO TO 12000
333 IF(PRPVEC(PPTR).NE.0) GO TO 12000
334 PRPVEC(PPTR)=PREP
335 1200 SPARSE=0
336 IF(DFLAG) WRITE(OUTCH,1310) ACT,OBJ1,OBJ2,PREP1,PREP2
337 1310 FORMAT(' SPARSE RESULTS- ',5I7)
338 RETURN
339
340
341
342
343
344 1500 IF(ADJ.NE.0) GO TO 4100
345 IF((PREP.NE.0).OR.(PPTR.NE.1)) GO TO 8000
346 ANDFLG=.TRUE.
347 GO TO 1000
348
349
350
351 2000 IF(ACT.EQ.0) GO TO 2100
352 ERRVOC=624
353 GO TO 75
354
355 2100 ACT=J
356 OACT=0
357 ANDFLG=.FALSE.
358 IF(DFLAG) WRITE(OUTCH,2020) J
359 2020 FORMAT(' SPARSE- ACT AT ',I6)
360 GO TO 1000
361
362
363
364 2500 IF(ADJ.NE.0) GO TO 4100
365 IF(ANDFLG.OR.BUNFLG.OR.(PPTR.NE.1).OR.
366 & (I.GE.LLNT)) GO TO 13000
367 IF(LBUF(I+1).NE.'FOR') GO TO 2600
368 I=I+1
369 IF(I.GE.LLNT) GO TO 13000
370 2600 IF((OBJ1.NE.EVERY).AND.(OBJ1.NE.VALUA).AND.
371 & (OBJ1.NE.POSSE)) GO TO 13100
372 ANDFLG=.TRUE.
373 BUNFLG=.TRUE.
374 BUNLNT=0
375 BUNSUB=OBJ1
376 GO TO 1000
377
378
379
380
381
382
383 3000 OBJ=DVOC(J)
384 ACT=1
385 3600 IF(VVOC(ACT).EQ.0) CALL BUG(310,ACT)
386
387 IF(AND(VVOC(ACT+1),SVMASK).EQ.WALKW) GO TO 6300
388 ACT=ACT+VVOC(ACT)+1
389 GO TO 3600
390
391
392
393 4000 IF(ADJ.EQ.0) GO TO 4600
394 4100 I=I-1
395 4500 WORD=AWORD(ADJPTR)
396 ADJ=0
397 GO TO 400
398
399 4600 IF(ANDFLG) GO TO 8000
400 IF(PREP.NE.0) GO TO 1000
401 PREP=PVOC(J)
402 IF(DFLAG) WRITE(OUTCH,4030) J
403 4030 FORMAT(' SPARSE- PREP AT ',I6)
404 GO TO 1000
405
406
407
408 5000 ADJ=J
409 ADJPTR=K
410 IF((I.LT.LLNT).OR.(OFLAG.EQ.0).OR.(ONAME.EQ.' '))
411 & GO TO 1000
412 IF(DFLAG) WRITE(OUTCH,5040) ADJ,ONAME
413 5040 FORMAT(' SPARSE- ADJ AT ',I6,' ORPHAN= ',A)
414 WORD=ONAME
415 GO TO 400
416
417
418
419 6000 OBJ=GETOBJ(J,ADJ,0)
420 IF(DFLAG) WRITE(OUTCH,6010) J,OBJ
421 6010 FORMAT(' SPARSE- OBJ AT ',I6,' OBJ= ',I6)
422 IF(OBJ.LE.0) GO TO 7000
423 IF(OBJ.NE.ITOBJ) GO TO 6100
424
425 IF(AND(OFLAG,OOBJ1).NE.0) LASTIT=AND(OFLAG,OOBJ1)
426 OBJ=GETOBJ(0,0,LASTIT)
427 IF(OBJ.LE.0) GO TO 7500
428
429 6100 IF(PREP.NE.9) GO TO 6200
430 IF((LOBJ.EQ.OBJ).OR.(LOBJ.EQ.OCAN(OBJ))) GO TO 6500
431 IF((LOBJ.EQ.EVERY).AND.((OBJ.EQ.VALUA).OR.(OBJ.EQ.POSSE)))
432 & GO TO 6350
433 6150 IF(VBFLAG) CALL RSPEAK(601)
434 GO TO 800
435
436 6200 IF(.NOT.ANDFLG) GO TO 6300
437 IF(BUNFLG) GO TO 6250
438 BUNVEC(1)=OBJVEC(PPTR)
439 BUNLNT=1
440 BUNFLG=.TRUE.
441 BUNSUB=0
442 6250 BUNLNT=BUNLNT+1
443 IF(BUNLNT.GT.BUNMAX) GO TO 9000
444 BUNVEC(BUNLNT)=OBJ
445 GO TO 6500
446
447 6300 IF(PPTR.EQ.2) GO TO 9000
448 PPTR=PPTR+1
449 PRPVEC(PPTR)=PREP
450 6350 OBJVEC(PPTR)=OBJ
451 6500 PREP=0
452 ADJ=0
453 ANDFLG=.FALSE.
454 LOBJ=OBJ
455 GO TO 1000
456
457
458
459
460
461 7000 LCWORD=LCIFY(WORD,1)
462 LCWRD1=' '
463 IF(ADJ.NE.0) LCWRD1=' '//LCIFY(AWORD(ADJPTR),1)//' '
464 IF(OBJ.LT.0) GO TO 7200
465 IF(LIT(HERE)) GO TO 7100
466 IF(VBFLAG) CALL RSPEAK(579)
467 GO TO 800
468
469 7100 IF(VBFLAG) WRITE(OUTCH,7110)
470 & LCWRD1(1:NBLEN(LCWRD1)+1),LCWORD(1:NBLEN(LCWORD))
471 7110 FORMAT(' I can''t see any',A,A,' here.')
472 GO TO 800
473
474 7200 IF(OBJ.NE.-10000) GO TO 7300
475 IF(VBFLAG) CALL RSPSUB(620,ODESC2(AVEHIC(WINNER)))
476 GO TO 800
477
478
479 7300 IF(ACT.EQ.0) ACT=AND(OFLAG,OACT)
480 CALL ORPHAN(-1,ACT,PREP1,OBJ1,PREP,WORD,0,0)
481 IF(VBFLAG) WRITE(OUTCH,7310)
482 & LCWRD1(1:NBLEN(LCWRD1)+1),LCWORD(1:NBLEN(LCWORD))
483 7310 FORMAT(' Which',A,A,' do you mean?')
484 GO TO 800
485
486
487
488 7500 IF(OBJ.LT.0) GO TO 7200
489 IF(LIT(HERE)) GO TO 7600
490 IF(VBFLAG) CALL RSPEAK(1076)
491 GO TO 800
492
493 7600 IF(VBFLAG) CALL RSPSUB(1077,ODESC2(LASTIT))
494 GO TO 800
495
496
497
498 8000 IF(VBFLAG) CALL RSPEAK(1049)
499 GO TO 800
500
501
502
503 9000 IF(VBFLAG) CALL RSPEAK(617)
504 GO TO 800
505
506
507
508 10000 IF(OBJ1.EQ.0) GO TO 10100
509 IF(VBFLAG) CALL RSPSUB(621,ODESC2(OBJ1))
510 CALL ORPHAN(-1,0,PREP1,OBJ1,0,' ',0,0)
511 RETURN
512
513 10100 IF(VBFLAG) CALL RSPEAK(622)
514 GO TO 800
515
516
517
518
519 11000 IF(OOBJ1.NE.0) GO TO 11500
520 PREP1=OPREP
521 GO TO 1200
522
523 11500 OBJ2=OBJ1
524 PREP2=OPREP
525 OBJ1=OOBJ1
526 PREP1=OPREP1
527 GO TO 1200
528
529
530
531 12000 CALL ORPHAN(-1,ACT,0,0,PREP,' ',0,0)
532 GO TO 1200
533
534
535
536 13000 LCWORD=LCIFY(WORD,1)
537 IF(VBFLAG) WRITE(OUTCH,13010) LCWORD(1:NBLEN(LCWORD))
538 13010 FORMAT(' Misplaced "',A,'".')
539 GO TO 800
540
541 13100 LCWORD=LCIFY(WORD,2)
542 IF(VBFLAG) WRITE(OUTCH,13110) LCWORD(1:NBLEN(LCWORD))
543 13110 FORMAT(' "',A,'" can only be used with "everything",',
544 & ' "valuables", or "possessions".')
545 GO TO 800
546
547 13200 IF(VBFLAG) CALL RSPEAK(619)
548 GO TO 800
549
550
551
552 BLOCK DATA BAR
553 IMPLICIT INTEGER(A-Z)
554 %include dparam
555
556
557
558
559
560
561 DATA BWORD/'BY','IS','A','AN','THE','AM','ARE',
562 & 'TODAY','MY','YOUR','OUR','HIS'/
563
564
565
566 DATA PWORD/'OVER','WITH','USING','AT','TO',
567 & 'IN','INSIDE','INTO','DOWN','UP',
568 & 'UNDER','OF','ON','OFF','FOR',
569 & 'FROM','OUT','THROUGH',' ',' '/
570
571 DATA PVOC/1,2,2,3,4,
572 & 5,5,5,6,7,
573 & 8,9,10,11,12,
574 & 13,13,14,0,0/
575
576
577
578 DATA DWORD/'N','NORTH','S','SOUTH',
579 & 'E','EAST','W','WEST',
580 & 'SE','SW','NE','NW',
581 & 'U','UP','D','DOWN',
582 & 'LAUNCH','LAND','EXIT','OUT',
583 & 'TRAVEL','IN','CROSS',' ',' '/
584
585 DATA DVOC/XNORTH,XNORTH,XSOUTH,XSOUTH,
586 & XEAST,XEAST,XWEST,XWEST,
587 & XSE,XSW,XNE,XNW,
588 & XUP,XUP,XDOWN,XDOWN,
589 & XLAUN,XLAND,XEXIT,XEXIT,
590 & XCROSS,XENTER,XCROSS,0,0/
591
592
593
594
595
596
597
598
599
600
601 DATA (AWORD(I),I=1,40) /
602 & 'BROWN','ELONGATE','HOT','PEPPER',
603 & 'VITREOUS','JADE','HUGE','ENORMOUS',
604 & 'TROPHY','CLEAR','LARGE','NASTY',
605 & 'ELVISH','BRASS','BROKEN','ORIENTAL',
606 & 'BLOODY','RUSTY','BURNED-O','DEAD',
607 & 'OLD','LEATHER','PLATINUM','PEARL',
608 & 'MOBY','CRYSTAL','GOLD','IVORY',
609 & 'SAPPHIRE','WOODEN','WOOD','STEEL',
610 & 'DENTED','FANCY','ANCIENT','SMALL',
611 & 'BLACK','TOUR','VISCOUS','VICIOUS'/
612
613 DATA (AVOC(I),I=1,112) /
614 & 1,-81,-133,1,3,-190,3,
615 & 4,6,8,8,-122,
616 & 9,10,12,-26,-47,-95,-96,-123,-133,-135,-144,-145,
617 & -150,-176,-191,13,-19,
618 & 14,15,-16,-46,-156,-190,16,-22,-38,-92,-113,-155,-158,17,
619 & 20,24,-205,22,22,
620 & 25,-41,-44,-45,-208,25,26,27,
621 & 31,32,-126,-206,-209,33,-85,-104,-157,-158,-188,34,
622 & 37,38,-67,-75,-93,-136,-137,-165,-173,-174,-175,-197,-204,
623 & 38,-67,-136,-137,-165,-173,-174,-175,
624 & 39,-105,-124,-125,-189,
625 & 39,40,41,-44,5,-46,-52,-53,-89,-102,-103,-153,-187,
626 & 47,-162,49,55,62/
627
628 DATA (AWORD(I),I=41,80) /
629 & 'GLASS','TRAP','FRONT','STONE',
630 & 'MANGLED','RED','YELLOW','BLUE',
631 & 'VAMPIRE','MAGIC','SEAWORTH','TAN',
632 & 'SHARP','WICKER','CLOTH','BRAIDED',
633 & 'GAUDY','SQUARE','CLAY','SHINY',
634 & 'THIN','GREEN','PURPLE','WHITE',
635 & 'MARBLE','COKE','EMPTY','ROUND',
636 & 'TRIANGUL','RARE','OBLONG','EAT-ME',
637 & 'EATME','ORANGE','ECCH','ROCKY',
638 & 'SHEER','200','NEAT','SHIMMERI'/
639
640 DATA (AVOC(I),I=113,179) /
641 & 10,-126,-132,-206,-209,66,68,69,-150,-278,
642 & 72,-124,79,-94,-140,-161,-170,-171,-190,-209,
643 & 80,-159,82,-112,-114,-141,-206,
644 & 83,90,-281,90,91,
645 & 92,98,100,101,
646 & 108,109,-127,109,110,
647 & 110,77,-115,-143,116,117,-126,-147,-160,-266,
648 & 119,121,121,128,
649 & 129,134,135,138,
650 & 138,139,141,146,
651 & 146,148,148,151/
652
653 DATA (AWORD(I),I=81,120) /
654 & 'ZURICH','BIRDS','ENCRUSTE','BEAUTIFU',
655 & 'CLOCKWOR','MECHANIC','MAHOGANY','PINE',
656 & 'LONG','CENTER','SHORT','T',
657 & 'COMPASS','BRONZE','CELL','LOCKED',
658 & 'SUN','BARE','SONG','NORTH',
659 & 'NORTHERN','SOUTH','SOUTHERN','EAST',
660 & 'EASTERN','WEST','WESTERN','DUNGEON',
661 & 'FREE','GRANITE','LOWERED','VOLCANO',
662 & 'MAN-SIZE','METAL','PLASTIC','SILVER',
663 & 'USED','USELESS','SEEING','ONE-EYED'/
664
665 DATA (AVOC(I),I=180,238) /
666 & 152,153,-154,-155,154,-155,86,-156,
667 & 157,-158,157,-158,163,164,
668 & 166,166,167,168,
669 & 169,-275,172,174,-175,174,
670 & 177,259,267,269,
671 & 269,270,270,271,
672 & 271,67,-272,67,-272,279,
673 & 195,-262,265,36,111,
674 & 93,64,-99,-200,-201,77,-87,-88,-90,59,
675 & 22,22,126,-206,-209,58/
676
677 DATA (AWORD(I),I=121,160) /
678 & 'HOLY','HAND-HEL','UNRUSTY','PLAIN',
679 & 'PRICELES','SANDY','GIGANTIC','LINE-PRI',
680 & 'FLATHEAD','FINE','SHADY','SUSPICIO',
681 & 'CROSS','TOOL','CONTROL','DON',
682 & 'WOODS','GOLDEN','OAK','BARRED',
683 & 'DUSTY','NARROW','IRON','WELCOME',
684 & 'RUBBER','SKELETON','ALL','ZORKMID',
685 & 12*' '/
686
687 DATA (AVOC(I),I=239,282) /
688 & 43,89,13,13,
689 & 104,192,122,122,
690 & 118,91,61,61,
691 & 165,193,194,196,
692 & 196,157,-158,197,198,-210,
693 & 204,199,205,207,
694 & 207,23,253,-254,104,-148,
695 & 12*0/
696
697
698
699
700
701
702 DATA (OWORD(I),I=1,40) /
703 & 'BAG','SACK','GARLIC','CLOVE',
704 & 'FOOD','SANDWICH','LUNCH','DINNER',
705 & 'GUNK','PIECE','SLAG','COAL',
706 & 'PILE','HEAP','FIGURINE','MACHINE',
707 & 'PDP10','VAX','DRYER','LID',
708 & 'DIAMOND','CASE','BOTTLE','CONTAINE',
709 & 'WATER','QUANTITY','LIQUID','H2O',
710 & 'ROPE','HEMP','COIL','KNIFE',
711 & 'BLADE','SWORD','ORCHRIST','GLAMDRIN',
712 & 'LAMP','LANTERN','RUG','CARPET'/
713
714 DATA (OVOC(I),I=1,71) /
715 & 1,-25,-100,1,2,2,
716 & 3,3,3,3,
717 & 4,-55,4,-143,-186,-282,4,5,
718 & 5,-18,-38,-72,-73,-87,-88,-122,-148,5,6,7,
719 & 7,7,7,7,-200,-201,
720 & 8,9,-123,10,-121,10,
721 & 11,-273,11,-273,11,-273,11,-273,
722 & 12,-101,-282,12,12,-110,13,-24,
723 & 13,-14,14,14,14,
724 & 15,-16,-22,15,-16,-22,17,17/
725
726 DATA (OWORD(I),I=41,80) /
727 & 'LEAVES','LEAF','TROLL','AXE',
728 & 'PRAYER','KEYS','KEY','SET',
729 & 'BONES','SKELETON','BODY','COINS',
730 & 'BAR','NECKLACE','PEARLS','MIRROR',
731 & 'ICE','MASS','GLACIER','RUBY',
732 & 'TRIDENT','FORK','COFFIN','CASKET',
733 & 'TORCH','CAGE','DUMBWAIT','BASKET',
734 & 'BRACELET','JEWEL','TIMBER','BOX',
735 & 'STRADIVA','VIOLIN','ENGRAVIN','INSCRIPT',
736 & 'GHOST','SPIRIT','FIEND','GRAIL'/
737
738 DATA (OVOC(I),I=72,130) /
739 & 18,18,19,-111,20,
740 & 44,-47,23,23,-205,23,
741 & 21,21,21,-72,-73,25,
742 & 26,-165,-168,27,27,28,-29,-276,
743 & 30,30,30,31,
744 & 32,32,33,33,
745 & 34,35,-36,-124,-125,35,-36,35,-36,-98,-113,
746 & 37,37,38,39,-53,-105,
747 & 40,40,41,41,-44,
748 & 42,42,42,43/
749
750 DATA (OWORD(I),I=81,120) /
751 & 'TRUNK','CHEST','BELL','BOOK',
752 & 'BIBLE','GOODBOOK','CANDLES','PAIR',
753 & 'GUIDEBOO','GUIDE','PAPER','NEWSPAPE',
754 & 'ISSUE','REPORT','MAGAZINE','NEWS',
755 & 'MATCHBOO','MATCH','MATCHES','ADVERTIS',
756 & 'PAMPHLET','LEAFLET','BOOKLET','MAILBOX',
757 & 'TUBE','TOOTHPAS','PUTTY','MATERIAL',
758 & 'GLUE','WRENCH','SCREWDRI','CYCLOPS',
759 & 'MONSTER','CHALICE','CUP','GOBLET',
760 & 'PAINTING','ART','CANVAS','PICTURE'/
761
762 DATA (OVOC(I),I=131,182) /
763 & 45,45,-193,46,-190,47,-49,-114,-115,-116,-117,
764 & 47,47,48,48,
765 & 49,49,50,-122,-143,-186,50,
766 & 50,50,50,50,
767 & 51,51,51,52,
768 & 52,52,52,53,
769 & 54,54,55,55,
770 & 55,56,57,58,
771 & 58,59,59,59,
772 & 60,-149,60,-149,60,60/
773
774 DATA (OWORD(I),I=121,160) /
775 & 'WORK','MASTERPI','THIEF','ROBBER',
776 & 'CRIMINAL','BANDIT','CROOK','GENT',
777 & 'GENTLEMA','MAN','INDIVIDU','BAGMAN',
778 & 'STILETTO','WINDOW','BOLT','NUT',
779 & 'GRATE','GRATING','DOOR','TRAP-DOO',
780 & 'SWITCH','HEAD','CORPSE','BODIES',
781 & 'DAM','GATES','GATE','FCD',
782 & 'RAIL','RAILING','BUTTON','BUBBLE',
783 & 'LEAK','DRIP','HOLE','BAT',
784 & 'RAINBOW','POT','STATUE','SCULPTUR'/
785
786 DATA (OVOC(I),I=183,258) /
787 & 60,60,61,61,
788 & 61,61,61,61,
789 & 61,61,61,61,
790 & 62,63,-198,-210,64,64,
791 & 65,65,66,-67,-68,-69,-119,-164,
792 & -172,-173,-174,-175,-189,-197,66,
793 & 70,-79,-80,-81,-82,-170,71,-120,72,-73,72,-73,
794 & 74,74,-76,74,-76,74,
795 & 75,75,76,-79,-80,-81,-82,-127,-128,-129,-170,-176,77,
796 & 78,-191,78,78,-107,-202,-203,83,
797 & 84,85,86,86/
798
799 DATA (OWORD(I),I=161,200) /
800 & 'ROCK','BOAT','PLASTIC','PUMP',
801 & 'AIRPUMP','AIR-PUMP','LABEL','FINEPRIN',
802 & 'STICK','BARREL','BUOY','EMERALD',
803 & 'SHOVEL','GUANO','CRAP','SHIT',
804 & 'HUNK','BALLOON','RECEPTAC','WIRE',
805 & 'HOOK','ZORKMID','COIN','SAFE',
806 & 'CARD','NOTE','SLOT','CROWN',
807 & 'BRICK','FUSE','GNOME','STAMP',
808 & 'TOMB','CRYPT','GRAVE','HEADS',
809 & 'POLES','IMPLEMEN','LOSERS','COKES'/
810
811 DATA (OVOC(I),I=259,312) /
812 & 86,87,-88,-90,87,-88,-90,89,
813 & 89,89,91,-112,91,
814 & 92,93,94,95,
815 & 96,97,97,97,
816 & 97,98,-113,99,101,-110,
817 & 102,-103,104,-148,104,105,
818 & 106,-188,106,-186,107,-187,108,
819 & 109,110,111,-152,118,-196,
820 & 119,119,119,120,
821 & 120,120,120,121/
822
823 DATA (OWORD(I),I=201,240) /
824 & 'LISTINGS','OUTPUT','PRINTOUT','SPHERE',
825 & 'BALL','ETCHING','WALLS','WALL',
826 & 'FLASK','POOL','SEWAGE','TIN',
827 & 'SAFFRON','SPICES','TABLE','POST',
828 & 'POSTS','BUCKET','CAKE','ICING',
829 & 'ROBOT','ROBBY','C3PO','R2D2',
830 & 'PANEL','POLE','TBAR','T-BAR',
831 & 'ARROW','POINT','BEAM','DIAL',
832 & 'SUNDIAL','1','ONE','2',
833 & 'TWO','3','THREE','4'/
834
835 DATA (OVOC(I),I=313,387) /
836 & 122,122,122,126,-206,-209,
837 & 126,130,-131,130,-131,-257,130,-131,-159,
838 & -160,-161,-162,-163,-164,-257,-265,-269,-270,-271,-272,
839 & 132,133,133,134,
840 & 134,134,135,-204,136,-166,-167,
841 & 136,137,138,-139,-140,-141,139,-140,-141,
842 & 142,142,142,142,
843 & 159,-160,-161,-162,-163,-164,-194,-277,120,-166,-167,168,168,
844 & 169,169,171,177,
845 & 177,178,178,179,
846 & 179,180,180,181/
847
848 DATA (OWORD(I),I=241,280) /
849 & 'FOUR','5','FIVE','6',
850 & 'SIX','7','SEVEN','8',
851 & 'EIGHT','WARNING','SLIT','IT',
852 & 'THAT','THIS','ME','MYSELF',
853 & 'CRETIN','ALL','EVERYTHI','TREASURE',
854 & 'VALUABLE','SAILOR','TEETH','GRUE',
855 & 'HAND','HANDS','LUNGS','AIR',
856 & 'AVIATOR','FLYER','TREE','CLIFF',
857 & 'LEDGE','PORTRAIT','STACK','BILLS',
858 & 'VAULT','CUBE','LETTERIN','CURTAIN'/
859
860 DATA (OVOC(I),I=388,432) /
861 & 181,182,182,183,
862 & 183,184,184,185,
863 & 185,186,187,250,
864 & 250,250,251,251,
865 & 251,252,252,253,
866 & 253,255,256,258,
867 & 259,259,260,260,
868 & 261,261,144,-145,-268,146,-147,
869 & 146,149,122,-148,148,
870 & 150,150,67,-150,151/
871
872 DATA (OWORD(I),I=281,320) /
873 & 'LIGHT','NEST','EGG','BAUBLE',
874 & 'CANARY','BIRD','SONGBIRD','GUARD',
875 & 'GUARDIAN','ROSE','STRUCTUR','CHANNEL',
876 & 'KEEPER','LADDER','BROCHURE','WISH',
877 & 'GROUND','EARTH','SAND','WELL',
878 & 'SLIDE','CHUTE','HOUSE','BOTTLES',
879 & 'BUNCH','PALANTIR','STONE','FLINT',
880 & 'POSSESSI','GOOP','BEACH','GRIP',
881 & 'HANDGRIP','PRINT','ETCHINGS','CRACK',
882 & 'KEYHOLE','MAT','STOVE','PLATINUM'/
883
884 DATA (OVOC(I),I=433,485) /
885 & 15,-151,-171,153,154,-155,156,
886 & 157,-158,267,267,274,
887 & 274,275,276,278,
888 & 279,280,195,-262,263,
889 & 264,264,192,-264,281,
890 & 283,283,266,121,
891 & 121,126,-206,-209,126,-206,-209,51,
892 & 254,133,192,167,
893 & 167,91,-122,130,-131,199,
894 & 202,-203,207,208,26/
895
896 DATA (OWORD(I),I=321,360) /
897 & 'HIM','SELF','GOLD','SAPPHIRE',
898 & 'IVORY','MASTER','CANDLE','JADE',
899 & 'SCREEN','BLESSING','GHOSTS','SPIRITS',
900 & 'CORPSES','JEWELS','CLIFFS','CHIMNEY',
901 & 24*' '/
902
903 DATA (OVOC(I),I=486,529) /
904 & 250,251,85,-104,37,
905 & 34,279,48,6,
906 & 151,263,42,42,
907 & 72,-73,37,-45,146,-147,211,
908 & 24*0/
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944 Note
945
946
947
948
949
950
951
952
953
954
955
956
957
958 DATA (VWORD(I),I=1,43) /
959 & 'BRIEF','VERBOSE','SUPERBRI','STAY',
960 & 'VERSION','*SWIM','*BATHE','WADE',
961 & 'GERONIMO','*ULYSSES','ODYSSEUS','*PLUGH','XYZZY',
962 & 'PRAY','TREASURE','TEMPLE','BLAST',
963 & 'SCORE','*QUIT','*GOODBYE','*Q','BYE','HELP',
964 & 'INFO','*HISTORY','UPDATE','BACK',
965 & '*MUMBLE','SIGH','*CHOMP','*LOSE',
966 & 'BARF','DUNGEON','FROBOZZ','*FOO',
967 & '*BLETCH','BAR','REPENT','*HOURS',
968 & 'SCHEDULE','WIN','*YELL','*SCREAM'/
969
970 DATA (VVOC(I),I=1,54) /
971 & 1,70,1,71,1,72,1,73,
972 & 1,74,1,75,
973 & 1,76,1,77,1,56,
974 & 1,79,1,80,1,81,1,82,
975 & 1,83,1,84,1,40,
976 & 1,41,1,42,1,43,
977 & 1,44,
978 & 1,45,1,46,1,47,
979 & 1,48,1,49,
980 & 1,50,1,51/
981
982 DATA (VWORD(I),I=44,86) /
983 & 'SHOUT','*HOP','SKIP','*CURSE',
984 & '*SHIT','*DAMN','FUCK','ZORK',
985 & 'WISH','SAVE','RESTORE','TIME',
986 & 'DIAGNOSE','EXORCISE','*LIST','*I','INVENTOR',
987 & 'WAIT','INCANT','*ANSWER','RESPOND','AGAIN',
988 & 'NOOBJ','*BUG','*GRIPE','COMPLAIN',
989 & '*FEATURE','*COMMENT','*IDEA','SUGGESTI',
990 & 'ROOM','*OBJECTS','OBJ','RNAME','DEFLATE',
991 & '*EXAMINE','*WHAT','DESCRIBE','FILL',
992 & '*FIND','*SEEK','*WHERE','SEE'/
993
994 DATA (VVOC(I),I=55,120) /
995 & 1,52,1,53,
996 & 1,54,1,55,
997 & 1,169,1,149,1,150,1,90,
998 & 1,94,1,105,1,133,
999 & 1,128,1,95,1,96,1,57,
1000 & 1,58,1,59,
1001 & 1,60,
1002 & 1,65,1,66,1,67,1,o50147,
1003 & 4,o40170,o60000,-1,-1,
1004 & 11,o60206,o61000,o200,0,o61002,-1,-1,
1005 & o40206,o61000,o200,0,
1006 & 4,o40177,o60000,-1,-1/
1007
1008 DATA (VWORD(I),I=87,131) /
1009 & 'FOLLOW','*KICK','*BITE','TAUNT',
1010 & 'LOWER','*PUSH','PRESS','*RING',
1011 & 'PEAL','*RUB','*FEEL','*CARESS','*TOUCH',
1012 & 'FONDLE','SHAKE','SPIN','*UNTIE',
1013 & 'FREE','*WALK','*RUN','*PROCEED','GO','*ATTACK','*FIGHT',
1014 & '*INJURE','*HIT','HURT','BOARD',
1015 & '*BRUSH','CLEAN','*BURN','*IGNITE',
1016 & 'INCINERA','CLIMB','CLOSE','DIG',
1017 & 'DISEMBAR','*DRINK','*IMBIBE','SWALLOW',
1018 & '*DROP','RELEASE','*EAT','*GOBBLE','*CONSUME'/
1019
1020 DATA (VVOC(I),I=121,278) /
1021 & 2,o125,o50125,1,o50153,
1022 & 1,o50156,9,o50160,o40160,o61012,-1,-1,
1023 & o40241,o61010,-1,-1,
1024 & 5,o52127,o70127,o61002,-1,-1,
1025 & 1,o50157,1,o50171,1,o50201,
1026 & 11,o42161,o61000,0,o10000,
1027 & o60242,o61000,0,o10000,o61015,-1,-1,
1028 & 9,o50216,o40126,o61016,-1,-1,o40126,o61005,-1,-1,
1029 & 7,o60215,o21000,0,o200,o44002,0,o1000,
1030 & 4,o40202,o21000,0,2,
1031 & 5,o52130,o70130,o61002,-1,-1,
1032 & 7,o60211,o61000,o20,0,o64002,o10,0,
1033 & 12,o40235,o20007,0,o4000,o40236,o20006,0,o4000,
1034 & o40234,o20000,0,o4000,
1035 & 4,o40176,o61000,o10200,0,
1036 & 21,o60131,o20005,0,o40000,o44002,4,0,
1037 & o60131,o20016,0,o40000,o44002,4,0,
1038 & o60131,o20000,0,o40000,o44002,4,0,
1039 & 8,o40203,o20000,0,2,o40203,o20015,0,2,
1040 & 4,o40210,o61000,o400,0,
1041 & 25,o42221,o41000,-1,-1,
1042 & o60220,o41000,-1,-1,o61005,-1,-1,
1043 & o60220,o41000,-1,-1,o61006,-1,-1,
1044 & o60220,o41000,-1,-1,o61016,-1,-1/
1045
1046 DATA (VWORD(I),I=132,172) /
1047 & '*MUNCH','TASTE','*DOUSE','EXTINGUI',
1048 & '*GIVE','*HAND','DONATE','*HELLO',
1049 & 'HI','BLOW','INFLATE','*JUMP',
1050 & 'LEAP','*KILL','*MURDER','*SLAY',
1051 & '*STAB','DISPATCH','*KNOCK','RAP',
1052 & 'LIGHT','LOCK','*LOOK','*L','*STARE',
1053 & 'GAZE','*MELT','LIQUIFY','MOVE',
1054 & '*PULL','TUG','*DESTROY','*MUNG',
1055 & '*BREAK','DAMAGE','OPEN','PICK',
1056 & '*PLUG','*GLUE','PATCH','*POKE'/
1057
1058 DATA (VVOC(I),I=279,450) /
1059 & 4,o40207,o75000,o2000,0,
1060 & 4,o40174,o75000,o100,0,
1061 & 11,o72222,o21004,o40,0,o64222,o21000,o40,0,
1062 & o61000,-1,-1,
1063 & 2,o2227,o50227,
1064 & 15,o62146,o61007,-1,-1,o61002,4,0,
1065 & o40122,o61007,-1,-1,o40165,o61005,-1,-1,
1066 & 4,o70146,o61002,4,0,
1067 & 5,o133,o40133,o61001,-1,-1,
1068 & 7,o60213,o21000,0,o200,o44002,0,o1000,
1069 & 12,o42166,o61003,-1,-1,o40166,o61012,-1,-1,
1070 & o40215,o23006,o40,0,
1071 & 11,o42173,o75000,o100,0,o60211,o61000,o100,0,
1072 & o54002,o10,0,
1073 & 7,o60134,o20000,-1,-1,o74002,4,0,
1074 & 31,o167,o40170,o60003,-1,-1,o40231,o61010,-1,-1,
1075 & o40230,o60005,-1,-1,o40230,o60016,-1,-1,
1076 & o60144,o60003,-1,-1,o61002,-1,-1,
1077 & o60144,o60003,-1,-1,o61016,-1,-1,
1078 & 4,o70145,o61002,o10,0,
1079 & 4,o40172,o20000,-1,-1,
1080 & 8,o42172,o21000,-1,-1,o40172,o21012,-1,-1,
1081 & 5,o52212,o70212,o44002,-1,-1,
1082 & 11,o42175,o61000,o10200,0,o60175,o61000,o10200,0,
1083 & o54002,4,o1000,
1084 & 4,o40204,o61007,o20000,o40,
1085 & 4,o70152,o61002,-1,-1/
1086
1087 DATA (VWORD(I),I=173,212) /
1088 & '*BLIND','JAB','*POUR','SPILL',
1089 & 'PUMP','*PUT','*INSERT','*STUFF',
1090 & 'PLACE','*RAISE','LIFT','*READ',
1091 & '*PERUSE','SKIM','STRIKE','*SWING',
1092 & 'THRUST','*TAKE','*HOLD','*CARRY',
1093 & 'REMOVE','*TELL','*COMMAND','REQUEST',
1094 & '*THROW','*HURL','CHUCK','*TIE',
1095 & 'FASTEN','*TURN','SET','UNLOCK',
1096 & '*WAKE','*ALARM','*STARTLE','SURPRISE',
1097 & '*WAVE','*FLAUNT','BRANDISH','WIND'/
1098
1099 DATA (VVOC(I),I=451,654) /
1100 & 7,o60212,o21000,0,o200,o44002,0,o1000,
1101 & 25,o42223,o41000,o400,0,
1102 & o60223,o41000,o400,0,o61005,-1,-1,
1103 & o60223,o41000,o400,0,o61016,-1,-1,
1104 & o60240,o41000,o400,0,o61012,-1,-1,
1105 & 4,o40232,o60007,-1,-1,
1106 & 16,o72220,o61005,-1,-1,o70220,o61016,-1,-1,
1107 & o40221,o61006,-1,-1,o70241,o61010,-1,-1,
1108 & 5,o52155,o40155,o61007,-1,-1,
1109 & 18,o42144,o71000,o40000,0,
1110 & o60144,o71000,o40000,0,o61002,-1,-1,
1111 & o60144,o71000,o40000,0,o61016,-1,-1,
1112 & 12,o60215,o23000,o40,0,o44002,0,o1000,
1113 & o42215,o23000,o40,0,o50173,
1114 & 7,o60214,o44000,0,o1000,o21003,0,o200,
1115 & 11,o42204,o61000,o20000,o40,
1116 & o60204,o61000,o20000,0,o61015,-1,-1,
1117 & 4,o40217,o20000,0,o2000,
1118 & 21,o62224,o44000,-1,-1,o21003,o40,0,
1119 & o60224,o44000,-1,-1,o21016,o40,0,
1120 & o60220,o44000,-1,-1,o61005,-1,-1,
1121 & 11,o70162,o61004,-1,-1,o60163,o21007,o40,0,
1122 & o65002,4,0,
1123 & 22,o62164,o61000,2,0,o64002,4,0,
1124 & o40173,o75012,o100,0,o40174,o75013,o100,0,
1125 & o60237,o61000,2,0,o20004,-1,-1,
1126 & 7,o60135,o21000,-1,-1,o74002,4,0,
1127 & 8,o42150,o20000,o40,0,o40150,o20007,o40,0,
1128 & 4,o40154,o40000,-1,-1,
1129 & 5,o50233,o40233,o61007,-1,-1/
1130
1131 DATA (VWORD(I),I=213,240)/
1132 & 'ENTER','LEAVE','*MAKE','BUILD',
1133 & '*OIL','*GREASE','LUBRICAT','PLAY',
1134 & 'SEND','SLIDE','*SMELL','SNIFF',
1135 & 'SQUEEZE','GET','COUNT',13*' '/
1136
1137 DATA (VVOC(I),I=655,722) /
1138 & 2,167,o50126,2,168,o50220,1,o50243,
1139 & 4,o70244,o41002,-1,-1,
1140 & 5,o50245,o70245,o75002,4,0,
1141 & 4,o40246,o61014,-1,-1,
1142 & 4,o70241,o61010,-1,-1,1,o50105,
1143 & 1,o50104,19,o42204,o61000,o20000,o40,
1144 & o40202,o21005,0,2,o40203,o21015,0,2,
1145 & o60204,o61000,o20000,o40,o61015,-1,-1,
1146 & 1,o50141,13*0/
1147