2 GOSUB 63999: PRINT CHR$(4)"SAVE/PRO.BYTER/CATA.LOG": END
100 ONERR GOTO 9000
110 REM ?CHR$(4)"-QSORT"
150 CLEAR
200 PSLOT = 1
250 DIM SUBDIR$(25),FILE$(125):FI = -1:COL = 39:PR = ( PEEK(800) = 123):SR = ( PEEK(801) = 123):DR = PEEK(802): IF DR <1 OR DR >2 THEN DR = PEEK(48701)
5060 INPUT A$: IF MID$ (A$,28,1) > = "0" AND MID$ (A$,28,1) < = "9" THEN FI = FI +1:FILE$(FI) = A$: VTAB 21: PRINT : PRINT LEFT$(A$,COL)
5080 IF MID$ (A$,18,3) < >"DIR" THEN 5160
5100 SUB = SUB +1:A$ = MID$ (A$,2,15)
5120 IF RIGHT$(A$,1) = " " THEN A$ = LEFT$(A$, LEN(A$) -1): GOTO 5120
5140 SUBDIR$(SUB) = PFX$ +A$ +"/"
5160 ON PEEK( -16384) = 155 GOTO 5250: IF LEFT$(A$,3) < >"BLO" THEN 5060
5180 PRINT CHR$(4)"CLOSE": IF NF <SUB THEN NF = NF +1:PFX$ = SUBDIR$(NF): VTAB 20: PRINT "READING SUBDIRECTORY...": GOTO 5020
5220 POKE 953,1: CALL 950,FILE$(0): IF PR THEN COL = 79: PRINT : PRINT CHR$(4)"PR#"PSLOT
5240 HOME : PRINT VOL$: GOSUB 8000: PRINT LEFT$(T$,COL): GOSUB 8000: PRINT LEFT$(L$,COL): GOSUB 8000: FOR I = 0 TO FI: PRINT LEFT$(FILE$(I),COL): GOSUB 8000: NEXT : PRINT LEFT$(L$,COL): GOSUB 8000
5250 PRINT LEFT$(A$,COL): POKE -16368,0: PRINT CHR$(12): PRINT CHR$(4)"CLOSE": PRINT CHR$(4)"PR#0": IF PR OR NOT SR THEN PRINT "ANY KEY:";: GET A$: PRINT A$: GOTO 150
5300 PRINT "[R] TO REPEAT, OR ANY KEY:";: GET X$: PRINT X$: ON X$ = "R" GOTO 5240: GOTO 150
7999 REM <CTRL-J><CTRL-J>PG.BREAK<CTRL-J>
8000 IF PR THEN LN = LN +1: IF LN >55 THEN LN = 0: PRINT CHR$(12)
8020 IF PEEK( -16384) = 155 THEN POKE 222,255: GOTO 9000
8040 RETURN
8999 REM <CTRL-J><CTRL-J>ERROR<CTRL-J>
9000 PRINT CHR$(12): PRINT CHR$(4)"PR#0": PRINT CHR$(4)"CLOSE": IF PEEK(222) = 255 THEN RUN
9010 PRINT CHR$(7);: IF PEEK(222) = 6 THEN PRINT "QSORT MISSING FROM DISK": PRINT "-----": END
9030 IF PEEK(222) = 3 THEN DR = 1: POKE 802,DR: GOTO 150
9035 IF PEEK(222) = 8 THEN PRINT "I/O ERROR": FOR I = 1 TO 999: NEXT : GOTO 150
9040 POKE 216,0: RESUME
63000 VTAB 20: PRINT : CALL -958: PRINT "TYPE " CHR$(34)"RUN" CHR$(34)" TO CONTINUE.": END