Version 5.1.00, Build 6608
© 2026 Torsten Manz
HP-15C Simulator
For Windows, Linux and macOS

# Menus

## Popup Menus and Menu Bar

### Using popup menus

Several popup menus are available in the simulator. They are opened by clicking with the right mouse button (B3) on an element of the user interface, e.g. a button, the display, etc.; or by using a keyboard shortcut of the form Alt–key

If you open a popup menu by clicking on an element of the user interface, the top left corner of the menu appears at the position of the mouse pointer. If you open a popup using a keyboard shortcut, the top left corner of the popup appears at the bottom left corner of the GUI element.

In addition to the popup menus, a menu bar can be enabled.

### macOS specifics

Popup Menus

Earlier versions of Tcl/Tk did not support fixed-width fonts in popup menus on macOS; a feature needed for the simulator popup menus. Therefore popup menus on macOS were simulated with normal windows. Recent combinations of Tcl/Tk and macOS no longer have this limitation anymore and native popup menus are now used by default. However, this has the disadvantage that all native popup menus are always single-column. You can therefore return to the old style menus by unchecking "Native macOS popup menus" in the Menus section of the preferences.

The only exception is the program menu, which is always a normal window. This is because coloured entries and multi-column popup menus are not supported by macOS.

Menu bar

Under macOS, the menu bar is always on, as it serves as the application's standard menu bar.

## ON Menu

The ON popup menu provides functions that are typical for a "File" menu.

- Mouse: B3–ON,B3– (The area around the display)
- Keyboard: Alt–O, F10

Menu item | Shortcut | Description
--- | --- | ---
Open program… | Ctrl–O | Open an HP-15C program. Opens the standard operating system Load File dialogue box to select a file. The new program will override the current program(s) when loaded.
Recent programs ▸ | - | Recent programs submenu. See below.
Save program… | Ctrl–S | Save the current HP-15C program(s). Opens the standard operating system Save File dialogue box for specifying a file.
Program description… | F12 | Opens the Program Description dialogue box. Used to add and edit the program documentation.
HTML help: text | Ctrl–F1 Shift–F1 | Displays the HTML help file for the current program. If an HTML file exists, "text" is the filename without an extension. If no file is found, the menu item label is "<not available>" and the item is greyed out.
Clear storage registers | Shift–Esc | Reset all storage registers to zero.
Memory ▸ | - | Memory submenu. See below.
Stay on top | Ctrl–T | The Simulator stays on top of all applications on the desktop, even if it does not have the focus.
Swap comma and period | Alt–. Alt–, | Swaps the representation of the decimal point and the digit separator.
Preferences… | Ctrl–, Ctrl–; | This item opens a dialogue box that allows you to configure the Simulator. See Preferences for details on configurable items.
Help | F1 | Starts a web browser with the simulator online help.
Show back side | - | Shows the back side of the HP-15C Simulator.
About HP-15C… | - | Opens a dialogue box with the Simulators copyright, disclaimer, serial number and other information.
Exit | Alt–F4 | Turns the Simulator off.

### Recent programs submenu

Menu item | Shortcut | Description
--- | --- | ---
program-0 … program-n | 0–9 | A list of programs that were previously opened or saved. You can set the number of entries displayed, with options ranging from 0 and 30, in the Preferences. The first ten entries in the list can be accessed quickly using the shortcuts 0–9. A program name is greyed out, if it is not found when the menu is opened. The program is not automatically removed from the list, as the file may only be unavailable temporarily, such as on a network drive that is not currently mounted.
Remove programs not found | - | Remove all programs from the list that cannot be found, meaning the menu item is greyed out.
Clear list | - | Remove all entries from the list. A message box will appear to confirm the action.

### Memory submenu

Menu item | Shortcut | Description
--- | --- | ---
Save memory | Ctrl–M | Saves the simulator memory to the hard disk. The location and the name of the file depend on the operating system and can not be changed by the user.
Load memory | Ctrl–L | Reload the simulator memory.
Reset memory | Ctrl–R | Reset the memory to the default value.

◀ ON Menu ▲ Top

## Stack Menu

The stack menu shows the contents of the four stack registers and the LAST X (LSTx) register. The stack menu is only available in Run mode, not in PRGM mode.

- Mouse: B3–
- Keyboard: Alt–S

Selecting one of the menu entries X through T performs a roll-down of the stack. The chosen register becomes the X-register. Selecting the menu item LSTx performs a push on the stack and copies the contents of the LSTx-register to the X register.

The numbers in the popup menu are formatted in the same way as on the display. Suppose you have typed the following:

1 2 ex g √x̅ (or x²)

1 2 ENTER

7 7 7 7 7 7 ⅟x

4 2

f 7 2 (or simply FIX 2)

If you now right-click on the display, you will see the popup menu shown in the first image:

FIX 2
FIX 4
SCI 3

The key sequence f 7 4 produces the format shown in the second image and f 8 3 produces the format shown in the third image.

In Complex mode, the stack popup menu shows both the real and the imaginary stack:

Real and Complex Stack

