This chapter describes the ASCII emulations and control functions.
11.1 Overview
The VT510 video terminal includes emulations for several popular ASCII video terminals. ASCII terminals represent the other major class of serial asynchronous video terminals in widespread use today. Like the VT100, these terminals communicate with a host computer by transmitting and receiving a data stream of 7-bit or 8-bit coded characters. To communicate successfully, the computer and the terminal use a convention for interpreting this data stream. This convention specifies how to recognize characters in the data stream as well as how to recognize control information, such as formatting or editing commands. ASCII terminals support the ASCII character set, American Standard Code for Information Interchange, ANSI X3.4; however, they do not follow other ANSI standards that define controls for use with the ASCII character set. The original ASCII terminal protocol pre-dates the ANSI standards. These early protocols have since been widely copied and extended to form the ASCII terminal market.
11.2 ASCII Emulations
The VT510 includes a protocol emulation for the WYSE 160 Native mode, WYSE 60 Native mode, and many of its popular emulations of other ASCII terminals:
- WYSE 160/60 Native mode
- WYSE 160/60 PCTerm
- WYSE 50+
- WYSE 150/120
- Televideo 950
- Televideo 925
- Televideo 910+
- ADDS A2
Emulation means that virtually all host application programs designed for these terminals will function correctly.
Note that the VT510 video terminal cannot be identical to all of these terminals simultaneously, and the VT510 includes enhancements in its user interface and character handling ability. The VT510 can handle additional languages and keyboards that extend beyond the original terminals being emulated.
The VT510 does not emulate the graphics modes of the WYSE 160, such as the TEK 4010/4014 personality.
11.2.1 Enhanced Mode
WYSE 160 Native mode includes function sequences for almost all features supported by the WYSE 160 terminal, including those supported by individual sub-emulations, such as Televideo or ADDS. When one of these sub-emulations is selected, WYSE Enhanced mode (EnH) allows WYSE Native mode sequences to be used from within a sub-emulation to access features that are not normally supported by the physical terminal being emulated. This capability allows existing applications, for one of these emulated terminals, to be enhanced to take advantage of WYSE Native mode features. This enhanced mode does not apply to the VT or ANSI modes, which follow the corresponding ANSI standards.
11.3 Coding Notation
Since ASCII control functions do not follow a structured syntax, the notation used to describe function sequences and parameters is important to avoid confusion. Escape sequences are shown with a space between each character to make them easier to read. These spaces are not part of the Escape sequence.
Words in all caps: Strings of two or more capital letters, such as ESC or SPACE, are used as symbols, usually to represent a single character within an Escape sequence.
Words in italics: Words or abbreviations of two or more characters in italics represent sequence parameters that are described subsequently.
Single characters: Single characters, such as "E" or "8", represent the corresponding ASCII character in the sequence.
Regular text (upper- and lowercase): Regular text is sometimes used to describe sequences that are similar or related to other sequences.
Table 11–1 lists the symbols used in the ASCII control functions.
Symbol | Meaning | Symbol | Meaning |
---|---|---|---|
Ctrl- | Ctrl immediately followed by a single character represents a control character in the range of 0/0 to 1/15. | EnH | Enhance Mode: This is the same as the WYSE native code when Enhance Mode is on. |
Same | Same as the WYSE native code (code is native to this emulation). | Wyse | Same as the WYSE native code (code is not native to this emulation, but is a WYSE enhancement). |
n/a | Not available in this emulation. | ||
Symbol | Code | Symbol | Code |
NUL | 0/0 | DLE | 1/0 |
SOH | 0/1 | DC1 (XON) |
1/1 |
STX | 0/2 | DC2 | 1/2 |
ETX | 0/3 | DC3 (XOFF) |
1/3 |
EOT | 0/4 | DC4 | 1/4 |
ENQ | 0/5 | NAK | 1/5 |
ACK | 0/6 | SYN | 1/6 |
BEL | 0/7 | ETB | 1/7 |
BS | 0/8 | CAN | 1/8 |
HT | 0/9 | EM | 1/9 |
LF | 0/10 | SUB | 1/10 |
VT | 0/11 | ESC | 1/11 |
FF | 0/12 | FS | 1/12 |
CR | 0/13 | GS | 1/13 |
SO | 0/14 | RS | 1/14 |
SI | 0/15 | US | 1/15 |
SPACE | 4/0 |
11.3.1 Communication Flow Control with PCTerm Mode
XON/XOFF transmit flow control is disabled while in PCTerm mode. This means XON and XOFF characters received from the host are ignored or displayed as characters from a PC character set. In PCTerm mode, the keyboard generates scan codes. There are no multi-character reports (escape sequences or paste data) sent from the terminal. The terminal can still send XPC as receive flow control.
When switching out of PCTerm mode, the XON/XOFF state of the communications link is unknown. If XON/XOFF flow control is enabled, then the terminal shall transmit a single XON and clear the XOFF received state.
11.3.2 Protecting Data
Turning on Write-Protect mode does not start protecting the data. It only defines the range of data that needs to be protected. Not until Protect mode is turned on does the data become protected. Changing emulation does not change the Write-Protect mode. Characters range from 1/0 to 1/15, and embedded attributes are automatically write-protected even when Write-Protect mode is off.
To protect a certain area of data in the screen, users should:
- Turn on Write-Protect mode.
- Turn off Write-Protect mode, if the protected area has been defined.
- Turn on Protect mode.
Protect Mode On: The protect condition usually is valid for the current page only. The exception is when Autopage mode is on, if a cursor movement command causes the cursor to move from one protected page to an unprotected page, the unprotected page becomes protected. If a cursor movement command causes the cursor to move from an unprotected page to a protected page, then the protected page becomes unprotected. Table 11–2 lists these commands.
Command | Sequence |
---|---|
Cursor left (backspace) | Ctrl/H |
Cursor left (delete) | DEL |
Cursor right | Ctrl/L |
Cursor up; Scroll | ESC j |
Cursor down; Scroll (linefeed) | Ctrl/J |
Cursor to start of next line | Ctrl/_ |
Tabulate cursor | ESC i or Ctrl/I |
Backtab | ESC I |
- Turning on Protect mode enables Line Edit mode. The terminal ignores the command to enable Page Edit mode. Editing command activities are limited to the unprotected data. Any protected line can neither be inserted nor be deleted.
- No cursor movement commands can cause data, protected or unprotected, to scroll off the page.
- The tabulation cursor becomes the field tab.
- Changing emulation turns off Protect mode, except when changing the terminal to a TVI emulation; in which case, the Protect mode does not change.
Some cursor commands can move the cursor into the protected area, some cannot.
>Table 11–3 lists the commands that can move the cursor to the protected area. Even if the cursor can be moved into the protected area by executing these commands, no data can be written into the area. The cursor jumps to the first unprotected position when data started writing into the screen.
Table 11–4 lists the commands that cannot move the cursor to the protected area. Any attempt to move the cursor to the protected area by executing these commands, moves the cursor up, down, left, or right into the first unprotected position.
Move Cursor . . . | Sequence |
---|---|
Up; scroll (reverse linefeed) | ESC j |
Down; no scroll | Ctrl/V |
To specific line | ESC [ line |
To a specific column | ESC _ column |
In current page | ESC = line col |
To a specific page | ESC h page |
In specific 80-column page | ESC w @ page line col |
In specific 80-column window | ESC - wnd/page line col |
In 80/132-column current page | ESC a ll R ccc C |
Move Cursor . . . | Sequence |
---|---|
Left (backspace) | Ctrl/H † |
Left (delete) | DEL |
Right | Ctrl/L |
Up; No scroll | Ctrl/K †‡ |
Down; Scroll (linefeed) | Ctrl/J |
To start of line | Ctrl/M |
To start of next line | Ctrl/_ |
Home | ESC { or Ctrl/^ |
†The cursor can be moved to a protected field under certain conditions. Refer to the specific cursor command section for details. ‡Cursor can be moved to a protected field for TVI personalities. |