HP 49 Series Calculator Software
[Homepage] [Musikwissenschaft] [Musikinformatik]
The Hewlett-Packard 49
series calculators, which at the time of this writing comprises the HP
49G, 49G+ and 50G, are handheld computing devices with astonishing
capabilities. Besides the usual scientific calculator functionality, they
provide a hierarchical file system and a file manager, interactive 2D and 3D
plotting on the 131x64 pixel display (131x80 on the 49G+/50G), and an
abundance of functions for numeric and symbolic problem solving, including a
(calculator algebra system). On the command line they support both HP's RPN (reverse polish notation) and
an algebraic operating mode, and the calculators can be programmed in RPL (Reverse Polish Lisp), an
RPN-based functional programming language. A serial interface (as well as
USB and IrDA on the 49G+/50G) lets you communicate with other calculators,
PCs and lab equipment, and the SD card reader of the 49G+/50G provides
external storage and allows you to exchange files with PCs in a convenient
There's an onboard development library for "system" RPL and Saturn assembler
language programming which makes these calculators extendable, and a PC-based development environment is also
available. The HP 49G+ and 50G can also be programmed using HPGCC, a version of the GNU C compiler which
directly targets the ARM processor on which these latest models are
based. In contrast, the original 49G runs on real (and much slower) Saturn hardware which is being
emulated in the 49G+ and 50G models.
The HP 49 series calculators are descendants of the popular HP 48 series
introduced in the 1990s. The 49 series devices have more on-board memory
(2.5 MB) and an improved, upgradable OS, and are a lot faster than the HP
48 (especially the 49G+ and 50G). This entire line of calculators has a
lot of dedicated followers with their own newsgroup, comp.sys.hp48, and a wealth of add-on
software is available from the www.hpcalc.org site. Also make sure that you take a look at the new HP 50G wiki which provides information for newbies and a guide to the available documentation and other relevant Internet resources.
Below you find HP 49 series calculator software which I have written or contributed to, and which is currently maintained by me.
GraphWriter - A Graph Editor for HP 49G/49G+/50G
While the 49 series calculators are not nearly as fast as a modern PC,
the tight integration of graphical, numerical, symbolic and programming
capabilities makes this device an ideal "scratchpad" for trying out
algorithmic solutions and solving smaller scientific problems. Being a big
fan of graph theory since my student days, I had the idea to develop
a program for the HP 49G which, to my knowledge, does not yet exist on
any calculator: a graph editor.
So here it is. It is called "GraphWriter" (in analogy to the
"EquationWriter" and "MatrixWriter" applications built into the calculator),
and it is a full-featured graph editor for the HP 49 series calculators. The whole
library is written 100% in System RPL, and thus the editor is reasonably
fast. Graphs are implemented as (asymmetric) adjacency lists with support
for multigraphs, 2D node embeddings and arbitrary node and edge labels. The
editor allows you to create and edit these structures in a graphical
environment, using the calculators' graphics screen for display. A
collection of functions for creating, inspecting and manipulating
graphs from the command line or through RPL programs is also provided.
As of May 5 2015, the latest and greatest release is GraphWriter 3.1
(see the README file for a list of changes). The present version should work with all calculators of the HP 49 series (49G, 49G+, 50G). The package includes the library (Lib 557, ~35 KB), System RPL sources and documentation. To install, transfer the GRW.hp library file to your calc, move the resulting variable to any port (e.g., using the filer), press ON+C to reboot and you should be set. A sample implementation of Dijkstra's shortest path algorithm (in User RPL) is also included, along with a sample graph ready to be used with that program. These are plain text files which you can transfer to your calc in ASCII mode as usual
IMPORTANT NOTE: This is BETA SOFTWARE, so MAKE SURE TO BACKUP YOUR
CALCULATOR'S MEMORY BEFORE TRYING OUT THIS PROGRAM.
This software is provided AS IS, and is distributed under the GNU Public
COPYING for details. Please make sure that you read the installation
instructions in the README file. For your browsing
pleasure, the manual in PDF format is also available online: GRW.pdf. (You need some PDF viewer to read this document,
e.g., Acrobat Reader from Adobe which is freely available here.)
GoferLists - Advanced List Operations
This is a library of useful list operations mostly borrowed from the Haskell programming language. The library was named after Mark P. Jones' popular Haskell interpreter Gofer (now named Hugs). GoferLists was originally written by Jarno Peschier and ported to SysRPL by Luis Morales Boisset. I have fixed a couple of minor bugs in the SysRPL version and added a bunch of additional functions, see the README file for details.
RPL's built-in list processing facilities such as DOLIST and STREAM are quite powerful, but can be awkward to work with because they do not treat the corner cases such as empty input lists in a consistent fashion. GoferLists attempts to fix that by providing user-friendly frontends to the built-in operations, in the form of an elaborate collection of generic list processing functions which are fairly standard in modern functional languages and have proven their utility in countless applications.
Download: GoferLists-1.0.zip. For the 49G series calculators (49G/49G+/50G) only. The package includes the library (Lib 1652, ~5KB) and documentation. Installation instructions and a description of the functions in the library can be found in the included README file.
Albert Graef (firstname.lastname@example.org)
Department of Music Informatics
Johannes Gutenberg-University Mainz