home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / genie-commodore-file-library / C64Educational / PRACTICE-TABLES (.txt) < prev    next >
Encoding:
Commodore BASIC  |  2019-04-13  |  6.9 KB  |  230 lines

  1. 0 POKE781,VT:POKE782,HT:POKE783,PEEK(783)AND254:SYS65520:VT=0:HT=0:IFQTHENRETURN
  2. 2 :
  3. 4 REM  ********************************
  4. 6 REM  *                              *
  5. 8 REM  *           TABLES             *
  6. 10 REM *                              *
  7. 12 REM *  A PROGRAM TO HELP STUDENTS  *
  8. 14 REM *    MASTER MULTIPLICATION     *
  9. 16 REM *                              *
  10. 18 REM *  RELEASED TO PUBLIC DOMAIN   *
  11. 20 REM *                              *
  12. 22 REM *  R. CROSWELL           1986  *
  13. 24 REM *                              *
  14. 26 REM ********************************
  15. 28 :
  16. 30 Q=1:SYS58692:S=53280:POKES,11:POKES+1,11:POKE646,15:PRINTCHR$(142)
  17. 32 IFPEEK(32768)=16THENV=1:REM COMVOICE
  18. 34 IFPEEK(32768)=54THENV=1:REM PROVOICE
  19. 36 SD=54272:FORI=SDTOSD+23:POKEI,0:NEXT:POKESD+24,15
  20. 38 POKE160,0:FORI=139TO143:A=INT(RND(0)*254+1):POKEI,A:NEXT:A=RND(-TI)
  21. 40 M$=" THIS PROGRAM IS COMPATIBLE WITH              COMVOICE AND PROVOICE"
  22. 42 M1$="NOW LETS TRY IT AGAIN!"
  23. 44 M$(1)="YOU GOT THIS ONE"
  24. 46 M$(2)="I NEW YOU COULD DO IT"
  25. 48 M$(3)="I THINK YOU WERE JUST LUCKY"
  26. 50 M$(4)="YOUR ANSWER IS CORRECT"
  27. 52 M$(5)="KEEP UP THE GOOD WORK"
  28. 54 M$(6)="THAT WILL NEVER DO"
  29. 56 M$(7)="YOUR ANSWER DOES NOT COMPUTE"
  30. 58 M$(8)="SORRY, YOU GOOFED THIS TIME"
  31. 60 M$(9)="NO WAY. TRY AGAIN"
  32. 62 M$(10)="NOT THIS TIME"
  33. 64 X$="                                       "
  34. 66 IFV=0THENSYS58692:VTAB=12:HTAB=3:GOSUB:PRINTM$:FORI=1TO4000:NEXT
  35. 68 :
  36. 70 REM ---------------
  37. 72 REM -TABLES SELECT-
  38. 74 REM ---------------
  39. 76 :
  40. 78 PRINT"[147]           [164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164]"
  41. 80 PRINTTAB(11)" PRACTICE TABLES "
  42. 82 IFQ<2THENIFVTHEN:(null)"HELLO. I AM YOUR MATH HELPER. LETS MULTIPLY."
  43. 84 PRINT" WHAT TABLE DO YOU WANT TO PRACTICE?"
  44. 86 IFVTHEN:(null)"WHAT TABLE DO YOU WANT TO PRACTICE":FORI=1TO500:NEXT
  45. 88 PRINTTAB(29)"[213][192][192][192][192][201]"
  46. 90 PRINT" TYPE THE NUMBER OR TYPE ALL [194]    [194]"
  47. 92 PRINTTAB(29)"[202][192][192][192][192][203]":IFQ>1THEN98
  48. 94 IFVTHEN:(null)"TYPE THE TABLE NUMBER THEN PRESS RETURN. IF YOU WOULD LIKE"
  49. 96 IFVTHEN:(null)"TO PRACTICE ALL OF THE TABLES, THEN TYPE A L L.":Q=2
  50. 98 PRINT"   TYPE (Q) WHEN YOU WANT TO QUIT."
  51. 100 IFQ=1THENIFVTHEN:(null)"TYPE Q WHEN YOU ARE READY TO QUIT"
  52. 102 VTAB=14:HTAB=30:GOSUB:GOSUB300
  53. 104 IFT$="ALL"THEN P=64:P$=T$:GOTO122
  54. 106 IFT$="Q"THEN282
  55. 108 P=VAL(T$):IFP<1ORP>19THEN GOSUB350:GOTO78Q  WHEN YOU WANT TO QUIT
  56. 110 P$=RIGHT$("   "+STR$(P),3)
  57. 112 :
  58. 114 REM --------------
  59. 116 REM -TABLES DRILL-
  60. 118 REM --------------
  61. 120 :
  62. 122 PRINT"[147][213][192][192][192][192][201]"SPC(28)"[213][192][192][192][192][201]";
  63. 124 PRINT "[194]   0[194]      "P$" TABLE DRILL"SPC(7)"[194]   0[194]";
  64. 126 PRINT "[202][192][192][192][192][203]"SPC(28)"[202][192][192][192][192][203]"
  65. 128 PRINT "WRONG "SPC(29)"RIGHT"
  66. 130 VTAB=11:HTAB=25:GOSUB:PRINT"[213][192][192][192][192][201]"
  67. 132 PRINTTAB(25)"[194]    [194]"
  68. 134 VTAB=13:HTAB=25:GOSUB:PRINT"[202][192][192][192][192][203]"
  69. 136 VTAB=14:HTAB=25:GOSUB:PRINT"ANSWER"
  70. 138 VTAB=22:GOSUB:PRINT"----------------------------------------";
  71. 140 PRINT" (_)BACK UP  -  (H) HELP  -  (Q) QUIT"
  72. 142 A=P:B=INT(RND(1)*13)
  73. 144 IFP=64THENA=INT(RND(1)*13)
  74. 146 J=INT(RND(1)*2)
  75. 148 PR=PR+1:IFJ=1THENJ=A:A=B:B=J
  76. 150 VTAB=12:HTAB=10:GOSUB:PRINTA" X "B" ="
  77. 152 VTAB=18:GOSUB:PRINTX$:VTAB=12:HTAB=26:GOSUB
  78. 154 A$=STR$(A):B$=STR$(B)
  79. 156 IFVTHEN:FOR A$:FOR"TIMES":FOR B$:FOR"EQUELS"
  80. 158 TJ=TI:GOSUB300:IFT$="Q"THENGOSUB400:GOTO196
  81. 160 IFT$="H"THENVTAB=12:HTAB=26:GOSUB:PRINTA*B:W=1:GOSUB446:GOTO176
  82. 162 FORI=1TOLEN(T$):IFMID$(T$,I,1)="A"ORMID$(T$,I,1)="L"THENT$="0"
  83. 164 PRINT:IFVTHEN:(null) T$
  84. 166 IFVAL(T$)=A*BTHENC$=M$((RND(1)*5+1)):R=1:TC=TC+(TI-TJ):GOSUB386
  85. 168 IFVAL(T$)<>A*BTHENC$=M$((RND(1)*5+6)):W=1:GOSUB372:REM ERROR
  86. 170 VTAB=18:HTAB=20-(LEN(C$)/2):GOSUB:PRINTC$:IFVTHEN:(null) C$
  87. 172 FORI=1TO500:NEXT:IFVTHEN176
  88. 174 FORI=1TO2000:NEXT
  89. 176 IFW=1THEN NW=NW+W:VTAB=12:HTAB=26:GOSUB:PRINT"    "
  90. 178 IFR=1THENNR=NR+R
  91. 180 IFW=1THENW=0:S$=RIGHT$("    "+STR$(NW),4):VT=2:HT=1:GOSUB:PRINTS$:GOTO152
  92. 182 IFR=1THENR=0:S$=RIGHT$("    "+STR$(NR),4):VT=2:HT=35:GOSUB:PRINTS$
  93. 184 VTAB=11:GOSUB:FORI=1TO9:PRINTX$:NEXT:GOTO130
  94. 186 :
  95. 188 REM --------------
  96. 190 REM -REPORT SCORE-
  97. 192 REM --------------
  98. 194 :
  99. 196 TF=INT(TC/60):TU$="SECONDS"
  100. 198 IFTF>60THENTF=INT(((TF/60)+.005)*100)/100:TU$="MINUTES"
  101. 200 TW=INT((((TC/60)/PR)+.05)*10)/10:TW$=STR$(TW)
  102. 202 SC=INT(((NR/(NR+NW))*100)+.5)
  103. 204 SYS58692:VTAB=2:HTAB=32:GOSUB:PRINT"[213][192][192][192][192][201]"
  104. 206 PRINT"  YOUR SCORE IS............. "SPC(3)"[194]    [194]":PRINTTAB(32)"[202][192][192][192][192][203]"
  105. 208 VTAB=3:HTAB=33:GOSUB:PRINTSC:V$=STR$(SC)+" PERCENT"
  106. 210 IFVTHEN:(null)"YOUR SCORE IS":(null) V$
  107. 212 VTAB=6:HTAB=32:GOSUB:PRINT"[213][192][192][192][192][201]"
  108. 214 PRINT"  PROBLEMS DONE............. "SPC(3)"[194]    [194]":PRINTTAB(32)"[202][192][192][192][192][203]"
  109. 216 PR$=STR$(PR)+" PROBLEMS"
  110. 218 VTAB=7:HTAB=33:GOSUB:PRINTPR:IFVTHEN:SPEAK"YOU COMPLETED":SPEAK PR$
  111. 220 VTAB=10:HTAB=32:GOSUB:PRINT"[213][192][192][192][192][201]"
  112. 222 PRINT"  TIME REQUIRED............. "SPC(3)"[194]    [194]":PRINTTAB(32)"[202][192][192][192][192][203]"
  113. 224 VTAB=11:HTAB=15:GOSUB:PRINT" ("TU$")..."
  114. 226 TF$=STR$(TF)+" "+TU$
  115. 228 VTAB=11:HTAB=33:GOSUB:PRINTTF:IFVTHEN:SPEAK"THIS TOOK YOU":SPEAK TF$
  116. 230 VTAB=14:HTAB=32:GOSUB:PRINT"[213][192][192][192][192][201]"
  117. 232 PRINT"  TIME PER PROB.(SECONDS)...    [194]    [194]":PRINTTAB(32)"[202][192][192][192][192][203]"
  118. 234 VTAB=15:HTAB=33:GOSUB:PRINTRIGHT$(TW$,LEN(TW$)-1)
  119. 236 IFVTHEN:SPEAK"YOUR AVERAGE TIME PER WORD IS":SPEAK TW$:SPEAK "SECONDS"
  120. 238 G$="F":V$="YOUR GRADE IS NOT PASSING"
  121. 240 IFTW>10THENSC=SC*.7:GOTO248
  122. 242 IFTW>8THENSC=SC*.8:GOTO248
  123. 244 IFTW>5THENSC=SC*.9:GOTO248
  124. 246 IFTW>3THENSC=SC*.95:GOTO248
  125. 248 IFSC>59THENG$="D":V$="YOUR GRADE IS D. YOU MUST WORK HARDER"
  126. 250 IFSC>69THENG$="C":V$="YOUR GRADE IS C. YOU CAN DO BETTER"
  127. 252 IFSC>79THENG$="B":V$="YOUR GRADE IS B. THAT IS GOOD"
  128. 254 IFSC>89THENG$="A":V$="YOUR GRADE IS A. THAT IS VERY GOOD"
  129. 256 VTAB=18:HTAB=32:GOSUB:PRINT"[213][192][192][192][192][201]"
  130. 258 PRINT"  YOUR GRADE IS............. "SPC(3)"[194]    [194]":PRINTTAB(32)"[202][192][192][192][192][203]"
  131. 260 VTAB=19:HTAB=34:GOSUB:PRINTG$:NW=0:NR=0:PR=0:TF=0:TC=0:TJ=0
  132. 262 IFVTHEN:(null)V$
  133. 264 VTAB=23:HTAB=10:GOSUB:PRINT"PRESS RETURN TO GO ON"
  134. 266 GETZ$:IFZ$<>""THEN266
  135. 268 GETZ$:IFZ$<>CHR$(13)THEN268
  136. 270 GOTO78
  137. 272 :
  138. 274 REM -----------------
  139. 276 REM -QUITING PROGRAM-
  140. 278 REM -----------------
  141. 280 :
  142. 282 SYS58692:VTAB=12:HTAB=12:GOSUB:PRINT"HAVE A NICE DAY"
  143. 284 IFVTHEN:(null)"THIS PROGRAM WILL NOW END. HAVE A NICE DAY"
  144. 286 IFV=0THENFORI=1TO5000:NEXT
  145. 288 PRINT"[147][154]TYPE RUN TO RESTART PROGRAM":POKES,14:POKES+1,6:END
  146. 290 :
  147. 292 REM ----------------------
  148. 294 REM --DATA ENTRY VIA GET--
  149. 296 REM ----------------------
  150. 298 :
  151. 300 T$=""
  152. 302 PRINT CHR$(166);:PRINT"[157]";:REM PRINT CURSOR CHARACTER
  153. 304 GETY$:IFY$=""THEN304
  154. 306 IF Y$="H"ORY$="Q"THEN318
  155. 308 IFY$="_"THEN328:REM BACKSPACE
  156. 310 IFY$=CHR$(13)THEN320
  157. 312 IFASC(Y$)<48ORASC(Y$)>76THEN304
  158. 314 IFASC(Y$)>57ANDASC(Y$)<65THEN304
  159. 316 IFASC(Y$)>65ANDASC(Y$)<76THEN304
  160. 318 T$=T$+Y$:PRINTY$;:Y$="":GOTO302
  161. 320 PRINT" ":RETURN
  162. 322 :
  163. 324 REM BACKSPACE ROUTINE
  164. 326 :
  165. 328 IFLEN(T$)<1THEN304
  166. 330 PRINT"[157]  [157][157]";
  167. 332 PRINTCHR$(166);:PRINT"[157]";
  168. 334 L=LEN(T$):IFL<1THENT$="":GOTO338
  169. 336 T$=LEFT$(T$,L-1)
  170. 338 GOTO304
  171. 340 :
  172. 342 REM ---------------
  173. 344 REM -ERROR MESSAGE-
  174. 346 REM ---------------
  175. 348 :
  176. 350 GOSUB372
  177. 352 SYS58692:VTAB=12:GOSUB:PRINT"[164][164][164][164][164][164][164]"
  178. 354 PRINT" ERROR [146]: YOU ENTERED THE WRONG KEYS!"
  179. 356 IFVTHEN:(null)"SORRY. YOU N TERD THE WRONG KEYS. PLEASE TRY AGAIN"
  180. 358 IFV=0THENFORI=1TO4000:NEXT
  181. 360 RETURN
  182. 362 :
  183. 364 REM -------------------------
  184. 366 REM --SOUND FOR ERROR ENTRY--
  185. 368 REM -------------------------
  186. 370 :
  187. 372 POKESD+5,31:POKESD+6,208:POKESD,240:POKESD+1,4:POKESD+4,33
  188. 374 GOSUB430:POKESD+4,0:POKESD,0:POKESD+1,0:RETURN
  189. 376 :
  190. 378 REM -------------------------
  191. 380 REM --SOUND FOR VALID ENTRY--
  192. 382 REM -------------------------
  193. 384 :
  194. 386 POKESD+5,8:POKESD+6,240:POKESD,0:POKESD+1,90:POKESD+4,17
  195. 388 GOSUB414:POKESD+4,0:POKESD,0:POKESD+1,0:RETURN
  196. 390 :
  197. 392 REM -------------------------
  198. 394 REM --SPECIAL REPEATE SOUND--
  199. 396 REM -------------------------
  200. 398 :
  201. 400 FORI=1TO5:POKESD+5,8:POKESD+6,230:POKESD,0:POKESD+1,128:POKESD+4,17
  202. 402 GOSUB414:POKESD+4,0:POKESD,0:POKESD+1,0:NEXT:RETURN
  203. 404 :
  204. 406 REM ---------------------
  205. 408 REM --1/15 SECOND DELAY--
  206. 410 REM ---------------------
  207. 412 :
  208. 414 TX=TI
  209. 416 IFTI<TX+4THEN416
  210. 418 RETURN
  211. 420 :
  212. 422 REM --------------------
  213. 424 REM --1/2 SECOND DELAY--
  214. 426 REM --------------------
  215. 428 :
  216. 430 TX=TI
  217. 432 IFTI<TX+30THEN432
  218. 434 RETURN
  219. 436 :
  220. 438 REM --------------
  221. 440 REM -HELP MESSAGE-
  222. 442 REM --------------
  223. 444 :
  224. 446 V$=STR$(A*B):IFVTHEN:(null) A$:(null)"TIMES":(null) B$:(null)"EQUELS":(null) V$
  225. 448 FORI=1TO2000:NEXT
  226. 450 IFVTHEN:(null) "NOW LETS TRY IT AGAIN"
  227. 452 IFV=0THENVTAB=18:HTAB=9:GOSUB:PRINTM1$
  228. 454 IFV=0THENFORI=1TO3000:NEXT
  229. 456 RETURN
  230.