Int 09

Prev Next Ralf Interrups Categories Contents

------

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 (see #00006) 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 SysReq invoke INT 15/AH=85h (SysReq is often labeled SysRq) 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 Ctrl-Alt-Plus (HP Vectra) enable keyclick Ctrl-Alt-Plus (many clones) set clock speed to high Ctrl-Alt-Minus (HP Vectra) reduce keyclick volume Ctrl-Alt-Minus (many clones) set clock speed to low Ctrl-Alt-SysReq (HP Vectra) generate hard reset Ctrl-Alt-S (many clones) run BIOS setup program Ctrl-Alt-Esc (many clones) run BIOS setup program Ctrl-Alt-Ins (many clones) run BIOS setup program Ctrl-Alt-LeftShift-GrayMinus (some clones) turn off system cache Ctrl-Alt-LeftShift-GrayPlus (some clones) turn on system cache. DR DOS 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"PRINT SCREEN" - INT 0B"HP 95LX" - INT 15/AH=4Fh - See Also: INT 16/AH=00h - INT 16/AH=10h - INT 1B - INT 2F

See Also: INT 51"DESQview" - INT 59"DoubleDOS" - INT 79"GO32"

(Table 00006) Values for keyboard make/break (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 (Fn) [*] 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 73h [*] 14h T 44h F10 74h ExSel 15h Y 45h NumLock 75h -- 16h U 46h ScrollLock 76h Clear 17h I 47h Home 77h [Note2] Joyst But1 18h O 48h UpArrow 78h [Note2] Joyst But2 19h P 49h PgUp 79h [Note2] Joyst Right 1Ah [ { 4Ah Grey- 7Ah [Note2] Joyst Left 1Bh ] } 4Bh LeftArrow 7Bh [Note2] Joyst Up 1Ch Enter 4Ch Keypad 5 7Ch [Note2] Joyst Down 1Dh Ctrl 4Dh RightArrow 7Dh [Note2] right mouse 1Eh A 4Eh Grey+ 7Eh [Note2] left mouse 1Fh S 4Fh End 20h D 50h DownArrow 21h F 51h PgDn 22h G 52h Ins 23h H 53h Del 24h J 54h SysReq ---non-key codes--- 25h K 55h [Note1] F11 00h kbd buffer full 26h L 56h left \| (102-key)

27h ; :
57h F11 AAh self-test complete 28h ' " 58h F12 E0h prefix code 29h ` ~ 59h [Note1] F15 E1h prefix code 2Ah Left Shift 5Ah PA1 EEh ECHO 2Bh \ | 5Bh F13 (LWin) F0h prefix code (key break) 2Ch Z 5Ch F14 (RWin) FAh ACK 2Dh X 5Dh F15 (Menu) FCh diag failure (MF-kbd) 2Eh C FDh diag failure (AT-kbd) 2Fh V FEh RESEND 30h B FFh kbd error/buffer full

Notes: Scan codes 56h-E1h are only available on the extended (101/102-key) keyboard and Host Connected (122-key) keyboard; scan codes 5Bh-5Dh are only available on the 122-key keyboard and the Microsoft Natural Keyboard; scan codes 5Eh-76h are only available on the 122-key keyboard. In the default configuration, break codes are the make scan codes with the high bit set; make codes 60h,61h,70h, etc. are not available because the corresponding break codes conflict with prefix codes (code 2Ah is available because the self-test result code AAh is only sent on keyboard initialization). An alternate keyboard configuration can be enabled on AT and later systems with enhanced keyboards, in which break codes are the same as make codes, but prefixed with an F0h scan code. Prefix code E0h indicates that the following make/break code is for a "gray" duplicate to a key which existed on the original PC keyboard; prefix code E1h indicates that the following make code has no corresponding break code (currently only the Pause key generates no break code). The Microsoft Natural Keyboard sends make codes 5Bh, 5Ch, and 5Dh (all with an E0h prefix) for the Left Windows, Right Windows, and Menu keys on the bottom row. The European "Cherry G81-3000 SAx/04" keyboard contains contacts for four additional keys, which can be made available by a user modification; the three new keys located directly below the cursor pad's Delete, End, and PgDn keys send make codes 66h-68h (F19-F21); the fourth new key, named , sends make code 73h. The SysReq key is often labeled SysRq. The "Accord" ergonomic keyboard with optional touchpad (no other identification visible on keyboard or in owner's booklet) has an additional key above the Grey- key marked with a left-pointing triangle and labeled "Fn" in the owner's booklet which returns scan codes E0h 68h on make and E0h E8h on break. The "Preh Commander AT" keyboard with additional F11-F22 keys treats F11-F20 as Shift-F1..Shift-F10 and F21/F22 as Ctrl-F1/Ctrl-F2; the Eagle PC-2 keyboard with F11-F24 keys treated those additional keys in the same way. [Note1] the "Cherry G80-0777" keyboard has additional F11-F15 keys which generate make codes 55h-59h; some other extended keyboards generate codes 55h and 56h for F11 and F12, which cannot be managed by standard DOS keyboard drivers. [Note2] the Schneider/Amstrad PC1512 PC keyboards contain extra keys, a mouse, and a digital joystick, which are handled like extra keys. The joystick's motion scancodes are converted into standard arrow keys by the BIOS, and the joystick and mouse button scan codes are converted to FFFFh codes in the BIOS keyboard buffer (see CMOS 15h"AMSTRAD"). In addition to the keys listed in the table above, there are Del-> (delete forward) 70h Enter 74h

See Also: #00602 at INT 16/AX=6F07h - #03214 at INT 4A/AH=05h

Category: Hardware - Int 09h - I

------

Prev Next Ralf Interrups Categories Contents