	COMMON /OINDEX/ POT,STATU,IBOAT,DBOAT,PUMP,RBOAT
	COMMON /OINDEX/ STICK,BUOY,SHOVE,BALLO,RECEP,GUANO
	COMMON /OINDEX/ BROPE,HOOK1,HOOK2,SAFE,SSLOT,BRICK,FUSE
	COMMON /OINDEX/ GNOME,BLABE,DBALL,TOMB
	COMMON /OINDEX/ LCASE,CAGE,RCAGE,SPHER,SQBUT
	COMMON /OINDEX/ FLASK,POOL,SAFFR,BUCKE,ECAKE,ORICE,RDICE,BLICE
	COMMON /OINDEX/ ROBOT,FTREE,BILLS,PORTR,SCOL,ZGNOM
	COMMON /OINDEX/ EGG,BEGG,BAUBL,CANAR,BCANA
	COMMON /OINDEX/ YLWAL,RDWAL,PINDR,RBEAM
	COMMON /OINDEX/ ODOOR,QDOOR,CDOOR,NUM1,NUM8
	COMMON /OINDEX/ HANDS,WALL,LUNGS,SAILO,AVIAT,TEETH
	COMMON /OINDEX/ ITOBJ,EVERY,VALUA,OPLAY,WNORT,GWATE,MASTER
#
# CLOCK INTERRUPTS
#
	LOGICAL CFLAG
	COMMON /CEVENT/ CLNT,CTICK(25),CACTIO(25),CFLAG(25)
#
	COMMON /CINDEX/ CEVCUR,CEVMNT,CEVLNT,CEVMAT,CEVCND,
		CEVBAL,CEVBRN,CEVFUS,CEVLED,CEVSAF,CEVVLG,
		CEVGNO,CEVBUC,CEVSPH,CEVEGH,
			CEVFOR,CEVSCL,CEVZGI,CEVZGO,CEVSTE,
		CEVMRS,CEVPIN,CEVINQ,CEVFOL

#
	COMMON /AINDEX/ PLAYER,AROBOT,AMASTR
#
# VERBS
#
	COMMON /VINDEX/ CINTW,DEADXW,FRSTQW,INXW,OUTXW
	COMMON /VINDEX/ WALKIW,FIGHTW,FOOW
	COMMON /VINDEX/ MELTW,READW,INFLAW,DEFLAW,ALARMW,EXORCW
	COMMON /VINDEX/ PLUGW,KICKW,WAVEW,RAISEW,LOWERW,RUBW
	COMMON /VINDEX/ PUSHW,UNTIEW,TIEW,TIEUPW,TURNW,BREATW
	COMMON /VINDEX/ KNOCKW,LOOKW,EXAMIW,SHAKEW,MOVEW,TRNONW,TRNOFW
	COMMON /VINDEX/ OPENW,CLOSEW,FINDW,WAITW,SPINW,BOARDW,UNBOAW,TAKEW
	COMMON /VINDEX/ INVENW,FILLW,EATW,DRINKW,BURNW
	COMMON /VINDEX/ MUNGW,KILLW,ATTACW,SWINGW
	COMMON /VINDEX/ WALKW,TELLW,PUTW,DROPW,GIVEW,POURW,THROWW
	COMMON /VINDEX/ DIGW,LEAPW,STAYW,FOLLOW
	COMMON /VINDEX/ HELLOW,LOOKIW,LOOKUW,PUMPW,WINDW
	COMMON /VINDEX/ CLMBW,CLMBUW,CLMBDW,TRNTOW
#
# FLAGS
#
	LOGICAL TROLLF,CAGESF,BUCKTF,CAROFF,CAROZF,LWTIDF
	LOGICAL DOMEF,GLACRF,ECHOF,RIDDLF,LLDF,CYCLOF
	LOGICAL MAGICF,LITLDF,SAFEF,GNOMEF,GNODRF,MIRRMF
	LOGICAL EGYPTF,ONPOLF,BLABF,BRIEFF,SUPERF,BUOYF
	LOGICAL GRUNLF,GATEF,RAINBF,CAGETF,EMPTHF,DEFLAF
	LOGICAL GLACMF,FROBZF,ENDGMF,BADLKF,THFENF,SINGSF
	LOGICAL MRPSHF,MROPNF,WDOPNF,MR1F,MR2F,INQSTF
	LOGICAL FOLLWF,SPELLF,sprf
	COMMON /FINDEX/ TROLLF,CAGESF,BUCKTF,CAROFF,CAROZF,LWTIDF,
		DOMEF,GLACRF,ECHOF,RIDDLF,LLDF,CYCLOF,
		MAGICF,LITLDF,SAFEF,GNOMEF,GNODRF,MIRRMF,
			EGYPTF,ONPOLF,BLABF,BRIEFF,SUPERF,BUOYF,
		GRUNLF,GATEF,RAINBF,CAGETF,EMPTHF,DEFLAF,
		GLACMF,FROBZF,ENDGMF,BADLKF,THFENF,SINGSF,
		MRPSHF,MROPNF,WDOPNF,MR1F,MR2F,INQSTF,
		follwf,spellf,sprf(6)
	COMMON /FINDEX/ BTIEF,BINFF
	COMMON /FINDEX/ RVMNT,RVCLR,RVCYC,RVSND,RVGUA
	COMMON /FINDEX/ ORRUG,ORCAND,ORMTCH,ORLAMP
	COMMON /FINDEX/ MDIR,MLOC,POLEUF
	COMMON /FINDEX/ QUESNO,NQATT,CORRCT
	COMMON /FINDEX/ LCELL,PNUMB,ACELL,DCELL
#
# FUNCTIONS AND DATA
#
	QOPEN(R)=AND(OFLAG2(R),OPENBT).NE.0
	DATA NEWRMS/38/

# RAPPL2, PAGE 2
#
	RAPPL2=.TRUE.
	GO TO (38000,39000,40000,41000,42000,43000,44000,
		45000,46000,47000,48000,49000,50000,
		51000,52000,53000,54000,55000,56000,
			57000,58000),
		(RI-NEWRMS+1)
	CALL BUG(70,RI)
	RETURN
#
# R38--	MIRROR D ROOM
#
38000	IF(PRSA.EQ.LOOKW) CALL LOOKTO(FDOOR,MRG,0,682,681)
	RETURN
#
# R39--	MIRROR G ROOM
#
39000	IF(PRSA.EQ.WALKIW) CALL JIGSUP(685)
	RETURN
#
# R40--	MIRROR C ROOM
#
40000	IF(PRSA.EQ.LOOKW) CALL LOOKTO(MRG,MRB,683,0,681)
	RETURN
#
# R41--	MIRROR B ROOM
#
41000	IF(PRSA.EQ.LOOKW) CALL LOOKTO(MRC,MRA,0,0,681)
	RETURN
