home *** CD-ROM | disk | FTP | other *** search
/ Nibble Magazine / nib37b.dsk / TRINUM.bas < prev    next >
BASIC Source File  |  2023-02-26  |  13KB  |  239 lines

  1. 10  REM  *************************
  2. 20  REM  * TRINUM                *
  3. 30  REM  * BY GARY KNOX          *
  4. 40  REM  * COPYRIGHT(C) 1989     *
  5. 50  REM  * MINDCRAFT PUBL. CORP. *
  6. 60  REM  * CONCORD, MA 01742     *
  7. 70  REM  *************************
  8. 80  HOME : VTAB 10: HTAB 16: PRINT "TRINUM": NORMAL 
  9. 90  VTAB 20: HTAB 11: PRINT "ONE MOMENT PLEASE"
  10. 100  REM  *** MAIN PROGRAM ***
  11. 110  IF  PEEK(104) = 64  THEN 140
  12. 120  POKE 103,1: POKE 104,64: POKE 16384,0
  13. 130  PRINT  CHR$(4);"RUN TRINUM"
  14. 140  DIM X(6,11),Y(6,11),N$(7,12),P$(7,12),P(3),M(3)
  15. 150  ROT= 0
  16. 160  FOR L = 0 TO 7: FOR K = 0 TO 12:N$(L,K) = "-":P$(L,K) = "0": NEXT K: NEXT L
  17. 170  IF  PEEK(2048) = 31  AND  PEEK(2050) = 64  THEN 200
  18. 180  ONERR  GOTO 2380
  19. 190  PRINT  CHR$(4);"BLOAD TRISHAPES,A$800": POKE 232,0: POKE 233,8: ONERR  GOTO 2390
  20. 200  HOME : VTAB 10: PRINT "INSTRUCTIONS? Y/N ";: GET A$: IF A$ < >"Y"  AND A$ < >"N"  OR A$ = ""  THEN 200
  21. 210  IF A$ = "Y"  THEN  GOSUB 2010
  22. 220  REM  *** SET UP THE GAME BOARD ***
  23. 230  PRINT : HGR : GOSUB 1350: RESTORE 
  24. 240  VTAB 22: PRINT "2 OR 3 PLAYERS?";: GET A$:P =  VAL(A$): IF P <2  OR P >3  OR A$ = ""  THEN  HOME : GOTO 240
  25. 250  HOME 
  26. 260  FOR K = 1 TO P: DRAW K +1 AT 25,(K -1) *11 +36: DRAW 1 AT 73,(K -1) *11 +36: NEXT K
  27. 270 R = 3:BE = 3:EN = 5:TC = 0:W = 0
  28. 280  REM  *** ENTER THE GAME COUNTERS ***
  29. 290  FOR C = BE TO EN:YT = Y(R,C) -3: GOSUB 1320
  30. 300  VTAB 22: PRINT "ENTER THE NUMBER OF CHIPS IN THIS SPOT"
  31. 310  CALL  -868: PRINT "CHOOSE AN AMOUNT FROM 0 TO 9";: GET A$: IF  VAL(A$) <0  OR  VAL(A$) >9  OR  ASC(A$) = 13  THEN  HTAB 1: GOTO 310
  32. 320  IF A$ = "0"  THEN  HCOLOR= 0:YT = Y(R,C) -3: GOSUB 1320:N$ = "0": HCOLOR= 3:XN = X(R,C):YN = Y(R,C): GOSUB 1190: GOTO 340
  33. 330 P$(R,C) = A$:XN = X(R,C):YN = Y(R,C):N$ = A$: HCOLOR= 0: GOSUB 1190: HCOLOR= 3:TC = TC + VAL(A$)
  34. 340  HOME : NEXT C: IF R = 3  THEN R = 2:BE = 4:EN = 6: GOTO 290
  35. 350  REM  *** PLAYER'S TURNS ***
  36. 360  FOR PL = 1 TO P: HOME : VTAB 21: HTAB 15: INVERSE : PRINT "PLAYER # "PL: NORMAL 
  37. 370 EE = 0: PRINT :XX = 1:YY = 1
  38. 380  VTAB 23: CALL  -958: PRINT "PRESS <ESC> TO POSITION CURSOR ";: GET A$: VTAB 23: HTAB 1: CALL  -958
  39. 390  IF  ASC(A$) < >27  THEN 380
  40. 400  XDRAW 29 AT 53,142: XDRAW 29 AT X(1,1) +1,Y(1,1) +4
  41. 410  VTAB 23: CALL  -958: PRINT "MOVE CURSOR TO TRIANGLE YOU WANT"
  42. 420  PRINT "PRESS <ESC> WHEN IN CORRECT TRIANGLE";
  43. 430  VTAB 23: HTAB 34: GET A$
  44. 440  IF  ASC(A$) = 27  THEN R = XX:C = YY: GOTO 550
  45. 450  IF A$ = "T"  THEN CX = 1:CY =  -2
  46. 460  IF A$ = "Y"  THEN CX = 1:CY = 0
  47. 470  IF A$ = "G"  THEN CX = 0:CY =  -1
  48. 480  IF A$ = "H"  THEN CX = 0:CY = 1
  49. 490  IF A$ = "B"  THEN CX =  -1:CY = 0
  50. 500  IF A$ = "N"  THEN CX =  -1:CY = 2
  51. 510  IF YY +CY <0  OR YY +CY >12  THEN 430
  52. 520  IF N$(XX +CX,YY +CY) = "-"  THEN 430
  53. 530  XDRAW 29 AT X(XX,YY) +1,Y(XX,YY) +4:XX = XX +CX:YY = YY +CY
  54. 540  XDRAW 29 AT X(XX,YY) +1,Y(XX,YY) +4: GOTO 430
  55. 550  IF  VAL(P$(R,C)) = 0  THEN EE = 1: GOTO 840
  56. 560  VTAB 23: HTAB 1: CALL  -958: PRINT "PRESS DIRECTION YOU INTEND TO MOVE ";: GET A$
  57. 570  IF A$ = "Y"  THEN MM = 1:A = 1: GOTO 640
  58. 580  IF A$ = "H"  THEN MM = 1:A = 2: GOTO 640
  59. 590  IF A$ = "B"  THEN MM =  -1:A = 1: GOTO 640
  60. 600  IF A$ = "N"  THEN MM =  -1:A = 3: GOTO 640
  61. 610  IF A$ = "G"  THEN MM =  -1:A = 2: GOTO 640
  62. 620  IF A$ = "T"  THEN MM = 1:A = 3: GOTO 640
  63. 630  GOTO 560
  64. 640  IF  VAL(P$(R,C)) = 0  THEN EE = 1: GOTO 840
  65. 650  VTAB 22: CALL  -958: PRINT : INPUT "ENTER NUMBER OF COUNTERS TO BE MOVED ";A$:B =  VAL(A$): IF B <1  OR B > VAL(P$(R,C))  THEN 650
  66. 660  IF  INT(B) < >B  THEN 640
  67. 670  REM  *** MOVE THE COUNTERS ***
  68. 680  VTAB 22: CALL  -958: HTAB 1: PRINT "PRESS <RETURN> TO MOVE COUNTERS"
  69. 690  HTAB 12: PRINT "<ESC> TO QUIT";
  70. 700  VTAB 1
  71. 710  GET AA$: IF  ASC(AA$) < >13  AND  ASC(AA$) < >27  THEN 710
  72. 720  IF  ASC(AA$) = 27  THEN  XDRAW 29 AT 53,142: XDRAW 29 AT X(R,C) +1,Y(R,C) +4: GOTO 1040
  73. 730  IF A = 1  AND C/2 =  INT(C/2)  AND MM =  -1  THEN CR = 0:CC = MM
  74. 740  IF A = 1  AND C/2 =  INT(C/2)  AND MM = 1  THEN CR = MM:CC =  -1
  75. 750  IF A = 1  AND C/2 < > INT(C/2)  AND MM =  -1  THEN CR = MM:CC =  -MM
  76. 760  IF A = 1  AND C/2 < > INT(C/2)  AND MM = 1  THEN CR = 0:CC = MM
  77. 770  IF A = 3  AND C/2 < > INT(C/2)  AND MM =  -1  THEN CR = MM:CC = 1
  78. 780  IF A = 3  AND C/2 < > INT(C/2)  AND MM = 1  THEN CR = 0:CC =  -MM
  79. 790  IF A = 3  AND C/2 =  INT(C/2)  AND MM =  -1  THEN CR = 0:CC =  -MM
  80. 800  IF A = 3  AND C/2 =  INT(C/2)  AND MM = 1  THEN CR = 1:CC =  -MM
  81. 810  IF A = 2  THEN CC = MM:CR = 0
  82. 820  IF N$(R +CR,C +CC) = "-"  THEN 840
  83. 830  IF N$(R +CR,C +CC) > = N$(R,C)  THEN 910
  84. 840  FOR AA = 1 TO 40:BB =  PEEK( -16336): NEXT AA
  85. 850  VTAB 21: PRINT : CALL  -958: PRINT "WRONG MOVE..LOSS OF 5 POINTS!":P(PL) = P(PL) -5: PRINT : PRINT "PRESS <RETURN> KEY...";: GET A$: HTAB 1: VTAB 22: CALL  -958: PRINT 
  86. 860  HCOLOR= 0: FOR K = 0 TO 6: HPLOT 65,(PL -1) *11 +36 -K TO 90,(PL -1) *11 +36 -K: NEXT K: HCOLOR= 3
  87. 870 N$ =  STR$(P(PL)):XN = 73:YN = (PL -1) *11 +36: GOSUB 1190
  88. 880  IF EE = 0  THEN 680
  89. 890 EE = 0: GOTO 410
  90. 900  REM  *** MOVE THE COUNTERS ***
  91. 910 TE =  VAL(P$(R,C)) -B:P$(R,C) =  STR$(TE)
  92. 920 YT = Y(R,C) -3: HCOLOR= 0: GOSUB 1320
  93. 930  XDRAW 29 AT X(R,C) +1,Y(R,C) +4
  94. 940  IF TE >9  THEN XN = X(R,C) -2
  95. 950  IF TE <10  THEN XN = X(R,C)
  96. 960  IF TE = 0  THEN N$ = N$(R,C): HCOLOR= 3
  97. 970  IF TE < >0  THEN N$ = P$(R,C): HCOLOR= 3:YT = Y(R,C) -3: GOSUB 1320: HCOLOR= 0
  98. 980 YN = Y(R,C): GOSUB 1190
  99. 990 TE =  VAL(P$(R +CR,C +CC)) +B: HCOLOR= 3:YT = Y(R +CR,C +CC) -3:C = C +CC:R = R +CR: GOSUB 1320:C = C -CC:R = R -CR: HCOLOR= 0:P$(R +CR,C +CC) =  STR$(TE)
  100. 1000  IF TE >9  THEN XN = X(R +CR,C +CC) -2
  101. 1010  IF TE <10  THEN XN = X(R +CR,C +CC)
  102. 1020 YN = Y(R +CR,C +CC):N$ = P$(R +CR,C +CC): GOSUB 1190: HCOLOR= 3
  103. 1030 C = C +CC:R = R +CR: XDRAW 29 AT X(R,C) +1,Y(R,C) +4: GOTO 700
  104. 1040  IF R = 1  AND C = 1  THEN M(1) = PL
  105. 1050  IF R = 1  AND C = 11  THEN M(2) = PL
  106. 1060  IF R = 6  AND C = 1  THEN M(3) = PL
  107. 1070  GOSUB 1680
  108. 1080 N$ =  STR$(P(PL)):XN = 73:YN = (PL -1) *11 +36: GOSUB 1190
  109. 1090  IF GO = 1  THEN  GOSUB 1720
  110. 1100  IF  VAL(P$(1,1)) + VAL(P$(1,11)) + VAL(P$(6,1)) = TC  THEN 1140
  111. 1110  NEXT PL
  112. 1120  GOTO 360
  113. 1130  REM *** END OF GAME ***
  114. 1140  HOME : VTAB 22: HTAB 14: INVERSE : PRINT "GAME IS OVER": NORMAL 
  115. 1150  FOR K = 1 TO 200:BB =  PEEK( -16336): NEXT K
  116. 1160  HTAB 10: VTAB 24: PRINT "ANOTHER GAME? Y/N ";: GET A$: IF A$ < >"Y"  AND A$ < >"N"  THEN 1160
  117. 1170  IF A$ = "Y"  THEN  CLEAR : TEXT : GOTO 140
  118. 1180  TEXT : HOME : END 
  119. 1190  REM  *HIRES PRINTING ROUTINE*
  120. 1200  SCALE= S
  121. 1210  FOR CN = 1 TO  LEN(N$)
  122. 1220  REM  ** GET 1 STRING CHARACTER **
  123. 1230 Q$ =  MID$ (N$,CN)
  124. 1240  REM  ** CONVERT TO SHAPE NUMBER **
  125. 1250  IF  ASC(Q$) = 45  THEN  DRAW 31 AT XN,YN: GOTO 1280
  126. 1260  IF  ASC(Q$) -47 <10  THEN  DRAW  ASC(Q$) -47 AT XN +6 *S *(CN -1),YN: GOTO 1280
  127. 1270  DRAW  ASC(Q$) -47 AT XN +7 *S *(CN -1),YN
  128. 1280  NEXT CN
  129. 1290  REM  ** GO BACK TO MAIN PROGRAM **
  130. 1300  RETURN 
  131. 1310  REM 
  132. 1320  REM  *** ERASE TRIANGLE NUMBER ***
  133. 1330  FOR K = 1 TO 8: HPLOT X(R,C) -3,YT -3 TO X(R,C) +8,YT -3:YT = YT +1: NEXT K
  134. 1340  RETURN 
  135. 1350  REM  *** FILL IN BOARD ***
  136. 1360  HCOLOR= 3
  137. 1370  HPLOT 59,150 TO 140,10 TO 221,150 TO 59,150
  138. 1380  HPLOT 73,127 TO 208,127: HPLOT 86,103 TO 194,103: HPLOT 100,80 TO 181,80: HPLOT 113,57 TO 167,57: HPLOT 127,33 TO 154,33
  139. 1390  HPLOT 127,33 TO 194,150: HPLOT 113,57 TO 167,150: HPLOT 100,80 TO 140,150: HPLOT 86,103 TO 113,150: HPLOT 73,127 TO 86,150
  140. 1400  HPLOT 208,127 TO 194,150: HPLOT 194,103 TO 167,150: HPLOT 140,150 TO 181,80: HPLOT 113,150 TO 167,57: HPLOT 86,150 TO 154,33
  141. 1410 S = 1
  142. 1420 M = 10: FOR L = 1 TO 5: READ Y1,Y2: FOR K = 1 TO M  STEP 2:YN = Y1: READ XN,N$: GOSUB 1190:X(L,K) = XN:Y(L,K) = YN:N$(L,K) = N$
  143. 1430 YN = Y2: READ XN,N$: GOSUB 1190:X(L,K +1) = XN:Y(L,K +1) = YN:N$(L,K +1) = N$: NEXT K
  144. 1440  READ XN,N$:N$(L,K) = N$:YN = Y1: GOSUB 1190:M = M -2:X(L,K) = XN:Y(L,K) = YN: NEXT L
  145. 1450  READ XN,YN,N$: GOSUB 1190:X(6,1) = XN:Y(6,1) = YN:N$(6,1) = N$
  146. 1460 XN = 110:YN = 10:N$ = "HF@": GOSUB 1190
  147. 1470 XN = 150:YN = 10:N$ = "CIB": GOSUB 1190
  148. 1480  HPLOT 100,0 TO 100,15 TO 130,15 TO 140,0 TO 150,15 TO 180,15 TO 180,0
  149. 1490  HPLOT 98,0 TO 98,17 TO 132,17 TO 140,4 TO 148,17 TO 182,17 TO 182,0
  150. 1500  HPLOT 0,0 TO 279,0 TO 279,157 TO 0,157 TO 0,0
  151. 1510 XN = 5:YN = 25:N$ = "EA:K=F": GOSUB 1190
  152. 1520 XN = 53:YN = 25:N$ = "G<DF=": GOSUB 1190
  153. 1530  HPLOT 4,28 TO 90,28
  154. 1540 XN = 200:YN = 25:N$ = "BDJ=": GOSUB 1190
  155. 1550 XN = 240:YN = 25:N$ = "EF=GG": GOSUB 1190
  156. 1560  HPLOT 195,28 TO 275,28
  157. 1570  ROT= 56: DRAW 30 AT 215,38: ROT= 0: DRAW 25 AT 255,38
  158. 1580  ROT= 8: DRAW 30 AT 215,49: ROT= 0: DRAW 28 AT 255,49
  159. 1590  ROT= 48: DRAW 30 AT 215,57: ROT= 0: DRAW 15 AT 255,60
  160. 1600  ROT= 16: DRAW 30 AT 215,68: ROT= 0: DRAW 16 AT 255,71
  161. 1610  ROT= 40: DRAW 30 AT 215,79: ROT= 0: DRAW 12 AT 255,82
  162. 1620  ROT= 24: DRAW 30 AT 215,90: ROT= 0: DRAW 20 AT 255,93
  163. 1630 XN = 5:YN = 144:N$ = "<IFGDF": GOSUB 1190
  164. 1640  XDRAW 29 AT 53,142
  165. 1650  HPLOT 4,135 TO 50,135: HPLOT 4,146 TO 50,146
  166. 1660  RETURN 
  167. 1670  REM  *** CHECK FOR CORNER CAPTURE ***
  168. 1680 RR = 1:BB = 6:GO = 0
  169. 1690  FOR CC = BB TO 6: IF P$(RR,CC) < >"0"  THEN  RETURN 
  170. 1700  NEXT CC:RR = RR +1:BB = BB -2: IF RR <4  THEN 1690
  171. 1710 GO = 1: RETURN 
  172. 1720 KK = 0:CO = 1
  173. 1730 BE = 1:EN = 5:RR = 1:YT = 1:XT = 1
  174. 1740  IF M(CO) <0  THEN 1870
  175. 1750  FOR CC = BE TO EN: IF (CC = 1  AND RR = 1)  OR (CC = 11  AND RR = 1)  OR (CC = 1  AND RR = 6)  THEN 1780
  176. 1760  IF P$(YT,XT) = "0"  THEN 1870
  177. 1770  IF P$(RR,CC) < >"0"  THEN 1870
  178. 1780  NEXT CC:KK = KK +1:RR = RR +1:EN = EN -2: IF KK <4  THEN 1750
  179. 1790 W = W +1:M(CO) =  -M(CO): ON W GOTO 1800,1810,1820
  180. 1800 P( ABS(M(CO))) = P( ABS(M(CO))) + VAL(P$(YT,XT)) *2: GOTO 1830
  181. 1810 P( ABS(M(CO))) = P( ABS(M(CO))) + VAL(P$(YT,XT)) *3: GOTO 1830
  182. 1820 P( ABS(M(CO))) = P( ABS(M(CO))) + VAL(P$(YT,XT)) *4
  183. 1830  HOME : VTAB 21: PRINT "PLAYER " ABS(M(CO))" WON A CORNER."
  184. 1840  FOR AA = 1 TO 100:BB =  PEEK( -16336): NEXT AA
  185. 1850  HCOLOR= 0: FOR K = 0 TO 6: HPLOT 65,( ABS(M(CO)) -1) *11 +36 -K TO 90,( ABS(M(CO)) -1) *11 +36 -K: NEXT K: HCOLOR= 3
  186. 1860 N$ =  STR$(P( ABS(M(CO)))):XN = 73:YN = ( ABS(M(CO)) -1) *11 +36: GOSUB 1190
  187. 1870 KK = 0:CO = CO +1: IF CO = 2  THEN BE = 7:EN = 11:RR = 1:YT = 1:XT = 11: GOTO 1740
  188. 1880  IF CO = 3  THEN BE = 1:EN = 5:RR = 4:YT = 6:XT = 1: GOTO 1740
  189. 1890  IF  VAL(P$(1,1)) + VAL(P$(1,11)) + VAL(P$(6,1)) = TC  THEN  RETURN 
  190. 1900  IF P(1) +P(2) +P(3) = 0  THEN  RETURN 
  191. 1910  IF W = 0  THEN  RETURN 
  192. 1920  VTAB 24: HTAB 10: INVERSE : PRINT "PRESS <RETURN>";: NORMAL : GET A$: PRINT : HOME : RETURN 
  193. 1930  REM  *** BOARD DATA ***
  194. 1940  DATA        144,136,71,"6",84,"5",97,"4",111,"3",124,"2",138,"1",151,"2",165,"3",178,"4",192,"5",206,"6"  
  195. 1950  DATA    122,111,83,"4",97,"3",111,"2",124,"0",138,"0",151,"0",165,"2",178,"3",192,"4" 
  196. 1960  DATA     98,88,97,"2",111,"1",124,"0",137,"0",152,"0",165,"1",180,"2"  
  197. 1970  DATA     74,66,110,"2",125,"3",138,"2",152,"3",165,"2"  
  198. 1980  DATA   52,41,124,"4",138,"5",152,"4" 
  199. 1990  DATA      138,27,"6" 
  200. 2000  REM  *** GAME INSTRUCTIONS ***
  201. 2010  HOME : HTAB 16: INVERSE : PRINT "TRI-NUM": NORMAL : POKE 34,2: VTAB 8
  202. 2020  PRINT "   THE GAME IS PLAYED BY 2 OR 3 PLAYERS WHO MOVE 'COUNTERS' FROM THE CENTER OR  ZERO SPACES TO ONE OF THE THREE CORNERS ON THE TRI-NUM BOARD."
  203. 2030  GOSUB 2350
  204. 2040  HGR : GOSUB 1350
  205. 2050  VTAB 21: PRINT "HERE IS THE TRI-NUM BOARD. NOTICE, THE  TRIANGLES IN THE CENTER WITH ZEROS ARE  WHERE THE COUNTERS ARE PLACED FIRST."
  206. 2060  GOSUB 2350
  207. 2070  HOME : VTAB 21: PRINT "RULE 1: COUNTERS MUST BE MOVED UPWARD           NUMERICALLY IN ONE OR MORE STEPS        BETWEEN JOINING TRIANGLES."
  208. 2080  GOSUB 2350
  209. 2090  HOME : VTAB 21: PRINT "RULE 2: COUNTERS MUST BE MOVED PARALLEL       TO (SAME DIRECTION AS) ONE OF THE       THREE LONG SIDES OF THE BOARD."
  210. 2100  GOSUB 2350
  211. 2110  POKE 49233,0
  212. 2120  PRINT "YOU MAY MOVE ONE OR ALL OF THE COUNTERS AS FAR AS POSSIBLE ON THE BOARD. YOU MAY MOVE TO ANY TRIANGLE, WHETHER IT HAS   COUNTERS ON IT OR NOT."
  213. 2130  PRINT 
  214. 2140  PRINT "   REMEMBER THAT IT IS ILLEGAL TO MOVE  TO A LOWER NUMBERED TRIANGLE AND THE    MOVES MUST BE PARALLEL TO THE SIDES."
  215. 2150  PRINT 
  216. 2160  PRINT "   WHEN A PLAYER MOVES A COUNTER TO ONE OF THE CORNERS,THE PLAYER OWNS IT UNTIL SOMEONE ELSE MOVES A COUNTER THERE."
  217. 2170  PRINT 
  218. 2180  PRINT "   THE PLAYER WHO MOVES THE LAST COUNTERONTO A CORNER TRIANGLE WILL WIN THAT    CORNER AND RECIEVE POINTS FOR IT."
  219. 2190  PRINT 
  220. 2200  GOSUB 2350
  221. 2210  VTAB 3: INVERSE : HTAB 16: PRINT "SCORING": NORMAL 
  222. 2220  PRINT 
  223. 2230  PRINT "1ST CORNER WON: POINTS EQUAL TWICE THE                  NUMBER OF COUNTERS IN                   THAT CORNER."
  224. 2240  PRINT 
  225. 2250  PRINT "2ND CORNER WON: POINTS EQUAL THREE TIMES                THE NUMBER OF COUNTERS                  IN THAT CORNER."
  226. 2260  PRINT 
  227. 2270  PRINT "3RD CORNER WON: POINTS EQUAL FOUR TIMES                 THE NUMBER OF COUNTERS                  IN THAT CORNER."
  228. 2280  GOSUB 2350
  229. 2290  VTAB 3: INVERSE : HTAB 15: PRINT "PENALTIES": NORMAL 
  230. 2300  VTAB 8
  231. 2310  PRINT "  ANY ILLEGAL MOVE WILL COST A PLAYER   FIVE POINTS. THE PLAYER WILL BE REQUIREDTO COMPLETE THE TURN PROPERLY."
  232. 2320  GOSUB 2350: RESTORE 
  233. 2330  RETURN 
  234. 2340  REM  *** KEYPRESS TO CONTINUE ***
  235. 2350  VTAB 24: HTAB 1: PRINT "PRESS RETURN";: GET A$
  236. 2360  IF  ASC(A$) < >13  THEN 2350
  237. 2370  HOME : RETURN 
  238. 2380  HOME : PRINT "THE FILE TRISHAPES IS NOT ON THIS DISK.": END 
  239. 2390  HOME : PRINT "ERROR NUMBER " PEEK(222)" HAS OCURRED IN LINE " PEEK(218) +256 * PEEK(219): END