home *** CD-ROM | disk | FTP | other *** search
/ Set of Apple II Hard Drive Images / eric.hdv / SEQ / CATA.LOG.bas
BASIC Source File  |  2020-08-13  |  5KB  |  60 lines

  1. 1  GOTO 100
  2. 2  GOSUB 63999: PRINT  CHR$(4)"SAVE/PRO.BYTER/CATA.LOG": END 
  3. 100  ONERR  GOTO 9000
  4. 110  REM  ?CHR$(4)"-QSORT"
  5. 150  CLEAR 
  6. 200 PSLOT = 1
  7. 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)
  8. 300 L$ = " -------------------  ------  ---------------  ---------------  ------- -------"
  9. 310 T$ = " NAME           TYPE  BLOCKS  MODIFIED         CREATED          ENDFILE SUBTYPE"
  10. 400  TEXT : PRINT  CHR$(21): PRINT  CHR$(4)"PR#0": NORMAL : HOME : PRINT : INVERSE : PRINT ":          :": PRINT "  CATA.LOG  ": PRINT ":          :": NORMAL 
  11. 450  PRINT : PRINT "THIS PROGRAM WILL DISPLAY               THE FILE NAMES FROM ALL OF              THE DIRECTORIES     ---                 ON A PRODOS DISK."
  12. 500  VTAB 11: PRINT : PRINT "[P] USE PRINTER AND 80-COLUMNS?.";: POKE 50,255 -192 *(PR = 1): PRINT "YES";: NORMAL : PRINT "/";: POKE 50,255 -192 *(PR = 0): PRINT "NO ": NORMAL 
  13. 525  PRINT "[S] SORT/MERGE SUBDIRECTORIES?..";: POKE 50,255 -192 *(SR = 1): PRINT "YES";: NORMAL : PRINT "/";: POKE 50,255 -192 *(SR = 0): PRINT "NO ": NORMAL 
  14. 550  PRINT "[D] DRIVE NUMBER................";: POKE 50,255 -192 *(DR = 1): PRINT " 1 ";: NORMAL : PRINT "/";: POKE 50,255 -192 *(DR = 2): PRINT " 2 ": NORMAL 
  15. 560  PRINT : PRINT "[B] BEGIN": PRINT "[Q] QUIT": PRINT : CALL  -868: PRINT "SELECT:";: GET A$: PRINT A$: IF A$ = "Q"  THEN 63000
  16. 570  IF A$ = "P"  THEN PR = PR = 0: POKE 800,123 *PR: GOTO 500
  17. 575  IF A$ = "S"  THEN SR = SR = 0: POKE 801,123 *SR: GOTO 500
  18. 580  IF A$ = "D"  THEN DR = DR +(DR = 1) -(DR = 2): POKE 802,DR: GOTO 500
  19. 600  IF A$ < >"B"  THEN 500
  20. 750  IF SR  THEN 5000
  21. 800  IF PR  THEN  HOME : PRINT "PRESS ESC TO QUIT": PRINT "      ---"
  22. 850  IF PR  THEN COL = 79: PRINT  CHR$(21): PRINT  CHR$(4)"PR#"PSLOT
  23. 900  REM <CTRL-J><CTRL-J>UNSORTED<CTRL-J>
  24. 2000  PRINT  CHR$(4)"PREFIX": INPUT PFX$: GOSUB 8000: PRINT " MAIN DIRECTORY:":LN = LN +1
  25. 2040  PRINT PFX$:LN = LN +1: PRINT  CHR$(4)"OPEN"PFX$",TDIR": PRINT  CHR$(4)"READ"PFX$: INPUT A$
  26. 2100  INPUT A$: IF  LEN(A$)  AND  LEFT$(A$,3) < >"BLO"  THEN  PRINT  LEFT$(A$,COL): GOSUB 8000
  27. 2110  IF   NOT  LEN(A$)  THEN  PRINT  LEFT$(L$,COL): GOSUB 8000
  28. 2120  IF  MID$ (A$,18,3) < >"DIR"  THEN 2200
  29. 2140 SUB = SUB +1:A$ =  MID$ (A$,2,15)
  30. 2160  IF  RIGHT$(A$,1) = " "  THEN A$ =  LEFT$(A$, LEN(A$) -1): GOTO 2160
  31. 2180 SUBDIR$(SUB) = PFX$ +A$ +"/"
  32. 2200  IF  LEFT$(A$,3) < >"BLO"  THEN 2100
  33. 2220  PRINT  CHR$(4)"CLOSE": IF NF <SUB  THEN NF = NF +1:PFX$ = SUBDIR$(NF): PRINT : PRINT " SUBDIRECTORY:":LN = LN +2: GOTO 2040
  34. 2260  GOTO 5250
  35. 4999  REM <CTRL-J><CTRL-J>SORTED<CTRL-J>
  36. 5000  VTAB 17: PRINT : CALL  -958: VTAB 20: PRINT "READING DIRECTORY...": PRINT  CHR$(4)"PREFIX,D"DR: PRINT  CHR$(4)"PREFIX": INPUT PFX$:VOL$ = PFX$
  37. 5020  PRINT  CHR$(4)"OPEN"PFX$",TDIR": PRINT  CHR$(4)"READ"PFX$
  38. 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)
  39. 5080  IF  MID$ (A$,18,3) < >"DIR"  THEN 5160
  40. 5100 SUB = SUB +1:A$ =  MID$ (A$,2,15)
  41. 5120  IF  RIGHT$(A$,1) = " "  THEN A$ =  LEFT$(A$, LEN(A$) -1): GOTO 5120
  42. 5140 SUBDIR$(SUB) = PFX$ +A$ +"/"
  43. 5160  ON  PEEK( -16384) = 155 GOTO 5250: IF  LEFT$(A$,3) < >"BLO"  THEN 5060
  44. 5180  PRINT  CHR$(4)"CLOSE": IF NF <SUB  THEN NF = NF +1:PFX$ = SUBDIR$(NF): VTAB 20: PRINT "READING SUBDIRECTORY...": GOTO 5020
  45. 5220  POKE 953,1: CALL 950,FILE$(0): IF PR  THEN COL = 79: PRINT : PRINT  CHR$(4)"PR#"PSLOT
  46. 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
  47. 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
  48. 5300  PRINT "[R] TO REPEAT, OR ANY KEY:";: GET X$: PRINT X$: ON X$ = "R" GOTO 5240: GOTO 150
  49. 7999  REM <CTRL-J><CTRL-J>PG.BREAK<CTRL-J>
  50. 8000  IF PR  THEN LN = LN +1: IF LN >55  THEN LN = 0: PRINT  CHR$(12)
  51. 8020  IF  PEEK( -16384) = 155  THEN  POKE 222,255: GOTO 9000
  52. 8040  RETURN 
  53. 8999  REM <CTRL-J><CTRL-J>ERROR<CTRL-J>
  54. 9000  PRINT  CHR$(12): PRINT  CHR$(4)"PR#0": PRINT  CHR$(4)"CLOSE": IF  PEEK(222) = 255  THEN  RUN 
  55. 9010  PRINT  CHR$(7);: IF  PEEK(222) = 6  THEN  PRINT "QSORT MISSING FROM DISK": PRINT "-----": END 
  56. 9030  IF  PEEK(222) = 3  THEN DR = 1: POKE 802,DR: GOTO 150
  57. 9035  IF  PEEK(222) = 8  THEN  PRINT "I/O ERROR": FOR I = 1 TO 999: NEXT : GOTO 150
  58. 9040  POKE 216,0: RESUME 
  59. 63000  VTAB 20: PRINT : CALL  -958: PRINT "TYPE " CHR$(34)"RUN" CHR$(34)" TO CONTINUE.": END 
  60. 63999  RETURN