keyboard(7) keyboard(7) NAME keyboard - keyboard specifications DESCRIPTION The keyboard used on the 4D series, Indigo, Crimson and Onyx systems is an up-down encoded 101-key keyboard. The keyboard connects to the main electronics cabinet through a shielded partially coiled cord and is detachable at the system cabinet only. The mouse plugs into either side of the keyboard. Ports are provided on both sides of the enclosure to allow access to left-handed and right-handed mouse connectors. The keyboard cord contains low voltage direct current power feeds and two serial links; one for the mouse and one for the keyboard. The keyboard serial link is bidirectional, allowing for control of indicator lights and other keyboard functions. Each time a key is pressed or released, a code is sent via the keyboard serial link. Every key has a different upcode and downcode. All keys function the same way, allowing the system software to use keys in any manner. Auto- repeat is the only function that treats keys differently. When auto- repeat is enabled, a subset of the keys repeat when held down. Multiple key presses/releases result in all key transitions being reported. Electrical Interface The keyboard serial I/O interface uses RS423 levels and communicates asynchronously to the system at 600 baud. The format used is one start bit followed by eight data bits, an odd parity bit and one stop bit, with one byte sent per key up or down transition. The idle state and true data bits for the interface are Mark level or -5V, whereas false data bits and the start bit are spaces or +5V. The pin assignments for the keyboard connector on machines with DB-15 connectors are shown in the following table: KEYBOARD CONNECTOR PINOUT ________________________________ Pin Signal Description ________________________________ 1 GND Ground 2 GND Ground 3 GND Ground 4 KTXD Keyboard Transmit 5 KRCD Keyboard Receive 7 +12Vdc Power 8 +12Vdc Power 9 +12Vdc Power 10 MTXD Mouse Transmit 11 NC Reserved 12 NC Reserved 15 -12Vdc Power | | | | | | | | | | | | | | | | | | | | | | | | | | The pin assignments for the DB-9 keyboard connector on the Personal IRIS 4D/20 and 4D/25 machines are shown in the following table for both the CPU connector and the connectors on the keyboard itself. The connectors on each side of the keyboard are identical, so the mouse can be attached on either side. KEYBOARD CABLE PINOUT ____________________________________________________ Pin CPU Signal Keyboard Signal Description ____________________________________________________ 1 NC +5Vdc Power 2 KRCD KTXD Keyboard to CPU 3 NC -5Vdc Power 4 -12Vdc -12Vdc Power 5 MRCD MTXD Mouse to CPU 6 GND GND Ground 7 +12Vdc +12Vdc Power 8 KTXD KRCD CPU to Keyboard 9 GND GND Ground | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The pin assignments for the DIN-6 keyboard connector on the CPU board of some of the newer systems are shown in the following table: KEYBOARD CABLE PINOUT ________________________________ Pin Signal Description ________________________________ 1 KRCD Keyboard Receive 2 MRCD Mouse Receive 3 GND Ground 4 +8Vdc Power 5 KTXD Keyboard Transmit 6 -8Vdc Power | | | | | | | | | | | | | | The pin assignments for the mouse port connector (on the keyboard, not on the CPU) for keyboards with DB9 connector are shown in the following table; either connector on the keyboard can be used for the mouse or for the keyboard cable. MOUSE PORT ____________________________ Pin Signal Description ____________________________ 1 +5V Power 3 -5V Power 5 MTXD Transmit Data 9 GND Ground | | | | | | | | | | For machines whose keyboards have the DIN-6 connector on the keyboard, as well as on the CPU, the pinout is shown in the following table. The connectors on both sides of the keyboard have identical pinout, either can be used for the mouse and the cable to the CPU. KEYBOARD CONNECTOR PINOUT ________________________________ Pin Signal Description ________________________________ | | | | 1 KTXD Keyboard Transmit 2 MTXD Mouse Transmit 3 GND Ground 4 +8Vdc Power 5 KRCD Keyboard Receive 6 NC Not Connected | | | | | | | | | | Software Interface The interface between the keyboard and the system is 600 baud asynchronous. The format used is one start bit followed by eight data bits, an odd parity bit and one stop bit, with one byte sent per key up or down transition. The MSB of the byte is a 0 for a downstroke and a 1 for an upstroke. Control bytes are sent to the keyboard with the same speed and format. The system software does all the processing needed to support functions such as capitalization, control characters, and numeric lock. Auto-repeat for a specified set of characters can be turned on or off by the system software by sending a control byte to the keyboard. When auto-repeat is enabled, a pressed key begins auto-repeating after 0.65 seconds and repeats 28 times per second. The keyboard initializes upon power-up. The configuration request control byte causes the keyboard to send a two-byte sequence to the system. The second byte contains the eight-bit value set on a DIP switch in the keyboard. All keyboard lights (if any; some newer systems have keyboards without user controllable lights) are controlled by the system software by sending control bytes to the keyboard to turn them on or off. Control bytes are also used for long and short beep control and key click disable. When key click is enabled, the keys click when they are pressed. The long beep duration is 1 second and the short beep duration is 0.2 second. There are three lights labeled NUM LOCK, CAPS LOCK, and SCROLL LOCK that are under software control. On older keyboards there are also four general-purpose keyboard lights labeled L1 through L4. The required keycode mappings and control byte formats are shown in the following tables. Note that the legend names prefixed by two asterisks are reserved and not implemented on the keyboard. Legend names prefixed by two exclamation marks do NOT have the auto-repeat enable capability. Legend names prefixed by two dollar signs do NOT have the key click enable capability. LEGENDS VS KEYCODES IN DECIMAL _____________________________________________ Legend Code _____________________________________________ AKEY 10 BKEY 35 CKEY 27 DKEY 17 EKEY 16 FKEY 18 GKEY 25 HKEY 26 IKEY 39 | | | | | | | | | | JKEY 33 KKEY 34 LKEY 41 MKEY 43 NKEY 36 OKEY 40 PKEY 47 QKEY 9 RKEY 23 SKEY 11 TKEY 24 UKEY 32 VKEY 28 WKEY 15 XKEY 20 YKEY 31 ZKEY 19 ZEROKEY 45 ONEKEY 7 TWOKEY 13 THREEKEY 14 FOURKEY 21 FIVEKEY 22 SIXKEY 29 SEVENKEY 30 EIGHTKEY 37 NINEKEY 38 | | | | | | | | | | | | | | | | | | | | | | | | | | LEGENDS VS KEYCODES IN DECIMAL ____________________________________ Legend Code ____________________________________ **!!BREAKKEY 0 **!!SETUPKEY 1 $$!!LEFTCTRL 2 $$!!CAPSLOCKKEY 3 $$!!RIGHTSHIFTKEY 4 $$!!LEFTSHIFTKEY 5 **!!NOSCRLKEY 12 !!ESCKEY 6 !!TABKEY 8 RETURN.ENTER 50 SPACEKEY 82 **LINEFEEDKEY 59 BACKSPACEKEY 60 DELKEY 61 SEMICOLONKEY 42 PERIODKEY 51 COMMAKEY 44 QUOTEKEY" 49 ACCENTGRAVEKEY~ 54 | | | | | | | | | | | | | | | | | | | | MINUSKEY 46 VIRGULEKEY? 52 BACKSLASHKEY 56 EQUALKEY 53 LEFTBRACKETKEY 48 RIGHTBRACKETKEY 55 LEFTARROWKEY 72 DOWNARROWKEY 73 RIGHTARROWKEY 79 UPARROWKEY 80 PAD0 58 PAD1 57 PAD2 63 PAD3 64 PAD4 62 PAD5 68 PAD6 69 | | | | | | | | | | | | | | | | LEGENDS VS KEYCODES IN DECIMAL ______________________________________ Legend Code ______________________________________ PAD7 66 PAD8 67 PAD9 74 **PADPF1 71 **PADPF2 70 **PADPF3 78 **PADPF4 77 PADPERIOD 65 PADMINUS 75 **PADCOMMA 76 !!PADENTER 81 $$!!LEFTALT 83 $$!!RIGHTALT 84 $$!!RIGHTCTRL 85 F1 86 F2 87 F3 88 F4 89 F5 90 F6 91 F7 92 F8 93 F9 94 F10 95 F11 96 F12 97 !!PRINT.SCREEN 98 $$!!SCROLL.LOCK 99 !!PAUSE 100 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | !!INSERT 101 !!HOME 102 !!PAGEUP 103 !!END 104 !!PAGEDOWN 105 $$!!NUM.LOCK 106 PAD.BKSLASH/ 107 | | | | | | LEGENDS VS KEYCODES IN DECIMAL ____________________________________ Legend Code ____________________________________ PAD.ASTER* 108 PAD.PLUS+ 109 config byte(1st of 2 bytes) 110 config byte(2nd of 2 bytes) DIP SW GERlessThan 111 spare1 112 spare2 113 spare3 114 spare4 115 spare6 117 spare7 118 spare8 119 spare9 120 spare10 121 | | | | | | | | | | | | | | | KEYCODES IN DECIMAL VS LEGENDS ____________________________________ Code Legend ____________________________________ 0 **BREAKKEY 1 **!!SETUPKEY 2 $$!!LEFTCTRL 3 $$!!CAPSLOCKKEY 4 $$!!RIGHTSHIFTKEY 5 $$!!LEFTSHIFTKEY 6 !!ESCKEY 7 ONEKEY 8 !!TABKEY 9 QKEY 10 AKEY 11 SKEY 12 **!!NOSCRLKEY 13 TWOKEY 14 THREEKEY 15 WKEY 16 EKEY 17 DKEY 18 FKEY 19 ZKEY 20 XKEY | | | | | | | | | | | | | | | | | | | | | | 21 FOURKEY 22 FIVEKEY 23 RKEY 24 TKEY 25 GKEY 26 HKEY 27 CKEY 28 VKEY 29 SIXKEY 30 SEVENKEY 31 YKEY 32 UKEY 33 JKEY 34 KKEY 35 BKEY | | | | | | | | | | | | | | KEYCODES IN DECIMAL VS LEGENDS ______________________________________ Code Legend ______________________________________ 36 NKEY 37 EIGHTKEY 38 NINEKEY 39 IKEY 40 OKEY 41 LKEY 42 SEMICOLONKEY 43 MKEY 44 COMMAKEY 45 ZEROKEY 46 MINUSKEY 47 PKEY 48 LEFTBRACKET 49 QUOTEKEY 50 RETURN.ENTER 51 PERIODKEY 52 VIRGULEKEY 53 EQUALKEY 54 ACCENTGRAVEKEY 55 RIGHTBRACKETKEY 56 BACKSLASHKEY 57 PADONEKEY 58 PADZEROKEY 59 **LINEFEEDKEY 60 BACKSPACEKEY 61 DELETEKEY 62 PADFOURKEY 63 PADTWOKEY 64 PADTHREEKEY 65 PADPERIODKEY 66 PADSEVENKEY | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 67 PADEIGHTKEY 68 PADFIVEKEY 69 PADSIXKEY 70 **PADPF2KEY 71 **PADPF1KEY | | | | KEYCODES IN DECIMAL VS LEGENDS ______________________________________ Code Legend ______________________________________ 72 LEFTARROWKEY 73 DOWNARROWKEY 74 PADNINEKEY 75 PADMINUSKEY 76 **PADCOMMAKEY 77 **PADPF4KEY 78 **PADPF3KEY 79 RIGHTARROWKEY 80 UPARROWKEY 81 !!PADENTERKEY 82 SPACEKEY 83 $$!!LEFTALT 84 $$!!RIGHTALT 85 $$!!RIGHTCTRL 86 F1 87 F2 88 F3 89 F4 90 F5 91 F6 92 F7 93 F8 94 F9 95 F10 96 F11 97 F12 98 !!PRINT.SCREEN 99 $$!!SCROLL.LOCK 100 !!PAUSE 101 !!INSERT 102 !!HOME 103 !!PAGEUP 104 !!END 105 !!PAGEDOWN 106 $$!!NUM.LOCK 107 PAD.BKSLASH/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | KEYCODES IN DECIMAL VS LEGENDS ____________________________________ Code Legend ____________________________________ 108 PAD.ASTER* | | 109 PAD.PLUS+ 110 config byte(1st of 2 bytes) DIP SW config byte(2nd of 2 bytes) | | CONTROL BYTES RECOGNIZED BY KEYBOARD _________________________________________________________ BIT DESCRIPTION TRUE BIT 0 = 0 BIT 0 = 1 _________________________________________________________ 1 short beep complement ds1 and ds2 2 long beep ds3 3 click disable ds4 4 return configuration byte ds5 5 ds1 ds6 6 ds2 ds7 7 enable auto-repeat not used | | | | | | | | | | | | | | | | | DISPLAY LABELS _________________________________ DISPLAY DESIGNATION LABEL _________________________________ ds1 NUM LOCK ds2 CAPS LOCK ds3 SCROLL LOCK ds4 L1 ds5 L2 ds6 L3 ds7 L4 | | | | | | | | NOTE Indy, Indigo2, O2, OCTANE and Onyx2 use a PS/2 style keyboard (detailed in pckeyboard(7)) that uses a different scan code set. This difference may break compatibility for some programs that operate with raw scan codes. SEE ALSO Page 9