#
# R42--	MIRROR A ROOM
#
42000	IF(PRSA.EQ.LOOKW) CALL LOOKTO(MRB,0,0,684,681)
	RETURN

# RAPPL2, PAGE 3
#
# R43--	MIRROR C EAST/WEST
#
43000	IF(PRSA.EQ.LOOKW) CALL EWTELL(HERE,683)
	RETURN
#
# R44--	MIRROR B EAST/WEST
#
44000	IF(PRSA.EQ.LOOKW) CALL EWTELL(HERE,686)
	RETURN
#
# R45--	MIRROR A EAST/WEST
#
45000	IF(PRSA.EQ.LOOKW) CALL EWTELL(HERE,687)
	RETURN
#
# R46--	INSIDE MIRROR
#
46000	IF(PRSA.NE.LOOKW) RETURN		#LOOK?
	CALL RSPEAK(688)			#DESCRIBE
#
# NOW DESCRIBE POLE STATE.
#
# CASES 1,2--	MDIR=270 & MLOC=MRB, POLE IS UP OR IN HOLE
# CASES 3,4--	MDIR=0 V MDIR=180, POLE IS UP OR IN CHANNEL
# CASE 5--	POLE IS UP
#
	I=689					#ASSUME CASE 5.
	IF((MDIR.EQ.270).AND.(MLOC.EQ.MRB))
		I=690+MIN0(POLEUF,1)		#CASES 1,2.
	IF(MOD(MDIR,180).EQ.0)
		I=692+MIN0(POLEUF,1)		#CASES 3,4.
	CALL RSPEAK(I)			#DESCRIBE POLE.
	CALL RSPSUB(694,695+(MDIR/45))		#DESCRIBE ARROW.
	RETURN

# RAPPL2, PAGE 4
#
# R47--	MIRROR EYE ROOM
#
47000	IF(PRSA.NE.LOOKW) RETURN		#LOOK?
	I=704					#ASSUME BEAM STOP.
	DO J=1,OLNT {
	  IF(QHERE(J,HERE).AND.(J.NE.RBEAM)) GO TO 47200
	  }
	I=703
47200	CALL RSPSUB(I,ODESC2(J))		#DESCRIBE BEAM.
	CALL LOOKTO(MRA,0,0,0,0)		#LOOK NORTH.
	RETURN
#
# R48--	INSIDE CRYPT
#
48000	IF(PRSA.NE.LOOKW) RETURN		#LOOK?
	I=46					#CRYPT IS OPEN/CLOSED.
	IF(QOPEN(TOMB)) I=12
	CALL RSPSUB(705,I)
	RETURN
#
# R49--	SOUTH CORRIDOR
#
49000	IF(PRSA.NE.LOOKW) RETURN		#LOOK?
	CALL RSPEAK(706)			#DESCRIBE.
	I=46					#ODOOR IS OPEN/CLOSED.
	IF(QOPEN(ODOOR)) I=12
	IF(LCELL.EQ.4) CALL RSPSUB(707,I)	#DESCRIBE ODOOR IF THERE.
	RETURN
#
# R50--	BEHIND DOOR
#
50000	IF(PRSA.NE.WALKIW) GO TO 50100		#WALK IN?
	CFLAG(CEVFOL)=.TRUE.			#MASTER FOLLOWS.
	CTICK(CEVFOL)=-1
	RETURN
#
50100	IF(PRSA.NE.LOOKW) RETURN		#LOOK?
	I=46					#QDOOR IS OPEN/CLOSED.
	IF(QOPEN(QDOOR)) I=12
	CALL RSPSUB(708,I)
	RETURN

# RAPPL2, PAGE 5
#
# R51--	FRONT DOOR
#
51000	IF(PRSA.EQ.WALKIW) CTICK(CEVFOL)=0	#IF EXITS, KILL FOLLOW.
	IF(PRSA.NE.LOOKW) RETURN		#LOOK?
	CALL LOOKTO(0,MRD,709,0,0)		#DESCRIBE SOUTH.
	I=46					#PANEL IS OPEN/CLOSED.
	IF(INQSTF) I=12				#OPEN IF INQ STARTED.
	J=46					#QDOOR IS OPEN/CLOSED.
	IF(QOPEN(QDOOR)) J=12
	CALL RSPSB2(710,I,J)
	RETURN
#
# R52--	NORTH CORRIDOR
#
52000	IF(PRSA.NE.LOOKW) RETURN		#LOOK?
	I=46
	IF(QOPEN(CDOOR)) I=12			#CDOOR IS OPEN/CLOSED.
	CALL RSPSUB(711,I)
	RETURN
#
# R53--	PARAPET
#
53000	IF(PRSA.EQ.LOOKW) CALL RSPSUB(712,712+PNUMB)
	RETURN
#
# R54--	CELL
#
54000	IF(PRSA.NE.LOOKW) RETURN		#LOOK?
	I=721					#CDOOR IS OPEN/CLOSED.
	IF(QOPEN(CDOOR)) I=722
	CALL RSPEAK(I)
	I=46					#ODOOR IS OPEN/CLOSED.
	IF(QOPEN(ODOOR)) I=12
	IF(LCELL.EQ.4) CALL RSPSUB(723,I)	#DESCRIBE.
	RETURN
#
# R55--	PRISON CELL
#
55000	IF(PRSA.EQ.LOOKW) CALL RSPEAK(724)	#LOOK?
	RETURN
#
# R56--	NIRVANA CELL
#
56000	IF(PRSA.NE.LOOKW) RETURN		#LOOK?
	I=46					#ODOOR IS OPEN/CLOSED.
	IF(QOPEN(ODOOR)) I=12
	CALL RSPSUB(725,I)
	RETURN
#
# R57--	NIRVANA AND END OF GAME
#
57000	IF(PRSA.NE.WALKIW) RETURN		#WALKIN?
	CALL RSPEAK(726)
	CALL SCORE(.FALSE.)
	CLOSE(UNIT=DBCH,DISPOSE='SAVE')
	CALL EXIT
#
# R58--	TOMB ROOM
#
58000	IF(PRSA.NE.LOOKW) RETURN		#LOOK?
	I=46					#TOMB IS OPEN/CLOSED.
	IF(QOPEN(TOMB)) I=12
	CALL RSPSUB(792,I)
	RETURN
#
	END

# LOOKTO--	DESCRIBE VIEW IN MIRROR HALLWAY
#
# DECLARATIONS
#
	SUBROUTINE LOOKTO(NRM,SRM,NT,ST,HT)
	IMPLICIT INTEGER(A-Z)
#
# GAME STATE
#
	LOGICAL TELFLG
	COMMON /PLAY/ WINNER,HERE,TELFLG
