X-Git-Url: http://git.subgeniuskitty.com/unix-history/.git/blobdiff_plain/31764ff8b30309dc3f8016015d8086812152f43d..69f28986ad97c1e3d55279d696d1884c963f530e:/s3.s diff --git a/s3.s b/s3.s new file mode 100644 index 0000000000..ce11deeaed --- /dev/null +++ b/s3.s @@ -0,0 +1,347 @@ +" s3 + +searchu: 0 + lac searchu i + dac 9f+t+1 + -mnproc + dac 9f+t + law ulist-1 + dac 8 +1: + lac 8 i + dac lu + lac 8 i + dac lu+1 + lac 8 i + dac lu+2 + lac 8 i + dac lu+3 + jms 9f+t+1 i + isz 9f+t + jmp 1b + isz searchu + jmp searchu i +t = t+2 + +lookfor: 0 + jms searchu; 1f + isz lookfor + isz lookfor + jmp lookfor i +1: 0 + lac lu + rtl; rtl; and o7 + sad lookfor i + skp + jmp 1b i + -3 + tad 8 + and o17777 + isz lookfor + jmp lookfor i + +.fork: + jms lookfor; 0 " not-used + skp + jms error + dac 9f+t + isz uniqpid + lac uniqpid + dac u.ac + law sysexit + dac u.swapret + lac o200000 + tad u.ulistp i + dac u.ulistp i + jms dskswap; 07000 + lac 9f+t + dac u.ulistp + lac o100000 + xor u.ulistp i + dac u.ulistp i + lac u.pid + dac u.ac + lac uniqpid + dac u.pid + isz 9f+t + dac 9f+t i + isz u.rq+8 + dzm u.intflg + jmp sysexit +t= t+1 + +badcal: + clon + -1 + dac 7 +.save: + lac d1 + jms iget + cla + jms iwrite; 4096; 4096 + jms iwrite; userdata; 64 + jms iput + +.exit: + lac u.dspbuf + sna + jmp .+3 + law dspbuf + jms movdsp + jms awake + lac u.ulistp i + and o77777 + dac u.ulistp i + isz u.ulistp + dzm u.ulistp i + jms swap + +.rmes: + jms awake + lac o100000 + tad u.ulistp i + dac u.ulistp i + law 2 + tad u.ulistp + dac 9f+t + -1 + dac 9f+t i + jms swap + law 2 + tad u.ulistp + dac 9f+t + lac 9f+t i + cma + dac u.ac + dzm 9f+t i + isz 9f+t + lac 9f+t i + dac u.mq + dzm 9f+t i + jmp sysexit +t = t+1 + +.smes: + lac u.ac + sna spa + jms error + jms searchu; 1f + law 2 + tad u.ulistp + dac 9f+t + dzm 9f+t i + jms error +1: 0 + lac lu+1 + sad u.ac + skp + jmp 1b i + lac lu+2 + sad dm1 + jmp 1f + lac o100000 + tad u.ulistp i + dac u.ulistp i + law 2 + tad u.ulistp + dac 9f+t + lac u.ac + dac 9f+t i + jms swap + law 2 + tad u.ulistp + dac 9f+t + dzm 9f+t i + jmp .smes +1: + -3 + tad 8 + dac 9f+t + lac o700000 + tad 9f+t i + dac 9f+t i + isz 9f+t + isz 9f+t + lac u.pid + cma + dac 9f+t i + isz 9f+t + lac u.mq + dac 9f+t i + jmp okexit +t = t+1 + +awake: 0 + jms searchu; 1f + jmp awake i +1: 0 + lac u.pid + sad lu+2 + skp + jmp 1b i + -3 + tad 8 + dac 9f+t + lac o700000 + tad 9f+t i + dac 9f+t i + jmp 1b i +t = t+1 + +swr: +sww: + jmp .-4 i + .halt; rttyi; rkbdi; rppti; .halt + .halt; wttyo; wdspo; wppto + +.halt: jms halt + +rttyi: + jms chkint1 + lac d1 + jms getchar + jmp 1f + and o177 + jms betwen; o101; o132 + skp + tad o40 + alss 9 + jmp passone +1: + jms sleep; sfiles+0 + jms swap + jmp rttyi + +wttyo: + jms chkint1 + jms forall + sna + jmp fallr + lmq + lac sfiles+1 + spa + jmp 1f + xor o400000 + dac sfiles+1 + lacq + tls + sad o12 + jms putcr + jmp fallr +1: + lacq + dac char + jms putchar + skp + jmp fallr + jms sleep; sfiles+1 + jms swap + jmp wttyo + +rkbdi: + jms chkint1 + lac d3 + jms getchar + jmp 3f + lmq + and o155 + sad o55 + jmp 1f + lacq + and o137 + sad o134 + skp + jmp 2f +1: + lacq + xor o20 + lmq +2: + lacq + dac u.limit +1: + jms chkint1 + lac u.limit + jms dspput + jmp 1f + jms sleep; sfiles+6 + jms swap + jmp 1b +1: + lac u.limit + alss 9 + jmp passone +3: + jms sleep; sfiles+2 + jms swap + jmp rkbdi + +wdspo: + jms chkint1 + jms forall + jms dspput + jmp fallr + jms sleep; sfiles+6 + jms swap + jmp wdspo + + +rppti: + lac d4 + jms getchar + jmp .+3 + alss 9 + jmp passone + lac sfiles+3 + sma + rsa +1: + jms sleep; sfiles+3 + jms swap + jmp rppti + +wppto: + jms forall + sna + jmp fallr + lmq + lac sfiles+4 + spa + jmp 1f + xor o400000 + dac sfiles+4 + lacq + psa + jmp fallr +1: + lacq + dac char + lac d5 + jms putchar + skp + jmp fallr + jms sleep; sfiles+4 + jms swap + jmp wppto + +passone: + sad o4000 + jmp okexit + dac u.base i + lac d1 + dac u.ac + jmp sysexit + +error: 0 + -1 + dac u.ac + jmp sysexit + +chkint1: 0 + dzm .insys + jms chkint + skp + jmp .save + -1 + dac .insys + jmp chkint1 i