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