UFD.MAC/AU/-BF=UFD.VGN;1 -4,,/;RVT001 .IDENT /V0410X/ ; Modified Via self-locating SLP file by Ray Van Tassle 17 Dec 1980 ; to allow non-priv user to create a UFD on a non-allocated ; device. The restrictions are: ; the new UFD group # must be the same as the login group # ; the new UFD member # must be > the login member # ; the device must be an "ASN ppn:=lln:/LOGIN" ; (if NO LOGON device found for this terminal, ; assume ASN SY0:=SY0:/LOGIN) ; -/.LIST MEB/,. -/CMP U.OWN(R1),R0/ BEQ 25$ ; YES CMPB U.LUIC+1(R0),$UUIC+1 BNE 27$ ; GROUP #'S NOT SAME CMPB U.LUIC(R0),$UUIC BHI 27$ ; MEMBER # LESS THAN LOGIN MEMBER ; ; LOOK IN THE LOGICAL DEV ASN CHAIN FOR LOGON ASN FOR THIS DEVICE ; IF NONE ASSUME "ASN SY0:=SY0:/LOGIN" ; IF NOT A LOGIN DEVICE, HE CAN'T DO IT. ; CALL $SWSTK,1000$ ; FOLLOW THE CHAIN IN SYSTEM STATE MOV #1,R5 ; ASSUME NO-GOOD MOV #$LOGHD,R3 BEQ 990$ ; END OF LIST 991$: TSTB L.TYPE(R3) BPL 950$ ; NOT LOGIN-TYPE, KEEP LOOKING CMP L.UCB(R3),R0 BNE 950$ ; NOT FOR THIS TERMINAL INC R5 ; REMEMBER THAT WE FOUND A LOGON DEV ; FOR HIM CMP L.ASG(R3),R1 BEQ 998$ ; OKAY--LET HIM DO IT 950$: MOV L.LNK(R3),R3 ; STEP ALONG CHAIN BNE 991$ ; ; WE COULDN'T FIND A LOGIN DEVICE FOR ; THIS TERMINAL. ASSUME SY=SY AND TRY THAT. 990$: MOV .SY0,R3 ; CHASE DOWN REDIRECT FOR SY0 CMP R5,#1 BNE 999$ ; S.O.L. 992$: MOV U.RED(R3),R3 CMP R3,U.RED(R3) BNE 992$ CMP R3,R1 BNE 999$ ; NOPE--DON'T ALLOW IT ; ; HE CAN DO IT!!!!!!!!! 998$: CLR R5 999$: ;RETURN ;;;; ;;;; BACK TO USER STATE 1000$: TST R5 BNE 27$ ; ERROR /