ProgrammingChapter —7
294 700Series Color MobileComputer User’s Manual
How KeyValues AreStored in RegistryTo know which fields to update in the registry, you must know what Scan
Codes are assigned to each physical key (see the “Keypad Scan Codes and
Meanings”tableonthenextpage).TheScanCodeisusedatthelowest
level of the systemto let the keypad driver know which physical key has
been pressed. The keypad driver takesthat scan code and looks it up in a
table (acopy of the one stored in the registry) to determinewhich values
to pass on to the operating system.
Each registrykey is just an array that describes to the keypad driver what
value needs tobe passed for each physical key. The key values are indexed
by the scan code,this is a zero-based index. For example in the unshifted
plane, the [4] key has a scan code of 0x06. This means that the seventh
word underthe “Vkey” registry key will have the value for the [4] key.
Taking a sample of the “Vkey” registry key shows the following values:
00,00,0B,05,02,03,C1,07,04,03,BE,00,34,00,00,00,. . .
Thevalueis34,00.Thevaluesareinreversebyteorderbecausethatisthe
way the processor handles data. When writing an application, nothi ng
needs to be done to swapthe bytes, as this will happen automatically when
the data is read into a byte value. This is something you j ust need to be
aware of when lookingat the registry. Knowing this, we can see that the
value that the keypad driver will pass to the system is a hex 34. Looking
that up on an UNICODE character chart, we see that it maps to a “4”. I f
you wanted the key, labeled “4”, to output the letter “A” instead, you
would need to changethe seventh word to “41” (the hexadecimal repre-
sentation of “A” from the UNICODE chart), then put the key back into
the registry.
Note: Do not remap scancodes 0x01, 0x41, 0x42, 0x43, 0x44. Remap-
pingthesescancodescouldrenderyour700ColorComputerunusable
until a cold-boot is performed.
If you wish to disable a certain key, remap its scan code to 0x00.
ChangeNotificationJust changingthe registry keys will not immediately change the key
mappings.To notify the keypad driver that the registry has beenupdated,
signal the “ITC_KEYBOARD_CHANGE” named event using the
CreateEvent()API.
Advanced Keypad RemappingIt is also possible to map multiple key presses to one button and to map
named system events to a button. The multiple key press option could be
useful to cut downon the number of keys needed to press in a given situa-
tion or to remapwhich key behaves like the action key. Mapping events to
a button could be useful to change which buttons will fire the scanner ,
controlv olume,and allow for suspending and resuming the device. If you
need help performing one of these advanced topics please contact Intermec
Technical Support.