1
0
mirror of https://github.com/DoctorWkt/pdp7-unix.git synced 2026-04-25 03:44:41 +00:00

Now that the PDF files have been transcribed and scanned in, I've moved

copies of them over into the src/ area so that we can add comments and
make other changes, while keeping the original OCR'd ones intact.
This commit is contained in:
Warren Toomey
2016-02-29 06:40:15 +10:00
parent ab77e0c69c
commit 63223cfa7c
35 changed files with 11448 additions and 1 deletions

586
src/cmd/adm.s Normal file
View File

@@ -0,0 +1,586 @@
" 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
fmp 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

683
src/cmd/apr.s Normal file
View File

@@ -0,0 +1,683 @@
" apr
lac 017777 i
sad d4
jmp nofiles
lac 017777
tad d1
dac name
jms connect
sys time
llss 9
ecla llss 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;<%;67;0
jms gcard; <$;<*;<$;<r;<c;<d;<%;66;0
jms gcard; <$;<%;6;<s;<n;<u;<m;<b;<%;3;<7;<c
snumb:
<x;<x;<x;<,;<3;<1;<%;49;0
jms gcard; <$;<%;6;<i;<d;<e;<n;<t;<%;3;<m;<0;<1;<3;<0;<,
<m;<3;<2;<2;<,;<k;<e;<n;<%;48;0
jms gcard; <$;<%;6;<s;<e;<l;<e;<c;<t;<%;2;<k;<e;<n
</;<p;<r;<n;<o;<f;<f;<%;47;0
jms gcard; <$;<%;6;<l;<i;<m;<i;<t;<s;<%;2;<2;<,;<,;<,
<9;<0;<0;<0;<%;49;0
jms gcard; <$;<%;6;<d;<a;<t;<a;<%;4;<i;<*;<,;<,;<c;<o;<p;<y;<%;49;0
jmp 1f
floop:
lac fi
sys close
1:
law 041
jms putc
law 040
jms putc
law 044
jms putc
law040
jms putc
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
jmp loop
ferror:
lac name
dac 1f
lac d1
sys write; 1;..; 4
lac d1
sys write; 1f; 1
jmp floop1
1: 077012
loop:
dzm crflg
dzm col
law cbuf1-1
dac 8
-200
dac c
1:
dzm 8 i
isz c
jmp 1b
cloop:
jms getc
dac ch
sad o4
jmp pass2
sad o12
jmp pass2
sad o10
jmp bksp
sad o15
jmp cret
sad o40
jmp 1f
law cbuf1
tad col
dac t
lac t i
sza
jmp inb2
lac ch
dac t i
1:
isz col
jmp cloop
inb2:
law cbuf2
tad col
dac t
dac crflg
lac ch
dac t i
isz col
jmp cloop
bksp:
-1
tad col
spa
cla
dac col
jmp cloop
cret:
czm col
jmp cloop
pass2:
law cbuf1
p21:
dac t
dzm case
-100
dac c
dzm nblank
p2loop:
lac t i
sna
jmp blk
-1
tad nblank
spa
jmp 2f
cma
dac c1
1:
law 040
jms putc
isz c1
jmp 1b
dzm nblank
2:
law casetab
tad t i
dac t1
lac t1 i
sad case
jmp 1f
sad d2
jmp 1f
dac case
law 041
jms putc
law 041
jms putc
1:
lac t i
sad o44
jmp dol
sad o41
law 045
sad o77
law 0100
sad o134
law 0137 " ??
sad o137
law 055
sad o140
law 0134
sad o173
law 0133
sad o174
law 046
sad o175
law 0135
sad o176
law 0137 " ??
jms putc
jmp p2test
dol:
law 044
jms putc
law 044
jms putc
jmp p2test
blk:
isz nblank
p2test:
isz t
isz c
jmp p2loop
lac crflg
sna
jmp 1f
law 041
jms putc
law 060
jms putc
law 044
jms putc
law 040
jms putc
dzm crflg
law cbuf2
jmp p21
1:
law 044
jms putc
law 040
jms putc
lac ch
sad o4
jmp floop
jmp loop
getc: 0
lac ipt
sad eipt
jmp 1f
dac 2f
add o400000
dac ipt
ral
lac 2f i
szl
lrss 9
and o177
sna
jmp getc+1
jmp getc i
1:
lac fi
sys read; rbuf; 64
sna
jmp 1f
tad iipt
dac eipt
lac iipt
dac ipt
jmp getc+1
1:
lac o4
jmp getc i
hangup:
lac d1
sys write; m1; m1s
jmp stop
abort:
lac d1
sys write; m2; m2s
nofiles:
lac d1
sys write; m3; m3s
sys exit
discon:
lac d1
sys write; m4; m4s
jmp stop
m1:
<ha>;<ng>;<up>;012
m1s = .-m1
m2:
<ab>;<or>;<te>;<d 012
m2s = .-m2
m3:
<us>;<ag>;<e;<;;040;<ap>;<r 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
sys exit
ipt: 0
eipt: 0
iipt: rbuf
fi: 0
opt: tbuf
noc: 0
carrier: 0100000
ilock: 040000
totime: 300
disflg: 0
casetab:
2;2;2;2;2;2;2;2
2;2;2;2;2;2;2;2
2;2;2;2;2;2;2;2
2;2;2;2;2;2;2;2
2;1;2;2;2;0;0;2
2;2;2;2;2;0;2;2
2;2;2;2;2;2;2;2
2;2;2;2;2;2;2;1
0;0;0;0;0;0;0;0
0;0;0;0;0;0;0;0
0;0;0;0;0;0;0;0
0;0;0;0;0;0;2;1
2;1;1;1;1;1;1;1
1;1;1;1;1;1;1;1
1;1;1;1;1;1;1;1
1;1;1;1;1;1;1;1
gcard: 0
lac gcard i
isz gcard
sna
jmp gcard i
irss 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
done:
lac noc
sna
jmp 1f
sad d72
jmp 1f
law 040
jms putc
jmp done
1:
jms gcard; <$;<%;6;<e;<n;<d;<c;<o;<p;<y;<%;58;0
jms gcard; <$;<%;6;<s;<y;<s;<o;<u;<t;<%;2;<p;<*;<%;55;0
jms gcard; <$;<%;6;<e;<n;<d;<j;<o;<b;<%;59;0
-1
dac disflg
1:
jms gcard; <$;<*;<$;<d;<i;<s;<%;66;0
jmp 1b
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 d144
skp
jmp putc i
dzm noc
law tbuf
dac opt
law 0110
jms message; tbuf
jmp putc i
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
jms transcd
jms transcd
" 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 disflg
sna
jmp discon
jmp stop
transcd: 0
-72
dac c2
1:
lac 10 i
jms transch
isz c2
jmp 1b
-8
dac c2
1:
law 040
jms transch
isz c2
jmp 1b
jmp transch i
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
o60: 060
o122: 0122
d72: 72
o45: 045
o134: 0134
o140: 0140
o41: 041
o44: 044
o77: 077
o137: 0137
o173: 0173
o174: 0174
o175: 0175
o176: 0176
d128: 128
o400000: 0400000
o177: 0177
o2:d2: 2
o3: 3
d14: 14
d144: 144
o12: 012
d4:o4: 04
dm4: -4
o10: 010
o15: 015
o40: 040
crflg: .=.+1
col: .=.+1
t: .=.+1
t1: .=.+1
c: .=.+1
c1: .=.+1
c2: .=.+1
dpstat: .=.+1
dpread: .=.+1
dpwrite: .=.+1
dpchar: .=.+1
systime: .=.+1
opch: .=.+1
stsch: .=.+1
echoch: .=.+1
seqch: .=.+1
tbuf: .=.+144
rbuf: .=.+64
rctim: .=.+1
sum: .=.+1
ch: .=.+1
nblank: .=.+1
case: .=.+1
cbuf1: .=.+100
cbuf2: .=.+100
dpon = 0704701
dpof = 0704704
dpwc = 0704722
dpop = 0704764
dprs = 0704752

980
src/cmd/as.s Normal file
View File

