ContentsIndexPreviousNext

4.6 The Terminal Database File

The terminal database file, which is similar to the termcap file supplied with many UNIX systems, may be edited to add new terminals to the ones it currently supports. Existing entries in the file may also be edited, if needed, to describe your terminal.

Each line of this file is either blank, a comment (marked by a "#" in column 1), or a definition of a terminal. You can continue a "line" on following lines by ending the line to be continued with a "\" (see below for an example). The "\" character must be the last character on the line.

A terminal definition consists of several fields, separated by colons. The end of the line marks the end of the definition. The first field is always the name of the terminal. Several names can be placed here, separated by a vertical bar ("|"). The rest of the fields consist of codes that describe various terminal functions. Most of these codes are followed by an equals sign and a coded string that describes how to operate that particular function.

Here is a generic representation of a terminal database file entry, where TNn is a terminal name, tf is a terminal function code, and cs is a coded string to accomplish the function (some terminal function codes are self-defining and do not need a coded string):

TN1|TN2|TN3:\
:tf[=cs]:tf[=cs]:tf[=cs]:\
:tf[=cs]:tf[=cs]:

The coded string that describes a function is just a representation of the control-sequence (or sequences) that the terminal uses to activate that function. These strings consist of the literal characters used in the control-sequence. Several special forms are recognized to aid in describing the control-sequence. The following abbreviations are supported:

\E
an escape character
\n
a newline (control-J)
\r
a carriage return (control-M)
\t
a tab (control-I)
\b
a backspace (control-H)
\f
a form-feed (control-L)
^X
X is any character, treated as control-X
\nnn
three digits treated as an octal value

The following is a list of all of the supported function codes. The most commonly used codes will be treated in detail in the following sections.

AC
Attributes used by clear screen
AT
Special color for IBM 3164 terminal
B1 - B8
Background color 1-8
BL
Blink
C1 - C8
Foreground color 1-8
DI
De-initialization string
DL
Default intensity is low
DP
Disable print mode
EP
Enable print mode
GA
Graphics on and off are characters
GE
Graphic escape
GF
Graphics off
GM
Graphics map
GO
Graphics on
GX
Graphics movement glitch
HI
High-intensity, normal video
LO
Low-intensity, normal video
NM
Normal Video (only if "sg" set)
NS
Screen does not scroll when corner is used
OC
One color can be displayed at a time
RA
Reverse video, alternate intensity
RB
Reverse video, blink
RU
Reverse video, underline
RV
Reverse video
UL
Underline
W3
Set terminal width to 132 columns
W8
Set terminal width to 80 columns
al
Insert (add) line
bc
Backspace cursor (defaults to ^H)
cd
Clear to end-of-screen
ce
Clear to end-of-line
cl
Clear screen
cm
Cursor positioning
co
Number of screen columns (default 80)
dl
Delete line
do
Down one line (defaults to ^J)
is
Initialization string
is1
Additional initialization string
is2
Additional initialization string
li
Number of screen lines (default 24)
nd
Non-destructive space
sg
Standout-mode glitch (uses magic cookies)
tc
Continue description with another entry
up
Cursor up one line
ve
Set cursor to normal
vi
Set cursor to invisible
vs
Set cursor to bright

The following codes are also available to represent various keys. Most terminals have only a subset of this full set.

K1 - K0
Function keys 11 - 20
K?
Help
KA
Attention
KB
Bottom
KC
Clear
KD
Do (command)
KE
End
KF
Find
KI
Insert character
KL
Page left
KM
Mark (select)
KP
Print
KR
Page right
KS
Send
KT
Top
KV
Save
KX
Delete character
Kc
Cancel
Kl
Word left
Kr
Word right
Kx
Exit
k1 - k0
Function keys 1 - 10
kA
Insert line
kB
Tab left
kE
Clear to end
kL
Delete line
kN
Page Down
kP
Page Up
kd
Down arrow
kh
Home
kl
Left arrow
kr
Right arrow
ku
Up arrow
U1 - U0
User defined key 1 - 10
A1 - A0
User defined key 11 - 20

All of the function codes described with lower-case characters are identical to ones found in the UNIX termcap file. These sequences can be taken verbatim from termcap and included in the ACUCOBOL-GT terminal database file when you are adding a new terminal entry.

To help with this discussion, an example of an entry for a DEC VT-100 will be developed. At each step of the example, the new portion of the entry will be in bold type. Initially, we need to assign a set of names that we want to use to refer to the terminal. For example:

vt100|vt-100|DEC VT-100:

This allows for any of the names "vt100", "vt-100" or "DEC VT-100" to be used for the TERM or A_TERM variable. By convention, the last name in the list is a long, descriptive name.

More:

4.6.1 Required Functions

4.6.2 Additional Screen Functions

4.6.3 Video Attributes

4.6.4 Color

4.6.5 Function Keys and Other Keys

4.6.6 Line Drawing

4.6.7 Graphical Window and Control Emulation

4.6.8 Mouse Support for X Terminals

4.6.9 Initialization

4.6.10 Print Functions

4.6.11 Continued Entries