K E Y S 1.0 ~~~~~~~~~~~ 1) General description This library provides a way to assign programs or some other objects to system keyboard. The key definitions in G/GX are stored in librarys from 161 to 166 each one defining one keyboard plane. So simply put what this program does is building library from keyboard plane assignment definition and looking after, that this library is installed with higher priority than the system one... In addition there are redefined PURGE and STO named Purge and Sto, providing easier way of library management. ( You do not have to reset your calculator after storing new library into port ). 2) Installing the library. After downloading this library into your calculator, store it into port you prefer ( althought ports > 1 are not tested it should work... ). Try to store it so that it will not move in memory aftervards. ie. if you are using RPL48 compilator then store it after the library 1234. Also note that librarys in port 0 are displayed in right to left order and in any other port in left to right order. If you do not listen to this advise then you should turn the keyboard assignments off every time you are deleting something from the port this library is stored ( look below how to do it ). Then turn the calculator off and then on again ( or press ON-C ). The library is installed. To remove it go to HOME directory, turn the key assignments off, type :port:1555 DUP DETACH PURGE Where :port: means the port number you are using. DO NOT remove this library if there are some keyboard definition librarys installed. Always remove them first! 3) How to use it. In the library menu. Under label KEYS you find 6 programs whitch are: GTKEY MKKEY Tkeys Purge Sto INITkeys Lets start from the right to left: INITkeys - builds two librarys whitch redefine PURGE and STO key definitions. This is probably the best program to run at first. It leaves those librarys on the stack, so what you have to do is to insert port number and then press Sto from the menu for each one. The definitions will take effect immediately. So from now on storing any library into port will instantly attatch and run its config code. Sto - Replacement for the system STO. The only difference is in the way it stores the librarys into port. They will be attached at once. You will not lose stack, PICT or any other data you might have losed by warmsatart. Purge - Replacement for the system PURGE. It refreshes the key assignement librarys after removing any object from any port. In all other ways it behaves as system one... Tkeys - Toggles the key assignments on/off. If user flag 5 is on then the key assignments are on and vice-versa. MKKEY - Builds key assignment library from key definition list and key plane number. Syntax ( { Key definitions ( 49 of them ) } %(0-5) -> Lib ). I think you can use any object for key definition for whitch DoKeyOb does not error. You may as well use system binary from 0 to 48 as definition, in that case the system definition from the same system key plane is used. This method is by all means better than storing the copy of the original key definition. It takes no memory for one and some applications ( for example equation writer and Matrix writer ) are not using the definitions themselves but the addresses of the definitions. So it is not good idea to redefine such keys as ON, <-, and some others I have not discovered yet... GTKEY - Retrieves system or redefined key definitions in form suitable for MKKEY. Syntax ( %(0-5) %(0 or not 0) -> { Key definitions ( 49 of them ) } %(0-5) ) The second real determines the way to represent the definition list. If it is 0 - the list with system binaries and redefined definitions is returned. 1 - the complete list of system definition is returned. Thats` it. The bug reports and comments are welcome :) AS for why to use it: At this moment I can think of protection of your calculator by redefining the OFF key and assigning to it some password protection program... Disclaimers: I could not build this package without using <-RPL-> 5.0 by Detlef Mueller & Raymond Hellstern and StringWriter 4.4 by J.V. Avenard. Also <-LIB-> 2.0 by Detlef Mueller, Raymond Hellstern, Rick Gravelle and Mika Heiskanen and HP48 ROM decompilation vere heavily and shamelessly used... And another thing: The source codes are also available on this site, so you are welcome to use this package in your own applications or in every other way you can think of only if you will take no profit from it... (C) Robert Tiismus 1996 robert@physic.ut.ee