#
# FLAGS
#
	LOGICAL TROLLF,CAGESF,BUCKTF,CAROFF,CAROZF,LWTIDF
	LOGICAL DOMEF,GLACRF,ECHOF,RIDDLF,LLDF,CYCLOF
	LOGICAL MAGICF,LITLDF,SAFEF,GNOMEF,GNODRF,MIRRMF
	LOGICAL EGYPTF,ONPOLF,BLABF,BRIEFF,SUPERF,BUOYF
	LOGICAL GRUNLF,GATEF,RAINBF,CAGETF,EMPTHF,DEFLAF
	LOGICAL GLACMF,FROBZF,ENDGMF,BADLKF,THFENF,SINGSF
	LOGICAL MRPSHF,MROPNF,WDOPNF,MR1F,MR2F,INQSTF
	LOGICAL FOLLWF,SPELLF,sprf
	COMMON /FINDEX/ TROLLF,CAGESF,BUCKTF,CAROFF,CAROZF,LWTIDF,
		DOMEF,GLACRF,ECHOF,RIDDLF,LLDF,CYCLOF,
		MAGICF,LITLDF,SAFEF,GNOMEF,GNODRF,MIRRMF,
			EGYPTF,ONPOLF,BLABF,BRIEFF,SUPERF,BUOYF,
		GRUNLF,GATEF,RAINBF,CAGETF,EMPTHF,DEFLAF,
		GLACMF,FROBZF,ENDGMF,BADLKF,THFENF,SINGSF,
		MRPSHF,MROPNF,WDOPNF,MR1F,MR2F,INQSTF,
		follwf,spellf,sprf(6)
	COMMON /FINDEX/ BTIEF,BINFF
	COMMON /FINDEX/ RVMNT,RVCLR,RVCYC,RVSND,RVGUA
	COMMON /FINDEX/ ORRUG,ORCAND,ORMTCH,ORLAMP
	COMMON /FINDEX/ MDIR,MLOC,POLEUF
	COMMON /FINDEX/ QUESNO,NQATT,CORRCT
	COMMON /FINDEX/ LCELL,PNUMB,ACELL,DCELL

# LOOKTO, PAGE 2
#
	CALL RSPEAK(HT)				#DESCRIBE HALL.
	CALL RSPEAK(NT)				#DESCRIBE NORTH VIEW.
	CALL RSPEAK(ST)				#DESCRIBE SOUTH VIEW.
	DIR=0					#ASSUME NO DIRECTION.
	IF(IABS(MLOC-HERE).NE.1) GO TO 200	#MIRROR TO N OR S?
	IF(MLOC.EQ.NRM) DIR=695
	IF(MLOC.EQ.SRM) DIR=699			#DIR=N/S.
	IF(MOD(MDIR,180).NE.0) GO TO 100	#MIRROR N-S?
	CALL RSPSUB(847,DIR)			#YES, HE SEES PANEL
	CALL RSPSB2(848,DIR,DIR)		#AND NARROW ROOMS.
	GO TO 200
#
100	M1=MRHERE(HERE)				#WHICH MIRROR?
	MRBF=0					#ASSUME INTACT.
	IF(((M1.EQ.1).AND..NOT.MR1F).OR.
		((M1.EQ.2).AND..NOT.MR2F)) MRBF=1	#BROKEN?
	CALL RSPSUB(849+MRBF,DIR)		#DESCRIBE.
	IF((M1.EQ.1).AND.MROPNF) CALL RSPEAK(823+MRBF)
	IF(MRBF.NE.0) CALL RSPEAK(851)
#
200	I=0					#ASSUME NO MORE TO DO.
	IF((NT.EQ.0).AND.((DIR.EQ.0).OR.(DIR.EQ.699))) I=852
	IF((ST.EQ.0).AND.((DIR.EQ.0).OR.(DIR.EQ.695))) I=853
	IF((NT+ST+DIR).EQ.0) I=854
	IF(HT.NE.0) CALL RSPEAK(I)		#DESCRIBE HALLS.
	RETURN
#
	END

# EWTELL--	DESCRIBE E/W NARROW ROOMS
#
# DECLARATIONS
#
	SUBROUTINE EWTELL(RM,ST)
	IMPLICIT INTEGER(A-Z)
	LOGICAL M1
#
# ROOMS
#
	COMMON /RINDEX/ WHOUS,LROOM,CELLA
	COMMON /RINDEX/ MTROL,MAZE1	
	COMMON /RINDEX/ MGRAT,MAZ15	
	COMMON /RINDEX/ FORE1,FORE3,CLEAR,RESER
	COMMON /RINDEX/ STREA,EGYPT,ECHOR
	COMMON /RINDEX/ TSHAF	
	COMMON /RINDEX/ BSHAF,MMACH,DOME,MTORC
	COMMON /RINDEX/ CAROU	
	COMMON /RINDEX/ RIDDL,LLD2,TEMP1,TEMP2,MAINT
	COMMON /RINDEX/ BLROO,TREAS,RIVR1,RIVR2,RIVR3,MCYCL
	COMMON /RINDEX/ RIVR4,RIVR5,FCHMP,FALLS,MBARR
	COMMON /RINDEX/ MRAIN,POG,VLBOT,VAIR1,VAIR2,VAIR3,VAIR4
	COMMON /RINDEX/ LEDG2,LEDG3,LEDG4,MSAFE,CAGER
	COMMON /RINDEX/ CAGED,TWELL,BWELL,ALICE,ALISM,ALITR
	COMMON /RINDEX/ MTREE,BKENT,BKVW,BKTWI,BKVAU,BKBOX
	COMMON /RINDEX/ CRYPT,TSTRS,MRANT,MREYE
	COMMON /RINDEX/ MRA,MRB,MRC,MRG,MRD,FDOOR
	COMMON /RINDEX/ MRAE,MRCE,MRCW,MRGE,MRGW,MRDW,INMIR
	COMMON /RINDEX/ SCORR,NCORR,PARAP,CELL,PCELL,NCELL
#
# FLAGS
#
	LOGICAL TROLLF,CAGESF,BUCKTF,CAROFF,CAROZF,LWTIDF
	LOGICAL DOMEF,GLACRF,ECHOF,RIDDLF,LLDF,CYCLOF
	LOGICAL MAGICF,LITLDF,SAFEF,GNOMEF,GNODRF,MIRRMF
	LOGICAL EGYPTF,ONPOLF,BLABF,BRIEFF,SUPERF,BUOYF
	LOGICAL GRUNLF,GATEF,RAINBF,CAGETF,EMPTHF,DEFLAF
	LOGICAL GLACMF,FROBZF,ENDGMF,BADLKF,THFENF,SINGSF
	LOGICAL MRPSHF,MROPNF,WDOPNF,MR1F,MR2F,INQSTF
	LOGICAL FOLLWF,SPELLF,sprf
	COMMON /FINDEX/ TROLLF,CAGESF,BUCKTF,CAROFF,CAROZF,LWTIDF,
		DOMEF,GLACRF,ECHOF,RIDDLF,LLDF,CYCLOF,
		MAGICF,LITLDF,SAFEF,GNOMEF,GNODRF,MIRRMF,
			EGYPTF,ONPOLF,BLABF,BRIEFF,SUPERF,BUOYF,
		GRUNLF,GATEF,RAINBF,CAGETF,EMPTHF,DEFLAF,
		GLACMF,FROBZF,ENDGMF,BADLKF,THFENF,SINGSF,
		MRPSHF,MROPNF,WDOPNF,MR1F,MR2F,INQSTF,
		follwf,spellf,sprf(6)
	COMMON /FINDEX/ BTIEF,BINFF
	COMMON /FINDEX/ RVMNT,RVCLR,RVCYC,RVSND,RVGUA
	COMMON /FINDEX/ ORRUG,ORCAND,ORMTCH,ORLAMP
	COMMON /FINDEX/ MDIR,MLOC,POLEUF
	COMMON /FINDEX/ QUESNO,NQATT,CORRCT
	COMMON /FINDEX/ LCELL,PNUMB,ACELL,DCELL