@@ -0,0 +1,980 @@
" as
jms init1
assm1:
lac eofflg
sza
jmp assm2
lac passno
sza
jmp finis
jms init2
assm2:
jms gchar
sad d4
jmp assm1
sad d5
jmp assm1
lac char
dac savchr
jms gpair
lac rator
jms betwen; d1; d6
jmp assm3
jms expr
lac passno
sza
jms process
isz dot+1
nop
lac dot+1
and o17777
sad dot+1
jmp assm1
jms error; >>
dzm dot+1
jmp assm1
assm3:
lac rand
sad d2
jmp assm4
sza
jmp assm6
lac rator
sza
jmp assm6
lac rand+1
jms betwen; dm1; d10
jmp assm6
dac name
tad fbxp
dac lvrand
lac i lvrand
dac name+1
isz i lvrand
lac o146
dac name+2
dzm name+3
jms tlookup
-1
dac fbflg
assm4:
lac rand+1
tad d4
dac lvrand
lac rator
sza
jmp assm5
lac dot
dac r
lac dot+1
dac r+1
jmp 1f
assm5:
jms gpair
jms expr
1:
lac r
dac i lvrand
isz lvrand
lac r+1
dac i lvrand
lac fbflg
sna
jmp assm1
dzm fbflg
dzm name+1
lac o142
dac name+2
jms lookup
jmp assm4
assm6:
jms error; x>
jmp assm1
init1: 0
lac d1
sys write; 1f; 2f-1f
dzm passno
lac o56040
dac dot-4
lac o56056
dac cmflx-4
lac o40040
dac dot-3
dac dot-2
dac dot-1
dac cmflx-3
dac cmflx-2
dac cmflx-1
dzm iof
jms init
jmp i init1
1:
0111012
2:
init2: 0
lac d1
dac passno
sys write; 1f; 2f-1f
jms init
lac o17
sys creat; 2f
dac bfo
sys open; 2f; 0
dac bfi
dzm bufadd
jms copyz; buf; 64
jmp i init2
1:
0111111;012000
2:
0141056;0157165;0164040;040040
init: 0
lac i 017777
dac narg
lac 017777
tad d1
dac fname
-1
dac eofflg
jms ioinit
dzm savchr
dzm comflg
lac d1
dac dot
dzm dot+1
dzm cmflx
lac d4096
dac cmflx+1
dzm fbflg
jms copyz; fbxp: fbx; 10
jmp i init
finis:
lac iof
sys close
jms bufwr
lac bfi
sys close
lac bfo
sys close
-1
tad namsiz
cma
rcl
dac char
rcl
tad char
dac 1f
lac o17
sys creat; n.out
dac bfi
sys write; namlst; 1: 0
lac bfi
sys close
sys exit
n.out:
0156056;0157165;0164040;040040
process: 0
lac dot+1
dac lvrand
lac dot
sad d3
jmp proc4
sza
jmp proc1
-1
tad cmflx+1
cma
tad lvrand
dac lvrand
proc1:
lac lvrand
spa
jmp proc4
and o17700
sad bufadd
jmp proc2
jms bufwr
jms copyz; buf; 64
lac lyrand
and o17700
dac bufadd
dac 1f
lac bfi
sys seek; 1: 0; 0
spa
jmp proc2
lac bfi
sys read; buf; 64
proc2:
lac lyrand
and o77
jms betwen; dm1; maxsto
dac maxsto
tad bufp
dac lvrand
lac r
sna
jmp proc3
sad d3
jmp proc5
lac cmflx+1
tad r+1
dac r+1
proc3:
lac r+1
dac i lvrand
jmp i process
proc4:
jms error; .>
lac d1
dac dot
dzm dot+1
jmp skip
proc5:
jms error; u>
jmp proc3
bufwr: 0
lac bfo
sys seek; bufadd: 0; 0
isz maxsto
lac bfo
sys write; bufp: buf; maxstp: -1
-1
dac maxsto
jmp i bufwr
Xnumber: 0
dac 3f
lac d1000
dac 2f
1:
lac 3f
cll
idiv; 2: 0
dac 3f
lacq
tad o60
dac i 8
iac 2b
cll
idiv; 10
lacq
dac 2b
sza
jmp 1b
jmp i number
3: 0
getsc: 0
lac i getsc
dac sctalp
isz getsc
lac i sctalp
dac sctal
add o400000
dac i sctalp
ral
lac i sctal
szl
lrss 9
and o177
jmp i getsc
putsc: 0
and o177
lmq
lac i putsc
dac sctalp
isz putsc
lac i sctalp
dac sctal
add o400000
dac i sctalp
sma cla
jmp 1f
llss 27
dac i sctal
lrss 9
jmp i putsc
1:
lac i sctal
omq
dac i sctal
lacq
jmp i putsc
sctalp: 0
sctal: 0
betwen: 0
dac 2f
lac i betwen
dac 3f
isz betwen
lac i 3f
cma
tad 2f
spa
jmp 2f
lac i betwen
dac 3f
isz betwen
lac i 3f
cma
tad d1
tad 2f
spa
1:
isz betwen
lac 2f
jmp i betwen
2: 0
3: 0
copyz: 0
-1
tad i copyz
dac 8
isz copyz
lac i copyz
cma
tad d1
dac 2f
isz copyz
1:
dzm i 8
isz 2f
jmp 1b
jmp i copyz
2: 0
error: 0
lac passno
sza
jmp 1f
isz error
jmp i error
1:
-1
tad mesp
dac 8
lac i error
dac i 8
lac o40
dac i 8
lac rator
sad d5
jmp 1f
lac savchr
sad o12
jmp 1f
lac lineno
jmp 2f
1:
-1
tad lineno
2:
jms number
lac o12
dac i 8
-2
tad mesp
cma
tad 8
dac 1f
lac d1
sys write; mesp: mes; 1: 0
isz error
jmp i error
skip:
lac rator
sad d5
jmp assm1
1:
jms gchar
sad d5
jmp assm1
jmp 1b
ioinit: 0
jms copyz; iobuf; 64
lac iof
sys read; iobufp: iobuf; 64
sna
jms nextfil
lac iobufp
dac tal
-129
dac talc
jmp i ioinit
nextfil: 0
lac d1
dac lineno
lac iof
sza
sys close
nf1:
lac narg
sad d4
skp
jmp 1f
dzm eofflg
jmp i nextfil
1:
tad dm4
dac narg
lac fname
tad d4
dac fname
sys open; frame: 0; 0
dac iof
sma
lac passno
sna
jmp nextfil i
lac fname
dac 1f
lac d1
sys write; 1; 0; 4
lac iof
sma
jmp 1f
lac d1
sys write; emes; 2
sys exit
1:
lac d1
sys write; emes+1; 1
jmp i nextfil
emes:
040077;012000
gchar: 0
lac savchr
dzm savchr
sza
jmp gch3
lac eofflg
sza
jmp 1f
lac o12
jmp gch3
1:
isz talc
skp
jms ioinit
jms getsc; tal
sna
jmp gchar+1
sad o177
jmp gchar+1
sad o12
skp
jmp 1f
dzm comflc
isz lineno
1:
sad o42
dac comflc
dac char
lac comflc
sza
jmp gchar+1
lac char
gch3:
dac char
jms betwn; d0; o200
cla
tad lactab
dac .+1
lac 0
jmp i gchar
gsymb: 0
jms gchar
dac rator
tad jmpsw1
dac 1f
lac char
sad o74
jmp lqot
dac namc
jms gchar
lac char
sad o76
jmp rqot
dac savchr
lac namc
dac char
1:
jmp 0
jmpsw1:
jmp .+1
jmp i gsymb
jmp i gsymb
jmp i gsymb
jmp i gsymb
jmp gs1
jmp i gsymb
jmp gs2
jmp gs3
badchr:
jms error; g>
1:
jms gchar
lac char
sad o12
skp
jmp 1b
dac savchr
jmp gsymb+1
lqot:
jms gchar
lac o40
dac savchr
lac char
alss 9
jmp 1f
rqot:
lac namc
1:
dac rand+1
lac d7
dac rator
jmp i gsymb
gs1:
jms gchar
sad d4
jmp gs1
lac char
dac savchr
jmp i gsymb
gs2:
lac namep
dac tal1
-7
dac tal1c
lac char
jms putsc; tal1
gnam1:
jms gchar
jms betwen; d5; d8
jmp gnam3
lac char
jms putsc; tal1
isz tal1c
jmp gnam1
gnam2:
jms gchar
jms betwen; d5; d8
skp
jmp gnam2
lac char
dac savchr
jms lookup
jmp i gsymb
gnam3:
lac char
dac savchr
1:
lac o40
jms putsc; tal1
isz tal1c
jmp 1b
jms lookup
jmp i gsymb
gs3:
dzm rand+1
lac char
sad o60
jmp 1f
lac d10
jmp 2f
1:
lac d8
2:
dac num2
num1:
lac rand+1
cll
mul
num2: 0
lacq
tad char
tad dm48
dac rand+1
jms gchar
sad d7
jmp num1
lac char
dac savchr
lac rand+1
jms betwen; dm1; d10
jmp i gsymb
dac name
tad fbxp
dac name+1
lac i name+1
dac name+1
lac savchr
sad o146
jmp 1f
sad o142
skp
jmp i gsymb
dzm name+1
1:
dac name+2
dzm name+3
lac d6
dac rator
jms lookup
dzm savchr
jmp i gsymb
tlookup: 0
jmp 1f
lookup: 0
dzm tlookup
1:
-1
tad namlstp
dac 8
lac namsiz
dac namc
lu1:
lac i 8
sad name
jmp 1f
lac d5
lu2:
tad 8
dac 8
isz namc
jmp lu1
lac tlookup
sna
jmp 2f
lac fnamep
dac rand+1
jmp i tlookup
2:
lac name
dac i 8
lac 8
dac rand+1
lac name+1
dac i 8
lac name+2
dac i 8
lac name+3
dac i 8
lac d3
dac i 8
dzm i 8
-1
tad namsiz
dac namsiz
jmp i lookup
1:
lac i 8
sad name+1
jmp 1f
lac d4
jmp lu2
1:
lac i 8
sad name+2
jmp 1f
lac d3
jmp lu2
1:
lac i 8
sad name+3
jmp 1f
lac d2
jmp lu2
1:
-3
tad 8
dac rand+1
lac tlookup
sza
jmp i tlookup
jmp i lookup
namep: name
gpair: 0
jms gsymb
lac rator
sad d4
jmp gpair+1
jms betwen; dm1; d6
jmp gp1
dzm rand
dzm rand+1
jmp i gpair
gp1:
sad d7
lac d4
tad dm4
dac rand
jms gsymb
lac rator
sad d4
jmp gp2
jms betwen; dm1; d6
skp
jmp i gpair
jms error; x>
jmp skip
gp2:
jms gchar
jms betwen; d5; d8
jmp gp3
lac char
dac savchr
jmp i gpair
gp3:
lac char
dac savchr
jms gsymb
jmp i gpair
expr: 0
jms grand
-1
dac srand
exp5:
lac rand
dac r
lac rand+1
dac r+1
exp1:
lac rator
jms betwen; d1; d5
jmp exp3
dac orator
jms gpair
jms grand
lac orator
sad d4
jmp exp2
jms oper; rand
jmp exp1
exp2:
jms pickup
lac r
dac srand
lac r+1
dac srand+1
jmp expb
exp3:
sad d5
jmp exp4
jms error; x>
smp skip
exp4:
jms pickup
jmp i expr
pickup: 0
lac srand
spa
jmp i pickup
lac d4
jms oper; srand
jmp i pickup
grand: 0
lac rand
sad d2
skp
jmp i grand
lac rand+1
tad d4
dac rand+1
lac i rand+1
dac rand
isz rand+1
lac i rand+1
dac rand+1
jmp i grand
oper: 0
tad opsw
dac oper1
-1
tad i oper
dac 8
isz oper
lac r
sad d3
jmp oper2
lac i 8
sad d3
jmp oper2
oper1:
jmp 0
opsw:
jmp .-1
jmp oplus
jmp ominus
tad r
dac r
lac r+1
lmq
lac i 8
omq
jmp oret
oplus:
tad r
dac r
lac r+1
tad i 8
jmp oret
ominus:
cma
tad d1
tad r
dac r
-1
tad i 8
cma
tad r+1
oret:
dac r+1
lac r
jms betwen; dm1; d2
skp
jmp i oper
jms error; r>
lac d1
dac r
jmp i oper
oper2:
dac r
dzm r+1
jmp i oper
d0: 0
d1: 1
d4096: 4096
d2: 2
d3: 3
d4: 4
d5: 5
d6: 6
d7: 7
d8: 8
o12: d10: 10
dm1: -1
o40: 040
o60: 060
dm48: -48
o400000: 0400000
o177: 0177
dm4: -4
o200: 0200
o42: 042
o142: 0142
o40040: 040040
o56056: 056056
o56040: 056040
o146: 0146
o17777: 017777
d1000: 1000
o17: 017
o17700: 017700
o77: 077
o74: 074
o76: 076
namsiz: -2
namistp: namlst
fnamep: fakename
lactab: lac .+1
8;8;8;8;8;8;8;8
8;4;5;8;8;8;8;8
8;8;8;8;8;8;8;8
8;8;8;8;8;8;8;8
4;8;8;8;8;8;8;8
8;8;6;2;4;3;6;8
7;7;7;7;7;7;7;7
7;7;0;5;8;1;8;8
8;6;6;6;6;6;6;6
6;6;6;6;6;6;6;6
6;6;6;6;6;6;6;6
6;6;6;8;8;8;8;8
8;6;6;6;6;6;6;6
6;6;6;6;6;6;6;6
6;6;6;6;6;6;6;6
6;6;6;8;8;8;8;8
fbflg: .=.+1
tal: .=.+1
talc: .=.+1
tal1: .=.+1
tal1c: .=.+1
narg: .=.+1
lvrand: .=.+1
eofflg: .=.+1
namc: .=.+1
passno: .=.+1
char: .=.+1
savchr: .=.+1
comflg: .=.+1
rator: .=.+1
orator: .=.+1
rand: .=.+2
srand: .=.+2
r: .=.+2
name: .=.+4
buf: .=.+64
iobuf: .=.+64
fbx: .=.+10
mes: .=.+20
iof: .=.+1
bfi: .=.+1
bfo: .=.+1
lineno: .=.+1
fakename: .=.+6
namlst:
.=.+4
dot:
.=.+6
cmflx:

