Commodore PR-100

In the 1970s, Commodore produced many high-end calculators. Two of them were programmable models: of these, the PR-100 offered more program storage space. This calculator, in addition to the rich array of functions one has gotten used to with Commodore's high-end models, offered storage for 72 program steps and 10 memory registers, and also had more built-in functions than the P50.

Unfortunately, program steps were not merged; each individual keystroke counted as a separate step in program memory. This included the F key (used to invoke secondary functions) and the (inv) key (used to invert trigonometric functions.) Accessing memory registers also consumed two steps, while memory arithmetic operations used three (e.g., F M+ 3.) Conditional branching was very unsophisticated, with a single branching instruction (SKIP) that skipped the next keystroke (or three keystrokes if the next keystroke was a GOTO) if the number on the display showed a negative sign. (-0 counted as a negative number, leading to interesting programming tricks.)

Despite its shortcomings, this was a very versatile calculator. Testifying to its success are the many OEM versions, including the APF Mark 90, or a Hungarian model produced by Híradástechnika (PTK-1072.) The price of this latter model allowed many Hungarian students (me among them) to own one.

The PR-100 was produced using two different housing styles. The one shown here appears to have been used exclusively by Commodore, while the other was also used for OEM versions.

Despite the calculator's limited program memory and completely unmerged programming model it is possible to implement the Gamma function if, in addition to the program that needs to be keyed in, certain constants are stored in memory. Out of curiousity, compare this with the implementation for the TI-57, which has fewer program steps but a merged programming model and more powerful functions.. Now which one is the better calculator?

When entering the program, you must also set registers 4-9 to predefined values. These registers remain unaltered by the program. To enter values with ten-digit precision, use key sequences like this one:

82784822 ÷ 1EE8+68 = M 5 .9596084 + 755 = M 6

To calculate the Gamma function of a positive real argument, enter the argument, make sure that the program counter is at 00 (type GOTO00) and hit the R/S button. Note that memory registers 2-3 are also used by the program.