The Museum of HP Calculators


System RPL

History

In the days of the earliest HP's, memory was very expensive and bulky and the challenge for firmware writers was to pack a basic set of scientific functions into very little memory. They used machine language for this and carefully refined and re-refined their algorithms until they fit.

By the time the HP-18C and HP-28C had appeared, read-only memory had become denser and cheaper and users expected increasing functionality from their calculators. By then, the main challenge had become getting all the algorithms written and debugged. HP needed a higher level language than machine language.

There were, of course, many ready-made languages available, but none of them were designed for developing calculators. They often required too many resources (memory/CPU power), weren't easily extensible, etc. HP combined some Lisp, RPN, and Forth, and came up with a language called RPL (Reverse Polish Lisp.) RPL is extensible, compact, interactive, fast and felt familiar to programmers of RPN calculators.

System and User RPL

In addition to programming the machine in RPL, HP made a subset of the language readily available to keystroke programmers of some models. The portion for users of the calculator was (and is) called User RPL, and the portion initially reserved for HP was System RPL. However HP left a window to SysRpl open via the SYSEVAL command. Essentially, the user could place an address on the stack and call it. Brave users who weren't deterred by memory corruption experimented with SYSEVAL and unlocked many of the secrets of the System RPL-based calculators.

Some models such as the HP-18C and the HP-38G were programmed by HP in System RPL but present very different interfaces to the user. There is, of course, no need for a calculator's internal programming language and user interface to have any resemblance,

Go back to the main exhibit hall