.TITLE RPOI .IDENT /130984/ ; ; PROCEDURE RPOI(Task:Rad56; CmdPtr:Address; CmdLen: Integer; ; VAR Info: RPOI_Info_rec);EXTERNAL; ; ; { This procedure requests a task, and passes all offspring information ; to that task. Used primarily with CLIs, or when spawnning 'through' ; MCR... ; ; Directive status is available in DSW upon return. ; ; Jim Bostwick 13-Sep-84 } ; ; Version: 1.0 (P3UTIL version) ; File: PA3:[22,310]RPOI.MAC ; Author: Jim Bostwick 13-Sep-84 (clone from P2UTIL ) ; History: ; ; Last Edit: 13-APR-1988 17:29:51 ; ; Assemble with PASMAC.MAC as prefix file. ; ; NOTE: This procedure uses a local data PSECT (CLIDAT), and thus ; may NOT be included in a shared resident library!!! ; ; j.m.b. 130984 ; .MCALL RPOI$, DIR$ ;LOCAL DATA .PSECT CLIDAT, D, RW RDPB: RPOI$ ,,,,,,,,,,,, ; TEMPLATE RPOI DPB .PSECT ; Define RPOI_Info in macro terms... RECORD INFOREC ; RPOI_INFO FIELD DEVICE, INTEGER ; CH2 FIELD UNIT, INTEGER ; UNIT NUMBER FIELD GROUP, INTEGER ; UIC GROUP NUMBER FIELD MEMBER, INTEGER ; UIC MEMBER NUMBER FIELD RNAM, 4 ; RAD50 RUN NAME FIELD FLAGS, INTEGER ; CONTROL FLAGS FIELD PARENT 4 ; RAD50 PARENT NAME FIELD POCB, ADDRESS ; PARENT OCB ADDRESS ENDREC PROC RPOI PARAM TASK, 2*INTEGER ; RAD50 TASK TO 'SPAWN' PARAM CMDPTR, ADDRESS ; POINTER TO COMMAND BUFFER PARAM CMDLEN, INTEGER ; LENGTH OF COMMAND BUFFER PARAM INFO, ADDRESS ; POINTER TO INFO BLOCK ; PARAM DSW, ADDRESS ; POINTER TO DSW SAVE BEGIN ; COPY PARAMETERS TO TEMPLATE DPB.... MOV #RDPB, R0 ; R0-> RPOI DPB MOV TASK(SP), R.POTK(R0) ; COPY TASK NAME MOV TASK+2(SP), R.POTK+2(R0) ; COPY REST OF TASK NAME MOV CMDPTR(SP), R1 ; GET BUFFER ADDRESS MOV CMDLEN(SP), R.POBL(R0) ; COPY COMMAND LENGTH BNE 1$ ; IF ZERO, IGNORE BUFFER ADDRESS CLR R1 1$: MOV R1, R.POBF(R0) ; COPY BUFFER ADDRESS MOV INFO(SP), R1 ; R1-> INFO RECORD MOV DEVICE(R1), R.PODV(R0) ; COPY DEVICE NAME MOVB UNIT(R1), R.POUN(R0) ; COPY DEVICE UNIT AS BYTE MOVB GROUP(R1), R.POUG(R0) ; COPY GROUP NUMBER AS BYTE MOVB MEMBER(R1), R.POUM(R0) ; COPY MEMBER NUMBER AS BYTE MOV RNAM(R1), R.POTN(R0) ; COPY RUN NAME MOV RNAM+2(R1), R.POTN+2(R0) ; AND REST OF RUN NAME MOVB FLAGS(R1), R.POSC(R0) ; COPY FLAGS AS BYTE MOV PARENT(R1), R.POPT(R0) ; COPY PARENT TASK NAME MOV PARENT+2(R1), R.POPT+2(R0) ; AND REST OF PARENT NAME MOV POCB(R1), R.POOA(R0) ; COPY PARENT OCB ADDRESS ; EXECUTE THE MUTHA... DIR$ #RDPB ; EXECUTE RPOI ENDPR .END