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: SGI Indigo2 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. 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 | | | | | | | | | | | | 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 | | | | | | | | | | | | | | | | | | | | | | 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 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 | | | | | | 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 | | | | | | | | | | | | | | | | 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) | | | | | | | | 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