Path: utzoo!utgpu!news-server.csri.toronto.edu!clyde.concordia.ca!mcgill-vision!bloom-beacon!snorkelwacker!apple!usc!cs.utexas.edu!wuarchive!psuvax1!rutgers!columbia!close.cs.columbia.edu!ji From: ji@close.cs.columbia.edu (John Ioannidis) Newsgroups: comp.sys.handhelds Subject: User-defined libraries: how? Message-ID: <6757@columbia.edu> Date: 13 Mar 90 19:45:56 GMT Sender: news@columbia.edu Reply-To: ji@close.cs.columbia.edu (John Ioannidis) Organization: Columbia University Department of Computer Science Lines: 32 I'm quoting from the hp-48sx manual, page 651: A _library_ is an objet that contains named objects that can act as an extension to the built-in command set. you cannot view or change the contents of a library. Libraries can exist in application cards, or they may be copied into RAM. Howeve, libaries cannot be created by the HP48. Like any self-respecting HP-calculator-old-timer, I take that "cannot be created" as a challenge. My understanding is that the there is no *physical* difference between the port ram or rom and the built-in ram and rom; the address space appears to be linear, and there is probably some table that defines what part of the memory is rom, what is "independent" (or whatever they call it) ram and what is user ram. (in the 41 they were completely disjoint address spaces and they were accessed using completely different machine instructions). My guess is that it should be possible to create an object in ram, then fiddle with its attributes using the "front panel" hex editor and have the machine think it's a "library" (since, after all, libraries can be copied in ram. This could even be a way of getting around the various bugs in the early releases of the firmware. Is anyone workign along those lines? Will information like this be available in the "programmer's reference manual"? Speaking of which, can anyone from HP tell us what is expected to be there? I don't want a hand-holding tutorial on user-level programming, I want details of how to access low-level features effeciently (like scrolling regions of the display, defining my own fonts and commands, etc). /ji