[<<Previous Entry] [^^Up^^] [Next Entry>>] [Menu] [About The Guide]
Int 09  - IRQ1 - Keyboard Data Ready                                       [H]

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

See Also: INT 05,INT 0B"HP 95LX",INT 15/AH=4Fh,INT 15/AH=85h,INT 16,INT 1B

See Also: INT 2F/AX=A901h,INT 51"DESQview",INT 59"DoubleDOS",INT 79"GO32"

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

Note:  scan codes 56h-E1h are only available on the extended (101/102-key)
     keyboard and Host Connected (122-key) keyboard; scan codes 5Ah-76h
     are only available on the 122-key keyboard

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