Casio FX-603P
The FX-603P was a programmable calculator, manufactured by CASIO from 1990. It was the successor model to the Casio FX-602P. Since it was only released in a limited number of countries in small quantities, it is now an excessively rare item which commands high prices when sold.
Display
The FX-603P featured a two line dot matrix display with 16 characters each as main display. An additional 4 digits 7-segment display used to display the program step when entering or debugging programs and 20 status indicators.Programming
The programming model employed was key stroke programming by which each key pressed was recorded and later played back. On record multiple key presses were merged into a single programming step. There were only a very few operations which needed two bytes.The FX-603P could store 6,144 steps. Data could be stored in 110 memory register. The FX-603P series supported 20 labels for programs and subroutines called P0.. P19 - twice the amount of the predecessor models. Each program or subroutine could have up to 10 local labels called LBL0.. LBL9 for jumps and branches.
The FX-603P supported indirect addressing both for memory access and jumps and therefore programming model could be considered Turing complete.
The FX-603P was backward-compatible with the FX-602P could load FX-602P programs from Compact Cassette.
Programming example
Here is a sample program that computes the factorial of an integer number from 2 to 69. For 5!, you'll type5
P0
and get the result, 120. With the additional alpha output the program is 14 byte long.Key-code | Comment |
Change to mode 2 to enable editing of program areas P0 to P19 | |
From the program list, press P0 button to start editing the program area P0 | |
output "n!=" in first row of display. Result will be shown in 2nd line | |
waits for user input, user types in number and presses EXE button to continue program | |
stores the value typed in by the user in register M00 | |
put 1 in current immediate register so there is a value to multiple with | |
label for the loop | |
multiply | |
by n | |
decrements M00 and back to LBL0 until M00=0 | |
end of loop, the machine has calculated |