<div class="Box fold">
	<h2>Basic Intro & Nomenclature</h2>

	<div class="Row v">
		<img src="/img/vt100.jpg" class="aside" alt="VT102">

		<p>
			ESPTerm emulates VT102 (pictured) with some additions from later VT models and Xterm.
			All commonly used attributes and commands are supported.
			ESPTerm is capable of displaying ncurses applications such as _Midnight Commander_ using _agetty_.
		</p>

		<p>
			ESPTerm accepts UTF-8 characters received on the communication UART and displays them on the screen,
			interpreting some codes as Control Characters. Those are e.g. _Carriage Return_ (13), _Line Feed_ (10),
			_Tab_ (9), _Backspace_ (8) and _Bell_ (7).
		</p>

		<p>
			Escape sequences start with the control character _ESC_ (27),
			followed by any number of ASCII characters forming the body of the command.
		</p>

		<h3>Nomenclature & Command Types</h3>

		<p>
			Examples on this help page use the following symbols for special characters and command types:\\
			(spaces are for clarity only, _DO NOT_ include them in the commands!)
		</p>

		<div class="tscroll">
			<table class="nomen">
				<thead><tr><th>Name</th><th>Symbol</th><th>ASCII</th><th>C string</th><th>Function</th></tr></thead>
				<tbody>
				<tr>
					<td>*ESC*</td>
					<td>`\e`</td>
					<td>`ESC` (27)</td>
					<td>`"\e"`, `"\x1b"`, `"\033"`</td>
					<td>Introduces an escape sequence. _(Note: `\e` is a GCC extension)_</td>
				</tr>
				<tr>
					<td>*Bell*</td>
					<td>`\a`</td>
					<td>`BEL`~(7)</td>
					<td>`"\a"`, `"\x7"`, `"\07"`</td>
					<td>Audible beep</td>
				</tr>
				<tr>
					<td>*String Terminator*</td>
					<td>`ST`</td>
					<td>`ESC \`~(27~92)<br>_or_~`\a`~(7)</td>
					<td>`"\x1b\\"`, `"\a"`</td>
					<td>Terminates a string command (`\a` can be used as an alternative)</td>
				</tr>
				<tr>
					<td>*Control Sequence Introducer*</td>
					<td>`CSI`</td>
					<td>`ESC [`</td>
					<td>`"\x1b["`</td>
					<td>Starts a CSI command. Examples: `\e[?7;10h`, `\e[2J`</td>
				</tr>
				<tr>
					<td>*Operating System Command*</td>
					<td>`OSC`</td>
					<td>`ESC ]`</td>
					<td>`"\x1b]"`</td>
					<td>Starts an OSC command. Is followed by a command string terminated by `ST`. Example: `\e]0;My Screen Title\a`</td>
				</tr>
				<tr>
					<td>*Select Graphic Rendition*</td>
					<td>`SGR`</td>
					<td>`CSI <i>n</i>;<i>n</i>;<i>n</i>m`</td>
					<td>`"\x1b[1;2;3m"`</td>
					<td>Set text attributes, like color or style. 0 to 10 numbers can be used, `\e[m` is treated as `\e[0m`</td>
				</tr>
				</tbody>
			</table>
		</div>

		<p>There are also some other commands that don't follow the CSI, SGR or OSC pattern, such as `\e7` or
			`\e#8`. A list of the most important escape sequences is presented in the following sections.</p>
	</div>
</div>