VT Terminal Emulation Software for PC's
By 1990, the terminal server and the VT terminal had made
universal computer access in the office a possibility but
not necessarily a certainty. In the 90's, two events changed
the topology of computing. The cost of providing network connections
to each desk was lowered to the point where it was financially
possible to provide anyone and everyone with a network connection.
The demand for desktop personal computers rose and the prices
dropped causing most VT terminals to be replaced with PC's.
In a sense, nothing had changed; the PC was still just a
computer on the network and it could use the TELNET or SET
HOST applications to establish a connection to any other computer.
But, there was one thing missing and that was an effective
terminal emulator. A Windows PC or Macintosh, in spite of
being more complex and expensive, is not a terminal and can't
do what a terminal does without an extra application called
terminal emulator software. At the beginning of the 90's,
these packages existed but they were woefully inadequate.
Terminal emulator software runs on a PC and creates a window
on the screen which with the PC keyboard is used to emulate
a VT terminal. The terminal emulator sends, receives, translates
and displays serial communications via a COM port or network
packets via network interface card just like a real VT terminal
does. How faithfully it translates the graphics controls or
ESCAPE CHARACTERS to make the text appear as it would on a
real VT terminal is a measure of how well it works. If it
works well then it makes the terminal window on the PC do
everything a VT terminal can do including terminal screen
graphics. It should be able to connect using serial communication
(using COM ports) or using network applications like TELNET
and SET HOST, and protocols like TCPIP, LAT, and DECNET. And
it should allow the user to send the same data as would be
possible using a VT keyboard. If it doesn't then it can be
a real pain for the user!
The function of terminal emulator software can be evaluated
in these categories:
- Screen and communication function. Does the terminal
emulator correctly translate on the screen the graphics
functions of at least a VT220 and does it communicate with
the host as it should?
- Keyboard mapping. Does the terminal emulator map the
VT terminal keys on the PC keyboard in a practical and thorough
manner?
- Utilization of PC graphics. Does the terminal emulator
take advantage of the superior PC graphics to make the PC
based terminal function better than a hardware terminal?
Screen and Communication Function
Instead of controlling the screen with millions of tiny pixels
as a PC graphics card, a terminal screen is controlled using
a more economical approach. To understand how it works, think
of the terminal screen divided up into a grid of character
sized squares each of which can contain one of a list of predefined
characters and shapes. A VT terminal is described as a character
cell terminal meaning, it uses column justified fonts which
fit into the grid squares instead proportional fonts which
space themselves according to their shape. As a first step,
a PC terminal emulator must be able to reproduce these terminal
characters in the correct square or cell on the screen.
The first character cell terminal printed characters on the
display screen as a typewriter would on paper, from the bottom
of the screen. VT terminal controls which have evolved over
decades now allow changes to occur at any location on the
screen and have expanded the graphics capabilities of VT terminals.
OpenVMS editors and applications use all of the graphics enhancements
available on terminals today. If a terminal emulator can't
emulator the VT graphics controls then it will be difficult
or impossible to use with editors and other applications.
Errors in graphics displays might even lead the user to make
serious, data damaging, mistakes.
A notable failure in this area are the terminal emulators
that have been included with MS Windows since version 3.1.
This is almost certainly the most widely distributed terminal
emulator in history. Unfortunately, it only claims to emulate
up to a VT100 and it's not clear that it does that faithfully.
Being an antiquated VT100 emulator makes it extremely difficult
to use with OpenVMS. Don't use this emulator except in an
emergency when you've got nothing else to use. One might wish
that Microsoft had put a little of the effort that they put
into web browsers, into their terminal emulator.
Click here to see a comparison
of both the correct and incorrect handling of screen graphics.
Terminal emulator software should also support the most common
forms of terminal communications, TELNET and serial cable
(via COM ports on a PC.) Some terminal emulators also support
LAT and DECNET transports which is useful but not absolutely
necessary in this era of the Internet.
Keyboard Mapping
Keyboard mapping is the assignment of VT keyboard keys to
the key of a PC keyboard. If a PC keyboard key is pressed
while using a VT terminal emulator then the PC key has to
be translated into a VT key by the terminal emulator. Sounds
easy but this is where most terminal emulators fail in a big
way. To appreciate the problems that keyboard mapping can
cause consider using an OpenVMS editor. To use the editor
hot keys on the keypad you have to remember which edit function
is assigned to which key. Now add the complexity of remembering
the PC key to VT key assignments and what you end up doing
is like translating English to ancient Greek and back to English.
Not an easy thing to do so this key mapping business must
be taken seriously.
Part of the difficulty is historic. PC keyboards on XT PC's
started with only 88 keys. Programmers had to go through some
contortions in order to map all of the 107 keys of a VT220
keyboard on an 88 key XT keyboard. It helped the the PC AT
keyboard which replaced the XT 88 key keyboard had 101 keys.
And since the XT keyboard has disappeared now, it can be completely
ignored.
Unfortunately, the damage was already done as the programmers
who wrote the terminal emulator software had gotten used to
making every VT keystroke into two unrelated PC key strokes.
When the terminal emulators were updated for new PC AT keyboards
there was a tendency for the programmers to want to maintain
consistency with the old versions of the software with the
old mappings based on the PC XT 88 key keyboard. To make matters
worse at least some of the programmers writing terminal emulation
software has only experience using PC's and had never used
a VT terminal enough to understand why the mappings were crucial
to the usefulness of the emulator. For example, if you want
to type a VT F10 on a bad terminal emulator you wouldn't just
press a PC F10, you might have to press two unrelated keys
at once, a PC "ALT" and "F6."
The keyboard mapping problem was overcome in two ways:
- some companies started making their terminal emulators
with more sensible PC to VT key mappings almost matching
the mapping of VT keyboard by itself
- DEC and now Compaq started producing PC compatible keyboards
with 107 keys. The keyboard solution is discussed in the
section on keyboards
The new mapping will be discussed now.
The first most obvious solution to mapping is to always make
the PC keys represent the keys with the same name and/or location
on the VT keyboard. This may seem like a logical thing to
do but for the longest time VT terminal emulators' key mappings
were only discernible by looking at a diagram or key map;
there was no way to guess the mapping.
In a good terminal emulator today you should be a to guess
the mapping of most keys. In cases where the general location
and the name match but for different key locations the name
should take precedence. A good example are the INSERT, DELETE,
PAGE UP, and PAGE DOWN keys located in a group with HOME and
END just left of the keypad. These keys have names similar
to keys on the VT keyboard but have displaced position by
one key. A good terminal emulator will make these keys equivalent
in name if not in location. HOME and END keys which have no
VT key equivalently named, are most often mapped as the two
other VT keys located in the same area, FIND and SELECT. In
the illustration below, predictable key mapping is shown with
color shading. The only key mappings which the user would
have to guess would be the FIND/HOME and a SELECT/END key
pairs. All others could be deduced by their names.
Utilization of PC Graphics and Features
It would be a waste to use a PC, which even for modest models
cost at least three times what a new terminal would cost,
and not gain some advantage from the PC features. At a bare
minimum, a PC terminal emulator package should include a convenient
way to use the clip board to cut and paste text to and from
the screen, to control screen scrolling, color, size, font,
location, etc., to view graphical representations keyboard
mappings and to provide a graphical VT keyboard to press VT
keys missing on the PC keyboard. Below is a graphical keypad
from WRQ Reflections for Web terminal emulator which allows
the user to enter any VT key strokes by clicking on the appropriate
key in the image.
|