Section courante

A propos

Section administrative du site

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 :

  1. #define ASCII_ESC 27
  2. printf("%c[2J", ASCII_ESC);

ou

  1. 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


Dernière mise à jour : Vendredi, le 5 août 2022