LES FONCTIONS DU DOS.
L'interruption 21h
Cette fonction sert à émettre un caractère sur le
périphérique standard de sortie DOS. Au démarrage du système,
ce périphérique est toujours constitué par l'écran, mais par
la suite, il pourra être différent.
Au moment du lancement d'un programme, les affichages satandard
peuvent être détournés sur un autre périphérique par le
moyen du symbole ">".La commande MODE de DOS permet
de demander un détournement systématique.
Mais les programmeurs peuvent admettre que le périphérique
classique de l'affichage standard est l'écran.
La fonction interprète les caractères de contrôle émis. Même
les séquences ESCAPE de la norme ANSI sont prises en compte si
un driver ANSI est chargé.
Après intervention de la fonction, DOS vérifie si
l'utilisateur a appuyé sur la combinaison de touches CTRL + C .
Si tel est le cas, l'interruption 23H est invoquée.
Paramètres d'entrées :
| AH | 02 |
| DL | code ASCII du caractère à afficher . |
Effet en sortie :
Affichage du caractère.
Cette fonction sert à émettre une chaîne de caractères
terminée par un dollar ($) sur le périphérique standard de
sortie DOS.
Au démarrage du système, ce périphérique est toujours
constitué de l'écran , mais par la suite, il pourra être
différent. Au moment du lancement d'un programme, les affichages
standards peuvent être détournés sur un autre périphérique
par le moyen du symbole ">".
La commande MODE de DOS permet de demander un détournement
systématique.
Mais les programmeurs peuvent admettre que le périphérique classique de l'affichage standard est l'écran.
La fonction interprète les caractères de contrôle émis.
Même les séquences ESCAPE de la norme ANSI sont prises en
compte si un driver ANSI est chargé.
Après chaque affichage d'un caractère, DOS vérifie si
l'utilisateur a appuyé sur la combinaison CTRL + C . Si tel est
le cas, l'interruption 23h est invoquée.
Paramètres d'entrées :
| AH | 09 |
| DX | Offset de la chaîne de caractères. |
| DS | Segment de la chaîne de caractères |
Effet en sortie :
Affichage de la chapine de caractères.
Au retour de la fonction, les registre AX,DI,SI,BP et ES peuvent avoir subi des modifications.
Fonctions de saisies de caractères
Cette fonction permet de saisir un caractère avec le
périphérique d'ntrée standard de DOS ( clavier ).
Le caractère ainsi lu est émis sur le périphérique de sortie
standard ( écran ) et la position du curseur est incrementée.
Si pendant l'éxecution de la fonction aucun caractère n'est
disponible sur le périphérique standard, elle attend l'arrivée
du caractère suivant.
Paramètres d'entrées :
| AH | 01 |
Paramètres de sortie :
| AL | code ASCII du caractère lu |
.
Cette fonction permet de saisir une chaîne de caractères
avec le périphérique d'ntrée standard de DOS ( clavier ).
Le caractère ainsi lu est émis sur le périphérique de sortie
standard ( écran ) et la position du curseur est incrementée.
Si pendant l'éxecution de la fonction aucun caractère n'est
disponible sur le périphérique standard, elle attend l'arrivée
du caractère suivant.
Paramètres d'entrées :
| AH | 0Ah |
| DX | Offset d'un buffer de réception. |
| DS | Segment d'un buffer de réception. |
Effets en sortie :
La chaîne de caractères se trouve dans le buffer.
La taille de la zone mémoire adressée par <DS:DX> doit
correspondre au nombre de caractères saisis + 2.
Avant l'appel de la fonction, le premier octet du buffer doit
contenir le nombre maximum de caractères autorisés ( y compris
le caractères <ENTREE> ) .
Après éxecution, le deuxième octet contiendra le nombre de
caractères effectivement saisis. La chaîne proprement dite
commence alors au troisème octet.
Cette fonction n'altère en rien les fonctions du microprocesseur.
Manipulation des interruptions
Cette fonction permet de modifier le contenu d'un vecteur d'une interruption en y référençant une nouvelle routine.
Paramètres d'entrées :
| AH | 25h |
| AL | Numéro de l'intérruption ( 0 - 255 ) |
| DX | Offset de la nouvelle routine |
| DS | Segment de la nouvelle routine |
Effet en sortie :
Nouveau vecteur d'interruption.
Cette fonction n'altère en rien les fonctions du microprocesseur.
Cette fonction permet de lire el contenu de l'un des 256 vecteurs d'interruption. Elle devrait précéder tout appel à la fonction 25h..
Paramètres d'entrées :
| AH | 35h |
| AL | Numéro de l'intérruption ( 0 - 255 ) |
Paramètres de sortie :
| BX | Offset de l'ancienne routine |
| ES | Segment de l'ancienne routine |
Mis à part <BX> et <BS>, cette fonction n'altère en rien les fonctions du microprocesseur.
Fonctions de gestion des programmes.
Depuis l'introduction du DOS, de nombreuses versions se sont
succédées, chacune apportant son lot d'extension.
Cette fonction a été ajoutée pour qu'un programme puisse avoir
s'il a le droit de travailler avec la version de DOS en
éxecution.
Paramètres d'entrées :
| AH | 30h |
Paramètres de sortie :
| AL | Numéro de version ( partie majeure , avant le point décimal ) |
| AH | Numéro de version ( partie mineure, après le point décimal ) |
| BH | Numéro d'OEM |
| BL | Octet de poids fort du numéro de série. |
| CX | mot bas du numéro de série de 24 bits. |
Les contenus des registres <AX>,<BX> et <CX> peuvent se trouver modifiés.
Cette fonction met fin au programme en cours d'éxecution.
Le paramètre transmis par DX permet de laisser en mémoire tout
le programme ou une partie seulement.
Paramètres d'entrées :
| AH | 31h |
| AL | Code de retour |
| DX | Nombre de paragraphes à réserver |
Effet en sortie :
Programme terminé.
Le code de retour transmis par <AL> peut être lu et
traité dans un fichier batch par la commande ERRORLEVEL.
Mais ce type de code n'est pas standardisé. Normalement s'il est
différent de 0, il,indique une erreur.
S'il est égal à 0 , tou s'est bien passé.
Le registre transmis en DX spécifie le nombre de paragraphes
affectés de façon permanente au programme résident. Le
décompte se fait à partir du PSP du processus actif. Un
paragraphe est égal à 16 Octets.
Il n'y a pas lieu de se préoccuper ici des changements possibles
dans les registres,puisque par définition, le programme est
terminé.
Cette fonction met fin au programme en cours d'éxecution. Le contrôle est rendu à l'interpréteur de commandes COMMAND.COM. Si nécessaisre, la partie transitoire de ce dernier est rechargée.
Paramètres d'entrées :
| AH | 4Ch |
| AL | Code de retour |
Effet en sortie :
Programme terminé.
Le code de retour transmis par <AL> peut être lu et
traité dans un fichier batch par la commande ERRORLEVEL.
Mais ce type de code n'est pas standardisé. Normalement s'il est
différent de 0, il,indique une erreur.
S'il est égal à 0 , tou s'est bien passé.
Le registre transmis en DX spécifie le nombre de paragraphes
affectés de façon permanente au programme résident. Le
décompte se fait à partir du PSP du processus actif. Un
paragraphe est égal à 16 Octets.
Il n'y a pas lieu de se préoccuper ici des changements possibles
dans les registres,puisque par définition, le programme est
terminé.
Traitement de fichiers par DOS.
Cette fonction sert à créer un nouveau fichier. Si au moment de son éxecution, un fichier de même nom existe déjà dans le même répertoire, ce fchier est écrasé.
Paramètres d'entrées :
| AH | 3Ch |
| DX | Offset du nom de fichier |
| DS | Segment du nom de fichier |
| CX | Mode d'accès |
Paramètres de sortie :
| <CF>=0 | Création réussie |
| <CF>=1 | Erreur à la création |
Le nom transmis à la fonction doit se présenter comme une
chaîne de caractères ASCII ordinaire à terminer par le code
ASCII 0. Ce nom peut comporter une designation de lecteur et de
chemin d'accès.
Le mode d'accès transmis par <CX> est un champ de bits
dont la structure se présente ainsi :
Si la fonction a été éxécutée correctement ( indicateur
<CF> à 0 ) le registre <AX> contient un numéro
d'acccès appelé "HANDLE". Ce handle permet ensuite
aux fonctions de DOS d'accéder au fichier sans que l'on soit
obligé d'indiquer une nouvelle fois son nom.
Si la fonction présente une erreur ( indicateur <CF> à 1
), le code de cette erreur se trouve dans le registre <AX>.
Sa signification est la suivante.
A part <AX>, aucun des registres du microprocesseur ne se trouve modifié.
Cette fonction permet d'ouvrir un fichier tant que pour l'écriture que pour la lecture.
Paramètres d'entrées
| AH | 3Dh |
| DX | Offset du nom de fichier |
| DS | Segment du nom de fichier |
| AL | Mode d'accès |
Paramètres de sortie : Indicateur
| <CF>=0 | Ouverture réussie |
| <CF>=1 | Erreur à l'ouverture. |
Le nom transmis à la fonction doit se présenter comme une
chaîne de caractères ASCII ordinaire à terminer par le code
ASCII 0. Ce nom peut comporter une designation de lecteur et de
chemin d'accès.
Le mode d'accès transmis par <AL> est un champ de bits
dont la structure se présente ainsi :
Si la fonction a été éxécutée correctement ( indicateur
<CF> à 0 ) le registre <AX> contient un numéro
d'acccès appelé "HANDLE". Ce handle permet ensuite
aux fonctions de DOS d'accéder au fichier sans que l'on soit
obligé d'indiquer une nouvelle fois son nom.
Si la fonction présente une erreur ( indicateur <CF> à 1
), le code de cette erreur se trouve dans le registre <AX>.
Sa signification est la suivante.
A part <AX>, aucun des registres du microprocesseur ne se trouve modifié.
Cette fonction permet à refermer un fichier ouvert au préalable.
Paramètres d'entrées
| AH | 3Eh |
| BX | Handle de la fonction à fermer |
Paramètres de sortie : Indicateur
| <CF>=0 | fermeture réussie |
| <CF>=1 | Erreur à la fermeture. |
La fonction est susceptible de modifier le contenu de <AX>.