VT52
| Industry | Computer terminals |
|---|---|
| Founded | 1957 |
| Headquarters | Maynard , United States |
| Products | VT50, VT50H, VT52, VT55, VT61, VT62, VT78 computer terminals |
The VT50 is a CRT-based computer terminal launched by Digital Equipment Corporation (DEC) in July 1974. It offered an uppercase-only text display of 12 rows by 80 columns, featuring an enhanced set of control characters and unidirectional scrolling, building upon the earlier VT05 model. Although DEC documentation labeled these devices as DECscope, this term was seldom used.
In September 1975, the VT50 was succeeded by the VT52, which provided a 24-row by 80-column screen, supported all 95 ASCII characters plus an additional 32 graphic symbols, allowed scrolling in both directions, and expanded the control character repertoire. Multiple upgraded versions of the VT52 were released by DEC, incorporating extra hardware tailored for specific uses.
Following the VT52 series, DEC introduced the more sophisticated VT100 terminal in 1978.
Description
These terminals accommodated asynchronous communication at baud rates reaching up to 9600 bits per second without the necessity for fill characters. Consistent with other early DEC terminals, they featured both an RS-232 interface and a 20mA current loop, a serial communication standard optimized for long-distance transmission over twisted-pair cables. Display hardware processed buffered data at intervals, while keystrokes were stored and transmitted immediately via the serial connection.
A basic CPU constructed from small-scale-integration integrated circuits managed command interpretation. It handled data processing during idle display intervals and synchronized with the display hardware to render output. Given its limited arithmetic functions, precise timing was essential to maintain accurate text placement on the screen.
Keystrokes produced a characteristic relay sound that also functioned as an audible alert for the bell character.
DEC provided an optional electrolytic hard-copy unit that could be installed in the terminal’s right panel. This printer duplicated screen content line-by-line onto specialized damp paper through electroplating. Although innovative, the printed output resembled wet tissue paper. Digital held a patent for utilizing a single character generator to serve both screen and printer font requirements.
The terminal’s layout—with the screen and keyboard positioned on the left and an expansion panel on the right—enabled easy addition of peripherals such as the printer. Its sizable enclosure eliminated the need for cooling fans; instead, convection cooling maintained appropriate temperatures for the processor, memory, power supply, and monitor components. The broad top surface often accommodated documentation but could obstruct ventilation openings, potentially causing overheating issues.
VT50
The VT50 marked Digital’s initial terminal in this cabinet style, presenting 12 text lines with blank spaces filling vertical gaps. Similar to its predecessor, the VT05, it did not support lowercase characters—a feature seldom required by users at that time.
VT50H
The VT50H variant incorporated an additional keyboard on the right side, configured like a numeric keypad with extra control keys positioned above it. Four keys functioned as cursor keys sending codes from through to control movement directions. Three further keys were programmable, defaulting to codes ranging from through .
VT52
Succeeding the VT50, the VT52 incorporated larger buffers that accommodated a full 24 lines of text and enabled limited scrolling without requiring retransmission from the host. It introduced support for lowercase letters along with several other improvements:
- Inclusion of characters such as , , and accessed through shifted key inputs.
- An Alternate-Keypad Mode that differentiated numeric keypad entries by generating multi-character codes.
- Enhanced cursor control sequences that allowed host-driven full-screen editing and WYSIWYG display capabilities.
- A "graphics character set" featuring uncommon symbols and inline fractions like .
A notable advancement was the addition of a distinct function keypad incorporating the "Gold Key", which editing software such as WPS-8, KED, and EDT utilized. Combining the Gold Key with another key sent specific command sequences to the host system.
VT55
The VT55 included an auxiliary graphics subsystem capable of simultaneously rendering two mathematical functions or histograms. Triggered by a command string, it entered graphics mode, managing its own dedicated buffer and CPU resources. This design permitted the concurrent display of graphics and text on a single screen—unlike devices like the Tektronix 4010 or plotters, which produced text slowly through graphical commands. This "waveform graphics" technology was later integrated into the VT105.
Block mode versions
The VT61 and VT62 were block-mode terminals tailored for transaction processing environments. The VT62 was specifically compatible with TRAX, a transaction processing operating system running on high-end PDP-11 hardware. Both models shared an identical cabinet design but featured an advanced custom processor. Application-specific functionality was implemented via separate PROM, employing a unique instruction set to facilitate rapid development of variants targeting different Digital market segments. These terminals emitted a synthesized "tock" sound to provide keypress feedback; despite identical keyboards, users favored the VT6x series for its superior tactile response.
VT78
Building on the expansive internal space of the VT50 and advances in electronic components, DEC developed the VT78, an all-in-one terminal integrating a single-chip PDP-8 processor. It operated a variant of Digital's OS/8 operating system and typically came preloaded with WPS-8, Digital’s word processing application, effectively functioning as a hybrid minicomputer/terminal suited for business use.
Escape sequences
Although VT52 control codes were proprietary to DEC, numerous manufacturers provided emulation options. Subsequent VT models supported subsets of these commands. Notably, the GEMDOS and TOS operating systems on the Atari ST employed VT52-based screen drivers despite widespread adoption of ANSI escape codes, extending functionality with features like color selection.
Standard commands
VT52 command sequences generally began with an escape character followed by a single letter, except for the Y command which required two numeric parameters.
| Code | Name | Description | Supported on |
|---|---|---|---|
| Template:Keypress | Cursor up | Moves cursor one line upward; does not scroll if at top line. | All |
| Template:Keypress | Cursor down | Moves cursor down by one line. | VT50H and VT52 |
| Template:Keypress | Cursor right | Advances cursor one column to the right. | All |
| Template:Keypress | Cursor left | Moves cursor one column left; equivalent to Template:Key. | VT50H and VT52 |
| Template:Keypress | Enter graphics mode | Activates special graphics character set. | VT52 |
| Template:Keypress | Exit graphics mode | Returns to standard US/UK character set. | VT52 |
| Template:Keypress | Cursor home | Positions cursor at upper-left corner. | All |
| Template:Keypress | Reverse line feed | Moves cursor up; scrolls content down if at top line. | VT52 |
| Template:Keypress | Clear to end of screen | Erases screen content from cursor onward. | All |
| Template:Keypress | Clear to end of line | Clears characters from cursor position to end of line. | All |
| Template:Keypress | Set cursor position | Moves cursor to coordinates c,r encoded as characters. Backward compatibility via "SO" command supported by VT50H but not by VT52. |
VT50H and VT52 |
| Code | Name | Description | Supported on |
|---|
| Code | Name | Description | Supported on | Template:Keypress | Identify terminal | Reports terminal type. | All | |
|---|---|---|---|---|---|---|---|---|
| Template:Keypress | Enter hold-screen mode | Pauses scrolling; sends <syntaxhighlight lang="text" class="" style="" inline="1"> XOFF </syntaxhighlight> when buffer is full until user resumes with Template:Key key (<syntaxhighlight lang="text" class="" style="" inline="1"> XON </syntaxhighlight>). | All | |||||
| Template:Keypress | Exit hold-screen mode | Resumes scrolling; sends <syntaxhighlight lang="text" class="" style="" inline="1"> XON </syntaxhighlight> if necessary. | All | |||||
| Template:Keypress | Enter alternate-keypad mode | Modifies keypad character codes. | VT52 | |||||
| Template:Keypress | Exit alternate-keypad mode | Restores original keypad character codes. | VT52 |
Cursor placement
Cursor positioning on the screen was controlled by two parameters representing the row and column, with coordinates starting at 1,1 in the upper-left corner. These parameters were transmitted as ASCII characters after adding 31 to shift them into the printable character range. For instance, to place the cursor at column 30, line 20, 31 was added to each value (resulting in 61 and 51), forming the command (note that the order is row followed by column).
Terminal identification codes
The command allowed the host system to recognize terminal features, providing eight distinct responses depending on the model and whether a printer was attached:
| Model | Without printer | With printer |
|---|---|---|
| VT50 | Template:Keypress | (not supported) |
| VT50H | Template:Keypress | Template:Keypress |
| VT52 | Template:Keypress | Template:Keypress |
| VT55 | Template:Keypress | Template:Keypress |
Copier control codes
An optional copier feature was controlled through additional codes:
| Code | Function | Description | Supported on |
|---|---|---|---|
| Template:Keypress | Copy screen | Prints the current screen display. | All models |
| Template:Keypress | Activate auto-copy mode | Automatically prints all following lines. | All models |
| Template:Keypress | Deactivate auto-copy mode | Stops ongoing printing process. | All models |
Graphics character set
Both the VT52 and VT55 terminals offered ASCII alongside a "graphics mode" character set that replaced lowercase letters and certain punctuation marks with symbols suited for mathematical notation. This included fraction glyphs such as ¹⁄, ³⁄, ⁵⁄, and ⁷⁄ which could be combined with subscripts to depict values like ⅗. The scan line resolution in graphics mode allowed plotting with vertical precision eight times greater than standard text.
... [table content preserved as is] ...VT52 mode compatibility
Subsequent VT terminal models maintained support for VT52 commands and introduced a command to toggle full ANSI compatibility.
| Code | Command | Description |
|---|---|---|
| Template:Keypress | setansi | Switches ANSI mode on or off |
Activating compatibility mode modified the response to the command; all terminals replied with .
GEMDOS/TOS enhancements
The GEMDOS implementation of the VT52 command set incorporated several new instructions primarily focused on color manipulation. It utilized a single character code for selecting colors, supporting 16 colors overall—4 in 80-column mode and 16 in 40-column mode on Atari ST systems. Additional cursor control commands extended the original VT52 feature set by allowing screen clearing up to the top of the display. However, certain original VT52 commands such as F, G, and Z were not supported.
| Code | Command | Description |
|---|---|---|
| Template:Keypress | Clear screen | Erases entire screen and returns cursor to home position (similar effect to Template:Keypress followed by Template:Keypress) |
| Template:Keypress | Foreground color | Sets text foreground color to specified value |
| Template:Keypress | Background color | Sets background color accordingly |
| Template:Keypress | Clear to top of screen | Clears from current cursor position up to top-left corner |
| Template:Keypress | Enable cursor | Makes cursor visible on screen |
| Template:Keypress | Disable cursor | Hides cursor from view |
| Template:Keypress | Save cursor position | Stores current cursor location (supported from TOS version 1.02 onwards) |
| Template:Keypress | Restore cursor position | Returns cursor to previously saved location |
| Template:Keypress | Clear entire line | Deletes all characters on current line and moves cursor to line start |
| Template:Keypress | Clear from line start to cursor | Erases characters from beginning of line up to current cursor position |
| Template:Keypress | Reverse video mode | Activates inverse video text display |
| Template:Keypress | Normal video mode | Deactivates inverse video display |
| Template:Keypress | Enable wrap-around | Turns on line wrapping, eliminating need for carriage return/line feed at line ends |
| Template:Keypress |
Disable wrap-around |
Turns off line wrapping |