RECORDFORMAT OINFF(STRING (11) NAME,INTEGER SP12,NKB,C BYTEINTEGER ARCH,CODES,CCT,OWNP,EEP,USE,CODES2,C SSBYTE,FLAGS,POOL,DAYNO,SP31) EXTERNALINTEGERFUNCTIONSPEC DFILENAMES(STRING (6) USER,C RECORD (OINFF)ARRAYNAME INF,C INTEGERNAME FILENO,MAXREC,C NFILES,INTEGER FSYS,TYPE) EXTERNALINTEGERFNSPEC DFSTATUS(STRING (6) USER,STRING (11) FILE,C INTEGER FSYS,ACT,VALUE) EXTERNALINTEGERFUNCTIONSPEC GET USNAMES(INTEGERNAME N,INTEGER ADR,C FSYS) EXTERNALROUTINESPEC GET AV FSYS(INTEGERNAME N,INTEGERARRAYNAME A) SYSTEMSTRINGFUNCTIONSPEC ITOS(INTEGER N) ! ! ROUTINE TREAT USER(STRINGNAME USER,INTEGER FSYS) INTEGER FLAG,FILENO,MAXREC,NFILES,DIRFOUND,OPTFOUND,I INTEGERARRAY A(0:20) STRINGNAME NAME RECORD (OINFF)NAME F RECORD (OINFF)ARRAY INF(0:1024) ! PRINTSTRING(USER); NEWLINE FILENO = 0; MAXREC = 1024 FLAG = DFILENAMES(USER,INF,FILENO,MAXREC,NFILES,FSYS,0) IF FLAG # 0 THEN MONITOR AND RETURN RETURN IF MAXREC = 0 CYCLE I = 0,1,MAXREC-1 F == INF(I) NAME == F_NAME IF LENGTH(NAME) > 2 AND SUBSTRING(NAME,1,2) = "T#" C THEN CONTINUE FLAG = DFSTATUS(USER,NAME,FSYS,1,1) IF FLAG # 0 THEN MONITOR REPEAT END ! INTEGERFUNCTION STOI(STRING (255) S) IF S = "-1" THEN RESULT = -1 IF LENGTH(S) = 1 THEN S = "0".S IF LENGTH(S) # 2 THEN RESULT = -2 UNLESS '0' <= CHARNO(S,1) <= '9' THEN RESULT = -2 UNLESS '0' <= CHARNO(S,2) <= '9' THEN RESULT = -2 RESULT = (CHARNO(S,1) - '0')*10 + CHARNO(S,2) - '0' END ; ! of STOI ! ! EXTERNALROUTINE DOCH(STRING (255) S) STRING (6)ARRAY U(0:1023) INTEGER NU,NUSERS INTEGER J,N,FX,FSYS INTEGERARRAY A(0:99) STRING (63) USER ! FSYS = -1 IF S # "" THEN START FSYS = STOI(S) UNLESS -1 <= FSYS <= 99 THEN -> BP FINISH IF FSYS<0 THEN GET AV FSYS(N,A) ELSE A(0) = FSYS AND N = 1 FX = 0 WHILE FX<N CYCLE FSYS = A(FX) PRINTSTRING("+++ FSYS ".ITOS(FSYS)." +++"); NEWLINE; NEWLINE J = GET USNAMES(NUSERS,ADDR(U(0)),FSYS) PRINTSTRING("GET USNAMES flag ="); WRITE(J,1) PRINTSTRING(" No of users ="); WRITE(NUSERS,1); NEWLINES(2) NU = 0 WHILE NU<NUSERS CYCLE USER<-U(NU) IF LENGTH(USER) = 6 THEN START TREAT USER(USER,FSYS) FINISH NU = NU+1 REPEAT FX = FX + 1 REPEAT RETURN BP: PRINTSTRING("Illegal fsys specification"); NEWLINE END ; ! of DOCH ENDOFFILE