Tables Tester Program

Description

This program issues questions to be answered on the multiplications tables between 3 and 12. The program continues asking questions until the answer is got wrong or isn't answered with sufficient speed. It is set to give you only 1 pause to answer the question so you've got to be quick. When you're good you should be able to carry on until you get bored because the FX-502P's random number generator is a bit predictable.

If you try the program on the faster FX-602P it will be near impossible because of the shortness of the PAUSE. It works OK with 2 consecutive PAUSEs instead of the 1 shown in the program below. (See alternative version for FX-601P/FX-602P). I have noticed slight problems with the FX-502P if you do this because the PAUSE effectively validates a number. This prevents each digit of a 2 digit number being entered on separate PAUSEs because the 2nd overwrites the 1st.

Example

Data Input Operation Read-out Remark
Mode 1 0. Reset
P1 3o7o0. Start tester and you've got next to no time to type in the answer to 37. (Obviously this is randomly generated so your first number will, in general, be different).
21 8o7o0. You put in the correct answer to the previous question and get the next question, which is 87.
48 56 You put in the wrong answer 48 and the program returns the correct answer and halts.
MR0 1. Displays the number you got right
MR1 2. Displays the total number of questions asked.
EXE 10o8o0. The game is on again but unlike pressing P1 the counters aren't reset.

Instead of typing in the below, if you've got the cassette adaptor try the *.wav file.

Program for Tables Tester
Program Remark
MODE, 2, Go to program mode
P1 Abitrary choice of program number
0, Min1, Min0 Zero counters of number correctly answered questions and number of asked questioned
LBL 1, GSB-P6,Min7,GSB-P6,Min8, , MR7, =, MinF, MR8, +, MR7, , 6, 0, =, INV o'", INV PAUSE, ISZ, x=F, GOTO 2, MRF, HLT, GOTO 1, Call P6 twice to generate the 2 numbers. Perform the multiplication and store in MF. Generate display value and display. Pause for answer. Increment M0 as count of number of questions asked. Test any number entered during pause against answer. If the answer is wrong display the correct answer and wait for EXE to continue.
LBL 2, 1, M+1, GOTO 1, Increment number of correctly answered questions.
Total number of steps = 31
P6 Program number as called from P1
INV RAN#, , 1, 0, +, 3, =, INV INT,

Randomly generates a random number between 3 and 12.

The FX-502P manual says that one should use INV RAN# twice, when used in a program, to improve the random generator's performance, but in my experience this just consumes an extra line without removing the predictability of the questions.

Total number of steps = 8
Contents in memories
0 Counter of total number of questions asked .0 not used
1 Counter of number of questions got right .1 not used
2 not used .2 not used
3 not used .3 not used
4 not used .4 not used
5 not used .5 not used
6 not used .6 not used
7 1st random number .7 not used
8 2nd random number .8 not used
9 not used .9 not used
F Value M7M8 .F not used