.ABS .LOC 100 .TITLE LIFE / DACX=701544 DACY=701524 KSF=700301 KRB=700312 TLS=700406 TSF=700401 DBA=707762 / / CHECKING APPROXIMITY MACRO / .DEFIN CHECK,D AXR+D LAC 0,X SZA!SMA ISZ COUNT .ENDM / / INITIALIZE BUFFER BY ZEROING AND READING INPUT / LAC (10000-1 DAC 10 LAC (-7777 DAC TST CLOOP DZM* 10 /CLEAR THE BUFFER ISZ TST JMP CLOOP / JMS READI TCA DAC TST JMS CRLF INLOOP JMS READI /READ X DAC BFPT LAC (240 JMS PRNT JMS READI SWHA RTR RAR XOR (10000 XOR BFPT DAC BFPT CLA!IAC DAC* BFPT JMS CRLF ISZ TST JMP INLOOP JMS DISP / / / START GENERATING / GEN LAC (10000 DAC 10 LAC (-7777 DAC TST DBA LOOP DZM COUNT /ZERO NEAREST NEIGHBOURS LAC* 10 SZA CLA!CMA DAC MT LAC 10 PAX CLA CHECK 100 CHECK 1 CHECK -2 CHECK -100 CHECK 2 CHECK -100 CHECK -1 CHECK -1 / AXR 101 /BACK TO CENTRE ISZ MT JMP C3 LAC COUNT CLL!RAR SZA JMP DED CLL!RAR SZA JMP OUT DED LAC (2 DAC 10000 JMP OUT / C3 LAC (3 SAD COUNT SKP JMP OUT CLA!CMA DAC 10000 / OUT ISZ TST JMP LOOP / LAC (10000-1 DAC 10 LAC (-7777 DAC TST ZLOOP LAC 20 SNA JMP OK SPA JMP PUT SAD (2 DZM 20 INC ISZ 20 ISZ TST JMP ZLOOP JMS DISP JMP GEN PUT CLA!IAC DAC 20 JMP INC READI 0 JMS READ AND (17 RTL RAL DAC TEMP JMS READ AND (17 XOR TEMP JMP* READI TEMP 0 / READ 0 KSF JMP .-1 KRB JMP* READ / CRLF 0 LAC (15 JMS PRNT LAC (12 JMS PRNT JMP* CRLF / PRNT 0 TLS TSF JMP .-1 JMP* PRNT / / DISPLAY BUFFER ROUTINE / DISP 0 701561 LAS AND (777 CMA DAC LCOUNT LAS SWHA AND (777 CMA DAC TIME LAC (10000-1 DAC 10 LAC (-7777 DAC TST DLOOP LAC* 10 SNA JMP TEST LAC 10 AND (77 SWHA RTL RAL DACX LAC 10 AND (7700 RTL RTL RTL DACY JMS PAUSE TEST ISZ TST JMP DLOOP ISZ LCOUNT JMP DLOOP-4 JMP* DISP / PAUSE 0 LAC TIME DAC TCOUNT ISZ TCOUNT JMP .-1 JMP* PAUSE TIME -1 TCOUNT 0 / TST 0 LCOUNT 0 BFPT 0 .END