Research PDP7 development
[unix-history] / ald.s
diff --git a/ald.s b/ald.s
new file mode 100644 (file)
index 0000000..f0c79a0
--- /dev/null
+++ b/ald.s
@@ -0,0 +1,250 @@
+" ald
+
+   law 17
+   sys sysloc
+   dac crread
+   tad d1
+   dac crchar
+
+   law 4
+   sys sysloc
+   tad d14
+   dac systime
+
+loop:
+   jms holcard
+   lac o12
+   dac buf+4
+   lac d1
+   sys write; buf; 5
+   law 017
+   sys creat; buf
+   spa
+   jmp ferror
+   dac fo
+   dzm noc
+   law obuf
+   dac opt
+   dzm seq
+
+cloop:
+   jms bincard
+   lac buf
+   and o700
+   sad o500
+   skp
+   jmp notbin
+
+   -48
+   dac c1
+   lac buf+3
+   dac sum
+   dzm buf+3
+   law buf-1
+   dac 10
+   cla
+1:
+   add 10 i
+   isz c1
+   jmp 1b
+   sad sum
+   skp
+   jmp badcksum
+
+   lac buf+1
+   sad seq
+   skp
+   jmp badseq
+
+   -1
+   tad buf+2
+   cma
+   dac c1
+   law buf+3
+   dac 10
+1:
+   lac 10 i
+   jms putword
+   isz c1
+   jmp 1b
+
+   isz seq
+   lac buf
+   sma
+   jmp cloop
+   lac noc
+   sna
+   jmp 1f
+   dac 0f
+   lac fo
+   sys write; obuf; 0;..
+1:
+   lac fo
+   sys close
+   sys exit
+
+holcard: 0
+   jms rawcard
+   lac 1f
+   dac buf
+   lac 1f+1
+   dac buf+1
+   lac 1f+2
+   dac buf+2
+   lac 1f+3
+   dac buf+3
+   jmp holcard i
+1: <xx>;040040;040040;040040
+
+bincard: 0
+   jms rawcard
+   -24
+   dac c
+   law tbuf-1
+   dac 8
+   law buf-1
+   dac 9
+1:
+   lac 8 i
+   alss 6
+   dac 1f
+   lac 8 i
+   dac 1f+1
+   lac 8 i
+   dac 1f+2
+   lac 1f+1
+   lrss 6
+   xor 1f
+   dac 9 i
+   lac 1f+1
+   alss 12
+   xor 1f+2
+   dac 9 i
+   isz c
+   jmp 1b
+   jmp bincard i
+1: 0;0;0
+
+rawcard: 0
+   lac systime i
+   tad wtime
+   dac tmtime
+   -80
+   dac c
+   law tbuf-1
+   dac 8
+   crsb
+1:
+   dzm crread i
+2:
+   lac systime i
+   cma
+   tad tmtime
+   spa
+   jmp timeout
+   lac crread i
+   sna
+   jmp 2b
+   lac crchar i
+   dac 8 i
+   isz c
+   jmp 1b
+   law
+   dac 1f
+   isz 1f
+   jmp .-1
+   jmp rawcard i
+1: 0
+
+badcksum:
+   lac d1
+   sys write; m1; m1s
+   jms wait
+   jmp cloop
+
+badseq:
+   lac d1
+   sys write; m2; m2s
+   jms wait
+   jmp cloop
+
+notbin:
+   lac d1
+   sys write; m3; m3s
+   jms wait
+   cmp cloop
+
+timeout:
+   lac d1
+   sys write; m4; m4s
+   jms wait
+   jmp rawcard+1
+
+m1:
+  <ba>;<d 040; <ch>;<ec>;<ks>;<um>; 012
+m1s = .-m1
+
+m2:
+   <ba>;<d 040; <se>;<qu>;<en>;<ce>; 012
+m2s = .-m2
+
+m3:
+   <no>;<t 040; <bi>;<na>;<ry>; 012
+m3s = .-m3
+
+m4:
+  <ti>;<me>;<ou>;<t 012
+m4s = .-m4
+
+wait: 0
+   las
+   dac 2f
+1:
+   las
+   sad 2f
+   jmp 1b
+   and d1
+   sna
+   jmp wait i
+   sys save
+2: 0
+
+putword: 0
+   dac opt i
+   isz opt
+   isz noc
+   lac noc
+   sad d2048
+   skp
+   jmp putword i
+   lac fo
+   sys write; obuf; 2048
+   dzm noc
+   law obuf
+   dac opt
+   jmp putword i
+   jmp putword i
+
+d1: 1
+d2048: 2048
+d14: 14
+o500: 0500
+o700: 0700
+o12: 012
+wtime: 300
+c: .=.+1
+c1: .=.+1
+buf: .=.+100
+tbuf: .=.+80
+fo: .=.+1
+seq: .=.+1
+sum: .=.+1
+obuf: .=.+2048
+noc: .=.+1
+opt: .=.+1
+systime: .=.+1
+crread: .=.+1
+crchar: .=.+1
+tmtime: .=.+1
+
+crsb = 0706744
\ No newline at end of file