Skip to content

Commit 7bd7bce

Browse files
authored
Add/update set2 scancodes (#14)
* Add/update set2 scancodes - scancode for backslash/pipe is 0x5d and not 0x61; - added scancodes for print screen (0xE07C), break (0xE07D) and sysreq (0x84).
1 parent 5449f09 commit 7bd7bce

File tree

2 files changed

+9
-3
lines changed

2 files changed

+9
-3
lines changed

src/lib.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@ pub enum KeyCode {
7979
BackTick,
8080
BracketSquareLeft,
8181
BracketSquareRight,
82+
Break,
8283
CapsLock,
8384
Comma,
8485
ControlLeft,
@@ -142,6 +143,7 @@ pub enum KeyCode {
142143
ShiftRight,
143144
Slash,
144145
Spacebar,
146+
SysReq,
145147
Tab,
146148
Quote,
147149
WindowsLeft,

src/scancodes.rs

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -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
246247
pub struct ScancodeSet2;
247248

248249
impl 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

Comments
 (0)