Ce page décrit comment contrôler un terminal VT100. Les entrées sont énuméré sous la forme «Nom, Description, Code d'échappement». Le nom n'est pas important, et la description est simplement pour vous aider à trouver ce que vous recherchez. Ce que vous devez faire est d'envoyer le «code d'échappement» à l'écran. Ces codes comportent souvent plusieurs caractères, mais ils commencent tous par «^[». Ce n'est pas les deux caractères ^ et [, mais plutôt une représentation du code ASCII ESC (c'est pourquoi ceux-ci sont appelés codes d'échappement). Le ESC a la valeur décimale 27 et doit être envoyé avant le reste du code, étant est simplement une chaîne de caractères ASCII. À titre d'exemple de la façon d'utiliser ces informations, voici comment effacer l'écran en C, en utilisant les codes d'échappement VT100 :
- #define ASCII_ESC 27
- printf("%c[2J", ASCII_ESC);
ou
- puts("\033[2J");
Voici maintenant la liste des entrées reconnu par le VT100 :
Nom | Description | Code d'échappement |
---|---|---|
setnl LMN | Fixe le mode de nouvelle ligne | ^[[20h |
setappl DECCKM | Fixe la touche de curseur à l'application | ^[[?1h |
setansi DECANM | Fixe le ANSI (versus VT52) | rien |
setcol DECCOLM | Fixe le nombre de colonnes à 132 | ^[[?3h |
setsmooth DECSCLM | Fixe le défilement lisse | ^[[?4h |
setrevscrn DECSCNM | Fixe la vidéo inversée à l'écran | ^[[?5h |
setorgrel DECOM | Fixe l'origine vers relative | ^[[?6h |
setwrap DECAWM | Fixe le mode d'enveloppe automatique | ^[[?7h |
setrep DECARM | Fixe le mode de répétition automatique | ^[[?8h |
setinter DECINLM | Fixe le mode d'interlatissement | ^[[?9h |
setlf LMN | Fixe le mode d'alimentation de ligne | ^[[20l |
setcursor DECCKM | Fixe la touche de curseur au curseur | ^[[?1l |
setvt52 DECANM | Fixe le VT52 (versus ANSI) | ^[[?2l |
resetcol DECCOLM | Fixe le nombre de colonnes à 80 | ^[[?3l |
setjump DECSCLM | Fixe le saut de défilement | ^[[?4l |
setnormscrn DECSCNM | Fixe la vidéo normal à l'écran | ^[[?5l |
setorgabs DECOM | Fixe le position de l'origine vers l'absolue | ^[[?6l |
resetwrap DECAWM | Réinitialise le mode d'enveloppe automatique | ^[[?7l |
resetrep DECARM | Réinitialise le mode automatique de répétition | ^[[?8l |
resetinter DECINLM | Réinitialise le mode d'interlatissement | ^[[?9l |
altkeypad DECKPAM | Fixe le mode de clavier alternatif | ^[= |
numkeypad DECKPNM | Fixe le mode de clavier numérique | ^[> |
setukg0 | Fixe l'ensemble de caractères G0 du Royaume-Uni | ^[(A |
setukg1 | Fixe l'ensemble de caractères G1 du Royaume-Uni | ^[)A |
setusg0 | Fixe l'ensemble de caractères G0 des États-Unis | ^[(B |
setusg1 | Fixe l'ensemble de caractères G1 des États-Unis | ^[)B |
setspecg0 | Fixe les caractères spéciaux G0 et l'ensemble de ligne | ^[(0 |
setspecg1 | Fixe les caractères spéciaux G1 et l'ensemble de ligne | ^[)0 |
setaltg0 | Fixe les caractères alternatifs G0 de la ROM | ^[(1 |
setaltg1 | Fixe les caractères alternatifs G1 de la ROM et les caractères graphiques spécifiés. | ^[)1 |
setaltspecg0 | Fixe les caractères alternatifs G0 de la ROM et les caractères graphiques spécifiés. | ^[(2 |
setaltspecg1 | Fixe les caractères alternatifs G1 de la ROM et les caractères graphiques spécifiés. | ^[)2 |
setss2 SS2 | Fixe un simple décalage de 2 | ^[N |
setss3 SS3 | Fixe un simple décalage de 3 | ^[O |
modesoff SGR0 | Désactiver les attributs de caractère | ^[[m |
modesoff SGR0 | Désactiver les attributs de caractère | ^[[0m |
bold SGR1 | Active le mode de caractères gras | ^[[1m |
lowint SGR2 | Active le mode de basse intensité | ^[[2m |
underline SGR4 | Active le mode de soulignement | ^[[4m |
blink SGR5 | Active le mode clignotement | ^[[5m |
reverse SGR7 | Active le mode de vidéo inversé | ^[[7m |
invisible SGR8 | Active le mode texte invisible | ^[[8m |
setwin DECSTBM | Fixe la ligne supérieure et le bas de la fenêtre | ^[[v;vr |
cursorup(n) CUU | Déplace le curseur vers le haut de n lignes | ^[[nA |
cursordn(n) CUD | Déplace le curseur vers le bas de n lignes | ^[[nB |
cursorrt(n) CUF | Déplace le curseur vers la droite de n colonnes | ^[[nC |
cursorlf(n) CUB | Déplace le curseur vers la gauche de n colonnes | ^[[nD |
cursorhome | Déplace le curseur de le coin supérieur gauche | ^[[H |
cursorhome | Déplace le curseur de le coin supérieur gauche | ^[[;H |
cursorpos(v,h) CUP | Déplace le curseur vers l'emplacement de l'écran v,h | ^[[v;hH |
hvhome | Déplace le curseur vers le coin supérieur gauche | ^[[f |
hvhome | Déplace le curseur vers le coin supérieur gauche | ^[[;f |
hvpos(v,h) CUP | Fixe le déplacement vers l'emplacement d'écran (v,h) | ^[[v;hf |
index IND | Déplacement/défilement d'une fenêtre d'une ligne vers le haut | ^[D |
revindex RI | Déplacement/défilement d'une fenêtre d'une ligne vers le bas | ^[M |
nextline NEL | Déplacement vers la ligne suivante | ^[E |
savecursor DECSC | Sauvegarde la position du curseur et les attributs | ^[7 |
restorecursor DECSC | Restaure la position du curseur et les attributs | ^[8 |
tabset HTS | Fixe une tabulation dans la colonne courante | ^[H |
tabclr TBC | Efface une tabulation dans la colonne courante | ^[[g |
tabclr TBC | Efface une tabulation dans la colonne courante | ^[[0g |
tabclrall TBC | Efface toutes les tabulations | ^[[3g |
dhtop DECDHL | Lettres à double hauteur, moitié supérieure | ^[#3 |
dhbot DECDHL | Lettres à double hauteur, moitié inférieure | ^[#4 |
swsh DECSWL | Largeur unique, lettres à hauteur unique | ^[#5 |
dwsh DECDWL | Largeur à double largeur, lettres à hauteur unique | ^[#6 |
cleareol EL0 | Efface la ligne du curseur à droite | ^[[K |
cleareol EL0 | Efface la ligne du curseur à droite | ^[[0K |
clearbol EL1 | Efface la ligne du curseur à gauche | ^[[1K |
clearline EL2 | Efface la ligne entière | ^[[2K |
cleareos ED0 | Efface l'écran en bas du curseur | ^[[J |
cleareos ED0 | Efface l'écran en bas du curseur | ^[[0J |
clearbos ED1 | Efface l'écran en haut du curseur | ^[[1J |
clearscreen ED2 | Efface l'écran entière | ^[[2J |
devstat DSR | Rapport d'état du périphérique | ^[5n |
termok DSR | Réponse: le terminal est OK | ^[0n |
termnok DSR | Réponse: terminal n'est pas OK | ^[3n |
getcursor DSR | Demande la position du curseur | ^[6n |
cursorpos CPR | Réponse: curseur est à v,h ^[v;hR | |
ident DA | Identifie le type de terminal | ^[[c |
ident DA | Identifier le type de terminal (un autre) | ^[[0c |
gettype DA | Réponse: Code de type terminal n | ^[[?1;n0c |
reset RIS | Réinitialiser le terminal à l'état initial | ^[c |
align DECALN | Affichage d'alignement d'écran | ^[#8 |
testpu DECTST | Test de mise au point de la confiance | ^[[2;1y |
testlb DECTST | Test de bouclage de confiance | ^[[2;2y |
testpurep DECTST | Répéter le test de mise sous tension | ^[[2;9y |
testlbrep DECTST | Test de bouclage de répétition | ^[[2;10y |
ledsoff DECLL0 | Désactive toutes les 4 LED | ^[[0q |
led1 DECLL1 | Active la LED #1 | ^[[1q |
led2 DECLL2 | Active la LED #2 | ^[[2q |
led3 DECLL3 | Active la LED #3 | ^[[3q |
led4 DECLL4 | Active la LED #4 | ^[[4q |
Tous les codes ci-dessous sont utilisés en mode de compatibilité VT52. | ||
setansi | Entre ou sort du mode ANSI (VT52) | ^[< |
altkeypad | Entre dans le mode de clavier alternatif | ^[= |
numkeypad | Sortie du mode de clavier alternatif | ^[> |
setgr | Utilise l'ensemble de caractères graphiques spéciaux | ^[F |
resetgr | Utilise l'ensemble de caractères américain et anglais normal | ^[G |
cursorup | Déplace le curseur d'une ligne vers le haut | ^[A |
cursordn | Déplace le curseur d'une ligne vers le bas | ^[B |
cursorrt | Déplace le curseur d'un caractère vers la droite | ^[C |
cursorlf | Déplace le curseur d'un caractère vers la gauche | ^[D |
cursorhome | Déplace le curseur vers le coin supérieur gauche | ^[H |
cursorpos(v,h) | Déplace le curseur vers l'emplacement v,h | ^[vh |
revindex | Génère un saut de ligne inversé | ^[I |
cleareol | Efface jusqu'à la fin de la ligne courante | ^[K |
cleareos | Efface jusqu'à la fin de l'écran | ^[J |
ident | Identifie quel est le terminal | ^[Z |
identresp | Réponse correcte vers l'identificateur | ^[/Z |
Codes de touches spécial : Il est renvoyé du terminal à l'ordinateur lorsque la touche particulière est enfoncée. Notez que les touches de clavier numériques envoient différents codes en mode numérique que en mode alternatif. Voir les codes d'échappement ci-dessus pour modifier le mode clavier. | ||
PF1 | Touche de fonction F1 | ^[OP |
PF2 | Touche de fonction F2 | ^[OQ |
PF3 | Touche de fonction F3 | ^[OR |
PF4 | Touche de fonction F4 | ^[OS |
up | Flèche du haut relâché | ^[A |
up | Flèche du haut enfoncé | ^[OA |
down | Flèche du bas relâché | ^[B |
down | Flèche du bas enfoncé | ^[OB |
right | Flèche de droite relâché | ^[C |
right | Flèche de droite enfoncé | ^[OC |
left | Flèche de gauche relâché | ^[D |
left | Flèche de gauche enfoncé | ^[OD |
0 | 0 du bloc numérique | ^[Op |
1 | 1 du bloc numérique | ^[Oq |
2 | 2 du bloc numérique | ^[Or |
3 | 3 du bloc numérique | ^[Os |
4 | 4 du bloc numérique | ^[Ot |
5 | 5 du bloc numérique | ^[Ou |
6 | 6 du bloc numérique | ^[Ov |
7 | 7 du bloc numérique | ^[Ow |
8 | 8 du bloc numérique | ^[Ox |
9 | 9 du bloc numérique | ^[Oy |
- (moins) | - du bloc numérique | ^[Om |
, (virgule) | , du bloc numérique | ^[Ol |
. (point) | . du bloc numérique | ^[On |
ENTER | Enter du bloc numérique (^M) | ^[OM |
Code source
Voici des exemples du code source de programme permettant de manipuler le terminal VT100 :
Lien | Langage de programmation | Description | Projet |
---|---|---|---|
https://github.com/gladir/corail/blob/master/VT100.PAS | Turbo Pascal, Free Pascal | Afficher le contenu d'un fichier du code de terminal VT100 | Corail |