From 69f28986ad97c1e3d55279d696d1884c963f530e Mon Sep 17 00:00:00 2001 From: Ken Thompson Date: Tue, 30 Jun 1970 05:00:00 -0500 Subject: [PATCH] Research PDP7 development Work on file cas.s Work on file bl.s Work on file as.s Work on file s3.s Work on file dsksav.s Work on file s7.s Work on file trysys.s Work on file chmod.s Work on file s2.s Work on file apr.s Work on file ald.s Work on file cp.s Work on file dmabs.s Work on file bc.s Work on file check.s Work on file ed1.s Work on file sop.s Work on file s1.s Work on file chrm.s Work on file sysmap Work on file dsw.s Work on file bi.s Work on file init.s Work on file chown.s Work on file s4.s Work on file dskres.s Work on file cat.s Work on file s9.s Work on file adm.s Work on file s5.s Work on file ds.s Work on file lcase.b Work on file ed2.s Work on file dskio.s Work on file s6.s Work on file maksys.s Work on file db.s Work on file ind.b Work on file scope.v Work on file s8.s Co-Authored-By: Dennis Ritchie Synthesized-from: pdp7-unix/scans --- adm.s | 586 ++++++++++++++++++++++++++ ald.s | 250 +++++++++++ apr.s | 690 +++++++++++++++++++++++++++++++ as.s | 980 +++++++++++++++++++++++++++++++++++++++++++ bc.s | 288 +++++++++++++ bi.s | 433 +++++++++++++++++++ bl.s | 194 +++++++++ cas.s | 1042 ++++++++++++++++++++++++++++++++++++++++++++++ cat.s | 145 +++++++ check.s | 324 +++++++++++++++ chmod.s | 77 ++++ chown.s | 78 ++++ chrm.s | 41 ++ cp.s | 97 +++++ db.s | 1217 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ dmabs.s | 256 ++++++++++++ ds.s | 501 ++++++++++++++++++++++ dskio.s | 78 ++++ dskres.s | 26 ++ dsksav.s | 26 ++ dsw.s | 37 ++ ed1.s | 758 ++++++++++++++++++++++++++++++++++ ed2.s | 510 +++++++++++++++++++++++ ind.b | 26 ++ init.s | 291 +++++++++++++ lcase.b | 20 + maksys.s | 51 +++ s1.s | 193 +++++++++ s2.s | 328 +++++++++++++++ s3.s | 347 ++++++++++++++++ s4.s | 334 +++++++++++++++ s5.s | 273 ++++++++++++ s6.s | 344 +++++++++++++++ s7.s | 350 ++++++++++++++++ s8.s | 208 ++++++++++ s9.s | 112 +++++ scope.v | 861 ++++++++++++++++++++++++++++++++++++++ sop.s | 95 +++++ sysmap | 259 ++++++++++++ trysys.s | 39 ++ 40 files changed, 12765 insertions(+) create mode 100644 adm.s create mode 100644 ald.s create mode 100644 apr.s create mode 100644 as.s create mode 100644 bc.s create mode 100644 bi.s create mode 100644 bl.s create mode 100644 cas.s create mode 100644 cat.s create mode 100644 check.s create mode 100644 chmod.s create mode 100644 chown.s create mode 100644 chrm.s create mode 100644 cp.s create mode 100644 db.s create mode 100644 dmabs.s create mode 100644 ds.s create mode 100644 dskio.s create mode 100644 dskres.s create mode 100644 dsksav.s create mode 100644 dsw.s create mode 100644 ed1.s create mode 100644 ed2.s create mode 100644 ind.b create mode 100644 init.s create mode 100644 lcase.b create mode 100644 maksys.s create mode 100644 s1.s create mode 100644 s2.s create mode 100644 s3.s create mode 100644 s4.s create mode 100644 s5.s create mode 100644 s6.s create mode 100644 s7.s create mode 100644 s8.s create mode 100644 s9.s create mode 100644 scope.v create mode 100644 sop.s create mode 100644 sysmap create mode 100644 trysys.s diff --git a/adm.s b/adm.s new file mode 100644 index 0000000000..c78e67bc6c --- /dev/null +++ b/adm.s @@ -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;;;;012 +m2s = .-m1 +m2: + ;;;;;;;;;;040;;040;;;;;;;;;;;;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;;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: + ;;;;; 012 +m1s = .-m1 + +m2: + ;;;;; 012 +m2s = .-m2 + +m3: + ;;;; 012 +m3s = .-m3 + +m4: + ;;;div; 5 +" "jmp tab +" "jmp ell + 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: + dzm 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 + jmp stop + +nofiles: + lac d1 + sys write; m3; m3s + sys exit + +discon: + lac d1 + sys write; m4; m4s + jmp stop + +m1: + ;;;012 +m1s = .-m1 +m2: + ;;;;;;;;;;040;;040;;;;;;;;;;;;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 " 2: both cases + +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 - 100 case + 0;0;0;0;0;0;0;0 " 1 - 200 case + 0;0;0;0;0;0;0;0 " 2 - 300 case + 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 "circled with 3f written in and to the right: + lrss 9 "3: lac noc + sad o45 "sna + jmp 1f "jmp gcard i + jms putc "sad d80 + jmp gcard+1 "jmp gcard i +1: "law 040 + -1 "jms putc + tad gcard i "jmp 3b + 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;> + 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 nextfil + 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 lvrand + and o17700 + dac bufadd + dac 1f + lac bfi + sys seek; 1: 0; 0 + spa + jmp proc2 + lac bfi + sys read; buf; 64 + +proc2: + lac lvrand + 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; maxsto: -1 + -1 + dac maxsto + jmp i bufwr + +:number: 0 + dac 3f + lac d1000 + dac 2f +1: + lac 3f + cll + idiv; 2: 0 + dac 3f + lacq + tad o60 + dac i 8 + lac 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 1f + 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; fname: 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 comflg + isz lineno +1: + sad o42 + dac comflg + dac char + lac comflg + sza + jmp gchar+1 + lac char + +gch3: + dac char + jms betwen; 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 exp5 +exp3: + sad d5 + jmp exp4 + jms error; x> + jmp 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 +namlstp: 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: diff --git a/bc.s b/bc.s new file mode 100644 index 0000000000..b857335531 --- /dev/null +++ b/bc.s @@ -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 + +dtrace: 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;;012 +mpcs = .-mpc +msp: + 012;;012 +msps = .-msp +mas: + 012;;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 diff --git a/bi.s b/bi.s new file mode 100644 index 0000000000..f8abd9de02 --- /dev/null +++ b/bi.s @@ -0,0 +1,433 @@ +" bi + +start: + jms initio + -1 + tad .main + dac pc + +fetch: + lac pc i + lmq + 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 t1 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 + lac 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 + lmq + lac dp + dac t1 i + lac t1 + dac dp + isz t1 + lac 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 8 + skp + jmp 1b + lac ap i + lmq + 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 + +uadr: + lac t1 + dac t3 i + jmp fetch + +umin: + -1 + tad t1 i + cma + dac t3 i + jmp fetch + +uind: + lac t1 i + dac t2 i + jmp fetch + +unot: + 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 +y = x+a + +d1: 1 +dm1: -1 +dm2: -2 +o17777: 017777 + +t1: 0 +t2: 0 +t3: 0 +t4: 0 +addr: 0 + +pc = 017 + +sp: stack +dp: stack +ap: stack +stack: 0 \ No newline at end of file diff --git a/bl.s b/bl.s new file mode 100644 index 0000000000..598f1750ee --- /dev/null +++ b/bl.s @@ -0,0 +1,194 @@ +" bl + +jmp start + +.array: .+1 + s 2 + n 8 + n 7 + -1 + tad sp i + cma + tad lastv + dac lastv + lmq + 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 o4 + jmp getc i + +putc: 0 + and o777 + sna + jmp putc i + lmq + 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 \ No newline at end of file diff --git a/cas.s b/cas.s new file mode 100644 index 0000000000..ed3c981aa7 --- /dev/null +++ b/cas.s @@ -0,0 +1,1042 @@ +" 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 diff --git a/cat.s b/cat.s new file mode 100644 index 0000000000..6748efe35a --- /dev/null +++ b/cat.s @@ -0,0 +1,145 @@ +" cat + + lac 017777 i + sad d4 + jmp nofiles + lac 017777 + tad d1 + tad d4 + dac name + +loop: + sys open; name: 0; 0 + spa + jmp badfile + dac fi + +1: + jms getc + sad o4 + jmp 1f + jms putc + jmp 1b + +1: + lac fi + sys close + +loop1: + -4 + tad 017777 i + dac 017777 i + sad d4 + jmp done + lac name + tad d4 + dac name + jmp loop + +badfile: + lac name + dac 1f + lac d8 + sys write; 1:0; 4 + lac d8 + sys write; 1f; 2 + jmp loop1 + +1: 040;077012 +nofiles: + lac d8 + sys write; 1f; 5 + sys exit + +1: ; 040; ;;;;;; 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 + lac 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;;;;;;;;;012 +m6s = .-m6 +m7: + 040;;;012 +m7s = .-m7 +m8: + 040;;;;;040040;040040;040040 +d1: 1 +d4: 4 +d5: 5 +dm4: -4 \ No newline at end of file diff --git a/cp.s b/cp.s new file mode 100644 index 0000000000..a77f91b551 --- /dev/null +++ b/cp.s @@ -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: \ No newline at end of file diff --git a/db.s b/db.s new file mode 100644 index 0000000000..41096bfdc3 --- /dev/null +++ b/db.s @@ -0,0 +1,1217 @@ +" db + + narg = ..+07777 + lac i narg + sad d4 + jmp start + lac narg + tad d5 + dac rcorep + dac wcorep + lac i narg + sad d8 + jmp start + sad d12 + skp + jmp error + lac narg + tad d9 + dac nlnamep + " +start: + lac nlbufp + cma + tad o17777 + cll + idiv + 6 + cll + lacq + mul + 6 + lacq + dac namesize + sys open; nlnamep: nlname; 0 + dac symindex + sma + jmp 1f +2: + dzm nlcnt + lac nlbufp + dac nlsize + jmp 3f +1: + sys read; nlbuff; namesize:0 + spa + jmp 2b + dac nlcnt + tad nlbufp + dac nlsize +3: + lac symindex + sys close + sys open +wcorep: corename; 1 + dac wcore + sys open; rcorep: corename; 0 + dac rcore + spa + jmp error + " + lac o52012 + jms wchar + law dotdot + dac nsearch + jms nlsearch + jmp mloop + lac value + dac relocval + cma + tad d1 + dac mrelocv + dzm sysflag +mloop: + -1 + dac nwords +ml1: + jms rch + dac nchar1 + sad o52 + skp + jmp 1f + dzm nchar1 + dac indflg +1: + jms getexp + lac errf + sna + jmp cmd +error: + dzm indflg + lac o40 + dac rator + dzm errf + lac d1 + sys write; errmes; 1 + jmp mloop +cmd: + lacq + sad o41 + jmp patch + lac opfound + sna + jmp 1f + lac comflg + dzm comflg + sza + jmp 1f + lac curval + dac curdot + lac curreloc + dac dotrel +1: + lacq + sad o42 + jmp ascii + sad o12 + jmp newln + sad o77 + jmp symbol + sad o47 + jmp saddress + sad o75 + jmp address + sad o57 + jmp octal + sad o72 + jmp decimal + sad o136 + skp + jmp 1f + dac sysflag + jmp mloop +1: + sad o45 + skp + jmp 1f + dzm sysflag + jmp mloop +1: + sad d1 + sys exit + sad o54 + skp + jmp error + " comma + jms getexp + lac errf + sza + jmp error + law + dac comflg + lac curreloc + sza + jmp 1f + lac value + cma + dac nwords + jmp cmd +1: + lac reldot + sna + jmp error + lac curval + cma + tad curdot + sma + jmp error + dac nwords + jmp cmd + " +saddress: + lac curdot + dac 9f + dzm curdot + lac reldot + sza + lac relocval + tad 9f + jms prsym + lac o12 + jms wchar + lac 9f + dac curdot + jmp mloop +9:0 + " +symbol: + law prsym + dac type + jmp print + " +octal: + law proct + dac type + jmp print + " +ascii: + law prasc + dac type + jmp print + " +decimal: + law prdec + dac type + jmp print + " +address: + lac curdot + jms octw + 5 + lac curreloc + sza + jmp 1f + lac o12 + jms wchar + jmp mloop +1: + lac o162012 + jms wchar + jmp mloop + " +print: + lac sysflag + sza + jmp 2f + lac reldot + sza + jmp 1f + lac curdot + dac addr + jmp sprint +2: + lac curdot + dac addr + jmp sprint +1: + law inbuf + dac addr + lac curdot + dac 1f + lac rcore + sys seek; 1:0; 0 + spa + jmp error + lac rcore + sys read; inbuf; 64 + spa + jmp error + sna + jmp error + " +sprint: + lac indflg + sna + jmp 2f + dzm indflg + lac i addr + and o17777 + dac curdot + dzm reldot + tad mrelocv + spa + jmp print + dac curdot + lac d1 + dac reldot + jmp print + " +2: + lac o40 + jms wchar + lac addr + dac 3f + lac i addr + jms i type + lac 3f + dac addr + isz addr + law prasc + sad type + jmp 1f + lac nl + jms wchar +1: + isz nwords + jmp 1f + law prasc + sad type + skp + jmp mloop + lac nl + jms wchar + jmp mloop +1: + isz curdot + nop + lac nwords + spa + jmp print + jmp 2b +3:0 + " +prdec: "temp +proct:0 + jms octw + 6 + jmp i proct + " +patch: + lac opfound + sna + jmp error + lac curreloc + sna + jmp 1f + lac curval + tad relocval + skp +1: + lac curval + dac inbuf + lac sysflag + sna + jmp 1f + lac inbuf + dac i curdot + jmp bump +1: + lac reldot + sna + jmp error + lac curdot + dac 2f + lac wcore + spa + jmp error + sys seek; 2:0; 0 + spa + jmp error + lac wcore + sys write; inbuf; 1 + spa + jmp error +bump: + -1 + dac nwords + isz curdot + jmp print + " +newln: + lac opfound + sna + jmp bump + jmp print + " +getexp:0 + dzm errf + lac o40 + dac rator + dzm curval + dzm curreloc + dzm reloc + dzm value + dzm opfound +xloop: + jms rch + lmq + sad o44 + skp + jmp 1f + jms getspec + jms oprand + jmp xloop +1: + tad om60 + spa + jmp 1f + tad om10 + sma + jmp 1f + lacq + jms getnum " ??? getnur + jms oprand + jmp xloop +1: + lacq + sad o56 + jmp 1f + tad om141 + spa + jmp 2f + tad om32 + sma + jmp 2f +1: + lacq + jms getsym + jms oprand + jmp xloop +2: + lacq + tad om101 + spa + jmp 1f + tad om32 + spa + jmp 1b +1: + lacq + sad o74 + skp + jmp 1f + jms rch + alss 9 + dac value + dzm reloc + jms oprand + jmp xloop +1: + sad o40 + jmp xloop + sad o55 "- + skp + jmp 1f +2: + lac o40 + sad rator + skp + jmp error + lacq + dac rator + jmp xloop +1: + sad o53 "+ + jmp 2b + lac curreloc + sna + jmp 1f + sad d1 + skp + dac errf +1: + lac o40 + sad rator + jmp i getexp + dac errf + jmp i getexp + " +getspec: 0 + jms rch + sad o141 + jmp spcac + sad o161 "q + jmp spcmq + sad o151 "i + jmp spcic + lmq + tad om60 + spa + jmp 2f + tad om10 + sma + jmp 2f + lacq + jms getnum + jmp spcai +2: + law + dac errf + jmp getspec i +spcac: + cla + jmp 1f +spcmq: + lac d1 + jmp 1f +spcic: + lac d10 + jmp 1f +spcai: + lac value + tad dm6 + +1: + tad o10000 + dac value + lac d1 + dac reloc + jmp i getspec + " +getsym:0 + lmq + law symbuf + dac symbufp + dzm symbuf + -8 + dac symcnt + dzm nchar1 + lac nopcom + dac skipt + skp +storech: + lmq + lac i symbufp + and o177000 + sna + jmp 1f + omq + dac i symbufp + isz symbufp + dzm i symbufp + jmp 2f +1: + llss 27 + dac i symbufp + " +2: + isz symcnt + skp + jmp endsym +skipt: + nop " or jmp fill + jms rch + sad o76 + skp + jmp 1f + lac symbuf + lrss 9 + and o177 + dac value + dzm reloc + jmp i getsym +1: + sad o56 + jmp storech + dac nchar1 + tad om60 + spa + jmp fill + tad m10 + spa + jmp 2f + lac nchar1 + tad om141 + spa + jmp 1f + tad om32 + spa + jmp 2f +1: + lac nchar1 + tad om101 + spa + jmp fill + tad om32 + sma + jmp fill +2: + lac nchar1 + dzm nchar1 + jmp storech + " +fill: + lac trafill + dac skipt + lac o40 + jmp storech + " +endsym: + lac symbuf + sad o56040 + jmp dotsym + law symbuf + dac nsearch + jms nlsearch + jmp undef + dzm nsearch + jmp i getsym + " +dotsym: + lac curdot + dac value + lac dotrel + dac reloc + jmp i getsym + " +undef: + dzm nsearch + law + dac errf + jmp i getsym + " +getnum:0 + dzm reloc + dzm value +num1: + tad om60 + lmq + lac value + alss 3 + omq + dac value + jms rch + dac nchar1 + sad o162 + jmp nrel + tad om60 + spa + jmp i getnum + tad om10 + sma + jmp i getnum + lac nchar1 + dzm nchar1 + jmp num1 +nrel: + dzm nchar1 + lac d1 + dac reloc + jmp i getnum + " +oprand:0 + lac rator + sad o53 + jmp opplus + sad o40 + jmp opor + sad o55 + jmp opminus +opplus: + lac value + tad curval + dac curval +1: + lac curreloc + tad reloc + dac curreloc + jmp retop + " +opor: + lac value + lmq + lac curval + omq + dac curval + jmp 1b + " +opminus: + lac curval + cma + tad value + cma + dac curval + lac reloc + cma + tad d1 + tad curreloc + dac curreloc +retop: + lac o40 + dac rator + dac opfound + jmp i oprand + " +prasc:0 + jms wchar + jmp i prasc + " +prsym:0 + dac word + dzm relflg + dzm relocflg + dzm nsearch + and o760000 + sad o760000 + jmp plaw + sad o20000 + jmp pcal + and o740000 + sad o640000 + jmp peae + sad o740000 + jmp popr + sad o700000 + jmp piot + sna + jmp poct + jms nlsearch + jmp poct + jms wrname + lac o40 + jms wchar + lac word + and o20000 + sna + jmp 1f + lac o151040 + jms wchar + lac word + xor o20000 + dac word +1: +symadr: + lac d1 + dac relflg + dac relocflg + lac word + and o17777 + tad mrelocv + sma + jmp 1f + tad relocval + dzm relocflg +1: +pradr: + dac addr + jms nlsearch + jmp octala +pr1: + dzm relflg + jms wrname + lac value + sad addr + jmp i prsym + cma + tad d1 + tad addr + sma + jmp 1f + cma + tad d1 + dac addr + lac o55 + jms wchar + jmp 2f +1: + dac addr + lac o53 + jms wchar +2: + lac addr + jms octw + 1 + jmp i prsym + " +plaw: + lac d1 + dac relocflg + lac word + and o17777 + tad mrelocv + sma + jmp 1f + tad relocval + dzm relocflg +1: + dac addr + law + dac relflg + lac addr + jms nlsearch + jmp poct + dac symindex + law laws + jms wrname + lac o40 + jms wchar +3: + lac symindex + jmp pr1 +2:0 +9:0 + " +peae: + lac word + jms nlsearch + jmp 1f + jms wrname + jmp i prsym +1: + lac word + and o777700 + jms nlsearch + jmp 1f + jms wrname + lac o40 + jms wchar + lac word + and o77 + jms octw + 1 + jmp i prsym +1: + law eaes + dac addr + jmp nfnd + " +popr: + law oprs + jmp 1f +piot: + law iots +1: + dac addr + lac word + jms nlsearch + jmp 1f + jms wrname + jmp i prsym +1: +nfnd: + lac addr + jms wrname +octala: + dzm relflg + lac o40 + jms wchar + lac word + and o37777 + lmq + lac relocflg + sna + jmp 1f + lacq + tad mrelocv + lmq +1: + lacq + jms octw + 1 + lac relocflg + sna + jmp i prsym + lac o162 + jms wchar + dzm relocflg + jmp i prsym + " +poct: + lac word + jms octw + 6 + jmp i prsym + " +pcal: + lac word + sna + jmp poct + and o17777 + jms nlsearch + jmp 1f + dac addr + law syss + jms wrname + lac o40 + jms wchar + lac addr + jms wrname + jmp i prsym + " +1: + lac word + and o20000 + sza + jmp poct + jmp symadr + " +wrname:0 + tad dm1 + dac 10 + -4 + dac 3f +1: + lac i 10 + dac 2f + lmq + cla + llss 9 + sad o40 + jmp i wrname + jms wchar + lac 2f + and o177 + sad o40 + jmp i wrname + jms wchar + isz 3f + jmp 1b + jmp i wrname +2:0 +3:0 + " +nlsearch:0 + dac match + lac brack + dac best + dzm minp +1: + lac nlbufp + tad dm6 + dac cnlp +nloop: + lac cnlp + tad d6 + dac cnlp + lmq + cma + tad nlsize + spa + jmp nlend + lac nsearch + sza + jmp testn + lacq + tad d3 + dac np + lac i np + sna + jmp nloop + isz np + lac i np + dac treloc + sad relocflg + skp + jmp nloop + isz np + lac i np + dac tvalue + sad match + jmp nlok + lac relocflg + sna + jmp nloop + lac relflg + sna + jmp nloop + -1 + tad tvalue + cma + tad match + spa + jmp nloop + dac 2f + tad mbrack + sma + jmp nloop + lac best + cma + tad d1 + tad 2f + sma + jmp nloop + lac 2f + dac best + lac tvalue + dac value + lac treloc + dac reloc + lac cnlp + dac minp + jmp nloop + " +2:0 + " +testn: + lacq + dac minp + -4 + dac value + lac match + dac inbuf +1: + lac i minp + sad i inbuf + skp + jmp nloop + isz minp + isz inbuf + isz value + jmp 1b + lac i minp + dac treloc + isz minp + lac i minp + dac tvalue + jmp nlok + " +nlend: + lac relflg + sna + jmp i nlsearch + lac dotrel + sad relocflg + skp + jmp 1f + -1 + tad curdot + cma + tad match + spa + jmp 2f + cma + tad d1 +2: + tad brack + spa + jmp 1f + tad mbrack + tad best + spa + jmp 1f + lac curdot + dac value + lac dotrel + dac reloc + law o56040 + dac minp +1: + lac minp + sza + isz nlsearch + jmp i nlsearch +nlok: + lac tvalue + dac value + lac treloc + dac reloc + lac cnlp + isz nlsearch + jmp i nlsearch + " +nlerr: + law + dac errf + jmp i nlsearch + " +rch:0 + lac nchar1 + dzm nchar1 + sza + jmp i rch +1: + lac nchar + dzm nchar + sza + jmp i rch + cla + sys read; char; 1 + lac char + and o177 + dac nchar + lac char + lrss 9 + sna + jmp 1b + jmp i rch + " +wchar:0 + dac char + lac d1 + sys write; char; 1 + jmp i wchar + " +octw: 0 + isz octw + lmq + cla cll + llss 3 + alss 6 + llss 3 + tad o60060 + dac obuf + cla + llss 3 + alss 6 + llss 3 + tad o60060 + dac obuf+1 + cla + llss 3 + alss 6 + llss 3 + tad o60060 + dac obuf+2 + lac d1 + sys write; obuf; 3 + jmp i octw +m10: -10 + " + " +o54:054 +d6:6 +o52012:052012 +d5:5 +d9:9 +d12:12 +d8:8 +d3:3 +o177:0177 +o136: 0136 +o45: 045 +sysflag: 0 +char:0 +d2:2 +o162012:0162012 +mrelocv:-010000 +relocval:010000 +nwords:0 +errf:0 +rator:0 +d1:1 +errmes:077012 +o12:012 +curval:0 +curreloc:0 +curdot:0 +reldot: +dotrel:0 +value:0 +reloc:0 +o77:077 +o57:057 +o72:072 +o50:050 +type:proct +o162:0162 +nl:012 +om100:-0100 +" d2:2 " Duplicate +symbuf: .=.+5 +inbuf:.=.+64 +o100:0100 +opfound:0 +wcore:0 +symindex:0 +rcore:0 +o56:056 +om60:-060 +om10:-010 +" o56:056 " Duplicate +om141:-0141 +o141: 0141 +o44: 044 +o151: 0151 +o161: 0161 +om101: -0101 +om32:-032 +o40:040 +o55:055 +o53:053 +symbufp:0 +symcnt:0 +nopcom:nop +dm6: -6 +d10: 10 +trafill: jmp fill +nchar1:0 +nchar:0 +o177000:0177000 +o56040:056040 +nsearch:0 +word:0 +relflg:0 +relocflg:0 +o740000:0740000 +o640000:0640000 +o700000:0700000 +o17777:017777 +o20000:020000 +o10000: 010000 +o151040:0151040 +eaes:0145141;0145040 +laws: 0154141;0167040 +oprs:0157160;0162040 +iots:0151157;0164040 +syss:0163171;0163040 +corename:0143157;0162145;040040;040040 +nlname:0156056;0157165;0164040;040040 +dotdot: <..>; 040040; 040040; 040040 +addr:0 +o37777:037777 +dm1:-1 +match:0 +rwdflg:0 +nlbufp:nlbuff +nlsize:0 +" dm6:-6 " Duplicate +cnlp:0 +o377777:0377777 +minp:0 +d4:4 +np:0 +nlcnt:0 +obuf:.=.+3 +o60060:060060 +o75:075 +best: 0 +o60000:060000 +comflg:0 +" nlbufp:nlbuff " Duplicate +brack: 30 +mbrack: -30 +o777700:0777700 +o41:041 +o42:042 +o760000:0760000 +o40000:040000 +tvalue: 0 +treloc: 0 +" o151:0151 " Duplicate +o47: 047 +o52:052 +indflg: 0 +o74:074 +o76:076 +" nlbufp: nlbuff " Duplicate + nlbuff = . diff --git a/dmabs.s b/dmabs.s new file mode 100644 index 0000000000..fce78256e0 --- /dev/null +++ b/dmabs.s @@ -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: ;;;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 \ No newline at end of file diff --git a/ds.s b/ds.s new file mode 100644 index 0000000000..2aa0f93ee4 --- /dev/null +++ b/ds.s @@ -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: +
; 040040; 040040; 040040 +dotdot: + 056056; 040040; 040040; 040040 +system: + ;;; 040040 +scrname: + <*s>;;040040;040040 +pass2: + [scan markup] + jmp advanc +1: + ; ; 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 +"[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 + lac 9 +"[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: + cma +"[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 +"[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 tbufp + cma + tad tal1 + dac 1f + lac tfi + sys write; tbuf; 1: 0 + lac tfi + sys close + jms number + jmp advanc + +cnl: + 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 +"[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; d58 + 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 +"[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 +"[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 +"[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 + and o1777 " 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 +"[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 sctalp + ral + lac i sctal + szl + lrss 9 + and o777 + jmp i getsc + +putsc: 0 + and o777 +"[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] +"[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 +"[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 diff --git a/ed2.s b/ed2.s new file mode 100644 index 0000000000..2a1a46aa6e --- /dev/null +++ b/ed2.s @@ -0,0 +1,510 @@ +"[handwritten page number top right of scan - 14] +" ed2 + +cs: + jms 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 +"[handwritten page number top right of scan - 15] + jmp 3b +3: + -1 + tad lchrno + 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 + sad zerop + lac eofp +bloop: + tad dm1 + dac addr + lac i addr +"[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 +"[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 +"[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 + +xchg: + 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 + and o17777 + tad jms1 + dac i 8 +"[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 + jmp i 9 +"[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 +d1: 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 +"[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 +glint1: .=.+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 +sfi: .=.+1 +"[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 +clist: .=.+50 +compbuf: .=.+100 +dskbuf: .=.+1 "[line crossed out - scan markup] +lnodes: .=.+1000 diff --git a/ind.b b/ind.b new file mode 100644 index 0000000000..6b615de3ca --- /dev/null +++ b/ind.b @@ -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; +$) diff --git a/init.s b/init.s new file mode 100644 index 0000000000..69284d4ea2 --- /dev/null +++ b/init.s @@ -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; ;;;;;;<: 040 +m3s = .-m3 +dd: +
;040040;040040;040040 +dir: + 040040;040040;040040;040040 + +ttyin: + ;;;;; 040040 +keybd: + ;;; +displ: + ;;;; 040040;040040;040040 +system: + ;;; 040040 +password: + ;;; + +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 diff --git a/lcase.b b/lcase.b new file mode 100644 index 0000000000..df6c6dfec2 --- /dev/null +++ b/lcase.b @@ -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; + $) + $) \ No newline at end of file diff --git a/maksys.s b/maksys.s new file mode 100644 index 0000000000..65337a3787 --- /dev/null +++ b/maksys.s @@ -0,0 +1,51 @@ +" copy a.out to disk track 18x +" where x is the argument + + lac 017777 i; sad d8; skp; jmp error + lac 017777; tad d5; dac track + lac i track; lrss 9; tad om60 + spa; jmp error; dac track + tad dm10; sma; jmp error + + sysopen; a.out; 0 + spa; jmp error + sys read; bufp; buf; 3072 + sad .-1 + jmp error + + dscs + -3072; dslw + lac bufp; dslm + lac track; alss 8; xor o300000; dsld + lac o30000; dsls + dssf; jmp .-1 + dsrs; spa; jmp error + -1024; dslw + lac d3072; dslm + lac track; alss 8; xor o300110; dsld + lac o3000; dsls + dssf; jmp .-1 + dsrs; spa; jmp error + sys exit + +error: + lac d1; sys write; 1f; 2 + sys exit +1: 077077;012 + +dm10: -10 +dm5: 5 +om60: -060 +o300000: 0300000 +o300100: 0300110 +d8: 8 +d3072: 3072 +o3000: 03000 +d1: 1 +a.out: + ;;n;t;< > ;< > " + +" constants +d0: 0 +d1: 1 +d2: 2 +d3: 3 +d4: 4 +d5: 5 +d6: 6 +d7: o7: 07 +d8: 8 +d9: 9 +o12: d10: 10 +o14: 014 +o15: 015 +o17: 017 +o20: 020 +o33: 033 +o40: 040 +o55: 055 +o77: 077 +d65:o101: 0101 +d33: 33 +o132: 0132 +o134: 0134 +o137: 0137 +o155: 0155 +o177: 0177 +o212: 0212 +o375: 0375 +o777: 0777 +o2000: 02000 +o4000: 04000 +d7999: 7999 +o10000: 010000 +o17762: 017762 +o17777: 017777 +o20001: 020001 +o40000: 040000 +o40001: 040001 +o70000: 070000 +o77777: 077777 +o100000: 0100000 +o140000: 0140000 +o200000: 0200000 +o200001: 0200001 +o300000: 0300000 +o400000: 0400000 +o500000: 0500000 +o577777: 0577777 +o600000: 0600000 +o640000: 0640000 +o700000: 0700000 +o777700: 0777700 +o777760: 0777760 +dm3: -3 +dm1: -1 + +9: .=.+t +c1: .=.+1 + .=.+14 +q2: + .+2;0;.+2;0;.+2;0;.+2;0;.+2;0;.+2;0;.+2;0;.+2;0;.+2;0;.+2;0 + .+2;0;.+2;0;.+2;0;.+2;0;.+2;0;.+2;0;.+2;0;.+2;0;.+2;0;.+2;0 + .+2;0;.+2;0;.+2;0;.+2;0;.+2;0;.+2;0;.+2;0;.+2;0;.+2;0;.+2;0 + .+2;0;.+2;0;.+2;0;.+2;0;.+2;0;.+2;0;.+2;0;.+2;0;.+2;0;.+2;0 + .+2;0;.+2;0;.+2;0;.+2;0;.+2;0;.+2;0;.+2;0;.+2;0;.+2;0;0;0 +dsploc: .=.+1 +dsplno: .=.+1 +dspbuf: + 0065057;0147740;0160000 + .=.+30 +coldentry: + dzm 0100 " not re-entrant + caf + ion + clon + law 3072 + wcga + jms dspinit + law dspbuf + jms movdsp + cla + jms dskio; 06000 + jms copy; dskbuf; sysdata; ulist-sysdata + lac d3 + jms namei; initf + jms halt + jms iget + cla + jms iread; 4096; 4096 + jmp 4096 + . = dspbuf+dspbsz+3 +dskbuf = 07700 +dskbs: .=.+65+65+65+65 +edskbsp: . +uquant: .=.+1 +dspbufp: .=.+1 +pbsflgs: .=.+2 +mode: .=.+1 +nttychar: .=.+1 +npptchar: .=.+1 +ttydelay: .=.+1 +name: .=.+4 +lnkaddr: .=.+1 +char: .=.+1 +dskaddr: .=.+1 +uniqpid: 1 +lu: .=.+4 +sfiles: .=.+10 +dpdata: + dpstat: .=.+1 + dpread: .=.+1 + dpwrite: .=.+1 + dpchar: .=.+1 +dspdata: + .dspb: .=.+1 +crdata: + crread: .=.+1 + crchar: .=.+1 +sysdata: + s.nxfblk: .=.+1 + s.nfblks: .=.+1 + s.fblks: .=.+10 + s.uniq: .=.+1 + s.tim: .=.+2 +ulist: + 0131000;1;0;0 + 0031040;0;0;0 + 0031100;0;0;0 + 0031140;0;0;0 + 0031200;0;0;0 + 0031240;0;0;0 + 0031300;0;0;0 + 0031340;0;0;0 + 0031400;0;0;0 + 0031440;0;0;0 +userdata: + u.ac: 0 + u.mq: 0 + u.rq: .=.+9 + u.uid: -1 + u.pid: 1 + u.cdir: 3 + u.ulistp: ulist + u.swapret: 0 + u.base: 0 + u.count: 0 + u.limit: 0 + u.ofiles: .=.+30 + u.dspbuf: 0 + u.intflg: 1 + .=userdata+64 +ii: .=.+1 +inode: + i.flags: .=.+1 + i.dskps: .=.+7 + i.uid: .=.+1 + i.nlks: .=.+1 + i.size: .=.+1 + i.uniq: .=.+1 + .= inode+12 +di: .=.+1 +dnode: + d.i: .=.+1 + d.name: .=.+4 + d.uniq: .=.+1 + . = dnode+8 +fnode: + f.flags: .=.+1 + f.badd: .=.+1 + f.i: 0 + diff --git a/s9.s b/s9.s new file mode 100644 index 0000000000..a126ec0064 --- /dev/null +++ b/s9.s @@ -0,0 +1,112 @@ +" s9 -- cold boot + +. = coldentry+4 + +" zero i-list + + dzm ii + jms copyz; dskbuf; 64 +1: + lac ii + jms dskio; 07000 + isz ii + -710 + tad ii + sza + jmp 1b + +" free rest of disk + +1: + lac ii + jms free + isz ii + -6400 + tad ii + sza + jmp 1b + +" read in tapes + + dzm ii +1: + dzm sum + jms getw " count + sza + jmp .+3 + hlt + jmp 1b " 0 count means pause + dac xx + isz ii + lac ii + jms iget + jms copyz; inode; 12 + jms getw " flags + dac i.flags + -1 + dac i.uid + jms getw " number links + dac i.nlks + -2 + tad xx + dac i.size + lac ii + dac i.uniq + law 4096-1 + dac 8 + -1 + tad i.size + cma + sna + jmp 3f + dac xx + +2: + jms getw + dac 8 i + isz xx + jmp 2b +3: + lac sum + dac xx + jms getw " checksum + sad xx + skp + jms halt + lac i.size + dac .+4 + cla + jms iwrite; 4096; .. + jms iput + cla + jmp 1b + +getw: 0 + jms getc + alss 12 + lmq + jms getc + alss 6 + omq + lmq + jms getc + omq + lmq + add sum + dac sum + lacq + jmp getw i + +getc: 0 + iof + rsa + rsf + jmp .-1 + rrb + sna + jmp getc+1 + and o77 + ion + jmp getc i +xx: 0 +sum: 0 diff --git a/scope.v b/scope.v new file mode 100644 index 0000000000..a128ddbb43 --- /dev/null +++ b/scope.v @@ -0,0 +1,861 @@ +r + +:la +x +fb +v +de +dh +fk +nk +x +ik +v +gh +ge +ib +kb +me +mh +kk +x +mn +r + +:lb +x +ba +v +nb +x +gb +v +ee +eh +gk +kk +mh +me +kb +x +mn +r + +:lc +x +kk +v +mh +me +kb +gb +ee +eh +hl +x +mn +r + +:ld +x +ak +v +nk +x +gk +v +eh +ee +gb +kb +me +mh +kk +x +mn +r + +:le +x +me +v +ce +ag +ak +x +mn +r + +:lf +x +me +v +ce +ag +ak +x +fc +v +fi +x +mn +r + +:lg +x +nb +v +pe +ph +mk +gk +eh +ee +gb +jb +le +lh +jk +x +mn +r + +:lh +x +ab +v +nb +x +hb +v +fe +fh +hk +nk +x +mn +r + +:li +x +ce +v +cg +eg +ee +ce +x +gc +v +gf +mf +x +mc +v +mi +x +mn +r + +:lj +x +mb +v +od +of +mh +fh +fd +x +ce +v +cg +eg +ee +ce +x +mn +r + +:lk +x +cb +v +nb +x +jb +v +ek +x +hd +v +nl +x +mn +r + +:ll +x +md +v +mj +x +mg +v +bg +be +x +mn +r + +:lm +v +ea +x +ha +v +fb +fd +hf +fg +fj +hk +nk +x +hf +v +nf +x +mn +r + +:ln +x +fb +v +nb +x +hb +v +ff +fh +hk +nk +x +mn +r + +:lo +x +kb +v +hb +fe +fh +hk +kk +mh +me +kb +x +mn +r + +:lp +x +pb +v +eb +x +hb +v +fe +fg +hk +kk +mg +me +kb +x +mn +r + +:lq +x +fk +v +pk +pm +x +hk +v +fh +fe +hb +kb +me +mh +kk +x +mn +r + +:lr +x +md +v +gd +x +fb +v +gd +ff +fh +gj +x +mn +r + +:ls +x +kb +v +md +mh +lj +ij +hh +gd +ed +de +di +fj +x +mn +r + +:lt +x +db +v +dj +x +ae +v +ke +mf +mh +lj +x +mn +r + +:lu +x +db +v +kb +md +mg +ki +ci +x +mk +v +ki +x +mn +r + +:lv +x +db +v +mf +dj +x +mn +r + +:lw +x +da +v +md +gg +mj +dm +x +mn +r + +:lx +x +db +v +nl +x +dj +v +na +x +mn +r + +:ly +x +db +v +mf +x +dj +v +oe +ob +x +mn +r + +:lz +x +dc +v +di +mb +mj +x +mn +r + +:space +x +mn +r + +:excla +x +af +v +if +x +lf +v +mg +nf +me +lf +x +mn +r + +:quote +x +ad +v +dd +x +ah +v +dh +x +mn +r + +:number +x +ka +v +cf +x +kf +v +ck +x +eb +v +ej +x +ib +v +ij +x +mn +r + +:dollar +x +bj +v +bd +db +eb +gd +gh +ij +jj +lh +la +x +af +v +nf +x +mn +r + +:accr +x +ah +v +cd +x +mn +r + +:accl +x +ad +v +ch +x +mn +r + +:lparn +x +ag +v +ce +ke +nh +x +mn +r + +:rparn +x +ae +v +cg +kg +nd +x +mn +r + +:aster +x +gb +v +gk +x +dd +v +ki +x +dh +v +kc +x +mn +r + +:plus +x +gb +v +gk +x +cf +v +lf +x +mn +r + +:comma +x +mf +v +mg +oe +mf +x +mn +r + +:minus +x +gb +v +gk +x +mn +r + +:period +x +le +v +lf +mf +me +le +x +mn +r + +:sla +v +ak +x +v +bj +x +mn +r + +:bsla +x +aa +v +nl +x +mn +r + +:colon +x +le +lf +mf +me +le +x +fe +v +ff +gf +ge +fe +x +mn +r + +:semcln +x +mf +v +mo +oe +mf +x +ff +v +fg +gg +fe +x +mn +r + +:less +x +cj +v +gb +kj +x +mn +r + +:great +x +cb +v +gj +kb +x +mn +r + +:equal +x +eb +v +ek +x +ib +v +ik +x +mn +r + +:quest +x +eb +v +bc +af +bi +ek +if +mf +x +mn +r + +:lbk +x +ai +v +af +mf +mj +x +mn +r + +:rbk +x +ac +v +af +mf +mb +x +mn +r + +:cmflx +x +bc +v +af +bj +x +mn +r + +:under +x +na +v +nn +x +mn +r + +:at +v +aa +ak +mk +ma +x +ck +v +cd +kd +kl +x +mn +r + +Llbr +x +ai +v +bf +ff +gd +hf +lf +nj +x +mn +r + +:rbr +x +ac +v +bf +ff +gh +hf +lf +nb +x +mn +r + +:or +x +af +v +nf +x +mn +r + +:tild +x +ai +v +dh +ad +db +x +mn +r + +:null +r + +:percent +v +ak +ab +eb +ef +af +x +hg +v +hk +lk +lg +hg +x +mn +r + +:amper +x +mk +v +ki +gf +ee +dd +cd +ae +af +bg +cg +ef +fe +gc +ib +kc +ld +mf +lh +ik +x +mn +r + + diff --git a/sop.s b/sop.s new file mode 100644 index 0000000000..0ae3b6a738 --- /dev/null +++ b/sop.s @@ -0,0 +1,95 @@ +" sop + +dac = 0040000 +jms = 0100000 +dzm = 0140000 +lac = 0200000 +xor = 0240000 +add = 0300000 +tad = 0340000 +xct = 0400000 +isz = 0440000 +and = 0500000 +sad = 0540000 +jmp = 0600000 +nop = 0740000 +i = 020000 +law = 0760000 +cma = 0740001 +las = 0750004 +ral = 0740010 +rar = 0740020 +hlt = 0740040 +sma = 0740100 +sza = 0740200 +snl = 0740400 +skp = 0741000 +sna = 0741200 +szl = 0741400 +rtl = 0742010 +rtr = 0742020 +cil = 0744000 +rcl = 0744010 +rcr = 0744020 +cia = 0750000 +lrs = 0640500 +lrss = 0660500 +lls = 0640600 +llss = 0660600 +als = 0640700 +alss = 0660700 +mul = 0653323 +idiv = 0653323 +lacq = 0641002 +clq = 0650000 +omq = 0650002 +cmq = 0650004 +lmq = 0652000 + +dscs = 0707141 +dslw = 0707124 +dslm = 0707142 +dsld = 0707104 +dsls = 0707144 +dssf = 0707121 +dsrs = 0707132 + +iof = 0700002 +ion = 0700042 +caf = 0703302 +clon = 0700044 +clsf = 0700001 + +clof = 0700004 +ksf = 0700301 +krb = 0700312 +tsf = 0700401 +tcf = 0700402 +tls = 0700406 +sck = 0704301 +cck = 0704304 +lck = 0704312 +rsf = 0700101 +rsa = 0700104 +rrb = 0700112 +psf = 0700201 +pcf = 0700202 +psa = 0700204 +cdf = 0700501 +lds = 0701052 +lda = 0701012 +wcga = 0704206 +raef = 0700742 +rlpd = 0700723 +beg = 0700547 +spb = 0704401 +cpb = 0704404 +lpb = 0704412 +wbl = 0704424 +dprs = 0704752 +dpsf = 0704741 +dpcf = 0704761 +dprc = 0704712 +crsf = 0706701 +crrb = 0706712 + diff --git a/sysmap b/sysmap new file mode 100644 index 0000000000..c20f1fe46a --- /dev/null +++ b/sysmap @@ -0,0 +1,259 @@ +. 004671 r +.ac 004012 r +.chown 000426 r +.capt 000404 r +.creat 000665 r +.chdir 000622 r +.chmod 000414 r +.dskb 004105 r +.dspb 005547 r +.dsptm 004104 r +.dske 004106 r +.exit 001170 r +.fork 001116 r +.getuid 000433 r +.halt 001343 r +.int1 004100 r +.insys 004077 r +.int2 004101 r +.intrp 000257 r +.link 000474 r +.lpba 005550 r +.open 000633 r +.rmes 001204 r +.rele 000410 r +.rename 000547 r +.read 000731 r +.smes 001232 r +.savblk 004103 r +.sysloc 000262 r +.setuid 000566 r +.status 000352 r +.save 001156 r +.seek 000436 r +.tell 000466 r +.time 000615 r +.unlink 000547 r +.write 001000 r +access 002323 r +alloc 001556 r +argname 002642 r +arg 002636 r +awake 001311 r +badcal 001153 r +betwen 001654 r +c1 004270 r +chkint 000320 r +chkink1 001546 r +char 005522 r +cnop 003453 r +coldentr 004520 r +copyz 001723 r +collapse 002066 r +copy 001700 r +crdata 005551 r +crchar 005552 r +crread 005551 r +cskp 003346 r +d.name 005761 r +d.uniq 005765 r +d.i 005760 r +d0 004127 r +d10 004141 r +d1 004130 r +d2 004131 r +d33 004153 r +d3 004132 r +d4 004133 r +d5 004134 r +d6 004135 r +d65 004155 r +d7999 004166 r +d7 004136 r +d8 004137 r +d9 004140 r +dacq1 004120 r +dacu 004110 r +dacisize 003413 r +dget 003115 r +di 005757 r +dm1 004215 r +dm3 004214 r +dnode 005760 r +dpdata 005543 r +dput 003147 r +dpchar 005546 r +dpwrite 005545 r +dpstat 005543 r +dpread 005544 r +dskbufp 004114 r +dskio 002173 r +dspdata 005547 r +dskrd 002127 r +dsktrans 002231 r +dsploc 004455 r +dslot 002474 r +dspino 004456 r +dspbufp3 004116 r +dspbufp 005506 r +dspresta 003523 r +dskaddr 005523 r +dskbs 005100 r +dskwr 002157 r +dspput 002551 r +dspleft 002573 r +dspbuf 004457 r +error 001542 r +exitrw 001041 r +f.badd 005771 r +f.flags 005770 r +fassign 002340 r +fallr 002436 r +fblksp 004117 r +fget 002371 r +finac 003401 r +fnode 005770 r +forall 002434 r +fput 003413 r +free 001615 r +getchar 001756 r +getw 004635 r +getc 004654 r +halt 002265 r +i.flags 005743 r +i.dskps 005744 r +i.uniq 005756 r +i.size 005755 r +i.nlks 005754 r +i.uid 005753 r +icreat 002506 r +idskpp 004113 r +iget 003030 r +ii 005742 r +inode 005743 r +intrp1 004032 r +intrp2 004055 r +initf 004123 r +iput 003057 r +iread 003277 r +isown 002675 r +itrunc 002706 r +iwrite 003270 r +laci 001646 r +lacq1 004121 r +lnkaddr 005521 r +lookfor 001073 r +locsw 000275 r +locn 000317 r +lu 005525 r +maxquant 004111 r +mode 005511 r +movdsp 002626 r +name 005515 r +namei 002750 r +npptchar 005513 r +nttychar 005512 r +o10000 004167 r +o17 004144 r +o177 004160 r +o101 004152 r +o17762 004170 r +o17777 004171 r +o12 004141 r +o132 004154 r +o134 004155 r +o137 004156 r +o100000 004177 r +o140000 004200 r +o14 004142 r +o15 004143 r +0155 004157 r +o2000 004164 r +o200001 004262 r +o20001 004172 r +020 004145 r +o212 004161 r +o200000 004201 r +o375 004162 r +o33 004146 r +o300000 004203 r +o4000 004165 r +o40000 004173 r +o40 004147 r +o400000 004204 r +o500000 004205 r +o55 004150 r +o577777 004206 r +o600000 004207 r +o640000 004210 r +o777 004163 r +o77 004157 r +o70000 004175 r +o77777 004176 r +o777760 004213 r +o7 004136 r +o700000 004211 r +o777700 004212 r +ofilesp 004112 r +okexit 000102 r +open1 000722 r +orig 000000 r +passone 001534 r +pbsflgs 005507 r +pget 003163 r +piret 003766 r +pibreak 003420 r +putchar 001741 r +putq 002022 r +putcr 004025 r +q1 004271 r +q2p 004122 r +q2 004311 r +rkbdi 001415 r +rppti 001472 r +rttyi 001344 r +s.tim 005570 r +s.nxfblk 005553 r +s.uniq 005567 r +s.nfblks 005554 r +s.fblks 005555 r +seektell 002656 r +searchu 001047 r +sfiles 005551 r +sleep 002445 r +srcdbs 002046 r +sum 004670 r +swr 001331 r +swp 000220 r +swn 000256 r +sww 001331 r +swap 000136 r +sysdata 005553 r +sysexit 000103 r +takeq 001770 r +tadu 004107 r +ttydelay 005514 r +ttyresta 003603 r +u.dspbuf 005723 r +u.intflg 005724 r +u.ulistp 005660 r +u.pid 005656 r +u.ofiles 005665 r +u.swapre 005661 r +u.mq 005643 r +u.uid 005655 r +u.ac 005642 r +u.limit 005664 r +u.cdir 005657 r +u.count 005663 r +u.base 005662 r +u.rq 005644 r +ulsit 005562 r +uniqpid 005524 r +uquant 005505 r +userdata 005642 r +wakeup 003773 r +wdspo 001462 r +wppto 001506 r +wttyo 001364 r +xx 004667 r diff --git a/trysys.s b/trysys.s new file mode 100644 index 0000000000..2988b2f425 --- /dev/null +++ b/trysys.s @@ -0,0 +1,39 @@ +" trysys + + sys open; a.out; 0 + spa + jmp error + sys read; buf; 3072 + sad .-1 + jmp error + iof + caf + cdf + clof + law buf + dac t1 + dzm t2 + -3072 + dac c1 +1: + lac t1 i + dac t2 i + isz t1 + isz t2 + isz c1 + jmp 1b + jmp 0100 + +error: + lac d1 + sys write; 1f; 1 + sys exit +1: 077012 + +a.out: + ;;