+" cas
+
+ narg = i 017777
+
+ lac 017777
+ tad d5
+ dac name1
+ tad d4
+ dac name 2
+ lac narg
+ sad d4
+ jmp 1f
+ sad d8
+ jmp 2f
+ jmp 3f
+1:
+ law ttyout
+ dac name1
+2:
+ law ttyin
+ dac name2
+3:
+ sys open; name2: 0; 0
+ sma
+ jmp 1f
+ lac name2
+ dac 2f
+ lac d1
+ sys write; 2: 0; 4
+ lac d1
+ sys write; mes; 2
+ sys exit
+1:
+ sys open; name1: 0; 1
+ sma
+ jmp 1f
+ lac name1
+ dac 2f
+ lac o17
+ sys creat; 2: 0
+ sma
+ jmp 1f
+ lac name1
+ dac 2f
+ lac d1
+ sys write; 2: 0; 4
+ lac d1
+ sys write; mes; 2
+ sys exit
+mes:
+ 040077;012
+1:
+ dzm nchar
+ dzm x
+ dzm y
+ dzm parflg
+ dzm nins
+ dzm nwds
+ lac bufp
+ dac 10
+
+advanc:
+ lac nchar
+ dzm nchar
+ sza
+ jmp adv1
+ lac d2
+ sys read; char; 1
+ sna
+ jmp done
+ lac char
+ and o777
+ dac nchar
+ lac char
+ lrss 9
+
+adv1:
+ sna
+ jmp advanc
+ dac char
+ lac labflg
+ sna
+ jmp 2f
+ lac char
+ sad o12
+ skp
+ jmp 1f
+ dzm labflg
+ dac i 11
+ jmp advanc
+1:
+ dac i 11
+ jmp advanc
+2:
+ lac parflg
+ sza
+ jmp atoz
+ lac char
+ sad o12
+ jmp advanc
+ sad o72
+ skp
+ jmp 1f
+ -4
+ dac labflg
+ dac mod3
+ jms wbuf "???
+ lac lbufp
+ dac 11
+ lac o170072
+ dac i 10
+ lac o12
+ dac i 10
+ lac o60
+ dac i 10
+ isz nwds
+ isz nwds
+ isz nwds
+ jmp advanc
+1:
+ sad o170
+ skp
+ jmp 1f
+ dzm vis
+ jmp advanc
+1:
+ sad o166
+ skp
+ jmp 1f
+ lac visbit
+ dac vis
+ jmp advanc
+1:
+ sad 0162
+ skp
+ jmp letr
+ isz mod3
+ skp
+ jmp 2f
+ lac o60060
+1:
+ dac i 10
+ isz nwds
+ isz mod3
+ jmp 1b
+2:
+ lac o12
+ dac i 10
+ isz nwds
+ lac lbufp
+ dac 11
+ 1: "???
+ lac i 11
+ sad o12
+ jmp 1f
+ dac i 10
+ isz nwds
+ jmp 1b
+1:
+ lac o75170
+ dac i 10
+ isz nwds
+ lac ob1
+ dac i 10
+ isz nwds
+ lac sp
+ dac i 10
+ isz nwds
+ lac nins
+ dzm nins
+ tad o100
+ lmq
+ llss 10
+ cla
+ llss 3
+ alss 6
+ llss 3
+ tad o60060
+ dac i 10
+ cla
+ llss 3
+ alss 6
+ llss 3
+ tad o60060
+ dac i 10
+ cla
+ llss 3
+ alss 6
+ llss 3
+ tad o60060
+ dac i 10
+ lac nwds
+ tad d4
+ dac nwds
+ lac o12012
+ dac i 10
+ dzm x
+ dzm y
+ jmp advanc
+letr:
+ tad om141 "???
+ spa
+ jmp error
+ tad dm16
+ sma "???
+ jmp error
+ cma "???
+ tad dm3
+ dac ny
+ -1
+ dac parflg
+ jmp advanc
+
+atoz:
+ lac char
+ tad om141
+ spa
+ jmp error
+ tad dm14
+ sma
+ jmp error
+ tad d14
+ dac nx
+
+loop:
+ -1
+ tad x
+ cma
+ tad nx
+ dac delx
+ -1
+ tad y
+ cma
+ tad ny
+ dac dely
+ " generate direction
+
+ lac delx
+ sna
+ jmp c1
+ spa
+ jmp c2
+ lac dely ;"dx ,gr, 0
+ sna
+ jmp c3
+ spa
+ jmp c4
+ lac d1
+ jmp b
+c3:
+ lac d2
+ jmp a
+c4:
+ lac d3
+ jmp b
+
+c1:
+ lac dely
+ sna
+ jmp out
+ spa
+ jmp c5
+ cla
+ jmp a
+c5:
+ lac d4
+ jmp a
+c2:
+ lac dely
+ sna
+ jmp c6
+ spa
+ jmp c7
+ lac d7
+ jmp b
+c6:
+ lac d6
+ jmp a
+c7:
+ lac d5
+ jmp b
+ "
+ "
+a:
+ dac direc
+ lac delx
+ sma
+ jmp 1f
+ cma
+ tad d1
+ dac delx
+1:
+ lac dely
+ sma
+ jmp 1f
+ cma
+ tad d1
+1:
+ tad dlex
+ tad dm4
+ sma
+ cla
+ tad d3
+ dac dist
+ tad incxp
+ dac tmp
+ lac i tmp
+ dac incx
+ lac dist
+ tad incyp
+ dac tmp
+ lac i tmp
+ dac incy
+ jmp com
+ "
+b:
+ dzm dist
+ dac direc
+ lac incxt
+ dac incx
+ lac incyt
+ dac incy
+ "
+com:
+ isz nins
+ lac dist
+ alss 4
+ xor vis
+ xor direc
+ isz mod3
+ skp
+ jmp 1f
+2:
+ lmq
+ llss 12
+ cla
+ llss 3
+ alss 6
+ llss 3
+ tad o60060
+ dac i 10
+ isz nwds
+ jmp 3f
+1:
+ dac tmp
+ lac o12060
+ dac i 10
+ isz nwds
+ -3
+ dac mod3
+ lac tmp
+ jmp 2b
+3:
+ lac direc
+ tad incx
+ dac tmp
+ lac i tmp
+ tad x
+ dac x
+ lac direc
+ tad incy
+ dac tmp
+ lac i tmp
+ tad y
+ dac y
+ jmp loop
+out:
+ lac nx
+ dac x
+ lac ny
+ dac y
+ dzm parflg
+ jmp advanc
+
+done:
+ lac d2
+ sys close
+ jms wbuf
+ lac d3
+ sys close
+ sys exit
+
+error:
+ lac d1
+ sys write; char; 1
+ lac d1
+ sys write; mes; 2
+ dzm parflg
+ dzm labflg
+ jmp advanc
+
+wbuf: 0
+ lac nwds
+ dac 1f
+ lac d3
+ sys write; buf; 1f: 0; "???
+ dzm nwds
+ lac bufp
+ dac 10
+ jmp i wbuf
+
+d1: 1
+d2: 2
+d3: 3
+d4: 4
+d5: 5
+d6: 6
+d7: 7
+d8: 8
+o12: 012
+o75170: 075170
+ob1: 055142
+
+sp: 053060
+o60: 060
+o60060: 060060
+o73: 073
+d6: 6 "seems like a dupe
+d14: 14
+dm14: -14
+dm16: -16
+om141: -0141 "???
+dm3: -3
+dm4: -4
+o162: 0162
+o166: 0166
+o17: 017
+o777: 0777
+o72: 072
+o170: 0170
+o10000: 010000
+o20000: 020000
+o200000: 0200000
+o41: 041
+ttyin:
+ 0164164;0171151;0156040;040040
+ttyout:
+ 0164164;0171157;0165164;040040
+
+char: .=.+1
+parflg: .=.+1
+labflg: .=.+1
+obuf: .=.+8
+x: .=.+1
+y: .=.+1
+nx: .=.+1
+ny: .=.+1
+vis: .=.+1
+nchar: .=.+1
+ "
+incxp:incxt
+incyp:incyt
+incxt: x1;x2;x3;x4
+incyt: y1;y2;y3;y4
+ "
+x1: 0;1;1;1;0;-1;-1;-1
+x2: 0;2;2;2;0;-2;-2;-2
+x3: 0;3;3;3;0;-3;-3;-3
+x4: 0;4;4;4;0;-4;-4;-4
+y1: 1;1;0;-1;-1;-1;0;1
+y2: 2;2;0;-2;-2;-2;0;2
+y3: 3;3;0;-3;-3;-3;0;3
+y4: 4;4;0;-4;-4;-4;0;4
+delx: .=.+1
+dely: .=.+1
+incx: .=.+1
+incy: .=.+1
+direc: .=.+1
+dist: .=.+1
+visbit: 010
+mod3: .=.+1
+tmp: .=.+1
+buf: .=.+500
+bufp: buf-1
+lbuf: .=.+10
+lpbufp: lbuf-1
+nwds: .=.+1
+o1770072: 0170072
+nins: .=.+1
+o100: 0100
+o12012: 012012
+o12060: 012060
+
+
+
+
+
+:ca
+v
+af
+nl "???
+x
+hd
+v
+hi
+x
+mn
+r
+
+:cb
+x
+ga
+v
+gi
+ik
+kk
+mi "???
+ma
+aa
+ai
+ck
+ek
+gi
+x
+mn
+r
+
+:cc
+x
+kk
+v
+mi "???
+mc
+ka
+ca
+ac
+ai
+dl
+x
+mn
+r
+
+:cd
+v
+aa
+ai
+ck
+kk
+mi
+ma
+x
+mn
+r
+
+:ce
+x
+mk
+v
+ma
+aa
+ak
+x
+gh
+v
+ga
+x
+mn
+r
+
+:cf
+v
+aa
+ak
+x
+gh
+v
+ga
+x
+mn
+r
+
+:cg
+x
+gf
+v
+gk
+nk
+x
+kk
+v
+mi
+mc
+ka
+ca
+ac
+ai
+dl
+x
+mn
+r
+
+:ch
+x
+aa
+v
+na
+x
+gb "???
+v
+gk
+x
+ak
+v
+nk
+x
+mn
+r
+
+:ci
+x
+md
+v
+mi
+x
+lf
+v
+af
+x
+ad
+v
+ai
+x
+mn
+r
+
+:cj
+x
+ka
+v
+mc
+mg
+ki
+ai "???
+x
+ag
+v
+al "???
+x
+mn
+r
+
+:ck
+x
+aa
+v
+na
+x
+ak
+v
+ia
+x
+mk
+v
+fe
+x
+mn
+r
+
+:cl
+x
+aa
+v
+ma
+mk
+x
+mn
+r
+
+:cm
+v
+aa
+hf
+ak
+nk
+x
+mn
+r
+
+:cn
+x
+ak
+v
+mk
+aa
+na
+x
+mn
+r
+
+:co
+x "???
+ai
+v
+ch
+ei
+ck
+ai
+ac
+ca
+ka
+mc "???
+mi
+kk
+ck
+x
+mn
+r
+
+:cp
+v
+aa
+ai
+ck
+ek
+gi
+ga
+x
+mn
+r
+
+:cq
+x
+mc
+v
+ka
+ca
+ac
+ai
+ck
+kk
+mi
+mc
+x
+jh
+v
+nl
+x
+mn
+r
+
+:cr
+v
+aa
+ai
+ck
+ek
+gi
+ga
+x
+mk
+v
+gf
+x
+mn
+r
+
+:cs
+x
+ka
+v
+mc
+mi
+kk
+ik
+gi
+gc
+ea
+ca
+ac
+ai
+dl
+x
+mn
+r
+
+:ct
+x
+aa
+v
+al
+x
+mf
+v
+af
+x
+mn
+r
+
+:cu
+x
+aa
+v
+ka
+mc
+ml "???
+kk
+x
+ak
+v
+lk
+x
+mn
+r
+
+:cv
+x
+aa
+v
+mf
+x
+ak
+v
+mf
+x
+mn
+r
+
+:cw
+x
+aa
+v
+mc
+af
+x
+ak
+v
+mi
+af
+x
+mn
+r
+
+:cx
+v
+gf
+x
+ak
+v
+gf
+x
+aa
+v
+nl
+x
+mn
+r
+
+:cy
+x
+aa
+v
+if
+x
+ak
+v
+if
+nf
+x
+mn
+r
+
+:cz
+x
+aa
+v
+ak
+ma
+ml
+x
+mn
+r
+
+:c0
+x
+ck
+v
+ai
+ac
+ca
+ka
+mc
+mi
+kk
+ck
+x
+mn
+r
+
+:c1
+x
+ce
+v
+af
+mf
+x
+md
+v
+mi
+x
+mn
+r
+
+:c2
+x
+ca
+v
+ac
+ai
+ck
+ek
+gi
+gc
+ia
+ma
+ml "???
+mc
+mi
+kk
+hk
+fi
+fc
+ha
+x
+mn
+r
+
+:c7
+x
+aa
+v
+ak
+nb
+x
+mn
+r
+
+:c8
+x
+gc
+v
+ea
+ca
+ac
+ai
+ck
+ek
+gi
+gc
+ia
+ka
+mc
+mi
+kk
+ik
+gi
+x
+mn
+r
+
+:c9
+x
+ka
+v
+mc
+mi
+kk
+ck
+ai
+ac
+ca
+fa
+hc
+hi
+fk
+x
+mn
+x
+mn
+r
+
+:c3
+x
+aa
+v
+ak
+fe
+fi
+hk
+kk
+mi
+mc
+x
+ka
+v
+nd
+x
+mn
+r
+
+:c4
+x
+mh
+v
+ah
+ia
+ll
+x
+mn
+r
+
+:c5
+x
+ak
+v
+aa
+fa
+fi
+hk
+kk
+mi
+mc
+x
+ka
+v
+nd
+x
+mn
+r
+
+:c6
+x
+ck
+v
+ai
+ac
+ca
+ka
+
+" The end of file seems abrupt, every other :cX section ends with:
+" x
+" mn
+" r