# EWTELL, PAGE 2
#
# NOTE THAT WE ARE EAST OR WEST OF MIRROR, AND
# MIRROR MUST BE N-S.
#
	M1=(MDIR+(MOD(RM-MRAE,2)*180)).EQ.180
	I=819+MOD(RM-MRAE,2)			#GET BASIC E/W STRING.
	IF((M1.AND..NOT.MR1F).OR.(.NOT.M1.AND..NOT.MR2F))
		I=I+2				#MIRROR BROKEN?
	CALL RSPEAK(I)
	IF(M1.AND.MROPNF) CALL RSPEAK(823+((I-819)/2))
	CALL RSPEAK(825)
	CALL RSPEAK(ST)
	RETURN
#
	END
# NOBJS-	NEW OBJECTS PROCESSOR
#	OBJECTS IN THIS MODULE CANNOT CALL RMINFO, JIGSUP,
#	MAJOR VERBS, OR OTHER NON-RESIDENT SUBROUTINES
#
# DECLARATIONS
#
	LOGICAL FUNCTION NOBJS(RI,ARG)
	IMPLICIT INTEGER (A-Z)
	LOGICAL QOPEN,MOVETO,F
	LOGICAL QHERE,OPNCLS,MIRPAN
#
# PARSER OUTPUT
#
	LOGICAL PRSWON
	COMMON /PRSVEC/ PRSA,PRSI,PRSO,PRSWON,PRSCON
#
# GAME STATE
#
	LOGICAL TELFLG
	COMMON /PLAY/ WINNER,HERE,TELFLG
	COMMON /STATE/ MOVES,DEATHS,RWSCOR,MXSCOR,MXLOAD,
		LTSHFT,BLOC,MUNGRM,HS,EGSCOR,EGMXSC
#
# SCREEN OF LIGHT
#
	COMMON /SCREEN/ FROMDR,SCOLRM,SCOLAC
	COMMON /SCREEN/ SCOLDR(8),SCOLWL(12)
#
# ROOMS
#
	COMMON /ROOMS/ RLNT,RDESC2,RDESC1(215),REXIT(215),
		RACTIO(215),RVAL(215),RFLAG(215)
	INTEGER RRAND(215)
	EQUIVALENCE (RVAL,RRAND)
#
	COMMON /RFLAG/ RSEEN,RLIGHT,RLAND,RWATER,RAIR,
		RSACRD,RFILL,RMUNG,RBUCK,RHOUSE,RNWALL,REND
#
	COMMON /RINDEX/ WHOUS,LROOM,CELLA
	COMMON /RINDEX/ MTROL,MAZE1	
	COMMON /RINDEX/ MGRAT,MAZ15	
	COMMON /RINDEX/ FORE1,FORE3,CLEAR,RESER
	COMMON /RINDEX/ STREA,EGYPT,ECHOR
	COMMON /RINDEX/ TSHAF	
	COMMON /RINDEX/ BSHAF,MMACH,DOME,MTORC
	COMMON /RINDEX/ CAROU	
	COMMON /RINDEX/ RIDDL,LLD2,TEMP1,TEMP2,MAINT
	COMMON /RINDEX/ BLROO,TREAS,RIVR1,RIVR2,RIVR3,MCYCL
	COMMON /RINDEX/ RIVR4,RIVR5,FCHMP,FALLS,MBARR
	COMMON /RINDEX/ MRAIN,POG,VLBOT,VAIR1,VAIR2,VAIR3,VAIR4
	COMMON /RINDEX/ LEDG2,LEDG3,LEDG4,MSAFE,CAGER
	COMMON /RINDEX/ CAGED,TWELL,BWELL,ALICE,ALISM,ALITR
	COMMON /RINDEX/ MTREE,BKENT,BKVW,BKTWI,BKVAU,BKBOX
	COMMON /RINDEX/ CRYPT,TSTRS,MRANT,MREYE
	COMMON /RINDEX/ MRA,MRB,MRC,MRG,MRD,FDOOR
	COMMON /RINDEX/ MRAE,MRCE,MRCW,MRGE,MRGW,MRDW,INMIR
	COMMON /RINDEX/ SCORR,NCORR,PARAP,CELL,PCELL,NCELL
#
# OBJECTS
#
	COMMON /OBJCTS/ OLNT,ODESC1(250),ODESC2(250),ODESCO(250),
		OACTIO(250),OFLAG1(250),OFLAG2(250),OFVAL(250),
		OTVAL(250),OSIZE(250),OCAPAC(250),OROOM(250),
			OADV(250),OCAN(250),OREAD(250)
#
	COMMON /OFLAGS/ VISIBT,READBT,TAKEBT,DOORBT,TRANBT,FOODBT,
		NDSCBT,DRNKBT,CONTBT,LITEBT,VICTBT,BURNBT,FLAMBT,
		TOOLBT,TURNBT,ONBT
	COMMON /OFLAGS/ FINDBT,SLEPBT,SCRDBT,TIEBT,CLMBBT,ACTRBT,
		WEAPBT,FITEBT,VILLBT,STAGBT,TRYBT,NOCHBT,OPENBT,
		TCHBT,VEHBT,SCHBT
