Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

keyboard(1)

xmodmap(1)

prom(1m)

keyboard(7)

pcmouse(7)



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

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026