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