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