288
src/cmd/bc.s Normal file
View File

@@ -0,0 +1,288 @@
" bc
jmp start
rinit:
jms initio
jmp .+1 i
initio: 0
lac inter-1
dac fetch
jmp rinit
jms inter
inter: 0
las
and o17
sza
jms trace
lac pc i
dac instr
lac pc
and o10000
sna
jmp badpc
lac sp
and o17700
sad o17700
jmp badsp
and o10000
sna
jmp badsp
lac instr
sad insasg
skp
jmp inter i
-4
tad sp
dac t1
lac t1 i
and o10000
sna
jmp badasgn
lac instr
jmp inter i
trace: 0
and d1
sza
jms dtrace
las
and d2
sza
jms ddisp
las
and d4
sza
jms histog
las
and d8
sza
jmp stop
jmp trace i
itrace: 0
lac pc
dac 8
lac 8 i
dac instr
lac 8
jms octal; -4
law 040
jms putc
lac instr
cll; lrs 14
tad lacop
dac .+1
lac ..
jms putc
law 040
jms putc
lac instr
jms octal; -4
lac instr
sad inslitr
skp
jmp 1f
law 040
jms putc
lac 8 i
jms octal; -6
1:
law 012
jms putc
jms flush
jmp dtrace i
ddisp: 0
jms dspinit
lac dspbp
dac 8
lac dp
sad olddp
skp
jms dspblk
lac pc
jms dspnt
lac sp
jms dspnt
lac lastv
jms dspnt
-1
dac B i
lac pbs i
sza
jmp .-2
jmp ddisp i
dspblk: 0
lac dspbuf
dac 8
lac dp
dac t1
dzm t2
1:
lac t1
sna
jmp 1f
lac o216000 " dx -20
dac 8 i
lac t2
tad o20
dac t2
lac t1
tad d1
dac t3
lac t3 i
jms dspnt
lac t1 i
dac t1
jmp 1b
1:
lac o160020 " sx 20
tad t2
dac dspbuf i
dac 8 i
lac 8
dac dspbp
jmp dspblk i
dspnt: 0
and o7777
lrss 2
xor o164000 " sy 0
dac 8 i
lac o17010
dac 8 i
jmp dspnt i
dspinit: 0
-1
tad dspinit
dac dspinit
-300
tad lastv
dac lastv
dac dspbuf
-1
dac dspinit i
dac dspbuf i
dzm olddp
lac dspbuf
sys capt
law 13
sys sysloc
dac pbs
jmp dspinit i
histog: 0
jms hisinit
lac pc
lrs 6
and o77
tad histbuf
dac t1
isz t1 i
jmp histog i
jmp .
hisinit: 0
-1
tad hisinit
dac hisinit
-1
dac hisinit i
-64
dac t1
tad lastv
dac lastv
dac histbuf
tad dm1
dac 8
1:
dsm 8 i
isz t1
jmp 1b
jmp hisinit i
histbuf: 0
olddp: 0
dspbuf: 0
dspbp: 0
instr: 0
obs: 0
inslitr: n 5
insasg: b 1
o17: 017
d8: 8
o77: 077
o10000: 010000
d5: 5
o60: 060
o7777: 07777
o216000: 0216000
o160020: 0160020
o20: 020
o164000: 0164000
o17010: 017010
o17700: 017700
d2: 2
lacop: lac .
a>;b>;c>;f>;n>;s>;t>;u>;x>;y>
badpc:
jms flush
lac d1
sys write; mpc; mpcs
jmp stop
badsp:
jms flush
lac d1
sys write; msp; msps
jmp stop
badasgn:
jms flush
lac d1
sys write; mas; mass
jmp stop
mpc:
012;<pc>;012
mpcs = .-mpc
msp:
012;<sp>;012
msps = .-msp
mas:
012;<as>;012
mass = .-mas
octal: 0
lmq
lac d5
tad octal i
cma
dac 2f
sna
jmp 3f
1:
llss 3
isz 2f
jmp 1b
3:
lac octal i
dac 2f
lacq
dac 2f+1
1:
lac 2f+1
lmq
ecla llss 3
tad o60
jms putc
lac 2f+1
alss 3
dac 2f+1
isz 2f
jmp 1b
isz octal
jmp octal i
2: 0;0

433
src/cmd/bi.s Normal file
View File

@@ -0,0 +1,433 @@
" bi
start:
jms initio
-1
tad .main
dac pc
fetch:
lac pc i
imq
and o17777
dac addr
ecla lls 4
tad .+3
dac .+1
jmp .. i
jmp . i
autop; binop; consop; ifop; etcop; setop; traop
unaop; extop; aryop
ifop:
-2
tad sp
dac sp
lac sp i
dac t1
lac t1 i
sza
jmp fetch
-1
tad addr i
dac pc
jmp fetch
autop:
lac addr
tad dp
dac sp i
isz sp
isz sp
jmp fetch
binop:
-2
tad sp
dac sp
tad dm1
dac t4
tad dm1
dac t3
lac t3 i
dac t1
lac sp i
dac t2
lac t4
dac t3 i
lac addr
tad .+3
dac .+1
jmp .. i
jmp . i
basg; bor; band; beq; bne; ble; blt; bge; bgt; brsh; blsh
badd; bmin; bmod; bmul; bdiv
basg:
lac t2 i
dac t1 i
dac t4 i
jmp fetch
bor:
lac t1 i
lmq
lac t2 i
omq
dac t4 i
jmp fetch
band:
lac t2 i
and t2 i
dac t4 i
jmp fetch
beq:
lac t1 i
xor t2 i
sna cla
lac d1
dac t4 i
jmp fetch
bne:
lac t1 i
xor t2 i
sza
lac d1
dac t4 i
jmp fetch
ble:
lac t2 i
cma
tad t1 i
spa cla
lac d1
dac t4 i
jmp fetch
blt:
lac t1 i
cma
tad t2 i
sma cla
lac d1
dac t4 i
jmp fetch
bge:
lac t1 i
cma
tad t2 i
spa cla
lac d1
dac t4 i
jmp fetch
bgt:
lac t2 i
cma
tad t1 i
sma cla
lac d1
dac t4 i
jmp fetch
brsh:
blsh:
hlt
badd:
lac t1 i
tad t2 i
dac t4 i
jmp fetch
bmin:
lac t1 i
cma
tad t2 i
cma
dac t4 i
jmp fetch
bmod:
lac t2 i
dac .+4
lac t1 i
cll; idiv; ..
dac t4 i
jmp fetch
bmul:
lac t2 i
dac .+4
lac t1 i
cll; mul; ..
lacq
dac t4 i
jmp fetch
bdiv:
lac t2 i
dac .+4
lac t1 i
cll; idiv; ..
lacq
dac t4 i
jmp fetch
consop:
lac sp
tad d1
dac sp i
isz sp
iac addr
dac sp i
isz sp
jmp fetch
etcop:
lac addr
tad .+3
dac .+1
jmp .. i
jmp . i
mcall; mark; call; vector; litrl; goto; retrn; escp
mcall:
-2
tad sp
dac t1
lac t1 i
dac t2
-1
tad t2 i
imq
lac dp
dac t1 i
lac t1
dac dp
isz t1
iac pc
dac t1 i
lacq
dac pc
jmp fetch
mark:
-1
tad sp
dac t2
tad dm1
dac t1
lac t1 i
dac t3
lac t3 i
dac t2 i
lac ap
dac t1 i
lac t1
dac ap
jmp fetch
call:
lac ap
tad d1
dac 8
dac 9
1:
lac 8 i
dac t1
lac t1 i
dac 9 i
isz 8
-1
tad sp
sad B
skp
jmp 1b
lac ap i
img
lac dp
dac ap i
lac ap
dac dp
isz ap
-1
tad ap i
dac t1
lac pc
dac ap i
lacq
dac ap
lac t1
dac pc
jmp fetch
vector:
-2
tad sp
dac sp
tad dm2
dac t1
lac sp i
dac t2
lac t1 i
dac t3
lac t3 i
tad t2 i
dac t1 i
jmp fetch
litrl:
lac sp
tad d1
dac sp i
isz sp
lac pc i
dac sp i
isz sp
jmp fetch
goto:
-2
tad sp
dac sp
lac sp i
dac t1
-1
tad t1 i
dac pc
jmp fetch
retrn:
-2
tad sp
dac sp
lac sp i
dac t1
lac t1 i
lmq
lac dp
dac sp
dac t1
lac sp i
sna
jmp stop
dac dp
isz sp
lac sp
dac t1 i
lac sp i
dac pc
lacq
dac sp i
isz sp
jmp fetch
escp:
law 2
tad pc
dac t1
jmp t1 i
setop:
lac addr
tad dp
dac sp
jmp fetch
traop:
-1
tad addr
dac pc
jmp fetch
unaop:
-1
tad sp
dac t3
tad dm1
dac t2
lac t2 i
dac t1
lac t3
dac t2 i
lac addr
tad .+3
dac .+1
jmp .. i
jmp . i
uadr; umin; uind; unot
badr:
lac t1
dac t3 i
jmp fetch
bmin:
-1
tad t1 i
cma
dac t3 i
jmp fetch
bind:
lac t1 i
dac t2 i
jmp fetch
bnot:
lac t1 i
sna cla
lac d1
dac t3 i
jmp fetch
extop:
lac addr
dac sp i
isz sp
isz sp
jmp fetch
aryop:
lac addr
tad dp
dac t1
tad d1
dac t1 i
jmp fetch
a = 040000
b = a+a
c = b+a
f = c+a
n = f+a
s = n+a
t = s+a
u = t+a
x = u+a
f = x+a
d1: 1
dm1: -1
dm2: -2
o17777: 017777
:1: 0
:2: 0
:3: 0
:4: 0
:ddr: 0
pc = 017
sp: stack
dp: stack
ip: stack
stack: 0

