EXTERNALROUTINE  ALLFILES(STRING (255)S)
!
CONSTINTEGER  TOP = 100
INTEGERARRAY  COUNT(0 : TOP)
!
RECORDFORMAT  INFF(STRING (11)NAME, INTEGER  SP12, NKB,
      BYTEINTEGER  ARCH, CODES, CCT, OWNP,
         EEP, USE, CODES2, SSBYTE,
         FLAGS, POOL, DAYNO, SP31)
!
RECORD (INFF)ARRAY  INFS(0:500)
EXTERNALROUTINESPEC  PROMPT(STRING (255)S)
EXTERNALROUTINESPEC  RSTRG(STRINGNAME  S)
EXTERNALROUTINESPEC  GETAVFSYS(INTEGERNAME  N,INTEGERARRAYNAME  A)
EXTERNALINTEGERFNSPEC  GETUSNAMES(INTEGERNAME  N,INTEGER  ADR,FSYS)
EXTERNALINTEGERFNSPEC  DFILENAMES(STRING (6)USER,
      RECORD (INFF)ARRAYNAME  INF,
      INTEGERNAME  FILENO, MAXREC, NFILES, INTEGER  FSYS, TYPE)
EXTERNALINTEGERFNSPEC  DFSTATUS(STRING (11)USER, FILE,
      INTEGER  FSYS, ACT, VALUE)
!
!
ROUTINE  DO(STRING (6)USER, INTEGER  FSYS)
INTEGER  J, FILENO, MAXREC, NFILES, PAGES
!      J = DFSTATUS(USER, "SS#DIR", FSYS, 17, 0)
!      J = DFSTATUS(USER, "SS#OPT", FSYS, 17, 0)
!      J = DFSTATUS(USER, "SS#PROFILE", FSYS, 17, 0)
!
      MAXREC = 500
      J = DFILENAMES(USER, INFS, FILENO, MAXREC, NFILES, FSYS, 0)
      IF  J = 0 AND  MAXREC > 0 START 
         CYCLE 
            PAGES = INFS(J)_NKB >> 2
            PAGES = TOP IF  PAGES > TOP
            COUNT(PAGES) = COUNT(PAGES) + 1
            J = J + 1
         REPEAT  UNTIL  J = MAXREC
      FINISH  ELSE  START 
         PRINTSTRING("DFILENAMES FLAG")
         WRITE(J, 1)
         PRINTSTRING(" MAXREC")
         WRITE(MAXREC, 1)
         NEWLINE
      FINISH 
END 
!
!
INTEGER  FSYS, P, FILENO, MAXREC, NFILES
INTEGER  NSYS, F, ADR, NU, J, K, C0, C1, N
STRING (15)FILE, U0
INTEGERARRAY  A(0:99)
STRINGNAME  U1
BYTEINTEGERARRAY  UNAMES(0:2400)
!
!
      CYCLE  J = 0, 1, TOP
         COUNT(J) = 0
      REPEAT 
!
         PROMPT("USERS: ")
         RSTRG(U0)
!
         N = 0; ! GOOD NAMES
         ADR = ADDR(UNAMES(0))
         GET AV FSYS(NSYS, A)
!
         CYCLE  F = 0, 1, NSYS-1
            FSYS = A(F)
            J = GETUSNAMES(NU, ADR, FSYS)
            IF  NU > 0 START 
               CYCLE  J = 0, 7, (NU-1)*7
                  U1 == STRING(ADR+J)
                  CYCLE  K = 1, 1, 6
                     C0 = BYTEINTEGER(ADDR(U0)+K)
                     C1 = BYTEINTEGER(ADDR(U1)+K)
                     UNLESS  C0=M'?' OR  C0=C1 C 
                     THEN  -> NO GO
                  REPEAT 
!
                  DO(U1, FSYS)
!
NO GO:
               REPEAT 
            FINISH 
         REPEAT 
!
      CYCLE  J = 1, 1, 20
         WRITE(J, 3)
         WRITE(COUNT(J), 7)
!
         WRITE(J+20, 5)
         WRITE(COUNT(J+20), 7)
!
         WRITE(J+40, 5)
         WRITE(COUNT(J+40), 7)
!
         WRITE(J+60, 5)
         WRITE(COUNT(J+60), 7)
!
         WRITE(J+80, 5)
         WRITE(COUNT(J+80), 7)
         NEWLINE
      REPEAT 
END 
ENDOFFILE