EXTERNALROUTINE  LISTU(STRING (255)S)
!
EXTERNALROUTINESPEC  PROMPT(STRING (255)S)
EXTERNALROUTINESPEC  RDINT(INTEGERNAME  I)
EXTERNALINTEGERFNSPEC  GETUSNAMES(INTEGERNAME  N,INTEGER  A,F)
!
INTEGER  I, J, K, M, W
INTEGER  N, FSYS, AB
INTEGERARRAY  B(0:600)
INTEGERARRAY  P(1:345)
!
      AB = ADDR(B(0))
      PROMPT("FSYS: ")
      RDINT(FSYS)
      J = GETUSNAMES(N, AB+7, FSYS)
!
      CYCLE  I = 1, 1, N
         P(I) = 7*I + AB
      REPEAT 
!
      M = 1
      M = M << 1 WHILE  M <= N
      M = M - 1
!
      CYCLE 
         M = M >> 1
         EXIT  IF  M = 0
         CYCLE  I = 1, 1, N-M
            K = I
            WHILE  K > 0 CYCLE 
               J = K + M
!
               EXIT  IF  STRING(P(K)) <= STRING(P(J))
               W = P(J)
               P(J) = P(K)
               P(K) = W
!
               K = K - M
            REPEAT 
         REPEAT 
      REPEAT 
!
!
      K = (N+9)//10
!
      CYCLE  I = 1, 1, K
         CYCLE  J = 0, 1, 9
            M = I + J * K
            PRINTSTRING(STRING(P(M))) UNLESS  M>N
            SPACE
         REPEAT 
         NEWLINE
      REPEAT 
!
END ; ! ASORT FILES
ENDOFFILE