194
src/cmd/bl.s Normal file
View File

@@ -0,0 +1,194 @@
" bl
jmp start
.array: .+1
s 2
n 8
n 7
-1
tad sp i
cma
tad lastv
dac lastv
imq
lac sp
tad d1
dac sp i
isz sp
lacq
dac sp i
isz sp
jmp fetch
.read: .+1
s 2
n 8
n 7
lac sp
tad d1
dac sp i
isz sp
jms getc
dac sp i
isz sp
jmp fetch
.write: .+1
s 2
n 8
n 7
lac sp i
dac t1
lrss 9
jms putc
lac t1
jms putc
jmp fetch
.flush: .+1
n 8
n 7
jms flush
jmp fetch
getc: 0
lac iflg
dzm iflg
sza
jmp getc i
lac cibufp
sad eibufp
jmp 1f
lac cibufp i
and o777
dac iflg
lac cibufp i
isz cibufp
lrss 9
jmp getc i
1:
lac .fin
sys read; ibufp: ..; 64
sna spa
jmp 1f
tad ibufp
dac eibufp
lac ibufp
dac cibufp
jmp getc+1
1:
lac 0o4
jmp getc i
putc: 0
and 0777
sna
jmp putc i
imq
lac oflg
sza
jmp 1f
lacq
alss 9
dac cobufp i
dac oflg
jmp putc i
1:
lac cobufp i
omq
dac cobufp i
dac cobufp i
dzm oflg
isz cobufp
lac cobufp
sad eobufp
skp
jmp putc i
lac .fout
sys write; obufp: ..; 64
lac obufp
dac cobufp
jmp putc i
stop:
jms flush
las
sma
sys save
sys exit
flush: 0
lac oflg
sza
isz cobufp
lac cobufp
cma
tad obufp
cma
sna
jmp flush i
dac 1f+1
lac obufp
dac 1f
lac .fout
sys write; 1: :.; ..
lac obufp
dac cobufp
dzm oflg
jmp flush i
initio: 0
lac 017777 i
sad d4
jmp 2f
sad d8
jmp 1f
law 9
tad 017777
dac .+3
law 017
sys creat; ..
spa
jmp stop
dac .fout
1:
law 5
tad 017777
dac .+2
sys open; ..; 0
spa
jmp stop
dac .fin
2:
lac lastv
dac eibufp
dac cibufp
-64
tad lastv
dac lastv
dac ibufp
lac lastv
dac eobufp
-64
tad lastv
dac lastv
dac obufp
dac cobufp
dzm oflg
jmp initio i
.fin: 0
.fout: 1
eibufp: 0
cibufp: 0
iflg: 0
eobufp: 0
cobufp: 0
oflg: 0
lastv: 017770
o777: 0777
d4:o4: 4
d8: 8

1059
src/cmd/cas.s Normal file

File diff suppressed because it is too large Load Diff

326
src/cmd/check.s Normal file
View File

@@ -0,0 +1,326 @@
" check
lac d1
sys sysloc
dac iget
lac d2
sys sysloc
dac inode
lac d4
sys sysloc
dac nxfblk
tad d1
dac nfblks
tad d1
dac fblks
lac d5
sys sysloc
dac copy
lac d6
sys sysloc
dac copyz
lac d7
sys sysloc
dac betwen
lac d8
sys sysloc
dac dskrd
lac d10
sys sysloc
dac dskbuf
dac dskbuf1
dzm indircnt
dzm icnt
dzm licnt
dzm blcnt
dzm curi
jms coopyz i; usetab; 500
iloop:
isz curi
-3400
tad curi
sma
jmp part2
lac curi
jms iget i
jms copy i; inode: 0; linode; 12
lac iflags
sma
jmp iloop
isz icnt
lac iflags
and o40
sza
jmp iloop
law idskps
dac t1
-7
dac t2
1:
lac i t1
sza
jms dupchech
isz t1
isz t2
jmp 1b
lac iflags
and o200000
sna
jmp iloop
isz licnt
law idskps
dac t1
-7
dac t2
1:
lac i t1
sna
jmp 3f
jms dskrd i
jms copy i; dskbuf: 0; ldskbuf; 64
isz indircnt
law ldskbuf
dac t3
-64
dac t4
2:
lac i t3
sza
jms dupcheck
isz t3
isz t4
jmp 2b
3:
isz t1
isz t2
jmp 1b
jmp iloop
dupcheck: 0
isz blcnt
jms betwen i d709; d6400
jmp badadr
dac t5
lrss 4
tad usetabp
dac t6
cla
llss 4
tad alsscom
dac 2f
lac d1
2: alss 0
dac bit
lac i t6
and bit
sza
jmp dup
lac i t6
xor bit
dac i t6
xor bit
dac i t6
jmp i dupcheck
badadr:
jms print
lac d1
sys write; badmes; 3
jmp i dupcheck
badmes:
< b>;<ad>;<r 012
dup:
lac t5
jms print
lac d1
sys write; dupmes; 3
lac curi
jms print
lac d1
sys write; dupmes+3; 1
jmp i dupcheck
dupmes:
< d>;<up>; 040; 012
print: 0
lmq
law prbuf-1
dac 8
-6
dac t6
1:
cla
llss 3
tad o60
dac i 8
isz t6
jmp 1b
lac d1
sys write; prbuf; 6
jmp i print
part2:
lac icnt
jmp print
lac d1
sys write; m3; m3s
lac licnt
jms print
lac d1
sys write; m4; m4s
lac indircnt
jms print
dac d1
sys write; m5; m5s
lac blcnt
jms print
lac d1
sys write; m6; m6s
dzm blcnt
-1
tad nfblks i
cma
sma
jmp 2f
dac t1
lac fblks
dac t2
1:
lac i t2
jms dupcheck
isz t2
isz t1
jmp 1b
2:
lac nxfblk i
1:
sna
jmp part3
dac t1
jms dupcheck
lac t1
jms dskrd i
jms copy i; dskbuf1: 0; ldskbuf; 64
law ldskbuf
dac t1
-9
dac t2
2:
isz t1
lac i t1
jms dupcheck
isz t2
jmp 2b
lac ldskbuf
jmp 1b
part3:
lac blcnt
jms print
lac d1
sys write; m7; m7s
lac d709
dac t1
1:
isz t1
lac t1
sad d6400
sys exit
lrss 4
tad usetabp
dac t2
cla
llss 4
tad alsscom
dac 2f
lac d1
2: alss 0
dac bit
lac i t2
and bit
sza
jmp 1b
lac t1
jms print
lac d1
sys write; m8; m8s
jmp 1b
d1: 1
d2: 2
d4: 4
d5: 5
d6: 6
d7: 7
d8: 8
d10: 10
o60: 060
o400000: 0400000
o400001: 0400001
o40: 040
o200000: 0200000
alsscom: alss 0
d709: 709
d6400: 6400
m3:
040;<fi>;<le>;<s 012
m3s = .-m3
m4:
040;<la>;<rg>;<e 012
m4s = .-m4
m5:
040;<in>;<di>;<r 012
m5s = .-m5
m6:
040;<us>;<ed>;012
m6s = .-m6
m7:
040;<fr>;<ee>;012
m7s = .-m7
m8:
040;<mi>;<ss>;<in>;<g 012
m8s = .-m8
usetabp: usetab
curi: 0
bit: 0
blcnt: 0
indircnt: 0
icnt: 0
licnt: 0
t1: 0
t2: 0
t3: 0
t4: 0
t5: 0
t6: 0
iget: 0
nxfblk: 0
nfblks: 0
fblks: 0
copy: 0
copyz: 0
betwen: 0
dskrd: 0
ldskbuf: .=.+64
linode: .=.+12
iflags = linode
idskps = iflags+1
usetab: .=.+500
prbuf: .=.+6

77
src/cmd/chmod.s Normal file
View File

@@ -0,0 +1,77 @@
" chmode
lac 017777 i
sad d4
jmp error
lac 017777
tad d4
dac 8
tad d1
dac name
dzm octal
dzm nchar
-8
dac c1
1:
lac nchar
dzm nchar
sza
jmp 2f
lac 8 i
lmq
and o177
dac nchar
lacq
lrss 9
2:
sad o40
jmp 3f
tad om60
lmq
lac octal
cll; als 3
omq
dac octal
3:
isz c1
jmp 1b
loop:
lac 017777 i
sad d8
sys exit
tad dm4
dac 017777 i
lac name
tad d4
dac name
lac octal
sys chmode; name:0
sma
jmp loop
lac name
dac 1f
lac d1
sys write; 1:0; 4
lac d1
sys write; 1f; 2
jmp loop
1:
040;077012
error:
lac d1
sys write; 1b+1; 1
sys exit
om60: -060
o40: 040
d1: 1
d8: 8
dm4: -4
d4: 4
o177: 0177
nchar: .=.+1
c1: .=.+1
octal: .=.+1

View File

@@ -73,4 +73,4 @@ o177: 0177
nchar: .=.+1
c1: .=.+1
octal: .-.+1
octal: .=.+1

41
src/cmd/chrm.s Normal file
View File

@@ -0,0 +1,41 @@
" chrm
lac 017777
tad d5
dac 1f
dac 2f
lac 017777 i
sad d4
sys exit
tad dm4
dac 017777 i
sys chdir; dd
sys chdir; 1;0
1:
lac 017777 i
sad d4
sys exit
tad dm4
dac 017777 i
lac 2f
tad d4
dac 2f
sys unlink; 2:0
sma
jmp 1b
lac 2b
dac 2f
lac d1
sys write; 2:0; 4
lac d1
sys write; 1f; 2
jmp 1b
1:
040077;012000
dd:
<dd>;040040;040040;040040
d1: 1
d4: 4
d5: 5
dm4: -4