If a stack register contains a matrix descriptor, e.g. E 2 2, the menu item for this register can be of two different types. Either it can either be a submenu button with a cascading submenu showing the contents of the matrix. Or the menu item shows the matrix descriptor without a cascading submenu.

Cascading submenu
Descriptor only
By default, the menu item for a matrix descriptor is a submenu button. This can be changed in the Menus section of the Preferences.

◀ Stack Menu ▲ Top

## Storage Menus

This menu displays the status of the storage registers.

- Mouse: B3–STO,B3–RCL
- Keyboard: Alt–M, Alt–R

The storage menu is in either store or recall mode, depending on whether you access the menu with the STO key or the RCL key. Selecting a register in recall mode copies the contents of that register to the X-register. In store mode, the content of the X-register is copied to the selected register.

By default, the storage registers are displayed in two columns. This can be changed to one column in the "Menus" section of the Preferences.

Two-column mode
One-column mode

As with the real HP-15C, the user can change the number of available storage registers with f DIM (i). The popup menu shows only the storage registers currently defined, up to a maximum of 20 registers. The registers 0, 1 and I are always available.

If you dimensioned the number of storage registers to 7, the popup menu will look like this:

One-column mode
Two-column mode

◀ Storage Menus ▲ Top

## Matrix Menus

The matrix functions, together with the complex number functions, are the functions that have the greatest impact on the operation of the HP-15C. Matrix functions affect the memory usage. They use key sequences where the g key precedes a gold functions, they make use of the USER mode when entering the data of a matrix and in PRGM mode stores the USER status that was active during the programming.

I therefore strongly recommend that you read the HP-15C Owner's Handbook for a complete list of all matrix functions.

### Matrix Content

A matrix contents menu shows the elements of a matrix in a popup window.

- Mouse: B3–A…E
- Mouse over: Matrix descriptor in the stack menu

Two styles are available for the matrix content menus: One with row and column headings like in a spreadsheet and one with "row,column" information before each matrix element:
Row and column headers
Row and column per element

### Matrix Functions

The matrix functions menu provides ten matrix specific functions and calculations.

- Mouse: B3–MATRIX
- Keyboard: Alt–Z

Matrix functions menu

Number | Function | Description
--- | --- | ---
0 | 0 DIM | Dimensions all matrices to 0×0.
1 | 1→R0, 1→R1 | Sets row and column numbers in R0 and R1 to 1.
2 | AP → Ã | Transform ZP into Z̃.
3 | Ã → AP | Transform Z̃ into ZP.
4 | AT | Calculate transpose of matrix specified in X-register.
5 | ATB | Multiplies transpose of matrix specified in Y-register with matrix specified in X-register. Stores in result matrix.
6 | B=B-AC | Calculates residual in result matrix.
7 | MAX Σ|aij| | Calculates row norm of matrix specified in X-register.
8 | (Σ|aij|²)½ | Calculates Frobenius or Euclidean norm of matrix specified in X-register.
9 | |A| | Calculates determinant of matrix specified in X-register. Places LU in result matrix.

◀ Matrix Menus ▲ Top

## Program Menu

This menu shows the current program steps in a multi-column list. It is the equivalent of the real HP-15C function GTO CHS # # # (where # is in [0…9]), which moves the program pointer to the step with the given number.

In PRGM mode the menu is invoked by:

- Mouse: B3–,B3–GTO
- Keyboard: Alt–S

In Run mode the menu can only be invoked by:

- Mouse: B3–GTO

When you select a program step from the menu, the program pointer is positioned on that step. In PRGM mode, the selected program step is also shown in the display.

Three settings affect the layout of the menu (see Menus).

- Program steps can be displayed either in the standard row-column notation or as mnemonics
- Labels, subroutine calls (GSB and GTO) and return commands can be displayed in colour
- The number of program steps per menu column

The following figure shows some examples of popup menus:

Code
Code and colour
Mnemonics
Mnemonics and colour

By default, the menu displays coloured mnemonics.

◀ PRGM Menu ▲ Top

## GSB Menu

This menu shows all defined program labels. If no labels are defined, the menu is not shown.

- Mouse: B3–GSB
- Keyboard: Alt–F3

You can choose whether the labels are sorted or listed in the order they appear in the program (the default). If the labels are sorted, letter labels are sorted before number labels.

If a label is used more than once, it will only appear once in the sorted list. The unsorted list shows all occurrences. Note that in this case, the current program position determines, which occurrence of the label is actually accessed.

If a label description is available in the Program Documentation, this description is shown next to the label.
If the label description starts with a "#", the description is not shown. This can be used to hide subroutines that should not be called directly, but only from within the program.

The following examples are from the "Time Value of Money" program:

Unsorted
Sorted

◀ GSB Menu ▲ Top

## Flag Menu

This menu shows the status of the 10 flags.

- Mouse: B3–F?
- Keyboard: Alt–F

A value of "1" indicates that a flag is set ("on"), a value of "0" indicates that it is not set ("off"). The Flags 1 to 7 are user defined flags. Flag 8 indicates whether the Simulator is in Complex mode or not. Flag 9 indicates whether the display is blinking.

