1  COM X$[7],P$[7],L9,L8
2  COM A$[72],A6,A7,A8,A9
10  FILES *,COSCR
20  ASSIGN X$,1,A5
22  IF  END #2 THEN 2000
30  DIM L[2000,2],B$[72],C$[72],D$[72],E$[72],F$[72],G$[72]
40  LET L1=L2=L3=L5=1
50  LET L[1,2]=1.E+08
60  LET L[1,1]=0
100  REM SET UP LOOP
110  IF  END #1 THEN 500
120  READ #1,1
122  PRINT #2,1
130  READ #1;N,B$
140  LET L4=1
142  LET L=L[1,1]
150  IF L=0 THEN 200
160  IF L[L,2]<N THEN 200
170  IF L[L,2]=N THEN 250
172  LET L4=L
180  LET L=L[L,1]
190  GOTO 150
200  IF B$="" THEN 130
202  LET L3=L3+1
210  LET L[L3,1]=L
220  LET L[L4,1]=L3
230  LET L[L3,2]=N
240  GOTO 300
250  IF B$="" THEN 290
252  LET L3=L3+1
260  LET L[L3,1]=L[L,1]
270  LET L[L4,1]=L3
280  LET L[L3,2]=N
282  GOTO 300
290  LET L[L4,1]=L[L,1]
292  GOTO 130
300  LET L2=L2+1
310  IF L2=8 THEN 340
320  PRINT #2;B$
330  GOTO 130
340  LET L5=L5+1
350  PRINT #2,L5
352  PRINT #2;B$
360  LET L2=2
370  GOTO 130
500  REM REVERSE LINKED LIST
510  LET L=1
520  LET L3=L[L,1]
522  IF L3 <> 0 THEN 530
524  LET L=0
530  IF L3=0 THEN 600
532  LET L4=L[L3,1]
540  LET L[L3,1]=L
550  LET L=L3
552  LET L3=L4
560  GOTO 530
600  REM CREAT NEW FILE
610  READ #1,1
620  PRINT #2;"","","","",""
630  LET L4=0
640  IF L=0 OR L>1.E+06 THEN 840
650  LET L3=INT((L-2)/6)+1
660  IF L4=L3 THEN 690
670  LET L4=L3
680  READ #2,L4;B$,C$,D$,E$,F$,G$
690  LET L5=(L-1)-(L3-1)*6
700  GOTO L5 OF 710,730,750,770,790,810
710  PRINT #1;L[L,2],B$
720  GOTO 820
730  PRINT #1;L[L,2],C$
740  GOTO 820
750  PRINT #1;L[L,2],D$
760  GOTO 820
770  PRINT #1;L[L,2],E$
780  GOTO 820
790  PRINT #1;L[L,2],F$
800  GOTO 820
810  PRINT #1;L[L,2],G$
820  LET L=L[L,1]
830  IF L <> 1 THEN 650
840  PRINT #1; END 
1000  CHAIN P$,L9
2000  REM ENTER IF SCRATCH FILE TOO SMALL
2010  PRINT "THE SCRATCH FILE 'COSCR' IS NOT LONG ENOUGH TO SORT"
2020  PRINT "   YOUR FILE.  PLEASE TYPE 'KIL-COSCR' FOLLOWED BY"
2030  PRINT "   'OPE-COSCR,N' WHERE N IS A GREATER NUMBER THAN THE"
2040  PRINT "   CURRENT SIZE OF COSCR.  AFTER THIS, TYPE 'RUN' AGAIN,"
2050  PRINT "   AND AFTER GETTING YOUR FILE ";F$;" TYPE 'SORT' AND THEN"
2060  PRINT "   CONTINUE NORMALLY."
2070  CHAIN "$COMON",9999
9999  END 
