--- /dev/null
+/ LIVING PDP8
+
+/ CONWAY'S GAME OF LIFE
+
+
+/---------------------------------------------------------------------
+/ CONFIGURATION PARAMETERS
+
+
+/ SIZE OF THE PLAYING FIELD
+/ MAX COLUMNS=64(DEC)=100(OCT)
+/ MAX ROWS==64(DEC)=100(OCT)
+ ROWS=10
+ COLS=10
+
+/ HAS THE FIELD LIMITS OR IS IT ENDLESS?
+
+ LIMITS=1
+
+/ BORDER BEHAVIOUR FOR LIMITED FIELD
+/ 0 - OFF FIELD POSITIONS ARE ASSUMED TO BE ALWAYS DEAD
+/ 1 - OFF FIELD POSITIONS ARE ASSUMED TO BE ALWAYS ALIFE
+
+ BORDER=0
+
+/---------------------------------------------------------------------
+/ TEST PROGRAM
+ *200
+ TAD DD
+ JMS XCALC
+ HLT
+DD, 30
+
+/---------------------------------------------------------------------
+/ DATA HOLDING AND ACCESS
+
+/ DATA IS HELD IN AN ARRAY OF WORDS, ASSIGNING ONE BIT PER POSITION.
+/ POSITION ADDRESS IS PASSED IN AC WHILE CALLING ACCESS ROUTINES.
+
+ PAGE / START ON NEW PAGE
+
+GET, 0 / GET POSITION'S VALUE
+ DCA ADR / SAVE ADDRESS
+ JMS LIMIT / TEST LIMIT
+ JMP I GET / ERROR RETURN, RETURN WITH LIMIT VALUE IN AC
+ JMS POSCAL / CALC WORD ADDRESS AND BIT POSITION
+
+
+SET, 0 / SET POSITION'S VALUE TO 1
+CLEAR, 0 / CLEAR POSITION'S VALUE TO 0
+
+LIMIT, 0
+ TAD ADR
+ BSW / NOW ROW ADDRESS IN LOWER BITS
+ AND K77 / MASK OUT UPPER BITS
+ TAD KNMROW
+ SMA
+ JMP LGD1 / ONE LIMIT GOOD
+ CLA
+ TAD BORDER / BORDER STANDARD RETURN VALUE
+ JMP I LIMIT / ERROR RETURN
+LGD1, CLA CLL
+ TAD ADR
+ AND K77
+ TAD KNMCO
+ SMA
+ JMP LGD2
+ CLA CLL
+ TAD BORDER
+ JMP I LIMIT / ERROR RETURN
+LGD2, ISZ LIMIT / PREPARE GOOD RETURN
+ JMP I LIMIT / GOOD RETURN
+
+ADR, 0 / TEMPORARY ADDRESS STORAGE
+K77, 77
+KNMCO, 1-COLS
+KNMROW, 1-ROWS
+
+/---------------------------------------------------------------------
+/ CALCULATE BIT POSITION FOR X VALUE.
+/ RESULTS IN FOLLOWING LOCATIONS:
+/ XW: WORD ADDRESS OF DESIRED POSITION
+/ XB: BIT ADDRESS OF DESIRED POSITION
+
+/ POSITION IN AC, HIGHEST SUPPORTED NUMBER IS 95!
+
+POSCAL, 0
+ DCA XBIT
+ DCA XWORD
+
+ TAD KN48
+ JMS MTEST
+
+ TAD KN24
+ JMS MTEST
+ HLT
+ TAD KN12
+ JMS MTEST
+
+ TAD XWORD / SHIFT BACK RESULT
+ RAR
+ DCA XWORD
+
+ JMP I POSCAL / RETURN TO CALLER
+
+MTEST, 0
+ TAD XBIT
+ SMA
+ SKP
+ JMP IGN12
+ DCA XBIT
+ ISZ XWORD
+IGN12, CLA CLL
+ TAD XWORD
+ RAL
+ DCA XWORD
+ JMP I MTEST
+
+KN48, -60
+KN24, -30
+KN12, -14
+
+ *1000
+XWORD, 0 / INTEGER DIVISION RESULT
+XBIT, 0 / INTIGER DIVISION'S REST
+
+/---------------------------------------------------------------------
+/ THIS IS IT, FOLKS!
+$
+
+
\ No newline at end of file