(Comp.sys.handhelds) Item: 3629 by ftg0673 at tamsun.TAMU.EDU Author: [Rick Grevelle] Subj: HP48 CRASH Library (Taking Control) Date: Thu Jul 04 1991 This is an abbreviated version of my CRASH library. With the availability of RAM cards, it soon became apparent that libraries were superior to the directory structures to which we had become accustomed in the HP28S. Many of the 48's features are more easily exploited via the use of RAM cards, and it's only a matter of time before it's discovered how to completely assume control of this machine. While currently there isn't adequate time to fully explain how the library accomplishes all that it does, perhaps it will suffice to exemplify a few of the more important techniques for those who already have some knowledge of the 48's operating system. Therefore it's being posted without detail for only the fundamentals will be addressed here. Numbered 1012, the library is actually unnamed. Its original purpose wasn't as its name implies, but rather was to restore the calculator exactly as it had been before a crash. This was made possible for one main reason; I own RAM cards from which all of my programs are used. It became necessary for me to utilize directory structures such as those HP uses in ROM for various menus which contain the user language commands, functions, and operations. This abbreviated version of library 1012 references two other libraries, of which neither is necessary. The libraries, MLDL, and HACKIT, are used for illustration only, and were intended to embellish the directory structure I am hoping to illustrate. It is therefore advisable to install both of the libraries in order to realize the full benefit. First, before installing 1012, it would be a good idea to archive anything that is currently being stored in the intrinsic RAM. Don't despair, as the library is safe, but it could make some rather startling modifications one might not expect. Unfortunately, for those users who haven't yet purchased a 128K or 32K RAM card, there is not much precaution that can be taken :-(. After installation the CST variable should be present in HOME. This is the only part of static RAM I use, and surprisingly, this powerful little custom menu is only 117 bytes. Now press the [CST] key; the three directories are completely unlike user directories, and virtually identical to the ones used in ROM by HP. Options available here are numerous and widely varied. It's possible to run programs in the background with these structures with only minor changes in the main directory. Furthermore, unlike user directories, nesting will save memory, shrink the size of the CST list, and will not slow the accessing of variables. This is because even though directories appear to be nested, it's not the case at all; they are actually flat as are libraries. If this sounds too outrageous to be true, be assured it's quite true. Let's see how it's done using the flag browser Wickes posted to this group only a few months ago. The third directory that appears on the menu page when [CST] is pressed is entitled UTILS. Before pressing UTILS, perform a [orange shift] [-] key sequence to begin a user program in the command line. Now pressing UTILS will result in a change to that directory. Now press all six keys on this page; note that PEEK, and SEEK are the only two commands on this page that I have made programmable. Implementing the [NXT] key will reveal the next page, and two more apparently nested directories. The directory labeled FLGS is the flags browser Wickes posted, and it is this program that we are going to run without affecting the program being built in the command line that should look like this: << PEEK SEEK >> Note the cursor flashing just after SEEK; now impliment the flag browser by pressing FLGS. Amazingly enough, both routines are apparently running. You are free to utilize any of the commands within the flag browser (see Wickes' posting for details). When you are finished playing around in the browser, simply press [ON] to exit the browser and return to the command line. If at any point you pressed [ENTER] while in the browser, you'll notice that the tagged object that command generates has been pushed to the stack instead of appearing in the command line. Certainly I do wish time was allowing for a more detailed explanation of all this. Currently, Robert Ellis has devised an elaborate directory/menu scheme which I'm hoping he will post soon that further expands upon these technics, but remains remarkably user friendly. What I've done in library 1012 is not overly complex, just detailed; so it shouldn't be too difficult to take apart and digest. Rick Grevelle (409) 774-1169 ftg0673@tamsun.tamu.edu