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.
|Data Input Operation||Read-out||Remark|
|P1||3o7o0.||Start tester and you've got next to no time to type in the answer to 3×7. (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 8×7.|
|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|
|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 M7×M8||.F||not used|