Commodore P50 |
| . |
| Datasheet | Years of production: | Display type: | Numeric display | |
| New price: | Display color: | Red | ||
| Display technology: | Light-emitting diode | |||
| Size: | 6"×3"×1" | Display size: | 8+2 digits | |
| Weight: | 8 oz | |||
| Entry method: | Algebraic | |||
| Batteries: | 1×9V alkaline | Advanced functions: | Trig Exp | |
| External power: | Commodore 707 adapter (6V DC 300mA) | Memory functions: | +/× | |
| I/O: | ||||
| Programming model: | Keystroke entry | |||
| Precision: | 11 digits | Program functions: | Jump Cond | |
| Memories: | 1 numbers | Program display: | ||
| Program memory: | 24 program steps | Program editing: | ||
| Chipset: | Forensic result: | 9.027775748 | ||
The P50
was one of two programmable calculators made by Commodore in the 1970s. It
was significantly less capable than its bigger brother, the PR-100. Only 24 program
steps, 1 memory register, no parentheses, no program display or editing... very limited
indeed. This scientific calculator doesn't even have a raise-to-the-power-of (yx)
function! Then again, it at least has conditional and unconditional control transfer
instructions, making it a "real" programmable; contrast this with numerous
machines in my collection whose "programming" consists of the unconditional
execution of a stored keystroke sequence.
In surprising contrast with its sparse functionality and limited capacity, the calculator has not one, but three different conditional jump instructions. Also somewhat surprisingly, it has the ability to "merge" inverse trigonometric functions and also merge the two-digit address following a GOTO command into a single program step. Could there be some synthetic programming secrets hidden here? I don't know yet, but I've been able to determine the keycodes (not normally displayed by the calculator during program entry) using a simple method. I entered the program GOTO 00 R/S R/S ... (filling the rest of program memory with R/S instructions); then in run mode, I keyed GOTO 01, entered learn mode again, and hit a key. Next, run mode again, followed by GOTO 00 R/S. The program counter now went to the position corresponding to the selected key's code and executed an instruction there; this was either an R/S instruction or an invalid instruction (if the counter was greater than 23) in which case an error is displayed. Either way, going into learn mode again I was able to determine the next program position; subtracting one gave the key code.
Anyway, to make a long story short, here is the table of key codes:
|
Since it is possible to key in instructions such as GOTO 77, it makes me wonder: what about codes 17 and 49-79? Also, it appears that codes beginning with 80 represent the pressing of the arc key before another key (of course, this only has a meaningful effect for trigonometric functions.)
Only 24 program steps: ouch, that's tiny! Worse even than the Sinclair
Cambridge Programmable. Never mind anything as fancy as the Gamma
function: how am I going to fit even Stirling's formula in here? With a shoehorn,
that's the answer; only with a further compromise in accuracy. However, since Stirling's
formula isn't that accurate to begin with, this is not a great difference. Instead of
(2.5066283...) I used the value 2.5 in the
program below, thereby saving a few program steps. Sorry, no GOTO 00
at the end; you'll have to type it in by hand after each time the program is used. (Don't
you just hate programmable calculators in which a few additional steps from the already
limited program memory must be reserved for something as silly as R/S GOTO
00?)
00 STO 01 + 02 1 03 2 04 1/x 05 ÷ 06 RCL 07 ex 08 ÷ 09 RCL 1011 × 12 2 13 . 14 5 15 = 16 x-M 17 × 18 ln 19 = 20 ex 21 M× 22 RCL 23 R/S