This chapter describes the codes that the terminal sends to a program. The chapter assumes that you are familiar with the character encoding concepts described in Chapter 2.
Key codes generated in VT52 mode are listed if they differ from those generated in the ANSI-compatible (VT200 and VT100) modes.
The terminal can use 15 different national keyboards. This chapter describes significant differences among the keyboards.
The terminal keyboard (Figure 3-1) consists of a main keypad, an editing keypad, an auxiliary keypad, and the top-row function keys.
The main keypad consists of standard keys (used to generate letters, numbers, and symbols) and function keys (used to generate special function codes).
The standard keys generate alphanumeric characters, either singly or in combination with other keys.
On the North American keyboard, the standard keys show only ASCII characters and generate only ASCII codes. There are no DEC supplemental characters among the standard keys. This is a special case, since most keyboards have some standard keys that generate DEC supplemental characters as well as ASCII characters.
The standard-key patterns vary among keyboards. Some graphic characters (either special symbols or characters with diacritical marks) may or may not be available as standard keys on particular keyboards. However, you can create any DEC multinational graphic character that is not available on a standard key, by typing a valid compose sequence.
Regardless of which keyboard you use and how you create a graphic character, each character is represented by a unique code. The code is based on the character's position in the code table. You can use all GL characters in both 7-bit (VT52 mode, VT100 mode, or 7-bit host line) and 8-bit (VT200 mode, 8-bit host line) environments. You can only use GR characters in an 8-bit environment.
All keyboards (except the North American Keyboard) have one or more standard keys that send different graphic characters (and corresponding codes). The graphic character sent depends on whether you selected "Typewriter Keys" or "Data Processing Keys" in the Keyboard Set-Up screen. (See Figure 3-2 for an example).
All keys affected by "Typewriter Keys" or "Data Processing Keys" have more than two characters shown on their keycaps. The key sends the character on the right side of the keycap when you select "Data Processing Keys", and the character on the left side of the keycap when you select "Typewriter Keys". You can select either shifted (upper) or unshifted (lower) character codes for these keys in the same way as for other nonalphabetic keys.
This section describes the main keypad function keys. The column/row notation used in the descriptions refers to Table 2-1.
Key | Function |
---|---|
<X] | The <X] (Delete) key sends a DEL character (7/15). |
Tab | The Tab key sends an HT character (0/9). |
Return | The Return key sends either a CR character (0/13) or a CR character (0/13) and an LF character (0/10), depending on the set/reset state of line feed/new line mode (LNM). (See Chapter 4). |
Ctrl | The Ctrl key alone does not send a code. It is always used in combination with another key to send a control code. |
Lock | The Lock key alone does not send a code. It is used in combination with the "Caps Lock" and "Shift Lock" field selected in the Keyboard Set-Up screen. Lock sets or clears the "Caps Lock" (or "Shift Lock") state. |
Shift (2 keys) |
The Shift key alone does not send a code. It is used in combination with other standard keys to generate uppercase characters. Shift is also used in combination with nonalphabetic keys to send the top character shown on those keys. |
Space bar | The space bar sends an SP character (2/0). |
Compose Character | The Compose Character key does not send a code. Pressing Compose Character starts a compose sequence, which is used to create characters that cannot be typed directly from the keyboard. |
The editing keypad includes editing keys and cursor control keys. Table 3-1 defines the codes generated by the editing keys, and Table 3-2 defines the codes sent by the cursor control keys.
Code Generated | ||
---|---|---|
Key | VT200 Mode | VT100, VT52 Modes |
FIND | 9/11 3/1 7/14 CSI 1 ~ |
-- |
INSERT HERE | 9/11 3/2 7/14 CSI 2 ~ |
-- |
REMOVE | 9/11 3/3 7/14 CSI 3 ~ |
-- |
SELECT | 9/11 3/4 7/14 CSI 4 ~ |
-- |
PREV SCREEN | 9/11 3/5 7/14 CSI 5 ~ |
-- |
NEXT SCREEN | 9/11 3/6 7/14 CSI 6 ~ |
-- |
In VT100 or VT52 modes the editing keys do not generate codes. |
ANSI Mode* | VT52 Mode* | |||
---|---|---|---|---|
Key | Cursor Key Mode Reset Normal |
Cursor Key Mode Set (Application) |
Normal | Application |
9/11 4/1 CSI A |
8/15 4/1 SS3 A |
1/11 4/1 ESC A |
1/11 4/1 ESC A |
|
9/11 4/2 CSI B |
8/15 4/2 SS3 B |
1/11 4/2 ESC B |
1/11 4/2 ESC B |
|
9/11 4/3 CSI C |
8/15 4/3 SS3 C |
1/11 4/3 ESC C |
1/11 4/3 ESC C |
|
9/11 4/4 CSI D |
8/15 4/4 SS3 D |
1/11 4/4 ESC D |
1/11 4/4 ESC D |
|
* ANSI mode applies to VT200 and VT100 modes. VT52 mode is an ANSI-incompatible mode. |
The characters sent by the auxiliary keypad keys depend on the setting of two features, the operating mode (ANSI or VT52) and the keypad (application or numeric) features. The application keypad feature is usually selected only by the computer, but can be selected in the General Set-Up screen. See Chapter 4 for more information about keypad character selection.
Table 3-3 lists the character codes generated by the auxiliary keypad in ANSI (VT100, VT200) mode and in VT52 mode.
VT100/VT200 ANSI Mode* |
VT52 Mode* | |||
---|---|---|---|---|
Key | Keypad Numeric Mode |
Keypad Application Mode |
Keypad Numeric Mode |
Keypad Application Mode |
0 | 3/0 0 |
8/15 7/0 SS3 p |
3/0 0 |
1/11 3/15 7/0 ESC ? p |
1 | 3/1 1 |
8/15 7/1 SS3 q |
3/1 1 |
1/11 3/15 7/1 ESC ? q |
2 | 3/2 2 |
8/15 7/2 SS3 r |
3/2 2 |
1/11 3/15 7/2 ESC ? r |
3 | 3/3 3 |
8/15 7/3 SS3 s |
3/3 3 |
1/11 3/15 7/3 ESC ? s |
4 | 3/4 4 |
8/15 7/4 SS3 t |
3/4 4 |
1/11 3/15 7/4 ESC ? t |
5 | 3/5 5 |
8/15 7/5 SS3 u |
3/5 5 |
1/11 3/15 7/5 ESC ? u |
6 | 3/6 6 |
8/15 7/6 SS3 v |
3/6 6 |
1/11 3/15 7/6 ESC ? v |
7 | 3/7 7 |
8/15 7/7 SS3 w |
3/7 7 |
1/11 3/15 7/7 ESC ? w |
8 | 3/8 8 |
8/15 7/8 SS3 x |
3/8 8 |
1/11 3/15 7/8 ESC ? x |
9 | 3/9 9 |
8/15 7/9 SS3 y |
3/9 9 |
1/11 3/15 7/9 ESC ? y |
- | 2/13 - (minus) |
8/15 6/13 SS3 m |
2/13 - |
1/11 3/15 6/13† ESC ? m |
, | 2/12 , (comma) |
8/15 6/12 SS3 l |
2/12 , |
1/11 3/15 6/12† ESC ? l |
. | 2/14 . (period) |
8/15 6/14 SS3 n |
2/14 . |
1/11 3/15 6/14 ESC ? n |
Enter‡ | 0/13 CR |
8/15 4/13 SS3 M |
0/13 CR |
1/11 3/15 4/13 ESC ? M |
or | 0/13 0/10 CR LF |
or | 0/13 0/10 CR LF |
|
PF1 | 8/15 5/0 SS3 P |
8/15 5/0 SS3 P |
1/11 5/0 ESC P |
1/11 5/0 ESC P |
PF2 | 8/15 5/1 SS3 Q |
8/15 5/1 SS3 Q |
1/11 5/1 ESC Q |
1/11 5/1 ESC Q |
PF3 | 8/15 5/2 SS3 R |
8/15 5/2 SS3 R |
1/11 5/2 ESC R |
1/11 5/2 ESC R |
PF4 | 8/15 5/3 SS3 S |
8/15 5/3 SS3 S |
1/11 5/3 ESC S |
1/11 5/3‡ ESC S |
* | ANSI mode applies to VT200 and VT100 modes. VT52 mode is an ANSI-incompatible mode. | |||
† | You cannot generate these sequences on a VT52 terminal. | |||
‡ | Keypad Numeric Mode. ENTER generates the same codes as RETURN. You can change the code generated by RETURN with the Linefeed/New Line Mode. When reset, the Linefeed/New Line Mode causes RETURN to generate a single control character (CR). When set, the mode causes RETURN to generate two control characters (CR, LF). |
There are 20 top-row function keys, F1 through F20. The first five keys (F1 through F5) labeled Hold Screen, Print Screen, Set-Up, Data/Talk, and Break, do not send codes; they are local function keys. Keys F6 through F20 send the codes defined in Table 3-4.
Code Generated | |||
---|---|---|---|
Name on Legend Strip | Generic Name | VT200 Mode | VT100, VT52 Modes |
HOLD SCREEN | (F1)* | -- | -- |
PRINT SCREEN | (F2)* | -- | -- |
SET-UP | (F3)* | -- | -- |
DATA/TALK | (F4)* | -- | -- |
BREAK | (F5)* | -- | -- |
F6 | F6 | 9/11 3/1 3/7 7/14 CSI 1 7 ~ |
-- |
F7 | F7 | 9/11 3/1 3/8 7/14 CSI 1 8 ~ |
-- |
F8 | F8 | 9/11 3/1 3/9 7/14 CSI 1 9 ~ |
-- |
F9 | F9 | 9/11 3/2 3/0 7/14 CSI 2 0 ~ |
-- |
F10 | F10 | 9/11 3/2 3/1 7/14 CSI 2 1 ~ |
-- |
F11 (ESC) | F11 | 9/11 3/2 3/3 7/14 CSI 2 3 ~ |
1/11 ESC |
F12 (BS) | F12 | 9/11 3/2 3/4 7/14 CSI 2 4 ~ |
0/8 BS |
F13 (LF) | F13 | 9/11 3/2 3/5 7/14 CSI 2 5 ~ |
0/10 LF |
F14 | F14 | 9/11 3/2 3/6 7/14 CSI 2 6 ~ |
-- |
HELP | (F15) | 9/11 3/2 3/8 7/14 CSI 2 8 ~ |
-- |
DO | (F16) | 9/11 3/2 3/9 7/14 CSI 2 9 ~ |
-- |
F17 | F17 | 9/11 3/3 3/1 7/14 CSI 3 1 ~ |
-- |
F18 | F18 | 9/11 3/3 3/2 7/14 CSI 3 2 ~ |
-- |
F19 | F19 | 9/11 3/3 3/3 7/14 CSI 3 3 ~ |
-- |
F20 | F20 | 9/11 3/3 3/4 7/14 CSI 3 4 ~ |
-- |
* F1 through F5 are local function keys and do not generate codes. |
Table 3-5 lists the keys and key combinations used to send control codes. These keys and combinations are valid on all keyboards. The control codes are C0 7-bit control characters; there is no similar mechanism for sending C1 8-bit control characters.
Control Character Mnemonic | Code | Key Pressed with CTRL (All Modes) | Dedicated Function Key |
---|---|---|---|
NUL | 0/00 | 2, space | |
SOH | 0/01 | A | |
STX | 0/02 | B | |
ETX | 0/03 | C | |
EOT | 0/04 | D | |
ENQ | 0/05 | E | |
ACK | 0/06 | F | |
BEL | 0/07 | G | |
BS | 0/08 | H | F12 (BS)* |
HT | 0/09 | I | TAB |
LF | 0/10 | J | F13 (LF)* |
VT | 0/11 | K | |
FF | 0/12 | L | |
CR | 0/13 | M | RETURN |
SO | 0/14 | N | |
SI | 0/15 | O | |
DLE | 1/00 | P | |
DC1 | 1/01 | Q** | |
DC2 | 1/02 | R | |
DC3 | 1/03 | S** | |
DC4 | 1/04 | T | |
NAK | 1/05 | U | |
SYN | 1/06 | V | |
ETB | 1/07 | W | |
CAN | 1/08 | X | |
EM | 1/09 | Y | |
SUB | 1/10 | Z | |
ESC | 1/11 | 3,[ | F11 (ESC)* |
FS | 1/12 | 4,/ | |
GS | 1/13 | 5,] | |
RS | 1/14 | 6,~ | |
US | 1/15 | 7,? | |
DEL | 7/15 | 8 | DELETE |
* Keys F11, F12, and F13 generate these 7-bit control characters only when the terminal is operated in VT100 mode or VT52 mode. | |||
** These keystrokes are enabled only if XOFF support is disabled. If XOFF support is enabled, then CTRL-S is a "hold screen" local function and CTRL-Q is an "unhold screen" local function. |
You can enable and disable the auto repeat feature from the keyboard, using the Keyboard Set-Up screen or the DECARM escape sequence (Chapter 4). If the terminal receives the DECARM sequence to turn auto repeat off while an auto repeat is in progress, the key stops auto repeating. If the terminal receives the escape sequence to turn auto repeat on while a key that has been auto repeating is still held down, the key immediately auto repeats. Keys which can auto repeat usually start auto repeating after a delay of 0.5 seconds.
The auto repeat speed is a function of the host transmit speed. This gives a constant repeat rate at all transmit speeds. At speeds of 2400 baud or above, all keys auto repeat at 30 keystrokes per second. For the purpose of the auto repeat feature, the keyboard is divided into the following three groups.
Group A Main typing array Group B Cursor keys and keypad keys Group C Top-row function keys and editing keys
Every key in each group auto repeats at the fixed rate set by the transmit speed, regardless of how many codes the key actually sends.
Host Transmit Speed (Baud) | Auto Repeat Rate (Keys/Sec) | ||
---|---|---|---|
Group A | Group B | Group C | |
>=2400 | 30 | 30 | 30 |
1200 | 30 | 30 | 24 |
600 | 30 | 20 | 12 |
300 | 30 | 12 | 12 |
150 | 6 | 6 | 6 |
110 | 6 | 6 | 6 |
75 | 6 | 6 | 6 |
In general, the "Transmit Rate Limit" feature (in the Communications Set-Up screen) does not affect auto repeat rates, since all 5 codes can be sent at the limited speed of 150 characters per second at most baud rates. In local mode, keys will auto repeat at 30 keystrokes per second.
The following keys do not auto repeat: Hold Screen, Print Screen, Set-Up, Data/Talk, Break, Compose Character, Shift, Return, Lock, and Ctrl. Shifted or controlled keys will auto repeat.
The following conditions may cause the keyboard to lock.
When the keyboard is locked, all keyboard keys except Hold Screen, Print Screen, Set-Up, Data/Talk, and Break are disabled, and the keyboard Wait indicator turns on.
If the keyboard is locked, any of the following events can unlock it.