Commit | Line | Data |
---|---|---|
81e70d48 PH |
1 | /******************************************************************** |
2 | /******************************************************************** | |
3 | / MAIN PROGRAM | |
4 | *200 | |
5 | CLA CLL | |
6 | JMS I XDINIT | |
7 | ION / WELCOME TO HELL! | |
8 | ||
9 | MLOOP, / MAIN EVENT LOOP | |
10 | JMS I XDUMP / START A DUMP, PLEASE | |
11 | JMS I XCALC / CALCULATE NEW DATA | |
12 | CLA CLL | |
13 | ||
14 | TAD TPTR | |
15 | DCA DPTR | |
16 | TAD SPTR | |
17 | DCA TPTR | |
18 | TAD DPTR | |
19 | DCA SPTR | |
20 | JMP MLOOP | |
21 | ||
22 | /******************************************************************** | |
23 | / THE CALCULATION | |
24 | PAGE | |
25 | CCADDR, 0 / CURRENT CELL ADDRESS | |
26 | CROW, 0 | |
27 | CCOL, 0 | |
28 | NBORS, 0 | |
29 | ||
30 | CALC, 0 | |
31 | CLA CLL | |
32 | DCA CCADDR | |
33 | ||
34 | TAD KROWS | |
35 | CIA | |
36 | DCA CROW | |
37 | ||
38 | CRLOOP, CLA CLL | |
39 | TAD KCOLS | |
40 | CIA | |
41 | DCA CCOL | |
42 | ||
43 | CCLOOP, | |
44 | / NOW, DO IT, PLEASE! | |
45 | TAD CCADDR | |
46 | JMS I XCOUNT | |
47 | DCA NBORS | |
48 | ||
49 | TAD CCADDR | |
50 | JMS I XGET | |
51 | SNA | |
52 | JMP ISDEAD | |
53 | ||
54 | ISALIV, CLA CLL | |
55 | TAD NBORS | |
56 | TAD KN4 | |
57 | SMA | |
58 | JMP DIE | |
59 | ||
60 | CLA CLL | |
61 | TAD NBORS | |
62 | TAD KN2 | |
63 | SMA | |
64 | JMP LIVE | |
65 | JMP DIE | |
66 | ||
67 | ISDEAD, TAD NBORS | |
68 | TAD KN3 | |
69 | SZA | |
70 | JMP DIE | |
71 | JMP LIVE | |
72 | ||
73 | LIVE, CLA CLL | |
74 | TAD CCADDR | |
75 | JMS I XSET / NOW, IT'S ALIVE! | |
76 | JMP CDONE | |
77 | DIE, CLA CLL | |
78 | TAD CCADDR | |
79 | JMS I XCLEAR | |
80 | CDONE, CLA CLL | |
81 | ||
82 | ISZ CCADDR | |
83 | ISZ CCOL | |
84 | JMP CCLOOP | |
85 | ||
86 | TAD CCADDR | |
87 | TAD K100 | |
88 | AND K7700 | |
89 | ISZ CROW | |
90 | JMP CRLOOP | |
91 | ||
92 | JMP I CALC | |
93 | KN2, -2 | |
94 | KN3, -3 | |
95 | KN4, -4 | |
96 | K100, 100 | |
97 | ||
98 | /******************************************************************** | |
99 | / DATA DUMPING | |
100 | PAGE | |
101 | NLINE=JMS CRLF | |
102 | HOME=JMS HOM | |
103 | ||
104 | DBASE, 0 | |
105 | DDPTR, 0 | |
106 | DOFF, 0 | |
107 | ||
108 | DUMPS, 0 | |
109 | JMS I XTSTRT | |
110 | JMP I DUMPS | |
111 | CLA | |
112 | TAD SPTR | |
113 | DCA DBASE | |
114 | JMP DMPINT | |
115 | ||
116 | DUMPT, 0 | |
117 | JMS I XTSTRT | |
118 | JMP I DUMPT | |
119 | CLA | |
120 | TAD TPTR | |
121 | DCA DBASE | |
122 | JMP DMPINT | |
123 | ||
124 | DUMP, 0 | |
125 | JMS I XTSTRT | |
126 | JMP I DUMP | |
127 | CLA | |
128 | TAD DPTR | |
129 | DCA DBASE | |
130 | ||
131 | DMPINT, DCA DOFF | |
132 | ||
133 | TAD KROWS | |
134 | CIA | |
135 | DCA ROWCNT | |
136 | ||
137 | // NLINE;NLINE | |
138 | HOME | |
139 | ||
140 | / START OF ROW | |
141 | RLOOP, CLA CLL | |
142 | TAD KCOLS | |
143 | CIA | |
144 | DCA COLCNT | |
145 | TAD K200 | |
146 | DCA DMSK | |
147 | ||
148 | TAD DBASE / BUFFER BASE ADDRESS | |
149 | TAD DOFF / CURRENT WORD OFFSET | |
150 | DCA DDPTR / TO INTERNAL POINTER | |
151 | ||
152 | / START OF COLUMN | |
153 | CLOOP, TAD DMSK / BIT MASK, DYNAMIC | |
154 | AND I DDPTR / COMBINE CURRENT WORD | |
155 | SZA | |
156 | JMP ONE | |
157 | ZERO, TAD KDEAD | |
158 | JMP TT | |
159 | ONE, CLA | |
160 | TAD KALIVE | |
161 | TT, JMS I XTYPE | |
162 | ||
163 | CLA CLL | |
164 | TAD DMSK | |
165 | RAR | |
166 | SZA | |
167 | JMP MASKOK | |
168 | TAD K200 | |
169 | ISZ DDPTR | |
170 | MASKOK, DCA DMSK | |
171 | ||
172 | ISZ COLCNT | |
173 | JMP CLOOP | |
174 | ||
175 | NLINE | |
176 | ||
177 | CLA CLL | |
178 | TAD DOFF | |
179 | TAD K10 | |
180 | DCA DOFF | |
181 | ||
182 | ISZ ROWCNT | |
183 | JMP RLOOP | |
184 | ||
185 | JMP I XTSTOP / STOP INTERRUPT MADNESS. | |
186 | ||
187 | HOM, 0 | |
188 | CLA CLL | |
189 | TAD K035 | |
190 | JMS I XTYPE | |
191 | CLA CLL | |
192 | JMS I XTYPE / FILLER CHARACTERS! | |
193 | JMS I XTYPE | |
194 | JMS I XTYPE | |
195 | JMS I XTYPE | |
196 | JMP I HOM | |
197 | ||
198 | CRLF, 0 | |
199 | CLA CLL | |
200 | TAD CR | |
201 | JMS I XTYPE | |
202 | CLA CLL | |
203 | TAD LF | |
204 | JMS I XTYPE | |
205 | JMP I CRLF | |
206 | ||
207 | DMSK, 0 | |
208 | K035, 35 | |
209 | CR, 215 | |
210 | LF, 212 | |
211 | ||
212 | ROWCNT, 0 | |
213 | COLCNT, 0 | |
214 | ||
215 | /******************************************************************** | |
216 | / NEIGHBORHOOD COUNTING | |
217 | / (ADDRESS IN AC) | |
218 | PAGE | |
219 | POS, 0 | |
220 | ||
221 | COUNT, 0 | |
222 | DCA POS | |
223 | DCA CNT | |
224 | ||
225 | TAD POS | |
226 | TAD KCOLM1 / STEP LEFT | |
227 | TAD KROWM1 / STEP UP | |
228 | JMS ACCNT | |
229 | ||
230 | TAD KCOLP1 | |
231 | JMS ACCNT | |
232 | ||
233 | TAD KCOLP1 | |
234 | JMS ACCNT | |
235 | ||
236 | TAD KROWP1 | |
237 | JMS ACCNT | |
238 | ||
239 | TAD KROWP1 | |
240 | JMS ACCNT | |
241 | ||
242 | TAD KCOLM1 | |
243 | JMS ACCNT | |
244 | ||
245 | TAD KCOLM1 | |
246 | JMS ACCNT | |
247 | ||
248 | TAD KROWM1 | |
249 | JMS ACCNT | |
250 | ||
251 | CLA CLL | |
252 | TAD CNT | |
253 | JMP I COUNT | |
254 | ||
255 | ACCNT, 0 | |
256 | DCA POS | |
257 | TAD POS | |
258 | JMS I XGET | |
259 | SZA | |
260 | ISZ CNT | |
261 | CLA CLL | |
262 | TAD POS | |
263 | JMP I ACCNT | |
264 | ||
265 | CNT, 0 / COUNTER VARIABLE | |
266 | ||
267 | ||
268 | /******************************************************************** | |
269 | / DATA HOLDING AND ACCESS | |
270 | ||
271 | PAGE / START ON NEW PAGE | |
272 | ||
273 | / INTERNAL DATA | |
274 | ||
275 | CADR, 0 / CURRENT CELL ADDRESS | |
276 | MASK, 0 / BIT MASK TO CURRENT CELL BIT | |
277 | APTR, 0 / ACCESS POINTER TO CURRENT CELL WORD | |
278 | ||
279 | / GET A BIT OF DATA | |
280 | GET, 0 / GET POSITION'S VALUE | |
281 | JMS ASETUP / CHECK LIMITS, STORE ADDRESS ETC. | |
282 | JMP I GET / ERROR RETURN, RETURN WITH LIMIT VALUE IN AC | |
283 | TAD APTR | |
284 | TAD SPTR / ADD SOURCE DATA BASE | |
285 | DCA APTR | |
286 | TAD I APTR / LOAD DATA | |
287 | AND MASK / MASK OUT DESIRED BIT | |
288 | SZA | |
289 | CLA CLL IAC / MAKE A ONE OUT OF AC CONTENTS | |
290 | JMP I GET / RETURN | |
291 | ||
292 | SET, 0 / SET POSITION'S VALUE TO 1 | |
293 | JMS ASETUP / CHECK LIMITS, STORE ADDRESS ETC. | |
294 | JMP I SET / ERROR RETURN, RETURN WITH LIMIT VALUE IN AC | |
295 | TAD APTR | |
296 | TAD TPTR / ADD SOURCE DATA BASE | |
297 | DCA APTR | |
298 | TAD MASK / GET MASK | |
299 | CMA / INVERT | |
300 | AND I APTR / COMBINE WITH DATA | |
301 | TAD MASK / SET BIT | |
302 | DCA I APTR / UPDATE DATA | |
303 | JMP I SET / RETURN | |
304 | ||
305 | CLEAR, 0 / CLEAR POSITION'S VALUE TO 0 | |
306 | JMS ASETUP / CHECK LIMITS, STORE ADDRESS ETC. | |
307 | JMP I CLEAR / ERROR RETURN, RETURN WITH LIMIT VALUE IN AC | |
308 | TAD APTR | |
309 | TAD TPTR / ADD SOURCE DATA BASE | |
310 | DCA APTR | |
311 | TAD MASK / GET MASK | |
312 | CMA / INVERT | |
313 | AND I APTR / COMBINE WITH DATA | |
314 | DCA I APTR / UPDATE DATA | |
315 | JMP I CLEAR / RETURN | |
316 | ||
317 | ASETUP, 0 | |
318 | DCA CADR / SAVE ADDRESS FOR LATER USE | |
319 | ||
320 | / LIMIT CHECK | |
321 | TAD CADR | |
322 | BSW / NOW ROW ADDRESS IN LOWER BITS | |
323 | AND K77 / MASK OUT UPPER BITS | |
324 | TAD KNMROW | |
325 | SPA | |
326 | JMP LGD1 / ONE LIMIT GOOD | |
327 | CLA | |
328 | TAD KBORD / BORDER STANDARD RETURN VALUE | |
329 | JMP I ASETUP / ERROR RETURN | |
330 | LGD1, CLA CLL | |
331 | TAD CADR | |
332 | AND K77 | |
333 | TAD KNMCO | |
334 | SPA | |
335 | JMP LGD2 | |
336 | CLA CLL | |
337 | TAD KBORD | |
338 | JMP I ASETUP / ERROR RETURN | |
339 | LGD2, CLA CLL | |
340 | ||
341 | / SETUP POINTER AND MASK | |
342 | TAD CADR | |
343 | RTR | |
344 | RAR | |
345 | AND K377 | |
346 | DCA APTR / ACCESS POINTER | |
347 | TAD CADR | |
348 | AND K7 | |
349 | TAD MASKSP | |
350 | DCA MPTR | |
351 | TAD I MPTR | |
352 | DCA MASK | |
353 | ||
354 | ISZ ASETUP / PREPARE GOOD RETURN | |
355 | JMP I ASETUP / GOOD RETURN | |
356 | ||
357 | ||
358 | ||
359 | MPTR, 0 | |
360 | MASKSP, MASKS | |
361 | MASKS, 200 | |
362 | 100 | |
363 | 040 | |
364 | 020 | |
365 | 010 | |
366 | 004 | |
367 | 002 | |
368 | 001 | |
369 | ||
370 | ||
371 | ||
372 |