HP-42S

The HP-42S RPN Scientific is a programmable RPN Scientific hand held calculator introduced by Hewlett-Packard in 1988. It has advanced functions suitable for applications in mathematics, linear algebra, statistical analysis, computer science and others.

Overview
Perhaps the HP-42S was to be released as a replacement for the aging HP-41 series as it is designed to be compatible with all programs written for the HP-41. Since it lacked expandability, and lacked any real I/O ability, both key features of the HP-41 series, it was marketed as an HP-15C replacement.

The 42S, however, has a much smaller form factor than the 41, and features many more built-in functions, such as a matrix editor, complex number support, an equation solver, user-defined menus, and basic graphing capabilities (the 42S can draw graphs only by programs). Additionally, it features a two-line dot matrix display, which made stack manipulation easier to understand.

Production of the 42S ended in 1995. As this calculator is regarded amongst the best ever made in terms of quality, key stroke feel, ease of programming, and daily usability for engineers, in the HP calculator community the 42S has become famous for its high prices in online auctions, up to several times its introduction price, which has created a scarcity for utility end users.

Specifications



 * Series: Pioneer
 * Code Name: Davinci
 * Introduction: 1988-10-31
 * 64 KB of ROM
 * 8 KB of RAM
 * Functions: Over 350
 * Expandability: Officially no other than IR printing (32 KB memory upgrade and over-clocking hardware hacks are possible)
 * Peripherals: HP 82240A infrared printer

Features

 * All basic scientific functions (including hyperbolic functions)
 * Statistics (including curve fitting and forecasting)
 * Probability (including factorial, random numbers and Gamma function)
 * Equation solver (root finder) that can solve for any variable in an equation
 * Numerical integration for calculating definite integrals
 * Matrix operations (including a matrix editor, dot product, cross product and solver for simultaneous linear equations)
 * Complex numbers (including polar coordinates representation)
 * Vector functions
 * Named variables, registers and binary flags
 * Graphic display with graphics functions and adjustable contrast
 * Menus with submenus and mode settings (also custom programmable) that use the bottom line of the display to label the top row of keys
 * Sound (piezoelectric beeper)
 * Base conversion, integer arithmetic and binary and logic manipulation of numbers in binary, octal, decimal and hexadecimal systems
 * Catalogs for reviewing and using items stored in memory
 * Programmability (keystroke programming with branching, loops, tests and flags)
 * The ability to run programs written for the HP-41C series of calculators

Programming
The HP-42S is keystroke-programmable, meaning that it can remember and later execute sequences of keystrokes to solve particular problems of interest to the user. The HP-42S uses a superset of the HP-41CX FOCAL language.

The HP-42S supports indirect addressing with which it is possible to implement a Universal Turing machine and therefore the programming model of the HP-42S can be considered Turing-complete.

Sample program
This is a sample program which computes the factorial of an input integer number (ignoring the calculator's built-in factorial function). The program consumes 18 bytes. No memory registers are used.

Legacy
An open-source software version of the HP-42S (Free42) was developed by Thomas Okken that runs on iOS, Android, Windows, MacOS, and Linux. Its source code has been released under the GNU General Public License. In May 2017, SwissMicros released pre-production samples of an RPN calculator closely resembling the HP-42S, the DM42. The final product was released on the 9 December 2017. Even though slightly smaller (144×77×12 mm, 180 g) than the original HP-42S (148×80×15 mm, 170 g), the calculator comes with an additional top row of keys for soft menus, a keyboard layout supporting direct alpha character input, a much larger high-contrast display (Sharp low power transflective memory LCD with a resolution of 400×240, protected by Gorilla Glass) showing all four stack levels at once (configurable), ca. 75 KB usable RAM, a beeper, a callable real-time clock as well as an infrared port for HP 82240A/HP 82240B printer support and a USB interface (with Micro-B connector) emulating a FAT16-formatted USB mass storage device for easy program transfer and state backup / transfer as well as for firmware updates. The calculator, which comes in a stainless steel case with matte black physical vapor deposition (PVD) coating, supports keyboard overlays and is based on a modified version of Thomas Okken's GPLed Free42 simulator with Intel's decimal floating-point math library for higher precision (decimal128) running on an STM32L476RG processor (ARM Cortex-M4 core, 128 KB RAM, 1 MB internal flash) with another 8 MB of external QSPI flash (of which ca. 6 MB are available to users). It is powered by a CR2032 coin cell or via USB and clocked dynamically at 24–80 MHz. Since 2021, Free42 version 3 (and Plus42 version 1) optionally supports a dynamic RPN stack only limited by the amount of available memory instead of the classical four-level stack. This feature was incorporated as a selectable function into the DM42 since firmware DMCP-3.21/DM42-3.18.

The DM42 is also the hardware basis for the community-developed WP 43S calculator (called WP43 in more recent revisions since 2022), a successor to the WP 34S. The WP43 is supporting measurement system analysis (MSA) for the first time in a calculator. Expanding on the WP43 software and also based on the DM42 hardware, there are also variants with a considerable different keyboard and user interface called WP 43C (2011) / C43 (2022) / C47 (2023).

Another project based on the DM42 hardware is Christophe de Dinechin's DB48X (2022) to recreate an RPL environment from scratch.