HP 48 series

From Wikipedia, the free encyclopedia

HP 48 series
Picture of a Hewlett-Packard 48GX Calcularor
HP 48GX Calculator
SuccessorHP 49G
Cost350 USD
Entry modeRPN
Precision12 BCD digits, exp ±499
Display typeTN LCD
Display size131×64 pixels
ProcessorClarke 1LT8 (Saturn core for the HP48S series)
Yorke HP 00048-80063 (Saturn core for the HP48G series)
Frequency2–4 MHz
Programming language(s)RPL / Saturn Machine language
User memoryHP 48S series: 32 KB
HP 48G series: 32 to 128 KB
Firmware memoryHP 48S series: 256 KB
HP 48G series: 512 KB
External memoryHP 48SX: Ports 1 and 2 (merged): 256 KB
HP 48GX: Port 1: 128 KB
Port 2: 4,096 KB (4 MB)
Connection4-pin RS-232, HP-IR
PortsSerial, Infrared, Kermit (protocol), (Xmodem added on G series)
Power supply4.5 V (3× AAA battery)
Weight0.25 kg (0.55 lb)
Dimensions17.9×7.9×2.8 cm (7.05×3.11×1.1 inch)

The HP 48 is a series of graphing calculators designed and produced by Hewlett-Packard from 1990 until 2003.[1] The series includes the HP 48S, HP 48SX, HP 48G, HP 48GX, and HP 48G+, the G models being expanded and improved versions of the S models. The models with an X suffix are expandable via special RAM (memory expansion) and ROM (software application) cards. In particular, the GX models have more onboard memory than the G models. The G+ models have more onboard memory only. The SX and S models have the same amount of onboard memory.

Note that the similarly named hp 48gII (2004) is not a member of the series but closely related to the HP 49G+.

The calculators use Reverse Polish Notation (RPN) and the RPL programming language. The hardware architecture developed for the HP 48 series became the basis for the HP 38G, with a simplified user interface and an infix input method, and the HP 49G with various software enhancements. Likewise, the hardware and software design of the HP 48 calculators are themselves strongly influenced by other calculators in the HP line, most of all by the HP-18C and the HP-28 series.

Models / Availability[edit]

The HP 48SX was introduced on 1990-03-06.


  • 48SX: 1990–1993
  • 48S: 1991–1993
  • 48GX (F1895A): 1993–2003[1]
  • 48GX ASEE: 1993 (special edition labelled "1893 ASEE 1993 Shaping our world - Century II")
  • 48G: 1993–2003[1]
  • 48G+ (F1630A, F1894A): 1998–2003[1]


The HP 48 series' Saturn microprocessor is a hybrid 64-bit / 20-bit CPU hardware-wise but acts like a 4-bit processor in that it presents nibble-based data to programs and uses a nibble-based addressing system. The main registers A, B, C, D, along with temp registers R0, R1, R2, R3, and R4 are a full 64-bits wide, but the data registers D0 & D1 are only 20-bit. External logical data fetches are transparently converted to 8-bit physical fetches. The processor has a 20-bit address bus available to code but due to the presence of the high/low nibble selection bit, only 19 bits are available externally.

In both the HP 48S/SX and G/GX series, the Saturn CPU core is integrated as part of a more complex integrated circuit (IC) package. These packages have codenames inspired by the members of the Lewis and Clark Expedition. The codename of the IC is Clarke in the S/SX, after William Clark, and Yorke in the G/GX, after Clark's manservant. The previous series of Saturn-based ICs were codenamed Lewis, after Meriwether Lewis.

Common for all models[edit]

  • CPU architecture: Saturn
  • Screen resolution: 131×64 pixels. There were 3 versions of the LCD display used across the range with each improving visibility and contrast over the predecessor.[2]
  • Communication ports: 4-pin RS-232 (Serial port, standard UART at 1200 to 9600 bauds with option for parity (none/even/odd/mark/space)) and Infrared port (not IrDA, similar to serial, zeroes are pulses with duration 1/8 of a full bit time)[3]
  • Data bus width: 8-bit (external)
  • Maximum 4-bit-cell address width: 20 bits (leading to the address space shown next)
  • Logical address space: 512 KB
  • Maximum register size: 64 bit (both working and scratch registers)
  • Available expansion card ports on X models: 2
  • Expansion card pins: 40

