[<<Previous Entry] [^^Up^^] [Next Entry>>] [Menu] [About The Guide]
INT 09 - IRQ1 - KEYBOARD DATA READY
Desc:   this interrupt is generated when data is received from the keyboard.
          This is normally a scan code (from either a keypress *or* a key
          release), but may also be an ACK or NAK of a command on AT-class
          keyboards.
Notes:  this IRQ may be masked by setting bit 1 on I/O port 21h
        if the BIOS supports an enhanced (101/102-key) keyboard, it calls
          INT 15/AH=4Fh after reading the scan code from the keyboard and
          before further processing; all further processing uses the scan
          code returned from INT 15/AH=4Fh
        the default interrupt handler is at F000h:E987h in 100%-compatible
          BIOSes
        the interrupt handler performs the following actions for certain
          special keystrokes:
            Ctrl-Break   clear keyboard buffer, place word 0000h in buffer,
                         invoke INT 1B, and set flag at 0040h:0071h
            SysRq        invoke INT 15/AH=85h
            Ctrl-Numlock place system in a tight wait loop until next INT 09
            Ctrl-Alt-Del jump to BIOS startup code (either F000h:FFF0h or the
                           destination of the jump at that address)
            Shift-PrtSc  invoke INT 05
        DRDOS hooks this interrupt to control the cursor shape (underscore/
          half block) for overwrite/insert mode
        DR Multiuser DOS hooks this interrupt for cursor shape control and to
          control whether Ctrl-Alt-Del reboots the current session or the
          entire system
SeeAlso: INT 0B"HP 95LX",INT 15/AH=4Fh,INT 15/AH=85h,INT 16,INT 1B

Values for scan code:
 01h    Esc              21h    F                41h    F7
 02h    1 !              22h    G                42h    F8
 03h    2 @              23h    H                43h    F9
 04h    3 #              24h    J                44h    F10
 05h    4 $              25h    K                45h    NumLock
 06h    5 %              26h    L                46h    ScrollLock
 07h    6               27h    ; :              47h    Home
 08h    7 &              28h    ' "              48h    UpArrow
 09h    8 *              29h    ` ~              49h    PgUp
 0Ah    9 (              2Ah    Left Shift       4Ah    Grey-
 0Bh    0 )              2Bh    \ |              4Bh    LeftArrow
 0Ch    - _              2Ch    Z                4Ch    Keypad 5
 0Dh    = +              2Dh    X                4Dh    RightArrow
 0Eh    Backspace        2Eh    C                4Eh    Grey+
 0Fh    Tab              2Fh    V                4Fh    End
 10h    Q                30h    B                50h    DownArrow
 11h    W                31h    N                51h    PgDn
 12h    E                32h    M                52h    Ins
 13h    R                33h    , <              53h    Del
 14h    T                34h    . >              54h    SysRq
 15h    Y                35h    / ?              57h    F11
 16h    U                36h    Right Shift      58h    F12
 17h    I                37h    Grey*
 18h    O                38h    Alt
 19h    P                39h    SpaceBar
 1Ah    [ {              3Ah    CapsLock
 1Bh    ] }              3Bh    F1
 1Ch    Enter            3Ch    F2               E0h    prefix code
 1Dh    Ctrl             3Dh    F3               E1h    prefix code
 1Eh    A                3Eh    F4               FAh    ACK
 1Fh    S                3Fh    F5               FEh    RESEND
 20h    D                40h    F6               FFh    kbd error/buffer full

See Also: 05
This page created by ng2html v1.05, the Norton guide to HTML conversion utility. Written by Dave Pearson