When you select a menu item in PRGM mode, the sequence "`43. 6. n`" is inserted into the program, to query the status of Flag n. Selecting a menu item in Run mode has no effect.

◀ Flag Menu ▲ Top

## Test Menu

The test menu provides access to ten comparison operations that cannot be accessed directly from the keypad. The test menu is only available in PRGM mode, not in Run mode.

- Mouse: B3–TEST
- Keyboard: Alt–T

The HP-15C has 12 different comparison operations. Two of them, x≤y and, x=0, are directly accessible from the keypad. The remaining ten can be accessed via g TEST n, where n is the code of the operation:

Test menu

When you select a menu item in PRGM mode, the sequence "`43.30. n` to perform test n is inserted in the program.

◀ Test Menu ▲ Top

## Error Menu

If an error occurs, the HP-15C will display the word "Error" followed by the error code n: ERROR N . The error popup menu provides a decoding for the error numbers.

- Mouse: B3–
- Keyboard: Alt–S

No. | Short desc. | Description
--- | --- | ---
0 | y ÷ 0, LN 0, … | Invalid mathematical operation Invalid argument in one of the following routines: ×, where `x = 0.` yx, where in Real mode `y < 0` and `x` is not an integer. in Real mode `y = 0` and `x ≤ 0`. in Complex mode `y = 0` and `Re(x) ≤ 0`. √x̅, in Real mode where `x < 0`. ⅟x, where `x = 0`. LOG, where in Real mode `x < 0` or in Complex mode `x = 0`. LN, where in Real mode `x<0` or in Complex mode `x=0`. SIN-1, where in Real mode `|x|>1`. COS-1, where in Real mode `|x|>1`. STO ÷, where `x = 0`. RCL ÷, where the content of the addressed register is 0. Δ%, where the value in the Y-registers is 0. HYP-1 COS, where in Real mode `x<1`. HYP-1 TAN, where in Real mode `|x|>1`. Cy,x or Py,x, where `x` or `y` are not integers; `x<0` or `y<0`; `x>y`; `x` or `y≥1010`.
1 | LN A, SIN A, … | Invalid Matrix operation Applying an operation other than a matrix operation to a matrix, that is, attempting a nonmatrix operation while a matrix is in the relevant register (whether the X- or Y-register or a storage register).
2 | Σ Error | Invalid statistic operation x̅, `n = 0`. s, `n ≤ 1`. ŷ,r, `n ≤ 1`. L.R., `n ≤ 1`.
3 | R?, Aij? | Invalid address for register or matrix element The addressed storage register or the indexed matrix element does not exist.
4 | LBL?, GTO > MEM, PRGM > MEM | Invalid line number or label name Program step addressed by line number is not in use or does not exist (line number > 448). Attempt to enter more than 448 program steps. Addressed label does not exist.
5 | > 7 RTN | To many nested subprograms More than 7 nested subprogram levels.
6 | SF > 9, CF > 9, F? > 9 | Invalid flag Attempt to call a flag greater than 9.
7 | SOLVE(SOLVE), ∫xy(∫xy) | Recursive call to SOLVE or ∫xy A program called by SOLVE calls SOLVE; a program called by ∫xy calls ∫xy.
8 | SOLVE ? | No root found SOLVE can not find a root in the given interval.
9 | ON / × | Service This error cannot occur with the Simulator.
10 | DIM > MEM | Insufficient memory Not enough memory to perform the requested operation.
11 | DIM A ≠ DIM B | Invalid matrix element Inconsistent or improper matrix arguments for a given matrix operation: + or +, where the dimensions are incompatible. ×, where: the dimensions are incompatible; or the result is one of the arguments. 1/x, where the matrix is not square. scalar/matrix ÷, where the matrix is not square. ÷, where: the matrix in the X-register is not square; the dimensions are incompatible; or the result is the matrix in the X-register. MATRIX 2, where the input is a scalar; or the number of rows is odd. MATRIX 3, where the input is a scalar; or the number of columns is odd. MATRIX 4, where the input is scalar. MATRIX 5, where: the input is a scalar; the dimensions are incompatible; or the result is one of the arguments. MATRIX 6, where: the input is scalar; the dimensions are incompatible (including the result); or the result is one of the arguments. MATRIX 9, where the matrix is not square. RCL DIM I, where contents of RI are scalar. DIM I, where contents of RI are scalar. STO RESULT, where the input is scalar. Py,x, where the number of columns is odd. Cy,x, where the number of rows is odd.
98 | File I/O Error | Error while opening or saving a program file This is, of course, not an error code of the real HP-15C.
99 | Tcl/Tk Error | Tcl/Tk interpreter error This is of course not an error code of the real HP-15C. Although the Simulator has been extensively tested, there may be some undetected errors in the code. If you encounter such an error, you may find that restarting the Simulator does not solve the problem. In this case the HP-15C memory file must be deleted manually.
Pr Error | Memory error | Continuous memory was reset The memory of the Simulator has been reset to the default values.

◀ Error Menu ▲ Top

Keyboard ▶