97
src/cmd/cp.s Normal file
View File

@@ -0,0 +1,97 @@
" cp
lac 017777
tad d1
dac name2
loop:
lac 017777 i
sad d4
sys exit
sad d8
jmp unbal
tad dm8
dac 017777 i
lac name2
tad d4
dac name1
tad d4
dac name2
sys open; name1: 0; 0
spa
jmp error
lac o17
sys creat; name2: 0
spa
jmp error
dzm nin
1:
lac bufp
tad nin
dac 0f
-1
tad nin
cma
tad d1024
dac 0f+1
lac d2
sys read; 0:..;..
sna
jmp 2f
tad nin
dac nin
sad d1024
jmp 2f
jmp 1b
2:
lac nin
dac 2f
lac d3
sys write; buf; 2: 0
dzm nin
lac 2b
sad d1024
jmp 1b
lac d2
sys close
lac d3
sys close
jmp loop
error:
lac name1
dac 1f
lac d1
sys write; 1: 0; 4
lac d1
sys write; mes; 1
lac name2
dac 1f
lac d1
sys write; 1: 0; 4
lac d1
sys write; mes; 2
jmp loop
mes:
040000;077012
unbal:
lac name2
tad d4
dac 1f
lac d1
sys write; 1: 0; 4
lac d1
sys write; mes; 2
sys exit
d1: 1
d4: 4
d8: 8
o17: 017
dm8: -8
d3: 3
d1024: 1024
nin: 0
bufp: buf
d2: 2
buf:

1217
src/cmd/db.s Normal file

File diff suppressed because it is too large Load Diff

256
src/cmd/dmabs.s Normal file
View File

@@ -0,0 +1,256 @@
" dmabs
lac o17
sys creat; punout
spa
sys save
dac fo
lac 017777
tad d1
dac name
jms space
100
loop:
dzm oldsum
lac initcmd
dac comand
lac i 017777
sad d4
jmp stop
tad dm4
dac i 017777
lac name
tad d4
dac name
dump1:
lac comand
xor dactra
dac tracmd
dump2:
sys open; name: 0; 0
spa
jmp opnerr
dac fi
-bootsiz
dac c1
law boot-1
dac 8
1:
lac i 8
jms put
isz c1
jmp 1b
lac bootcmd
lrs 12
jms put1
lac bootcmd
lrs 6
jms put1
lac bootcmd
and o77
xor o300
jms put2
jms space
3
dump3:
-1
tad bufp
dac 8
-64
dac c1
1:
dzm i 8
isz c1
jmp 1b
lac fi
sys read; bufp: buf; 64
sna
jmp done
dac count
-1
tad bufp
dac 8
-64
dac c1
cla
1:
add i 8
isz c1
jmp 1b
sna
jmp dump4
dac newsum
lac comand
jms put
lac count
jms put
lac oldsum
add comand
add count
jms put
lac newsum
dac oldsum
jms space
3
-1
tad bufp
dac 8
-1
tad count
cma
dac c1
1:
lac i 8
jms put
isz c1
jmp 1b
jms space
10
dump4:
lac comand
tad count
dac comand
jmp dump3
done:
lac tracmd
jms put
cla
jms put
lac oldsum
add tracmd
jms put
jms space
20
lac fi
sys close
jmp loop
stop:
cla
jms put
jms space
100
sys exit
space: 0
-1
tad i space
cma
dac c1
isz space
1:
lac o400
jms put2
isz c1
jmp 1b
jmp i space
put: 0
dac 1f
lrs 12
jms put1
lac 1f
lrs 6
jms put1
lac 1f
jms put1
jmp i put
1:0
put1:0
and o77
xor o200
jms put2
jmp i put1
put2: 0
dac 1f
lac fo
sys write; 1f; 1
jmp i put2
1: 0
boot:
org = 017740
2:
jms get1-boot+org
dac cmd-boot+org
jms get1-boot+org
cma
dac cnt-boot+org
jms get2-boot+org
xor sum-boot+org
dzm sum-boot+org
cla cll sza
hlt
isz cnt-boot+org
1:
jms get1-boot+org
cmd: 0
isz cmd-boot+org
isz cnt-boot+org
jmp 1b-boot+org
jmp 2b-boot+org
get1: 0
jms get2-boot+org
dac get2-boot+org
add sum-boot+org
dac sum-boot+org
lac get2-boot+org
jmp i get1-boot+org
get2: 0
iot 0144
1:
iot 0101
jmp 1b-boot+org
iot 0112
jmp i get2-boot+org
sum: 0
cnt = sum+1
bootsiz = .-boot
bootcmd: jmp org
opnerr:
lac name
dac 1f
lac d1
sys write; 1: 0; 4
lac d1
sys write; mes; 2
jmp loop
mes:
040;077012
comand: 0
tracmd: 0
d1: 1
.17777: 017777
o77: 077
o200: 0200
o300: 0300
d4: 4
d64: 64
dm4: -4
o400: 0400
punout: <pp>;<to>;<ut>;040040
o17: 017
fi: 0
fo: 0
count: 0
oldsum: 0
newsum: 0
daccmd: dac
dactra: dac jmp
initcmd: dac 0
c1: 0
buf:
iot = 0700000

501
src/cmd/ds.s Normal file
View File

@@ -0,0 +1,501 @@
" ds
lac 017777 i
sad d8
skp
sys exit
lac 017777
tad d5
dac .+3
law 017
sys creat; ..
dac fo
law 017
sys creat; scrname
spa; jms error
dac fso
sys open; scrname; 0
spa; jms error
dac fsi
sys chdir; dd
spa; jms error
lac d1
sys write; pass1; 1
law fsobuf
dac fsopt
dzm nfiles
law fbuf
dac filp
dzm ndirs
law dbuf
dac dirp
dzm fsloc
sys open; dotdot; 0
spa; jms error
dac fd
jms readdir; dotdot
law statbuf
sys status; dotdot; dotdot
spa; jms error
lac statbuf+12 " i index
dac dirp i
isz dirp
-1
tad nfiles
cma
dac ddfiles
law fbuf
dac ddfilp
loop:
-1
tad ndirs
cma
dac c1
law dbuf
dac i1
1:
isz i1
lac i1 i
sad ddfilp i
jmp 2f
isz i1
isz c1
jmp 1b
lac ddfilp
tad i1
dac i1
lac i1 i
dac .+3
lac fsi
sys seek; ..; 0
lac fsi
sys read; scrname; 4
law statbuf
sys status; dotdot; scrname
spa; jms error
lac statbuf+0 " flags
and o20
sna
jmp 2f
sys open; scrname; 0
spa; jms error
dac fd
jms readdir; scrname
lac ddfilp i
dac dirp i
isz dirp
2:
isz ddfilp
isz ddfilp
isz ddfiles
jmp loop
" output phase
lac fso
sys write; fsobuf; 64
lac d1
sys write; pass2; 2
-500
dac c1
1:
law dbuf+2
dac i1
dzm fflg
law fbuf
dac i2
r1
tad nfiles
cma
dac c2
2:
lac c1
tad d501
sad i2 i
skp
jmp 3f
-1
tad i1
dac i3
iac i3 i
dac c3
law fbuf
dac i3
0:
lac i3 i
sad c3
jmp 0f
isz i3
isz i3
jmp 0b
0:
lac i3
tad d1
dac c3
lac c3 i
dac .+3
lac fsi
sys seek; ..; 0
lac fsi
sys read; scrname; 4
lac i2
tad d1
dac c3
lac c3 i
dac .+3
lac fsi
sys seek; ..; 0
lac fsi
sys read; dd; 4
lac fflg
sza
jmp 0f
lac nlinkt
sad nlinka
skp
jms fishy
dzm nlinka
law 012
jms putc
law statbuf
sys status; scrname; dd
spa; jms error
-1
tad statbuf+9
cma
dac nlinkt
-1
dac fflg
jms longout
law 012
jms putc
0:
isz nlinka
jms putname; scrname
jms putname; dd
law 012
jms putc
3:
isz i2
isz i2
lac i2
sad i1 i
skp
jmp .+3
isz i1
isz i1
isz c2
jmp 2b
isz c1
jmp 1b
lac nlinkt
sad nlinka
skp
jms fishy
sys chdir; system
jmp done
fishy: 0
jms asters
jms asters
law 012
jms putc
lac d1
sys write; 1f; 1
jmp fishy i
1: 052012
nlinka: 0
nlinkt: 0
asters: 0
-10
dac c
1:
law 052
jms putc
isz c
jmp 1b
jmp asters i
longout: 0
lac statbuf+12 " i
jms octal; -3
lac statbuf+0 " flags
jms octal; -2
lac statbuf+8 " uid
jms octal; -2
-1
tad statbuf+9 " nlinks
cma
jms octal; -2
lac statbuf+10
jms octal; -5
jmp longout i
readdir: 0
law 012
jms putc
law 012
jms putc
jms asters
lac readdir i
dac 5f
dac .+2
jms putname; ..
jms asters
law 012
jms putc
law 012
jms putc
isz readdir
isz ndirs
lac filp
dac dirp i
isz dirp
0:
jms copyz; buf; 64
lac fd
sys read; buf; 64
spa; jms error
sna
jmp 4f
-8
dac c1
law buf
dac i1
1:
lac i1 i
sna
jmp 3f
isz nfiles
dac filp i
isz filp
lac fsloc
dac filp i
tad d4
dac fsloc
isz filp
lac i1
tad d1
dac .+4
law statbuf
sys status; 5:..; ..
spa; jms error
jms longout
lac i1
tad d1
dac .+2
jms putname; ..
law 012
jms putc
lac i1
dac 8
lac 8 i
dac fsopt i
isz fsopt
lac 8 i
dac fsopt i
isz fsopt
lac 8 i
dac fsopt i
isz fsopt
lac 8 i
dac fsopt i
isz fsopt
law fsobuf+64
sad fsopt
skp
jmp 3f
lac fso
sys write; fsobuf; 64
law fsobuf
dac fsopt
3:
law 8
tad i1
dac i1
isz c1
jmp 1b
jmp 0b
4:
lac fd
sys close
jmp readdir i
putname: 0
-1
tad putname i
dac 8
-4
dac c
1:
lac 8 i
lrss 9
jms putc
llss 9
jms putc
isz c
jmp 1b
isz putname
jmp putname i
octal: 0
lmq
lac d5
tad octal i
cma
dac c
1:
llss 3
isz c
jmp 1b
lac octal i
dac c
1:
ecla llss 3
tad o60
jms putc
isz c
jmp 1b
law 040
jms putc
isz octal
jmp octal i
error: 0
-1
tad error
hlt
sys save
copyz: 0
-1
tad copyz i
dac 8
isz copyz
-1
tad copyz i
cma
dac 2f
isz copyz
1:
dzm 8 i
isz 2f
jmp 1b
jmp copyz i
2: 0
done:
lac noc
sna
sys exit
and d1
sna cla
jmp 1f
jms putc
jmp done
1:
lac noc
rcr
dac 1f
lac fo
sys write; obuf; 1;..
sys exit
putc: 0
and o177
dac 2f+1
lac opt
dac 2f
add o400000
dac opt
spa
jmp 1f
lac 2f i
xor 2f+1
jmp 3f
1:
lac 2f+1
alss 9
3:
dac 2f i
isz noc
lac noc
sad d128
skp
jmp putc i
lac fo
sys write; obuf; 64
lac iopt
dac opt
dzm noc
jmp putc i
2: 0;0
opt: obuf
iopt: obuf
noc: 0
fo: 1
d1: 1
o177: 0177
o400000: 0400000
d128: 128
d4: 4
d5: 5
d8: 8
o60: 060
o20: 020
d501: 501
dd:
<dd>; 040040; 040040; 040040
dotdot:
056056; 040040; 040040; 040040
system:
<sy>;<st>;<em>; 040040
scrname:
<*s>;<rc>;040040;040040
pass2:
<i
pass1:
<i 012
fso: .=.+1
fsi: .=.+1
fsloc: .=.+1
nfiles: .=.+1
fflg: .=.+1
buf: .=.+64
obuf: .=.+64
fd: .=.+1
filp: .=.+1
ddfilp: .=.+1
ddfiles: .=.+1
statbuf: .=.+13
c: .=.+1
i1: .=.+1
i2: .=.+1
i3: .=.+1
c1: .=.+1
c2: .=.+1
c3: .=.+1
ndirs: .=.+1
dirp: .=.+1
fsopt: .=.+1
fsobuf: .=.+64
dbuf: .=.+100
fbuf:

