home *** CD-ROM | disk | FTP | other *** search
/ The Glitch Apple Disk Collection / 2014.glitch.apple.collection.zip / indexed / AAF.DSK / PAAF.bas < prev    next >
BASIC Source File  |  2014-09-09  |  4KB  |  128 lines

  1. 1  ONERR  GOTO 2000
  2. 4  LOMEM: 16384
  3. 5 IN$ = "X": REM   must be first string assigned
  4. 10  TEXT : HOME 
  5. 15  PRINT "AAF Packer, v1.0"
  6. 20  PRINT : PRINT "By Andy Tefft (art100@psuvm.psu.edu)"
  7. 25  PRINT : PRINT "Freeware. Use with appropriate caution."
  8. 30  PRINT : PRINT "Notes:"
  9. 40  PRINT : PRINT "1) 'Pathname' means any valid ProDOS'
  10. 45  PRINT "   full or partial pathname."
  11. 46  PRINT 
  12. 50  PRINT "2) Pressing RETURN at the input/output"
  13. 55  PRINT "   file prompts returns you to the menu"
  14. 60  PRINT : PRINT "3) Both input and output volumes must"
  15. 65  PRINT "   be online."
  16. 70  PRINT : PRINT "4) Looks best in 40 columns."
  17. 75  PRINT : PRINT "5) You will be warned when adding lines"
  18. 76  PRINT "   longer than 79 columns."
  19. 80  PRINT : PRINT "Press a key to continue"
  20. 90  GET A$
  21. 120  FOR R = 768 TO 788: READ X: POKE R,X: NEXT : REM  input-anything
  22. 130  DATA  162,0,32,117,253,160,2,138,145,105,200,169,0,145,105,200
  23. 135  DATA   169,2,145,105,96
  24. 140 D$ =  CHR$(4)
  25. 145  DIM OU$(100)
  26. 150  PRINT D$"prefix": INPUT PR$
  27. 160  TEXT : HOME 
  28. 165  PRINT "AAF Packer v1.0   Andy Tefft   11/23/90"
  29. 170  PRINT : PRINT "Prefix: "PR$
  30. 171  PRINT "---------------------------------------"
  31. 172  POKE 34,5
  32. 175  PRINT : PRINT "Menu:"
  33. 176  POKE 32,5
  34. 180  PRINT : PRINT "P)refix": PRINT "C)atalog"
  35. 181  PRINT 
  36. 185  PRINT "A)ppend to an archive"
  37. 190  PRINT "N)ew archive"
  38. 195  PRINT : PRINT "E)xit"
  39. 199  POKE 32,0
  40. 200  VTAB 18: GET C$
  41. 210  IF C$ = "e"  OR C$ = "E"  THEN  END 
  42. 220  IF C$ < >"C"  AND C$ < >"c"  THEN  GOTO 300
  43. 230  INPUT "Directory to catalog, return for prefix:";C$
  44. 240 S = 1: REM   section for error check
  45. 250  PRINT D$"cat"C$
  46. 260  PRINT "Press a key to return to menu.";: GET A$
  47. 270  HOME : GOTO 175
  48. 300  IF C$ < >"P"  AND C$ < >"p"  THEN 400
  49. 310 S = 2: REM   for error checking
  50. 320  PRINT : INPUT "New prefix: ";C$
  51. 325  PRINT D$"prefix"C$
  52. 330  GOTO 150
  53. 400  IF C$ = "A"  OR C$ = "a"  OR C$ = "N"  OR C$ = "n"  THEN 410
  54. 405  HOME : GOTO 175
  55. 410  IF C$ = "N"  OR C$ = "n"  THEN NF = 1: REM   new file
  56. 420  PRINT "Archive pathname (return for menu)": INPUT ": ";OF$
  57. 425  IF OF$ = ""  THEN  HOME : GOTO 175
  58. 430 S = 3: REM   section for errors
  59. 440  PRINT D$"open"OF$: PRINT D$"close"OF$
  60. 450  IF NF  THEN  PRINT D$"delete"OF$
  61. 460  INPUT "Pathname of file to add to archive?     : ";I$
  62. 465  IF I$ = ""  THEN  HOME : GOTO 175
  63. 470 S = 4
  64. 471  PRINT D$"verify"I$
  65. 475  PRINT : PRINT "Filename to put in archive? (return for"
  66. 476  PRINT I$;: INPUT " : ";FF$
  67. 477  IF FF$ = ""  THEN FF$ = I$
  68. 482  PRINT D$"open"OF$
  69. 483  PRINT D$"append"OF$
  70. 484  PRINT D$"write"OF$
  71. 485  PRINT "= "FF$
  72. 488  PRINT D$
  73. 490  PRINT D$"open"I$
  74. 500  PRINT D$"read"I$
  75. 505 S = 5
  76. 510  FOR L = 1 TO 100
  77. 520  CALL 768:IN$ =  MID$ (IN$,1)
  78. 525  VTAB  PEEK(37)
  79. 530  IF  LEN(IN$) <80  THEN 550
  80. 540  PRINT : PRINT ">>> Warning: Line too long:"
  81. 541  PRINT : PRINT IN$
  82. 545  PRINT 
  83. 550 OU$(L) = "-" +IN$
  84. 560  NEXT 
  85. 570  PRINT D$
  86. 580  PRINT D$"write"OF$
  87. 590  FOR L = 1 TO 100
  88. 600  PRINT OU$(L): NEXT 
  89. 610  PRINT D$
  90. 620  GOTO 500
  91. 700  PRINT D$"write"OF$
  92. 710  FOR LL = 1 TO L -1
  93. 720  PRINT OU$(LL): NEXT 
  94. 725  PRINT "+ End of file "FF$
  95. 730  PRINT D$"close"
  96. 740  PRINT ">>> Finished. Hit a key for menu."
  97. 745  GET A$
  98. 750  GOTO 150
  99. 1999  END 
  100. 2000 Y =  PEEK(222)
  101. 2010  PRINT 
  102. 2020  IF Y = 5  AND S = 5  THEN 700
  103. 2030  IF Y = 6  AND S = 2  THEN 2100
  104. 2035  IF Y = 6  AND S = 1  THEN 2200
  105. 2040  IF Y = 6  AND S = 3  THEN 2300
  106. 2050  IF Y = 6  AND S = 4  THEN 2400
  107. 2055  PRINT D$"close"
  108. 2060  PRINT ">>> Error #"Y: END 
  109. 2100  PRINT : PRINT ">>> Error: Volume/dir not found."
  110. 2105  PRINT 
  111. 2110  GOTO 320
  112. 2200  PRINT : PRINT ">>> Error: Volume/dir not found."
  113. 2205  PRINT 
  114. 2210  GOTO 230
  115. 2300  PRINT ">>> Error: File/directory not found."
  116. 2310  PRINT : PRINT "Insert disk if necessary, then hit"
  117. 2320  PRINT "return to continue, ? for catalog"
  118. 2330  INPUT C$: IF C$ = ""  THEN 420
  119. 2340  INPUT "Pathname? (return for current prefix)   : ";C$
  120. 2350  PRINT D$"cat"C$
  121. 2360  PRINT "Hit a key.": GET A$: PRINT : GOTO 420
  122. 2400  PRINT ">>> Error: input file not found."
  123. 2410  PRINT "Hit return to try again, ? for catalog"
  124. 2420  INPUT ": ";C$
  125. 2430  IF C$ = ""  THEN 460
  126. 2440  INPUT "Pathname? (return for current prefix)   : ";C$
  127. 2450  PRINT D$"cat"C$
  128. 2460  PRINT "Hit a key.": GET A$: PRINT : GOTO 460