#
	COMMON /OINDEX/ GARLI,FOOD,GUNK,COAL,MACHI,DIAMO,TCASE,BOTTL
	COMMON /OINDEX/ WATER,ROPE,KNIFE,SWORD,LAMP,BLAMP,RUG
	COMMON /OINDEX/	LEAVE,TROLL,AXE
	COMMON /OINDEX/ RKNIF,KEYS,ICE,BAR
	COMMON /OINDEX/ COFFI,TORCH,TBASK,FBASK,IRBOX
	COMMON /OINDEX/ GHOST,TRUNK,BELL,BOOK,CANDL
	COMMON /OINDEX/ MATCH,TUBE,PUTTY,WRENC,SCREW,CYCLO,CHALI
	COMMON /OINDEX/ THIEF,STILL,WINDO,GRATE,DOOR
	COMMON /OINDEX/ HPOLE,LEAK,RBUTT,RAILI
	COMMON /OINDEX/ POT,STATU,IBOAT,DBOAT,PUMP,RBOAT
	COMMON /OINDEX/ STICK,BUOY,SHOVE,BALLO,RECEP,GUANO
	COMMON /OINDEX/ BROPE,HOOK1,HOOK2,SAFE,SSLOT,BRICK,FUSE
	COMMON /OINDEX/ GNOME,BLABE,DBALL,TOMB
	COMMON /OINDEX/ LCASE,CAGE,RCAGE,SPHER,SQBUT
	COMMON /OINDEX/ FLASK,POOL,SAFFR,BUCKE,ECAKE,ORICE,RDICE,BLICE
	COMMON /OINDEX/ ROBOT,FTREE,BILLS,PORTR,SCOL,ZGNOM
	COMMON /OINDEX/ EGG,BEGG,BAUBL,CANAR,BCANA
	COMMON /OINDEX/ YLWAL,RDWAL,PINDR,RBEAM
	COMMON /OINDEX/ ODOOR,QDOOR,CDOOR,NUM1,NUM8
	COMMON /OINDEX/ HANDS,WALL,LUNGS,SAILO,AVIAT,TEETH
	COMMON /OINDEX/ ITOBJ,EVERY,VALUA,OPLAY,WNORT,GWATE,MASTER
#
# CLOCK INTERRUPTS
#
	LOGICAL CFLAG
	COMMON /CEVENT/ CLNT,CTICK(25),CACTIO(25),CFLAG(25)
#
	COMMON /CINDEX/ CEVCUR,CEVMNT,CEVLNT,CEVMAT,CEVCND,
		CEVBAL,CEVBRN,CEVFUS,CEVLED,CEVSAF,CEVVLG,
		CEVGNO,CEVBUC,CEVSPH,CEVEGH,
			CEVFOR,CEVSCL,CEVZGI,CEVZGO,CEVSTE,
		CEVMRS,CEVPIN,CEVINQ,CEVFOL

#
# VILLAINS AND DEMONS
#
	LOGICAL THFFLG,SWDACT,THFACT
	COMMON /HACK/ THFPOS,THFFLG,THFACT,SWDACT,SWDSTA
#
# ADVENTURERS
#
	COMMON /ADVS/ ALNT,AROOM(4),ASCORE(4),AVEHIC(4),
		AOBJ(4),AACTIO(4),ASTREN(4),AFLAG(4)
#
	COMMON /AINDEX/ PLAYER,AROBOT,AMASTR
#
# VERBS
#
	COMMON /VINDEX/ CINTW,DEADXW,FRSTQW,INXW,OUTXW
	COMMON /VINDEX/ WALKIW,FIGHTW,FOOW
	COMMON /VINDEX/ MELTW,READW,INFLAW,DEFLAW,ALARMW,EXORCW
	COMMON /VINDEX/ PLUGW,KICKW,WAVEW,RAISEW,LOWERW,RUBW
	COMMON /VINDEX/ PUSHW,UNTIEW,TIEW,TIEUPW,TURNW,BREATW
	COMMON /VINDEX/ KNOCKW,LOOKW,EXAMIW,SHAKEW,MOVEW,TRNONW,TRNOFW
	COMMON /VINDEX/ OPENW,CLOSEW,FINDW,WAITW,SPINW,BOARDW,UNBOAW,TAKEW
	COMMON /VINDEX/ INVENW,FILLW,EATW,DRINKW,BURNW
	COMMON /VINDEX/ MUNGW,KILLW,ATTACW,SWINGW
	COMMON /VINDEX/ WALKW,TELLW,PUTW,DROPW,GIVEW,POURW,THROWW
	COMMON /VINDEX/ DIGW,LEAPW,STAYW,FOLLOW
	COMMON /VINDEX/ HELLOW,LOOKIW,LOOKUW,PUMPW,WINDW
	COMMON /VINDEX/ CLMBW,CLMBUW,CLMBDW,TRNTOW
#
# FLAGS
#
	LOGICAL TROLLF,CAGESF,BUCKTF,CAROFF,CAROZF,LWTIDF
	LOGICAL DOMEF,GLACRF,ECHOF,RIDDLF,LLDF,CYCLOF
	LOGICAL MAGICF,LITLDF,SAFEF,GNOMEF,GNODRF,MIRRMF
	LOGICAL EGYPTF,ONPOLF,BLABF,BRIEFF,SUPERF,BUOYF
	LOGICAL GRUNLF,GATEF,RAINBF,CAGETF,EMPTHF,DEFLAF
	LOGICAL GLACMF,FROBZF,ENDGMF,BADLKF,THFENF,SINGSF
	LOGICAL MRPSHF,MROPNF,WDOPNF,MR1F,MR2F,INQSTF
	LOGICAL FOLLWF,SPELLF,sprf
	COMMON /FINDEX/ TROLLF,CAGESF,BUCKTF,CAROFF,CAROZF,LWTIDF,
		DOMEF,GLACRF,ECHOF,RIDDLF,LLDF,CYCLOF,
		MAGICF,LITLDF,SAFEF,GNOMEF,GNODRF,MIRRMF,
			EGYPTF,ONPOLF,BLABF,BRIEFF,SUPERF,BUOYF,
		GRUNLF,GATEF,RAINBF,CAGETF,EMPTHF,DEFLAF,
		GLACMF,FROBZF,ENDGMF,BADLKF,THFENF,SINGSF,
		MRPSHF,MROPNF,WDOPNF,MR1F,MR2F,INQSTF,
		follwf,spellf,sprf(6)
	COMMON /FINDEX/ BTIEF,BINFF
	COMMON /FINDEX/ RVMNT,RVCLR,RVCYC,RVSND,RVGUA
	COMMON /FINDEX/ ORRUG,ORCAND,ORMTCH,ORLAMP
	COMMON /FINDEX/ MDIR,MLOC,POLEUF
	COMMON /FINDEX/ QUESNO,NQATT,CORRCT
	COMMON /FINDEX/ LCELL,PNUMB,ACELL,DCELL
#
# FUNCTIONS AND DATA
#
	QOPEN(R)=AND(OFLAG2(R),OPENBT).NE.0

# NOBJS, PAGE 2
#
	IF(PRSO.NE.0) ODO2=ODESC2(PRSO)
	IF(PRSI.NE.0) ODI2=ODESC2(PRSI)
	AV=AVEHIC(WINNER)
	NOBJS=.TRUE.
#
	GO TO (1000,2000,3000,4000,5000,6000,7000,8000,9000,
		10000,11000,12000,13000,14000,15000,16000,17000,
		18000,19000,20000),
			(RI-31)
	CALL BUG(6,RI)
#
# RETURN HERE TO DECLARE FALSE RESULT
#
10	NOBJS=.FALSE.
	RETURN
