EXTERNALROUTINE  NAMES(STRING (255)S)
EXTERNALROUTINESPEC  CLEAR(STRING (255)S)
EXTERNALROUTINESPEC  DEFINE(STRING (255)S)
!
INTEGER  NI
STRING (31)W, W1, IN
!
EXTERNALINTEGERFNSPEC  DPERMISSION(STRING (6)OWNER, USER, C 
      STRING (8)DATE, STRING (11)FILE, INTEGER  FSYS, TYPE, ADR)
RECORDFORMAT  F1(STRING (6)USER, BYTEINTEGER  PRM)
RECORDFORMAT  F2(INTEGER  N, OWNP, EEP, X, RECORDARRAY  IP(0:15)(F1))
!
RECORD  P(F2)
RECORDNAME  IP(F1)
CONSTINTEGER  ACR = 7
CONSTINTEGER  TRY = 38
!
SYSTEMROUTINESPEC  PHEX(INTEGER  I)
EXTERNALROUTINESPEC  GETAVFSYS(INTEGERNAME  N,INTEGERARRAYNAME  A)
EXTERNALINTEGERFNSPEC  GETUSNAMES(INTEGERNAME  N,INTEGER  ADR,FSYS)
EXTERNALINTEGERFNSPEC  DSFI(STRING (6)U,INTEGER  F,T,S,A)
!
!
INTEGER  NSYS, F, AP, ADR, NU, JJ, J, K, N
INTEGERARRAY  A(0:99)
INTEGERARRAY  FLD(0:15)
STRINGNAME  U1
BYTEINTEGERARRAY  UNAMES(0:2400)
!
      DEFINE("61,NAMES,1023")
      SELECT OUTPUT(61)
!
      NI = 0
      AP = ADDR(W)
      ADR = ADDR(UNAMES(0))
      GET AV FSYS(NSYS, A)
!
         CYCLE  F = 0, 1, NSYS-1
            N = A(F)
            J = GETUSNAMES(NU, ADR, N)
            IF  NU > 0 START 
               CYCLE  JJ = 0, 7, (NU-1)*7
                  U1 == STRING(ADR+JJ)
!
J = DSFI(U1, N, 18, 0, AP)
IF  J = 0 START 
      IF  W -> W1 . (".") . S START 
         IN = W1
         IN = IN . "." . W1 WHILE  S -> W1 . (".") . S
         W = S . "," . IN
         W <- W . "                               "
         PRINTSTRING(W)
         NEWLINE
         NI = NI + 1
      FINISH 
FINISH 
               REPEAT 
            FINISH 
         REPEAT 
SELECT OUTPUT(0)
CLOSE STREAM(61)
CLEAR("61")
WRITE(NI, 1)
NEWLINE
END 
ENDOFFILE