Terminál DEC VT100 (uvedený na trh v roce 1978) se stal průmyslovým standardem pro textovou komunikaci. Namísto přímého zápisu do videopaměti (framebufferu) komunikuje počítač s terminálem výhradně pomocí proudu znaků po sériové lince.

Pokud terminál obdrží běžný ASCII znak (např. litera ‘A’, kód 65), vykreslí ho na aktuální pozici kurzoru. Pokud však obdrží speciální Escape znak (ASCII 27 / 0x1B / CHR$(27)), přepne se do režimu zpracování příkazu.

ESC + [ + [Parametry] + Příkazový znak

Sekvence začínající dvojicí ESC [ se označují jako CSI (Control Sequence Introducer). Většina příkazů má formát ESC [ číslo1 ; číslo2 ... příkaz.


Kompletní Přehled VT100 / ANSI Escape Sekvencí

Při práci s terminálem (např. v nástroji tio, PuTTY nebo na fyzickém terminálu) můžete využít širokou škálu příkazů:

Řízení Kurzoru

Escape SekvenceZkrácený KódPopis Funkce
ESC [ HCUPPosun na pozici [1,1] (Home)
ESC [ Y ; X HCUPPosun kurzoru na řádek Y a sloupec X
ESC [ Y ; X fHVPEkvivalentní příkaz k H
ESC [ N ACUUPosun kurzoru o N řádků NAHORU
ESC [ N BCUDPosun kurzoru o N řádků DOLŮ
ESC [ N CCUFPosun kurzoru o N sloupců DOPRAVA
ESC [ N DCUBPosun kurzoru o N sloupců DOLEVA
ESC [ ? 25 lDECTCEMSkryje blikající kurzor
ESC [ ? 25 hDECTCEMZobrazí kurzor
ESC 7 nebo ESC [ sDECSCUloží aktuální pozici kurzoru
ESC 8 nebo ESC [ uDECRCObnoví uloženou pozici kurzoru

Mazání Obrazovky a Řádků

Escape SekvenceZkrácený KódPopis Funkce
ESC [ 2 JED2Smaže celou obrazovku
ESC [ 0 J (nebo ESC [ J)ED0Smaže obrazovku od kurzoru do konce
ESC [ 1 JED1Smaže obrazovku od začátku do kurzoru
ESC [ 2 KEL2Smaže celý aktuální řádek
ESC [ 0 K (nebo ESC [ K)EL0Smaže řádek od kurzoru do konce
ESC [ 1 KEL1Smaže řádek od začátku do kurzoru

Formátování Textu a Barvy (SGR - Select Graphic Rendition)

Atributy textu se nastavují pomocí ESC [ N m. Více parametrů lze řetězit pomocí středníku (např. ESC [ 1;31;40m nastaví tučný červený text na černém pozadí).

Kód NKategorieVýznam / Účinek
0ResetVypne všechny atributy a barvy (návrat k výchozímu)
1StylTučné písmo (Bold / Zvýšená intenzita)
4StylPodtržené písmo (Underline)
5StylBlikání (Blink)
7StylInverzní zobrazení (Invertuje pozadí a popředí)
30 - 37Barva popředíČerná (30), Červená (31), Zelená (32), Žlutá (33), Modrá (34), Fialová (35), Azurová (36), Bílá (37)
40 - 47Barva pozadíČerná (40), Červená (41), Zelená (42), Žlutá (43), Modrá (44), Fialová (45), Azurová (46), Bílá (47)
90 - 97Jasné popředíJasné varianty základních barev (ANSI rozšíření)

Pokročilé Řízení Terminálu

  • Nastavení oblasti rolování (Scroll Region): ESC [ top ; bottom r – Omezí rolování textu pouze na zadané řádky.

  • Měkký reset terminálu: ESC ! p – Obnoví výchozí stav nastavení.

  • Dotaz na pozici kurzoru: ESC [ 6 n – Terminál odpoví do sériové linky sekvencí ESC [ Y ; X R.


Ukázky Použití

Ehanced BASIC (68k-MBC)

10 E$ = CHR$(27) + "["
20 PRINT E$;"2J"; E$;"1;1H";
30 PRINT E$;"1;31mCerveny text";E$;"0m"

Jazyk C (CP/M-68K / GCC)

#include <stdio.h>
void clear(void) {
    printf("\033[2J\033[H");
    printf("\033[1;32mZeleny text\033[0m\n");
}