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-hand 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 MenusEarlier Tcl/Tk versions did not allow 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 do not 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 one-column. You can therefore return to the old style menus if you deactivate "Native macOS popup menus" in the Menus section of the preferences.
Earlier versions of Tcl/Tk did not support fixed-width fonts in popup menus on MacOS, a feature that was needed for the simulator's popup menus. Therefore, popup menus on MacOS were simulated with normal windows. Recent combinations of Tcl/Tk and MacOS no longer have this limitation, and native popup menus are now used by default. However, this has the disadvantage that all native popups are single-column. You can return to the old style menus by unchecking "Native MacOS popup menus" in the Menus section of 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 default 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 operating system standard "Load file" dialogue box to select a file. The new program overrides 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 operating system standard "Save file" dialogue box to specify 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 is available, "text" is the file name without an extension. If no file is found, "text" reads "<not available>" and the menu entry is greyed out. |
Clear storage registers | Shift–Esc | Set 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 hasn't the focus. |
Swap comma and period | Alt–. Alt–, |
Swaps the representation of the decimal point and the digit separator. |
Preferences… | Ctrl–, Ctrl–; |
This entry 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 showing the Simulators copyright, disclaimer, serial number and other information. |
Exit | Alt–F4 | Shuts off the Simulator. |
Recent programs submenu
Menu item | Shortcut | Description |
---|---|---|
program-0 … program-n | 0–9 | A list of programs previously openend or saved. The number of entries, between 0 and 30, can be
set in the Preferences. The first ten entries can be selected by
the short-cuts 0–9.
A program name is greyed out, when it is not found when the menu is opened. The program is not automatically removed from the list, because the file might be not available only temporarily, e.g. on a network drive not mounted currently. |
Remove programs not found | - | Removes all programs from the list that can not be found, i.e. the greyed out entries. |
Clear list | - | Removes all entries from the list. When clicked, a message box opens to confirm this. |
Memory submenu
Menu item | Shortcut | Description |
---|---|---|
Save memory | Ctrl–M | Saves the simulator memory to disk. Path and file name 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. |
Stack Menu
This menu shows the status of the stack. That is, the values of the numbers stored in each of the four stack registers and in the LAST X (LSTx) register.
The stack menu is available only 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 selected register becomes the X-register. Selecting the entry LSTx performs a push on the stack and copies the contents of the LSTx register to the X register.
Numbers in the popup menu are formatted in the same way as in the display. Let us assume you have keyed in 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)
When you click the display with the right mouse button, you will see the popup menu as shown in the first image:
The key sequence f 7 4 gives the format shown in the second image and f 8 3 that in the third image.
In Complex mode, the stack popup menu displays both the real and the imaginary stack:
When a stack register contains a matrix descriptor, e.g. E 2 2,
the menu entry for this register can have two different styles. It can either be a submenu button with the cascading submenu
showing the content of the matrix. Or the entry shows the matrix descriptor without a cascading submenu.
Storage Menus
This menu displays the status of the storage registers.
- Mouse: B3–STO, B3–RCL
- Keyboard: Alt–M,
Alt–R
Depending on whether you invoke the menu on the STO key or the RCL key, the menu is either in storage or in recall mode. Selecting a register in recall mode copies the contents of that register to the X register. In storage mode the contents 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.
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, but a maximum of 20 registers. The
registers 0, 1 and I are always
available. If the user has dimensioned the highest number storage register to 7, the popup menu will look like this:
Matrix Menus
The matrix functions, along with the functions for complex numbers, are those that have the greatest impact on the handling of the HP-15C. Matrix functions affect the memory, they use key sequences where the g key precedes a gold function, they make use of the USER mode when entering the data of a matrix, in PRGM mode store the USER status that was active during the programming.I therefore strongly recommend to read the HP-15C Owner's Handbook for a complete list of all matrix functions.
Matrix Content
A matrix content menu shows the elements of a matrix in a popup window.- Mouse: B3–A…E
- Mouse over: Matrix descriptor in the stack menu


Matrix Functions
The matrix functions menu shows ten matrix specific functions and calculations.- Mouse: B3–MATRIX
- Keyboard: Alt–Z

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. |
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
If you select a program step from the menu, the program pointer is positioned on that step. In PRGM mode, the selected program step will also show up 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, sub-program calls (GSB and GTO) and return commands can be displayed coloured
- The number of program steps per menu column
The following figure shows some examples of popup menus:
By default, the menu displays coloured mnemonics.
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 determine whether the labels are sorted or whether they are listed in the order they occur in the program (the default). If the labels are sorted, letter labels are sorted before number labels.
If a label is used more then once, it appears only once in the sorted list. In the unsorted list, all occurences are listed. Please 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 right to the label.
If the label description starts with a "#", the menu entry for the program label is not shown.
This allows it to hide subprograms that should not be called directly, but only from inside the program.
The following examples are from the "Time Value of Money" program:
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 values of "0" that it is not ("off"). The flags 1 through 7 are user-defined flags. Flag 8 indicates whether or not the Simulator is in Complex mode. Flag 9 indicates the blinking of the display.
When you select a menu entry in PRGM mode, the sequence "43. 6. n
" to inquire the status of
Flag n is inserted in the program. Selecting a menu entry in Run mode has no effect.
Test Menu
The test menu provides access to the ten compare operations not accessible directly from the keypad.
The test menu is available only in PRGM mode, not in Run mode.
- Mouse: B3–TEST
- Keyboard: Alt–T
The HP-15C has 12 different compare operations. Two of them, x≤y and,
x=0, are accessible directly from the keypad. The ten remaining through
g TEST n, where n indicates
the code of the operation:
When you select a menu entry in PRGM mode, the sequence "43.30. n
to perform test n is inserted in the program.
Error Menu
If an error occurs, the HP-15C displays 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 .⅟x, where x = 0 .LOG, where
|x|>1 .COS-1, where in Real mode |x|>1 .
STO ÷, where Δ%, where the value in the Y-registers is 0.
HYP-1 COS, where in Real mode Cy,x or Py,x, where
|
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̅, |
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 sub-programs More than 7 nested sub-program 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 can not occur with the Simulator. |
10 | DIM > MEM | Insufficient memory Not enough memory to execute 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.
scalar/matrix ÷, where the matrix is not square. ÷, where:
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:
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, no error code of the real HP-15C. |
99 | Tcl/Tk Error | Tcl/Tk interpreter error This is, of course, no error code of the real HP-15C. Although the Simulator has been tested a lot, there might be some undetected errors in the code. When you come across such an error, it can happen that even 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 was reset to the default values. |