home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / INFO / PCRESRC / PCR8807.ARC / MMBASIC.BAS (.txt) < prev    next >
Encoding:
GW-BASIC  |  1987-10-10  |  10.1 KB  |  374 lines

  1. 10  '----------------------------------------------------------------------------
  2. 20  '    Menu Maker, by Jim Woodruff - Sept. 7, 1987
  3. 30  '    Orig written in QUICK BASIC 2.01 - modified for GW-BASIC - Oct. 10, 1987
  4. 40  '
  5. 50  '    A utility for making menu's and help screens.
  6. 60  '    The files created by MENU MAKER can be Bloaded into screen memory by
  7. 70  '    any basic program...
  8. 80  '----------------------------------------------------------------------------
  9. 90  '
  10. 100  DEFINT A-Z
  11. 110  KEY 1,CHR$(255)+CHR$(13)
  12. 120  FOREC=7:ROW=1:COL=1
  13. 130  VIEW PRINT 1 TO 25:CLS
  14. 140  '
  15. 150  'Hello:
  16. 160  <UNK! {0009}>LOCATE 7,6:FOR I=0 TO 7:COLOR 7,0:PRINT USING "   #_-";I;
  17. 170  <UNK! {0009}>COLOR I,0:PRINT STRING$(2,219);:NEXT
  18. 180  <UNK! {0009}>LOCATE 10,27,1,0,7:PRINT "Choose main screen color ";
  19. 190  <UNK! {0009}>MAIN$=INPUT$(1):MAIN=VAL(MAIN$):PRINT MAIN$
  20. 200      IF MAIN<0 OR MAIN >7 THEN SOUND 550,0.5:GOTO 160
  21. 210  <UNK! {0009}>BACKC=MAIN:COLOR 7,MAIN:CLS
  22. 220      GOTO 540
  23. 230  '
  24. 240  'Status:
  25. 250  <UNK! {0009}>COLOR 7,0
  26. 260  <UNK! {0009}>LOCATE 25,65,0:PRINT USING "Y=## X=## C=";ROW ;COL;
  27. 270  <UNK! {0009}>COLOR FOREC,BACKC:PRINT USING "##/#";FOREC;BACKC;
  28. 280  <UNK! {0009}>COLOR 7,0
  29. 290  <UNK! {0009}>RETURN
  30. 300  '
  31. 310  'GetPos:
  32. 320  <UNK! {0009}>UPDATED = -1
  33. 330  <UNK! {0009}>LOCATE ROW,COL,1
  34. 340  <UNK! {0009}>K$="":WHILE K$="":K$=INKEY$:WEND
  35. 350  <UNK! {0009}>K=ASC(RIGHT$(K$,1))
  36. 360        IF K= 72 THEN ROW=ROW-1:  GOTO 480
  37. 370        IF K= 80 THEN ROW=ROW+1:  GOTO 480
  38. 380        IF K= 75 THEN COL=COL-1:  GOTO 480
  39. 390        IF K= 77 THEN COL=COL+1:  GOTO 480
  40. 400        IF K= 71 THEN COL=1:ROW=1:GOTO 480
  41. 410        IF K=116 THEN COL=COL+8:  GOTO 480
  42. 420        IF K=115 THEN COL=COL-8:  GOTO 480
  43. 430        IF K=117 THEN COL=COL2:   GOTO 480
  44. 440  <UNK! {0009}>  IF K= 27 OR K=13 THEN RETURN
  45. 450      GOTO 310
  46. 460  '
  47. 470  'MoveCursor:
  48. 480  <UNK! {0009}>IF ROW<1 THEN ROW=24 ELSE IF ROW>24 THEN ROW = 1
  49. 490  <UNK! {0009}>IF COL<1 THEN COL=80 ELSE IF COL>80 THEN COL = 1
  50. 500      GOSUB 250
  51. 510      GOTO 310
  52. 520  '
  53. 530  'GetCommand:
  54. 540  <UNK! {0009}>COLOR 7,0:LOCATE 25,1,0
  55. 550  <UNK! {0009}>PRINT "(B)ox (L)ine (T)ext D(R)aw (C)olor (D)isk (F)ill (O)ops (Q)uit";
  56. 560      GOSUB 250
  57. 570  <UNK! {0009}>K$="":WHILE K$="":K$=INKEY$:WEND
  58. 580      IF K$="B" OR K$="b" THEN PCOPY 0,1:GOTO 710
  59. 590      IF K$="L" OR K$="l" THEN PCOPY 0,1:GOTO 1120
  60. 600      IF K$="C" OR K$="c" THEN GOTO 1950
  61. 610      IF K$="T" OR K$="t" THEN PCOPY 0,1:GOTO 1520
  62. 620      IF K$="R" OR K$="r" THEN PCOPY 0,1:PCOPY 0,3:GOTO 2080
  63. 630      IF K$="D" OR K$="d" THEN GOTO 2840
  64. 640      IF K$="F" OR K$="f" THEN PCOPY 0,1:GOTO 2550
  65. 650      IF K$="O" OR K$="o" THEN PCOPY 1,0:GOTO 540
  66. 660      IF K$="Q" OR K$="q" THEN GOTO 3880
  67. 670  <UNK! {0009}>SOUND 550,0.5
  68. 680      GOTO 540
  69. 690  '
  70. 700  'Box:
  71. 710  <UNK! {0009}>PCOPY 0,3
  72. 720      GOSUB 3840
  73. 730  <UNK! {0009}>PRINT "Move cursor to upper left corner of box then press enter.";
  74. 740      GOSUB 310
  75. 750        IF K=27 THEN GOTO 2810
  76. 760  <UNK! {0009}>LOCATE ROW,COL:PRINT CHR$(218)
  77. 770  <UNK! {0009}>ROW1=ROW:COL1=COL
  78. 780      GOSUB 3840
  79. 790  <UNK! {0009}>PRINT "Move cursor to lower right corner of box then press enter.";
  80. 800      GOSUB 310
  81. 810        IF K=27 THEN GOTO 2810
  82. 820        IF ROW-1<ROW1 OR COL-1<=COL1 THEN SOUND 550,0.5:GOSUB 1460:GOTO 710
  83. 830  <UNK! {0009}>LOCATE ROW,COL:PRINT CHR$(217)
  84. 840  <UNK! {0009}>ROW2=ROW:COL2=COL
  85. 850      GOSUB 3840
  86. 860  <UNK! {0009}>PRINT "(*D)ouble or (S)ingle line ";
  87. 870  <UNK! {0009}>STYLE$=INPUT$(1)
  88. 880        IF STYLE$=CHR$(27) THEN GOTO 2810
  89. 890        IF STYLE$="D" OR STYLE$="d" THEN STYLE$="D"
  90. 900  <UNK! {0009}>  IF STYLE$="S" OR STYLE$="s" THEN STYLE$="S":ELSE STYLE$="D"
  91. 910      GOSUB 3840
  92. 920  <UNK! {0009}>PRINT "(F)illed or (*N)ot filled ";
  93. 930  <UNK! {0009}>FILL$=INPUT$(1)
  94. 940        IF FILL$=CHR$(27) THEN GOTO 2810
  95. 950        IF FILL$="F" OR FILL$="f" THEN FILL$="F":GOTO 970
  96. 960  <UNK! {0009}>  IF FILL$="N" OR FILL$="n" THEN FILL$="N":ELSE FILL$="N"
  97. 970  <UNK! {0009}>PCOPY 3,0
  98. 980      IF STYLE$ = "S" THEN C1=218:C2=191:C3=192:C4=217:HORZCHR=196:VERTCHR=179
  99. 990      IF STYLE$ = "D" THEN C1=201:C2=187:C3=200:C4=188:HORZCHR=205:VERTCHR=186
  100. 1000     HORZLEN = (COL2-COL1)-1
  101. 1010  <UNK! {0009}>COLOR FOREC,BACKC
  102. 1020  <UNK! {0009}>LOCATE ROW1,COL1,0:PRINT CHR$(C1) STRING$(HORZLEN,HORZCHR) CHR$(C2)
  103. 1030  <UNK! {0009}>FOR I=ROW1+1 TO ROW2-1
  104. 1040  <UNK! {0009}><UNK! {0009}>LOCATE I,COL1:PRINT CHR$(VERTCHR);
  105. 1050  <UNK! {0009}><UNK! {0009}>  IF FILL$="F" THEN PRINT STRING$(HORZLEN,32);
  106. 1060  <UNK! {0009}><UNK! {0009}>LOCATE I,COL2:PRINT CHR$(VERTCHR)
  107. 1070  <UNK! {0009}>NEXT I
  108. 1080  <UNK! {0009}>LOCATE ROW2,COL1:PRINT CHR$(C3) STRING$(HORZLEN,HORZCHR) CHR$(C4);
  109. 1090     GOTO 540
  110. 1100  '
  111. 1110  'Lin:
  112. 1120  <UNK! {0009}>PCOPY 0,3
  113. 1130     GOSUB 3840
  114. 1140  <UNK! {0009}>PRINT "(D)ouble or (*S)ingle line ";
  115. 1150  <UNK! {0009}>STYLE$=INPUT$(1)
  116. 1160        IF STYLE$=CHR$(27) THEN GOTO 2810
  117. 1170        IF STYLE$="D" OR STYLE$="d" THEN STYLE$="D":HORZCHR=205:GOTO 1190
  118. 1180        HORZCHR=196:STYLE$="S"
  119. 1190     GOSUB 3840
  120. 1200  <UNK! {0009}>PRINT "Position cursor at begining of line...";
  121. 1210     GOSUB 310
  122. 1220  <UNK! {0009}>COL1=COL:ROW1=ROW
  123. 1230        IF K=27 THEN GOTO 2810
  124. 1240  <UNK! {0009}>   CHR=SCREEN(ROW,COL)
  125. 1250        IF CHR=179 AND STYLE$="S" THEN C1=195:GOTO 1290
  126. 1260        IF CHR=179 AND STYLE$="D" THEN C1=198:GOTO 1290
  127. 1270        IF CHR=186 AND STYLE$="S" THEN C1=199:GOTO 1290
  128. 1280  <UNK! {0009}>   IF CHR=186 AND STYLE$="D" THEN C1=204:ELSE C1=HORZCHR
  129. 1290  <UNK! {0009}>   COLOR FOREC,BACKC:PRINT CHR$(C1);
  130. 1300     GOSUB 3840
  131. 1310  <UNK! {0009}>PRINT "Position cursor at end of line...";
  132. 1320     GOSUB 310
  133. 1330        IF K=27 THEN GOTO 2810
  134. 1340        IF ROW<>ROW1 OR COL-1<=COL1 THEN SOUND 550,0.5:GOSUB 1460:GOTO 1120
  135. 1350  <UNK! {0009}>   CHR=SCREEN(ROW,COL)
  136. 1360        IF CHR=179 AND STYLE$="S" THEN C2=180:GOTO 1400
  137. 1370        IF CHR=179 AND STYLE$="D" THEN C2=181:GOTO 1400
  138. 1380        IF CHR=186 AND STYLE$="S" THEN C2=182:GOTO 1400
  139. 1390  <UNK! {0009}>   IF CHR=186 AND STYLE$="D" THEN C2=185:ELSE C2=HORZCHR
  140. 1400  <UNK! {0009}>   COLOR FOREC,BACKC
  141. 1410  <UNK! {0009}>   LOCATE ROW,COL1,0
  142. 1420  <UNK! {0009}>   PRINT CHR$(C1) STRING$((COL-COL1)-1,HORZCHR) CHR$(C2)
  143. 1430        GOTO 540
  144. 1440  '
  145. 1450  'CursErr:
  146. 1460     GOSUB 3840
  147. 1470  <UNK! {0009}>PRINT "Cursor position error.  Press <ANY KEY> to continue";
  148. 1480  <UNK! {0009}>K$=INPUT$(1):PCOPY 3,0
  149. 1490  <UNK! {0009}>RETURN
  150. 1500  '
  151. 1510  'Text:
  152. 1520  <UNK! {0009}>PCOPY 0,3
  153. 1530     GOSUB 3840
  154. 1540  <UNK! {0009}>PRINT "Position cursor and press <ENTER>...";
  155. 1550     GOSUB 310
  156. 1560     IF K=27 THEN GOTO 2810
  157. 1570     GOSUB 3840
  158. 1580  <UNK! {0009}>PRINT "Enter text at cursor.";
  159. 1590  <UNK! {0009}>COLOR FOREC,BACKC
  160. 1600  <UNK! {0009}>LOCATE ROW,COL,1:LINE INPUT;"";TEXT$
  161. 1630     GOSUB 3840
  162. 1640  <UNK! {0009}>PRINT "Reposition (*Y/N) ";
  163. 1650  <UNK! {0009}>R$=INPUT$(1)
  164. 1660        IF R$=CHR$(27) THEN GOTO 2810
  165. 1670        IF R$="N" OR R$="n" THEN GOTO 540
  166. 1680     GOSUB 3840
  167. 1690  <UNK! {0009}>PRINT "(*C)enter or (R)eposition cursor ";
  168. 1700  <UNK! {0009}>K$=INPUT$(1)
  169. 1710        IF K$=CHR$(27) THEN GOTO 2810
  170. 1720        IF K$="R" OR K$="r" THEN GOTO 1780
  171. 1730  <UNK! {0009}>PCOPY 3,0:COLOR FOREC,BACKC
  172. 1740  <UNK! {0009}>COL=40-LEN(TEXT$)/2:LOCATE ROW,COL:PRINT TEXT$;
  173. 1750     GOTO 1630
  174. 1780     GOSUB 3840
  175. 1790  <UNK! {0009}>PRINT "Move cursor to new position, press <ENTER> when ready.";
  176. 1800  <UNK! {0009}>ROW2=ROW:COL2=COL
  177. 1810     GOSUB 310
  178. 1820       IF K=27 THEN GOTO 2810
  179. 1830       IF POS(0)+LEN(TEXT$)-1<81 THEN 1880
  180. 1840     SOUND 550,0.5:GOSUB 3840
  181. 1850     PRINT "Not enough room, press <ANY KEY> to continue.";
  182. 1860     R$=INPUT$(1):GOTO 1780
  183. 1880  <UNK! {0009}>PCOPY 3,0
  184. 1890  <UNK! {0009}>LOCATE ROW2,COL2
  185. 1900  <UNK! {0009}>COLOR FOREC,BACKC
  186. 1910     LOCATE ROW,COL:PRINT TEXT$;
  187. 1920     GOTO 1630
  188. 1930  '
  189. 1940  'Colr:
  190. 1950     GOSUB 3840
  191. 1960  <UNK! {0009}>FOR I=0 TO 15:COLOR I,0:PRINT USING "## ";I;:NEXT:COLOR 7,0
  192. 1970  <UNK! {0009}>LINE INPUT;" foreground: ";FOREC$
  193. 1980  <UNK! {0009}>  IF FOREC$<>"" THEN FOREC=VAL(FOREC$)
  194. 1990       IF FOREC>31 THEN SOUND 550,0.5:GOTO 1950
  195. 2000     GOSUB 3840
  196. 2010  <UNK! {0009}>FOR I=0 TO 7:COLOR 15,I:PRINT USING "## ";I;:NEXT:COLOR 7,0
  197. 2020  <UNK! {0009}>LINE INPUT;" background: ";BACKC$
  198. 2030  <UNK! {0009}>  IF BACKC$<>"" THEN BACKC=VAL(BACKC$)
  199. 2040       IF BACKC>7 THEN SOUND 550,0.5:GOTO 1950
  200. 2050     GOTO 540
  201. 2060  '
  202. 2070  'Drawing:
  203. 2080     GOSUB 3840
  204. 2090  <UNK! {0009}>LINE INPUT;"Enter character or code to draw with. (F1 for list) ";G$
  205. 2100       IF G$="" THEN GOTO 540
  206. 2110       IF G$=CHR$(255) THEN PCOPY 0,3:GOTO 2290
  207. 2120       IF LEN(G$)=1 AND ASC(G$)<127 THEN GOTO 2170
  208. 2130     G=VAL(G$):IF G<1 OR G>254 THEN SOUND 550,0.5:GOTO 2080
  209. 2140  <UNK! {0009}>G$=CHR$(G)
  210. 2170     GOSUB 3840
  211. 2180  <UNK! {0009}>LOCATE 25,1:COLOR FOREC,BACKC:PRINT G$;
  212. 2190  <UNK! {0009}>COLOR 7,0:PRINT "  Press <ENTER> to place character, <Esc> to Stop. ";
  213. 2220     GOSUB 310
  214. 2230       IF K=27 THEN GOTO 2080
  215. 2240  <UNK! {0009}>  IF K=13 THEN COLOR FOREC,BACKC
  216. 2250  <UNK! {0009}>LOCATE ROW,COL:PRINT G$
  217. 2260     GOTO 2220
  218. 2270  '
  219. 2280  'GraphicList:
  220. 2290  <UNK! {0009}>PCOPY 0,3
  221. 2300       IF GEXIST THEN PCOPY 2,0:GOTO 2460
  222. 2310     COLR=15:CLS
  223. 2320     FOR I=1 TO 22
  224. 2330       COLOR COLR,0
  225. 2340       LOCATE I,3
  226. 2350       PRINT I+122 "- " CHR$(I+122);"     ";
  227. 2360       PRINT I+144 "- " CHR$(I+144);"     ";
  228. 2370       PRINT I+166 "- " CHR$(I+166);"     ";
  229. 2380       PRINT I+188 "- " CHR$(I+188);"     ";
  230. 2390       PRINT I+210 "- " CHR$(I+210);"     ";
  231. 2400       PRINT I+232 "- " CHR$(I+232);"     ";
  232. 2410       IF COLR=15 THEN COLR=7 ELSE COLR=15
  233. 2420     NEXT I
  234. 2430  <UNK! {0009}>PCOPY 0,2:GEXIST =-1
  235. 2440  '
  236. 2450  'Gexist:
  237. 2460     GOSUB 3840
  238. 2470  <UNK! {0009}>LINE INPUT;"Enter character or code to draw with: ";G$
  239. 2480       IF G$="" THEN GOTO 2810
  240. 2490       IF LEN(G$)=1 AND ASC(G$)<127 THEN PCOPY 3,0:GOTO 2170
  241. 2500     G=VAL(G$):IF G<1 OR G>254 THEN SOUND 550,0.5:GOTO 2460
  242. 2510  <UNK! {0009}>G$=CHR$(G):PCOPY 3,0
  243. 2520     GOTO 2170
  244. 2530  '
  245. 2540  'FillArea:
  246. 2550     PCOPY 0,3:GOSUB 3840
  247. 2560  <UNK! {0009}>PRINT "Move cursor to upper left corner of area then press enter.";
  248. 2570     GOSUB 310
  249. 2580       IF K=27 THEN GOTO 2810
  250. 2590  <UNK! {0009}>LOCATE ROW,COL:PRINT CHR$(218)
  251. 2600  <UNK! {0009}>ROW1=ROW:COL1=COL
  252. 2610     GOSUB 3840
  253. 2620  <UNK! {0009}>PRINT "Move cursor to lower right corner of area then press enter.";
  254. 2630     GOSUB 310
  255. 2640       IF K=27 THEN GOTO 2810
  256. 2650  <UNK! {0009}>LOCATE ROW,COL:PRINT CHR$(217)
  257. 2660       IF ROW-1<ROW1 OR COL-1<=COL1 THEN SOUND 550,0.5:GOSUB 1460:GOTO 2550
  258. 2680  <UNK! {0009}>ROW2=ROW:COL2=COL
  259. 2690  '
  260. 2700  'FillColr:
  261. 2710     GOSUB 3840
  262. 2720  <UNK! {0009}>FOR I=0 TO 7:COLOR 15,I:PRINT USING "## ";I;:NEXT:COLOR 7,0
  263. 2730  <UNK! {0009}>LINE INPUT;" Fill color: ";ERASEC$
  264. 2740  <UNK! {0009}>  IF ERASEC$="" THEN ERASEC=MAIN:ELSE ERASEC=VAL(ERASEC$)
  265. 2750       IF ERASEC>7 THEN SOUND 550,0.5:GOTO 2710
  266. 2760  <UNK! {0009}>COLOR 7,ERASEC
  267. 2770  <UNK! {0009}>FOR I=ROW1 TO ROW2:LOCATE I,COL1:PRINT STRING$(COL2-COL1+1,32);:NEXT I
  268. 2780     GOTO 540
  269. 2790  '
  270. 2800  'Cancel:
  271. 2810     PCOPY 3,0:GOTO 540
  272. 2820  '
  273. 2830  'FileWork:
  274. 2840  <UNK! {0009}>PCOPY 0,3
  275. 2850     GOSUB 3840
  276. 2860  <UNK! {0009}>PRINT "(S)ave or (L)oad  ";
  277. 2870  <UNK! {0009}>K$=INPUT$(1)
  278. 2880       IF K$=CHR$(27) THEN GOTO 2810
  279. 2890       IF K$="S" OR K$="s" THEN GOTO 2940
  280. 2900       IF K$="L" OR K$="l" THEN GOTO 3200
  281. 2910     SOUND 550,0.5:GOTO 2840
  282. 2920  '
  283. 2930  'SaveScreen:
  284. 2940  <UNK! {0009}>FILECANCELED = 0
  285. 2950     GOSUB 3840
  286. 2960  <UNK! {0009}>  IF LEN (TFILE$)>0 THEN PRINT "Use " TFILE$ " for save ? ";
  287. 2970  <UNK! {0009}>  I$=INPUT$(1)
  288. 2980       IF I$="Y" OR I$="y" THEN FILE$=TFILE$:GOTO 3100
  289. 3010     GOSUB 3840
  290. 3020  <UNK! {0009}>LINE INPUT;"Save filename: ";FILE$
  291. 3030       IF FILE$="" THEN GOTO 2810
  292. 3040       IF FILE$="?" THEN GOTO 3540
  293. 3050  <UNK! {0009}>TFILE$=FILE$
  294. 3060     GOSUB 3390:ON ERROR GOTO 0
  295. 3070       IF FILECANCELED THEN GOTO 2810
  296. 3100  <UNK! {0009}>PCOPY 3,0:COLOR 7,0
  297. 3110  <UNK! {0009}>LOCATE 25,1:PRINT STRING$(80,32);
  298. 3120  <UNK! {0009}>DEF SEG = &HB800
  299. 3130     ON ERROR GOTO 3640
  300. 3140  <UNK! {0009}>BSAVE FILE$,0,&H1000
  301. 3150  <UNK! {0009}>ON ERROR GOTO 0
  302. 3160  <UNK! {0009}>UPDATED = 0
  303. 3170     GOTO 540
  304. 3180  '
  305. 3190  'LoadScreen:
  306. 3200     GOSUB 3840
  307. 3210       IF NOT UPDATED THEN 3250:ELSE SOUND 550,0.5
  308. 3220       PRINT "Screen has been edited.  Continue with load? (Y/*N) ";
  309. 3230       I$=INPUT$(1):IF I$="N" OR I$="n" OR I$=CHR$(13) THEN GOTO 2810
  310. 3260     GOSUB 3840
  311. 3270  <UNK! {0009}>LINE INPUT;"Load filename: ";FILE$
  312. 3280       IF FILE$="?" THEN GOTO 3540
  313. 3290       IF FILE$="" THEN GOTO 2810
  314. 3300     GOSUB 3840
  315. 3310  <UNK! {0009}>PRINT "Loading ";FILE$;
  316. 3320  <UNK! {0009}>DEF SEG = &HB800
  317. 3330     ON ERROR GOTO 3640
  318. 3340  <UNK! {0009}>BLOAD FILE$,0:TFILE$=FILE$:UPDATED = 0
  319. 3350  <UNK! {0009}>ON ERROR GOTO 0
  320. 3360     GOTO 540
  321. 3370  '
  322. 3380  'CheckFile:
  323. 3390     ON ERROR GOTO 3490
  324. 3400  <UNK! {0009}>OPEN "i",#1,FILE$:CLOSE:SOUND 550,0.5
  325. 3410     GOSUB 3840
  326. 3420  <UNK! {0009}>PRINT FILE$ " exists, overwrite it? ";
  327. 3430  <UNK! {0009}>I$=INPUT$(1)
  328. 3440  <UNK! {0009}>  IF I$="Y" OR I$="y" THEN RETURN
  329. 3450  <UNK! {0009}>FILECANCELED = -1
  330. 3460  <UNK! {0009}>RETURN
  331. 3470  '
  332. 3480  'FileNameOK:
  333. 3490     RESUME 3510
  334. 3510  <UNK! {0009}>CLOSE:RETURN
  335. 3520  '
  336. 3530  'Directory:
  337. 3540     ON ERROR GOTO 3640
  338. 3550     GOSUB 3840
  339. 3560  <UNK! {0009}>LINE INPUT;"Dir Mask: ";FILE$
  340. 3570  <UNK! {0009}>CLS:FILES FILE$
  341. 3580  <UNK! {0009}>ON ERROR GOTO 0
  342. 3590       IF K$="S" OR K$="s" THEN GOTO 3010
  343. 3600       IF K$="L" OR K$="l" THEN GOTO 3260
  344. 3610     GOTO 2810
  345. 3620  '
  346. 3630  'DirError:
  347. 3640     IF ERR=53 THEN ER$=FILE$+" not found. "          :RESUME 3760
  348. 3650     IF ERR=61 THEN ER$="Disk is full. "              :RESUME 3760
  349. 3660     IF ERR=62 OR ERR=54 THEN ER$=FILE$+" was not BSAVE'ed. ":RESUME 3760
  350. 3680     IF ERR=64 OR ERR=52 THEN ER$=FILE$+" <- Invalid filespec. ":RESUME 3760
  351. 3700     IF ERR=70 THEN ER$="Disk is write protected. "   :RESUME 3760
  352. 3710     IF ERR=71 THEN ER$="Disk drive not responding. " :RESUME 3760
  353. 3720     IF ERR=76 THEN ER$=FILE$+" <- Invalid path. "    :RESUME 3760
  354. 3730     ER$="Error #"+STR$(ERR)+" has occured. "         :RESUME 3760
  355. 3740  '
  356. 3750  'ErrPrint:
  357. 3760  <UNK! {0009}>ON ERROR GOTO 0
  358. 3770     GOSUB 3840:SOUND 550,0.5
  359. 3780  <UNK! {0009}>PRINT ER$ "Press any key to continue.";
  360. 3790  <UNK! {0009}>I$=INPUT$(1)
  361. 3800       IF K$="S" OR K$="s" THEN GOTO 2940
  362. 3810       IF K$="L" OR K$="l" THEN GOTO 3260
  363. 3820  '
  364. 3830  'BlankLine:
  365. 3840  <UNK! {0009}>COLOR 7,0:LOCATE 25,1,0:PRINT STRING$(64,32);:LOCATE 25,1
  366. 3850  <UNK! {0009}>RETURN
  367. 3860  '
  368. 3870  'ProgramEnd:
  369. 3880     GOSUB 3840
  370. 3890  <UNK! {0009}>PRINT "Are sure you want to quit ? (Y/*N) ";
  371. 3900  <UNK! {0009}>   K$=INPUT$(1)
  372. 3910  <UNK! {0009}>   IF K$="Y" OR K$="y" THEN COLOR 7,0,0:CLS:END
  373. 3920        GOTO 540
  374.