[SeaBIOS] Impossible to distinguish between two '/' keys

Christopher Gautier krys at dryadis.org
Fri Jul 23 15:06:51 CEST 2010


On a French keyboard, the '/' can be obtained by shifting the ':/' key
(scancode 0x34), or using the '/' keypad key which is the extended '0xe0+0x35'.
However, calling the 0x16 interrupt while pressing the keypad '/' does not
return an extended key: it returns 0x35 which maps to '!§'. This means it 
is impossible to implement a correct key mapping for both '/' keys, and '!'.

It seems to me that the problem is due to the following test in the 
__processkey() function (kbd.c, seabios 0.5.1 and git repository):

  if (flags2 & KF2_LAST_E0
       && scancode >= 0x47 && scancode <= 0x53) {
    /* extended keys handling */

which disregards the case scancode = 0x35. Changing the 0x47 boundary value
fixes the problem. Could somebody validate this micro patch?


More information about the SeaBIOS mailing list