373 lines
19 KiB
HTML
373 lines
19 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
|
|
<HTML>
|
|
<HEAD>
|
|
<META NAME="GENERATOR" CONTENT="LinuxDoc-Tools 0.9.21">
|
|
<TITLE> Text-Terminal-HOWTO: Special Features/Types of Some Terminals</TITLE>
|
|
<LINK HREF="Text-Terminal-HOWTO-10.html" REL=next>
|
|
<LINK HREF="Text-Terminal-HOWTO-8.html" REL=previous>
|
|
<LINK HREF="Text-Terminal-HOWTO.html#toc9" REL=contents>
|
|
</HEAD>
|
|
<BODY>
|
|
<A HREF="Text-Terminal-HOWTO-10.html">Next</A>
|
|
<A HREF="Text-Terminal-HOWTO-8.html">Previous</A>
|
|
<A HREF="Text-Terminal-HOWTO.html#toc9">Contents</A>
|
|
<HR>
|
|
<H2><A NAME="s9">9.</A> <A HREF="Text-Terminal-HOWTO.html#toc9">Special Features/Types of Some Terminals</A></H2>
|
|
|
|
<H2><A NAME="ss9.1">9.1</A> <A HREF="Text-Terminal-HOWTO.html#toc9.1">Terminal Uses a PC Monitor</A>
|
|
</H2>
|
|
|
|
<P>One may use a PC (including it's monitor) to emulate a terminal.
|
|
But PCs have become so powerful that only a small portion of the PC's
|
|
capacity is utilized to run the emulation. So why not make a tiny PC
|
|
that has low computing capability so it is barely able do the task of
|
|
emulating a terminal. Then call this tiny device a text terminal and
|
|
point out that one must supply and plug in a PC monitor in order to
|
|
use this terminal. Such devices exist and are only about an inch
|
|
high. They are sometimes referred to as small footprint terminals.
|
|
Their advantage is that they are cheap, take up little space, and
|
|
might be able to use surplus monitors that otherwise might be
|
|
discarded.</P>
|
|
|
|
<H2><A NAME="ss9.2">9.2</A> <A HREF="Text-Terminal-HOWTO.html#toc9.2">Color </A>
|
|
</H2>
|
|
|
|
<H3>Emulated text terminals</H3>
|
|
|
|
<P>In contrast to the monochrome or most real text terminals, an
|
|
emulated text terminal usually has colors since it displays on a PC
|
|
color monitor. See
|
|
<A HREF="Text-Terminal-HOWTO-10.html#colors">Colors on Emulated Terminals</A></P>
|
|
|
|
<H3>Old real text terminal</H3>
|
|
|
|
<P>Some real terminals had color displays but most had either no color
|
|
or fixed "color" displays other than white such as green or amber. All
|
|
terminals had black (electron beam turned off = zero brightness). A
|
|
real color terminal can change the color of the text and background to
|
|
many different colors while a monochrome terminal can only change the
|
|
brightness of a fixed color.</P>
|
|
<P>However, changing the brightness, etc. gives a lot of possibilities.
|
|
For example, a black and white (monochrome) terminal can have white,
|
|
grey, and black by varying the brightness. Some words can be black on
|
|
a light grey background while other are highlighted by black on white.
|
|
In addition there is white on black, underlining, and blinking.</P>
|
|
<P>Real color works like the color on a computer monitor or TV screen.
|
|
The CRT has three colors of dots permanently on it with the brightness
|
|
of each color controlled by its own electron beam (3 beams). The
|
|
monochrome of real text terminals had inherently better resolution
|
|
since it didn't depend on dots permanently fixed on the screen. For
|
|
text terminals the only use of color is to differentiate text and this
|
|
advantage was often not worth the cost of worse resolution. Thus
|
|
monochrome may have historically been better since it also cost less.
|
|
But today color displays have are ubiquitous and have improved in
|
|
resolution since the olden days of the real text terminal.</P>
|
|
|
|
<H2><A NAME="ss9.3">9.3</A> <A HREF="Text-Terminal-HOWTO.html#toc9.3">Multiple Sessions </A>
|
|
</H2>
|
|
|
|
<P> For dual sessions the terminal has two
|
|
serial ports of equal status. Each port is connected to a serial port
|
|
on a different computer. Thus one may log in to two different
|
|
computers with each session displaying in a split-screen window.
|
|
Alternatively, each session may run full-screen with a "hot" key (or
|
|
the like) to switch between sessions. One could also connect to two
|
|
different serial ports on the same computer and log in twice (similar
|
|
to "virtual terminals" at the console). The program "screen" will
|
|
make any ordinary terminal (single session) connected to a single
|
|
computer run two or more "sessions".</P>
|
|
|
|
<H2><A NAME="ss9.4">9.4</A> <A HREF="Text-Terminal-HOWTO.html#toc9.4">Printer/Auxiliary Port </A>
|
|
</H2>
|
|
|
|
<P> Many terminals have a connector on
|
|
the rear for such a port. It may be labeled as "Aux" or "Printer",
|
|
etc. Some printer ports are for parallel printers while others are
|
|
for serial printers. If a printer is connected to the printer or
|
|
auxiliary port, then pressing certain keys will print the screen. One
|
|
may also have everything that displays on the screen go also to the
|
|
printer. If the port is an auxiliary port, one may connect this to
|
|
another computer and almost have dual sessions as above. However, the
|
|
video memory inside the terminal may not retain both sessions so you
|
|
may need to refresh the screen when switching to the other session.
|
|
There will likely not be a hot key either but possibly a programmable
|
|
function key may be programmed to do this. There exists various key
|
|
combinations and escape sequences for controlling such a port. See
|
|
<A HREF="Text-Terminal-HOWTO-22.html#printer_esc">Printer Esc</A>.</P>
|
|
<P>There is a program called <CODE>vtprint</CODE> which is designed to send a
|
|
print job (text only) to your terminal to be printed on a printer
|
|
attached to the terminal. It's homepage is <CODE>
|
|
<A HREF="http://vtprint.sourceforge.net/">vtprint</A></CODE>. It's also
|
|
included in the Debian distribution of Linux. <CODE>xprt</CODE> (also in
|
|
Debian) seems to do something similar, but only for X Window terminals
|
|
??</P>
|
|
<P>Using the printer port to print may be useful if you don't have an
|
|
extra port on your PC for a printer or for "point of sale" use in a
|
|
store. "Transparent print mode" is where whatever the PC sends out to
|
|
the terminal goes instead to the printer. If you want the printer to
|
|
be able to send bytes to the PC (in the reverse direction) then (per
|
|
Wyse) it's "bidirectional mode". The Wyse "auxiliary print mode" is
|
|
just transparent print mode where the terminal screen monitors what's
|
|
being printed.</P>
|
|
|
|
<H2><A NAME="pages_"></A> <A NAME="ss9.5">9.5</A> <A HREF="Text-Terminal-HOWTO.html#toc9.5">Pages </A>
|
|
</H2>
|
|
|
|
<P> Many terminals permit the
|
|
storage of more than one page in their video memory. Sometimes the
|
|
page size is the same as the screen, but sometimes it is larger so
|
|
that scrolling will reveal unseen parts of a page. So when one looks
|
|
at a screen, there may be hidden text on the same page above or below
|
|
the display. In addition, if there is more than just one page, there
|
|
may be hidden text on these other pages. One use for pages is on
|
|
terminals that support dual sessions. Each session may have its own
|
|
page and one may switch back and forth between them.</P>
|
|
<P>Even if you only have a one-page-terminal with the page sized equal to
|
|
what is displayed on the screen, you will still see other pages of a
|
|
file (etc.) as the host sends more data to the terminal. One
|
|
advantage to having additional pages stored in the terminal memory is
|
|
so that you can jump to them instantly without waiting a second or so
|
|
for them to be transmitted from the host.</P>
|
|
<P>Multiple pages is supported by ncurses. There is also a commercial
|
|
program called "Multiscreen" which supports multiple pages but
|
|
probably not for Linux ?? Multiscreen is reported to be part of SCO
|
|
and is something like the virtual terminals on a Linux PC console.
|
|
The Linux program "screen" makes it look like you have multiple pages
|
|
but they are stored in the computer and but you can have only one
|
|
page-like window for each running program.</P>
|
|
|
|
<H2><A NAME="char_sets"></A> <A NAME="ss9.6">9.6</A> <A HREF="Text-Terminal-HOWTO.html#toc9.6">Character-Sets </A>
|
|
</H2>
|
|
|
|
<P> A character-set is normally represented by a list (or table or
|
|
chart) of characters along with the byte code assigned to each
|
|
character. The codes for a byte range from 0 to 255 (00 to FF in
|
|
hexadecimal). In MS-DOS, character-set tables are called
|
|
"code-pages". You should examine such a table if you're not familiar
|
|
with them. They are sometimes included in printer and terminal
|
|
manuals but also are found on the Internet.</P>
|
|
<P>Many character sets include letters from foreign languages. But they
|
|
may also include special characters used to draw boxes and other
|
|
special characters.</P>
|
|
<P>ASCII was the traditional English character set used on text terminals
|
|
It is a 7-bit code but will usually work OK even if your terminal is
|
|
set to 8-bit mode. In 8-bit mode with ASCII, the high order bit is
|
|
always set to zero. Other character-sets are usually available and
|
|
usually use 8-bit codes (except on very old terminals where the only
|
|
choice is ASCII). The first half of most character-sets are the
|
|
conventional 128 ASCII characters and the second half (with the
|
|
high-order bit set to 1) belong to a wide variety of character-sets.
|
|
Character sets are often ISO standards. To get specialized character
|
|
sets on a terminal, you may need to download a soft-font for that
|
|
character-set into the memory of the terminal. Many terminals have a
|
|
number of built-in character sets (but perhaps not the one you need).</P>
|
|
<P>Here are some common 8-bit character sets. CP stands for Code Page
|
|
character sets invented by IBM: CP-437 (DOS ECS), ISO-8859-1
|
|
(Latin-1), CP-850 (Multilingual Latin 1 --not the same as ISO
|
|
Latin-1), CP-1252 (WinLatin1 = MS-ANSI). MS Windows uses CP-1252
|
|
(WinLatin1) while the Internet often uses Latin-1. There are several
|
|
ISO-8859- character sets in addition to Latin-1. These include Greek
|
|
(-7), Arabic (-6), Eastern European (-2), and a replacement for
|
|
Latin-1 (-15) called Latin-9. There are many others. For example,
|
|
KOI8-R is more commonly used for Russian than IS0-8859-5. Unicode is
|
|
a very large character-set where each character is represented by 2
|
|
bytes instead on just one byte.</P>
|
|
<P>More info re character-sets are:
|
|
<UL>
|
|
<LI> Manual pages: charsets, iso_8859-l or latin1 (covers 8859 series), ascii</LI>
|
|
<LI> HOWTO's for various languages (often written in that language).</LI>
|
|
<LI>
|
|
<A HREF="http://czyborra.com/charsets/iso8859.html">ISO-8859 Alphabet Soup</A> More than just iso8859. Extensive.</LI>
|
|
<LI>
|
|
<A HREF="http://www.cs.tut.fi/~jkorpela/chars.html">A tutorial on character code issues</A> Clearly written.</LI>
|
|
<LI>
|
|
<A HREF="http://www.w3.org/International/O-charset-lang.html">Languages, Countries and Character Sets</A></LI>
|
|
<LI>
|
|
<A HREF="http://www.osk.3web.ne.jp/logos/">Languages of the World by Computers ...</A></LI>
|
|
<LI>
|
|
<A HREF="ftp://kermit.columbia.edu/kermit/e/isok7.txt">... International Character Sets</A></LI>
|
|
</UL>
|
|
</P>
|
|
<P>Once you've found the character set name (or alpha-numeric
|
|
designation) you are interested in, you may search for more info about
|
|
it on the Internet.</P>
|
|
|
|
<H3>Graphics (Line Drawing, etc.) </H3>
|
|
|
|
<P> There are special characters
|
|
for drawing boxes, etc. There are also numerous non-ASCII symbols
|
|
such as bullets. These may either be part of an 8-bit character set
|
|
(such as WinLatin1 = CP-1252) or provided as a separate font (in vt100
|
|
terminals). Your terminfo may be set up to use them. But if you see
|
|
a row of letters when there should be a line, it may mean that
|
|
terminfo hasn't implemented them.</P>
|
|
<P>You need to know the following if your graphics don't work right. The
|
|
default graphic character set is the vt-100 ANSI graphics. Otherwise
|
|
the string acsc must be defined in your terminfo. It establishes a
|
|
map between the vt-100 graphic characters codes and the actual codes
|
|
used on your terminal. So even if your terminal doesn't have the
|
|
vt-100 graphics, it can likely still generate such graphics with some
|
|
other character set. If terminfo has it right, this will happen
|
|
automatically.</P>
|
|
<P>If character sets must be switched then the terminfo variables: enacs,
|
|
rmacs, and smacs should be defined. Note acs = Alternate Character
|
|
Set. Even if the upper half of the normal character set contains the
|
|
graphic characters it may be considered a separate 7-bit character set
|
|
that needs to be switched to.</P>
|
|
|
|
<H3>National Replacement Characters (obsolete) </H3>
|
|
|
|
<P> In the 1960's,
|
|
the ASCII 7-bit code was devised to map 7-bit bytes to English
|
|
letters, numbers, punctuation marks, etc. Other countries adopted
|
|
ASCII, but most of them had some additional letters which were not
|
|
present in the ASCII code. What to do? Various people decided to
|
|
purge certain symbols (such as ^, }) from ASCII and to substitute
|
|
national letters (ones with dots over them, etc.) for the ASCII
|
|
letters. In other words they replaced ASCII letters with "National
|
|
Replacement Characters"</P>
|
|
<P>There were a lot of problems with this, since it was done mostly by
|
|
companies which sold computer terminals with a resulting lack of
|
|
standardization. Another problem was that sometimes the purged
|
|
symbols were needed. This problem was solved in the 1980's and 1990's
|
|
with the adoption of 8-bits/byte character sets which had many more
|
|
letters.</P>
|
|
<P>Many West-European languages only needed several additional letters
|
|
which were not in ASCII. To get them in 7-bit code, they borrowed the
|
|
codes for seldom used ASCII symbols:<BR> @ [ \ ] ^ ` { \
|
|
} ~<BR> The symbols $ and # are sometimes used also. So
|
|
when using these replacement character sets, you are deprived of using
|
|
certain of these ASCII symbols since they now are used for the new
|
|
non-ASCII letters. Now that 8-bit character codes have replaced 7-bit
|
|
ones, it's better to use an 8-bit code which has both all the ASCII
|
|
symbols plus the non-ASCII characters for various languages. There's
|
|
also Unicode which replaces 8-bit codes with the same code scheme to
|
|
cover all languages (well almost all significant ones).</P>
|
|
<P>ISO-646 (for 1972 and later) permitted using National Replacement
|
|
Characters (7-bit). It specified that the above mentioned character
|
|
codes may be borrowed, but doesn't specify which national characters
|
|
are to replace them. Some countries standardized the replacements
|
|
by registering them with ECMA.</P>
|
|
<P>Many terminals exist which support these national replacement
|
|
characters but you probably don't want to implement this support
|
|
unless you have some old files to read. Very old terminals may only
|
|
support the national characters for the country in which they were
|
|
sold. Later terminals offered a choice of languages. Modem terminals
|
|
are 8-bit and don't need "national replacements". Replacement
|
|
characters exist for the following languages/countries: British, Cuba
|
|
(Spanish), Dutch, Finnish, French, French Canadian, German, Hebrew,
|
|
Hungarian, Italian, Norwegian/Danish, Portuguese, Spanish, Swedish,
|
|
Swiss (German).</P>
|
|
<P>Here's tables for some character sets taken from Kermit and Unisys
|
|
documents:</P>
|
|
<P>
|
|
<BLOCKQUOTE><CODE>
|
|
<PRE>
|
|
Swedish Danish
|
|
ASCII German Finnish Norwegian French
|
|
|
|
@ at-sign section ------- ------- a-grave
|
|
[ left-bracket A-diaeresis A-diaeresis AE-digraph degree
|
|
/ backslash O-diaeresis O-diaeresis O-slash c-cedilla
|
|
] right-bracket U-diaeresis A-circle A-circle section
|
|
^ circumflex ------ U-diaeresis ------- -------
|
|
` accent-grave ------ e-acute ------- -------
|
|
{ left-brace a-diaeresis a-diaeresis ae-digraph e-acute
|
|
| vertical-bar o-diaeresis o-diaeresis o-circle u-grave
|
|
} right-brace u-diaeresis a-circle a-circle e-grave
|
|
~ tilde ess-zet u-diaeresis -------- diaeresis
|
|
|
|
ASCII Italian Spanish
|
|
|
|
@ at-sign section section
|
|
[ left-bracket degree inverted-exclamation
|
|
/ backslash #-pound N-tilde
|
|
] right-bracket e-acute inverted-question-mark
|
|
^ circumflex ------- -------
|
|
` accent-grave u-grave -------
|
|
{ left-brace a-grave degree
|
|
| vertical-bar o-grave n-tilde
|
|
} right-brace e-grave --------
|
|
~ tilde i-grave --------
|
|
</PRE>
|
|
</CODE></BLOCKQUOTE>
|
|
</P>
|
|
|
|
<H2><A NAME="ss9.7">9.7</A> <A HREF="Text-Terminal-HOWTO.html#toc9.7">Fonts</A>
|
|
</H2>
|
|
|
|
<P> Most terminals made after the mid 1980's can accept downloaded
|
|
soft-font. This means that they can display almost any character set
|
|
provided that you can find the soft-font for it. If you can't find
|
|
the needed soft-font, you can always create your own. A free font
|
|
editor for this is called BitFontEdit (written by the author of this
|
|
document) and is at at<BR>
|
|
<A HREF="http://www.ibiblio.org/pub/Linux/utils/terminal/">http://www.ibiblio.org/pub/Linux/utils/terminal/</A><BR>
|
|
For mapping the keyboard (and screen) for use of various fonts see
|
|
<A HREF="Text-Terminal-HOWTO-15.html#mapchan_">Character Mapping: mapchan</A></P>
|
|
|
|
<H2><A NAME="ss9.8">9.8</A> <A HREF="Text-Terminal-HOWTO.html#toc9.8">Keyboards & Special Keys</A>
|
|
</H2>
|
|
|
|
<P>Terminal keyboards often have a number of keys that one doesn't find
|
|
on a PC keyboard. Few (if any) actual terminals will have all of
|
|
these keys and most will have additional keys not listed here. Some
|
|
have a large number of special purpose keys such as terminals made for
|
|
use with cash registers. There are often many more key meanings than
|
|
shown here since these keys often have extended meanings when used in
|
|
conjunction with other keys (such as shift and control).</P>
|
|
<P>
|
|
<UL>
|
|
<LI> BREAK sends a very long 0 bit (space = +12 V) of duration 300
|
|
to 700 milliseconds to the host. The host may interpret this as an
|
|
interrupt if stty has set brkint or ignore it if ignbrk is set.
|
|
</LI>
|
|
<LI> NO SCROLL stops the screen from scrolling like ^S does.
|
|
Depressing it again resumes scrolling. Uses flow control signals to
|
|
do this.
|
|
</LI>
|
|
<LI> REPEAT if held down with an other key, forces repeated output of
|
|
that other key even if the auto-repeat option is set to off.
|
|
</LI>
|
|
<LI> LINE FEED sends the line feed character ^J to the host. Seldom
|
|
used.
|
|
</LI>
|
|
<LI> SET-UP allows the manual configuration of the terminal via
|
|
menus. Sometimes purposely disabled by putting a block under it so it
|
|
can't be pressed down. Sometimes another key such as shift or control
|
|
must be pressed at the same time. See
|
|
<A HREF="Text-Terminal-HOWTO-14.html#enter_setup">Getting Into Set-Up (Configuration) Mode</A>.
|
|
</LI>
|
|
<LI> LOCAL disconnects the terminal from the host. In local, what
|
|
one types goes directly to the screen. Useful for testing.
|
|
</LI>
|
|
<LI> RETURN is the same as the "enter" key on a PC. It usually
|
|
sends a carriage return to the host which normally get translated to a
|
|
new-line character by the host's device driver. On some terminals it
|
|
may be set up to send something else.
|
|
</LI>
|
|
<LI> F1, F2, ... or PF1, PF2, ... are function keys which sometimes
|
|
may be programmed to send out a sequence of bytes (characters). See
|
|
<A HREF="Text-Terminal-HOWTO-14.html#funct_keys">Function Keys</A></LI>
|
|
</UL>
|
|
</P>
|
|
|
|
<H2><A NAME="ss9.9">9.9</A> <A HREF="Text-Terminal-HOWTO.html#toc9.9">Mouse</A>
|
|
</H2>
|
|
|
|
<P> A few text-terminals support a mouse. When the mouse is clicked,
|
|
an escape sequence is sent to the host to tell it where the mouse is.
|
|
An article for a mouse on VT terminals was once at
|
|
http://www.cs.utk.edu/ shuford/terminal/dec_vt_mouse.html but it's now a
|
|
dead link (2013). Try the "Wayback" machine." These escape codes for
|
|
mice are called "DEC Locator sequences". The FALCO Infinity Series of
|
|
terminals, model ANSI-G supports it. Did any linux applications support
|
|
this ?? </P>
|
|
|
|
<HR>
|
|
<A HREF="Text-Terminal-HOWTO-10.html">Next</A>
|
|
<A HREF="Text-Terminal-HOWTO-8.html">Previous</A>
|
|
<A HREF="Text-Terminal-HOWTO.html#toc9">Contents</A>
|
|
</BODY>
|
|
</HTML>
|