78
src/cmd/dskio.s Normal file
View File

@@ -0,0 +1,78 @@
" dskio
dskrd0: 0
dzm side
jms dskio; 02000
jmp i dskrd0
dskwr0: 0
dzm side
jms dskio; 03000
jmp i dskwr0
dskrd1: 0
lmq
lac o200000
dac side
lacq
jms dskio; 02000
jmp i dskrd1
dskwr1: 0
lmq
lac o200000
dac side
lacq
jms dskio; 03000
jmp i dskwr1
iskio: 0
cll; idiv; 80
dac 2f
lacq
idiv; 10
dac 3f
lls 22
xor 3f
als 8
dac 3f
lac 2f
idiv; 10
dac 2f
lls 22
xor 2f
xor 3f
xor side
dac 2f
-10
dac 3f
1:
dscs
-640
dslw
lac dskbufp
dslm
lac 2f
dsld
lac dskio i
dsls
dssf
jmp .-1
dsrs
sma
jmp 1f
isz 3f
jmp 1b
hlt
1:
isz dskio
jmp i dskio
2: 0
3: 0
o200000: 0200000
dskbufp: dskbuf
side: .=.+1
dskbuf: .=.+640

26
src/cmd/dskres.s Normal file
View File

@@ -0,0 +1,26 @@
" dskres
iof
hlt
dzm track
-640
dac c1
1:
lac track
jms dskrd0
lac track
jms dskwr1
lac track
tad d10
dac track
isz c1
jmp 1b
hlt
sys exit
track: 0
c1: 0
d10: 10

26
src/cmd/dsksav.s Normal file
View File

@@ -0,0 +1,26 @@
" dsksav
iof
hlt
dzm track
-640
dac c1
1:
lac track
jms dskrd1
lac track
jms dskwr0
lac track
tad d10
dac track
isz c1
jmp 1b
hlt
sys exit
track: 0
c1: 0
d10: 10

37
src/cmd/dsw.s Normal file
View File

@@ -0,0 +1,37 @@
" dsw
lac djmp
dac .-1
oas cla
oma
tad d1
dac t1
sys open; dd; 0
1:
lac d2
sys read; dir; 8
sna
sys exit
lac dir
sna
jmp 1b
isz t1
jmp 1b
wr:
lac d1
sys write; dir+1; 4
lac d1
sys write; o12; 1
sys save
io:
sys unlink; dir+1
sys exit
d1: 1
d2: 2
o12: 012
t1: 0
djmp: jmp do
dd: 056056;040040;040040;040040
dir: .=.+8

771
src/cmd/ed1.s Normal file
View File