#
# O32--	BILLS
#
1000	IF(PRSA.NE.EATW) GO TO 1100		#EAT?
	CALL RSPEAK(639)			#JOKE.
	RETURN
#
1100	IF(PRSA.EQ.BURNW) CALL RSPEAK(640)	#BURN?  JOKE.
	GO TO 10				#LET IT BE HANDLED.

# NOBJS, PAGE 3
#
# O33--	SCREEN OF LIGHT
#
2000	TARGET=SCOL				#TARGET IS SCOL.
2100	IF(PRSO.NE.TARGET) GO TO 2400		#PRSO EQ TARGET?
	IF((PRSA.NE.PUSHW).AND.(PRSA.NE.MOVEW).AND.
		(PRSA.NE.TAKEW).AND.(PRSA.NE.RUBW)) GO TO 2200
	CALL RSPEAK(673)			#HAND PASSES THRU.
	RETURN
#
2200	IF((PRSA.NE.KILLW).AND.(PRSA.NE.ATTACW).AND.
		(PRSA.NE.MUNGW)) GO TO 2400	#AGGRESSIVE?
	CALL RSPSUB(674,ODI2)			#PASSES THRU.
	RETURN
#
2400	IF((PRSA.NE.THROWW).OR.(PRSI.NE.TARGET)) GO TO 10
	IF(HERE.EQ.BKBOX) GO TO 2600		#THRU SCOL?
	CALL NEWSTA(PRSO,0,BKBOX,0,0)		#NO, THRU WALL.
	CALL RSPSUB(675,ODO2)			#ENDS UP IN BOX ROOM.
	CTICK(CEVSCL)=0				#CANCEL ALARM.
	SCOLRM=0				#RESET SCOL ROOM.
	RETURN
#
2600	IF(SCOLRM.EQ.0) GO TO 2900		#TRIED TO GO THRU?
	CALL NEWSTA(PRSO,0,SCOLRM,0,0)		#SUCCESS.
	CALL RSPSUB(676,ODO2)			#ENDS UP SOMEWHERE.
	CTICK(CEVSCL)=0			#CANCEL ALARM.
	SCOLRM=0				#RESET SCOL ROOM.
	RETURN
#
2900	CALL RSPEAK(213)			#CANT DO IT.
	RETURN

# NOBJS, PAGE 4
#
# O34--	GNOME OF ZURICH
#
3000	IF((PRSA.NE.GIVEW).AND.(PRSA.NE.THROWW)) GO TO 3200
	IF(OTVAL(PRSO).NE.0) GO TO 3100		#THROW A TREASURE?
	CALL NEWSTA(PRSO,641,0,0,0)		#NO, GO POP.
	RETURN
#
3100	CALL NEWSTA(PRSO,0,0,0,0)		#YES, BYE BYE TREASURE.
	CALL RSPSUB(642,ODO2)
	CALL NEWSTA(ZGNOM,0,0,0,0)		#BYE BYE GNOME.
	CTICK(CEVZGO)=0				#CANCEL EXIT.
	F=MOVETO(BKENT,WINNER)			#NOW IN BANK ENTRANCE.
	RETURN
#
3200	IF((PRSA.NE.ATTACW).AND.(PRSA.NE.KILLW).AND.
		(PRSA.NE.MUNGW)) GO TO 3300	#AGGRESSIVE?
	CALL NEWSTA(ZGNOM,643,0,0,0)		#VANISH GNOME.
	CTICK(CEVZGO)=0				#CANCEL EXIT.
	RETURN
#
3300	CALL RSPEAK(644)			#GNOME IS IMPATIENT.
	RETURN
#
# O35--	EGG
#
4000	IF((PRSA.NE.OPENW).OR.(PRSO.NE.EGG)) GO TO 4500
	IF(.NOT.QOPEN(EGG)) GO TO 4100		#OPEN ALREADY?
	CALL RSPEAK(649)			#YES.
	RETURN
#
4100	IF(PRSI.NE.0) GO TO 4200		#WITH SOMETHING?
	CALL RSPEAK(650)			#NO, CANT.
	RETURN
#
4200	IF(PRSI.NE.HANDS) GO TO 4300		#WITH HANDS?
	CALL RSPEAK(651)			#NOT RECOMMENDED.
	RETURN
#
4300	I=652					#MUNG MESSAGE.
	IF((AND(OFLAG1(PRSI),TOOLBT).NE.0).OR.
		(AND(OFLAG2(PRSI),WEAPBT).NE.0)) GO TO 4600
	I=653					#NOVELTY 1.
	IF(AND(OFLAG2(PRSO),FITEBT).NE.0) I=654	#NOVELTY 2.
	OFLAG2(PRSO)=OR(OFLAG2(PRSO),FITEBT)
	CALL RSPSUB(I,ODI2)
	RETURN
#
4500	IF((PRSA.NE.OPENW).AND.(PRSA.NE.MUNGW)) GO TO 4800
	I=655					#YOU BLEW IT.
4600	CALL NEWSTA(BEGG,I,OROOM(EGG),OCAN(EGG),OADV(EGG))
	CALL NEWSTA(EGG,0,0,0,0)		#VANISH EGG.
	OTVAL(BEGG)=2				#BAD EGG HAS VALUE.
	IF(OCAN(CANAR).NE.EGG) GO TO 4700	#WAS CANARY INSIDE?
	CALL RSPEAK(ODESCO(BCANA))		#YES, DESCRIBE RESULT.
	OTVAL(BCANA)=1
	RETURN
#
4700	CALL NEWSTA(BCANA,0,0,0,0)		#NO, VANISH IT.
	RETURN
#
4800	IF((PRSA.NE.DROPW).OR.(HERE.NE.MTREE)) GO TO 10
	CALL NEWSTA(BEGG,658,FORE3,0,0)	#DROPPED EGG.
	CALL NEWSTA(EGG,0,0,0,0)
	OTVAL(BEGG)=2
	IF(OCAN(CANAR).NE.EGG) GO TO 4700
	OTVAL(BCANA)=1			#BAD CANARY.
	RETURN

# NOBJS, PAGE 5
#
# O36--	CANARIES, GOOD AND BAD
#
5000	IF(PRSA.NE.WINDW) GO TO 10		#WIND EM UP?
	IF(PRSO.EQ.CANAR) GO TO 5100		#RIGHT ONE?
	CALL RSPEAK(645)			#NO, BAD NEWS.
	RETURN
#
5100	IF(.NOT.SINGSF.AND.((HERE.EQ.MTREE).OR.
		((HERE.GE.FORE1).AND.(HERE.LT.CLEAR))))
		GO TO 5200			#FIRST SONG IN FOR?
	CALL RSPEAK(646)			#NO, MEDIOCRE NEWS.
	RETURN
#
5200	SINGSF=.TRUE.				#SANG SONG.
	I=HERE
	IF(I.EQ.MTREE) I=FORE3			#PLACE BAUBLE.
	CALL NEWSTA(BAUBL,647,I,0,0)
	RETURN
