10  COM J1,Z,D$[8],E$[8]
15  REM  ALSORT (PART 2 OF 3), SPSORT, HP 36736 REV A, 6/74
20  REM ALPHABETIC SORT MODULE FOR 'SPSORT'.
30  FILES *,*
40  ASSIGN D$,1,I
50  ASSIGN E$,2,I
60  DIM A$[72],T$[72],U$[72],U[10],L[10]
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 
