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 keyboard(1), mouse(7), pckeyboard(7), pcmouse(7).