pckeyboard(7) pckeyboard(7)
NAME
pckeyboard - keyboard specifications
DESCRIPTION
The Indy, Indigo2, O2, OCTANE and Onyx2 systems use an industry-standard
PC-compatible keyboard with a PS/2 style (6 pin mini-DIN) connector.
The keyboard connects to the back of the system unit with a shielded
partially coiled cord and is detachable at the system cabinet only. The
system communicates with the keyboard via a clocked serial protocol. SGI
uses keyboard scan code set 3, which sends a scan code on key press and a
"break" code followed by repeating the scan code. Every key has a unique
scan code. All keys function the same way, allowing the system software
to use keys in any manner.
Compatibility
Most PC keyboards work out of the box (they may require a 5 pin DIN to 6
pin mini-DIN) if they match the normal 101-key layout. Keyboards with
different or extra keys may require tuning of keyboard map. The
following keyboards have been tested (some only briefly) and seem to
function correctly:
2
SGI Indigo keyboards (US and several international models)
SGI Indy keyboards (US and several international models)
Kinesis ergonomic keyboard, Model 100, 110, 120 and 130
Comfort Keyboard System
IBM PS/2 Model M (P/N 1391401)
IBM 101 Key Keyboard with Trackpoint II - PS Style (P/N 92G7461)
Microsoft Natural Keyboard
Compaq enhanced II keyboard, domestic/101
Qtronix QX-601R
Some keyboards that are known not to work, or require minor changes:
Lexmark M13 (Select_ease) - Does not always power-on correctly.
See nogfxkbd option in prom(1m).
Data Hand - Newer versions are reported to work, but older
ones do not.
PC Concepts Ergonomic - does not implement scan code set 3.
Electrical Interface
The PC keyboard uses a clocked serial I/O interface. The format used is
one start bit (always false) followed by eight data bits, an odd parity
bit and one stop bit (always true). The true data bits are at least
+2.4V and less than +5.5V, while the false data bits are at least 0V and
less than +0.7V. While inactive, the clock and data lines are held high,
which indicates the keyboard has the right to send data. When the system
wishes to send data to the keyboard it holds the clock low and then
proceeds with its transmission.
Page 1
pckeyboard(7) pckeyboard(7)
The pin assignments for the system keyboard connector are shown in the
following table:
------
/ 5 3 \
| --- 1 |
| --- 2 |
\ 6 4 /
------
Pin Assignments
___________________
Pin | Description
___________________
|
1 Data
|
2 Reserved
|
3 Signal Ground
|
4 Power +5V
|
5 Clock
|
6 | Reserved
Software Interface
System software interfaces to a PC keyboard controller that maintains the
clocked serial protocol with keyboard. SGI uses keyboard scan code set
3, which sends a scan code on key press and a "break" code followed by
repeating the scan code. The system software does all the processing
needed to support functions such as capitalization, control characters,
and numeric lock. Variable speed hardware auto-repeat for a specified
set of characters is supported and is used in standalone mode, while IRIX
manages auto-repeat in software. The default hardware auto-repeat begins
after 500 milliseconds and repeats at a rate of 10.9 characters per
second. There are three lights labeled NUM LOCK, CAPS LOCK, and SCROLL
LOCK that are under software control. The scan codes sent by the
standard 101 key American keyboard are in the following tables. Note
that the legend names prefixed by two asterisks are only found on 102 key
International keyboards.
LEGENDS VS KEYCODES IN HEXADECIMAL
_____________________________________________________
Legend | Code
_____________________________________________________
|
AKEY 1C
|
BKEY 32
|
CKEY 21
|
DKEY 23
|
EKEY 24
|
FKEY 2B
|
GKEY 34
|
HKEY 33
|
IKEY 43
|
JKEY 3B
|
KKEY | 42
Page 2
pckeyboard(7) pckeyboard(7)
LKEY 4B
|
MKEY 3A
|
NKEY 31
|
OKEY 44
|
PKEY 4D
|
QKEY 15
|
RKEY 2D
|
SKEY 1B
|
TKEY 2C
|
UKEY 3C
|
VKEY 2A
|
WKEY 1D
|
XKEY 22
|
YKEY 35
|
ZKEY 1A
|
ZEROKEY 45
|
ONEKEY 16
|
TWOKEY 1E
|
THREEKEY 26
|
FOURKEY 25
|
FIVEKEY 2E
|
SIXKEY 36
|
SEVENKEY 3D
|
EIGHTKEY 3E
|
NINEKEY | 46
LEGENDS VS KEYCODES IN DECIMAL
______________________________________
Legend | Code
______________________________________
|
LEFTCTRL 11
|
CAPSLOCKKEY 14
|
RIGHTSHIFTKEY 59
|
LEFTSHIFTKEY 12
|
ESCKEY 08
|
TABKEY 0D
|
ENTER 5A
|
SPACEKEY 29
|
BACKSPACEKEY 66
|
DELKEY 64
|
SEMICOLONKEY 4C
|
PERIODKEY 49
|
COMMAKEY 41
|
QUOTEKEY" 52
|
ACCENTGRAVEKEY~ 0E
|
MINUSKEY 4E
|
SLASHKEY 4A
|
BACKSLASHKEY 5C
|
EQUALKEY 55
|
LEFTBRACKETKEY 54
|
RIGHTBRACKETKEY | 5B
Page 3
pckeyboard(7) pckeyboard(7)
LEFTARROWKEY 61
|
DOWNARROWKEY 60
|
RIGHTARROWKEY 6A
|
UPARROWKEY 63
|
PAD0 70
|
PAD1 69
|
PAD2 72
|
PAD3 7A
|
PAD4 6B
|
PAD5 73
|
PAD6 74
|
PAD7 6C
|
PAD8 75
|
PAD9 | 7D
LEGENDS VS KEYCODES IN DECIMAL
_________________________________________
Legend | Code
_________________________________________
|
PADPERIOD 71
|
PADMINUS 84
|
PADENTER 79
|
LEFTALT 19
|
RIGHTALT 39
|
RIGHTCTRL 58
|
F1 07
|
F2 0F
|
F3 17
|
F4 1F
|
F5 27
|
F6 2F
|
F7 37
|
F8 3F
|
F9 47
|
F10 4F
|
F11 56
|
F12 5E
|
PRINT.SCREEN 57
|
SCROLL.LOCK 5F
|
PAUSE 62
|
INSERT 67
|
HOME 6E
|
PAGEUP 6F
|
END 65
|
PAGEDOWN 6D
|
NUM.LOCK 76
|
PAD.SLASH 77
|
PAD.ASTER 7E
|
PAD.PLUS 7C
|
**INTL.left 13
|
**INTL.right | 53
Page 4
pckeyboard(7) pckeyboard(7)
|
KEYCODES IN HEXADECIMAL VS LEGENDS
_______________________________________________
Code | Legend
_______________________________________________
|
07 F1
|
08 ESCKEY
|
0D TABKEY
|
0E ACCENTGRAVEKEY
|
0F F2
|
11 LEFTCTRL
|
12 LEFTSHIFTKEY
|
13 **INTL.left
|
14 CAPSLOCKKEY
|
15 QKEY
|
16 ONEKEY
|
17 F3
|
19 LEFTALT
|
1A ZKEY
|
1B SKEY
|
1C AKEY
|
1D WKEY
|
1E TWOKEY
|
1F F4
|
21 CKEY
|
22 XKEY
|
23 DKEY
|
24 EKEY
|
25 FOURKEY
|
26 THREEKEY
|
27 F5
|
29 SPACEKEY
|
2A VKEY
|
2B FKEY
|
2C TKEY
|
2D RKEY
|
2E FIVEKEY
|
2F F6
|
31 NKEY
|
32 BKEY
|
33 | HKEY
KEYCODES IN DECIMAL VS LEGENDS
______________________________________
Code | Legend
______________________________________
|
34 GKEY
|
35 YKEY
|
36 SIXKEY
|
37 F7
|
39 | RIGHTALT
Page 5
pckeyboard(7) pckeyboard(7)
3A MKEY
|
3B JKEY
|
3C UKEY
|
3D SEVENKEY
|
3E EIGHTKEY
|
3F F8
|
41 COMMAKEY
|
42 KKEY
|
43 IKEY
|
44 OKEY
|
45 ZEROKEY
|
46 NINEKEY
|
47 F9
|
49 PERIODKEY
|
4A SLASHKEY
|
4B LKEY
|
4C SEMICOLONKEY
|
4D PKEY
|
4E MINUSKEY
|
4F F10
|
52 QUOTEKEY"
|
53 **INTL.right
|
54 LEFTBRACKETKEY
|
55 EQUALKEY
|
56 F11
|
57 PRINT.SCREEN
|
58 RIGHTCTRL
|
59 RIGHTSHIFTKEY
|
5A ENTER
|
5B RIGHTBRACKETKEY
|
5C | BACKSLASHKEY
KEYCODES IN DECIMAL VS LEGENDS
________________________________________
Code | Legend
________________________________________
|
5E F12
|
5F SCROLL.LOCK
|
60 DOWNARROWKEY
|
61 LEFTARROWKEY
|
62 PAUSE
|
63 UPARROWKEY
|
64 DELKEY
|
65 END
|
66 BACKSPACEKEY
|
67 INSERT
|
69 PAD1
|
6A RIGHTARROWKEY
|
6B PAD4
|
6C PAD7
|
6D | PAGEDOWN
Page 6
pckeyboard(7) pckeyboard(7)
6E HOME
|
6F PAGEUP
|
70 PAD0
|
71 PADPERIOD
|
72 PAD2
|
73 PAD5
|
74 PAD6
|
75 PAD8
|
76 NUM.LOCK
|
77 PAD.SLASH
|
79 PADENTER
|
7A PAD3
|
7C PAD.PLUS
|
7D PAD9
|
7E PAD.ASTER
|
84 | PADMINUS
CONTROL BYTES RECOGNIZED BY KEYBOARD
_______________________________________________________________
Byte | Command | Additional Data
_______________________________________________________________
| |
0xED Set Status Indicators LED bitmask
| |
0xEE Echo
| |
0xEF Invalid Command
| |
0xF0 Select Alternate Scan Codes Scan code set
| |
0xF1 Invalid Command
| |
0xF2 Read ID
| |
0xF3 Set Typematic Rate/Delay Encoded rate/delay
| |
0xF4 Enable
| |
0xF5 Default Disable
| |
0xF6 Set Default
| |
0xF7 Set All Keys - Typematic
| |
0xF8 Set All Keys - Make/Break
| |
0xF8 Set All Keys - Make
| |
0xFA Set All Keys - Typematic/Make/Break Scan code
| |
0xFB Set All Key Type - Typematic Scan code
| |
0xFC Set All Key Type - Make/Break Scan code
| |
0xFD Set All Key Type - Make
| |
0xFE Resend
| |
0xFF | Reset |
CONTROL BYTES SENT BY KEYBOARD
_________________________________________________
DISPLAY DESIGNATION | LABEL
_________________________________________________
|
0x00 Key Detection Error/Overrun
|
0x83 0xAB Keyboard ID
|
0xAA BAT Completion Code
|
0xFC BAT Failure Code
|
0xEE Echo
|
0xF0 Break (key-up)
|
0xFA | Acknowledge (ACK)
Page 7
pckeyboard(7) pckeyboard(7)
0xFE Resend
|
0xFF | Key Detection Error/Overrun
NOTE
Some Silicon Graphics systems use a serial keyboard interface (detailed
in keyboard(7)) that uses a different scan code set. This difference may
break compatibility for some programs that operate with raw scan codes.
SEE ALSO
keyboard(1), xmodmap(1), prom(1m), keyboard(7), pcmouse(7).
Page 8