From: aschoorl@engr.uvic.ca (Andre Schoorl) Newsgroups: comp.sys.hp48 Subject: HPSauce 1.0 is Released! --> S/SX/G/GX 1. Introduction This is HPSauce 1.0, a set of four libraries for the HP48 series of calculators, each of which offers various levels of an improved stack environment. This includes a new status area and a 5 line stack in all libraries, plus combinations of a 5-line interactive stack, lower case menu support, and on-stack equation handling (a la EQSTK). HPSauce is the result of my combining the best of all stack programs I could find: Shower 3.0, Jazz SSTK, Sol 1.5, EQSTK, STK5, STK7, ISTK, STKD.LIB, KER 3.2, and HSTACK with some improvements of my own. The status area of HPSauce is similar to Shower 3.0 and includes amount of free mem, size of first level object, stack depth, a more compact directory path, port status, and more! It is fairly fast and written entirely in Sys-RPL / Machine Language. It offers many other improvements, see below. Library Number : 904 (same as Shower 3.0) Size and Checksum : Varies between 1.1 K to 9.5 K depending on library. HPSauce has been tested on GX ROM P and M, and SX ROM E, but should work on other ROM versions. Note! This was released due to demand. I am currently working on integrating some of HPSauce's features into Sol. Stay tuned for details. But I realize some of this code is non-optimal (i.e. GC every status update). However, it is fine for all practical intents and purposes. 2. Disclaimer, etc... HPSauce was made in May 1995 by Andre Schoorl, and is distributed in the public domain. It may not be sold for profit except for nominal copying fees. As with most other HP programs, I can't be responsible for any losses or damage caused by use of this software. Many thanks to Richard Steventon for permission to use his machine language case support in menus (from Sol 1.5), and Mika Heiskanen for parts of Jazz SSTK and EQSTK. Also many thanks to C.N. Fiechter for his fast AVW48 package. Keep up the good work! 3. The Various Flavours The main HPSauce library comes in four delicious flavours: Mild, Medium, Hot!, and Ranch. Choose the one that best suits your taste and memory. Mild - Also known as the "calorie wise" version, it has a plain 5-line stack with improved status area. This library will temporarily revert back to the built in 4-line stack if you enter the interactive stack with up-arrow. Size : 1117.5 bytes (1.09 K) Checksum : # B864h Medium - All the taste of Mild, plus a fast 5-line interactive stack (with configurable editor, see features section) and port status. Size : 3224.5 bytes (3.14 K) Checksum : # A32Ch Hot! - All the taste of Medium, plus fast machine language replacements for DispMenu (lower case support) and DISPN. Setting user flag 63 will convert the menus to oval, and clearing it will go back to rectangular menus. Size : 8557.5 bytes (8.36 K) Checksum : # 4CAh Ranch - All the taste of Hot! (without the ML DISPN though), plus the main display loop is a combination of EQSTK by Fin and the normal 5-line stack. This uses AGROB to display equations in equation-writer form directly on the stack! Furthermore, there are the following changes from EQSTK: - 5 line stack instead of 7 lines - I like having a status area! - IDs are shown as such instead of being treated like equations to allow them to be distinguished from XLIBs on the stack. - Defaults to smaller font size (size 1 from AGROB) to actually allow more equations to be shown in 5 lines compared with the larger font and 7 lines. The exception to using this size is if the equation is less than one standard stack line in height in which case it is displayed with size 2. - Fixed interactive stack bug, where binaries were shown on stack. - Multi-line spanning support for non-algebraics is added. - Removed user AGROB support to make the library smaller. Size : 9730 bytes (9.50 K) Checksum : # 7F55h AutoHPS - A very simple library based on autoexec.lib that will run HPSauce and put you in the var menu and user mode every warmstart (ON-C). This is done by using a delayed alarm, so don't worry if your alarm annunciator turns on briefly. AutoHPS can be used in combination with any flavour of HPSauce. Size : 86 bytes Checksum : #4ABBh 4. Features - 5 line stack, including proper shifting of stack when editing command line and multi-line spanning support (can be turned off using the build-in flag to do so, see your manual). - HPSauce Mild is over 400 bytes SMALLER than Shower 3.0. - Faster and smaller due to removal of all animations and space-wasting graphics (Shower, SOL). Those of you who use the AutoHPS library or a variation on it to run HPS on warmstart will like this. - To return to the original stack environment one can simply run HPS again. This uses the same LAM as Jazz to accomplish this, so the two will quit one another instead of running on top of each other and wasting memory. This also makes it easier to purge the library. - The libraries are now easily splittable using utilities like HackLib, Pro-Hackit, and <-LIB->, unlike Shower, Jazz, and Sol. - Directory separator changed to Unix '/', instead of DOS-like '\'. - User flags other than 63 in Hot! and Ranch have no effect anymore. In Jazz SSTK this was user flag 3, and in Shower 3.0 this was flag 64. - Size of object in level one in status area is no longer affected by the decimal mode setting (STD, FIX, etc..) or fraction mark. However as a result, sizes are rounded to the nearest byte (e.g. 2.5 -> 3). - Status of ports 1 and 2 is shown in the same location as algebraic and program entry modes respectively for HPSauce Medium and up. "M" for [m]erged, "L" for [l]ocked RAM card or ROM card, "W" for [w]riteable (unlocked) card, and blank for no card in port. Note that algebraic and programming modes can temporarily override these indicators. - Editor in interactive stack is configurable for HPSauce Medium and up. Simply make a variable in your path (probably HOME) which contains anything which will run your favorite editor when evaluated called `HPSpar' (case sensitive). This will probably be an ID or XLIB. For example, if you want to use StringWriter instead of the built-in editor: HOME { Edit } LIST-> DROP 'HPSpar' STO 5. Example of Changes to Stack Environment To be sauced, just run HPS. Here is an ASCII attempt to demonstrate what the library does to the stack environment. Note that not all items may be shown, depending on the current stack size, ticking clock, and entry mode: Free Mem Size Depth User Mode | | | | Angle modes - DEG XYZ 114028 8558 2 USR L P - Ports & Entry Mode Directory - /DEV 05/30/95 07:30:00P - Optional Clock ----------------------------------- 5: / 4: 5 line stack < 3: \ 2: 3.14159265359 - Second Object 1: Library 904: HPSauce 1.0: Hot! - First Object USND StrW Hack JAZZ HPSau Util - Current Menu 6. Limitations One known bug is when recalling an old stack with last stack or last arg; the status area isn't updated. Press ON or perform any other action to update the status area in this case. A HALT will revert to the 4-line stack until a KILL or CONT. And of course, to make room for more useful things, flags 1-5 are not shown in the status area. 7. Thanks to... Many thanks to the following people for their advice and contributions: A. Coulomb Shower 3.0, made in 1993 (also author of qpiroot). Jim Daniels XYSrvr package. C.N. Fiechter Author of AGROB from AVW48 v0.1. Mika Heiskanen For Jazz, HackLib, and EQSTK. Dan Kirkland For miscellaneous speedups (and USND of course). Richard Steventon Sol 1.5 (5-line Interactive stack & case support). Seth Arnold, Jarno Peschier, Jeff Sketchley et al for beta testing. Please send any comments/improvements to the address below, or post it to comp.sys.hp48. Have fun! -- Andre Schoorl PGP key available via finger/keyserver C.Eng Student, U.Vic, Canada. - Linux/Warp - http://www-engr.uvic.ca/~aschoorl