Enjoy your HP-28S, it is a very fine and beautiful calculator!
If you use
CUSTOM menus a lot, here are a few tips:
- Store your custom menu in a variable before executing MENU, i.e. instead of:
{ A B C D E F ... } MENU
do:
{ A B C D E F ... } DUP 'CST1' STO MENU
This doesn't take any extra memory (except for the variable name), and the benefits are multiple:
- You can retrieve your menu after a warmstart, which clears CUSTOM menu memory, but not USER memory.
- You can retrieve your menu after running a program which happens to use the MENU command with a list
argument, overwriting CUSTOM menu memory in the process.
- You can modify the menu at any moment without having to rebuild it from scratch.
- You can use several custom menus and easily change between them. In that case, you may want to store
them as self-executing programs (at a slightly higher price of memory) so that they can be activated
with a single key stroke from the USER menu, i.e. instead of:
{ A1 B1 C1 D1 E1 F1 ... } 'CST1' STO
{ A2 B2 C2 D2 E2 F2 ... } 'CST2' STO etc.
do:
<< { A1 B1 C1 D1 E1 F1 ... } MENU >> 'CST1' STO
<< { A2 B2 C2 D2 E2 F2 ... } MENU >> 'CST2' STO etc.
This opens up the possibility to have CUSTOM menus call each other, by including
an appropriate entry in the definition of each menu, e.g.:
<< { CST2 A B C D E ... } MENU >> 'CST1' STO
<< { CST1 X Y Z T W ... } MENU >> 'CST2' STO
CST1
will store and activate the first menu (CST1) as the current CUSTOM menu;
then, pressing CST2 within that same menu will activate the second CUSTOM menu.
To go back to the first one, just press CST1.
(Just to be clear: There's no limitation in the number of keys you can assign to a menu,
but it may be preferable to have different sets of menus, rather than having to cycle
through many pages of the same menu.)
- Normal menus could be described as "output" menus: you press a key in order to get an "answer",
or to "recall" a variable. But sometimes, you want the reverse: pressing a key to "store" something
in a variable, like in the SOLVR menu.
Accordingly, the MENU command also allows you to build CUSTOM "input" menus. This is done by including
the STO command in the list as its very first element (STO will not be visible in the menu, it just tells
the HP-28S to create an "input" menu). E.g.
{ STO A B C D E F ... } MENU
will create a SOLVR-like menu with inverse labels (black on white), where you can easily
input your data in any order you like, simply by putting the values on the stack and pressing
the corresponding variable keys.
However, it is not possible to mix "input" and "output" keys in the same CUSTOM menu.
Also note that, for the same reason, an "input" menu may not contain keys which activate
another menu.
- CUSTOM has menu number 19. So, if you want to display the current CUSTOM menu in a program, use:
<< ... 19 MENU ... >>