@@ -0,0 +1,771 @@
"** 08-rest.pdf page 8
"[handwritten page number top right of scan - 1]
" ed1
lac d1
sys write; 1f; 3
lac o17
sys creat; tname
spa
sys save
dac sfo
sys open; tname; 0
spa
sys save
dac sfi
-1
tad lnodp
dac zermp
tad d1
dac zerop
dac dot
tad d1
dac eofp
dzm i eofp
dzm i zerop
dzm lastre
dzm fbuf
lac d1
dac dskadr
dac wrlfg
dzm diskin
"o------------> [scan markup]
jmp advanc
1:
<ed>; <it>; 012
advanc:
jms rline
lac linep
dac tal
dzm adrflg
jms addres
jmp comand
-1
dac adrflg
lac addr
dac addr1
dac addr2
1:
lac char
sad o54
jmp 2f
sad o73
skp
jmp chkwrp
lac addr
dac dot
2:
jms addres
jmp error
lac addr2
dac addr1
lac addr
dac addr2
jmp 1b
"** 08-rest.pdf page 9
"[handwritten page number top right of scan - 2]
chkwrp:
-1
tad addr1
jms betwen; d1; addr2
jmp error
comand:
lac char
sad o141
jmp ca
sad o143
jmp cc
sad o144
jmp cd
sad o160
jmp cp
sad o161
jmp cq
sad o162
jmp cr
sad o163
jmp cs
sad o167
jmp cw
sad o12
jmp cnl
sad o75
jmp ceq
jmp error
ca:
jms newline
jms setfl
lac addr2
dac dot
ca1:
jms rline
lac line
sad o56012
jmp advanc
jms append
jmp ca1
cc: cd:
jms newline
jms setdd
lac addr1
sad zerop
jmp error
dac dot
tad dm1
dac 9
lac addr2
dac 8
2:
lac i 8
dac i 9
sza
jmp 2b
"??? illegible line cut off - dac 0, lac 0, something else???
"** 08-rest.pdf page 10
"[handwritten page number top right of scan - 3]
dac eofp
lac char
sad o144
jmp advanc
-1
tad dot
dac dot
jmp ca1
cp:
jms newline
cp1:
jms setdd
lac addr1
sad zerop
jmp error
1:
lac addr1
dac dot
lac i addr1
jms gline
dac 2f
lac d1
sys write; line; 2: 0
lac addr1
sad addr1
jmp advanc
tad d1
dac addr1
jmp 1b
cq:
jms newline
lac adrflg
sza
jmp error
sys exit
cr:
jms setfl
lac addr2
dac dot
jms rname
"------------> [scan markup]
sys open; fbuf; 0
spa
jmp error
dac tfi
lac linep
dac tal
dzm num
1:
lac tfi
sys read; tbuf; 64
sza
jmp 2f
lac tfi
sys close
jms number
jmp advanc
2:
"??? illegible line cut off - cma, sma, something else?
"** 08-rest.pdf page 11
"[handwritten page number top right of scan - 4]
tad d1
rcl
dac c1
lac tbufp
dac tal1
2:
jms getsc; tal1
sna
jmp 3f
jms putsc; tal
isz num
sad o12
skp
jmp 3f
lac tal
add o400000
and o17777
cma
tad linep
cma
dac linsiz
jms append
lac linep
dac tal
3:
isz c1
jmp 2b
jmp 1b
cw:
jms setfl
lac i addr1
sna
jmp error
jms rname
lac o17
sys creat; fbuf
spa
jmp error
dac tfi
-128
dac c2
lac tbufp
dac tal1
dzm num
1:
lac i addr1
jms gline
rcl
cma
tad d1
dac c1
lac linep
dac tal
2:
jms getsc; tal
sna
jmp 3f
isz num
jmp putsc; tal1
isz c2 "???
"** 08-rest.pdf page 12
"[handwritten page number top right of scan - 5]
jmp 3f
lac tfi
sys write; tbuf; 64
-128
dac c2
lac tbufp
dac tal1
3:
isz c1
jmp 2b
lac addr1
sad addr2
jmp 1f
isz addr1
jmp 1b
1:
lac tal1
sma cla
jmp 1f
jms putsc; tal1
1:
-1
tad tufp
cma
tad tal1
dac 1f
lac tfi
sys write; tbuf; 1: 0
lac tfi
sys close
jms number
jmp advanc
cn1:
lac adrflg
sna
jmp 1f
lac addr2
dac addr1
jmp cp1
1:
lac dot
tad d1
sad eofp
jmp error
dac dot
jmp cp1
ceq:
jms newline
jms setfl
lac addr2
dac dot
cma
tad zerop
cma
dac num
jms number
jmp advanc
setdd: 0
"** 08-rest.pdf page 13
"[handwritten page number top right of scan - 6]
lac adrflg
sza
jmp i setdd
lac dot
dac addr1
dac addr2
jmp i setdd
setfl: 0
lac adrflg
sza
jmp i setfl
lac zerop
tad d1
dac addr1
-1
tad eofp
dac addr2
jmp i setfl
newline: 0
jms getsc; tal
sad o12
jmp i newline
jmp error
addres: 0
dzm minflg "..) [stray scan mark?]
-1
dac addr
ad1:
jms getsc; tal
ad2:
jms betwen; d47; d56
skp
jmp numb
sad o40 "[o40 circled in scan]
jmp ad1 "[hand drawn check mark follows operand in scan]
sad o11
jmp ad1 "[hand drawn check mark follows operand in scan]
"[check mark underlined in scan]
sad o55
jmp amin "[hand drawn check mark follows operand in scan]
sad o56
jmp adot "[hand drawn check mark follows operand in scan]
sad o53
jmp ad1 "[hand drawn check mark follows operand in scan]
sad o44
jmp adol "[hand drawn check mark follows operand in scan]
sad o57
jmp fsrch "[hand drawn check mark follows operand in scan]
sad o77
jmp bsrch "[hand drawn check mark follows operand in scan]
dac char
lac minflg
sza
jmp error
lac addr
sma
isz addres
jmp i addres
"** 08-rest.pdf page 14
"[handwritten page number top right of scan - 7]
adot:
lac minflg
sza
jmp error
lac addr
sma
jmp error
lac dot
dac addr
jmp ad1
adol:
lac minflg
sza
jmp error
lac addr
sma
jmp error
-1
tad eofp
dac addr
jmp ad1
amin:
-1
dac minflg
jmp ad1
numb:
dac char
sad o60
jmp 1f
lac d10
jmp 2f
1:
lac d8
2:
dac 2f
dzm num
1:
lac num
cll; mul; 2: 0
lacq
tad char
tad dm48
dac num
jms getsc; tal
dac char
jms betwen; d47; d58
skp
jmp 1b
lac minflg
sna
jmp 1f
-1
tad num
cma
dac num
dzm minflg
1:
lac addr
"** 08-rest.pdf page 15
"[handwritten page number top right of scan - 8]
spa
lac zerop
tad num
dac addr
jms betwen; zermp; eofp
jmp error
lac char
jmp ad2
number: 0
lac d100000
dac n1
law tbuf-1
dac 8
n0:
lac num
cll; idiv; n1: 0
dac num
lacq
tad d48
dac i 8
lac n1
cll; idiv; 10
lacq
dac n1
sza
jmp n0
lac o12
dac i 8
law tbuf-1
dac 8
dac 9
-5
dac n1
n2:
lac i 8
sad d48
skp
jmp n3
dzm i 9
isz n1
jmp n2
n3:
lac d1
sys write; tbuf; 7
jmp i number
rname: 0
lac fbufp
dac tal1
-8
dac c1
1:
jms getsc; tal
sad o40
jmp 1b
sad o12
jmp 1f
jms putsc; tal1
isz c1
jmp 1b
"** 08-rest.pdf page 16
"[handwritten page number top right of scan - 9]
jmp i rname
1:
lac tal1
sad fbufp
skp
jmp 1f
lac fbuf
sna
jmp error
jmp i rname
1:
lac o40
jms putsc; tal1
isz c1
jmp 1b
jmp i rname
gline: 0
dac glint1
jms getdsk
lac glint1 " [these 6 lines were surrounded by a box
adn o17777 " that was Xed out with an arrow pointing to it]:
tad dskbfp " --
dac ital "|\/|
lac linep "|/\|<---
dac otal " --
1:
lac ital
sad edskbfp
skp
jmp 2f
lac diskin
tad d1024
jms getdsk
lac dskbfp
dac ital
2:
jms getsc; ital
jms putsc; otal
sad o12
skp
jmp 1b
lac otal
sma
jmp 1f
cla
jms putsc; otal
1:
lac linpm1
cma
tad otal
jmp i gline
rline: 0
lac linep
dac tal
1:
cla
sys read; char; 1
lac char
"** 08-rest.pdf page 17
"[handwritten page number top right of scan - 10]
lrss 9
jms esc
lac char
and o777
jms esc
jmp 1b
esc: 0
sna
jmp i esc
jms putsc; tal
sad o12
jmp 2f
sad o100
jmp 1f
sad o43
skp
jmp i esc
-1
tad tal
dac tal
and o17777
sad linpm1
jmp 1f
jmp i esc
1:
lac linep
dac tal
jmp i esc
2:
lac tal
sma cla
jmp 1f
jms putsc; tal
1:
-1
tad linep
cma
tad tal
dac linsiz
jmp i rline
getsc: 0
lac i getsc
dac sctalp
isz getsc
lac i sctalp
dac sctal
add o400000
dac i sctal
ral
lac i sctal
szl
lrss 9
and o777
jmp i getsc
putsc: 0
and o777
"** 08-rest.pdf page 18
"[handwritten page number top right of scan - 11]
lmq
lac i putsc
dac sctalp
isz putsc
lac i sctalp
dac sctal
add o400000
dac i sctalp
sma cla
jmp 1f
llss 27
dac i sctal
lrss 9
jmp i putsc
1:
lac i sctal
and o777000
omq
dac i sctal
lacq
jmp i putsc
append: 0
-1
tad eofp
dac 8
cma
tad dot
dac apt1
1:
lac i 8
dac i 8
-3
tad 8
dac 8
isz apt1
jmp 1b
isz eofp
dzm i eofp
isz dot
jms addline
jmp i append
addline: 0
lac dskadr
dac i dot
jms getdsk "[line crossed out - scan markup]
-1
tad linsiz
cma
dac apt1
law line-1
dac 8
lac dskadr "[line crossed out - scan markup]
and o1777 "[line crossed out - scan markup]
tad dskbfp "[line crossed out - scan markup]
dac otal "[line crossed out - scan markup]
lac dskadr "[line crossed out - scan markup]
tad linsiz "[line crossed out - scan markup]
dac dskadr "[line crossed out - scan markup]
"** 08-rest.pdf page 19
"[handwritten page number top right of scan - 12]
1:
lac otal " [these 9 lines were surrounded by a box
sad edskbfp " that was Xed out]:
skp " --
jmp 2f "|\/|
lac diskin "|/\|
tad d1024 " --
jms getdsk "
lac dskbfp "
dac otal "
2: "[line crossed out - scan markup]
lac i 8
dac i otal "[line crossed out and a note that looks like *jms prtwrd*]
isz otal
dzm wrflg "[line crossed out - scan markup]
isz apt1
jmp 1b
jmp i addline
getdsk: 0 "[the entire getdsk procedure was surrounded
and o776000 " by a box that was Xed out]:
sad diskin " --
jmp i getdsk "|\/|
dac 2f "|/\|
lac wrflg " --
sza "
jmp 3f "
lac diskin "
dac 1f "
lac sfo "
sys seek; 1: 0; 0 "
lac sfo "
sys write; dskbuf; 1024 "
lac d1 "
dac wrflg "
3: "
lac 2f "
dac diskin "
lac sfi "
sys seek; 2: 0; 0 "
spa "
jmp i getdsk "
lac sfi "
sys read; dskbuf; 1024 "
jmp i getdsk "
betwen: 0
dac bett1
lac i betwen
dac bett2
isz betwen
lac i bett2
cma
tad bett1
spa
jmp 1f
lac i betwen
dac bett2
isz betwen
-1
tad i bett2
"** 08-rest.pdf page 20
"[handwritten page number top right of scan - 13]
cma
tad bett1
spa
1:
isz betwen
lac bett1
jmp i betwen
error:
lac d1
sys write; 1f; 1
jmp advanc
1:
077012

519
src/cmd/ed2.s Normal file
View File