#
# O37--	WHITE CLIFFS
#
6000	IF((PRSA.NE.CLMBW).AND.(PRSA.NE.CLMBUW).AND.
		(PRSA.NE.CLMBDW)) GO TO 10	#CLIMB?
	CALL RSPEAK(648)			#OH YEAH?
	RETURN
#
# O38--	WALL 
#
7000	IF((IABS(HERE-MLOC).NE.1).OR.(MRHERE(HERE).NE.0).OR.
		(PRSA.NE.PUSHW)) GO TO 7100
	CALL RSPEAK(860)			#PUSHED MIRROR WALL.
	RETURN
#
7100	IF((RFLAG(HERE).AND.RNWALL).EQ.0) GO TO 10
	CALL RSPEAK(662)			#NO WALL.
	RETURN

# NOBJS, PAGE 6
#
# O39--	SONG BIRD GLOBAL
#
8000	IF(PRSA.NE.FINDW) GO TO 8100		#FIND?
	CALL RSPEAK(666)
	RETURN
#
8100	IF(PRSA.NE.EXAMIW) GO TO 10		#EXAMINE?
	CALL RSPEAK(667)
	RETURN
#
# O40--	SCOL WALLS
#
9000	IF(HERE.NE.SCOLAC) GO TO 9200		#IN SCOL ACTIVE ROOM?
	DO I=1,12,3 {
	  TARGET=SCOLWL(I+1)			#ASSUME TARGET.
	  IF(SCOLWL(I).EQ.HERE) GO TO 2100	#TREAT IF FOUND.
	  }
#
9200	IF(HERE.NE.BKBOX) GO TO 10		#IN BOX ROOM?
	TARGET=WNORT
	GO TO 2100

# NOBJS, PAGE 7
#
# O41--	SHORT POLE
#
10000	IF(PRSA.NE.RAISEW) GO TO 10100		#LIFT?
	I=749					#ASSUME UP.
	IF(POLEUF.EQ.2) I=750			#ALREADY UP?
	CALL RSPEAK(I)
	POLEUF=2				#POLE IS RAISED.
	RETURN
#
10100	IF((PRSA.NE.LOWERW).AND.(PRSA.NE.PUSHW)) GO TO 10
	IF(POLEUF.NE.0) GO TO 10200		#ALREADY LOWERED?
	CALL RSPEAK(751)			#CANT DO IT.
	RETURN
#
10200	IF(MOD(MDIR,180).NE.0) GO TO 10300	#MIRROR N-S?
	POLEUF=0				#YES, LOWER INTO
	CALL RSPEAK(752)			#CHANNEL.
	RETURN
#
10300	IF((MDIR.NE.270).OR.(MLOC.NE.MRB)) GO TO 10400
	POLEUF=0				#LOWER INTO HOLE.
	CALL RSPEAK(753)
	RETURN
#
10400	CALL RSPEAK(753+POLEUF)			#POLEUF = 1 OR 2.
	POLEUF=1				#NOW ON FLOOR.
	RETURN
#
# O42--	MIRROR SWITCH
#
11000	IF(PRSA.NE.PUSHW) GO TO 10		#PUSH?
	IF(MRPSHF) GO TO 11300			#ALREADY PUSHED?
	CALL RSPEAK(756)			#BUTTON GOES IN.
	DO I=1,OLNT {				#BLOCKED?
	  IF(QHERE(I,MREYE).AND.(I.NE.RBEAM)) GO TO 11200
	  }
	CALL RSPEAK(757)			#NOTHING IN BEAM.
	RETURN
#
11200	CFLAG(CEVMRS)=.TRUE.			#MIRROR OPENS.
	CTICK(CEVMRS)=7
	MRPSHF=.TRUE.
	MROPNF=.TRUE.
	RETURN
#
11300	CALL RSPEAK(758)			#MIRROR ALREADYOPEN.
	RETURN

# NOBJS, PAGE 8
#
# O43--	BEAM FUNCTION
#
12000	IF((PRSA.NE.TAKEW).OR.(PRSO.NE.RBEAM)) GO TO 12100
	CALL RSPEAK(759)			#TAKE BEAM, JOKE.
	RETURN
#
12100	I=PRSO					#ASSUME BLK WITH DIROBJ.
	IF((PRSA.EQ.PUTW).AND.(PRSI.EQ.RBEAM)) GO TO 12200
	IF((PRSA.NE.MUNGW).OR.(PRSO.NE.RBEAM).OR.
		(PRSI.EQ.0)) GO TO 10		#BREAK BEAM WITH X?
	I=PRSI
12200	IF(OADV(I).NE.WINNER) GO TO 12300	#CARRYING?
	CALL NEWSTA(I,0,HERE,0,0)		#DROP OBJ.
	CALL RSPSUB(760,ODESC2(I))
	RETURN
#
12300	J=761					#ASSUME NOT IN ROOM.
	IF(QHERE(J,HERE)) I=762			#IN ROOM?
	CALL RSPSUB(J,ODESC2(I))		#DESCRIBE.
	RETURN
#
# O44--	BRONZE DOOR
#
13000	IF((HERE.EQ.NCELL).OR.((LCELL.EQ.4).AND.
		((HERE.EQ.CELL).OR.(HERE.EQ.SCORR))))
		GO TO 13100
	CALL RSPEAK(763)			#DOOR NOT THERE.
	RETURN
#
13100	IF(.NOT.OPNCLS(ODOOR,764,765)) GO TO 10	#OPEN/CLOSE?
	IF((HERE.EQ.NCELL).AND.QOPEN(ODOOR))
		CALL RSPEAK(766)		#DESCR VIEW.
	RETURN
#
# O45--	QUIZ DOOR
#
14000	IF((PRSA.NE.OPENW).AND.(PRSA.NE.CLOSEW)) GO TO 14100
	CALL RSPEAK(767)			#DOOR WONT MOVE.
	RETURN
#
14100	IF(PRSA.NE.KNOCKW) GO TO 10		#KNOCK?
	IF(INQSTF) GO TO 14200		#TRIED IT ALREADY?
	INQSTF=.TRUE.				#START INQUISITION.
	CFLAG(CEVINQ)=.TRUE.
	CTICK(CEVINQ)=2
	QUESNO=RND(8)				#SELECT QUESTION.
	NQATT=0
	CORRCT=0
	CALL RSPEAK(768)			#ANNOUNCE RULES.
	CALL RSPEAK(769)
	CALL RSPEAK(770+QUESNO)			#ASK QUESTION.
	RETURN
#
14200	CALL RSPEAK(798)			#NO REPLY.
	RETURN
#
# O46--	LOCKED DOOR
#
15000	IF(PRSA.NE.OPENW) GO TO 10		#OPEN?
	CALL RSPEAK(778)			#CANT.
	RETURN
#
# O47--	CELL DOOR
#
16000	NOBJS=OPNCLS(CDOOR,779,780)		#OPEN/CLOSE?
	RETURN

