Introduction to newRPL
newRPL is a modern implementation of the RPL language started near the end of 2013 and is still under development. The motivation for this re-implementation is to preserve the language by making it accessible on modern platforms (an embedded device or a PC).
The goal of the project is to create a fully functional calculator RPL environment that runs natively (as opposed to an emulation or interpreted layer) on the target hardware. Furthermore, newRPL is also designed to be loosely compatible with the RPL language and programs that can be run on the Hewlett Packard 48/49/50g series calculators. The newRPL project (released under the BSD open source license) implements RPL in portable C, and while it was initially targeted for the HP50g calculator hardware, it now runs on a variety of hardware platforms:
- HP 50g calculator
- HP 48GII calculator
- HP 40gs calculator
- HP 39gs calculator
- HP Prime G1 (first generation)
- PC (Windows provided, other OS need to build from sources)
- Android (7.0 and above)
In HP calculator parlance there is a distinction between UserRPL and SystemRPL. The former is the language directly accessible to the user of an HP calculator, whereas the latter typically requires external tools and can potentially lead to system crashes. newRPL seeks to implement UserRPL only (SystemRPL was used as a lower level and faster language in the Saturn processor environment or emulation layer).
A typical scenario is to install newRPL on a 50g (which has the ability to replace or flash the operating system ROM). Note that this procedure completely replaces the stock HP50g ROM, so to return the calculator to its original state would require having the HP stock ROM on hand.
newRPL is different from RPL most noticeably in its speed (runs natively on the target hardware), use of 16 level greyscale, and two separate levels of soft menus that are customizable by the user.
If you are coming from the latest stock 50g ROM, it should be noted that newRPL is not designed to re-duplicate all the features of that ROM, but rather just the RPL part. So, for example, you won't find a CAS (Computer Algebra System) in newRPL, nor an equation writer. However, what you will find in newRPL is (ultimately) the 700 or so commands available in the 50g along with some additional commands not found in a 50g.
Here is a list of changes and enhancements from the stock 50g ROM:
- Difference between integers and reals based on the decimal dot was eliminated.
- Variable precision decimal math up to 2000 digits.
- More flexible custom menus.
- Faster access to variables.
- You can declare local variables anywhere in the code with
LSTO
.
- Any program can be sandboxed to keep your directories clean.
- Persistent comments stay in the compiled code to make it more readable.
- Unicode text support all over.
- 8-level Undo/Redo on stack operations.
- Many keyboard shortcuts that make using it very practical.
- Powerful editor.
- Full clipboard support can copy/cut/paste objects or text in the editor and the stack, and turn objects from the stack into text for the editor, or paste text into the stack.
- Paste the contents of any variable directly into the editor as text by using the soft menu.
- Autocompletion of command names.
- SD card support much faster than 50g.
- It will accept SDHC cards as well as standard SD cards.