Commit | Line | Data |
---|---|---|
81e70d48 PH |
1 | / CONWAY'S GAME OF LIFE - BREED LIFE ON YOUR PDP8 |
2 | ||
3 | /******************************************************************** | |
4 | /******************************************************************** | |
5 | / | |
6 | / PAL-8 IMPLEMENTATION OF CONWAY'S GAME OF LIFE | |
7 | / | |
8 | / PHILIPP HACHTMANN, JULY 2010 | |
9 | / | |
10 | / REVISIONS: | |
11 | / | |
12 | / 2010-07-24 - INITIAL RELEASE | |
13 | / | |
14 | /******************************************************************** | |
15 | /******************************************************************** | |
16 | ||
17 | ||
18 | /******************************************************************** | |
19 | /******************************************************************** | |
20 | / | |
21 | / GAME CONFIGURATION PARAMETERS | |
22 | / CHANGE ONLY IF YOU KNOW WHAT YOU'RE DOING! | |
23 | ||
24 | / SIZE OF THE PLAYING FIELD | |
25 | / ========================= | |
26 | ||
27 | / THE PLAYING FIELD HAS A MAXIMUM SIZE OF 32 ROWS BY 64 COLUMNS. | |
28 | / | |
29 | / THE DATA IS ORGANIZED AS FOLLOWS: | |
30 | / EVERY CELL OCCUPIES ONE BIT. THE CELLS OF EACH ROW ARE STORED IN | |
31 | / A CONTIGUOUS PIECE OF MEMORY. BUT ONLY THE LOWER 8 BITS OF A WORD | |
32 | / ARE USED! | |
33 | / THE WHOLE GAME BUFFER CONSISTS OF 32 ROWS OF 8 WORDS EACH. THIS | |
34 | / LEADS TO A MEMORY FOOTPRINT OF 256 WORDS. | |
35 | / THERE'S ONE RESTRICTION: THE LAST COLUMN IS NOT USABLE DUE TO | |
36 | / BORDER DETECTION. THAT MEANS THAT THE MAXIMUM SIZE OF THE ACTUAL | |
37 | / CELL ROW IS ONLY 63!!! | |
38 | / THE FOLLOWIN PARAMETERS DEFINE THE DIMENSIONS OF THE ACTUAL | |
39 | / SIZE OF THE CELL ARRAY. KEEP IN MIND THAT THIS WILL NOT CHANGE | |
40 | / THE MEMORY FOOTPRINT! | |
41 | PCOLS=76 | |
42 | PROWS=23 | |
43 | ||
44 | / CELL ADDRESS CODING: | |
45 | / | |
46 | / 0RR RRR CCC CCC <- AS USED THROUGHOUT THE PROGRAM | |
47 | / | |
48 | / WHERE | |
49 | / R - ROW ADDRESS BIT | |
50 | / C - COLUMN ADDRESS BIT | |
51 | ||
52 | / COLUMN ADDRESS IS SPLIT INTO | |
53 | / | |
54 | / WWW BBB | |
55 | / WHERE | |
56 | / W - WORD ADDRESS | |
57 | / B - BIT IN WORD ADDRESS | |
58 | / | |
59 | / A CELL ADDRESS CAN BE TRANSLATED INTO A MEMORY OFFSET BY SIMPLY | |
60 | / SHIFTING THREE BITS TO THE RIGHT AND MASKING WITH 0377: | |
61 | / | |
62 | / 000 0RR RRR CCC | |
63 | / | |
64 | / HERE THE LOWER 3 COLUMN ADDRESS BITS WHICH SPECIFY THE BIT ADDRESS | |
65 | / IN A WORD ARE DISCARDED. | |
66 | ||
67 | / HAS THE FIELD LIMITS OR IS IT ENDLESS? (CURRENTLY UNSUPPORTED!) | |
68 | ||
69 | / ENDLESS=1 | |
70 | ||
71 | ||
72 | / BORDER BEHAVIOUR FOR LIMITED FIELD | |
73 | / 0 - OFF FIELD POSITIONS ARE ASSUMED TO BE ALWAYS DEAD | |
74 | / 1 - OFF FIELD POSITIONS ARE ASSUMED TO BE ALWAYS ALIFE | |
75 | ||
76 | BORDER=0 | |
77 | ||
78 | / CHARACTER CODES TO USE FOR CELL DISPLAY OUTPUT | |
79 | / 55:- | |
80 | / 52:* | |
81 | / DEAD=55 | |
82 | DEAD=40 | |
83 | ALIVE=52 | |
84 | ||
85 | ||
86 | /******************************************************************** | |
87 | / HELP FOR PALBART - CAN BE OMITTED WITH REAL PAL-8 | |
88 | ||
89 | KCF=6030 | |
90 | SPF=6040 | |
91 | ||
92 | /******************************************************************** | |
93 | /******************************************************************** | |
94 | / ZERO PAGE STUFF | |
95 | ||
96 | *0 | |
97 | INTR, 0 / INTERRUPT TARGET | |
98 | JMP I XIHAND / JUMP TO INTERRUPT HANDLER | |
99 | XIHAND, IHAND | |
100 | ||
101 | *10 | |
102 | AUTO0, 0 | |
103 | AUTO1, 1 | |
104 | ||
105 | *100 | |
106 | / MAJOR POITERS | |
107 | SPTR, DATA0 / POINTER TO SOURCE DATA (GET, COUNT) | |
108 | TPTR, DATA1 / POINTER TO TARGET DATA (SET, RESET) | |
109 | DPTR, DATA0 / POINTER TO DUMP DATA | |
110 | ||
111 | / INTERRUPT BACKUPS | |
112 | INTAC, 0 / INTERRUPT BACKUP AC | |
113 | INTLNK, 0 / INTERRUPT BACKUP OF LINK | |
114 | ||
115 | / TYPING THREAD DATA | |
116 | SAVTLI, 0 / SAVED LINK FOR TYPING THREAD | |
117 | SAVTAC, 0 / SAVED AC FOR TYPING THREAD | |
118 | TAC, 0 / TEMPORARY AC, USED ON TYPING START | |
119 | TTACT, 0 / TYPING THREAD ACTIVE FLAG | |
120 | ||
121 | / KEYBOARD COMMANDS | |
122 | CMKILL, 0 | |
123 | CMDUMP, 0 | |
124 | ||
125 | /******************************************************************** | |
126 | / ZERO PAGE CONSTANTS | |
127 | ||
128 | K7, 7 | |
129 | K10, 10 | |
130 | K77, 77 | |
131 | K200, 200 | |
132 | K377, 377 | |
133 | K7700, 7700 | |
134 | ||
135 | KROWS, PROWS | |
136 | KCOLS, PCOLS | |
137 | ||
138 | KDEAD, DEAD | |
139 | KALIVE, ALIVE | |
140 | ||
141 | KNMCO, 1-PCOLS / NEGATIVE OF LAST COLUMN ADDRESS | |
142 | KNMROW, 1-PROWS / NEGATIVE OF LAST ROW ADDRESS | |
143 | KBORD, BORDER | |
144 | ||
145 | KCOLM1, -1 | |
146 | KCOLP1, 1 | |
147 | KROWM1, -100 | |
148 | KROWP1, 100 | |
149 | ||
150 | /******************************************************************** | |
151 | / ZERO PAGE POINTERS AND SHORTCUTS | |
152 | ||
153 | XDUMPS, DUMPS / START DATA DUMP | |
154 | XDUMPT, DUMPT / START DATA DUMP | |
155 | XDUMP, DUMP | |
156 | XCALC, CALC | |
157 | XTYPE, TYPE | |
158 | XGET, GET / GET A CELL STATE | |
159 | XSET, SET / SET A CELL TO LIVING | |
160 | XCLEAR, CLEAR / SET A CELL TO DEAD | |
161 | XTSTRT, TSTART | |
162 | XTSTOP, TSTOP | |
163 | XEXIT, EXIT | |
164 | XCOUNT, COUNT | |
165 | /******************************************************************** | |
166 | /******************************************************************** | |
167 | / MAIN PROGRAM | |
168 | *200 | |
169 | CLA CLL | |
170 | DCA TTACT | |
171 | TCF | |
172 | ION / WELCOME TO HELL! | |
173 | ||
174 | MLOOP, / MAIN EVENT LOOP | |
175 | JMS I XDUMP / START A DUMP, PLEASE | |
176 | JMS I XCALC / CALCULATE NEW DATA | |
177 | CLA CLL | |
178 | TAD TTACT | |
179 | SZA | |
180 | JMP .-2 | |
181 | CLA CLL | |
182 | TAD TPTR | |
183 | DCA DPTR | |
184 | TAD SPTR | |
185 | DCA TPTR | |
186 | TAD DPTR | |
187 | DCA SPTR | |
188 | JMP MLOOP | |
189 | ||
190 | ||
191 | /******************************************************************** | |
192 | / INTERRUPT HANDLER | |
193 | ||
194 | PAGE | |
195 | ||
196 | IHAND, DCA INTAC / SAVE AC AND LINK | |
197 | RAR | |
198 | DCA INTLNK | |
199 | ||
200 | KSF | |
201 | SKP | |
202 | JMP TTIHAN / TELETYPE INPUT | |
203 | TSF | |
204 | SKP | |
205 | JMP TTOHAN / TELETYPE OUTPUT | |
206 | ||
207 | HLT / OH, AN UNKNOWN INTERRUPT! | |
208 | ||
209 | / RESTORE AC AND LINK AND GO BACK TO WORK | |
210 | ||
211 | IEND, CLA CLL | |
212 | TAD INTLNK | |
213 | RAL | |
214 | TAD INTAC | |
215 | ION | |
216 | JMP I INTR / BACK TO NORMAL OPERATION | |
217 | ||
218 | /******************************************************************** | |
219 | / TELETYPE INPUT HANDLER | |
220 | ||
221 | TTIHAN, | |
222 | KRB / READ AND CLEAR FLAG | |
223 | AND K177 / MASK TO 7 BITS - I HATE PARITY! | |
224 | DCA KBCHAR / SAVE FOR USE | |
225 | ||
226 | TAD KBCHAR | |
227 | TAD CKDMPS | |
228 | SNA | |
229 | JMS I XDUMPS / SOURCE DUMP (DEBUG) | |
230 | ||
231 | CLA CLL | |
232 | TAD KBCHAR | |
233 | TAD CKDMPT | |
234 | SNA | |
235 | JMS I XDUMPT / TARGET DUMP (DEBUG) | |
236 | ||
237 | CLA CLL | |
238 | TAD KBCHAR | |
239 | TAD CKDUMP | |
240 | SNA | |
241 | JMS I XDUMP / NORMAL DUMP | |
242 | ||
243 | CLA CLL | |
244 | TAD KBCHAR | |
245 | TAD CKKILL | |
246 | SNA | |
247 | JMP I XEXIT | |
248 | ||
249 | CLA CLL | |
250 | TAD KBCHAR | |
251 | TAD CKHALT | |
252 | SNA | |
253 | HLT | |
254 | ||
255 | JMP IEND | |
256 | ||
257 | K177, 177 | |
258 | KBCHAR, 0 | |
259 | ||
260 | / COMMAND KEYS | |
261 | ||
262 | CKDUMP, -104 / D | |
263 | CKDMPS, -123 / S | |
264 | CKDMPT, -124 / T | |
265 | ||
266 | CKKILL, -3 / CTRL-C | |
267 | CKHALT, -10 / CTRL-H | |
268 | ||
269 | /******************************************************************** | |
270 | / TELETYPE OUTPUT HANDLER AND MANAGEMENT | |
271 | ||
272 | TTOHAN, | |
273 | TCF / CLEAR FLAG | |
274 | TAD TTACT / ACTIVITY GOING ON? | |
275 | SZA | |
276 | JMP TRESUM / JUMP INTO ONGOING ACTIVITY | |
277 | HLT / DEBUG HALT - THIS SHOULD NEVER BE HIT! | |
278 | JMP IEND / DO NOTHING, SAY GOODBYE. | |
279 | ||
280 | TSTART, 0 / SCHEDULE TYPING TO BE DONE. NEW "PROCESS" | |
281 | / STARTS ONE WORD AFTER THIS CALL'S REGULAR | |
282 | / RETURN. | |
283 | DCA TAC / SAVE AC FOR NOW | |
284 | ||
285 | / TSWAIT, CLA CLL | |
286 | / TAD TTACT | |
287 | / SZA | |
288 | / JMP TSWAIT / WAIT UNTIL TYPING SYSTEM IS IDLE! | |
289 | ||
290 | CLA CLL | |
291 | TAD TTACT | |
292 | SZA | |
293 | JMP I TSTART / RETURN, WE'RE BUSY! | |
294 | ||
295 | ISZ TTACT / NOW IT IS ACTIVE (AGAIN?) | |
296 | TAD TAC / GET BACK THE TEMPORARY AC | |
297 | DCA SAVTAC / SAVE FOR NEW THREAD | |
298 | RAR | |
299 | DCA SAVTLI / SAME FOR LINK | |
300 | TAD TSTART / POINTER TO MAIN THREAD RETURN CALL | |
301 | IAC / NOW POINTER TO FIRST EXTRA THREAD LOCATION | |
302 | DCA TYPE / INSTALL AS WAKEUP ADDRESS | |
303 | SPF / WE WILL BE INTERRUPTED RIGHT NOW! | |
304 | JMP I TSTART / RETURN TO CALLER | |
305 | ||
306 | TYPE, 0 / TYPE CHARACTER | |
307 | TLS / GET IT OUT! | |
308 | DCA SAVTAC / SAVE AC, JUST POLITE | |
309 | RAR | |
310 | DCA SAVTLI / SAVE LINK, STILL POLITE | |
311 | JMP IEND / END OF INTERRUPT HANDLING | |
312 | TRESUM, TAD SAVTLI | |
313 | RAL | |
314 | TAD SAVTAC | |
315 | JMP I TYPE / WAKE UP INTERRUPTED PROCESS | |
316 | ||
317 | TSTOP, CLA / JUMP HERE TO KILL TYPING THREAD | |
318 | DCA TTACT / CLEAR ACTIVITY FLAG | |
319 | TCF / CLEAR TELEPRINTER FLAG | |
320 | JMP IEND / END OF INTERRUPT HANDLING | |
321 | ||
322 | /******************************************************************** | |
323 | / THE CALCULATION | |
324 | PAGE | |
325 | CCADDR, 0 / CURRENT CELL ADDRESS | |
326 | CROW, 0 | |
327 | CCOL, 0 | |
328 | NBORS, 0 | |
329 | ||
330 | CALC, 0 | |
331 | CLA CLL | |
332 | DCA CCADDR | |
333 | ||
334 | TAD KROWS | |
335 | CIA | |
336 | DCA CROW | |
337 | ||
338 | CRLOOP, CLA CLL | |
339 | TAD KCOLS | |
340 | CIA | |
341 | DCA CCOL | |
342 | ||
343 | CCLOOP, | |
344 | / NOW, DO IT, PLEASE! | |
345 | TAD CCADDR | |
346 | JMS I XCOUNT | |
347 | DCA NBORS | |
348 | ||
349 | TAD CCADDR | |
350 | JMS I XGET | |
351 | SNA | |
352 | JMP ISDEAD | |
353 | ||
354 | ISALIV, CLA CLL | |
355 | TAD NBORS | |
356 | TAD KN4 | |
357 | SMA | |
358 | JMP DIE | |
359 | ||
360 | CLA CLL | |
361 | TAD NBORS | |
362 | TAD KN2 | |
363 | SMA | |
364 | JMP LIVE | |
365 | JMP DIE | |
366 | ||
367 | ISDEAD, TAD NBORS | |
368 | TAD KN3 | |
369 | SZA | |
370 | JMP DIE | |
371 | JMP LIVE | |
372 | ||
373 | LIVE, CLA CLL | |
374 | TAD CCADDR | |
375 | JMS I XSET / NOW, IT'S ALIVE! | |
376 | JMP CDONE | |
377 | DIE, CLA CLL | |
378 | TAD CCADDR | |
379 | JMS I XCLEAR | |
380 | CDONE, CLA CLL | |
381 | ||
382 | ISZ CCADDR | |
383 | ISZ CCOL | |
384 | JMP CCLOOP | |
385 | ||
386 | TAD CCADDR | |
387 | TAD K100 | |
388 | AND K7700 | |
389 | ISZ CROW | |
390 | JMP CRLOOP | |
391 | ||
392 | JMP I CALC | |
393 | KN2, -2 | |
394 | KN3, -3 | |
395 | KN4, -4 | |
396 | K100, 100 | |
397 | ||
398 | /******************************************************************** | |
399 | / DATA DUMPING | |
400 | PAGE | |
401 | NLINE=JMS CRLF | |
402 | HOME=JMS HOM | |
403 | ||
404 | DBASE, 0 | |
405 | DDPTR, 0 | |
406 | DOFF, 0 | |
407 | ||
408 | DUMPS, 0 | |
409 | JMS I XTSTRT | |
410 | JMP I DUMPS | |
411 | CLA | |
412 | TAD SPTR | |
413 | DCA DBASE | |
414 | JMP DMPINT | |
415 | ||
416 | DUMPT, 0 | |
417 | JMS I XTSTRT | |
418 | JMP I DUMPT | |
419 | CLA | |
420 | TAD TPTR | |
421 | DCA DBASE | |
422 | JMP DMPINT | |
423 | ||
424 | DUMP, 0 | |
425 | JMS I XTSTRT | |
426 | JMP I DUMP | |
427 | CLA | |
428 | TAD DPTR | |
429 | DCA DBASE | |
430 | ||
431 | DMPINT, DCA DOFF | |
432 | ||
433 | TAD KROWS | |
434 | CIA | |
435 | DCA ROWCNT | |
436 | ||
437 | // NLINE;NLINE | |
438 | HOME | |
439 | ||
440 | / START OF ROW | |
441 | RLOOP, CLA CLL | |
442 | TAD KCOLS | |
443 | CIA | |
444 | DCA COLCNT | |
445 | TAD K200 | |
446 | DCA DMSK | |
447 | ||
448 | TAD DBASE / BUFFER BASE ADDRESS | |
449 | TAD DOFF / CURRENT WORD OFFSET | |
450 | DCA DDPTR / TO INTERNAL POINTER | |
451 | ||
452 | / START OF COLUMN | |
453 | CLOOP, TAD DMSK / BIT MASK, DYNAMIC | |
454 | AND I DDPTR / COMBINE CURRENT WORD | |
455 | SZA | |
456 | JMP ONE | |
457 | ZERO, TAD KDEAD | |
458 | JMP TT | |
459 | ONE, CLA | |
460 | TAD KALIVE | |
461 | TT, JMS I XTYPE | |
462 | ||
463 | CLA CLL | |
464 | TAD DMSK | |
465 | RAR | |
466 | SZA | |
467 | JMP MASKOK | |
468 | TAD K200 | |
469 | ISZ DDPTR | |
470 | MASKOK, DCA DMSK | |
471 | ||
472 | ISZ COLCNT | |
473 | JMP CLOOP | |
474 | ||
475 | NLINE | |
476 | ||
477 | CLA CLL | |
478 | TAD DOFF | |
479 | TAD K10 | |
480 | DCA DOFF | |
481 | ||
482 | ISZ ROWCNT | |
483 | JMP RLOOP | |
484 | ||
485 | JMP I XTSTOP / STOP INTERRUPT MADNESS. | |
486 | ||
487 | HOM, 0 | |
488 | CLA CLL | |
489 | TAD K035 | |
490 | JMS I XTYPE | |
491 | CLA CLL | |
492 | JMS I XTYPE / FILLER CHARACTERS! | |
493 | JMS I XTYPE | |
494 | JMS I XTYPE | |
495 | JMS I XTYPE | |
496 | JMP I HOM | |
497 | ||
498 | CRLF, 0 | |
499 | CLA CLL | |
500 | TAD CR | |
501 | JMS I XTYPE | |
502 | CLA CLL | |
503 | TAD LF | |
504 | JMS I XTYPE | |
505 | JMP I CRLF | |
506 | ||
507 | DMSK, 0 | |
508 | K035, 35 | |
509 | CR, 215 | |
510 | LF, 212 | |
511 | ||
512 | ROWCNT, 0 | |
513 | COLCNT, 0 | |
514 | ||
515 | /******************************************************************** | |
516 | / NEIGHBORHOOD COUNTING | |
517 | / (ADDRESS IN AC) | |
518 | PAGE | |
519 | POS, 0 | |
520 | ||
521 | COUNT, 0 | |
522 | DCA POS | |
523 | DCA CNT | |
524 | ||
525 | TAD POS | |
526 | TAD KCOLM1 / STEP LEFT | |
527 | TAD KROWM1 / STEP UP | |
528 | JMS ACCNT | |
529 | ||
530 | TAD KCOLP1 | |
531 | JMS ACCNT | |
532 | ||
533 | TAD KCOLP1 | |
534 | JMS ACCNT | |
535 | ||
536 | TAD KROWP1 | |
537 | JMS ACCNT | |
538 | ||
539 | TAD KROWP1 | |
540 | JMS ACCNT | |
541 | ||
542 | TAD KCOLM1 | |
543 | JMS ACCNT | |
544 | ||
545 | TAD KCOLM1 | |
546 | JMS ACCNT | |
547 | ||
548 | TAD KROWM1 | |
549 | JMS ACCNT | |
550 | ||
551 | CLA CLL | |
552 | TAD CNT | |
553 | JMP I COUNT | |
554 | ||
555 | ACCNT, 0 | |
556 | DCA POS | |
557 | TAD POS | |
558 | JMS I XGET | |
559 | SZA | |
560 | ISZ CNT | |
561 | CLA CLL | |
562 | TAD POS | |
563 | JMP I ACCNT | |
564 | ||
565 | CNT, 0 / COUNTER VARIABLE | |
566 | ||
567 | ||
568 | /******************************************************************** | |
569 | / DATA HOLDING AND ACCESS | |
570 | ||
571 | PAGE / START ON NEW PAGE | |
572 | ||
573 | / INTERNAL DATA | |
574 | ||
575 | CADR, 0 / CURRENT CELL ADDRESS | |
576 | MASK, 0 / BIT MASK TO CURRENT CELL BIT | |
577 | APTR, 0 / ACCESS POINTER TO CURRENT CELL WORD | |
578 | ||
579 | / GET A BIT OF DATA | |
580 | GET, 0 / GET POSITION'S VALUE | |
581 | JMS ASETUP / CHECK LIMITS, STORE ADDRESS ETC. | |
582 | JMP I GET / ERROR RETURN, RETURN WITH LIMIT VALUE IN AC | |
583 | TAD APTR | |
584 | TAD SPTR / ADD SOURCE DATA BASE | |
585 | DCA APTR | |
586 | TAD I APTR / LOAD DATA | |
587 | AND MASK / MASK OUT DESIRED BIT | |
588 | SZA | |
589 | CLA CLL IAC / MAKE A ONE OUT OF AC CONTENTS | |
590 | JMP I GET / RETURN | |
591 | ||
592 | SET, 0 / SET POSITION'S VALUE TO 1 | |
593 | JMS ASETUP / CHECK LIMITS, STORE ADDRESS ETC. | |
594 | JMP I SET / ERROR RETURN, RETURN WITH LIMIT VALUE IN AC | |
595 | TAD APTR | |
596 | TAD TPTR / ADD SOURCE DATA BASE | |
597 | DCA APTR | |
598 | TAD MASK / GET MASK | |
599 | CMA / INVERT | |
600 | AND I APTR / COMBINE WITH DATA | |
601 | TAD MASK / SET BIT | |
602 | DCA I APTR / UPDATE DATA | |
603 | JMP I SET / RETURN | |
604 | ||
605 | CLEAR, 0 / CLEAR POSITION'S VALUE TO 0 | |
606 | JMS ASETUP / CHECK LIMITS, STORE ADDRESS ETC. | |
607 | JMP I CLEAR / ERROR RETURN, RETURN WITH LIMIT VALUE IN AC | |
608 | TAD APTR | |
609 | TAD TPTR / ADD SOURCE DATA BASE | |
610 | DCA APTR | |
611 | TAD MASK / GET MASK | |
612 | CMA / INVERT | |
613 | AND I APTR / COMBINE WITH DATA | |
614 | DCA I APTR / UPDATE DATA | |
615 | JMP I CLEAR / RETURN | |
616 | ||
617 | ASETUP, 0 | |
618 | DCA CADR / SAVE ADDRESS FOR LATER USE | |
619 | ||
620 | / LIMIT CHECK | |
621 | TAD CADR | |
622 | BSW / NOW ROW ADDRESS IN LOWER BITS | |
623 | AND K77 / MASK OUT UPPER BITS | |
624 | TAD KNMROW | |
625 | SPA | |
626 | JMP LGD1 / ONE LIMIT GOOD | |
627 | CLA | |
628 | TAD KBORD / BORDER STANDARD RETURN VALUE | |
629 | JMP I ASETUP / ERROR RETURN | |
630 | LGD1, CLA CLL | |
631 | TAD CADR | |
632 | AND K77 | |
633 | TAD KNMCO | |
634 | SPA | |
635 | JMP LGD2 | |
636 | CLA CLL | |
637 | TAD KBORD | |
638 | JMP I ASETUP / ERROR RETURN | |
639 | LGD2, CLA CLL | |
640 | ||
641 | / SETUP POINTER AND MASK | |
642 | TAD CADR | |
643 | RTR | |
644 | RAR | |
645 | AND K377 | |
646 | DCA APTR / ACCESS POINTER | |
647 | TAD CADR | |
648 | AND K7 | |
649 | TAD MASKSP | |
650 | DCA MPTR | |
651 | TAD I MPTR | |
652 | DCA MASK | |
653 | ||
654 | ISZ ASETUP / PREPARE GOOD RETURN | |
655 | JMP I ASETUP / GOOD RETURN | |
656 | ||
657 | ||
658 | ||
659 | MPTR, 0 | |
660 | MASKSP, MASKS | |
661 | MASKS, 200 | |
662 | 100 | |
663 | 040 | |
664 | 020 | |
665 | 010 | |
666 | 004 | |
667 | 002 | |
668 | 001 | |
669 | ||
670 | ||
671 | ||
672 | /******************************************************************** | |
673 | /******************************************************************** | |
674 | PAGE | |
675 | DATA0, | |
676 | 0000;0000;0000;0000;0000;0000;0000;0000 | |
677 | 0000;0000;0000;0000;0000;0000;0000;0000 | |
678 | 0000;0000;0000;0000;0000;0000;0000;0000 | |
679 | 0000;0000;0000;0000;0000;0000;0000;0000 | |
680 | 0000;0000;0000;0000;0000;0000;0000;0000 | |
681 | 0000;0000;0000;0000;0000;0000;0000;0000 | |
682 | 0000;0000;0000;0000;0000;0000;0000;0000 | |
683 | 0000;0000;0000;0000;0000;0000;0000;0000 | |
684 | 0000;0000;0000;0000;0000;0000;0000;0000 | |
685 | 0000;0000;0000;0000;0000;0000;0000;0000 | |
686 | 0000;0000;0000;0000;0000;0000;0000;0000 | |
687 | 0000;0000;0000;0007;0000;0000;0000;0000 | |
688 | 0000;0000;0000;0005;0000;0000;0000;0000 | |
689 | 0000;0000;0000;0005;0000;0000;0000;0000 | |
690 | 0000;0000;0000;0000;0000;0000;0000;0000 | |
691 | 0000;0000;0000;0005;0000;0000;0000;0000 | |
692 | 0000;0000;0000;0005;0000;0000;0000;0000 | |
693 | 0000;0000;0000;0007;0000;0000;0000;0000 | |
694 | 0000;0000;0000;0000;0000;0000;0000;0000 | |
695 | 0000;0000;0000;0000;0000;0000;0000;0000 | |
696 | 0000;0000;0000;0000;0000;0000;0000;0000 | |
697 | 0000;0000;0000;0000;0000;0000;0000;0000 | |
698 | 0000;0000;0000;0000;0000;0000;0000;0000 | |
699 | 0000;0000;0000;0000;0000;0000;0000;0000 | |
700 | 0000;0000;0000;0000;0000;0000;0000;0000 | |
701 | 0000;0000;0000;0000;0000;0000;0000;0000 | |
702 | 0000;0000;0000;0000;0000;0000;0000;0000 | |
703 | 0000;0000;0000;0000;0000;0000;0000;0000 | |
704 | 0000;0000;0000;0000;0000;0000;0000;0000 | |
705 | 0000;0000;0000;0000;0000;0000;0000;0000 | |
706 | 0000;0000;0000;0000;0000;0000;0000;0000 | |
707 | 0000;0000;0000;0000;0000;0000;0000;0000 | |
708 | ||
709 | PAGE | |
710 | DATA1, | |
711 | 0000;0000;0000;0000;0000;0000;0000;0000 | |
712 | 0000;0000;0000;0000;0000;0000;0000;0000 | |
713 | 0000;0000;0000;0000;0000;0000;0000;0000 | |
714 | 0000;0000;0000;0000;0000;0000;0000;0000 | |
715 | 0000;0000;0000;0000;0000;0000;0000;0000 | |
716 | 0000;0000;0000;0000;0000;0000;0000;0000 | |
717 | 0000;0000;0000;0000;0000;0000;0000;0000 | |
718 | 0000;0000;0000;0000;0000;0000;0000;0000 | |
719 | 0000;0000;0000;0000;0000;0000;0000;0000 | |
720 | 0000;0000;0000;0000;0000;0000;0000;0000 | |
721 | 0000;0000;0000;0000;0000;0000;0000;0000 | |
722 | 0000;0000;0000;0000;0000;0000;0000;0000 | |
723 | 0000;0000;0000;0000;0000;0000;0000;0000 | |
724 | 0000;0000;0000;0000;0000;0000;0000;0000 | |
725 | 0000;0000;0000;0000;0000;0000;0000;0000 | |
726 | 0000;0000;0000;0000;0000;0000;0000;0000 | |
727 | 0000;0000;0000;0000;0000;0000;0000;0000 | |
728 | 0000;0000;0000;0000;0000;0000;0000;0000 | |
729 | 0000;0000;0000;0000;0000;0000;0000;0000 | |
730 | 0000;0000;0000;0000;0000;0000;0000;0000 | |
731 | 0000;0000;0000;0000;0000;0000;0000;0000 | |
732 | 0000;0000;0000;0000;0000;0000;0000;0000 | |
733 | 0000;0000;0000;0000;0000;0000;0000;0000 | |
734 | 0000;0000;0000;0000;0000;0000;0000;0000 | |
735 | 0000;0000;0000;0000;0000;0000;0000;0000 | |
736 | 0000;0000;0000;0000;0000;0000;0000;0000 | |
737 | 0000;0000;0000;0000;0000;0000;0000;0000 | |
738 | 0000;0000;0000;0000;0000;0000;0000;0000 | |
739 | 0000;0000;0000;0000;0000;0000;0000;0000 | |
740 | 0000;0000;0000;0000;0000;0000;0000;0000 | |
741 | 0000;0000;0000;0000;0000;0000;0000;0000 | |
742 | 0000;0000;0000;0000;0000;0000;0000;0000 | |
743 | ||
744 | /******************************************************************** | |
745 | / PROGRAM TERMINATION - IGNORED BY OS/8! | |
746 | *7600 | |
747 | EXIT, CLA CLL | |
748 | IOF | |
749 | HLT | |
750 | JMP I XSTA | |
751 | XSTA, 200 | |
752 | ||
753 | /******************************************************************** | |
754 | / THIS IS IT, FOLKS! | |
755 | /******************************************************************** | |
756 | /******************************************************************** | |
757 | $ | |
758 | ||
759 |