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