Free42 : An HP-42S Calculator Simulator

What it is

Free42 is a re-implementation of the HP-42S Scientific Programmable Calculator and HP-82240 Printer.
It is a complete rewrite, not using any HP code. It does not require an HP-42S ROM image.
Free42 is an Open Source project. The executables and source code are released under the terms of the GNU General Public License, version 2.
All third-party code used in Free42 is either in the public domain, or licensed under terms compatible with GPLv2, or used with the authors' permission.

Project Status

The latest release is 2.2.

If you're interested in what's been going on with Free42 so far, see the project history.
If you have questions or comments about Free42, you can contact me, Thomas Okken, via email at
You can find answers to some frequently asked questions in the Free42 FAQ.

The following skins' layout files were updated to take advantage of direct command mapping: android/A-41, android/A-42, android/HP_Mega_42, android/Tyge_H, android/Tyge_S2_Landscape, android/Tyge_V, android/tyge_nova_L_v2, desktop/42ck, desktop/42ct, desktop/HP-41, desktop/HP42CY, desktop/Khor_ET66, desktop/Khor_Free01, iphone/Khor_ET66_iP5, iphone/Khor_Free01_iOS.
The advantage of direct command mapping over XEQ "NAME" or using the FCN catalog is that it doesn't interfere with menu operation, so it's more robust, without unexpected side effects.


If you like Free42 and use it regularly, or if you simply want to sponsor the Free42 project, please make a donation.
You may donate any amount you wish, large or small.
Donations are processed by PayPal.



Get it at Google Play, or if you prefer the manual approach, download Free42Android.apk for side-loading.
Requires Android 2.2 or later.

iOS (iPhone, iPad, iPod touch)

Get it from the iTunes App Store.
Requires iOS 8.0 or later.

NOTE: This is an "iPhone only" app, and as such, if you're using an iPad, the App Store app won't show it to you by default. You must select the "iPhone only" option from the drop-down menu in the top-left corner first. The app runs fine on iPads; Apple just makes it hard to find.


Requires Windows 2000 SP4 or later.

If, when you try to run Free42, Windows says "This application has failed to start because the application configuration was incorrect. Reinstalling the application may fix this problem," then you also need to download and install the Microsoft Visual C++ 2008 Redistributable Package.


Download App:
Download Dashboard Widget:
Both require MacOS 10.7 or later.


Download: Free42Linux.tgz
Built in Ubuntu 12.04, with glibc 3.2, libstdc++ 4.6.3, and GTK+ 3.4.2. It should work on any Linux (x86_64) with those or similar libraries.

Additional Downloads


Some skins to use instead of the faceplates built into Free42.

HP-42S/Free42 programs

A small collection of HP-42S/Free42 programs.


A C program that converts HP-41 ROM images to Free42/Emu42 compatible "raw" program files.
Download; source code and Win32 console executable included.

Free42 Source Code

Download: free42.tgz
Download for GTK only, no HP logo, for building Linux packages: upstream.

  • Building the Android version requires the Android SDK 2.2 and NDK r4b or later.
  • For the iOS version, I always use the latest Xcode and iOS SDKs. You may be able to build it with earlier releases, too, but I can offer no guarantees on that.
  • For the Windows version, you need Microsoft Visual C++ 2008 or later.
  • For the MacOS Application and for the Dashboard widget, you need the MacOS SDK 10.7 or later.
  • The GTK version requires Linux, or any reasonably Unix-like environment, with X11, GTK+, and the usual development tools and libraries.


There is no manual for Free42 per se, but since it is an accurate simulation of the HP-42S, the original HP-42S manual should be adequate for most purposes. The functionality that is specific to Free42, e.g. printer emulation, skin switching, etc., is fairly simple and should be self-explanatory -- except perhaps for program import/export, which is documented here, and the accelerometer, GPS, compass, time/date, and enhanced debugging functions, which are documented here.
You may be able to download the original HP-42S manual using the links at this HP Support Forum page.
I also recommend the Alternative HP-42S/Free42 Manual, written by José Lauro Strapasson and Russ Jones; you can get it here, in PDF and Word formats.

Loading and Saving Programs

Loading and saving programs is possible in all Free42 versions except MacOS Dashboard. The exact process is pretty straightforward in the desktop versions (Windows, MacOS, Linux), but it is a bit more complicated on mobile devices.
For instructions for all versions, see here.

Starting with release 2.0, you can use Copy and Paste to get programs into and out of Free42. In PRGM mode, Copy puts a text representation of the current program onto the system clipboard, and Paste takes a text representation of a program from the clipboard and loads it as the last program. This works in all Free42 versions, including mobile and MacOS Dashboard.

Binary and Decimal Floating-Point

While Free42 originally used Binary math exclusively, all releases starting with 1.4 have come in two versions, Binary and Decimal. The two look and behave identically; the only difference is the way they represent numbers internally.
All the Free42 versions on this site include both the Binary and Decimal versions, except for the iOS and Android versions, which are Decimal only.

Free42 Decimal uses the Intel Decimal Floating-Point Math Library; it uses IEEE 754-2008 quadruple precision decimal floating-point, which consumes 16 bytes per number, and gives 34 decimal digits of precision, with exponents ranging from -6143 to +6144.

Free42 Binary uses the PC's FPU; 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 +308.

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 to fail.

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 Free42 Decimal.

If you do not fully understand the above, it is best to play safe and use Free42 Decimal.