🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.os.msdos.programmer
Article #5491

Re: key scan code from int 9

#5491
From: Mark William Hopkins
Date: Fri, 29 Mar 1991 00:26
66 lines
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!markh
References: <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