1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
|
#!/bin/sh
RES=techref.html
function header
{
cat << etx >> $RES
<h2>
<table width=100%>
<tr><td align=center bgcolor=#d0d0d0></td></tr>
<tr><td align=center bgcolor=#d0d0d0>$1</td></tr>
<tr><td align=center bgcolor=#d0d0d0></td></tr>
</table>
</h2>
etx
}
cat > $RES /dev/null
# -- HTML Header --------------------------------------------------------------------
cat >> $RES << etx
<html>
<head>
<title>VT100</title>
<!-- NOTE: this page is generated using the "genDocument" script -->
</head>
<body bgcolor=white>
<hr>
etx
# -- Editors Notes ------------------------------------------------------------------
cat >> $RES << etx
<h1><center>VT100</center></h1>
<center><img src="vt100.gif"></center>
<it>Please note that this text is under construction.</it>
<h2>Preface</h2>
This document accompanies the Konsole program, which is a terminal emulation
for the X Windows System. Since material about the extend and precise semantics
of the emulatation intended to be handled by this programs is hard to find on the
internet today, it came out nessesary to include a more precise specification within
their release.
Hopefully, this helps to clearify the relation to the VT100, VT102, Linux, XTerm
and ansi.sys (ANSI-BBS) terminals, which are the target of these programs. Further,
it specifies which codes are interpreted by them, and what has been omitted.
<p>
To begin with, all of the above call themselfes "ANSI" emulations, which makes this
notion pretty vage. "ANSI" referes here to the American National Standards
Institute's documents X3.41-1974 and X3.64-1977. DEC partially implemented this
standart in their VT100 terminal, with some additions. The VT102 is a later extention
of that. Both the Linux console and the XTerm emulation implement most of VT102,
with some additions. MS stepped in later and produced another ANSI emulation,
<code>ansi.sys</code>, for their OS, which became of some relevance in BBS style
telecommunication programs. One can view this as a small subset of the VT100
emulation, with some additions, of cause.
This situation is further confused by the fact, that often many versions of the
above terminals and emulations are out, one able to do a little more or less then
the other.
<p>
<hr>
<p>
I'm working towards a
close integration of the konsole's source code with this document, but it
is still a long way to go.
<p>
Currently, the body of this document is mainly a concept data base, that
referes to the VT100 component of the emulation. Though the codes accepted by
konsole are now clearly indicated, a comparison to the xterm and Linux console
emulation is missing.
<p>
The konsole emulation sources is not linked closely with it's documentation,
and, also accurate at the time of writing, it can still fall slightly appart,
though the codes accepted and produced by konsole should be properly listed.
Work is currently in progress to fix this issue.
<h2>Notes & todos</h2>
<ul>
<li>Include complete reference on keyboard material.
<li>Check for explaination of out-of-bound values.
<li>Include VT52, VT102, XTERM, LINUX-console codes
<li>Make the whole document more concept oriented
<li>See the section <em>Method of description</em>, below
<li>Derive some summarizing lists.
</ul>
<hr>
etx
# -- Codes --------------------------------------------------------------------------
./genTC.pl >> $RES
header "On VT100"
cat >> $RES << etx
The VT100 is an upward and downward software-compatible terminal;
that is, previous Digital video terminals have Digital's private standards
for control sequences. The American National Standards Institute has since
standardized escape and control sequences in terminals in documents X3.41-1974
and X3.64-1977.
<p>
The VT100 is compatible with both the previous Digital standard and
ANSI standards. Customers may use existing Digital software designed around
the VT52 or new VT100 software. The VT100 has a "VT52 compatible" mode in
which the VT100 responds to control sequences like a VT52. In this mode, most
of the new VT100 features cannot be used.
<p>
Throughout this document references will be made to "VT52 mode" or
"ANSI mode". These two terms are used to indicate the VT100's software
compatibility.
<p>
<em>NOTE</em>: The ANSI standards allow the manufacturer flexibility in implementing
each function. This document describes how the VT100 will respond to the
implemented ANSI central function.
<p>
etx
header "Modes"
cat >> $RES << etx
<a name=#MODES></a>
The Following is a list of VT100 modes which may be changed with Set
Mode (SM) and Reset Mode (RM) controls.
<h3>ANSI Specified Modes</h3>
<table border=1>
<tr><td>Parameter</td><td>Mnemonic</td><td>Function</td></tr>
<tr><td><hr></td><td><hr></td><td><hr></td></tr>
<tr><td>0 </td><td> </td><td>Error (Ignored)</td></tr>
<tr><td>20 </td><td>LNM </td><td>Line Feed/New Line Mode</td></tr>
</table>
<h3>DEC Private Modes</h3>
If the first character in the parameter string is ? (077), the
parameters are interpreted as DEC private parameters according to the
following:
<table border=1>
<tr><td>Parameter</td><td>Mnemonic</td><td>Function
<tr><td><hr></td><td><hr></td><td><hr></td></tr>
<tr><td>0</td><td> </td><td>Error (Ignored)</td></tr>
<tr><td>1</td><td><a href=#DECCKM >DECCKM </a></td><td>Cursor Key </td></tr>
<tr><td>2</td><td><a href=#DECANM >DECANM </a></td><td>ANSI/VT52 </td></tr>
<tr><td>3</td><td><a href=#DECCOLM>DECCOLM</a></td><td>Column </td></tr>
<tr><td>4</td><td><a href=#DECSCLM>DECSCLM</a></td><td>Scrolling </td></tr>
<tr><td>5</td><td><a href=#DECSCNM>DECSCNM</a></td><td>Screen </td></tr>
<tr><td>6</td><td><a href=#DECOM >DECOM </a></td><td>Origin </td></tr>
<tr><td>7</td><td><a href=#DECAWM >DECAWM </a></td><td>Auto Wrap </td></tr>
<tr><td>8</td><td><a href=#DECARM>DECARM </a></td><td>Auto Repeat </td></tr>
<tr><td>9</td><td><a href=#DECINLM>DECINLM</a></td><td>Interlace </td></tr>
</table>
Any other parameter values are ignored.
<p>
The following modes, which are specified in the ANSI standard, may be
considered to be permanently set, permanently reset, or not applicable,
as noted.
<table border=1>
<tr><td>Mnemonic</td><td>Function </td><td>State</td></tr>
<tr><td>CRM </td><td>Control Representation </td><td>Reset</td></tr>
<tr><td>EBM </td><td>Editing Boundary </td><td>Reset</td></tr>
<tr><td>ERM </td><td>Erasure </td><td>Set </td></tr>
<tr><td>FEAM </td><td>Format Effector Action </td><td>Reset</td></tr>
<tr><td>FETM </td><td>Format Effector Transfer </td><td>Reset</td></tr>
<tr><td>GATM </td><td>Guarded Area Transfer </td><td>NA </td></tr>
<tr><td>HEM </td><td>Horizontal Editing </td><td>NA </td></tr>
<tr><td>IRM </td><td>Insertion-replacement </td><td>Reset</td></tr>
<tr><td>KAM </td><td>Keyboard Action </td><td>Reset</td></tr>
<tr><td>MATM </td><td>Multiple area transfer </td><td>NA </td></tr>
<tr><td>PUM </td><td>Positioning Unit </td><td>Reset</td></tr>
<tr><td>SATM </td><td>Selected Area Transfer </td><td>NA </td></tr>
<tr><td>SRTM </td><td>Status Reporting Transfer</td><td>Reset</td></tr>
<tr><td>TSM </td><td>Tabulation Stop </td><td>Reset</td></tr>
<tr><td>TTM </td><td>Transfer Termination </td><td>NA </td></tr>
<tr><td>VEM </td><td>Vertical Editing </td><td>NA </td></tr>
</table>
etx
# -- Keyboard Codes -----------------------------------------------------------------
cat >> $RES << etx
<h2>Keyboard Codes</h2>
The notation <ESC> denotes a single ASCII Escape character, 1Bx.
<table border=1>
<tr>
<td>Cursor Key</td>
<td>VT52 mode</td>
<td>ANSI mode w/cursor <br> key mode reset</td>
<td>ANSI mode w/cursor <br> key mode set</td>
</tr>
<tr><td>UP </td><td><ESC>A</td><td><ESC>[A</td><td><ESC>OA</td></tr>
<tr><td>DOWN </td><td><ESC>B</td><td><ESC>[B</td><td><ESC>OB</td></tr>
<tr><td>RIGHT</td><td><ESC>C</td><td><ESC>[C</td><td><ESC>OC</td></tr>
<tr><td>LEFT </td><td><ESC>D</td><td><ESC>[D</td><td><ESC>OD</td></tr>
</table>
etx
# -- Graphics Characters ------------------------------------------------------------
cat >> $RES << etx
<h2>Special Graphics Characters</h2>
If the Special Graphics set is selected, the graphics for ASCII codes
0137 through 0176 will be replaced according to the following table (see the
<a href=#SCS>SCS</a> control sequence).
etx
awk -f awk.table.graphic < Table.Graphic >> $RES
cat >> $RES << etx
<em>NOTE 1</em>: Codes 0152-0156 and 0164-0170 are used to draw rectangular grids" each
piece of this set is contiguous with other so the lines formed will be
unbroken.
<p>
<em>NOTE 2</em>: Codes 0157-0163 give better vertical resolution than dashes and
underlines when drawing graphs; using these segments, 120 x 132 resolution may
be obtained in 132 column mode with the Advanced Video Option installed.
<p>
<h2>References</h2>
<p>
<hr>
<small>
This text is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
<p>
<a href="mailto:[email protected]">Lars Dölle</a>, 1998
</small>
</body>
</html>
etx
|