From 185147cd35730fefb6b7ddd6b91f5f2ca560ade6 Mon Sep 17 00:00:00 2001 From: Lars Brinkhoff Date: Mon, 9 Jan 2017 09:36:36 +0100 Subject: [PATCH] Reconstruct SAIL; STKTRN 39 from disassembly of SAIL; FAIL BIN. --- Makefile | 2 +- build/build.tcl | 4 + src/sail/stktrn.39 | 289 +++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 294 insertions(+), 1 deletion(-) create mode 100644 src/sail/stktrn.39 diff --git a/Makefile b/Makefile index a19e22fa..5e2f3245 100644 --- a/Makefile +++ b/Makefile @@ -4,7 +4,7 @@ EMULATOR ?= simh SRC = system syseng sysen1 sysen2 sysen3 sysnet kshack dragon channa \ midas _teco_ emacs emacs1 rms klh syshst sra mrc ksc eak gren \ bawden _mail_ l lisp liblsp libdoc comlap lspsrc nilcom rwk \ - inquir acount gz sys decsys ecc alan + inquir acount gz sys decsys ecc alan sail DOC = info _info_ sysdoc kshack _teco_ emacs emacs1 BIN = sysbin device emacs _teco_ inquir sail diff --git a/build/build.tcl b/build/build.tcl index 03d4e0b8..e332e007 100644 --- a/build/build.tcl +++ b/build/build.tcl @@ -929,6 +929,10 @@ respond "*" ":kill\r" respond "*" ":midas decsys;_decbot\r" expect ":KILL" +# stktrn +respond "*" ":fail sail;stktrn rel_sail;stktrn >\r" +respond "*" "\032:kill\r" + # who% respond "*" ":midas sys1;ts who%_sysen3;who%\r" expect ":KILL" diff --git a/src/sail/stktrn.39 b/src/sail/stktrn.39 new file mode 100644 index 00000000..2b6c11cd --- /dev/null +++ b/src/sail/stktrn.39 @@ -0,0 +1,289 @@ +;Reconstructed from SAIL;FAIL BIN disassembly. + +TITLE STINK Translator + +T_1 +STOBLK_2 +STNWD_4 +STOWD_5 +STBTYP_6 +STOSBC_7 +STNSBC_10 +STNBLK_11 +STCKS_12 +STCODE_13 +STNSBL__14 +BC_14 +STP_15 +P_17 + +INTGLB__20 +STNBT__21 +STOSBL__22 +STNBL__40 +STGSTL__41 + +INTERNAL STKTRN +EXTERNAL GBOUT1 + +STKTRN: MOVEM P,STACS+17 ;141 + MOVEI P,STACS + BLT P,STACS+16 + MOVE P,STACS+17 + HRRZ STNBLK,(BC) + JUMPE STNBLK,STSKRT + CAILE STNBLK,35 + HALT . + MOVNS STNBLK + MOVSM STNBLK,STOBLK + HRRI STOBLK,1(BC) + MOVEI STOSBC,0 + HLRZ STBTYP,(BC) +STBINT: HRRZI STNBLK,STNBUF ;156 + MOVE STP,[-41,,STGSTU] + SETZB STCKS,STNBUF + MOVE T,[STNBUF,,STNBUF+1] + BLT T,STGPTR-1 + HRROI STNSBC,777777 + SETZB STNWD,STGSTU + CAILE STBTYP,STNBT + HALT . + PUSHJ P,STBMPR + MOVE T,STBDSP(STBTYP) + PUSHJ P,(T) + HLR BC,STNBLK + MOVNS BC + HRLS BC + HRRI BC,STNBUF + MOVEM BC,STACS+14 + SKIPGE STBDSP(6) +STSKRT: AOS (P) ;200 + MOVSI P,STACS + BLT P,P + POPJ P, +STBDSP: 0,,STKBLK ;204 + 3,,STREL + 10,,STSYM + 30,,STHIGH + 15,,STENT + 4,,STEND + -1,,STNAME + 1001,,STCOP + 21,,STCOP + 22,,STCOP + 23,,STCOP + 26,,STLVAR + 27,,STLVAR + 24,,STLVAR + 25,,STLVAR + 25,,STLVAR + 20,,STGLBS + 16,,STENT +STBMPR: LDB T,[221106,,STBDSP] ;226 + DPB T,[310700,,STNWD] + CAIE T,1 + JRST STPUT + LDB T,[331006,,STBDSP] + DPB T,[001000,,STNWD] +STPUT: MOVEM STNWD,(STNBLK) ;234 + ADD STNBLK,[1,,1] + JUMPL STNSBC,STPUT0 + IDPB STCODE,STPPTR + SOJLE STNSBC,STPUT0 +CPOPJ: POPJ P, +STPUTF: HLRZ T,STNBLK ;242 + SUBI T,1 + DPB T,[220700,,STNBUF] + ADDI T,1 + MOVNS T + HRLI T,STNBUF + MOVSS T + PUSHJ P,STCKIT + AOBJN T,.-1 + SETCAB STCKS,(STNBLK) + ADD STNBLK,[1,,1] + POPJ P, +STPUT0: MOVEI STNSBC,BC ;256 + HRLI T,440300 + HRRI T,(STNBLK) + MOVEM T,STPPTR + ADD STNBLK,[1,,1] + POPJ P, +STCKIT: JCRY0 .+1 ;264 + ADD STCKS,(1) + JCRY0 [AOJA STCKS,.+1 + IMULI STNWD,50 + JRST STSQUZ+3] + POPJ P, +STOUT: PUSH P,STCODE ;270 + MOVE STCODE,STBTYP + HLRZ BC,STNBLK + MOVNS BC + HRLI BC,STNBUF + MOVSS BC + PUSHJ P,GBOUT1 + POP P,STCODE + POPJ P, +STGET: MOVE 5,(STOBLK) ;301 + SOJL 7,STGET0 + ILDB STCODE,STGPTR + AOBJN STOBLK,CPOPJ + POPJ P, +STGET0: HRLI T,440200 ;306 + HRRI T,(STOBLK) + MOVEM T,STGPTR + MOVEI 7,STOSBL + AOJA STOBLK,STGET +STREL: PUSHJ P,STGET ;313 + HRRM STOWD,STNBUF + MOVEI T,2 + CAIN STCODE,0 + DPB T,[310700,,STNBUF] +STCOP: PUSHJ P,STGET ;320 + MOVE STNWD,STOWD + PUSHJ P,STPUT + JUMPL 2,STCOP + PUSHJ P,STPUTF + POPJ P, +STSYM: MOVE STNBLK,[000001,,STNBUF+1] +STSYM1: PUSHJ P,STGET ;327 + MOVE STNWD,STOWD + PUSHJ P,STGET + MOVEM STOWD,STSVAL + PUSHJ P,STSQUZ + PUSHJ P,@STSDSP(1) + JUMPL STOBLK,STSYM1 + PUSHJ P,stputf + SKIPN STOWD,STGSTU + POPJ P, + CAME STNBLK,[000002,,STNBUF+2] + PUSHJ P,STOUT + MOVEI STBTYP,20 + PUSHJ P,STBINT + POPJ P, +STSQUZ: LDB T,[400400,,STNWD] ;346 + TLZ STNWD,740000 + JUMPE STNWD,STSYM2 + CAMGE STNWD,[000606,,500000] + JRST [IMULI STNWD,50 + JRST STSQUZ+3] +STSYM2: DPB T,[400400,STNWD] + POPJ P, +STSDSP: STOP ;355 + STIGS + STLCL + STBN + STOP + STIGS-1 + STOP + STOP + STOP + STIGS-1 + STLCL + STOP + STGRQ + STIGS-1 + STOP + STOP +STOP: HALT . ;375 +STBN: TLZ STNWD,100000 +STLCL: DPB STCODE,[410200,,STNWD] ;377 + MOVEM STNWD,(STNBLK) + MOVE STNWD,STSVAL + MOVEM STNWD,1(STNBLK) + ADD STNBLK,[2,,2] + POPJ P, + JFCL +STIGS: AOS STGSTU ;406 + PUSH STP,STNWD + PUSH STP,STSVAL + PUSH STP,STCODE + HRLM T,(15) + POPJ P, +STGLBS: MOVEI STCODE,0 ;414 + MOVE STNWD,1(15) + PUSHJ P,stput + HRR STCODE,3(15) + MOVE STNWD,2(15) + PUSHJ P,STPUT + ADD STP,[3,,3] + JUMPGE STP,[HALT .] + SOJG STOWD,STGLBS + PUSHJ P,stputf + POPJ P, +STGRQ: JUMPGE STOWD,STIGS ;427 + TLNN STOWD,100000 + JRST STIGS + PUSH P,T + EXCH STOWD,STNWD + PUSHJ P,STSQUZ + MOVEM STNWD,STSVAL + MOVE STNWD,STOWD + POP P,T + JRST STIGS +STNAME: PUSHJ P,STGET ;441 + MOVE STNWD,STOWD + PUSHJ P,STSQUZ + MOVEM STNWD,STPRGN + JUMPGE STOBLK,CPOPJ + PUSHJ P,STGET + TRNE STOWD,777777 + HALT . + POPJ P, +STEND: PUSHJ P,STGET ;452 + HRLI STOWD,STGPTR-1 + MOVEM STOWD,STNBUF + SETZM STNBUF+1 + SETZM STNBUF+2 + MOVE T,[-3,,STNBUF] + PUSHJ P,STCKIT + AOBJN T,.-1 + SETCAM STCKS,STNBUF+3 + SETZB STNWD,STCKS + EXCH STNWD,STPRGN + TLO STNWD,40000 + MOVSI T,1001 + MOVEM T,STNBUF+4 + MOVEM STNWD,STNBUF+5 + MOVE T,[-2,,STNBUF+4] + PUSHJ P,STCKIT + AOBJN T,.-1 + SETCAB STCKS,STNBUF+6 + SETOM STNBUF+7 + MOVE STNBLK,[10,,STNBUF+10] + POPJ P, +STENT: MOVE STNBLK,[1,,STNBUF+1] ;500 +STENT1: PUSHJ P,STGET + MOVE STNWD,STOWD + PUSHJ P,STSQUZ + TLZ STNWD,740000 + MOVEM STNWD,(STNBLK) + ADD STNBLK,[1,,1] + JUMPL STOBLK,STENT1 + JRST stputf +STKBLK: MOVEI STNBLK,STNBUF ;511 + ADD BC,[1,,1] + MOVE STOWD,(BC) + MOVEM STOWD,(STNBLK) + ADD STNBLK,[1,,1] + AOBJN BC,.-3 + JRST STPUTF +STLVAR: ;520 +STLDLB: ;520 +STLDRL: ;520 +STINDR: ;520 +STHIGH: ;520 + JRST STCOP ;520 +STVERS: SIXBIT /STKTRN/ + .FNAM2 +STACS: BLOCK 20 ;523 +STNBUF: BLOCK 40 ;543 +STGPTR: 0 ;603 +STPPTR: 0 +STSVAL: 0 +STGSTU: 0 +STGSTK: BLOCK 42 ;607 +STPRGN: 0 ;651 +PATCH: BLOCK 10 ;652 + +END STKTRN