+ ACCESS_PAGE0_CODE (\r
+ KbFlag1 = *((UINT8 *) (UINTN) 0x417); // read the STATUS FLAGS 1\r
+ KbFlag2 = *((UINT8 *) (UINTN) 0x418); // read STATUS FLAGS 2\r
+ );\r
+\r
+ DEBUG_CODE (\r
+ {\r
+ if ((KbFlag1 & KB_CAPS_LOCK_BIT) == KB_CAPS_LOCK_BIT) {\r
+ DEBUG ((EFI_D_INFO, "[KBD]Caps Lock Key is pressed.\n"));\r
+ }\r
+ if ((KbFlag1 & KB_NUM_LOCK_BIT) == KB_NUM_LOCK_BIT) {\r
+ DEBUG ((EFI_D_INFO, "[KBD]Num Lock Key is pressed.\n"));\r
+ }\r
+ if ((KbFlag1 & KB_SCROLL_LOCK_BIT) == KB_SCROLL_LOCK_BIT) {\r
+ DEBUG ((EFI_D_INFO, "[KBD]Scroll Lock Key is pressed.\n"));\r
+ } \r
+ if ((KbFlag1 & KB_ALT_PRESSED) == KB_ALT_PRESSED) {\r
+ if ((KbFlag2 & KB_LEFT_ALT_PRESSED) == KB_LEFT_ALT_PRESSED) {\r
+ DEBUG ((EFI_D_INFO, "[KBD]Left Alt Key is pressed.\n"));\r
+ } else {\r
+ DEBUG ((EFI_D_INFO, "[KBD]Right Alt Key is pressed.\n"));\r
+ }\r
+ } \r
+ if ((KbFlag1 & KB_CTRL_PRESSED) == KB_CTRL_PRESSED) {\r
+ if ((KbFlag2 & KB_LEFT_CTRL_PRESSED) == KB_LEFT_CTRL_PRESSED) {\r
+ DEBUG ((EFI_D_INFO, "[KBD]Left Ctrl Key is pressed.\n"));\r
+ } else {\r
+ DEBUG ((EFI_D_INFO, "[KBD]Right Ctrl Key is pressed.\n"));\r
+ }\r
+ } \r
+ if ((KbFlag1 & KB_LEFT_SHIFT_PRESSED) == KB_LEFT_SHIFT_PRESSED) {\r
+ DEBUG ((EFI_D_INFO, "[KBD]Left Shift Key is pressed.\n"));\r
+ }\r
+ if ((KbFlag1 & KB_RIGHT_SHIFT_PRESSED) == KB_RIGHT_SHIFT_PRESSED) {\r
+ DEBUG ((EFI_D_INFO, "[KBD]Right Shift Key is pressed.\n"));\r
+ }\r
+ }\r
+ );\r