home *** CD-ROM | disk | FTP | other *** search
/ Nibble Magazine / nib35b.dsk / TRANSFORMER.bas < prev    next >
BASIC Source File  |  2023-02-26  |  14KB  |  241 lines

  1. 10  REM  *********************
  2. 20  REM  * TRANSFORMER       *
  3. 30  REM  * BY JENNY SCHMIDT  *
  4. 40  REM  * COPYRIGHT(C) 1988 *
  5. 50  REM  * MICROSPARC, INC   *
  6. 60  REM  * CONCORD, MA 01742 *
  7. 70  REM  *********************
  8. 80  PRINT  CHR$(21)
  9. 90  IF  PEEK(104) < >96  THEN  POKE 103,01: POKE 104,96: POKE 24576,0: PRINT  CHR$(4);"RUN TRANSFORMER"
  10. 100  ONERR  GOTO 2190
  11. 110  HIMEM: 37376:PRODOS =  PEEK(48896) = 76:CT$ = "CAT": IF   NOT PRODOS  THEN CT$ = CT$ +"ALOG"
  12. 120 CV = 3.1416/180
  13. 130 TRANS = 2048:SZ = 5:DD = 1:SL = 6
  14. 140  REM  POKE SHAPE TABLE AND ERROR ROUTINE
  15. 150  DATA 1,0,4,0,62,96,21,5,0,104,168,104,166,223,154,72,152,72,96 
  16. 160  FOR I = 768 TO 786: READ J: POKE I,J: NEXT I: POKE 232,0: POKE 233,3
  17. 170  PRINT  CHR$(4);"BLOAD TRANS"
  18. 180 BL = 1
  19. 190  REM  PRINT MAIN  MENU
  20. 200  TEXT : HGR 
  21. 210  ROT= 0: SCALE= 1:JX = 140:JY = 86: XDRAW 1 AT JX,JY
  22. 220  HOME : VTAB 23: HTAB 2: PRINT "SOURCE";: HTAB 10: PRINT "DEST";: HTAB 18: PRINT "TRANS";: HTAB 26: PRINT "FILE";: HTAB 34: PRINT "QUIT";
  23. 230  VTAB 22: HTAB 1: PRINT "MAIN MENU:"
  24. 240 CX = 1:CY = 23
  25. 250  POKE  -16368,0
  26. 260  HTAB CX: VTAB CY: PRINT "<";: HTAB CX +7: PRINT ">";
  27. 270  IF  PEEK( -16384) <128  THEN 270
  28. 280 KY =  PEEK( -16384): POKE  -16368,0: IF KY >224  AND KY <251  THEN KY = KY -32
  29. 290  IF KY < >149  THEN 320
  30. 300  HTAB CX: VTAB CY: PRINT " ";: HTAB CX +7: PRINT " ";:CX = CX +8: IF CX >34  THEN CX = 1
  31. 310  GOTO 260
  32. 320  IF KY < >136  THEN 350
  33. 330  HTAB CX: VTAB CY:: PRINT " ";: HTAB CX +7: PRINT " ";:CX = CX -8: IF CX <0  THEN CX = 33
  34. 340  GOTO 260
  35. 350  IF KY = 141  THEN  ON (CX -1)/8 +1 GOTO 380,810,1790,1420,860
  36. 360  PRINT  CHR$(7);: GOTO 260
  37. 370  REM SOURCE
  38. 380  IF BX  AND PN  THEN  GOSUB 1350
  39. 390  IF BX  AND   NOT PN  THEN  GOSUB 1240
  40. 400  IF BX  THEN BX = 0:PN = 1:JX = X1:JY = Y1:HX = X2:HY = Y2:AN = 0
  41. 410  IF PN  THEN PN = 0: XDRAW 1 AT HX,HY: XDRAW 1 AT JX,HY: XDRAW 1 AT HX,JY
  42. 420  HOME : VTAB 22: PRINT "SOURCE:  I,J,K,M TO POSTION ";
  43. 430  REM SOURCE AND DESTINATION MENUS
  44. 440  VTAB 23: HTAB 2: PRINT "INCR";: HTAB 10: PRINT "DECR";: HTAB 18: PRINT "VIEW";: HTAB 26: PRINT "PIN";: HTAB 34: PRINT "MAIN";
  45. 450  VTAB 21: HTAB 1: PRINT "COORDINATES:"
  46. 460  IF   NOT PN  THEN  VTAB 22: HTAB 29: PRINT "UPPER-LEFT ";
  47. 470  IF PN  THEN  VTAB 22: HTAB 29: PRINT "LOWER-RIGHT";
  48. 480  VTAB 24: HTAB 1: FOR I = 1 TO SZ: PRINT "*";: NEXT I
  49. 490 CX = 1:CY = 23
  50. 500  POKE  -16368,0
  51. 510  HTAB CX: VTAB CY: PRINT "<";: HTAB CX +7: PRINT ">";
  52. 520  IF  PEEK( -16384) <128  THEN 520
  53. 530 KY =  PEEK( -16384): POKE  -16368,0: IF KY >224  AND KY <251  THEN KY = KY -32
  54. 540  IF KY < >149  THEN 570
  55. 550  IF   NOT VW  THEN  HTAB CX: VTAB CY: PRINT " ";: HTAB CX +7: PRINT " ";:CX = CX +8: IF CX >34  THEN CX = 1
  56. 560  GOTO 510
  57. 570  IF KY < >136  THEN 600
  58. 580  IF   NOT VW  THEN  HTAB CX: VTAB CY: PRINT " ";: HTAB CX +7: PRINT " ";:CX = CX -8: IF CX <0  THEN CX = 33
  59. 590  GOTO 510
  60. 600  IF KY = 141  THEN  ON (CX -1)/8 +1 GOTO 680,710,740,770,220
  61. 610  IF KY <201  OR KY = 204  OR KY >205  THEN 660
  62. 620  GOSUB 1010
  63. 630  VTAB 21: HTAB 15: PRINT "                    ";: HTAB 15: IF   NOT PN  THEN  PRINT  INT(JX);","; INT(JY);: REM 20 SPACES
  64. 640  IF PN  THEN  PRINT  INT(HX);","; INT(HY);
  65. 650  GOTO 510
  66. 660  PRINT  CHR$(7);: GOTO 510
  67. 670  REM  INCR
  68. 680  IF SZ = 30  THEN 510
  69. 690 SZ = SZ +1: VTAB 24: HTAB SZ: PRINT "*";: GOTO 510
  70. 700  REM  DECR
  71. 710  IF SZ = 1  THEN 510
  72. 720  VTAB 24: HTAB SZ: PRINT " ";:SZ = SZ -1: GOTO 510
  73. 730  REM VIEW
  74. 740  IF   NOT VW  THEN  POKE  -16302,0:VW = 1: GOTO 510
  75. 750  POKE  -16301,0:VW = 0: GOTO 510
  76. 760  REM  PIN
  77. 770  IF   NOT PN  THEN 790
  78. 780  GOSUB 1360:PN = 0:AN = 0: VTAB 22: HTAB 29: PRINT "UPPER-LEFT ";: GOTO 510
  79. 790 HX = JX:HY = JY:PN = 1: VTAB 22: HTAB 29: PRINT "LOWER-RIGHT";: GOTO 510
  80. 800  REM  DESTINATION
  81. 810  IF   NOT BX  AND   NOT PN  THEN  VTAB 21: HTAB 1: PRINT "NO SOURCE BOX-- PRESS RETURN";: GET A$: VTAB 21: HTAB 1: PRINT "                              ";: GOTO 260: REM 30 SPACES
  82. 820  HOME : VTAB 22: PRINT "DEST:   I,J,K,M TO POSITION ";
  83. 830  IF BX  THEN  GOSUB 1360:AN = 0:PN = 0: GOTO 440
  84. 840 BX = 1:PN = 0:X1 = JX:Y1 = JY:X2 = HX:Y2 = HY:JX =  INT(HX -JX)/2 +JX:JY =  INT(HY -JY)/2 +JY: XDRAW 1 AT JX,JY: GOTO 440
  85. 850  REM  QUIT
  86. 860  HOME : VTAB 22: INPUT "DO YOU WANT TO CONTINUE?";A$: IF  LEFT$(A$,1) = "N"  OR  LEFT$(A$,1) =  CHR$( ASC("N") +32)  THEN  TEXT : END 
  87. 870  GOTO 220
  88. 880  REM  ERASE FINAL BOX ENDPOINTS
  89. 890  IF RX > -1  AND RX <280  AND RY > -1  AND RY <192  THEN  XDRAW 1 AT RX,RY
  90. 900  IF SX > -1  AND SX <280  AND SY > -1  AND SY <192  THEN  XDRAW 1 AT SX,SY
  91. 910  IF TX > -1  AND TX <280  AND TY > -1  AND TY <192  THEN  XDRAW 1 AT TX,TY
  92. 920  RETURN 
  93. 930  REM  CALCUALTE FINAL BOX ENDPOINTS AND DRAW THEM
  94. 940 RX =  INT((HX -JX) * COS(AN *CV)) +JX:RY =  INT((HX -JX) * SIN(AN *CV)) +JY:TX =  INT( -(HY -JY) * SIN(AN *CV)) +JX:TY =  INT((HY -JY) * COS(AN *CV)) +JY
  95. 950 SX =  INT((HX -JX) * COS(AN *CV)) - INT((HY -JY) * SIN(AN *CV)) +JX:SY =  INT((HX -JX) * SIN(AN *CV)) + INT((HY -JY) * COS(AN *CV)) +JY
  96. 960  IF RX > -1  AND RX <280  AND RY > -1  AND RY <192  THEN  XDRAW 1 AT RX,RY
  97. 970  IF SX > -1  AND SX <280  AND SY > -1  AND SY <192  THEN  XDRAW 1 AT SX,SY
  98. 980  IF TX > -1  AND TX <280  AND TY > -1  AND TY <192  THEN  XDRAW 1 AT TX,TY
  99. 990  RETURN 
  100. 1000  REM  MOVE BOX ENDPOINTS
  101. 1010  IF BX  THEN 1180
  102. 1020  IF PN  THEN 1090
  103. 1030  XDRAW 1 AT JX,JY
  104. 1040  IF KY = 201  THEN JY = JY -SZ: IF JY <0  THEN JY = 0: GOTO 1080
  105. 1050  IF KY = 205  THEN JY = JY +SZ: IF JY >191  THEN JY = 191: GOTO 1080
  106. 1060  IF KY = 202  THEN JX = JX -SZ: IF JX <0  THEN JX = 0: GOTO 1080
  107. 1070  IF KY = 203  THEN JX = JX +SZ: IF JX >279  THEN JX = 279
  108. 1080  XDRAW 1 AT JX,JY: RETURN 
  109. 1090  XDRAW 1 AT JX,JY: IF JX < >HX  THEN  XDRAW 1 AT HX,JY
  110. 1100  IF JY < >HY  THEN  XDRAW 1 AT JX,HY: IF JX < >HX  THEN  XDRAW 1 AT HX,HY
  111. 1110  IF KY = 201  THEN HY = HY -SZ: IF HY <JY  THEN HY = JY: GOTO 1150
  112. 1120  IF KY = 205  THEN HY = HY +SZ: IF HY >191  THEN HY = 191: GOTO 1150
  113. 1130  IF KY = 202  THEN HX = HX -SZ: IF HX <JX  THEN HX = JX: GOTO 1150
  114. 1140  IF KY = 203  THEN HX = HX +SZ: IF HX >279  THEN HX = 279
  115. 1150  XDRAW 1 AT JX,JY: IF JX < >HX  THEN  XDRAW 1 AT HX,JY
  116. 1160  IF JY < >HY  THEN  XDRAW 1 AT JX,HY: IF JX < >HX  THEN  XDRAW 1 AT HX,HY
  117. 1170  RETURN 
  118. 1180  IF PN  THEN 1260
  119. 1190  IF JX > -1  AND JX <280  AND JY > -1  AND JY <192  THEN  XDRAW 1 AT JX,JY
  120. 1200  IF KY = 201  THEN JY = JY -SZ: GOTO 1240
  121. 1210  IF KY = 205  THEN JY = JY +SZ: GOTO 1240
  122. 1220  IF KY = 202  THEN JX = JX -SZ: GOTO 1240
  123. 1230  IF KY = 203  THEN JX = JX +SZ
  124. 1240  IF JX > -1  AND JX <280  AND JY > -1  AND JY <192  THEN  XDRAW 1 AT JX,JY
  125. 1250  RETURN 
  126. 1260  IF JX > -1  AND JX <280  AND JY > -1  AND JY <192  THEN  XDRAW 1 AT JX,JY
  127. 1270  IF AN >0  THEN  GOSUB 890: GOTO 1310
  128. 1280  IF JX < >HX  AND HX > -1  AND HX <280  AND JY > -1  AND JY <192  THEN  XDRAW 1 AT HX,JY
  129. 1290  IF JY < >HY  AND JX > -1  AND JX <280  AND HY > -1  AND HY <192  THEN  XDRAW 1 AT JX,HY
  130. 1300  IF JY < >HY  AND JX < >HX  AND HX > -1  AND HX <280  AND HY > -1  AND HY <192  THEN  XDRAW 1 AT HX,HY
  131. 1310  IF KY = 201  AND HY -SZ +1 >JY  THEN HY = HY -SZ: GOTO 1350
  132. 1320  IF KY = 205  THEN HY = HY +SZ: GOTO 1350
  133. 1330  IF KY = 202  AND HX -SZ +1 >JX  THEN HX = HX -SZ: GOTO 1350
  134. 1340  IF KY = 203  THEN HX = HX +SZ
  135. 1350  IF JX > -1  AND JX <280  AND JY > -1  AND JY <192  THEN  XDRAW 1 AT JX,JY
  136. 1360  IF AN >0  THEN  GOSUB 940: RETURN 
  137. 1370  IF JX < >HX  AND HX > -1  AND HX <280  AND JY > -1  AND JY <192  THEN  XDRAW 1 AT HX,JY
  138. 1380  IF JY < >HY  AND JX > -1  AND JX <280  AND HY > -1  AND HY <192  THEN  XDRAW 1 AT JX,HY
  139. 1390  IF JY < >HY  AND JX < >HX  AND HX > -1  AND HX <280  AND HY > -1  AND HY <192  THEN  XDRAW 1 AT HX,HY
  140. 1400  RETURN 
  141. 1410  REM  FILE MENU
  142. 1420  HOME : VTAB 22: PRINT "FILE:";: VTAB 23: HTAB 2: PRINT "LOAD";: HTAB 10: PRINT "SAVE";: HTAB 18: PRINT "CAT";: HTAB 26: PRINT "SL/DR";: HTAB 34: PRINT "MAIN";
  143. 1430 CX = 1:CY = 23
  144. 1440  POKE  -16368,0
  145. 1450  HTAB CX: VTAB CY: PRINT "<";: HTAB CX +7: PRINT ">";
  146. 1460  IF  PEEK( -16384) <128  THEN 1460
  147. 1470 KY =  PEEK( -16384): POKE  -16368,0: IF KY >224  AND KY <251  THEN KY = KY -32
  148. 1480  IF KY < >149  THEN 1510
  149. 1490  HTAB CX: VTAB CY: PRINT " ";: HTAB CX +7: PRINT " ";:CX = CX +8: IF CX >34  THEN CX = 1
  150. 1500  GOTO 1450
  151. 1510  IF KY < >136  THEN 1540
  152. 1520  HTAB CX: VTAB CY:: PRINT " ";: HTAB CX +7: PRINT " ";:CX = CX -8: IF CX <0  THEN CX = 33
  153. 1530  GOTO 1450
  154. 1540  IF KY = 141  THEN  ON (CX -1)/8 +1 GOTO 1560,1650,1720,1730,220
  155. 1550  PRINT  CHR$(7);: GOTO 1450
  156. 1560  HOME : VTAB 21: PRINT "ENTER FILE NAME-- '?' FOR CATALOG       <RET> TO CANCEL:": INPUT "";A$: REM 7 SPACES
  157. 1570  IF A$ = ""  THEN 1420
  158. 1580  IF A$ = "?"  OR A$ = "/"  THEN 1720
  159. 1590  HOME : VTAB 22: INPUT "LOADING WILL ERASE CURRENT PICTURE.     DO YOU WANT TO CONTINUE?";B$: IF  LEFT$(B$,1) < >"Y"  AND  LEFT$(B$,1) < > CHR$( ASC("Y") +32)  THEN 1420
  160. 1600  PRINT  CHR$(4);"BLOAD";A$;",A$2000,D";DD
  161. 1610  IF BX  THEN  XDRAW 1 AT X1,Y1: XDRAW 1 AT X1,Y2: XDRAW 1 AT X2,Y1: XDRAW 1 AT X2,Y2: GOSUB 1350
  162. 1620  IF   NOT BX  THEN  GOSUB 1080
  163. 1630  IF   NOT BX  AND PN  THEN  GOSUB 1090
  164. 1640  GOTO 1420
  165. 1650  HOME : VTAB 21: PRINT "ENTER FILE NAME-- '?' FOR CATALOG       <RET> TO CANCEL:": INPUT "";A$: REM 7 SPACES
  166. 1660  IF A$ = ""  THEN 1420
  167. 1670  IF A$ = "?"  OR A$ = "/"  THEN 1720
  168. 1680  IF BX  THEN  XDRAW 1 AT X1,Y1: XDRAW 1 AT X1,Y2: XDRAW 1 AT X2,Y1: XDRAW 1 AT X2,Y2: GOSUB 1350
  169. 1690  IF   NOT BX  THEN  GOSUB 1080
  170. 1700  IF   NOT BX  AND PN  THEN  GOSUB 1090
  171. 1710  PRINT  CHR$(4);"BSAVE";A$;",A$2000,L$1FFF,D";DD: GOTO 1420
  172. 1720  HOME : TEXT : PRINT : PRINT  CHR$(4);CT$;",D";DD;",S"SL: INPUT "PRESS RETURN TO CONTINUE";A$: POKE  -16304,0: GOTO 1420
  173. 1730 : HOME : VTAB 22: INPUT "ENTER DRIVE NUMBER:";A$: IF  VAL(A$) = 0  OR  VAL(A$) >2  THEN  PRINT  CHR$(7): GOTO 1730
  174. 1740 DD =  VAL(A$)
  175. 1750  HOME : VTAB 22: INPUT "ENTER SLOT NUMBER:";A$: IF  VAL(A$) <3  OR  VAL(A$) >7  THEN  PRINT  CHR$(7);: GOTO 1750
  176. 1760 SL =  VAL(A$): IF PRODOS  THEN  PRINT  CHR$(4)"PREFIX,S";SL;",D";DD
  177. 1770  GOTO 1420
  178. 1780  REM  TRANSFORM MENU
  179. 1790  IF   NOT BX  OR   NOT PN  THEN  VTAB 21: HTAB 1: PRINT "NO DESTINATION BOX-- PRESS RETURN";: GET A$: PRINT "                    ";: GOTO 220: REM 30 SPACES
  180. 1800  HOME : VTAB 23: HTAB 2: PRINT "ROTATE";: HTAB 10: PRINT "COPY";: HTAB 18: PRINT "B/W";: HTAB 26: PRINT "EXEC";: HTAB 34: PRINT "MAIN";
  181. 1810  VTAB 22: HTAB 1: PRINT "TRANSFORM:";: HTAB 31: PRINT "ANGLE: ";AN
  182. 1820  IF CM  THEN  VTAB 23: HTAB 10: PRINT "MOVE";
  183. 1830  IF CF  THEN  VTAB 23: HTAB 18: PRINT "COLOR";
  184. 1840 RX = HX:RY = JY:SX = HX:SY = HY:TX = JX:TY = HY
  185. 1850 CX = 1:CY = 23
  186. 1860  POKE  -16368,0
  187. 1870  HTAB CX: VTAB CY: PRINT "<";: HTAB CX +7: PRINT ">";
  188. 1880  IF  PEEK( -16384) <128  THEN 1880
  189. 1890 KY =  PEEK( -16384): POKE  -16368,0: IF KY >224  AND KY <251  THEN KY = KY -32
  190. 1900  IF KY < >149  THEN 1930
  191. 1910  HTAB CX: VTAB CY: PRINT " ";: HTAB CX +7: PRINT " ";:CX = CX +8: IF CX >34  THEN CX = 1
  192. 1920  GOTO 1870
  193. 1930  IF KY < >136  THEN 1960
  194. 1940  HTAB CX: VTAB CY:: PRINT " ";: HTAB CX +7: PRINT " ";:CX = CX -8: IF CX <0  THEN CX = 33
  195. 1950  GOTO 1870
  196. 1960  IF KY = 141  THEN  ON (CX -1)/8 +1 GOTO 2010,2070,2100,2130,220
  197. 1970  IF KY <201  OR KY >205  OR KY = 204  THEN  PRINT  CHR$(7);: GOTO 1870
  198. 1980  GOSUB 1010: IF AN = 0  THEN RX = HX:RY = JY:SX = HX:SY = HY:TX = JX:TY = HY
  199. 1990  GOTO 1870
  200. 2000  REM ROTATE
  201. 2010 AN = AN +5: IF AN = 360  THEN AN = 0
  202. 2020  VTAB 22: HTAB 38: PRINT "   ";: VTAB 22: HTAB 38: PRINT AN;: REM 3 SPACES
  203. 2030  GOSUB 890: GOSUB 1360
  204. 2040  IF AN = 0  THEN RX = HX:RY = JY:SX = HX:SY = HY:TX = JX:TY = HY
  205. 2050  GOTO 1870
  206. 2060  REM  COPY/MOVE
  207. 2070  IF CM  THEN  VTAB 23: HTAB 10: PRINT "COPY";:CM = 0: GOTO 1870
  208. 2080  VTAB 23: HTAB 10: PRINT "MOVE";:CM = 1: GOTO 1870
  209. 2090  REM  COLOR OR BLACK AND WHITE
  210. 2100  IF CF  THEN  VTAB 23: HTAB 18: PRINT "B/W  ";:CF = 0: GOTO 1870
  211. 2110  IF   NOT CF  THEN  VTAB 23: HTAB 18: PRINT "COLOR";:CF = 1: GOTO 1870
  212. 2120  REM  EXECUTE
  213. 2130  IF X1 = X2  OR Y1 = Y2  OR JX = HX  OR JY = HY  THEN  VTAB 21: HTAB 1: PRINT "INVALID BOXES-- PRESS RETURN";: GET A$: HTAB 1: PRINT "                                ";: GOTO 1870: REM 30 SPACES
  214. 2140  XDRAW 1 AT X1,Y1: XDRAW 1 AT X1,Y2: XDRAW 1 AT X2,Y1: XDRAW 1 AT X2,Y2: GOSUB 1350
  215. 2150  CALL TRANS,X1,Y1,X2,Y2,JX,JY,HX,HY,(X2 -X1)/(HX -JX),(Y2 -Y1)/(HY -JY), COS(AN *CV), SIN(AN *CV),CF *128,CM
  216. 2160  XDRAW 1 AT X1,Y1: XDRAW 1 AT X1,Y2: XDRAW 1 AT X2,Y1: XDRAW 1 AT X2,Y2:AN = 0: GOSUB 1350
  217. 2170  VTAB 21: HTAB 38: PRINT "   ";: HTAB 38: PRINT AN;: REM 3 SPACES
  218. 2180 RX = HX:RY = JY:SX = HX:SY = HY:TX = JX:TY = HY: GOTO 1870
  219. 2190  IF   NOT BL  THEN  PRINT "TRANS FILE NOT ON DISK-- INSERT DISK    AND PRESS RETURN. PRESS <ESC> TO QUIT": GET A$: IF  ASC(A$) = 27  THEN  END 
  220. 2200  IF   NOT BL  THEN  PRINT A$: CALL 777: RESUME 
  221. 2210  IF  PEEK(222) = 255  THEN  CALL 777: RESUME 
  222. 2220  IF  PEEK(222) = 0  OR  PEEK(222) >16  THEN  PRINT "ERROR #"; PEEK(222);" IN LINE "; PEEK(218) + PEEK(219) *256: END 
  223. 2230  HOME : VTAB 23: ON  PEEK(222) GOTO 2240,2250,2260,2270,2280,2290,2300,2310,2320,2330,2340,2350,2360,2370,2380,2390
  224. 2240  PRINT "ERROR #"; PEEK(222): END 
  225. 2250  PRINT "ERROR #"; PEEK(222): END 
  226. 2260  PRINT "ERROR #"; PEEK(222): END 
  227. 2270  PRINT "DISK IS WRITE PROTECTED": GOTO 2400
  228. 2280  PRINT "FILE IS NOT ON DISK": PRINT  CHR$(4);"DELETE";A$: GOTO 2400
  229. 2290  PRINT "FILE IS NOT ON DISK": GOTO 2400
  230. 2300  PRINT "ERROR #"; PEEK(222): END 
  231. 2310  PRINT "I/O ERROR": GOTO 2400
  232. 2320  PRINT "DISK FULL": GOTO 2400
  233. 2330  PRINT "FILE IS LOCKED": GOTO 2400
  234. 2340  PRINT "INVALID FILE NAME": GOTO 2400
  235. 2350  PRINT "ERROR #"; PEEK(222): END 
  236. 2360  PRINT "ERROR #"; PEEK(222): END 
  237. 2370  PRINT "ERROR #"; PEEK(222): END 
  238. 2380  PRINT "ERROR #"; PEEK(222): END 
  239. 2390  PRINT "INVALID FILE NAME": GOTO 2400
  240. 2400  INPUT "PRESS RETURN TO CONTINUE";A$
  241. 2410  CALL 777: GOTO 1420