# NOBJS, PAGE 9
#
# O48--	DIALBUTTON
#
17000	IF(PRSA.NE.PUSHW) GO TO 10		#PUSH?
	CALL RSPEAK(809)			#CLICK.
	IF(QOPEN(CDOOR)) CALL RSPEAK(810)	#CLOSE CELL DOOR.
#
	DO I=1,OLNT {				#RELOCATE OLD TO HYPER.
	  IF((OROOM(I).EQ.CELL).AND.(AND(OFLAG1(I),DOORBT).EQ.0))
		CALL NEWSTA(I,0,LCELL*1000,0,0)
	  IF(OROOM(I).EQ.(PNUMB*1000))
		CALL NEWSTA(I,0,CELL,0,0)	#MOVE IN NEW HYPER.
	  }
#
	OFLAG2(ODOOR)=AND(OFLAG2(ODOOR),NOT(OPENBT))
	OFLAG2(CDOOR)=AND(OFLAG2(CDOOR),NOT(OPENBT))
	OFLAG1(ODOOR)=AND(OFLAG1(ODOOR),NOT(VISIBT))
	IF(PNUMB.EQ.4) OFLAG1(ODOOR)=OR(OFLAG1(ODOOR),VISIBT)
#
	IF(AROOM(PLAYER).NE.CELL) GO TO 17300	#PLAYER IN CELL?
	ACELL=LCELL				#YES, NOTE WHERE.
	IF(LCELL.NE.4) GO TO 17200		#IN RIGHT CELL?
	OFLAG1(ODOOR)=OFLAG1(ODOOR).OR. VISIBT
	F=MOVETO(NCELL,PLAYER)			#YES, MOVETO NCELL.
	GO TO 17400
17200	F=MOVETO(PCELL,PLAYER)			#NO, MOVETO PCELL.
	GO TO 17400
#
17300	IF(ACELL.NE.PNUMB) GO TO 17400	#OLD = NEW?
	ACELL=0
	F=MOVETO(CELL,PLAYER)			#PUT HIM IN CELL.
#
17400	IF(AROOM(AMASTR).NE.CELL) GO TO 17500	#MASTER IN CELL???
	AROOM(AMASTR)=PCELL			#PUT HIM IN PCELL.
	DCELL=LCELL
	LCELL=PNUMB
	RETURN
#
17500	IF(DCELL.EQ.PNUMB) DCELL=0
	LCELL=PNUMB				#SET OLD = NEW.
	RETURN

# NOBJS, PAGE 10
#
# O49--	DIAL INDICATOR
#
18000	IF(PRSA.NE.SPINW) GO TO 18100		#SPIN?
	PNUMB=RND(8)+1				#WHEE!
	CALL RSPSUB(797,712+PNUMB)
	RETURN
#
18100	IF((PRSA.NE.MOVEW).AND.(PRSA.NE.PUTW).AND.
		(PRSA.NE.TRNTOW)) GO TO 10
	IF(PRSI.NE.0) GO TO 18200		#TURN DIAL TO X?
	CALL RSPEAK(806)			#MUST SPECIFY.
	RETURN
#
18200	IF((PRSI.GE.NUM1).AND.(PRSI.LE.NUM8)) GO TO 18300
	CALL RSPEAK(807)			#MUST BE DIGIT.
	RETURN
#
18300	PNUMB=PRSI-NUM1+1			#SET UP NEW.
	CALL RSPSUB(808,712+PNUMB)
	RETURN
#
# O50--	GLOBAL MIRROR
#
19000	NOBJS=MIRPAN(832,.FALSE.)
	RETURN
#
# O51--	GLOBAL PANEL
#
20000	IF(HERE.NE.FDOOR) GO TO 20100		#AT FRONT DOOR?
	IF((PRSA.NE.OPENW).AND.(PRSA.NE.CLOSEW)) GO TO 10
	CALL RSPEAK(843)			#PANEL IN DOOR, NOGO.
	RETURN
#
20100	NOBJS=MIRPAN(838,.TRUE.)
	RETURN
#
	END

# MIRPAN--	PROCESSOR FOR GLOBAL MIRROR/PANEL
#
# DECLARATIONS
#
	LOGICAL FUNCTION MIRPAN(ST,PNF)
	IMPLICIT INTEGER(A-Z)
	LOGICAL PNF
#
# GAME STATE
#
	LOGICAL TELFLG
	COMMON /PLAY/ WINNER,HERE,TELFLG
#
# PARSER OUTPUT
#
	LOGICAL PRSWON
	COMMON /PRSVEC/ PRSA,PRSI,PRSO,PRSWON,PRSCON
#
# VERBS
#
	COMMON /VINDEX/ CINTW,DEADXW,FRSTQW,INXW,OUTXW
	COMMON /VINDEX/ WALKIW,FIGHTW,FOOW
	COMMON /VINDEX/ MELTW,READW,INFLAW,DEFLAW,ALARMW,EXORCW
	COMMON /VINDEX/ PLUGW,KICKW,WAVEW,RAISEW,LOWERW,RUBW
	COMMON /VINDEX/ PUSHW,UNTIEW,TIEW,TIEUPW,TURNW,BREATW
	COMMON /VINDEX/ KNOCKW,LOOKW,EXAMIW,SHAKEW,MOVEW,TRNONW,TRNOFW
	COMMON /VINDEX/ OPENW,CLOSEW,FINDW,WAITW,SPINW,BOARDW,UNBOAW,TAKEW
	COMMON /VINDEX/ INVENW,FILLW,EATW,DRINKW,BURNW
	COMMON /VINDEX/ MUNGW,KILLW,ATTACW,SWINGW
	COMMON /VINDEX/ WALKW,TELLW,PUTW,DROPW,GIVEW,POURW,THROWW
	COMMON /VINDEX/ DIGW,LEAPW,STAYW,FOLLOW
	COMMON /VINDEX/ HELLOW,LOOKIW,LOOKUW,PUMPW,WINDW
	COMMON /VINDEX/ CLMBW,CLMBUW,CLMBDW,TRNTOW
#
# FLAGS
#
	LOGICAL TROLLF,CAGESF,BUCKTF,CAROFF,CAROZF,LWTIDF
	LOGICAL DOMEF,GLACRF,ECHOF,RIDDLF,LLDF,CYCLOF
	LOGICAL MAGICF,LITLDF,SAFEF,GNOMEF,GNODRF,MIRRMF
	LOGICAL EGYPTF,ONPOLF,BLABF,BRIEFF,SUPERF,BUOYF
	LOGICAL GRUNLF,GATEF,RAINBF,CAGETF,EMPTHF,DEFLAF
	LOGICAL GLACMF,FROBZF,ENDGMF,BADLKF,THFENF,SINGSF
	LOGICAL MRPSHF,MROPNF,WDOPNF,MR1F,MR2F,INQSTF
