SetupDesignGuide.pdf - Firmware Encoding Index
SetupDesignGuide.pdf - Firmware Encoding Index
SetupDesignGuide.pdf - Firmware Encoding Index
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Setup Design Guide<br />
DRAFT<br />
Modifier Key Value:<br />
This defines the non-printable special function this key has assigned to it.<br />
Under normal circumstances, a key that has any Unicode definitions generally has a Control key value<br />
of SCAN_NULL. This means the key has no special function other than the printing of a character. If<br />
any of the Unicode values have a value of 0xFFFF this is the exception to the rule. Though rarely used,<br />
this is the one case which a key might have both a printable character and an active Control key value.<br />
An example of this would be the numeric keypad’s insert key. The definition for this key on a standard<br />
US keyboard is as follows:<br />
Key Name = ZERO_KEY<br />
Unicode Value = 0x0030 (basically a ‘0’)<br />
Shifted Unicode Value = 0xFFFF (the exception to the rule)<br />
Alt-GR Unicode Value = 0x0000<br />
Shifted Alt-GR Unicode Value = 0x0000<br />
Modifier Key Value = SCAN_INSERT<br />
This is one of the few keys that under normal circumstances prints something out, but also has a special<br />
function. These are generally limited to the numeric keypad, however this does not prevent someone<br />
from having the flexibility to define these types of variations.<br />
(Assuming for the implementation that the state of CapsLock and NumLock, etc will correctly handle<br />
the shift states since they do it already……just wanted to mention it and it was thought about)<br />
9.2 Modifier Key Definitions<br />
Modifier keys are defined to allow for special functionality that is not necessarily accomplished by a<br />
printable character. Many of these modifier keys are flags to toggle certain state bits on and off inside<br />
of a keyboard driver. An example is CAPS_LOCK_MODIFIER. This state being active could alter<br />
what the typing of a particular key produces. Other control keys affect the position of the cursor like<br />
LEFT_ARROW_MODIFIER, END_MODIFIER, etc. One modifier key is likely unfamiliar to most<br />
people who exclusively use US keyboards, and that key is the ALT_GR_MODIFIER key. This key’s<br />
primary purpose is to activate a secondary type of shift modifier that exposes additional printable<br />
characters on certain keys. In some keyboard layouts this key does not exist and is normally the<br />
RIGHT_ALT_MODIFIER key. None of the other modifier key functions should be a mystery to<br />
someone familiar with the usage of a standard computer keyboard.<br />
An example of a few descriptor entries would be as follows:<br />
Layout = {<br />
EfiKeyLCtrl,0,0,0,0,LEFT_CONTROL_MODIFIER, //(Left control key)<br />
EfiKeyA0,0,0,0,0,NULL_MODIFIER,<br />
//(Not defined windows key)<br />
EfiKeySpaceBar,0x0020,0x0020,0x0020,0x0020,NULL_MODIFIER //(Space Bar)<br />
}<br />
//<br />
// Define the Control modifier value information<br />
81