HP 48S/HP 48SX specific[edit]

  • CPU clock frequency: 2 MHz
  • Memory clock frequency: 2 MHz
  • CPU codename: Clarke (Saturn 1LT8 core)
  • Communication protocol(s): Kermit (protocol)
  • On-board ROM: 256 KB
  • On-board RAM: 32 KB
  • Maximum additional memory per expansion card: 128 KB (48SX only)
  • ROM versions: A, B, C, D, E, (F,[4][5]) J
  • Orange and blue shift buttons

HP 48G/HP 48GX/HP 48G+ specific[edit]

Hewlett-Packard 48GX Scientific Graphing Calculator
  • CPU clock frequency: 3.68 to 4 MHz
    • Some claim that the frequency varies according to temperature[6]
    • According to one of the engineers on the design team of the HP 48G series (Dave Arnett), the yields for 4 MHz CPUs were essentially separated into two bins: the ones closest to spec, generally near 3.93–3.94 MHz, were reserved for the expandable models (GX), and those just slightly under spec were used for the non-expandable units (G). Eventually the yields improved and the CPUs which clocked closer to 4 MHz were installed in the non-expandable units as well. The effects of (non-extreme) temperatures are almost negligible.[citation needed]
  • Memory clock frequency: 2 MHz
  • CPU codename: Yorke (Saturn HP 00048-80063 core)
  • Communication protocol(s): Kermit (protocol), Xmodem
  • On-board ROM: 512 KB
  • On-board RAM: 32 KB (48G) or 128 KB (48G+/48GX)
  • Maximum additional memory for expansion card port 1: 128 KB
  • Maximum additional memory for expansion card port 2: 4 MB (128 KB addressable at any given time via bank switching)
  • ROM versions: K, L, M, P, R
  • Purple and blue-green shift buttons. This is sort of a design error, since these colors may be indistinguishable for red-green color blind people


The HP 48 series of calculators support a stack-based programming language named RPL, a supposed combination of Reverse Polish notation (RPN) and Lisp. RPL adds the concepts of lists and functions to stack-based programming, allowing the programmer to pass unevaluated code as arguments to functions, or return unevaluated code from a function by leaving it on the stack.

RPL comes in two flavors: User RPL and System RPL. User RPL is the language that a user can program directly on the calculator. System RPL requires an external compiler; this may be done on the calculator with a third-party utility, or on another machine. The two languages vary mainly in the number of low-level operations available to them. User RPL does not expose any commands that do not check their arguments. Consequently, User RPL programs cannot normally crash the calculator (and are therefore slower than System RPL programs), whereas a System RPL program that invokes a command with incorrect arguments will almost certainly leave the calculator in a state which requires a full memory reset.

It is also possible to program the HP 48 directly in machine language.


In popular culture[edit]

See also[edit]


  1. ^ a b c d e Paiva, Joseph V. (2004-10-01). "The End of An Era - On the genesis, life and death of the HP 48". Point of Beginning (PoB). BNP Media. Archived from the original on 2016-08-20. Retrieved 2015-10-20.
  2. ^ HP 48 Calculator Display Versions, retrieved 2022-08-10
  3. ^ "HP 48 I/O Technical Interfacing Guide". hpcalc.org. Hewlett-Packard. 1990-06-14. Retrieved 2020-09-12.
  4. ^ Schoorl, André; Maddock, Keith; Okahata, Darryl (2000-04-14) [1997]. Rechlin, Eric (ed.). "HP48 FAQ Section 3: Questions about ROM versions". Official HP48 FAQ - Answers to Frequently Asked Questions about the HP48. 4.62. HP Calculator Archive. Archived from the original on 2016-08-20. Retrieved 2015-09-12.
  5. ^ Wickes, William C. (1991-03-12). "HP 48 Version F: False Alarm". comp.sys.handhelds. hpcvra.cv.hp.com item: 2404. Archived from the original on 2016-04-28. Retrieved 2016-08-20.
  6. ^ "HPedia: The HP Calculator Encyclopedia".
  7. ^ "Spiderman's Dad an HP Calculator Fan?".

Further reading[edit]

External links[edit]