3 / CONWAY'S GAME OF LIFE
6 /---------------------------------------------------------------------
7 / CONFIGURATION PARAMETERS
10 / SIZE OF THE PLAYING FIELD
11 / MAX COLUMNS=64(DEC)=100(OCT)
12 / MAX ROWS==64(DEC)=100(OCT)
16 / HAS THE FIELD LIMITS OR IS IT ENDLESS?
20 / BORDER BEHAVIOUR FOR LIMITED FIELD
21 / 0 - OFF FIELD POSITIONS ARE ASSUMED TO BE ALWAYS DEAD
22 / 1 - OFF FIELD POSITIONS ARE ASSUMED TO BE ALWAYS ALIFE
26 /---------------------------------------------------------------------
34 /---------------------------------------------------------------------
35 / DATA HOLDING AND ACCESS
37 / DATA IS HELD IN AN ARRAY OF WORDS, ASSIGNING ONE BIT PER POSITION.
38 / POSITION ADDRESS IS PASSED IN AC WHILE CALLING ACCESS ROUTINES.
40 PAGE / START ON NEW PAGE
42 GET, 0 / GET POSITION'S VALUE
43 DCA ADR / SAVE ADDRESS
44 JMS LIMIT / TEST LIMIT
45 JMP I GET / ERROR RETURN, RETURN WITH LIMIT VALUE IN AC
46 JMS POSCAL / CALC WORD ADDRESS AND BIT POSITION
49 SET, 0 / SET POSITION'S VALUE TO 1
50 CLEAR, 0 / CLEAR POSITION'S VALUE TO 0
54 BSW / NOW ROW ADDRESS IN LOWER BITS
55 AND K77 / MASK OUT UPPER BITS
58 JMP LGD1 / ONE LIMIT GOOD
60 TAD BORDER / BORDER STANDARD RETURN VALUE
61 JMP I LIMIT / ERROR RETURN
70 JMP I LIMIT / ERROR RETURN
71 LGD2, ISZ LIMIT / PREPARE GOOD RETURN
72 JMP I LIMIT / GOOD RETURN
74 ADR, 0 / TEMPORARY ADDRESS STORAGE
79 /---------------------------------------------------------------------
80 / CALCULATE BIT POSITION FOR X VALUE.
81 / RESULTS IN FOLLOWING LOCATIONS:
82 / XW: WORD ADDRESS OF DESIRED POSITION
83 / XB: BIT ADDRESS OF DESIRED POSITION
85 / POSITION IN AC, HIGHEST SUPPORTED NUMBER IS 95!
100 TAD XWORD / SHIFT BACK RESULT
104 JMP I POSCAL / RETURN TO CALLER
124 XWORD, 0 / INTEGER DIVISION RESULT
125 XBIT, 0 / INTIGER DIVISION'S REST
127 /---------------------------------------------------------------------