@@ -0,0 +1,519 @@
"** 08-rest.pdf page 21
"[handwritten page number top right of scan - 14]
" ed2
cs:
jsm getsc; tal
sad o40
jmp cs
sad o12
jmp error
dac delim
jms compile
lac tbufp
dac tal1
1:
jms getsc; tal
sad delim
jmp 1f
sad o12
jmp error
jms putsc; tal1
jmp 1b
1:
lac o12
jms putsc; tal1
jms newline
jms setdd
lac addr1
sad zerop
jmp error
1:
dac addr1
lac i addr1
jms execute
jmp 2f
lac addr1
dac dot
law line-1
dac 8
law nlist-1
dac 9
-64
dac c1
3:
lac i 8
dac i 9
isz c1
jmp 3b
-1
tad fchrno
dac linsiz
rcr
szl
xor o400000
tad linep
dac tal1 "???
lac tbufp
dac tal
3:
jms getsc; tal
sad o12
jmp 3f
jms putsc; tal1
isz linsiz "???
"** 08-rest.pdf page 22
"[handwritten page number top right of scan - 15]
jmp 3b
3:
-1
tad lcrhno
rcr
szl
xor o400000
tad nlistp
dac tal
3:
jms getsc; tal
jms putsc; tal1
isz linsiz
sad o12
skp
jmp 3b
jms addline
2:
lac addr1
sad addr2
jmp advanc
tad d1
jmp 1b
fsrch:
dac delim
jms compile
jms srcsav
lac dot
floop:
tad d1
dac addr
lac i addr
sza
jmp 1f
lac zerop
dac addr
jmp 2f
1:
jms execute
jmp 2f
jms srcres
jmp ad1
2:
lac addr
sad dot
jmp error
jmp floop
bsrch:
dac delim
jms compile
jms srcsav
lac dot
dad zerop
lac eofp
bloop:
tad dm1
dac addr
lac i addr
"** 08-rest.pdf page 23
"[handwritten page number top right of scan - 16]
sza
jmp 1f
lac eofp
dac addr
jmp 2f
1:
jms execute
jmp 2f
jms srcres
jmp ad1
2:
lac addr
sad dot
jmp error
jmp bloop
srcsav: 0
lac minflg
sza
jmp error
lac addr
sma
jmp error
law line-1
dac 8
law tbuf-1
dac 9
-64
dac c1
1:
lac i 8
dac i 9
isz c1
jmp 1b
jmp i srcsav
srcres: 0
law tbuf-1
dac 8
law line-1
dac 9
-64
dac c1
1:
lac i 8
dac i 9
isz c1
jmp 1b
jmp i srcres
compile: 0
law compbuf-1
dac 8
dzm prev
dzm compflg
cadvanc:
jms getsc; tal
sad delim
jmp cdone
dac compflg "???
"** 08-rest.pdf page 24
"[handwritten page number top right of scan - 17]
dzm lastre
sad o12
jmp error
"sad o133
"jmp chrcls
sad o136 "???
jmp beglin
sad o44
jmp endlin
"sad o52
"jmp clsure
dac 1f
jmp comp
1; jms matchar; 1: 0; 0
jmp cadvanc
cdone:
lac compflg
sna
jmp 1f
dac lastre
jms comp
1; jms found; 0
jmp i compile
1: "???
lac lastre
sna
jmp error
jmp i compile
chrcls:
jmp error
beglin: "???
jms comp
1; jms matbol; 0
dzm prev
jmp cadvanc
endlin: "???
jms comp
1; jms mateol; 0
dzm prev
jmp cadvanc
clsure:
lac prev
sna
jmp error
tad d1
dac 1f
jms comp
1; jms matclo; 1: 0; 0
dzm prev
jmp cadvanc
comp: 0 "???
-1
tad comp
dac 9
lac 8 "???
"** 08-rest.pdf page 25
"[handwritten page number top right of scan - 18]
dac prev
1: "???
lac i 9
sna
jmp i 9
dac i 8
jmp 1b
execute: 0
jms gline
lac linep
dac tal1
dzm charno
dzm fchrno
dzm lchrno
lac jmpclist
dac trvect
lac jmpnlist
dac trvect+1
lac jmpxchg
dac i trvect+1
jmp 1f
exchg: "???
lacq
sad o12
jmp i execute
lac jmpxchg
dac i 8
1: "???
lac trvect
lmq
lac trvect+1
dac trvect
lacq
dac trvect+1
tad dm1
dac 8
jms getsc; tal1
lmq
isz charno
jms compbuf
charno:
0
trvect:
0;0
matchar: 0 "???
-2
tad matchar
dac exret
lac i exret
dac exret
lacq
sad i matchar
skp
jmp 1f
lac matchar
adn o17777
tad jms1
dac i 8 "??? [unreadable page cutoff]
"** 08-rest.pdf page 26
"[handwritten page number top right of scan - 19]
lac i exret
dac i 8
1: "???
isz exret
jmp i exret
found: 0
-2
tad found
dac exret
lac i exret
dac exret
lac fchrno
sza
jmp 1f
isz execute
jmp 2f
1: "???
sad i exret
jmp 1f
cma
tad i exret
spa
jmp 2f
jmp 3f
1: "???
lac charno
cma
tad charno
spa
jmp 3f
2: "???
lac i exret
dac fchrno
lac charno
dac lchrno
3: "???
isz exret
jmp i exret
matbol: 0 "???
lac charno
sad d1
jmp 1f
lac matbol
jmp 2f
1: "???
lac matbol
jmp 3f
mateol: 0 "???
lacq
sad o12
jmp 1f
lac mateol
2: "???
tad dm2
dac exret
lac i exret
dac 9
"??? [line is cut off in scan, maybe lac i 8 or jmp i 9]
"** 08-rest.pdf page 27
"[handwritten page number top right of scan - 20]
1: "???
lac mateol
3: "???
tad dm3
dac 9
lac i 9
isz 9
dac i 9
jmp i 9
matclo: 0 "???
-2
tad matclo
dac exret
lac i exret
dac cloret
lac i cloret
dac 1f
dac 2f
lac i matclo
dac exret
jms i exret; 1: 0
isz matclo
jms i matclo; 2: 0
isz cloret
jmp i cloret
"??? the remainder of this scan had an unreadable first character
"??? I did the best I could to recreate the characters appropriately
o1: 1
o133: 0133
dm3: -3
o136: 0136
dm2: -2
o52: 052
o57: 057
o77: 077
o40: 040
o12: 012
d47: 47
d58: 58
dm48: -48
d10: 10
d8: 8
d48: o60: 060
d100000: 100000
o44: 044
o53: 053
o56: 056
o55: 055
o11: 011
o400000: 0400000
o17777: 017777
o144: 0144
dm1: -1
o56012: 056012
o777: 0777
o100: 0100
o43: 043
o777000: 0777000
o75: 075
o167: 0167
o161: 0161
"** 08-rest.pdf page 28
"[handwritten page number top right of scan - 21]
o160: 0160
o143: 0143
o141: 0141
o1777: 01777
d1024: 1024
o776000: 0776000
o162: 0162
o163: 0163
o73: 073
o54: 054
o17: 017
tname:
0145056;0164155;0160040;040040
tbufp: tbuf
linep: line
nlistp: nlist
fbufp: fbuf
dskbfp: dskbuf "[line crossed out - scan markup]
edskbfp: dskbuf+1024 "[line crossed out - scan markup]
lnodp: lnodes
linpm1: line-1
jmpclist: jmp clist
jmpnlist: jmp nlist
jmpxchg: jmp xchg
jms1: jms 1
tal: .=.+1
exret: .=.+1
cloret: .=.+1
delim: .=.+1
prev: .=.+1
compflg: .=.+1
tal1: .=.+1
c1: .=.+1
ital: .=.+1
otal: .=.+1
diskin: .=.+1
glint: .=.+1
c2: .=.+1
num: .=.+1
zermp: .=.+1
minflg: .=.+1
adrflg: .=.+1
dot: .=.+1
addr: .=.+1
addr1: .=.+1
addr2: .=.+1
eofp: .=.+1
zerop: .=.+1
dskadr: .=.+1
linsiz: .=.+1
tfi: .=.+1
fchrno: .=.+1
lchrno: .=.+1
lastre: .=.+1
bett1: .=.+1
bett2: .=.+1
wrflg: .=.+1
apt1: .=.+1
"[page cuts off one label]
"** 08-rest.pdf page 29
"[handwritten page number top right of scan - 22]
sfo: .=.+1
sctal: .=.+1
sctalp: .=.+1
char: .=.+1
fbuf: .=.+4 "not sure if this is fbuf, but
tbuf: .=.+64 "there is a write; tbuf; 64 call
line: .=.+64
nlist: .=.+50
"??? ?list: .=.+50, unable to determine label
compbuf: .=.+100
dskbuf: .=.+1 "[line crossed out - scan markup]
lnodes: .=.+1000

26
src/cmd/ind.b Normal file
View File

@@ -0,0 +1,26 @@
main $(
extrn read, write;
auto i, c, state, line 100;
loop:
state = i = 0;
loop1:
c = read();
if(c==4) return;
if(c==';' & state==0) state = 2;
if((c<'0' ^ c>'9'&c<'a' ^ c>'z') & state==0) state = 1;
line[i] = c;
i = i+1;
if(c!=012) goto loop1;
if(state==2 ^ i==1) goto noi;
write(' ');
write(' ');
noi:
i = 0;
loop3:
c = line[i];
write(c);
i = i+1;
if(c!=012) goto loop3;
goto loop;
$)

291
src/cmd/init.s Normal file
View File

@@ -0,0 +1,291 @@
" init
-1
sys intrp
jms init1
jms init2
1:
sys rmes
sad pid1
jmp 1f
sad pid2
jms init2
jmp 1
1:
jms init1
jmp 1
init1: 0
sys fork
jmp 1f
sys open; ttyin; 0
sys open; ttyout; 1
jmp login
1:
dac pid1
jmp init1 i
init2: 0
sys fork
jmp 1f
sys open; keybd; 0
sys open; displ; 1
jmp login
1:
dac pid2
jmp init2 i
login:
-1
sys intrp
sys open; password; 0
lac d1
sys write; m1; m1s
jms rline
lac ebufp
dac tal
1:
jms gline
law ibuf-1
dac 8
law obuf-1
dac 9
2:
lac 8 i
sac o12
lac o72
sad 9 i
skp
jmp 1b
sad o72
skp
jmp 2b
lac 9 i
sad o72
jmp 1f
-1
tad 9
dac 9
lac d1
sys write; m3; m3s
jms rline
law ibuf-1
dac 8
2:
lac 8 i
sad o12
lac o72
sad 9 i
skp
jmp error
sad o72
skp
jmp 2b
1:
dzm nchar
law dir-1
dac 8
1:
lac 9 i
sad o72
jmp 1f
dac char
lac nchar
sza
jmp 2f
lac char
alss 9
xor o40
dac 8 i
dac nchar
jmp 1b
2:
lac 8
dac nchar
lac nchar i
and o777000
xor char
dac nchar i
dzm nchar
jmp 1b
1:
dzm nchar
1:
lac 9 i
sad o12
jmp 2f
tad om60
lmq
lac nchar
cll; als 3
omq
dac nchar
jmp 1b
2:
lac nchar
sys setuid
sys chdir; dd
sys chdir; dir
lac d2
sys close
sys open; sh; 0
sma
jmp 1f
sys link; system; sh; sh
spa
jmp error
sys open; sh; 0
spa
jmp error
sys unlink; sh
1:
law 017700
dac 9
law boot-1
dac 8
1:
lac 8 i
dac 9 i
sza
jmp 1b
jmp 017701
boot:
lac d2
lmq
sys read; 4096; 07700
lacq
sys close
jmp 4096
0
rline: 0
law ibuf-1
dac 8
1:
cla
sys read; char; 1
lac char
lrss 9
sad o100
jmp rline+1
sad o43
jmp 2f
dac 8 i
sad o12
jmp rline i
jmp 1b
2:
law ibuf-1
sad 8
jmp 1b
-1
tad 8
dac 8
jmp 1b
gline: 0
law obuf-1
dac 8
1:
jms gchar
dac 8 i
sad o12
jmp gline i
jmp 1b
gchar: 0
lac tal
sad ebufp
jmp 1f
ral
lac tal i
snl
lrss 9
and o777
lmq
lac tal
add o400000
dac tal
lacq
sna
jmp gchar+1
jmp gchar i
1:
lac bufp
dac tal
1:
dzm tal i
isz tal
lac tal
sad ebufp
skp
jmp 1b
lac bufp
dac tal
lac d2
sys tead; buf; 64
sna
jmp error
jmp gchar+1
error:
lac d1
sys write; m2; m2s
lac d1
sys smes
sys exit
m1:
012; <lo>;<gi>;<n;<:;<
m1s = .-m1
m2:
<?; 012
m2s = .-m2
m3:
<pa>;<ss>;<wo>;<rd>;<: 040
m3s = .-m3
dd:
<dd>;040040;040040;040040
dir:
040040;040040;040040;040040
ttyin:
<tt>;<yi>;<n 040;040040
ttyout:
<tt>;<yo>;<ut>; 040040
keybd:
<ke>;<yb>;<oa>;<rd>
displ:
<di>;<sp>;<la>;<y 040
sh:
<sh>; 040040;040040;040040
system:
<sy>;<st>;<em>; 040040
password:
<pa>;<ss>;<wo>;<rd>
d1: 1
o43: 043
o100: 0100
o400000; 0400000
d2: 2
o12: 012
om60: -060
d3: 3
ebufp: buf+64
bufp: buf
o777: 0777
o777000: 0777000
o40: 040
o72: 072
ibuf: .=.+100
obuf: .=.+100
tal: .=.+1
buf: .=.+64
char: .=.+1
nchar: .=.+1
pid1: .=.+1
pid2: .=.+1

20
src/cmd/lease.b Normal file
View File

@@ -0,0 +1,20 @@
main $(
auto ch;
extrn read, write;
goto loop;
while (ch != 04)
$( if (ch > 0100 & ch < 0133)
ch = ch + 040;
if (ch==015) goto loop;
if (ch==014) goto loop;
if (ch==011)
$( ch = 040040;
write(040040);
write(040040);
$)
write(ch);
loop:
ch = read()&0177;
$)
$)