home *** CD-ROM | disk | FTP | other *** search
/ Nibble Magazine / nib40b.dsk / CHALK.MATH.bas < prev    next >
BASIC Source File  |  2023-02-26  |  18KB  |  347 lines

  1. 100  REM  *************************
  2. 110  REM  * CHALK.MATH            *
  3. 120  REM  * BY BILL THOMPSON      *
  4. 130  REM  * COPYRIGHT (C) 1981    *
  5. 140  REM  * MINDCRAFT PUBL. CORP. *
  6. 150  REM  * CONCORD, MA 01742     *
  7. 160  REM  *************************
  8. 170  ONERR  GOTO 3540
  9. 180  IF  PEEK(770) = 173  THEN  GOTO 200
  10. 190  PRINT  CHR$(4)"BLOAD TICK"
  11. 200  POKE 216,0
  12. 210  ONERR  GOTO 3420
  13. 220  REM  INTRO
  14. 230  PRINT  CHR$(12) CHR$(21): TEXT : HOME 
  15. 240  FOR K = 6 TO 34: VTAB 1: HTAB K: PRINT  CHR$(95): VTAB 8: HTAB K: PRINT  CHR$(95): NEXT 
  16. 250  FOR K = 2 TO 8: VTAB K: HTAB 6: PRINT  CHR$(124): VTAB K: HTAB 34: PRINT  CHR$(124):L1 = 10: GOSUB 1430: NEXT 
  17. 260  VTAB 3: HTAB 15: PRINT "Chalk Math": PRINT : HTAB 12: PRINT "By Bill Thompson": VTAB 7: HTAB 8: PRINT "(c) 1991 MindCraft Publ."
  18. 270  VTAB 22: HTAB 10: PRINT "Do you want sound (y/n)";: POKE 49168,0: GET Y$
  19. 280  IF Y$ = "Y"  OR Y$ =  CHR$(121)  THEN S9 = 0: GOTO 310
  20. 290  IF Y$ = "N"  OR Y$ =  CHR$(110)  THEN S9 = 1: GOTO 310
  21. 300  GOTO 270
  22. 310  VTAB 20: CALL  -958
  23. 320  VTAB 12: HTAB 10: PRINT "Press "; CHR$(34)"S" CHR$(34)" on a input to"
  24. 330  HTAB 10: PRINT "toggle the sound on/off."
  25. 340  VTAB 15: HTAB 7: PRINT "Press <Esc> on input to quit."
  26. 350  VTAB 22: HTAB 6: PRINT "Please press a key to begin.";
  27. 360 X =  PEEK( -16384): IF X >127  THEN  POKE  -16368,0: HOME : TEXT : GR : POKE 768,40: POKE 769,10: GOSUB 2430: GOTO 380
  28. 370  GOTO 360
  29. 380  GOTO 2570: REM  TO MAIN PROGRAM LOOP
  30. 390  REM 
  31. 400  REM  SUBROUTINES
  32. 410  REM 
  33. 420  REM  SHOW CURRECT ANSWER
  34. 430  GOSUB 1920:J = 1
  35. 440 B$ = "----------": GOSUB 1990:L1 = 25: GOSUB 1240: REM  10 -'S
  36. 450 B$ = "Answer was": GOSUB 1990: GOSUB 1240: GOSUB 1390:J = J +1: POKE 768,50: POKE 769,5: GOSUB 2430: IF J <10  THEN  GOTO 440
  37. 460 X = 34:Y = 13: FOR C = 1 TO 15: COLOR= C: POKE 768,C: POKE 769,4: GOSUB 2430
  38. 470  IF AN = 0  THEN  GOSUB 920
  39. 480  IF AN < >0  THEN U1 = AN: GOSUB 1280
  40. 490  NEXT C
  41. 500 L1 = 500: GOSUB 1240: GOSUB 1370:L1 = 1000: GOSUB 1240: GOSUB 1390:H1 = 2: GOSUB 1160: GOSUB 1240: COLOR= 0: GOSUB 1410
  42. 510  RETURN 
  43. 520 L1 = 250: GOSUB 1240: RETURN 
  44. 530  REM  WINK
  45. 540  COLOR= 11: HLIN 3,4 AT 10: HLIN 3,4 AT 11: POKE 768,10: POKE 769,5: GOSUB 2430:L1 = 200: GOSUB 1240: COLOR= 15: HLIN 3,4 AT 10: PLOT 4,11: COLOR= 0: PLOT 3,11: RETURN 
  46. 550  REM  COUNTING
  47. 560 J = 0
  48. 570  GOSUB 1630: GOSUB 520: GOSUB 1660: GOSUB 520: GOSUB 1680: GOSUB 520: GOSUB 1710: GOSUB 520
  49. 580  GOSUB 1330: IF AN = 0  THEN  GOSUB 1350:X = 11:Y = J1: COLOR= 15: GOSUB 920:L1 = 1000: GOSUB 1240: COLOR= 0: GOSUB 920: GOTO 690
  50. 590 Y = 3
  51. 600  FOR X = 30 TO 14  STEP  -2
  52. 610  GOSUB 1310: GOSUB 2140: POKE 768,X: POKE 769,4: GOSUB 2430:L1 = 30: GOSUB 1240: COLOR= 0: GOSUB 2140: NEXT 
  53. 620 X = 11
  54. 630  FOR Y = 5 TO 20  STEP 5
  55. 640  IF Y >10  THEN  GOSUB 1350
  56. 650  GOSUB 1310: POKE 768,50 -Y: POKE 769,10: GOSUB 2430: GOSUB 2140:L1 = 10: GOSUB 1240: COLOR= 0: GOSUB 2140: NEXT Y: GOSUB 1710
  57. 660  COLOR= 9: HLIN 11,12 AT 28: POKE 768,255: POKE 769,5: GOSUB 2430: GOSUB 1880:L1 = 300: GOSUB 1240: GOSUB 1900: COLOR= 0: HLIN 11,12 AT 28:J = J +1
  58. 670 X = 11:Y = J1: COLOR= 15:U1 = J: GOSUB 1280:L1 = 600: GOSUB 1240: COLOR= 0:U1 = J: GOSUB 1280
  59. 680  IF J <AN  THEN  GOTO 580
  60. 690  GOSUB 1370: COLOR= 15: GOSUB 1610:L1 = 500: GOSUB 1240
  61. 700  GOSUB 540:L1 = 500: GOSUB 1240: GOSUB 1390: COLOR= 0: GOSUB 1610: GOSUB 520: GOSUB 1750: GOSUB 1680: GOSUB 1500
  62. 710 L1 = 400: GOSUB 1240: GOSUB 1780: GOSUB 1240: GOSUB 1820: RETURN 
  63. 720  REM  WRONG ANSWER
  64. 730 M1 = 18
  65. 740  GOSUB 1370:L1 = 1000: GOSUB 1240:E1 = M1: GOSUB 1110: GOSUB 1390:L1 = 1000: GOSUB 1240: GOSUB 1370
  66. 750 M1 = M1 +8: GOSUB 820
  67. 760  IF M1 = 34  THEN M1 = M1 -1
  68. 770  IF M1 <40  THEN 740
  69. 780  COLOR= 4:X = 34:Y = 13
  70. 790  IF G1 = 0  THEN  GOSUB 920: GOTO 810
  71. 800 U1 = G1: GOSUB 1280
  72. 810  GOSUB 430: RETURN 
  73. 820  IF M1 >34  THEN  RETURN 
  74. 830  FOR C = 1 TO 15: COLOR= C
  75. 840  IF M1 = 26  AND (F1 -1) = 0  THEN X = 19:Y = 13: GOSUB 920
  76. 850  IF M1 = 26  AND (F1 -1) < >0  THEN X = 19:Y = 13:U1 = (F1 -1): GOSUB 1280
  77. 860  IF M1 = 34  AND (F3 -1) = 0  THEN X = 27:Y = 13: GOSUB 920
  78. 870  IF M1 = 34  AND (F3 -1) < >0  THEN X = 27:Y = 13:U1 = (F3 -1): GOSUB 1280
  79. 880  POKE 768,I: POKE 769,4: GOSUB 2430: NEXT : RETURN 
  80. 890  REM 
  81. 900  REM  NUMBER SUBROUTINES
  82. 910  REM 
  83. 920  HLIN X,X +2 AT Y: VLIN Y +1,Y +J3 AT X: VLIN Y +1,Y +J3 AT X +2: HLIN X,X +2 AT Y +J4: RETURN 
  84. 930  PLOT X,Y +1: VLIN Y,Y +J3 AT X +1: HLIN X,X +2 AT Y +J4: RETURN 
  85. 940  HLIN X,X +2 AT Y: HLIN X,X +2 AT Y +J2: HLIN X,X +2 AT Y +J4: VLIN Y +1,Y +J2 AT X +2: VLIN Y +J2,Y +J3 AT X: RETURN 
  86. 950  HLIN X,X +2 AT Y: HLIN X,X +2 AT Y +J2: HLIN X,X +2 AT Y +J4: VLIN Y,Y +J4 AT X +2: RETURN 
  87. 960  VLIN Y,Y +J2 AT X: PLOT X +1,Y +J2: VLIN Y,Y +J4 AT X +2: RETURN 
  88. 970  HLIN X,X +2 AT Y: HLIN X,X +2 AT Y +J2: HLIN X,X +2 AT Y +J4: VLIN Y +1,Y +J2 AT X: VLIN Y +J2,Y +J3 AT X +2: RETURN 
  89. 980  VLIN Y +1,Y +J3 AT X: GOSUB 970: RETURN 
  90. 990  HLIN X,X +2 AT Y: VLIN Y,Y +J4 AT X +2: RETURN 
  91. 1000  HLIN X,X +2 AT Y +J2: GOSUB 920: RETURN 
  92. 1010  HLIN X,X +2 AT Y: GOSUB 960: RETURN 
  93. 1020  REM  +  - = ROUTINES
  94. 1030  GOSUB 1040: VLIN Y +1,Y +3 AT X +1: RETURN 
  95. 1040  HLIN X,X +2 AT Y +2: RETURN 
  96. 1050  HLIN X,X +1 AT Y +1: HLIN X,X +1 AT Y +3: RETURN 
  97. 1060  REM  CHALK BOARD
  98. 1070  COLOR= 8: PLOT 16,24: COLOR= 13: HLIN 16,39 AT 5: HLIN 16,39 AT J5 +1: VLIN 5,J5 +1 AT 16: VLIN 5,J5 +1 AT 39
  99. 1080  COLOR= 8: PLOT 16,24
  100. 1090  COLOR= 4: FOR I = 6 TO J5: HLIN 17,38 AT I: NEXT : RETURN 
  101. 1100  REM  UP WANT
  102. 1110  GOSUB 1220
  103. 1120  COLOR= 13: PLOT 16,24: COLOR= 0: HLIN 6,9 AT 23: HLIN 6,15 AT 24
  104. 1130  COLOR= 9: VLIN 23,24 AT 5: VLIN 21,24 AT 3: VLIN 21,24 AT 4: COLOR= 1: HLIN 5,9 AT 19: HLIN 5,9 AT 20: COLOR= 15: HLIN 10,11 AT 19: PLOT 10,20
  105. 1140  COLOR= 8: HLIN 11,E1 AT 20: POKE 768,50: POKE 769,3: GOSUB 2430: RETURN 
  106. 1150  REM  WAND DOWN
  107. 1160  COLOR= 4: HLIN 17,E1 AT 20
  108. 1170  IF H1 = 0  THEN  GOTO 1200
  109. 1180  IF H1 = 1  THEN T1 = F1:X = 19:Y = 13: COLOR= 15: GOSUB 1260
  110. 1190  IF H1 = 2  THEN T1 = F3:X = 27:Y = 13: COLOR= 15: GOSUB 1260:T1 = F1:X = 19: GOSUB 1260
  111. 1200  COLOR= 13: PLOT 16,20: COLOR= 0: HLIN 6,11 AT 19: HLIN 6,15 AT 20: COLOR= 9: VLIN 19,20 AT 5: COLOR= 1: VLIN 21,24 AT 3: VLIN 21,24 AT 4
  112. 1210  HLIN 5,7 AT 23: HLIN 5,7 AT 24: COLOR= 15: HLIN 8,9 AT 23: PLOT 8,24: COLOR= 8: HLIN 9,16 AT 24: RETURN 
  113. 1220  COLOR= 11: HLIN 3,4 AT 10: HLIN 3,4 AT 11:L1 = 100: GOSUB 1240: COLOR= 15: HLIN 3,4 AT 10: PLOT 3,11: COLOR= 0: PLOT 4,11: RETURN 
  114. 1230  REM  DELAY ROUTINE
  115. 1240  FOR W1 = 1 TO L1: NEXT W1: RETURN 
  116. 1250  REM  BRANCHING
  117. 1260  ON T1 GOSUB 920,930,940,950,960,970,980,990,1000,1010
  118. 1270  RETURN 
  119. 1280  ON U1 GOSUB 930,940,950,960,970,980,990,1000,1010
  120. 1290  RETURN 
  121. 1300  ON F2 GOSUB 1030,1040: RETURN 
  122. 1310  COLOR=  INT(15 * RND(1) +1): RETURN 
  123. 1320  REM  EYE UP
  124. 1330  COLOR= 15: PLOT 4,11: COLOR= 0: PLOT 4,10: RETURN 
  125. 1340  REM  EYE DOWN  
  126. 1350  COLOR= 15: PLOT 4,10: COLOR= 0: PLOT 4,11: RETURN 
  127. 1360  REM  EYE BACK
  128. 1370  COLOR= 15: PLOT 4,11: COLOR= 0: PLOT 3,11: RETURN 
  129. 1380  REM  EYE FORWARD
  130. 1390  COLOR= 0: PLOT 4,11: COLOR= 15: PLOT 3,11: RETURN 
  131. 1400  REM  FACE OUT
  132. 1410  HLIN 6,7 AT 16: VLIN 14,15 AT 7: HLIN 8,9 AT 12: HLIN 8,9 AT 13: RETURN 
  133. 1420  REM  WRONG SOUND
  134. 1430  IF S9 = 1  THEN  RETURN 
  135. 1440  FOR P = 1 TO L1:BP =  PEEK(49200): NEXT P: RETURN 
  136. 1450  REM  HAT UP
  137. 1460  COLOR= 0: HLIN 1,2 AT 9: COLOR= 13: HLIN 3,6 AT 9: COLOR= 0: HLIN 2,5 AT 8: HLIN 2,5 AT 7: COLOR= 9: HLIN 1,6 AT 6: COLOR= 5: HLIN 2,5 AT 5
  138. 1470  HLIN 2,5 AT 4: COLOR= 9: HLIN 2,5 AT 3: HLIN 2,5 AT 2
  139. 1480  POKE 768,10: POKE 769,4: GOSUB 2430: RETURN 
  140. 1490  REM  HAT DOWN
  141. 1500  COLOR= 0: FOR I = 1 TO 6: VLIN 2,6 AT I: NEXT : COLOR= 9: HLIN 2,5 AT 5: HLIN 2,5 AT 6: COLOR= 5: HLIN 2,5 AT 7: HLIN 2,5 AT 8: COLOR= 9: HLIN 1,6 AT 9
  142. 1510  POKE 768,10: POKE 769,4: GOSUB 2430: RETURN 
  143. 1520  REM  UP STICK
  144. 1530  COLOR= 0: PLOT 9,23: HLIN 9,15 AT 24: COLOR= 13: PLOT 16,24: COLOR= 8: VLIN 10,22 AT 8: PLOT 7,10: RETURN 
  145. 1540  REM  UP HIGHER
  146. 1550  COLOR= 0: PLOT 7,10: COLOR= 8: VLIN 7,9 AT 8: PLOT 7,7: RETURN 
  147. 1560  REM  ERASE HIGH
  148. 1570  COLOR= 0: PLOT 7,7: VLIN 7,9 AT 8: COLOR= 8: PLOT 7,10: RETURN 
  149. 1580  REM  DOWN ALL
  150. 1590  COLOR= 0: PLOT 7,10: PLOT 7,7: VLIN 7,22 AT 8: COLOR= 15: PLOT 9,23: COLOR= 8: HLIN 9,16 AT 24: RETURN 
  151. 1600  REM  MOUTH
  152. 1610  PLOT 6,16: RETURN 
  153. 1620  REM  PUT DOWN STICK
  154. 1630  COLOR= 0: HLIN 6,9 AT 23: HLIN 6,15 AT 24: PLOT 16,24: COLOR= 13: PLOT 16,24: COLOR= 9: VLIN 23,24 AT 5: COLOR= 1: VLIN 23,24 AT 2: COLOR= 15: HLIN 0,1 AT 23
  155. 1640  PLOT 1,24: COLOR= 8: VLIN 24,38 AT 0: RETURN 
  156. 1650  REM  BEND HAND
  157. 1660  COLOR= 0: HLIN 0,2 AT 23: HLIN 1,2 AT 24: COLOR= 1: HLIN 5,7 AT 23: HLIN 5,7 AT 24: COLOR= 15: PLOT 8,23: HLIN 8,9 AT 24: RETURN 
  158. 1670  REM  GET HAT
  159. 1680  COLOR= 0: HLIN 6,8 AT 23: HLIN 6,9 AT 24: COLOR= 9: VLIN 23,24 AT 5: VLIN 21,24 AT 3: VLIN 21,24 AT 4: COLOR= 1: VLIN 19,20 AT 5: VLIN 11,20 AT 6
  160. 1690  VLIN 11,20 AT 7: COLOR= 15: HLIN 6,7 AT 10: PLOT 7,9: RETURN 
  161. 1700  REM  HAT DOWN
  162. 1710  COLOR= 0: FOR I = 2 TO 5: VLIN 5,8 AT I: NEXT : HLIN 1,2 AT 9: PLOT 7,9: HLIN 6,7 AT 10: HLIN 6,7 AT 11: VLIN 14,20 AT 7: PLOT 6,16: VLIN 18,20 AT 6
  163. 1720  COLOR= 13: HLIN 3,6 AT 9: COLOR= 11: VLIN 12,15 AT 6: PLOT 6,17: VLIN 12,13 AT 7
  164. 1730  COLOR= 9: VLIN 19,20 AT 5: COLOR= 1: VLIN 21,24 AT 3: VLIN 21,24 AT 4: HLIN 5,7 AT 23: HLIN 5,7 AT 24: COLOR= 15: VLIN 23,24 AT 8: PLOT 9,24
  165. 1740  COLOR= 9: HLIN 9,14 AT 23: HLIN 10,13 AT 26: HLIN 10,13 AT 27: COLOR= 5: HLIN 10,13 AT 24: HLIN 10,13 AT 25: RETURN 
  166. 1750  REM  ERASE HAT
  167. 1760  COLOR= 0: FOR I = 9 TO 14: VLIN 23,27 AT I: NEXT : RETURN 
  168. 1770  REM  HAND OFF HAT
  169. 1780  COLOR= 0: PLOT 7,9: HLIN 6,7 AT 10: HLIN 6,7 AT 11: VLIN 14,20 AT 7: PLOT 6,16: VLIN 18,20 AT 6
  170. 1790  COLOR= 11: VLIN 12,15 AT 6: PLOT 6,17: VLIN 12,13 AT 7: COLOR= 9: VLIN 19,20 AT 5: COLOR= 1: VLIN 21,24 AT 3: VLIN 21,24 AT 4
  171. 1800  GOSUB 1660: RETURN 
  172. 1810  REM  PICK UP WAND
  173. 1820  GOSUB 1630:L1 = 250: GOSUB 1240: GOSUB 1660: COLOR= 0: VLIN 24,38 AT 0:E1 = 18:H1 = 0: GOSUB 1160: RETURN 
  174. 1830  REM  FOOR TAB
  175. 1840  COLOR= 0: HLIN 7,9 AT 37: COLOR= 11: PLOT 7,37: COLOR= 8: HLIN 7,9 AT 38: POKE 768,100: POKE 769,3: GOSUB 2430:L1 = 10: GOSUB 1240
  176. 1850  COLOR= 0: HLIN 7,9 AT 38: PLOT 7,37: COLOR= 8: HLIN 7,9 AT 36:L1 = 10: GOSUB 1240
  177. 1860  COLOR= 0: HLIN 7,9 AT 36: COLOR= 15: PLOT 7,36: COLOR= 8: HLIN 7,9 AT 37:L1 = 10: GOSUB 1240: RETURN 
  178. 1870  REM  LOOK DOWN
  179. 1880  COLOR= 11: HLIN 3,4 AT 10: COLOR= 15: PLOT 4,11: HLIN 3,4 AT 12: PLOT 3,13: COLOR= 0: PLOT 4,13: RETURN 
  180. 1890  REM  NORMAL
  181. 1900  COLOR= 11: HLIN 3,4 AT 12: HLIN 3,4 AT 13: COLOR= 15: HLIN 3,4 AT 10: COLOR= 0: PLOT 4,11: RETURN 
  182. 1910  REM  BOX
  183. 1920  INVERSE : FOR A = 21 TO 23: VTAB A: HTAB 1: PRINT  SPC( 12);: NEXT : NORMAL 
  184. 1930  RETURN 
  185. 1940  REM  CORRECT ANSWER
  186. 1950  INVERSE : FOR A = 1 TO 12: VTAB 21: HTAB A: PRINT A$;: VTAB 23: HTAB A: PRINT A$;: NEXT 
  187. 1960  VTAB 22: HTAB 1: PRINT A$: VTAB 22: HTAB 12: PRINT A$
  188. 1970  IF Z1 = 1  THEN  PRINT : FLASH : GOTO 1990
  189. 1980  NORMAL 
  190. 1990  VTAB 22: HTAB 2: PRINT B$: NORMAL : RETURN 
  191. 2000  REM  GOOD
  192. 2010  GOSUB 1920: GOSUB 1530
  193. 2020  FOR Q = 1 TO 4
  194. 2030 A$ = " ": GOSUB 1950
  195. 2040 B$ = " GOOD JOB "
  196. 2050 A$ = "*": GOSUB 1950
  197. 2060 B$ = " -------- ": REM  8 -'S
  198. 2070  COLOR= 15: GOSUB 1610: GOSUB 1370: GOSUB 1550: GOSUB 1460
  199. 2080  FOR R = 150 TO 20  STEP  -20: POKE 768,R: POKE 769,5: GOSUB 2430: NEXT 
  200. 2090 L1 = 20: GOSUB 1240: GOSUB 1390: GOSUB 1570: GOSUB 1500: GOSUB 1840: NEXT Q: NORMAL : GOSUB 1590: COLOR= 0: GOSUB 1610
  201. 2100  RETURN 
  202. 2110  REM  WRONG
  203. 2120  GOSUB 1920: VTAB 22: HTAB 3: PRINT " SORRY ":L1 = 100: GOSUB 1430: RETURN 
  204. 2130  REM  SQUARE
  205. 2140  HLIN X,X +1 AT Y: HLIN X,X +1 AT Y +1: RETURN 
  206. 2150  REM  CORRECT FLASH
  207. 2160 V = 0
  208. 2170  IF J2 < >2  THEN V = 13: GOTO 2240
  209. 2180  FOR Y = 13 TO 6  STEP  -1:X = 34: POKE 768,90 -X: POKE 769,5: GOSUB 2430: COLOR= 15
  210. 2190  IF AN = 0  THEN  GOSUB 920: GOTO 2340
  211. 2200 U1 = AN: GOSUB 1280:L1 = 50: GOSUB 1240: COLOR= 4
  212. 2210  IF AN = 0  THEN  GOSUB 920: GOTO 2230
  213. 2220 U1 = AN: GOSUB 1280
  214. 2230  NEXT 
  215. 2240 J = 0
  216. 2250  IF AN = 0  THEN Y = V: COLOR= 15: GOSUB 920: GOTO 2320
  217. 2260 X = 34:Y = V: FOR C = 1 TO 15: COLOR= C: POKE 768,C: POKE 769,3: GOSUB 2430
  218. 2270  IF AN = 0  THEN  GOSUB 920: GOTO 2290
  219. 2280 U1 = AN: GOSUB 1280
  220. 2290  NEXT 
  221. 2300 J = J +1
  222. 2310  IF J <AN  THEN  GOTO 2260
  223. 2320  RETURN 
  224. 2330  REM  HOP SQUARE
  225. 2340 X = 30:J = 0: IF AN = 0  THEN  RETURN 
  226. 2350 Y = 3
  227. 2360  GOSUB 1310: GOSUB 2140:L1 = 40: GOSUB 1240: COLOR= 0: GOSUB 2140: GOSUB 1310:Y = 0: GOSUB 2140: GOSUB 1240: COLOR= 0: GOSUB 2140
  228. 2370  GOSUB 1310:Y = 3: GOSUB 2140: POKE 768,90: POKE 769,5: GOSUB 2430
  229. 2380 J = J +1
  230. 2390  IF J <AN  THEN  GOTO 2350
  231. 2400  RETURN 
  232. 2410  REM  SOUND OFF/ON
  233. 2420  REM  ROUTINE
  234. 2430  IF S9 = 1  THEN  RETURN 
  235. 2440  CALL 770: RETURN 
  236. 2450  REM  SOUND ON/OFF    
  237. 2460  REM  MESSAGE
  238. 2470 S9 = S9 +1
  239. 2480  IF S9 >1  THEN S9 = 0
  240. 2490  VTAB 22: HTAB 17: PRINT "Sound ";: FLASH 
  241. 2500  IF S9 = 0  THEN  PRINT "ON"
  242. 2510  IF S9 = 1  THEN  PRINT "OFF"
  243. 2520  NORMAL : FOR K = 1 TO 2000: NEXT : RETURN 
  244. 2530  REM  MAIN PROGRAM
  245. 2540  REM  LOOP BEGINS
  246. 2550  REM 
  247. 2560  REM  VARIABLE INIT
  248. 2570 Y = 0:X = 0:S1 = 60:S2 = 30
  249. 2580 J1 = 16:J2 = 2:J3 = 3:J4 = 4:J5 = 24:J6 = 12
  250. 2590  GOSUB 1070: REM  DRAW BOARD
  251. 2600  REM  DRAW SCREEN
  252. 2610  IF J2 < >2  THEN Y = 13
  253. 2620  COLOR= 13: HLIN 0,11 AT 39: VLIN 10,15 AT 2: GOSUB 1920
  254. 2630  COLOR= 8: VLIN 30,38 AT 3: VLIN 30,38 AT 5: PLOT 4,36: PLOT 4,33: HLIN 7,9 AT 37: HLIN 9,16 AT 24
  255. 2640  COLOR= 5: HLIN 2,6 AT 28: HLIN 2,6 AT 29: HLIN 2,5 AT 7: HLIN 2,5 AT 8
  256. 2650  COLOR= 15: PLOT 7,36: HLIN 8,9 AT 23: PLOT 8,24: HLIN 3,4 AT 10: PLOT 3,11
  257. 2660  COLOR= 2: HLIN 3,8 AT 26: HLIN 3,8 AT 27: VLIN 28,35 AT 7: VLIN 28,35 AT 8
  258. 2670  COLOR= 9: HLIN 3,5 AT 25: VLIN 18,22 AT 5: HLIN 3,5 AT 18: HLIN 1,6 AT 9: HLIN 2,5 AT 5: HLIN 2,5 AT 6: COLOR= 1: VLIN 19,24 AT 3: VLIN 19,24 AT 4: HLIN 5,7 AT 23: HLIN 5,7 AT 24
  259. 2680  COLOR= 11: VLIN 10,11 AT 5: FOR I = 3 TO 7: VLIN 12,17 AT I: NEXT 
  260. 2690  COLOR= 0: VLIN 14,17 AT 7: PLOT 6,16: PLOT 4,11
  261. 2700  REM  RANDOM ROUTINE
  262. 2710 F1 =  INT(10 * RND(1) +1)
  263. 2720 F2 =  INT(2 * RND(1) +1)
  264. 2730  IF F2 = 2  THEN Z1 = F1: GOTO 2770
  265. 2740 Q9 = 1:Z1 = 10
  266. 2750  IF F1 = Q9  THEN  GOTO 2770
  267. 2760 Q9 = Q9 +1:Z1 = Z1 -1: GOTO 2750
  268. 2770 F3 =  INT(Z1 * RND(1) +1)
  269. 2780  GOTO 2870
  270. 2790  REM  NUMBERS MOVE LEFT
  271. 2800  FOR X = 34 TO X1  STEP  -1
  272. 2810  COLOR= 15: POKE 768,50 -X: POKE 769,5: GOSUB 2430: GOSUB 1260:L1 = S1: GOSUB 1240: COLOR= C1: GOSUB 1260: NEXT 
  273. 2820  IF J2 < >2  THEN  GOTO 2850
  274. 2830  FOR Y = 6 TO 12
  275. 2840  COLOR= 15: POKE 768,Y: POKE 769,5: GOSUB 2430: GOSUB 1260:L1 = S2: GOSUB 1240: COLOR= 4: GOSUB 1260: NEXT 
  276. 2850  COLOR= 15: GOSUB 1260: RETURN 
  277. 2860  REM  FIRST NUMBER
  278. 2870 C1 = 0
  279. 2880  IF J2 < >2  THEN C1 = 4
  280. 2890 X1 = 20:T1 = F1: GOSUB 2800
  281. 2900 E1 = 18: GOSUB 1110:L1 = 500: GOSUB 1240:H1 = 0: GOSUB 1160
  282. 2910  REM  SIGN
  283. 2920  IF F2 = 1  THEN Y = 1
  284. 2930  IF F2 = 2  THEN Y = 2
  285. 2940  FOR X = 34 TO 24  STEP  -1
  286. 2950  POKE 768,80: POKE 769,3: GOSUB 2430: COLOR= 15: GOSUB 1300:L1 = 20: GOSUB 1240: COLOR= 0: GOSUB 1300: NEXT X
  287. 2960  FOR Y = 6 TO J6
  288. 2970  POKE 768,30: POKE 769,3: GOSUB 2430: COLOR= 15: GOSUB 1300:L1 = 5: GOSUB 1240: COLOR= 4: GOSUB 1300: NEXT 
  289. 2980  COLOR= 15: GOSUB 1300:E1 = 24: GOSUB 1110:L1 = 500: GOSUB 1240:H1 = 1: GOSUB 1160
  290. 2990  REM  SECOND NUMBER
  291. 3000 Y = 0
  292. 3010  IF J2 < >2  THEN Y = 13
  293. 3020 X1 = 28:T1 = F3: GOSUB 2800
  294. 3030 E1 = 26: GOSUB 1110:L1 = 500: GOSUB 1240:H1 = 1: GOSUB 1160
  295. 3040  REM  EQUAL SIGN
  296. 3050 Y = 1
  297. 3060  FOR X = 34 TO 32  STEP  -1
  298. 3070  POKE 768,50 -X: POKE 769,5: GOSUB 2430: COLOR= 15: GOSUB 1050:L1 = 20: GOSUB 1240: COLOR= 0: GOSUB 1050: NEXT 
  299. 3080  FOR Y = 6 TO J6
  300. 3090  COLOR= 15: GOSUB 1050: POKE 768,Y: POKE 769,10: GOSUB 2430:L1 = 5: GOSUB 1240: COLOR= 4: GOSUB 1050: NEXT 
  301. 3100  COLOR= 15: GOSUB 1050:E1 = 31: GOSUB 1110:L1 = 500: GOSUB 1240:H1 = 2: GOSUB 1160
  302. 3110  REM  CALCULATE ANSWER
  303. 3120  IF F2 = 1  THEN AN = (F1 -1) +(F3 -1)
  304. 3130  IF F2 = 2  THEN AN = (F1 -1) -(F3 -1)
  305. 3140  REM  WAIT FOR RESPONSE
  306. 3150  POKE 49168,0: VTAB 6: HTAB 5: GET G$
  307. 3160  IF G$ = "S"  OR G$ =  CHR$(115)  THEN  GOSUB 2470: VTAB 22: HTAB 17: PRINT  SPC( 10): GOTO 3150
  308. 3170  IF G$ =  CHR$(27)  THEN  GOTO 3370
  309. 3180 Y = 13:X = 34
  310. 3190  IF G$ <"0"  OR G$ >"9"  THEN 3150
  311. 3200 G1 =  VAL(G$)
  312. 3210  IF G1 = 0  THEN  COLOR= 15: GOSUB 920: GOTO 3240
  313. 3220  COLOR= 15
  314. 3230 U1 = G1: GOSUB 1280
  315. 3240  REM  CHECK & BRANCH
  316. 3250  REM  ON RESPONSE
  317. 3260  IF G1 = AN  THEN Z1 = 0: GOSUB 2010: GOSUB 2160:B$ = " COUNTING ":Z1 = 1: GOSUB 1950: GOSUB 2340: GOSUB 560
  318. 3270  IF G1 < >AN  THEN  COLOR= 11: GOSUB 1410: GOSUB 2120:L1 = 200: GOSUB 1240: GOSUB 730
  319. 3280 L1 = 1000: GOSUB 1240
  320. 3290  REM  ERASE CHALK BOARD
  321. 3300  REM  & RESET VARIABLES
  322. 3310  GOSUB 1920
  323. 3320  COLOR= 0: FOR I = 0 TO 10: HLIN 20,39 AT I: NEXT I: GOSUB 1070
  324. 3330 X = 0:Y = 0:S1 = 60:S2 = 30
  325. 3340  IF J2 < >2  THEN Y = 13
  326. 3350  GOTO 2710: REM  LOOP BACK
  327. 3360  REM  QUIT ?
  328. 3370  VTAB 22: HTAB 15: PRINT "Want to quit (y/n)";: POKE 49168,0: GET Q$
  329. 3380  IF Q$ =  CHR$(78)  OR Q$ =  CHR$(110)  THEN  TEXT : HOME : RUN 
  330. 3390  IF Q$ =  CHR$(89)  OR Q$ =  CHR$(121)  THEN  TEXT : HOME : VTAB 12: HTAB 17: PRINT "BYE BYE": VTAB 23: END 
  331. 3400  GOTO 3370
  332. 3410  REM  ERROR ROUTINE
  333. 3420  SPEED= 255: NORMAL : PRINT 
  334. 3430 ER =  PEEK(222):EL =  PEEK(219) *256 + PEEK(218)
  335. 3440  PRINT  CHR$(4)"CLOSE"
  336. 3450  IF ER = 255  THEN  GOTO 3370
  337. 3460  HOME 
  338. 3470  IF ER = 16  THEN  VTAB 22: HTAB 5: PRINT "** SYNTAX ERROR IN LINE ";EL;" **": GOTO 3490
  339. 3480  VTAB 22: HTAB 2: PRINT "** UNANTICIPATED ERROR IN LINE ";EL;" **"
  340. 3490  VTAB 23: HTAB 5: PRINT "WANT TO <F>IX ERROR OR <C>ONTINUE ";: POKE 49168,0: GET KY$
  341. 3500  IF KY$ = "C"  OR KY$ =  CHR$(99)  THEN  TEXT : HOME : RUN 
  342. 3510  IF KY$ = "F"  OR KY$ =  CHR$(102)  THEN  TEXT : PRINT : PRINT "IF YOU RE-FIX A LINE BE SURE TO RE-SAVE AS CHALK.MATH": END 
  343. 3520  GOTO 3490
  344. 3530  REM  FILE NOT FOUND
  345. 3540  HOME : PRINT  CHR$(4)"CLOSE"
  346. 3550  VTAB 22: HTAB 1: PRINT "Binary sound file "; CHR$(34);"TICK"; CHR$(34);" not found..": PRINT "Or I/O error.."
  347. 3560  PRINT  CHR$(7) CHR$(7): END