Chapter 3 — Configuring the Computer

For the 751G keypad, these registry keys contain the plane mappings:

• The unshifted plane mapping is in the registry at:

HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\KEYBD\Vkey

• The orange plane mapping is in the registry at:

HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\KEYBD\VkeyGold

• The alpha plane mapping is in the registry at:

HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\KEYBD\VkeyAlpha

How Key Values Are Stored in Registry

To know which fields to update in the registry, you must know what Scan Codes are assigned to each physical key (see the table starting on the next page). The Scan Code is used at the lowest level of the system to let the keypad driver know which physical key was pressed. The keypad driver takes that scan code and looks it up in a table (a copy of the one stored in the registry) to determine which values to pass on to the operating system.

Each registry key is just an array that describes to the keypad driver what value needs to be 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 under the “Vkey” registry key has 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,. . .

The value is 34,00. The values are in reverse byte order because that is the way the processor handles data. When writing an application, nothing needs to be done to swap the bytes, as this happens automatically when the data is read into a byte value. This is something to be aware of when looking at the registry. Knowing this, we can see that the value that the keypad driver passes to the system is a hex 34. Looking that up on an UNICODE character chart, we see that it maps to a “4”. If you wanted the key, labeled “4”, to output the letter “A” instead, you would need to change the seventh word to “41” (the hexadecimal representation of “A” from the UNICODE chart), then put the key back into the registry.

If you wish to disable a certain key, remap its scan code to 0x00.

Note: Do not remap scan codes 0x01, 0x41, 0x42, 0x43, 0x44. Remapping these could render the 751G unusable until a cold-boot is performed.

Change Notification

Changing registry keys alone does not immediately change key mappings.

To notify the keypad driver the registry was updated, use the CreateEvent()

API to signal the “ITC_KEYBOARD_CHANGE” named event.

100

751G Color Mobile Computer User’s Manual

Page 114
Image 114
Intermec 751G How Key Values Are Stored in Registry, Change Notification, Orange plane mapping is in the registry at