key41 - a filter to list an HP-41 key assignment file
key41 [-h] [-x xrom_file ] [-x xrom_file ] ... < Input file > Output file
key41 -?
key41 is a filter which produces a listing of an HP-41 key assignment file. The key definitions are read from standard input, and a human-readable listing is produced on standard output.
In general, assignments are displayed based on how they behave when stored in the HP-41 program memory (and to a lesser extent when they are executed in RUN mode), rather than how they are previewed on the HP-41 display.
By default, functions contained in plug-in modules are displayed as XROM rr,nn where rr is the number of the plug-in ROM and nn is the number of the function within that ROM. This can be overridden by loading xrom_files, see the -x option below.
-h |
Display the bytes (in hexadecimal) that comprise the key definition, rather than attempting to decode it. |
-x xrom_file
Use xrom_file to define names for functions in plug-in modules. This option may be repeated to load multiple xrom_files.
-? |
Print a message giving the program usage to standard error. |
xroms/*
xrom function definition files. The format of these files is given in the prog41(1) manpage. Use the environment variable LIFUTILSXROMDIR to point to the location of this directory. On Linux the default location is /usr/share/lifutils/xroms, if the variable is not specified.
The format of an HP41C key assignment register is documented in many books. Amongst the most useful references are Extend Your HP41 (W. A. C. Mier-Jedrzejowicz) and The HP41 Synthetic Programming Quick Reference Guide (Jeremy Smith)
If disk1.dat is a LIF disk image containing an HP41 key assignment file called KEYS then
lifget -r disk1.dat KEYS | key41 -x hpil -x time
will produce a listing of the keys to standard output, with the standard names for the functions in the HPIL module and time module.
Some of the more exotic synthetic assignments may not be displayed correctly, although an attempt has been made to handle synthetic programming. The common synthetic assignments, such as 2-byte standard functions, byte grabbers and eG0BEEP should be correctly displayed. If in doubt, use the -h option to display the assignments in hexadecimal.
key41 was written by Tony Duell, ard@p850ug1.demon.co.uk and has been placed under the GNU Public License version 2.0