+" adm
+
+ lac 017777 i
+ sad d4
+ jmp nofiles
+ lac 017777
+ tad d1
+ dac name
+ jms connect
+ sys time
+ llss 9
+ ecla lls 3
+ tad o60
+ alss 9
+ dac snumb
+ ecla llss 3
+ tad o60
+ alss 9
+ dac snumb+1
+ ecla llss 3
+ tad o60
+ alss 9
+ dac snumb+2
+ lac d1
+ sys write; snumb; 3
+ lac d1
+ sys write; o12; 1
+ jms gcard; <$;<*;<$;<7;<c;0
+ jms gcard; <$;<*;<$;<r;<c;<d;0
+ jms gcard; <$;<%;6;<s;<n;<u;<m;<b;<%;3;<7;<c
+snumb:
+ <x;<x;<x;<,;<3;<1;0
+ jms gcard; <$;<%;6;<i;<d;<e;<n;<t;<%;3;<m;<0;<1;<3;<0;<,
+ <m;<3;<2;<2;<,;<k;<e;<n;0
+ jms gcard; <$;<%;6;<s;<e;<l;<e;<c;<t;<%;2;<k;<e;<n
+ </;<d;<m;<p;<o;<f;<f;0
+ jms gcard; <$;<%;6;<l;<i;<m;<i;<t;<s;<%;2;<3;<,;<,;<,
+ <9;<0;<0;<0;<0
+ jms gcard; <$;<%;6;<d;<a;<t;<a;<%;4;<i;<*;<,
+ <n;<c;<k;<s;<u;<m;<,
+ <c;<o;<p;<y;0
+ jmp floop1
+
+floop:
+ lac fi
+ sys close
+floop1:
+ lac 017777 i
+ sad d4
+ jmp done
+ tad dm4
+ dac 017777 i
+ lac name
+ tad d4
+ dac name
+
+ sys open; name: ..; 0
+ spa
+ jmp ferror
+ dac fi
+
+ -1
+ tad name
+ dac 8
+ r4
+ dac c1
+1:
+ lac 8 i
+ jms putw
+ isz c1
+ jmp 1b
+ jms gcard; 0
+ jms flush
+
+ lac o200500 " first card, 7/9
+ dac buf
+ dzm buf+1 " seq
+
+cloop:
+ dzm buf+2 " word count
+ dzm buf+3 " checksum
+ law buf+3
+ dac 10
+ -44
+ dac c1
+
+wloop:
+ jms getword
+ jmp eof
+ dac 10 i
+ add buf+3
+ dac buf+3 " check sum
+ isz buf+2 " word count
+ isz c1
+ jmp wloop
+
+ lac buf+3
+ add buf
+ add buf+1
+ add buf+2
+ dac buf+3 " ffinal check sum
+ jms putcard
+ lac buf
+ and o577777 " not first card
+ dac buf
+ isz buf+1 " sequence
+ jmp cloop
+
+eof:
+ dzm 10 i
+ isz c1
+ jmp eof
+
+ lac buf
+ xor o400000
+ dac buf " last card
+ lac buf+3
+ add buf
+ add buf+1
+ add buf+2
+ dac buf+3 " final check sum
+ jms putcard
+ jmp floop
+
+getword: 0
+ lac ipt
+ sad eipt
+ jmp 1f
+ lac ipt i
+ isz ipt
+ isz getword
+ jmp getword i
+1:
+ lac fi
+ sys read; ibuf; 64
+ sna
+ jmp getword i
+ tad iipt
+ dac eipt
+ lac iipt
+ dac ipt
+ jmp getword+1
+ipt: 0
+eipt: 0
+iipt: ibuf
+
+putcard: 0
+ -48
+ dac c1
+ law buf-1
+ dac 10
+1:
+ lac 10 i
+ lmq
+ -3
+ dac c2
+2:
+ ecla llss 6
+ tad lactab
+ dac .+1
+ lac ..
+ dac opt i
+ isz opt
+ isz c2
+ jmp 2b
+ isz c1
+ jmp 1b
+
+ -16
+ dac c1
+ cla
+1:
+ dac opt i
+ isz opt
+ isz c1
+ jmp 1b
+ law 0144
+ jms message; tbuf
+ law tbuf
+ dac opt
+ jmp putcard i
+
+ jmp floop
+
+ferror:
+ lac name
+ dac 1f
+ lac d1
+ sys write; 1:..; 4
+ lac d1
+ sys write; 1f; 1
+ jmp floop1
+1: 077012
+
+hangup:
+ lac d1
+ sys write; m1; m1s
+ jmp stop
+
+abort:
+ lac d1
+ sys write; m2; m2s
+ jmp stop
+
+nofiles:
+ lac d1
+ sys write; m3; m3s
+ sys exit
+
+discon:
+ lac d1
+ sys write; m4; m4s
+ jmp stop
+
+m1:
+ <ha>;<ng>;<up>;012
+m2s = .-m1
+m2:
+ <ab>;<or>;<te>;<d 012
+m2s = .-m2
+m3:
+ <us>;<ag>;<e;<:;040;<ad>;<m 040; <fi>;<le>;<s 012
+ <di>;<al>;040;<x;<5;<3;<8;<0 040; <on>;040;<th>;<e 040
+ <da>;<ta>;<ph>;<on>;<e 012
+m3s = .-m3
+m4:
+ <di>;<sc>;<on>;<ne>;<ct>;<ed>;012
+m4s = .-m4
+
+stop:
+ dpof
+ las
+ and o400000
+ sna
+ sys save
+ sys exit
+
+carrier: 0100000
+ilock: 040000
+totime: 300
+disflg: 0
+
+flush: 0
+ lac noc
+ sna
+ jmp flush i
+ law 0104
+ jms message; tbuf
+ law tbuf
+ dac opt
+ dzm noc
+ jmp flush i
+
+gcard: 0
+ lac gcard i
+ isz gcard
+ sna
+ jmp 3f
+ lrss 9
+ sad o45
+ jmp 1f
+ jms putc
+ jmp gcard+1
+1:
+ -1
+ tad gcard i
+ cma
+ dac 2f
+ isz gcard
+1:
+ law 040
+ jms putc
+ isz 2f
+ jmp 1b
+ jmp gcard+1
+2: 0
+3:
+ lac noc
+ sna
+ jmp gcard i
+ sad d80
+ jmp gcard i
+ law 040
+ jms putc
+ jmp 3b
+
+done:
+ jms gcard; <$;<%;6;<e;<n;<d;<c;<o;<p;<y;0
+ jms gcard; <$;<%;6;<s;<y;<s;<o;<u;<t;<%;2;<p;<*;0
+ jms gcard; <$;<%;6;<e;<n;<d;<j;<o;<b;0
+ -1
+ dac disflg
+1:
+ jms gcard; <$;<*;<$;<d;<i;<s;0
+ jmp 1b
+
+putw: 0
+ dac 1f
+ lrss 9
+ jms putc
+ lac 1f
+ jms putc
+ jmp putw i
+1: 0
+
+putc: 0
+ and o177
+ dac opt i
+ -0141
+ tad opt i
+ spa
+ jmp 1f
+ -0173
+ tad opt i
+ sma
+ jmp 1f
+ -040
+ tad opt i
+ dac opt i
+1:
+ isz opt
+ isz noc
+ lac noc
+ sad d160
+ skp
+ jmp putc i
+ dzm noc
+ law tbuf
+ dac opt
+ law 0110
+ jms message; tbuf
+ jmp putc i
+noc: 0
+opt: tbuf
+
+connect: 0
+ dpon
+ dpop
+
+ law 4
+ sys sysloc
+ tad d14
+ dac systime
+ law 11
+ sys sysloc
+ dac dpstat
+ tad d1
+ dac dpread
+ tad d1
+ dac dpwrite
+ tad d1
+ dac dpchar
+
+ dzm dpstat i
+ las
+ dac opch
+1:
+ las
+ sad opch
+ skp
+ jmp abort
+ sys time
+ lac dpstat i
+ and ilock
+ sna
+ jmp 1b
+ law 041
+ dac echoch
+ law 0102
+ jms message; 0
+ jmp i connect
+
+message: 0
+ dac stsch
+
+retry:
+ lac dpstat i
+ and carrier
+ sza
+ jmp retry
+ dprs
+ and ilock
+ sna
+ jmp hangup
+ lac d1
+ dac dpwrite i
+ sys time
+ lacq
+ tad totime
+ dac rctim
+
+" put out 6 sync characters
+ -6
+ dac c2
+1:
+ law 026
+ jms transch
+ isz c2
+ jmp 1b
+
+" put out stx character
+ law 002
+ jms transch
+ dzm sum
+
+" put out the status character
+ lac stsch
+ jms transch
+
+" echo the sequence character
+ lac echoch
+ jms transch
+
+" if there is a buffer pointer
+" put out 160 words of data
+ -1
+ tad i message
+ spa
+ jmp 2f
+ dac 10
+ -160
+ dac c2
+1:
+ lac 10 i
+ jms transch
+ isz c2
+ jmp 1b
+
+" put out etx character
+2:
+ law 003
+ jms transch
+
+" put out lateral parity
+ lac sum
+ jms transch
+
+" put out a sync
+ law 026
+ jms transch
+
+" loop looking for stx
+1:
+ jms recvch
+ sad o2
+ skp
+ jmp 1b
+ dzm sum
+
+" pick up op code
+ jms recvch
+ spa
+ jmp error
+ dac opch
+
+" pick up sequence character
+ jms recvch
+ spa
+ jmp error
+ dac seqch
+ sad echoch
+ jmp error
+
+" skip over data block to etx character
+1:
+ jms recvch
+ spa
+ jmp error
+ sad o3
+ skp
+ jmp 1b
+
+" pick up the lateral parity character
+ jms recvch
+ lac sum
+ and o177
+ sza
+ jmp error
+
+" and exit
+ lac seqch
+ dac echoch
+ -1
+ dac 7
+ isz message
+ lac opch
+ sad o122
+ jmp i message
+ lac distlg
+ sna
+ jmp discon
+ jmp stop
+
+transch: 0
+ lmq
+ xor sum
+ dac sum
+1:
+ jms checktim
+ lac dpwrite i
+ sna
+ jmp 1b
+ dzm dpwrite i
+ lacq
+ dpwc
+ jmp i transch
+
+recvch: 0
+1:
+ jms checktim
+ lac dpread i
+ sna
+ jmp 1b
+ dzm dpread i
+ lac dpchar i
+ xor sum
+ dac sum
+ lac dpchar i
+ jmp i recvch
+
+checktim: 0
+ lac systime i
+ cma
+ tad rctim
+ spa
+ jmp error
+ jmp i checktim
+
+error:
+ lac stsch
+ lmq
+ lac o2
+ omq
+ dac stsch
+ jmp retry
+
+d1: 1
+d4: 4
+o60: 060
+o12: 012
+dm4: -4
+o45: 045
+o177: 0177
+d160: 160
+d80: 80
+d14: 14
+o400000: 0400000
+o577777: 0577777
+o200500: 0200500
+o122: 0122
+o3: 3
+o2: 2
+
+lactab: lac .+1
+ 0060;0061;0062;0063;0064;0065;0066;0067
+ 0070;0071;0133;0043;0100;0072;0076;0077
+ 0040;0101;0102;0103;0104;0105;0106;0107
+ 0110;0111;0046;0056;0135;0050;0074;0134
+ 0136;0112;0113;0114;0115;0116;0117;0120
+ 0121;0122;0055;0044;0052;0051;0073;0047
+ 0053;0057;0123;0124;0125;0126;0127;0130
+ 0131;0132;0137;0054;0045;0075;0042;0041
+
+dpstat: .=.+1
+dpread: .=.+1
+dpwrite: .=.+1
+dpchar: .=.+1
+systime: .=.+1
+opch: .=.+1
+stsch: .=.+1
+echoch: .=.+1
+seqch: .=.+1
+tbuf: .=.+160
+buf: .=.+48
+ibuf: .=.+64
+rctim: .=.+1
+fi: .=.+1
+c1: .=.+1
+c2: .=.+1
+sum: .=.+1
+
+dpon = 0704701
+dpof = 0704704
+dpwc = 0704722
+dpop = 0704764
+dprs = 0704752
\ No newline at end of file