1
2
3
4
5
6
7
8
9
10
11 DUNGEON
12
13
14
15 IMPLICIT INTEGER (A-Z)
16 LOGICAL INITFL
17 %include dparam
18
19
20
21
22
23
24
25 MLNT=0
26 OLNT=0
27 RLNT=0
28 VLNT=0
29 ALNT=0
30 CLNT=0
31 XLNT=1
32 R2LNT=0
33
34 LTSHFT=10
35 MXSCOR=LTSHFT
36 EGSCOR=0
37 EGMXSC=0
38 MXLOAD=100
39 RWSCOR=0
40 DEATHS=0
41 MOVES=0
42 PLTIME=0
43 MUNGRM=0
44 HS=0
45 PRSA=0
46 PRSI=0
47 PRSO=0
48 PRSCON=1
49 OFLAG=0
50 OACT=0
51 OPREP1=0
52 OOBJ1=0
53 OPREP=0
54 ONAME=' '
55 OPREP2=0
56 OOBJ2=0
57 BUNLNT=0
58 BUNSUB=0
59 DO 100 I=1,BUNMAX
60 BUNVEC(I)=0
61 100 CONTINUE
62 THFFLG=.FALSE.
63 THFACT=.TRUE.
64 SWDACT=.FALSE.
65 SWDSTA=0
66
67 MBASE=0
68 INPCH=5
69 OUTCH=6
70 DBCH=2
71
72
73
74
75
76 DO 200 I=1,CMAX
77 CFLAG(I)=.FALSE.
78 CCNCEL(I)=.FALSE.
79 CTICK(I)=0
80 CACTIO(I)=0
81 200 CONTINUE
82
83 DO 300 I=1,FMAX
84 FLAGS(I)=.FALSE.
85 300 CONTINUE
86 EGYPTF=.TRUE.
87 CAGETF=.TRUE.
88 MR1F=.TRUE.
89 MR2F=.TRUE.
90 FOLLWF=.TRUE.
91 DO 400 I=1,SMAX
92 SWITCH(I)=0
93 400 CONTINUE
94 ORMTCH=4
95 LCELL=1
96 PNUMB=1
97 MDIR=270
98 MLOC=MRB
99 CPHERE=10
100
101 DO 500 I=1,R2MAX
102 R2(I)=0
103 O2(I)=0
104 500 CONTINUE
105
106 DO 600 I=1,XXMAX
107 TRAVEL(I)=0
108 600 CONTINUE
109
110 DO 700 I=1,VMAX
111 VOPPS(I)=0
112 VPROB(I)=0
113 VILLNS(I)=0
114 VBEST(I)=0
115 VMELEE(I)=0
116 700 CONTINUE
117
118
119
120 DO 800 I=1,OMAX
121 ODESC1(I)=0
122 ODESC2(I)=0
123 ODESCO(I)=0
124 OREAD(I)=0
125 OACTIO(I)=0
126 OFLAG1(I)=0
127 OFLAG2(I)=0
128 OFVAL(I)=0
129 OTVAL(I)=0
130 OSIZE(I)=0
131 OCAPAC(I)=0
132 OCAN(I)=0
133 OADV(I)=0
134 OROOM(I)=0
135 800 CONTINUE
136
137 RDESC2=0
138 DO 900 I=1,RMAX
139 RDESC1(I)=0
140 RACTIO(I)=0
141 RFLAG(I)=0
142 RVAL(I)=0
143 REXIT(I)=0
144 900 CONTINUE
145
146 DO 1000 I=1,MMAX
147 RTEXT(I)=0
148 1000 CONTINUE
149
150 DO 1100 I=1,AMAX
151 AROOM(I)=0
152 ASCORE(I)=0
153 AVEHIC(I)=0
154 AOBJ(I)=0
155 AACTIO(I)=0
156 ASTREN(I)=0
157 AFLAG(I)=0
158 1100 CONTINUE
159
160 DBGFLG=0
161 PRSFLG=0
162 GDTFLG=1
163
164 FROMDR=0
165 SCOLRM=0
166 SCOLAC=0
167
168 IF(INITFL(X)) CALL GAME
169 CALL EXIT
170
171 BLOCK DATA FOO
172 IMPLICIT INTEGER (A-Z)
173 %include dparam
174
175
176
177 DATA VMAJ/3/,VMIN/2/,VEDIT/'B'/
178
179 DATA BATDRP/66,67,68,69,70,71,72,65,73/
180
181 DATA SCOLDR/XNORTH,BKTWI,XSOUTH,BKVAU,XEAST,BKVE,XWEST,BKVW/
182 DATA SCOLWL/BKVW,271,XEAST,BKVE,272,XWEST,
183 & BKTWI,270,XSOUTH,BKVAU,269,XNORTH/
184
185 DATA CPDR/XNORTH,-8,XNE,-7,XEAST,1,XSE,9,
186 & XSOUTH,8,XSW,7,XWEST,-1,XNW,-9/
187 DATA CPWL/269,-8,270,8,271,1,272,-1/
188 DATA CPVEC/1,1,1,1,1,1,1,1,
189 & 1,0,-1,0,0,-1,0,1,
190 & 1,-1,0,1,0,-2,0,1,
191 & 1,0,0,0,0,1,0,1,
192 & 1,-3,0,0,-1,-1,0,1,
193 & 1,0,0,-1,0,0,0,1,
194 & 1,1,1,0,0,0,1,1,
195 & 1,1,1,1,1,1,1,1/
196
197 DATA XELNT/1,2,3,3/
198
199
200
201
202
203
204
205
206
207
208 TXCRYP(R,LINE)
209 IMPLICIT INTEGER (A-Z)
210 CHARACTER*(*) LINE
211
212 DO 100 I=1,LEN(LINE)
213
214
215 X=AND(R,31)+I
216 LINE(I:I)=CHAR(INT(XOR(ICHAR(LINE(I:I)),X)))
217 100 CONTINUE
218 RETURN
219