@@ -243,6 +243,7 @@ impl ScancodeSet for ScancodeSet1 {
243243
244244/// Contains the implementation of Scancode Set 2.
245245/// See the OS dev wiki: https://wiki.osdev.org/PS/2_Keyboard#Scan_Code_Set_2
246+ /// Additional reference: https://www.win.tue.nl/~aeb/linux/kbd/scancodes-10.html
246247pub struct ScancodeSet2 ;
247248
248249impl ScancodeSet for ScancodeSet2 {
@@ -372,8 +373,8 @@ impl ScancodeSet for ScancodeSet2 {
372373 0x59 => Ok ( KeyCode :: ShiftRight ) , // 59
373374 0x5A => Ok ( KeyCode :: Enter ) , // 5A
374375 0x5B => Ok ( KeyCode :: BracketSquareRight ) , // 5B
375- 0x5D => Ok ( KeyCode :: HashTilde ) , // 5D
376- 0x61 => Ok ( KeyCode :: BackSlash ) , // 61
376+ 0x5D => Ok ( KeyCode :: BackSlash ) , // 5D
377+ 0x61 => Ok ( KeyCode :: HashTilde ) , // 61
377378 0x66 => Ok ( KeyCode :: Backspace ) , // 66
378379 0x69 => Ok ( KeyCode :: Numpad1 ) , // 69
379380 0x6B => Ok ( KeyCode :: Numpad4 ) , // 6B
@@ -394,12 +395,13 @@ impl ScancodeSet for ScancodeSet2 {
394395 0x7D => Ok ( KeyCode :: Numpad9 ) , // 7D
395396 0x7E => Ok ( KeyCode :: ScrollLock ) , // 7E
396397 0x83 => Ok ( KeyCode :: F7 ) , // 83
398+ 0x84 => Ok ( KeyCode :: SysReq ) , // 84
397399 0xAA => Ok ( KeyCode :: PowerOnTestOk ) , // AA
398400 _ => Err ( Error :: UnknownKeyCode ) ,
399401 }
400402 }
401403
402- /// Implements the extended byte codes for set 1 (prefixed with E0)
404+ /// Implements the extended byte codes for set 2 (prefixed with E0)
403405 fn map_extended_scancode ( code : u8 ) -> Result < KeyCode , Error > {
404406 match code {
405407 0x11 => Ok ( KeyCode :: AltRight ) , // E011
@@ -418,7 +420,9 @@ impl ScancodeSet for ScancodeSet2 {
418420 0x74 => Ok ( KeyCode :: ArrowRight ) , // E074
419421 0x75 => Ok ( KeyCode :: ArrowUp ) , // E075
420422 0x7A => Ok ( KeyCode :: PageDown ) , // E07A
423+ 0x7C => Ok ( KeyCode :: PrintScreen ) , // E07C
421424 0x7D => Ok ( KeyCode :: PageUp ) , // E07D
425+ 0x7E => Ok ( KeyCode :: Break ) , // E07E
422426 _ => Err ( Error :: UnknownKeyCode ) ,
423427 }
424428 }
0 commit comments