home *** CD-ROM | disk | FTP | other *** search
/ Shareware Overload / ShartewareOverload.cdr / educ / prschool.zip / MATHDRIL.BAS < prev    next >
BASIC Source File  |  1982-09-01  |  2KB  |  47 lines

  1. 10 REM COPYRIGHT SoftSystems and Jim Love, Richmond, Va.
  2. 11 REM           All rights reserved
  3. 12 REM           For non-profit distribution only
  4. 40 DEF SEG=0
  5. 50 KEY OFF:FOR I=1 TO 10: KEY I,"":NEXT I
  6. 60 H417=PEEK(&H417):I=PEEK(&H417) OR &H20:POKE &H417,I:'SET NUM LOCK, H417 CONTAINS INITIAL VALUE
  7. 70 CLS:LOCATE 10,30:PRINT"ARITHMETIC DRILLS"
  8. 80 IF NUMERR+NUMCOR>0 THEN LOCATE 5,17:PRINT "You had" NUMCOR "correct out of a possible" NUMERR+NUMCOR:NUMERR=0:NUMCOR=0
  9. 90 LOCATE 15,20:PRINT"Enter ESC key to end this application."
  10. 100 LOCATE 20,18: PRINT"Would you like addition or subtraction(+.-)?"
  11. 110 POKE 106,0:'clear keyboard buffer
  12. 120 A$=INKEY$: IF A$ ="" THEN 120
  13. 130 IF CHR$(27)=A$ THEN POKE &H417,H417:CLS: END
  14. 140 IF A$ <> "+" THEN IF A$ <> "-" THEN 120
  15. 150 RANDOMIZE VAL(RIGHT$(TIME$,2))
  16. 160 CLS
  17. 170 IF NUMCOR+NUMERR>24 THEN 70
  18. 180 X% = 15 * RND: Y% = 10 * RND
  19. 190 IF A$ = "-" THEN IF X% - Y% < 0 THEN 180
  20. 200 IF A$ = "+" THEN IF X% + Y% > 20 THEN 180
  21. 210 TRY=0
  22. 220 LOCATE 7,26:PRINT"Enter ESC key to exit."
  23. 230 LOCATE 5,10:PRINT "Correct Answers: " NUMCOR, "Incorrect Answers: " NUMERR
  24. 240 LOCATE 10,36:PRINT X% A$ Y% "= ";
  25. 250 LTH=2:LOCATE 10,47:GOSUB 340:IF CHR$(27)=N$ THEN GOTO 70
  26. 260 IF NU$="" THEN 250
  27. 270 Z%=VAL(NU$): NU$=""
  28. 280 IF A$ = "-" THEN IF Z% = X% -  Y% THEN NUMCOR = NUMCOR + 1:GOTO 160
  29. 290 IF A$ = "+" THEN IF Z% = X% + Y% THEN NUMCOR = NUMCOR + 1:GOTO 160
  30. 300 NUMERR=NUMERR + 1:TRY=TRY+1
  31. 310 IF NUMERR+NUMCOR>25 THEN GOTO 70
  32. 320 IF TRY>2 THEN TRY=0:PRINT"Three consecutive errors have occurred.  Skipping to next question.":GOTO 180
  33. 330 PRINT:PRINT "Your answer " Z% " is incorrect.  Try again.";SPACE$(27):GOTO 230
  34. 340 REM get input field
  35. 350 COL=CSRLIN:ROW=POS(0)
  36. 360 FOR I=1 TO LTH:PRINT CHR$(95);:NEXT:LOCATE COL,ROW
  37. 370 POKE 106,0:'clear keyboard buffer
  38. 380 N$=INKEY$: IF N$ ="" THEN 380  
  39. 390 IF N$ = CHR$(13) OR N$ = CHR$(27) THEN 440 
  40. 400 IF N$ = CHR$(8) THEN IF LEN(NU$)>0 THEN GOSUB 450
  41. 410 IF LEN(NU$)=LTH THEN PRINT CHR$(7);:GOTO 380: REM IF INPUT FIELD IS FULL AND KEY ENTERED IS NOT RETURN, ESC OR BACKSPACE
  42. 420 IF CHR$(58) > N$ THEN IF CHR$(47) < N$ THEN 430 ELSE 380 ELSE 380
  43. 430 PRINT N$;:NU$=NU$ + N$:GOTO 380
  44. 440 RETURN
  45. 450 LOCATE COL,ROW:NULTH=LEN(NU$):FOR I=1 TO NULTH:PRINT CHR$(95);:NEXT
  46. 460 NU$=MID$(NU$,1,NULTH-1):LOCATE COL,ROW:PRINT NU$;:RETURN
  47.