Online JP 48G User's Guide

This site has no affiliation with Hewlett Packard (HP).

I've owned both the HP-48S and the HP-48GX, the latter of which I purchased somewhere around 1994 and have been using ever since. Unfortunately I found myself wishing that I could copy and paste data between my PC and my calculator, so this online version was a side project to provide me with a familiar RPN calculator containing the functionality I used the most often.

Site Map




This online, JavaScript based, calculator uses Reverse Polish Notation (RPN) semantics for entering data and executing operations. A stack of data variables is stored in memory but only the top 16 elements are displayed (unlike the physical calculator which only has display room for 4 rows). These values are persisted across browser sessions using Cookies so clearing or disabling the use of cookies will prevent any state from being saved.

One of the main goals for this application is to completely support keyboard entry. You can accomplish anything (data entry, executing operators and functions) all from a standard PC keyboard. For keys that already exist on your keyboard, just hit them as normal. For operations such as "COS", you will notice a little letter to the right of the button, which in this case is "T". Pressing the 'T' key on your keyboard will execute the cosine operation. To execute the arccosine operation, you will just hit Shift+T instead. This doesn't mean that the mouse isn't supported, clicking on the "ACOS" text will also perform the operation.



Data Entry

Binary, Octal, Hexidecimal Numbers

Hex values can be entered using the standard #nnh format:
Or you can use C/C++ style values using the 0x prefix:

Other base identifiers are specified using this syntax:
Binary 0b1111 or #1111b
Octal 0o17 or #17o
Decimal 0d15 or #15d
Hexidecimal 0xF or #Fh


Complex Numbers

Operations on complex numbers are also supported. To enter in a complex value, enclose both the real and imaginary parts in parentheses. For example 2 + 3i is entered as
You can then use the normal operators on this value as if it were a number.



Expressions, equations, etc. are entered using the single quote character.



Textual characters can be entered either by toggling the 'alpha' key (Ctrl) or by typing directly into the edit box in the display. If you do type directly into the edit box, just click outside of the window to return to normal function-key entry.



The following constants can be used in equations or operations:




To graph an equation, place the expression on the stack. The variable 'x' is used as the placeholder for the function's x-axis. Then hit the "DRAW" button from the PLOT menu. For example, given this equation. We will generate the graph below.


After pulling an equation off the stack, it is automatically stored in the local variable named "EQ" which can be found or retrieved later from the VAR menu.

Note that when the function is evaluated for the graph, it is interpreted via the JavaScript engine, so operators and precedence follows the JavaScript language. For example, x² would be entered as 'x*x' or 'pow(x, 2)'.




Row 1: A - F

A - F Executes the menu function identified above the button. You can also click the menu name in the display portion of the calculator to execute that option.

Row 2: G - L

G Opens up the Math menu.
Shift+G Toggle between Radians and Degrees.
J Displays the stored variable menu (the local "files").
Alt+K Opens the Stack menu.
L Moves to the next page of the menu.
Shift+L Moves to the previous page of the menu.

Row 3: M - R

' or M Enters a single quote into the editor.
N Takes a name (1:) and a value (2:) off the stack and stores them into a variable file. Access your stored variables from the "VAR" menu.
O Evaluates the top expression and pushes the result. NOTE: as a deviation from typical HP48 behavior, this operation actually executes the expression as JavaScript code.
Shift+O Repeats the last operation. For example, "2 2 * <RPT>" results in the equivalent operation of 2*2*2 as the last operation ("2*") is repeated.

Note that this is a deviation from the "→NUM" functionality on real HP48 calculators, "EVAL" doubles as the "→NUM" operator.

Alt+O Undoes the last operation, restoring the stack to the previous state.
Q or Down Arrow Takes the value off the top of the stack and places it into the editor field.
Shift+R Swaps the top two entries on the stack.

Row 4: S - X

S Executes the sine operation on the top value of the stack.
Shift+S Executes the arc-sine operation on the top value of the stack.
T Executes the cosine operation on the top value of the stack.
Shift+T Executes the arc-cosine operation on the top value of the stack.
U Executes the tangent operation on the top value of the stack.
Shift+U Executes the arc-tangent operation on the top value of the stack.
V Takes the square root of the top value.
Shift+V Squares the top value on the stack.
Alt+V Takes the nth (stack level 1:) root of a value (stack level 2:).
W Returns the result of y (stack level 2:) raised to the power of x (stack level 1:).
Shift+W Returns 10 raised to the power of x (the top value on the stack).
Alt+W Returns the base-10 logarithm of the top value.
X Takes the inverse of the top value.
Shift+X Returns e raised to the power of x (the top value on the stack).
Alt+X Returns the natural logarithm of the top value.

Row 5: Enter, Y - Z, Del, Backspace

Enter Moves the current text in the editor onto the stack. If the editor is empty, then the top value on the stack is duplicated.
Y Changes the sign of the top value.
Z Adds the power of 10 exponent notation to the editor value.
Shift+Z Deletes a file created with STO. Note that this operation cannot be undone.
Alt+Z Copies the last arguments popped off the stack, back onto the stack.
Shift+Del Removes everything from the stack.
Bkspace Deletes the last digit in the editor, or removes the top value on the stack.
Shift+ Bkspace Removes the top value on the stack.

Other Keys

Ctrl Pressing the Control key will toggle alpha entry on and off. With alpha entry enabled, pressing A - Z on the keyboard will enter those characters into the editor and not execute the associated operations.
Esc Aborts the current operation or clears the editor field.


Function Menus


Soft KeyDescription
, or G
REALOpens the Real submenu.
PROBOpens the Probability submenu.
CONSOpens the Constants submenu.

Math | Real

Soft KeyDescription
MINReturns the smaller of two inputs.
MAXReturns the larger of two inputs.
MODReturns the modulus of the number.
ABSReturns the absolute value of the number.
SIGN-1 if the value is negative, 1 if the value is positive, otherwise 0.

Math | Probablity

Soft KeyDescription
COMBReturns the number of combinations of n items taken m at a time.
PERMReturns the number of permutations of n items taken m at a time.
!Returns the factorial of the number.
RANDPlaces a random value, between 0 (inclusive) and 1 (exclusive), on the stack.


Soft KeyDescription
, click STACK, or Alt-K
ROTRotates the top 3 levels by one spot. For example 7 8 9 would become 8 9 7.
PICKDuplicates the nth element and moves it to the top of the stack.
SWAP3Swaps the 1st and 3rd elements.


Soft KeyDescription
, click PLOT, or Alt-8
DRAWTakes an equation from the stack and displays it.


Soft KeyDescription
, click SYMBOLIC, or Alt-9
→QThe "to quotient" function converts a floating point value into its fractional representation.
→QπThe "to quotient π" function converts a floating point value into a fractional factor of π representation.


Soft KeyDescription
, click LIBRARY, or Alt-2
CONVOpens the Conversion submenu.

Library | Conversion

Soft KeyDescription
>HEXConverts the top number to hexadecimal and sets the base to 16
>BINConverts the top number to binary and sets the base to 2
>OCTConverts the top number to octal and sets the base to 8
>DECConverts the top number to decimal and sets the base to 10
>ALLConverts the top number to all four bases
<<Shift left
>>Shift right
<< NShift left by N bits
>> NShift right by N bits



By using this application you maintain all responsibility for lost data or inaccurate results.







To report issues or make suggestions, please send email to jp48_a @