From: akcs.softcalc@hpcvbbs.cv.hp.com (brian maguire) Date: Wed, 30 Dec 1992 17:40:03 GMT Subject: HP48: XMENU version 1.03 Message-ID: <2b41d4f1.5070comp.sys.handhelds@hpcvbbs.cv.hp.com> Newsgroups: comp.sys.handhelds ************************************************************ ** ** ** XMENU - Menu Expander 1.03 ** ** ** ** Copyright 1992 Brian Maguire ** ** All Right Reserved ** ** ** ************************************************************ The expanded menu program displays a menu using as many as four rows at a time with the top four rows of keys corresponding to each row of menu labels. This will normally be enough to display all rows of a built-in menu. If a menu contains more than four rows, a scroll indicator will be displayed in the status area. Pressing ENTER will advance the menu screen one page. Likewise, [ORANGE]- ENTER will decrement the menu screen one page. Pressing a key in the top four rows that corresponds to a menu label will immediately evaluate that menu item. Pressing any non-menu key will cause the 48 to beep. Pressing [ON] exits XMENU. Menu tree structures are supported. When a menu key creates a different menu, it is nested below the parent menu. Pressing [+/] will exit the sub-menu and restore the calling parent menu. Likewise, pressing [BLUE]-[+/-] will exit all sub-menus and restore the top most menu. Because the VAR menu is unique in the fact that the contents of the menu can change by moving into a sub- directory, but the menu definition doesn't actually change, UPDIR has been assigned to [ORANGE]-[+/-]. In addition to the menu display, XMENU also displays as many line of the stack as possible using the medium font size. A total of six lines are used for both the menu and stack. If the menu only uses two lines, four will be used for the stack, etc. Most menus are defined by a list or by a program that generates a list. This data list is used by the built-in menu commands to load the "touch table" (menu key bindings). But several menus, like the VAR menu, are not defined by a list. Instead, they load the touch table themselves, on the fly. Because it is difficult to determine how many display lines will be needed for these menus, XMENU always allocates four. The only built-in menus that are forced to four display lines are VAR, LIBRARY, PORT0, PORT1, PORT2, and any library's menu. The following criteria was used when writing this program 1) Self contained XMENU had to be a self standing program, not a library or a directory. 2) Minimal amount of time writing I don't really have much free time so I tried to keep it simply. Very little time was spend trying to pack the code. I did try to document it enough so someone who is familiar with RPL can follow it though. DISCLAIMERS XMENU is presented without warranties, expressed or implied. The author makes no guarantee as to the fitness of this software. XMENU can be copied freely provided the software is copied in its entirety. The user cannot be charged, in whole or in part, except for the cost of reproduction. No part of this package may be used for commercial purposes or as part of third party software (commercial or public), without written permission from the author. ACKNOWLEDGEMENTS: Thanks to Conan J. Fee whose XPNDR program inspired me to finish writing XMENU and Detlef Muller for his participation in writing XPNDR. Also, thanks to Todd Eckrich for his help in debugging.