10  COM J1,Z,D$[8],E$[8]
20  REM    NUMERIC SORT MODULE FOR 'SPSORT'.
30  FILES *,*
40  ASSIGN D$,1,I
50  ASSIGN E$,2,I
60  DIM U[10],L[10],A$[72]
70  PRINT "SORT START TIME";TIM(1);":";TIM(0)
80  M=1
90  I=I9=1
100  J=J1
110  IF I >= J THEN 580
120  K=I
130  I1=(J+I)/2
140  READ #2,I1;P2,T
150  READ #2,I;P1,A
160  IF A <= T THEN 210
170  PRINT #2,I;P2,T
180  PRINT #2,I1;P1,A
190  T=A
200  P2=P1
210  L=J
220  READ #2,J;P1,A
230  IF A >= T THEN 380
240  PRINT #2,J;P2,T
250  PRINT #2,I1;P1,A
260  T=A
270  P2=P1
280  READ #2,I;P1,A
290  IF A <= T THEN 380
300  PRINT #2,I1;P1,A
310  PRINT #2,I;P2,T
320  T=A
330  P2=P1
340  GOTO 380
350  READ #2,K;P1,A
360  PRINT #2,K;P3,U
370  PRINT #2,L;P1,A
380  L=L-1
390  READ #2,L;P1,A
400  IF A>T THEN 380
410  U=A
420  P3=P1
430  K=K+1
440  READ #2,K;P1,A
450  IF A<T THEN 430
460  IF K <= L THEN 350
470  IF (L-I) <= (J-K) THEN 530
480  L[M]=I
490  U[M]=L
500  I=K
510  M=M+1
520  GOTO 620
530  L[M]=K
540  U[M]=J
550  J=L
560  M=M+1
570  GOTO 620
580  M=M-1
590  IF M=0 THEN 780
600  I=L[M]
610  J=U[M]
620  IF (J-I) >= I9 THEN 120
630  IF I=I9 THEN 110
640  I=I-1
650  I=I+1
660  IF I=J THEN 580
670  READ #2,I+1;P2,T
680  READ #2,I;P1,A
690  IF A <= T THEN 650
700  K=I
710  READ #2,K;P1,A
720  PRINT #2,K+1;P1,A
730  K=K-1
740  READ #2,K;P1,A
750  IF T<A THEN 710
760  PRINT #2,K+1;P2,T
770  GOTO 650
780  PRINT "END OF SORT -- TIME";TIM(1);":";TIM(0)
790  FOR J=1 TO J1
800  READ #2,J;P
810  READ #2,J
820  READ #1,P
830  FOR I=1 TO Z
840  IF TYP(1)=2 THEN 880
850  READ #1;B
860  PRINT #2;B
870  GOTO 900
880  READ #1;A$
890  PRINT #2;A$
900  NEXT I
910  NEXT J
920  PRINT "OUTPUT COMPLETED"
930  END 
