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