# Free42

960 downloads

A complete re-implementation of the HP-42S calculator and the HP-82240 printer.

Free42 is a complete re-implementation of the HP-42S calculator and the HP-82240 printer. 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 compatible.

Starting with release 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 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 don't fully understand the above, it is best to play safe and use Free42 Decimal.

Starting with release 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 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 don't fully understand the above, it is best to play safe and use Free42 Decimal.

Last updated on June 29th, 2009

## 0 User reviews so far.

SUBMIT