X-Git-Url: http://git.subgeniuskitty.com/unix-history/.git/blobdiff_plain/31764ff8b30309dc3f8016015d8086812152f43d..69f28986ad97c1e3d55279d696d1884c963f530e:/as.s diff --git a/as.s b/as.s new file mode 100644 index 0000000000..f63d3bcbb6 --- /dev/null +++ b/as.s @@ -0,0 +1,980 @@ +" as + + jms init1 + +assm1: + lac eofflg + sza + jmp assm2 + lac passno + sza + jmp finis + jms init2 + +assm2: + jms gchar + sad d4 + jmp assm1 + sad d5 + jmp assm1 + lac char + dac savchr + jms gpair + lac rator + jms betwen; d1; d6 + jmp assm3 + jms expr + lac passno + sza + jms process + isz dot+1 + nop + lac dot+1 + and o17777 + sad dot+1 + jmp assm1 + jms error; >> + dzm dot+1 + jmp assm1 + +assm3: + lac rand + sad d2 + jmp assm4 + sza + jmp assm6 + lac rator + sza + jmp assm6 + lac rand+1 + jms betwen; dm1; d10 + jmp assm6 + dac name + tad fbxp + dac lvrand + lac i lvrand + dac name+1 + isz i lvrand + lac o146 + dac name+2 + dzm name+3 + jms tlookup + -1 + dac fbflg +assm4: + lac rand+1 + tad d4 + dac lvrand + lac rator + sza + jmp assm5 + lac dot + dac r + lac dot+1 + dac r+1 + jmp 1f + +assm5: + jms gpair + jms expr +1: + lac r + dac i lvrand + isz lvrand + lac r+1 + dac i lvrand + lac fbflg + sna + jmp assm1 + dzm fbflg + dzm name+1 + lac o142 + dac name+2 + jms lookup + jmp assm4 + +assm6: + jms error; x> + jmp assm1 + +init1: 0 + lac d1 + sys write; 1f; 2f-1f + dzm passno + lac o56040 + dac dot-4 + lac o56056 + dac cmflx-4 + lac o40040 + dac dot-3 + dac dot-2 + dac dot-1 + dac cmflx-3 + dac cmflx-2 + dac cmflx-1 + dzm iof + jms init + jmp i init1 +1: + 0111012 +2: + +init2: 0 + lac d1 + dac passno + sys write; 1f; 2f-1f + jms init + lac o17 + sys creat; 2f + dac bfo + sys open; 2f; 0 + dac bfi + dzm bufadd + jms copyz; buf; 64 + jmp i init2 +1: + 0111111;012000 +2: + 0141056;0157165;0164040;040040 + +init: 0 + lac i 017777 + dac narg + lac 017777 + tad d1 + dac fname + -1 + dac eofflg + jms 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: