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
Page 1
keyboard(7) keyboard(7)
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
____|________|__________________
Page 2
keyboard(7) keyboard(7)
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
Page 3
keyboard(7) keyboard(7)
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
Page 4
keyboard(7) keyboard(7)
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
Page 5
keyboard(7) keyboard(7)
!!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
Page 6
keyboard(7) keyboard(7)
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
Page 7
keyboard(7) keyboard(7)
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*
Page 8
keyboard(7) keyboard(7)
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).
Page 9