;+ ; #.#.# ; ; ; SPAWN INSTALL COMMAND (INST) ; ; ; FUNCTION: ; Spawn the install task with a zero-terminated ; command line and return status. ; ; ; CALLING SEQUENCE: ; ; CALL INST (TNAME, ERR) ; ; WHERE: ; ARGUMENT = DESCRIPTION ACCESS ; TNAME = RAD50 TASK NAME PA ; ERR = EXIT STATUS RE ; ; SUBROUTINES REFERENCED: ; SPWN$S WTSE$S $C5TA ; ; ; DESCRIPTION: ; INST converts the rad50 name to ascii and stores it in a ; command line to 'INSTLL'. All tasks must reside in RN0::[7,7]. ; ; ; SPECIAL CONSIDERATIONS: ; ; 1. INST uses event flag 24. ; ; 2. The installer task must be installed as 'INSTLL'. ; ; 3. The task to be installed must be in RN0:[7,7] ; ; ;- .LIST MEB .MCALL SPWN$S,WTSE$S .PSECT ELF$D,RW,D,LCL,REL,CON INSNAM: .RAD50 'INSTLL' TT: .ASCII 'TT' ZERO: .WORD 0 STRING: .ASCII 'INS RN0:[7,7]' TASK: .ASCII ' ' SSIZE=.-STRING .EVEN EFLAG: .WORD 24. ; .TITLE INST .PSECT ELF$I,RO,I,LCL,REL,CON INST:: MOV R0,-(SP) ; SAVE REGS WE'LL BE USING MOV R1,-(SP) MOV R2,-(SP) MOV R3,-(SP) MOV R4,-(SP) MOV 2(R5),R3 ; FETCH ADDRESS OF TASK NAME MOV (R3)+,R1 ; FETCH FIRST PART OF NAME MOV #TASK,R0 ; FETCH OUTPUT ADDRESS CALL $C5TA ; CONVERT TO ASCII MOV (R3),R1 ; FETCH SECOND PART OF TASK NAME CALL $C5TA ; CONVERT TO ASCII MOV 4(R5),R4 ; FETCH RETURN STATUS ADDRESS MOV #STRING,R1 ; COMMAND LINE MOV #SSIZE,R2 SPWN$S #INSNAM,,,,,EFLAG,,R4,R1,R2,ZERO,TT WTSE$S EFLAG ; WAIT FOR COMMAND TO COMPLETE MOV (SP)+,R4 ; RESTORE REGS MOV (SP)+,R3 MOV (SP)+,R2 MOV (SP)+,R1 MOV (SP)+,R0 RTS PC ; RETURN .END