OU:INSFL.MAC;2/AU=IN:[12,10]INSFL.VGN;1 \ -2,2 .IDENT /09XA/ -/HH113/+1,, ; ; JGD16 23-JUL-79 ON RUN $ OR INS $ LOOK ALSO IN $LBUIC FOR ; TASK. ; ; JGD17 25-SEP-80 DON'T CHECK EXECUTE ACCESS IF TI: PRIVILEGED ; MODIFY WARNING MESSAGE ; ; JGD18 03-DEC-80 DON'T ENDLESSLY LOOP IF A '$' SEEN AFTER AN ; OPTION SWITCH. ; ; JGD19 24-MAR-82 Also search $NTUIC for task. Search order is ; LIBUIC, SYSUIC, NETUIC ; % -/; LOCAL DATA/+1,,/; JGD16/ DLRFLG: .WORD 0 ; Set if '$' seen, increment each pass ; through '$' code BUFADR: .WORD 0 ; TEMP STORAGE FOR COMMAND LINE BUFFER ADDRESS -/ERR9:/,.,/; JGD17/ ERR9: .ASCII <15>/INS -- Privilege violation; Execute privilege not allowed/ -/.IFT/,,/; JGD16/ MOV R5,BUFADR ; IN CASE WE HAVE TO SCAN THROUGH TWICE -/FINIT$/,,/; JGD16/ 11$: ; REF LABLE -/15$:/ -/BNE 121$/,,/; JGD18/ INC DLRFLG ; COUNT HOW MANY TIMES WE SEE A '$' -,,/; JGD19/ CMP DLRFLG,#3 ; HAVE WE SEEN TOO MANY '$'? -,,/; JGD18/ BLE 1500$ ; NO, CONTINUE JMP INSFL2 ; YES, FLAG AS SYNTAX ERROR IF SO 1500$: ; REF LABLE -/$SYUIC/,.+1,/; JGD19/ CMP DLRFLG,#1 ; Is this the first time through BEQ 1501$ ; IF EQ, must be LIBUIC CMP DLRFLG,#2 ; Is this the second pass through BEQ 1502$ ; If EQ, must be NETUIC BISB $NTUIC+1,R1 ; Set group number for NTUIC BR 1510$ ; Do it 1501$: BISB $LBUIC+1,R1 ; SET GROUP NUMBER BR 1510$ ; Do it 1502$: BISB $SYUIC+1,R1 ; Set group number for SYSUIC BR 1510$ ; Do it 1510$: CLR R2 ; SUPPRESS LEADING BLANKS -/$SYUIC/,.,/; JGD19/ CMP DLRFLG,#1 ; Is this the first time through BEQ 1511$ ; If EQ yes, try LIBUIC CMP DLRFLG,#2 ; Is this the second time through BEQ 1512$ ; If EQ, yew try SYSUIC BISB $NTUIC,R1 ; Finally try NETUIC BR 1520$ ; Do IT 1511$: BISB $LBUIC,R1 ; Set LIBUIC member # BR 1520$ ; And proceed 1512$: BISB $SYUIC,R1 ; Set SYSUIC member # BR 1520$ ; And procede 1520$: ; REF LABLE -/16$:/ -/80./+1,.+1,/; JGD17/ BLO 12$ ; IF LO, NO GET NEXT CHARACTER JMP INSFL2 ; IF HIS, STRING TOO BIG -/17$:/ -/BEQ INSFL2/,.,/; JGD18/ BEQ 1902$ ; YES -/INSFL3/,.,/; JGD16/ BNE 19$ ; IF NE, NO -,,/; JGD18/ TST DLRFLG ; MAYBE THIS IS NOT A '$' SCAN AT ALL BEQ 1903$ ; IF SO, FILE NOT FOUND -,,/; JGD19/ CMP DLRFLG,#3 ; IS THIS THE LAST TIME TO TRY -,,/; JGD18/ BEQ 1903$ ; YES, FILE NOT FOUND -,,/; JGD16/ MOV BUFADR,R5 ; RESTORE ADDRESS IN R5 CLR OPTN ; RESET OPTION FLAG JMP 11$ ; TRY ONE MORE TIME USING LIBUIC 19$: ; REF LABLE -/BEQ INSFL6/,.,/; JGD18/ BEQ 1906$ ; YES -/BEQ INSFL7/,.+1,/; JGD18/ BEQ 1907$ ; YES JMP INSFL8 ; NO, DEVICE OFFLINE 1902$: JMP INSFL2 ; SYNTAX ERROR 1903$: JMP INSFL3 ; FILE NOT FOUND 1906$: JMP INSFL6 ; DEVICE NOT MOUNTED 1907$: JMP INSFL7 ; DEVICE NOT IN SYSTEM -/ACCESS TO FILE IT CAN'T BE/+1,,/; JGD17/ MOV $TKTCB,R2 ; LETS FIND OUT IF TI: IS PRIVILEGED MOV T.UCB(R2),R2 ; BY FINDING ITS UCB BIT #U2.PRV,U.CW2(R2); AND TRACKING DOWN THE PRIV BIT BNE 250$ ; IF NE, TI: IS PRIV, DON'T CHECK FIL ACCESS /