1
2
3
4
5 INTEGER CXAPPL(RI)
6 IMPLICIT INTEGER (A-Z)
7 %include dparam
8
9 CXAPPL=0
10 IF(RI.EQ.0) RETURN
11 GO TO (1000,2000,3000,4000,5000,6000,7000,8000,
12 & 9000,10000,11000,12000,13000,14000,15000),RI
13 CALL BUG(5,RI)
14
15
16
17
18
19 1000 EGYPTF=OADV(COFFI).NE.WINNER
20 RETURN
21
22
23
24
25 2000 IF(CAROFF) RETURN
26 2500 CALL RSPEAK(121)
27 5000 I=XELNT(XCOND)*RND(8)
28
29 XROOM1=AND((TRAVEL(REXIT(HERE)+I)),XRMASK)
30 CXAPPL=XROOM1
31 RETURN
32
33
34
35 3000 LITLDF=.FALSE.
36 IF(DEADF) GO TO 3300
37 J=0
38 DO 3100 I=1,OLNT
39 IF(OADV(I).EQ.WINNER) J=J+1
40 3100 CONTINUE
41
42 IF(J.GT.2) RETURN
43 IF(J.NE.0) GO TO 3200
44 XSTRNG=890
45 RETURN
46
47 3200 IF(OADV(LAMP).EQ.WINNER) GO TO 3300
48 XSTRNG=446
49 RETURN
50
51 3300 LITLDF=.TRUE.
52
53
54 IF(AND(OFLAG2(DOOR),OPENBT).EQ.0)
55 & OFLAG2(DOOR)=AND(OFLAG2(DOOR), COMPL(TCHBT))
56 RETURN
57
58
59
60
61 4000 IF(CAROFF) GO TO 2500
62 FROBZF=.FALSE.
63 RETURN
64
65 6000 IF(CAROFF) GO TO 2500
66 FROBZF=.TRUE.
67 RETURN
68
69
70
71
72
73 7000 FROBZF=.FALSE.
74 J=BILLS
75 7100 IF(OADV(J).EQ.WINNER) RETURN
76 J=OCAN(J)
77 IF(J.NE.0) GO TO 7100
78 J=PORTR
79 7200 IF(OADV(J).EQ.WINNER) RETURN
80 J=OCAN(J)
81 IF(J.NE.0) GO TO 7200
82 FROBZF=.TRUE.
83 RETURN
84
85
86
87 8000 FROBZF=.FALSE.
88 IF(MLOC.NE.XROOM1) GO TO 8100
89 IF((PRSO.EQ.XNORTH).OR.(PRSO.EQ.XSOUTH)) GO TO 8200
90 IF(MOD(MDIR,180).NE.0) GO TO 8300
91 XROOM1=((XROOM1-MRA)*2)+MRAE
92 IF(PRSO.GT.XSOUTH) XROOM1=XROOM1+1
93 8100 CXAPPL=XROOM1
94 RETURN
95
96 8200 XSTRNG=814
97 IF(MOD(MDIR,180).EQ.0) RETURN
98 8300 LDIR=MDIR
99 IF(PRSO.EQ.XSOUTH) LDIR=180
100 XSTRNG=815
101 IF(((LDIR.GT.180).AND..NOT.MR1F).OR.
102 & ((LDIR.LT.180).AND..NOT.MR2F)) XSTRNG=816
103 RETURN
104
105
106
107 9000 IF(MRHERE(HERE).NE.1) GO TO 9100
108 IF(MR1F) XSTRNG=805
109 FROBZF=MROPNF
110 RETURN
111
112 9100 FROBZF=.FALSE.
113 XSTRNG=817
114 RETURN
115
116
117
118
119
120 10000 FROBZF=.FALSE.
121 LDIR=((PRSO-XNORTH)/XNORTH)*45
122 IF(.NOT.MROPNF .OR.
123 & ((MOD(MDIR+270,360).NE.LDIR).AND.(PRSO.NE.XEXIT)))
124 & GO TO 10200
125 XROOM1=((MLOC-MRA)*2)+MRAE+1-(MDIR/180)
126 IF(MOD(MDIR,180).EQ.0) GO TO 10100
127 XROOM1=MLOC+1
128 IF(MDIR.GT.180) XROOM1=MLOC-1
129 10100 CXAPPL=XROOM1
130 RETURN
131
132 10200 IF(.NOT.WDOPNF .OR.
133 & ((MOD(MDIR+180,360).NE.LDIR).AND.(PRSO.NE.XEXIT)))
134 & RETURN
135 XROOM1=MLOC+1
136 IF(MDIR.EQ.0) XROOM1=MLOC-1
137 CALL RSPEAK(818)
138 WDOPNF=.FALSE.
139 CXAPPL=XROOM1
140 RETURN
141
142
143
144
145 11000 IF(LCELL.NE.4) XSTRNG=678
146 RETURN
147
148
149
150 12000 CPHERE=10
151 FROBZF=CPVEC(CPHERE).EQ.0
152 RETURN
153
154
155
156 13000 CPHERE=52
157 RETURN
158
159
160
161
162
163 14000 FROBZF=.FALSE.
164 IF(PRSO.NE.XUP) GO TO 14100
165 IF(CPHERE.NE.10) RETURN
166 XSTRNG=881
167 IF(CPVEC(CPHERE+1).NE.-2) RETURN
168 CALL RSPEAK(882)
169
170 RFLAG(CPUZZ)=AND(RFLAG(CPUZZ),COMPL(RSEEN))
171 FROBZF=.TRUE.
172 RETURN
173
174 14100 IF((CPHERE.NE.52).OR.(PRSO.NE.XWEST).OR..NOT.CPOUTF)
175 & GO TO 14200
176
177 RFLAG(CPUZZ)=AND(RFLAG(CPUZZ),COMPL(RSEEN))
178 FROBZF=.TRUE.
179 RETURN
180
181 14200 IF((CPHERE.NE.52).OR.(PRSO.NE.XWEST)) GO TO 14250
182 XSTRNG=932
183 RETURN
184
185 14250 DO 14300 I=1,16,2
186 IF(PRSO.EQ.CPDR(I)) GO TO 14400
187 14300 CONTINUE
188 RETURN
189
190 14400 J=CPDR(I+1)
191 NXT=CPHERE+J
192 K=8
193 IF(J.LT.0) K=-8
194 IF((((IABS(J).EQ.1).OR.(IABS(J).EQ.8)).OR.
195 & ((CPVEC(CPHERE+K).EQ.0).OR.(CPVEC(NXT-K).EQ.0))).AND.
196 & (CPVEC(NXT).EQ.0)) GO TO 14500
197 RETURN
198
199 14500 CALL CPGOTO(NXT)
200 XROOM1=CPUZZ
201 CXAPPL=XROOM1
202 RETURN
203
204
205
206 15000 FROBZF=.TRUE.
207 IF((TTIE.EQ.0).OR.DEADF) RETURN
208 IF(OROOM(TTIE).NE.HERE) RETURN
209 CALL RSPEAK(1014)
210 CFLAG(CEVSLI)=.TRUE.
211 CTICK(CEVSLI)=MAX0(2,100/WEIGHR(0,WINNER))
212 XROOM1=SLID1
213 CXAPPL=XROOM1
214 RETURN
215
216