home *** CD-ROM | disk | FTP | other *** search
/ The Glitch Apple Disk Collection / 2014.glitch.apple.collection.zip / indexed / AAF.DSK / UPAAF.bas < prev    next >
BASIC Source File  |  2014-09-09  |  6KB  |  174 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 "AAF Unpacker, v1.0"
  7. 22  PRINT : PRINT "by Andy Tefft  (art100@psuvm.psu.edu)"
  8. 24  PRINT : PRINT "This program is freeware. Do what you"
  9. 25  PRINT "want with it, but don't blame me if you"
  10. 26  PRINT "break it."
  11. 28  PRINT : PRINT "Notes (list program for more):"
  12. 30  PRINT : PRINT "1) When asked for a pathname, use"
  13. 32  PRINT "   a full or partial pathname."
  14. 34  PRINT : PRINT "2) Type 'PR#3' before running to use"
  15. 36  PRINT "   80 columns."
  16. 38  PRINT : PRINT "3) Only minimal error checking is done."
  17. 40  PRINT : PRINT "4) Input and output volumes must both"
  18. 42  PRINT "be online."
  19. 44  PRINT : PRINT "Press a key to continue"
  20. 45  GET A$
  21. 46  PRINT 
  22. 50  REM   ARCHIVE FORMAT:
  23. 55  REM 
  24. 60  REM   = filename : denotes output file name
  25. 65  PRINT "   be online."
  26. 70  REM   - line     : line of output file
  27. 75  PRINT : PRINT "5) You will be warned when adding lines"
  28. 76  PRINT "   longer than 79 columns."
  29. 80  REM   + anything : end of file ("anything" ignored")
  30. 85  REM 
  31. 86  REM   all other lines echoed to screen
  32. 87  REM 
  33. 90  REM   because of the difficulty of editing text files
  34. 91  REM   on the apple //, this program prompts for output
  35. 92  REM   file names, so you can change them if desired.
  36. 93  REM 
  37. 94  REM   input anything routine is from an old dos 3.3
  38. 95  REM   public-domain disk
  39. 96  REM 
  40. 120  FOR R = 768 TO 788: READ X: POKE R,X: NEXT : REM  input-anything
  41. 130  DATA  162,0,32,117,253,160,2,138,145,105,200,169,0,145,105,200
  42. 135  DATA   169,2,145,105,96
  43. 140 D$ =  CHR$(4)
  44. 145  DIM OU$(100)
  45. 150  PRINT D$"prefix": INPUT PR$
  46. 160  TEXT : HOME 
  47. 165  PRINT "AAF Unpacker v1.0  Andy Tefft  11/21/90"
  48. 170  PRINT : PRINT "Prefix: "PR$
  49. 171  PRINT "---------------------------------------"
  50. 172  POKE 34,5
  51. 175  PRINT : PRINT "Enter archive pathname, ? for catalog,"
  52. 176  PRINT "/ to change prefix, return to exit."
  53. 180  POKE 34,7
  54. 181  PRINT 
  55. 185  PRINT "A)ppend to an archive"
  56. 190  PRINT 
  57. 195  PRINT : PRINT "E)xit"
  58. 199  ONERR  GOTO 2000
  59. 200  INPUT ": ";C$
  60. 205  IF C$ = ""  THEN  END 
  61. 210  IF C$ < >"/"  THEN 300
  62. 220  PRINT : INPUT "New prefix:";P$
  63. 230  PRINT D$"Prefix"P$
  64. 240  GOTO 150
  65. 250  PRINT D$"cat"C$
  66. 260  PRINT "Press a key to return to menu.";: GET A$
  67. 270  HOME : GOTO 175
  68. 300  IF C$ < >"?"  THEN 400
  69. 310  PRINT D$"cat"
  70. 320  GOTO 190
  71. 325  PRINT D$"prefix"C$
  72. 330  GOTO 150
  73. 400  PRINT : PRINT ">>> Opening "C$" for input."
  74. 405  POKE 34,4:II = 1
  75. 406  PRINT D$"verify"C$
  76. 407 II = 0
  77. 410  PRINT D$"open"C$
  78. 415 IL = 0
  79. 420  PRINT D$"read"C$
  80. 425  IF OF$ = ""  THEN  HOME : GOTO 175
  81. 430  CALL 768:IN$ =  MID$ (IN$,1)
  82. 440  IF  LEFT$(IN$,1) = "="  THEN 450
  83. 445  PRINT IN$: GOTO 430
  84. 450 OU$ =  MID$ (IN$,2)
  85. 455  PRINT ">>> ";
  86. 460  PRINT "Opening "OU$" for output."
  87. 465  PRINT D$: REM   stop taking input from file
  88. 470  PRINT "Press return to use this, enter a new"
  89. 471  PRINT D$"verify"I$
  90. 472  PRINT "pathname for output, ? for catalog"
  91. 475  INPUT ": ";CC$
  92. 476  IF CC$ < >"?"  THEN 480
  93. 477  PRINT "Path to catalog, return for current dir"
  94. 478  INPUT P$: PRINT D$"CAT"P$: GOTO 460
  95. 480  IF CC$ < >""  THEN OU$ = CC$
  96. 482  PRINT D$"open"OF$
  97. 483  PRINT D$"append"OF$
  98. 484  PRINT D$"write"OF$
  99. 485 OO = 1
  100. 488  PRINT D$
  101. 490  PRINT D$"open"OU$: PRINT D$"close"OU$: PRINT D$"delete"OU$
  102. 491 OO = 0
  103. 495  PRINT D$"read"C$
  104. 500 OL = 0
  105. 505 FI = 1: REM   means we've started a file
  106. 510  CALL 768:IN$ =  MID$ (IN$,1)
  107. 520  IF  LEFT$(IN$,1) = "-"  THEN 530
  108. 521  IF  LEFT$(IN$,1) = "+"  THEN 1000
  109. 525  PRINT IN$: GOTO 510
  110. 530 OL = OL +1
  111. 535  VTAB  PEEK(37)
  112. 540 OU$(OL) =  MID$ (IN$,2)
  113. 541  PRINT : PRINT IN$
  114. 545  PRINT 
  115. 550  IF OL <100 GOTO 510
  116. 560  REM    write 100 lines of output file
  117. 570  PRINT D$"open"OU$
  118. 580  PRINT D$"append"OU$
  119. 590  PRINT D$"write"OU$
  120. 600  FOR R = 1 TO 100
  121. 610  PRINT OU$(R)
  122. 620  NEXT 
  123. 630  PRINT D$"close"OU$
  124. 640  GOTO 495
  125. 700  PRINT D$"write"OF$
  126. 710  FOR LL = 1 TO L -1
  127. 720  PRINT OU$(LL): NEXT 
  128. 725  PRINT "+ End of file "FF$
  129. 730  PRINT D$"close"
  130. 740  PRINT ">>> Finished. Hit a key for menu."
  131. 745  GET A$
  132. 750  GOTO 150
  133. 1000  PRINT D$"open"OU$
  134. 1010  PRINT D$"append"OU$
  135. 1020  PRINT D$"write"OU$
  136. 1030  FOR R = 1 TO OL
  137. 1040  PRINT OU$(R): NEXT 
  138. 1050  PRINT D$"close"OU$
  139. 1060  PRINT : PRINT ">>> Finished "OU$
  140. 1065 FI = 0
  141. 1070  GOTO 420
  142. 1999  END 
  143. 2000 Y =  PEEK(222)
  144. 2001  PRINT 
  145. 2005  IF Y = 6  THEN 2100
  146. 2010  IF Y = 5  THEN 2020
  147. 2015  PRINT "Error #"Y: PRINT D$"close": END 
  148. 2020  PRINT D$"close": PRINT ">>> End of file encountered."
  149. 2030  IF FI = 1  THEN  PRINT ">>> "OU$" may be incomplete."
  150. 2035  IF Y = 6  AND S = 1  THEN 2200
  151. 2040  IF FI = 1  THEN  PRINT "(no end of file marker found)"
  152. 2050  TEXT 
  153. 2055  PRINT D$"close"
  154. 2060  END 
  155. 2100  IF OO = 1  THEN  PRINT "Volume/directory not found.": GOTO 455
  156. 2105  PRINT 
  157. 2110  IF II = 1  THEN  PRINT "Input file not found.": GOTO 175
  158. 2200  PRINT : PRINT ">>> Error: Volume/dir not found."
  159. 2205  PRINT 
  160. 2210  GOTO 230
  161. 2300  PRINT ">>> Error: File/directory not found."
  162. 2310  PRINT : PRINT "Insert disk if necessary, then hit"
  163. 2320  PRINT "return to continue, ? for catalog"
  164. 2330  INPUT C$: IF C$ = ""  THEN 420
  165. 2340  INPUT "Pathname? (return for current prefix)   : ";C$
  166. 2350  PRINT D$"cat"C$
  167. 2360  PRINT "Hit a key.": GET A$: PRINT : GOTO 420
  168. 2400  PRINT ">>> Error: input file not found."
  169. 2410  PRINT "Hit return to try again, ? for catalog"
  170. 2420  INPUT ": ";C$
  171. 2430  IF C$ = ""  THEN 460
  172. 2440  INPUT "Pathname? (return for current prefix)   : ";C$
  173. 2450  PRINT D$"cat"C$
  174. 2460  PRINT "Hit a key.": GET A$: PRINT : GOTO 460