# ANSI.SYS

Le fichier ANSI.SYS est un pilote de périphérique du MS-DOS de la société Microsoft qui implémente partiellement un sous-ensemble de contrôle des terminaux textes proposé par l'ANSI X3L2 Technical Committee on Codes and Character Sets (the "X3 Committee"). Il étend les fonctionnalités d'une console dépourvue de ce support.
Dans les environnements de la famille Linux ou plus généralement Unix, ce fichier n'est pas nécessaire dans la mesure où des fonctionnalités équivalentes sont fournies par d'autres moyens (l'affichage des couleurs par exemple est généralement directement implémenté par défaut dans les différents émulateurs de terminaux).
Les terminaux VT100 incluent également un système équivalent (en fait la première mise en œuvre du protocole ANSI). Les systèmes, même s'ils sont hétérogènes, sont en partie interopérables.
Les fonctionnalités implémentées telles que la couleur ou les déplacements de curseur le sont au travers de chaînes d'octets mêlées au texte à l'aide de ta technique dite de séquence d'échappement, qui commence par l'octet d'échappement. Dans la plupart des encodages (en particulier les familles d'encodage ASCII et Unicode), ce caractère d'échappement a la valeur 27-décimal, mais sur les systèmes EBCDIC, le caractère d'échappement peut prendre la valeur 39-décimal.

## Application

Le pilote ANSI.SYS fait partie de plusieurs systèmes d'exploitation Microsoft dont :
* MS-DOS
* Windows 95
* Windows 98
* Windows NT
* Windows 2000
* Windows XP
* Windows Vista
* Windows 2003 (version x86)
ANSI.SYS est nécessaire pour faire afficher des graphismes élaborés en mode texte, en particulier pour redéfinir la couleur. D'ailleurs ces fichiers portent souvent l'extension ".ANS". D'autre part, ces séquences étaient utilisées pour développer des jeux en mode texte, avec un fichier Batch.

## Syntaxe

Pour utiliser ANSI.SYS sous MS-DOS, il faut ajouter la ligne suivante au fichier config.sys :
où [lecteur:] et [chemin] sont les lecteurs et le chemin où trouver le pilote ANSI.SYS.
Remarque : il existe sous FreeDOS, un utilitaire appelé NANSI.EXE qui est un programme résident, ayant les mêmes fonctionnalités qu'ANSI.SYS fourni avec MS-DOS.

## Fonctionnalités

Une fois chargé, ANSI.SYS permet de modifier la position du curseur, d'afficher du texte en couleur (les couleurs d'avant plan et d'arrière plan peuvent être modifiées), et changer de mode graphique et surtout de redéfinir des touches du clavier, ce qui permet de programmer des macros (ceci était très utiles avant l'apparition de DOSKEY avec le MS-DOS 5.0).
Voici quelques séquences d'échappement :
| Code | Effet |
| CSI = n h | Définit le mode écran. |
| CSI = n l | Annule le mode d'affichage. |
| CSI code ; param [ ; param ] p | Redéfinit une touche du clavier. |
Modes d'écran :
| Mode | Description | Mode | Description |
| 0 | 40 × 25 mono | 1 | 40 × 25 couleurs |
| 2 | 80 × 25 mono | 3 | 80 × 25 couleurs |
| 4 | 320 × 200 couleurs | 5 | 320 × 200 mono |
| 6 | 640 × 200 mono | 14 | 640 x 200 couleurs (mode graphique en 16 couleurs) |
| 13 | 320 x 200 couleurs (mode graphique) | 19 | 320 x 200 couleurs (mode 256 couleurs) |
| 15 | 640 x 350 monochrome (mode graphique) | 16 | 640 x 350 couleurs (mode graphique 16 couleurs) |
| 17 | 640 x 480 monochrome (mode graphique) | 18 | 640 x 480 couleurs (mode 16 couleurs) |
| 7 | Passage automatique à la ligne suivante (scrolling) | | |