1060 CLS:CLEAR2000:FILES:A$="Which file to sort: ":GOSUB2030 1140 INPUTF$:IFMID$(F$,LEN(F$)-2,1)<>"."THENF$=F$+".DO" 1150 A$="Lines in Header ":GOSUB2030 1170 INPUTM: OPENF$FORINPUTAS1 1200 FORJ=1TOM+1:LINEINPUT#1,Z$:NEXT:CLS 1280 PRINT"----.----1----.----2----.----3----.----4"; 1290 PRINTZ$ 1300 A$="Begin at position: ":GOSUB2030 1310 INPUTB:IFB=0THEN1300 1320 A$="End at position: ":GOSUB2030 1330 INPUTE:N=M+1 1430 N=N+1 1440 LINEINPUT#1,Z$:IFEOF(1)THENGOTO1470 1460 GOTO1430 1470 CLOSE 1480 DIMD$(N):DIMY$(M):OPENF$FORINPUTAS1 1490 IFM=0THENGOTO1550 1500 FORJ=1TOM:LINEINPUT#1,Y$(J):NEXT 1550 FORI=M+1TON:LINEINPUT#1,D$(I):NEXT 1580 CLOSE1:GOSUB3030 1645 KILLF$:OPENF$FOROUTPUTAS1 1648 IFM=0THENGOTO1660 1650 FORJ=1TOM:PRINT#1,Y$(J):NEXT 1660 FORI=M+1TON:PRINT#1,D$(I):NEXTI 1690 CLOSE:MENU 2030 PRINT@240,STRING$(40,32); 2040 PRINT@240,A$; 2050 RETURN 3030 Z5=N 3040 Z5=INT(Z5/2):IFZ5=0THEN3190 3060 Z2=1:Z3=N-Z5 3070 Z1=Z2 3080 Z4=Z1+Z5 3100 IF(MID$(D$(Z1),B,(E-B)+1))<(MID$(D$(Z4),B,(E-B)+1))THEN3160ELSE3120 3120 Z6$=D$(Z1):D$(Z1)=D$(Z4):D$(Z4)=Z6$ 3130 Z1=Z1-Z5:IFZ1<1THEN3160 3150 GOTO3080 3160 Z2=Z2+1 3170 IFZ2>Z3THEN3040 3180 GOTO3070 3190 RETURN