Article View: comp.os.msdos.programmer
Article #5491Re: key scan code from int 9
From: Mark William Hopkins
Date: Fri, 29 Mar 1991 00:26
Date: Fri, 29 Mar 1991 00:26
66 lines
2711 bytes
2711 bytes
In article <1991Mar18.173205.21380@msuinfo.cl.msu.edu> leeda@frith.egr.msu.edu (Dae Hee Lee) writes:
>Could you help me looking for any public utility to show key scan codes from
>int 9, not from int 16h?
A MAKE code is a keyboard scan code generated when a key is pressed down,
a BREAK code when the key is released.
If memory serves me correct they are:
(1)
For the PCJr: the same as the PC XT owing to some extensive pre-processing
in software (INT 02 and INT 48 hex) before iNT 09.
(2)
For the PC XT (MAKE codes): (it's obvious why it's easy to remember)
01 hex to 0e hex: Esc 1 2 3 4 5 6 7 8 9 0 - = Backspace
0f hex to 1c hex: Tab Q W E R T Y U I O P [ ] Enter
1d hex to 29 hex: Ctrl A S D F G H J K L ; ' `
2a hex to 36 hex: Left-Shift \ Z X C V B N M , . / Right-Shift
37 hex to 3a hex: Print-Screen Alt Spacebar Caps-Lock
3b hex to 44 hex: F1 F2 F3 F4 F5 F6 F7 F8 F9 F10
Numeric keypad (45 hex to 53 hex left-to-right, top-to-bottom):
Num-Lock Scroll-Lock
Home Up-Arrow Pg-Up -
Left-Arrow 5 Right-Arrow +
End Down-Arrow Pg-Dn
Ins Del
All BREAK codes = corresponding MAKE code + 80 hex.
(3)
For the PC AT (MAKE codes):
The same as for the PC XT with the addition of
54 hex: Sys-Req.
BREAK CODES consist of two bytes: f0 hex following by the corresponding
MAKE code.
(4) PS/2's can be configured to one of 3 sets. Set #2 is the system default,
but BIOS initializes it to set #1 during startup.
In set 1
BREAK code = PC XT's MAKE code + 80 hex.
MAKE code = XT's MAKE code,
Except
(1) Print-Screen is (I think) E0 hex, 2A hex for MAKE and E0, 37 for BREAK.
(2) Addition of new keys
Editing and Cursor Keypads:
Home: E0, 47 Up Arrow: E0, 48 Page Up: E0, 49
Left Arrow: E0, 4B Right Arrow: E0, 4D End: E0, 4F
Down Arrow: E0, 50 Page Down: E0, 51 Insert: E0, 52
Delete: E0, 53
New PS/2 keys:
Keypad Enter: E0, 1C
Right Ctrl: E0, 1D
Keypad /: E0, 35
Right Alt: E0, 38
Pause: E1, 1D, 45, E1, 9D, C5
F11: 57
F12: 58
Their break keys you get by adding 80 hex to the appropriate byte, except
that Pause has no break code (since it's never used as a repeat key).
Technical Details
Message-ID:
<10588@uwm.edu>Path:
arc1-ca.pugleaf.net!utzoo!utgpu!news-server.csri.toronto.edu!rpi!usc!wuarchive!uwm.edu!csd4.csd.uwm.edu!markhReferences:
<1991Mar18.173205.21380@msuinfo.cl.msu.edu>Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!utgpu!news-server.csri.toronto.edu!rpi!usc!wuarchive!uwm.edu!csd4.csd.uwm.edu!markh From: markh@csd4.csd.uwm.edu (Mark William Hopkins) Newsgroups: comp.os.msdos.programmer Subject: Re: key scan code from int 9 Message-ID: <10588@uwm.edu> Date: 29 Mar 91 00:26:32 GMT References: <1991Mar18.173205.21380@msuinfo.cl.msu.edu> Sender: news@uwm.edu Organization: University of Wisconsin - Milwaukee Lines: 66