### First Thoughts about Terminal Emulation

Question from a website visitor:

> I was wondering if you could give me the differences between various terminal emulation such as VT52, VT100, VT220, etc.? I just need basic and very brief info.

Attempt at an Answer:

This question is rather general, so a full answer would be book-length. Here are a few thoughts, and pointers for some things to look at.

An "emulation" of a terminal type is something that acts in the same way a real physical terminal of that type acts. So you need to know about the real physical terminals that were known by those names.

A software implementation of terminal emulation is typically a program that runs on a PC. This program causes the PC to act like some particular type of terminal. When the PC communicates with another computer (the remote host computer), the remote host thinks that it is actually communicating with a terminal of that type. The terminal-emulation program must emulate such things as understanding control-code sequences to position the cursor on the screen and emitting control-code sequences that tell the remote host when some function key has been pressed.

Historically, the yawning chasm between two major varieties of video-display terminal was between terminals that communicate in the ASCII code and terminals that communicate in the EBCDIC code. However, use of the EBCDIC code has been in decline for quite some time, so almost all terminals you are likely to see still around in A.D. 2004 use ASCII. (The IBM 3270 series terminals were the most common EBCDIC type.)

There is another significant divide, among various kinds of video terminals that speak ASCII, between the terminals that use one of many varying proprietary control encodings and the terminals that use control encodings that are subsets of the ANSI X3.64 standard (or the related standards ISO DP6429 or ECMA-48.) The latter are broadly referred to as "ANSI compatible" terminal types.

The VT52 was an early-1970s product of Digital Equipment Corporation (DEC) which employed one of those proprietary control codes. (Other vendors, such as Lear-Siegler, Hazeltine, and Televideo made proprietary-code ASCII terminals, but these were different and were not generally compatible with the VT52.)

The ANSI X3.64 standard was written by the X3L2 Technical Committee on Codes and Character Sets and was finished in about 1979, and some people (at the time) thought it was so complicated nobody would ever use it, but the Heath/Zenith company made a product that used it and showed that implementing (at least a subset of) X3.64 was possible. (Some of the more complicated parts of X3.64 have always been ignored, though.)

The VT100 was the first product of DEC built to understand a set of control codes compatible with ANSI X3.64. The VT100 became a very popular product, and many other companies essentially copied it, such that many terminal products on the market were not merely "ANSI compatible" but were more specifically "VT100 compatible", copying the layout of the keyboard, etc. (Yet the VT100 had in it a feature to help people who had started out with VT52s: the VT100 could be set to act as though it were a VT52, in an emulation mode.)

> (One confusion that sometimes arises: some vendors (such as SCO) defined other so-called "ANSI" terminal types for their operating-system console drivers; these virtual devices are close to, but are not completely compatible with, a VT100 type. Other such types include QANSI, AT386, ANSI-BBS, and ANSI.SYS. Linux-console is another.. Microsoft confuses the issue by seeming to offer separate "VT100" and "ANSI" emulations in its Windows Telnet program. However, the two settings behave identically, and both are closer to ANSI-BBS than to VT100.)

DEC kept coming up with better (or at least different) ideas on how to make video terminals, so new DEC models were announced in subsequent years...the VT220, VT240, VT320, VT340, VT420, VT520, etc. But while each new model incorporated new features, it could do all of the functions of the old VT100: that is, each new model was said to be "backward compatible" with previous models. Corresponding terminal emulations have been developed for most of the newer DEC models, but the VT100 remained the lowest common denominator of compatibility.

A PostScript file kept on my website contains a long list of precisely which DEC terminal models contained which features. (PostScript files can be read using GhostScript, if you have no other way. But most high-end laser printers can directly print PostScript.)

Specific information on DEC terminals is available on my DEC page or from VT100.net.

Or return to the emulation page.