;-*-MIDAS-*- TITLE X ;REMEMBER AND RE-EXECUTE A COMMAND STRING. .INSRT RMS;MACROS > TYOC==1 DSKC==2 IFNDEF CMDBFL,CMDBFL==1000. BEG: .SUSET [.RXUNAM,,XUNAME] .SUSET [.RHSNAM,,HSNAME] .SUSET [.RXJNAM,,B] LSH B,-6 TLO B,(SIXBIT/_/) .SUSET [.ROPTIO,,A] TLNN A,OPTCMD JRST NOJCL .BREAK 12,[5,,CMDBUF] SYSCAL OPEN,[[.BAO,,DSKC] ? ['DSK,,] ? XUNAME ? B ? HSNAME] JRST NODSK SKIPN CMDBUF JRST NOJCL MOVE A,[440700,,CMDBUF] LOOP: ILDB C,A CAIN C,^C JRST NOLOOP JUMPE C,NOLOOP CAIE C,^M ;FIND THE CR ENDING THE JCL JRST LOOP MOVEI C,^J ;AND PUT A LF AFTER IT. IDPB C,A NOLOOP: SETZ A, SKIPE CMDBUF(A) AOJA A,.-1 MOVNS A HRLZS A HRRI A,CMDBUF .IOT DSKC,A NOJCL: SYSCAL OPEN,[[.BAI,,DSKC] ? ['DSK,,] ? XUNAME ? B ? HSNAME] JRST NOFILE MOVE A,[-CMDBFL,,CMDBUF] .IOT DSKC,A SETZM (A) SUBI A,1 ;FLUSH CONTROL-C'S AT EOF HRLI A,010700 FLSCTC: LDB B,A CAIE B,^C JRST FLSCTX MOVEI B,0 DPB B,A ADD A,[070000,,] JUMPGE A,FLSCTC FLSCTX: .VALUE VALCOM NODSK: MOVEI A,[ASCIZ/CAN'T WRITE DISK FILE/] JRST NO NOFILE: MOVEI A,[ASCIZ/CAN'T READ DISK FILE/] JRST NO NO: SYSCAL OPEN,[[.UAO,,TYOC] ? ['TTY,,]] .VALUE HRLI A,440700 NO1: ILDB B,A JUMPE B,KILL .IOT TYOC,B JRST NO1 KILL: DPAUSE .BREAK 16,40000 VALCOM: ASCII/:KILL / CMDBUF: BLOCK CMDBFL -1 XUNAME: 0 ;USER'S XUNAME HSNAME: 0 ;USER'S HOME DIRECTORY. DEBUG: -1 ;-1 IF DEBUGGING. END BEG