Int 16h, 12h Get Extended Shift Status many
Returns the current keyboard shift status. This service is
provided to support the enhanced (101/102-key) keyboard.
Entry AH = 12h
Return AL = Shift status
AH = Extended shift status
──────────────────────────────────────────────────────────────────
Shift Status (AL)
7 6 5 4 3 2 1 0
1 . . . . . . . Insert locked
. 1 . . . . . . Caps Lock locked
. . 1 . . . . . Num Lock locked
. . . 1 . . . . Scroll Lock locked
. . . . 1 . . . Alt key is pressed
. . . . . 1 . . Ctrl key is pressed
. . . . . . 1 . Left Shift key is pressed
. . . . . . . 1 Right Shift key is pressed
Extended Shift Status (AH)
7 6 5 4 3 2 1 0
1 . . . . . . . Sys Req key is pressed
. 1 . . . . . . Caps Lock key is pressed
. . 1 . . . . . Num Lock key is pressed
. . . 1 . . . . Scroll Lock key is pressed
. . . . 1 . . . Right Alt key is pressed
. . . . . 1 . . Right Ctrl key is is pressed
. . . . . . 1 . Left Alt key is pressed
. . . . . . . 1 Left Ctrl key is pressed
──────────────────────────────────────────────────────────────────
This service is supported only on the AT dated 11/15/85 and after,
the XT dated 1/10/86 and after, and the XT-286.
The shift status byte return in AL is obtained from the byte at
memory location 0040h:0017h. Note that this is the same value that
is returned by Service 02h.
Note that the Extended Shift Status (value returned in AH) reports
if keys are being pressed, not locked.
See Service 02h for an equivalent service that works with all
keyboards, not supporting the new keys on the enhanced
(101/102-key) keyboard.