home *** CD-ROM | disk | FTP | other *** search
/ Nibble Magazine / nib27a.dsk / JANUARY.1986 / DIRECTORY.LIST.bas next >
BASIC Source File  |  2023-02-26  |  4KB  |  94 lines

  1. 10  REM  *************************
  2. 20  REM  *    DIRECTORY.LIST     *
  3. 30  REM  * BY KEITH STATTENFIELD *
  4. 40  REM  *  COPYRIGHT (C) 1986   *
  5. 50  REM  *  BY MICROSPARC, INC   *
  6. 60  REM  *  CONCORD, MA  01742   *
  7. 70  REM  *************************
  8. 80  REM 
  9. 90  REM  FS$ CONTAINS THE PRINTER SETUP STRING.
  10. 100  REM  IT IS CURRENTLY SET UP FOR THE GRAPPLER INTERFACE
  11. 110  REM  AND APPLE DMP PRINTER.
  12. 120  REM 
  13. 130 FS$ =  CHR$(9) +"80N" + CHR$(9) +"60P" + CHR$(27) +"E" + CHR$(27) +"L010"
  14. 140  REM 
  15. 150  REM  PR% IS THE PRINTER SLOT
  16. 160  REM 
  17. 170 PR% = 1
  18. 180  GOTO 280
  19. 190  REM 
  20. 200  HTAB 20 - LEN(A$)/2 +1: PRINT A$: RETURN 
  21. 210  INVERSE : GOSUB 200: NORMAL : RETURN 
  22. 220  GOSUB 200:A$ =  LEFT$("----------------------------------------", LEN(A$)): GOSUB 200: RETURN : REM  40 -'S
  23. 230  VTAB 9: HTAB 1: CALL  -958: PRINT : RETURN 
  24. 240 A$ = "PRESS <RETURN> TO CONTINUE": VTAB 23: GOSUB 200: POKE  -16368,0: WAIT  -16384,128
  25. 250  VTAB 23: CALL  -868: POKE  -16368,0: RETURN 
  26. 260  GET A$:YES = (A$ = "Y") +(A$ = "Y"): ON   NOT (YES +(A$ = "N") +(A$ = "N")) GOTO 260: PRINT A$: RETURN 
  27. 270  REM 
  28. 280  REM  -- START OF MAIN --
  29. 290  REM  --   PROGRAM     --
  30. 300  TEXT : HOME : DIM DIR$(100)
  31. 310  PRINT  CHR$(17);
  32. 320  VTAB 2:A$ = "DIRECTORY.LIST": GOSUB 220
  33. 330  PRINT :A$ = "  BY KEITH STATTENFIELD": GOSUB 200: PRINT :A$ = "* COPYRIGHT (C) 1986 BY MICROSPARC,INC *": GOSUB 200
  34. 340  VTAB 8: PRINT "----------------------------------------": REM  40 -'S
  35. 350 PTR = 768:DL$ = "--------------------------------------------------------------------------------": REM  !80 DASHES !
  36. 360  READ A: IF A > -1  THEN  POKE PTR,A:PTR = PTR +1: GOTO 360
  37. 370  POKE 34,8: HOME 
  38. 380 D$ =  CHR$(4)
  39. 390  PRINT D$"PREFIX": INPUT OP$
  40. 400  GOSUB 230: PRINT "ENTER THE NAME OF THE VOLUME OR": PRINT "DIRECTORY FOR THE BASE TO LIST"
  41. 410  PRINT : PRINT "DEFAULT IS ";OP$
  42. 420  PRINT : PRINT "SLOT AND DRIVE CAN BE SPECIFIED (,S#,D#)"
  43. 430  VTAB 18: PRINT ":";OP$
  44. 440  VTAB 18: HTAB 2: CALL 768,NP$:NP$ = NP$ +""
  45. 450  IF NP$ = ""  THEN NP$ = OP$
  46. 460  VTAB 18: HTAB 2: PRINT NP$
  47. 470  ONERR  GOTO 490
  48. 480  PRINT : PRINT D$"PREFIX"NP$: PRINT D$"PREFIX": INPUT NP$: GOTO 500
  49. 490  GOSUB 230:A$ = "ERROR #" + STR$( PEEK(222)) +" IN PREFIX": GOSUB 210: GOSUB 240: RUN 
  50. 500  POKE 216,0: VTAB 18: HTAB 2: PRINT NP$;: CALL  -958: PRINT 
  51. 510  VTAB 23: PRINT "LIST CATALOG ON PRINTER?";: GOSUB 260
  52. 520 PR = 0: IF YES  THEN PR = PR%
  53. 530  VTAB 23: HTAB 1: CALL  -868: IF   NOT PR  THEN  PRINT "LIST ON 80-COLUMN SCREEN?";: GOSUB 260: IF YES  THEN PR = 3
  54. 540  IF PR = PR%  THEN  PRINT FS$
  55. 550 LN = 39 +(40 *(PR >0))
  56. 560 P1 = 1:P2 = 1:DIR$(1) = NP$
  57. 570  REM 
  58. 580  REM  - PERFORM THE CATALOG -
  59. 590  REM 
  60. 600  TEXT : HOME 
  61. 610  PRINT : PRINT D$"PR#";PR: IF PR = PR%  THEN  PRINT FS$
  62. 620  PRINT D$"OPEN "DIR$(P1)",TDIR"
  63. 630  PRINT D$"READ "DIR$(P1)
  64. 640  INPUT T$: PRINT "CATALOG OF ";DIR$(P1)
  65. 650  INPUT T$: PRINT  LEFT$(T$,LN)
  66. 660  INPUT T$: PRINT  LEFT$(DL$,LN)
  67. 670  ONERR  GOTO 770
  68. 680  INPUT NAME$:NAME$ = NAME$ +""
  69. 690  IF NAME$ = ""  THEN 770
  70. 700 TY$ =  MID$ (NAME$,18,3)
  71. 710  PRINT  LEFT$(NAME$,LN)
  72. 720  IF TY$ < >"DIR"  THEN 680
  73. 730 NAME$ =  MID$ (NAME$,2,16): IF  RIGHT$(DIR$(P1),1) < >"/"  THEN NAME$ = "/" +NAME$
  74. 740  IF  RIGHT$(NAME$,1) = " "  THEN NAME$ =  LEFT$(NAME$, LEN(NAME$) -1): GOTO 740
  75. 750 P2 = P2 +1:DIR$(P2) = DIR$(P1) +NAME$
  76. 760  GOTO 680
  77. 770  REM 
  78. 780  REM  - WE'RE DONE WITH THAT CATALOG,
  79. 790  REM    SO CLOSE THE DIRECTORY & DO
  80. 800  REM    THE NEXT ONE -
  81. 810  REM 
  82. 820  PRINT : PRINT D$"CLOSE"
  83. 830  IF P1 =  <P2  THEN P1 = P1 +1: GOTO 620
  84. 840  IF PR  AND PR < >3  THEN  PRINT D$"PR#0"
  85. 850  VTAB 24: HTAB 1: CALL  -868: GOSUB 240
  86. 860  VTAB 23: HTAB 1: CALL  -868
  87. 870  PRINT "PERFORM ANOTHER CATALOG?";: GOSUB 260
  88. 880  IF YES  THEN  RUN 
  89. 890  TEXT : HOME : END 
  90. 900  REM 
  91. 910  REM  - INPUT ANYTHING MACHINE CODE DATA -
  92. 920  REM 
  93. 930  DATA  32,190,222,32,227,223,162,0,32,117,253,160,0,138,145,131,200,169,0,145,131,200,169,2,145,131,32,57,213,96
  94. 940  DATA  -1