From 0efda0c8bcb2348eed75ab24a5210fee0c43dde7 Mon Sep 17 00:00:00 2001 From: Lars Brinkhoff Date: Thu, 3 Nov 2016 21:12:11 +0100 Subject: [PATCH] Update MIDAS;TSRTNS from 231 to 234. --- src/midas/{tsrtns.231 => tsrtns.234} | 74 ++++++++++++++++++++-------- 1 file changed, 53 insertions(+), 21 deletions(-) rename src/midas/{tsrtns.231 => tsrtns.234} (98%) mode change 100755 => 100644 diff --git a/src/midas/tsrtns.231 b/src/midas/tsrtns.234 old mode 100755 new mode 100644 similarity index 98% rename from src/midas/tsrtns.231 rename to src/midas/tsrtns.234 index f6624ba2..67fe694b --- a/src/midas/tsrtns.231 +++ b/src/midas/tsrtns.234 @@ -69,6 +69,7 @@ IFNDEF CRFBSZ,CRFBSZ==DECBFL IFNDEF LSTBSZ,LSTBSZ==DECBFL IFNDEF ERRBSZ,ERRBSZ==DECBFL ] ;DECSW +IFN TNXSW,IFNDEF CMBFL,CMBFL==200 ; Longer for PRARG% block stuff IFNDEF CMBFL,CMBFL==50 ; Length of command buffer. IFNDEF UTIBFL,UTIBFL==400 ; " Input buffer. IFNDEF UTOBFL,UTOBFL==200 ; " BIN output buffer. @@ -594,10 +595,16 @@ TSRETN: SKIPLE A,ERRCNT ; If had any errors, IFN TNXSW,[ TSRETN: SKIPE CCLMOR ; Need to hack any more CCL? JRST RERUN ; Yeah. +ifdef prarg,[ ; I don't know if tenex has a PRARG +;;; Try to simulate .logout 1, on TNX + movei 2,[2,,0] ;2 is kill this fork code + Move 1,[.PRAST,,.FHSLF] ;yea, kill ME + Movei 3,1 + PRARG] ; ifdef PRARG TSRET1: HALTF HRROI 1,[ASCIZ/Can't continue/] PSOUT ; Better than dying randomly - JRST TSRET1 + JRST TSRET1 ; stupid system can't understand .logout 1, ] ; IFN TNXSW SUBTTL MIDAS Murder - fatal internal error handling (GOHALT) @@ -625,13 +632,18 @@ Please send a message to BUG-MIDAS @ MIT-MC describing circumstances. Error was at location: |] PSOUT MOVEI R1,.PRIOU - HRRZ B,HALTER - MOVEI C,8. + HRRZ R2,HALTER + MOVEI R3,8. NOUT ERJMP .+1 - HRROI R1,[ASCIZ / -/] - PSOUT + hrroi r1,[asciz /, ERRCOD = /] + psout + movei r1,.priou + move r2,errcod + nout + erjmp .+1 + hrroi r1,[asciz " +"] ? psout MOVE R1,HALTR1 ; Restore R1 etc. for later examination MOVE R2,HALTR2 MOVE R3,HALTR3 @@ -2988,7 +3000,7 @@ JCLINI: SETZM CMPTR BLTZ CMBFL-1,CMBUF ; Zero all but last word, SETOM CMBUF+CMBFL-1 ; and ensure last word non-zero. .BREAK 12,[5,,CMBUF] ; Try to read command string. - MOVE A,[440700,,CMBUF] + MOVE A,[010700,,CMBUF-1] ; (Must be positive; see CMD) SKIPE CMBUF ; If read a cmd-string, MOVEM A,CMPTR ; Tell TYRLD, GO2A it's there. POPJ P, @@ -3108,17 +3120,38 @@ JCLIN3: MOVE C,B ; Now flush spaces. Save last ptr for chars. ; TNX snarf of CCL file. No such thing as tmpcor, so just ; look for real file with appropriate name. -JCLIN5: SETZM CCLFLG ; Want 0 in case abort out, will reset if win. - GJINF ; Get job # in R3 - HRROI R1,CMBUF ; Use CMBUF to form filename string. +JCLIN5: SETZM CCLFLG ; Want 0 in case abort out, will reset if win. + MOVE R1,[.PRARD,,.FHSLF] + MOVEI R2,CMBUF ; First look for stuff in PRARG% block + MOVEI R3,CMBFL ; (like PA1050, see PAT.MAC for details) + PRARG% + JUMPLE R3,JCLIN7 ; No argument block, try file + SKIPE R1,CMBUF ; Get count of "files" + TLNE R1,-1 ; LH must be zero, RH non-zero + JRST JCLIN7 ; Not TMPCOR format, try file + MOVNS R1 ; Make AOBJN pointer + HRLZS R1 +JCLIN6: HRRZ R2,CMBUF+1(R1) ; Get "file" pointer + HLRZ R3,CMBUF(R2) ; Get tag for this "file" + CAIE R3,'MID ; MIDAS? + AOBJN R1,JCLIN6 ; No, next "file" + JUMPGE R1,JCLIN7 ; Try real file if lost + ADD R2,[010700,,CMBUF] ; Point at commands in buffer + MOVEM R2,CMPTR ; NB: must be positive (see CMD:) + SETOM CCLFLG ; Remember that we saw CCL + POPJ P, ; And get out of here + + ; Here when no PRARG% stuff, try for real file. +JCLIN7: GJINF ; Get job # in R3 + HRROI R1,CMBUF ; Use CMBUF to form filename string. MOVEI R2,(R3) MOVE R3,[NO%LFL+NO%ZRO+<3_18.>+10.] - NOUT ; ship out job num in 3 digits, radix 10. + NOUT ; ship out job num in 3 digits, radix 10. GOHALT HRROI R2,[ASCIZ /MID.TMP/] SETZ R3, - SOUT ; Flesh out rest of filename string. - SETZ R2, ; Make sure it's ASCIZ. + SOUT ; Flesh out rest of filename string. + SETZ R2, ; Make sure it's ASCIZ. BOUT MOVE R1,[GJ%OLD+GJ%SHT] ; Use short-form GTJFN HRROI R2,CMBUF ; and gobble name from CMBUF. @@ -3132,8 +3165,7 @@ JCLIN5: SETZM CCLFLG ; Want 0 in case abort out, will reset if win. MOVEI R4,^J ; or LF seen. SIN JUMPLE R3,APOPJ ; Forget it if too big for buffer!! - - MOVE R2,[440700,,CMBUF] ; Aha, we've got something, so set + MOVE R2,[010700,,CMBUF-1] ; Aha, we've got something, so set MOVEM R2,CMPTR ; pointer to slurped stuff. SETOM CCLFLG HRROI R2,UTIBUF ; Slurp rest into larger buffer, @@ -3257,7 +3289,7 @@ JCLINI: SETZM CMPTR JRST .+1] SKIPN CMBUF ; One last check for it to be there RET ; Alas, there is none - MOVE A,[440700,,CMBUF] ; Load a byte pointer to the command + MOVE A,[010700,,CMBUF-1] ; Load a byte pointer to the command SETOM CCLFLG MOVEM A,CMPTR ; There is, set command pointer JCLIN1: ILDB B,A @@ -3443,11 +3475,11 @@ SUBTTL Command Line Reader (CMD) .SCALAR CMDPSV ; Saves read ptr into CMBUF, for re-scanning. -CMD: MOVE T,CMPTR ; Check JCL. - CAMN T,[-1] ; If Tenex-type "JCL", - JRST CMD06X ; normal TTY input 'cept no prompt. - JUMPL T,CMD06 ; For DDT/RSCAN/CCL strings, type nothing out. - CALL CRR ; Else must type a CRLF, prompt etc. +CMD: SKIPLE T,CMPTR ; If we have DDT or RSCAN or CCL string, + JRST CMD06 ; go hack it without typing anything out. + CAMN T,[-1] ; If Tenex-type "JCL", normal TTY input 'cept no prompt + JRST CMD06X + CALL CRR ; Nope, must type a CRLF, prompt etc. CMD05: TYPE "*" CMD06X: SETZB T,CMPTR CMD06: MOVEM T,CMDPSV ; Save pointer for later restoration