; ; AUTHOR: ; R. STODOLA ; THE INSTITUTE FOR CANCER RESEARCH ; 7701 BURHOLME AVE. ; PHILADELPHIA, PA. 19111 ; ; ******************************************************* ; * * ; * THIS SOFTWARE WAS DEVELOPED WITH SUPPORT * ; * FROM THE NATIONAL INSTITUTES OF HEALTH: * ; * NIH CA06927 * ; * NIH CA22780 * ; * * ; * DIRECT INQUIRIES TO: * ; * COMPUTER CENTER * ; * THE INSTITUTE FOR CANCER RESEARCH * ; * 7701 BURHOLME AVENUE * ; * PHILADELPHIA, PENNSYLVANIA 19111 * ; * * ; * NO WARRANTY OR REPRESENTATION, EXPRESS OR * ; * IMPLIED, IS MADE WITH RESPECT TO THE * ; * CORRECTNESS, COMPLETENESS, OR USEFULNESS * ; * OF THIS SOFTWARE, NOR THAT USE OF THIS * ; * SOFTWARE MIGHT NOT INFRINGE PRIVATELY * ; * OWNED RIGHTS. * ; * * ; * NO LIABILITY IS ASSUMED WITH RESPECT TO * ; * THE USE OF, OR FOR DAMAGES RESULTING FROM * ; * THE USE OF THIS SOFTWARE * ; * * ; ******************************************************* ; * * ; * THIS SOFTWARE WAS DESIGNED FOR USE ON A * ; * PDP-11/70 OPERATING UNDER IAS V2.0 USING * ; * THE IAS PDP-11 MACRO ASSEMBLER. * ; * * ; ******************************************************* .TITLE RUNSTS -- RUN A SYSTEM SUBTASK .IDENT /ICR001/ .MCALL ERBLDF,CHKARG ; ; THIS UNDOCUMENTED SUBROUTINE ALLOWS PROGRAMS TO CALL SYSTEM PROGRAMS ; AS TIMESHARING SUBTASKS. THE CALLING SEQUENCE IS: ; CALL RUNSTS(IDENT,COMMANDLINE,MESSAGE,TYPE,ERROR) ; IDENT IS THE IDENT RETURNED TO THE USER AS IN RUNST. ; COMMANDLINE IS THE COMMAND LINE. ; MESSAGE IS AN OPTIONAL MESSAGE. ; TYPE IS THE TYPE OF RUN: -1 = INSTALLED TASK (NON SYSTEM) ; 0 = MCR CALLABLE TASK (...XXX) ; 1 = IAS SYSTEM LIBRARY TASK ($$$XXX) ; ERROR IS THE OPTIONAL ERROR STATUS BLOCK. ; ; ERM=3. ERB: ERBLDF RUNSTS,ERM,5,FATAL ; SDB: SDBDF$ ; LEN: .WORD 0 ; RUNSTS:: MOV #ERB,R4 ;INITIALIZE CALL .CERR. CALL .NIDNT ;GET FREE TDB RETURN ;ERROR, SO RETURN. MOV R0,@2(R5) ;SAVE IDENT FOR USER MOV #-ERM,R2 ;SET ERROR MESSAGE NUMBER. CHKARG 3,NOSND ;IF MESSAGE, SET UP SDB MOV 6(R5),T.SNDA+SDB ;SAVE MESSAGE ADDRESS MOV R3,T.SNDT+SDB ;SAVE TDB. MOV T.TESB(R3),T.SESB+SDB ;SAVE ESB ADDRESS. MOV #SDB,R1 BR GORUN NOSND: CLR R1 ;FLAG NO SDB. GORUN: MOV 4(R5),R0 ;GET LENGTH OF COMMAND LINE. CLR LEN L1: TSTB (R0)+ BEQ L2 INC LEN BR L1 L2: MOV #TS.DOT,R4 TST @10(R5) BEQ L3 BLT 10$ MOV #TS.DOL,R4 BR L3 10$: MOV #TS.INS,R4 L3: RUN$T R3,4(R5),LEN,R4,R1,,..STER BCS RET MOV @2(R5),-2(R3) ;DECLARE TDB IN USE IF NO ERROR. RET: RETURN .END