From: ins534z@aurora.cc.monash.edu.au (Quetzal)
Subject: Undocumented CST menu feature
Summary: You too can have completely customisable icons in your CST menu . . .
Organization: Monash University, Melb., Australia.
Date: Mon, 17 Aug 1992 03:40:07 GMT


A feature of the HP48's CST menu that is undocumented (in the manuals
at least) involves assigning customised labels to the menu keys.

A key entry in CST may look as follows:

FNYNN

which (assuming FNYNN is a variable) gives this entry normal action
with respect to unshifted-left-shifted-right-shifted planes.

It is common knowledge (i.e., it's in the manuals) that if you want
a different label then you put in a key entry as a list containing a
string, then the object, e.g.

{ "SPOD" FNYNN }

so that, while the HP48 will display SPOD, pressing it will actually
access FNYNN.

All this is fine, but there are occasions when this string is not
flexible enough for the menus that you might want.  For instance, say
you have a CST menu key that changes to a directory (call it ECKY) after
displaying the PLOT menu.  You could do this by putting this list in CST:

{ "ECKY" \<< 31 MENU ECKY \>> }

31 being the MENU number for the PLOT menu.  When you press the CST key,
sure enough, there is ECKY, but it is a normal menu item, without the
little "folder" tab to show that ECKY is a directory.  (After all, it's
a program that gets run when you press "ECKY"; the HP48 doesn't know
that it should be displaying a directory icon).

What you need is a way to display anything you like on the menu bar; in
this case, with the five pixels on the top of the item to mark it as
a directory.  What HP's manuals don't say, and what many probably have
guessed after reading the RPL manual in TOOLS, is that there is such a way.
The CST menu will not only take a string as the new label, but also any
21 by 8 GROB.  So you can make absolutely any icon you like to display
in your custom menus.

An easy way to make your own icon from one that is nearly what you want is
to edit it in the Graphics Environment.  Just type LCD\-> PICT STO to put
the entire screen in PICT, then press GRAPH, cursor down to the menu keys
and fiddle around with DOT+.  When you're finished, simply SUB the 21 by 8
GROB (don't include the blank column of pixels just to the right of the icon)
and paste it in (via the interactive stack) into the CST variable in
place of the string.  Our example becomes:

{ GROB 21 8 E30000FFFFF136A5D1BBB6D13A3FE1BBBEE136ARE1FFFFF1
  \<< 31 MENU ECKY \>> }

Pressing CST produces the desired result.

Other uses for this are: lower case, Greek or other unsupported characters;
extremely cute but cryptic symbols, such as an explosion (in 21 by 8
pixels!  :) ) in place of an EXIT key; making a menu key entirely disappear
( use #21d #8d BLANK ).

Only 21 by 8 GROBs will be interpreted in this way; others simply display
the first four letters of "Graphic size x size" (whatever size you chose).
Note that a menu GROB of these dimensions takes up 34 bytes; a string will
always be more compact - consider this if memory is a problem.  Also
remember that, if you choose pictures or lower case for your icons, they may
be difficult to read or understand, otherwise HP would have included them
in the HP48, or at least the manual.

Tim Pickett
-No fancy .signature, just loads of sincerity :)

From: akcs.jwtrav@hpcvbbs.cv.hp.com (John Wettroth)
Date: Fri, 14 Aug 1992 05:40:02 GMT
Subject: Re: Re: Mouse for HP48sx
Message-ID: <2a8b40a7.1527.3comp.sys.hp48.1@hpcvbbs.cv.hp.com>