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