home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / genie-commodore-file-library / C64Toolkit / SORT-1581 (.txt) < prev    next >
Encoding:
Commodore BASIC  |  2019-04-13  |  1.4 KB  |  36 lines

  1. 10 GOSUB340:GOTO150
  2. 20 PRINT"╙ORTING":SK=K1:L%(K1)=K1:R%(1)=NF
  3. 30 L1=L%(SK):R1=R%(SK):SK=SK-1
  4. 40 L2=L1:R2=R1:KE$=NS$(INT((L1+R1)/2))
  5. 50 KE$=MID$(KE$,31)+MID$(KE$,4,M%(INT((L1+R1)/2)))
  6. 60 IFMID$(NS$(L2),31)+MID$(NS$(L2),4,M%(L2))<KE$THENL2=L2+K1:GOTO60
  7. 70 IFKE$<MID$(NS$(R2),31)+MID$(NS$(R2),4,M%(R2))THENR2=R2-K1:GOTO70
  8. 80 IFL2>R2THEN110
  9. 90 N$=NS$(R2):H=M%(R2):NS$(R2)=NS$(L2):M%(R2)=M%(L2)
  10. 100 NS$(L2)=N$:M%(L2)=H:L2=L2+1:R2=R2-1:GOTO60
  11. 110 IFL2<R1THENSK=SK+1:L%(SK)=L2:R%(SK)=R1
  12. 120 R1=R2:IFL1<R1THEN40
  13. 130 IFSKTHEN30
  14. 140 RETURN
  15. 150 NF=0:GOSUB300
  16. 160 GOSUB320:FORPP=1TO8:R$="":FL=0:M%(NF+1)=16:FORX=1TO30:GET#5,I$
  17. 170 IFI$=CHR$(160)ANDFL=0THENM%(NF+1)=X-4:FL=1
  18. 180 R$=R$+LEFT$(I$+C0$,1):NEXT:IFPP<>8THENGET#5,I$,I$
  19. 190 X$=C0$:IFMID$(R$,1,1)=C0$THENX$=CHR$(255):PRINTDD$;
  20. 200 NF=NF+1:NS$(NF)=R$+X$:PRINTMID$(R$,4,16):NEXTPP:IFYS<>255THEN160
  21. 210 CLOSE5:INPUT#15,EN,EM$,ET,ES:PRINT"";EN;EM$;ET;ES;"":GOSUB20
  22. 220 PRINT"æ╨RESS SPACE BAR TO REWRITE DIRECTORY"
  23. 230 GETA$:IFA$<>" "THEN230
  24. 240 GOSUB300:NN=0
  25. 250 GOSUB320:FORPP=1TO8:NN=NN+1
  26. 260 PRINT#5,MID$(NS$(NN),1,30);:IFMID$(NS$(NN),31)=CHR$(255)THENPRINTDD$;
  27. 270 PRINTMID$(NS$(NN),4,16):IFPP<>8THENPRINT#5,C0$;C0$;
  28. 280 NEXTPP:PRINT#15,"U2";5;0;LT;LS:IFYS<>255THEN250
  29. 290 CLOSE5:INPUT#15,EN,EM$,ET,ES:PRINT"";EN;EM$;ET;ES;"":CLOSE15:END
  30. 300 OPEN5,8,5,"#":YT=40:YS=0:GOSUB320:PRINT#15,"B-P";5;143:PRINTCHR$(14)
  31. 310 PRINTRN$;:FORX=1TO24:GET#5,I$:PRINTI$;:NEXT:PRINTR    
  32. 320 PRINT#15,"U1";5;0;YT;YS:LT=YT:LS=YS:GET#5,T$,S$:YT=ASC(T$+C0$)
  33. 330 YS=ASC(S$+C0$):RETURN
  34. 340 X=300:DIML%(X),M%(X),R%(X),NS$(X):K1=1:OPEN15,8,15,"I":C0$=CHR$(0):NF=0
  35. 350 DD$="─┼╠┼╘┼─==>":RN$=CHR$(18):RF$=CHR$(146):PRINTCHR$(14):PRINT"ô─IRECTORY ╙ORT":RETURN
  36.