Free42 -- An HP-42S Calculator Simulator
Free42 is a complete re-implementation of the
HP-42S calculator and the
Free42 was written from scratch, without using any HP code. You do not need
any ROM images in order to use it, yet it is fully HP-42S
With each release, I build ready-to-run executables for Pocket PC,
Microsoft Windows, PalmOS, and Linux (x86). There are also versions for
MacOS X Dashboard and Sharp Zaurus / Nokia 770, contributed by fellow
HP-42S enthusiasts, available via this site; see below for details.
Even if your favorite operating system is not in this list, you may still
be able to get Free42 to work by building it from source (see below).
To check if you're up to date with the latest release, look
If you like Free42 and use it regularly, or if you simply want to sponsor
the Free42 project, a donation would be appreciated.
The suggested donation amount is US $30, or 25 euros -- but you are free
to donate a different amount if you wish.
Please support the continued development of the Free42 project.
Donate US $30:
Donate 25 euros:
Donate a different amount:
Free42 for Pocket PC
Requires Pocket PC 2002 (ARM) or later.
Free42 for Windows
Requires Microsoft Windows 98 or later.
Free42 for PalmOS
Requires PalmOS 3.0 or later.
This package contains 68K and ARM versions of the PalmOS application,
and a HotSync conduit that allows you to transfer files between your PC
and your hand-held.
The 68K version of Free42 Binary requires the MathLib
floating-point library; in case you don't already have it, you
can get it from
Huebner's MathLib page.
Free42 Decimal, and the ARM version of Free42 Binary, do not
Free42 for Linux (x86)
Runs on Fedora Core 5 with glibc version 2.4, libstdc++
version 4.1.1, GTK+ version 2.8.20, and Open Motif version
2.3.0. It should work on any Linux (x86) with those or similar
This package contains GTK+ and Motif versions of Free42.
The only difference between the two is the look and feel of the
menu bar and dialog boxes; other than that, they are identical.
Free42 for MacOS X Dashboard
This is Free42 version 1.4.36, built as a MacOS X
Dashboard widget, for PowerPC and Intel-based systems.
Decimal and Binary versions included.
Contributed by D. Jeff Dionne.
Free42 for Zaurus X/Qt
Runs on the Sharp Zaurus with X/Qt installed (and possibly also
with the native GTK GUI (GPE), although this has not been
tested), and on the Nokia 770 Internet Tablet.
Maintained by Egan Ford; more information and downloads are
available on his web site at http://sense.net/zc/free42/.
Free42 Source Code
Requires Linux, or any reasonably Unix-like environment, with
X11, GTK+ or Motif/Lesstif, and the usual development tools and
libraries. For the Windows version, you need either Microsoft
Visual C++ 6.0 or MinGW; for the Pocket PC version, Microsoft
eMbedded Visual C++ 3.0; for the PalmOS version, you need
PRC-tools (with Ton van Overbeek's multi-segment debugging
patches applied); and for the PalmOS/Windows Conduit, you need
Microsoft Visual C++ 6.0.
Some skins to use instead of the faceplates built into Free42.
Separate packages for
Windows and Unix and
A small collection of HP-42S/Free42
A Perl script that converts HP-42S program listings, such as
those generated by the PRP and LIST commands, to Free42/Emu42
compatible "raw" program files.
Written by Vini Matangrano; look
here for documentation and
the script itself.
A C program that converts HP-41 ROM images to Free42/Emu42
compatible "raw" program files.
Download rom2raw.zip; source code and
Win32 console executable included.
NOTE: the source code for this program is also included with
the Free42 Source Code package.
Free42 does not come with a manual (yet). Since it is an accurate
simulation of the HP-42S, an HP-42S manual should be adequate for most
purposes, since the Free42-specific functionality is fairly simple and
(I hope!) self-explanatory.
You can obtain a copy of the original HP-42S manual (in English) in PDF
format, on CD-ROM or DVD-ROM, at The
Museum of HP Calculators. Look for the CD/DVD offers here.
Alternatively, there is a new HP-42S/Free42 manual, written by José
Lauro Strapasson; you can obtain it from my web site
here, or get the most up-to-date version from the
author's web site here.
Decimal and Binary floating point
Starting with version 1.4, Free42 comes in Decimal and Binary versions. The
two look and behave identically; the only difference is the way they
represent numbers internally. All the download packages include both the
Decimal and the Binary versions.
Free42 Decimal uses Hugh Steers' 7-digit base-10000 BCD20
library, which gives 25 decimal digits of precision, with exponents ranging
from -10000 to +9999. Transcendental functions are evaluated to at least 20
digits. Each number consumes 16 bytes of memory.
Free42 Binary uses the PC's FPU, if available; it represents numbers as
IEEE-754 compatible double precision binary floating point, which consumes
8 bytes per number, and gives an effective precision of nearly 16 decimal
digits, with exponents ranging from -308 to +307 (actually, exponents can
be less than -308, but such small numbers are "denormalized" and don't have
the full precision of "normalized" numbers).
The binary version has the advantage of being much faster than the decimal
version; also, it uses less memory. However, numbers such as 0.1
(one-tenth) cannot be represented exactly in binary, since they are
repeating fractions then. This inexactness can cause some HP-42S programs
If you understand the issues surrounding binary floating point, and you do
not rely on legacy software that may depend on the exactness of decimal
fractions, you may use Free42 Binary and enjoy its speed advantage. If, on
the other hand, you need full HP-42S compatibility, you should use
If you don't fully understand the above, it is best to play safe and use
Latest release: 1.4.36, released 12 May 2007.
The ultimate source for HP calculator enthusiasts:
The Museum of HP Calculators.
Other HP-42S emulators: Christoph Gießelink's Emu42 (for Windows and Pocket PC); HrastProgrammer's HP-42X (for the HP-48 and HP-49 series calculators).
You can contact me, Thomas Okken, at .
Back to Thomas Okken's Projects home page