INT 09h (9)              Keyboard
 
    The keyboard generates an INT 9 every time a key is pushed or
    released.
 
       Notes:         This is a hardware interrupt (IRQ 1) activated by
                      the make or break of every keystroke.
 
    The default INT 9 handler in the ROM reads the make and break scan
    codes from the keyboard and converts them into actions or key codes as
    follows:
 
         þ   For ASCII keys, when a make code is encountered, the ASCII code
             and the scan code for the key are placed in the 32-byte keyboard
             buffer, which is located at 0:41Eh. The ASCII code and scan code
             are placed in the buffer at the location addressed by the
             Keyboard Buffer Tail Pointer (0:041Ch). The Keyboard Buffer Tail
             Pointer is then incremented by 2, and if it points past the end
             of the buffer, it is adjusted so that it points to the beginning
             of the buffer.
 
         þ   If Ctrl, Alt, or Shift has been pressed, the Shift Status
             (0:0417h) and Extended Shift Status (0:0418h) bytes are updated.
 
         þ   If the Ctrl-Alt-Del combination has been pressed, the Reset
             Flag (0:0472h) is set to 1234h and control is given to the
             power-on self test (POST). Because the Reset Flag is 1234h, the
             POST routine bypasses the memory test.
 
         þ   If the Pause key sequence has been entered, this interrupt
             enters an indefinite loop. The loop is broken as soon as a valid
             ASCII keystroke is entered. (The PC Convertible issues an INT
             15h, Service 41h (Wait on External Event), to execute its pause
             loop.)
 
         þ   If the Print Screen key sequence is entered, an INT 05h (Print
             Screen) is executed.
 
         þ   If the Control-Break key sequence is entered, an INT 1Bh
             (Control-Break) is executed.
 
         þ   For XTs dated 1/10/86 and after, ATs, XT-286s, and PC
             Convertibles, the INT 9h handler generates an INT 15h, function
             91h (Interrupt Complete) to signal that a keystroke is
             available. Also, on these machines, a make or break of the Sys
             Req key generates an INT 15h, function 85h (System Request Key
             Pressed).
 
         þ   For ATs dated 6/10/85 and after, XT-286s, and PC Convertibles,
             an INT 15h, function 4Fh (Keyboard Intercept) is executed after
             the scan code has been read from the keyboard port (60h). This
             allows the user to redefine or remove a keystroke.
 
    INT 16 provides a standard way to read characters from the keyboard
    buffer that have been placed there by the INT 9 handler in ROM.

Seealso:



This page last updated on Fri Nov 30 10:49:50 MSK 2001
Copyright © 1992-2001, Vitaly Filatov, Moscow, Russia
Webmaster