.TITLE PRICHK .SBTTL TITLE PAGE .IDENT /MRH001/ ; ; F.BORGER ; MICHAEL REESE MEDICAL CENTER ; DEPARTMENT OF MEDICAL PHYSICS ; JULY 78 ; ; THIS MODULE IS AVAILABLE FOR LINKING INTO MCR, MCI ETC ; ; IT PERFORMS THE SAME FUNCTION OF PDS, IE ; A/LOOKS AT ...XXX TASK USER IS REQUESTING ; ; B/CHECKS PRIVILEDGE WORD OF USER PROFILE FILE TO SEE IF REQUESTOR ; HAS PRIVILEDGE ON CALLING, ; R0 MUST CONTAIN PROTECTION WORD, OBTAINED FROM U.RBOF THE TI PUD ; R1 MUST CONTAIN RAD 50 3 LETTER TASK NAME ; ; C/RETURNS WITH 0 IN R0 AS SUCCESS INDICATOR ; ; D/RETURNS WITH -1 IN R0 AS SUCCESS INDICATOR ; ; E/OTHER REGISTERS UNCHANGED .PAGE .SBTTL TABLES OF TASKS & PRIVILEGES NEEDED ; ; DEFINE PRIV. BIT VALUES FOR IAS ; ;PRIVILEGE BIT DEFINITIONS FOR CURRENT SYSTEM ; PR.FIL=1 ;file work (PIP,VeriFY,FLX,DMP,QUE,RECover,SDV,SRD,SRT,TUI) PR.RUN=2 ;Task manipulation (INStall,REMove,REPlace,RUN) PR.BAS=4 ;Reese BASic, BASIC+2, etc. PR.COB=10 ;COBOL (not implemented) PR.COR=20 ;was CORal, used for editors (EDI, EDT, TECo) PR.FOR=40 ;FORtran, (FV2,F4P,F77,etc.) PR.LIN=100 ;Linkers (TKB,TKX) PR.MAC=200 ;MACro PR.SCI=400 ;super user, SAVe, OPEn,BAD,ROLlin,etc. PR.SUB=1000 ;Set User at Batch (if bit clear, keep his task at batch level) PR.MCR=2000 ;REESE Hostile Terminal (If bit clear, set as Hostile) PR.DEV=4000 ;Device management (DisMOunt,MOUnt,REDirect,UNLoad) PR.DUM=10000 ;DuMP PR.LIB=20000 ;LIBrarian PR.SYS=40000 ;not implemented PR.RTC=100000 ;not implemented ; ;DEFINE MACRO TO GENTERATE TABLES .MACRO TABLE TASK,PRFLAG .PSECT NAMES .RAD50 ?TASK? .PSECT FLAGS .WORD PRFLAG .ENDM .PAGE .SBTTL THE PRIVILEGE TABLES ; ;MAKE ROOM FOR TABLES IN SEPARATE PSECTS ; ; .PSECT NAMES,ro NAMES: .PSECT FLAGS,ro FLAGS: .PSECT code,ro ; NOW GENERATE TABLES ; TABLE AFO,PR.FIL TABLE ATT,PR.SCI TABLE AT.,PR.MCR TABLE AZP,PR.SCI TABLE BAD,PR.SCI TABLE BAK,PR.SCI TABLE BAS,PR.BAS TABLE BA2,PR.BAS TABLE BA3,PR.BAS TABLE BA4,PR.BAS TABLE BA5,PR.BAS TABLE BA6,PR.BAS TABLE BA7,PR.BAS TABLE BA8,PR.BAS TABLE BA9,PR.BAS TABLE B10,PR.BAS TABLE B11,PR.BAS TABLE BTW,PR.BAS TABLE BTH,PR.BAS TABLE BDI,PR.FIL TABLE BLO,PR.FIL TABLE BOO,PR.SCI TABLE BP2,PR.BAS TABLE BRE,PR.SCI TABLE BRI,PR.FIL TABLE BRU,PR.SCI TABLE B2R,PR.BAS TABLE B2T,PR.BAS TABLE B2X,PR.BAS TABLE CDA,PR.SCI TABLE CMD,PR.SCI TABLE CMP,PR.FIL TABLE CON,PR.SCI TABLE COP,PR.FIL TABLE COR,PR.SCI ;?? TABLE CZP,PR.SCI TABLE DAN,PR.FIL TABLE DEL,PR.FIL TABLE DIA,PR.FIL TABLE DIR,PR.FIL TABLE DMO,PR.DEV TABLE DMP,PR.FIL TABLE DOB,PR.SCI TABLE DOC,PR.FIL TABLE DSC,PR.SCI TABLE EDI,PR.COR TABLE EDT,PR.COR TABLE EDX,PR.COR TABLE FDU,PR.FIL TABLE FHD,PR.FIL TABLE FLB,PR.SCI TABLE FLX,PR.FIL TABLE FOR,PR.FOR TABLE FV2,PR.FOR TABLE F4P,PR.FOR TABLE F77,PR.FOR TABLE FMT,PR.SCI TABLE FRE,PR.FIL TABLE FRG,PR.SCI TABLE HOL,PR.SCI TABLE IDX,PR.FOR TABLE INI,PR.SCI TABLE INS,PR.RUN TABLE INV,PR.SCI TABLE KED,PR.COR TABLE K52,PR.COR TABLE LBR,PR.LIB TABLE LIS,PR.FIL TABLE LOA,PR.SCI TABLE LST,PR.FIL TABLE LUN,PR.SCI TABLE MAC,PR.MAC TABLE MPP,PR.MAC ;AND THE MACRO PRE-PROCESSOR FOR RATFIV TABLE MAX,PR.MAC TABLE MEM,PR.SCI TABLE MFT,PR.SCI TABLE MMC,PR.SCI ;MAG-TAPE COPY TABLE MOU,PR.DEV TABLE MPG,PR.FIL TABLE MSM,PR.SCI ;MESSAGE MONITOR TABLE MTC,PR.SCI TABLE MUN,PR.COR TABLE OPE,PR.SCI TABLE OPR,PR.SCI TABLE PAG,PR.FIL TABLE PAT,PR.SCI TABLE PIP,PR.FIL TABLE PRI,PR.FIL TABLE PRO,PR.FIL TABLE PSE,PR.SCI TABLE PUR,PR.FIL TABLE PWE,PR.SCI TABLE QUE,PR.FIL TABLE RAT,PR.FOR TABLE RA5,PR.FOR TABLE RCV,PR.FIL TABLE REA,PR.SCI TABLE REC,PR.FIL TABLE RED,PR.DEV TABLE REM,PR.RUN TABLE RES,PR.FOR TABLE REP,PR.RUN TABLE ROL,PR.SCI TABLE RUN,PR.RUN TABLE SAL,PR.SCI TABLE SAV,PR.SCI TABLE SDV,PR.FIL TABLE SET,PR.SCI TABLE SGN,PR.SCI TABLE SLP,PR.COR TABLE SOR,PR.FIL TABLE SRD,PR.FIL TABLE SRT,PR.FIL TABLE SWA,PR.FIL TABLE SYD,PR.SCI TABLE SYE,PR.SCI TABLE TCP,PR.SCI ;TAPE COPY TABLE TCV,PR.COR TABLE TEC,PR.COR TABLE TEN,PR.COR TABLE TEQ,PR.COR TABLE TES,PR.COR TABLE TIM,PR.SCI TABLE TKB,PR.LIN TABLE TKX,PR.LIN TABLE TPC,PR.SCI TABLE TRU,PR.FIL TABLE TSE,PR.SCI TABLE TUI,PR.FIL TABLE TYP,PR.FIL TABLE TYS,PR.FIL TABLE UFD,PR.SCI TABLE UNL,PR.DEV TABLE UNP,PR.FIL TABLE USE,PR.SCI TABLE UTL,PR.SCI TABLE VFY,PR.FIL TABLE VOL,PR.SCI TABLE XRF,PR.FOR TABLE ZAP,PR.SCI TABLE END,0 ;PUT 0 IN AS END OF TABLE INDICATOR .PAGE .SBTTL THE CODE ; .PSECT code,ro ; ; PRICHK:: MOV R2,-(SP) ;SAVE USED REGISTER CLR R2 1$: CMP R1,NAMES(R2) ;COMPARE REQUESTED NAME WITH TABLE NAME BNE 4$ ;BR IF NOT SAME ;FOUND TASK ON RESTRICTED LIST, CHECK IT BIT FLAGS(R2),R0 ;IS NEEDED BIT SET IN USER PRIVILEGE WORD ? BNE 2$ ;YES ,USER MAY DO FUNCTION MOV #-1,R0 ;NO SHOW ERROR INDICATION BR 3$ ;AND RETURN 2$: CLR R0 ;SHOW GOOD 3$: MOV (SP)+,R2 ;RESTORE R2 RTS PC ;AND RETURN 4$: TST (R2)+ ;BUMP R2 TO NEXT WORD IN TABLES TST FLAGS(R2) ;END OF TABLES ? BNE 1$ ;IF NOT, WE TRY AGAIN CLR R0 ;TASK NOT IN RESTRICTED LIST MOV (SP)+,R2 ;RESTORE R2 RTS PC ;AND RETURN .END