Section courante

A propos

Section administrative du site

Interruption 24h: Erreur critique

Cette interruption est appelé par le système d'exploitation à chaque fois qu'une erreur critique survient. Le vecteur d'interruption de machine pour l'interruption 24h (emplacements de mémoire 0000:0090h à 0000:0093h) contient l'adresse de la routine recevant le contrôle lorsqu'une erreur critique (généralement une erreur matérielle) est détectée. Cette adresse est également copiée dans les emplacements 12h à 15h du préfixe de segment de programme (PSP) lorsqu'un programme est chargé mais avant qu'il ne commence à s'exécuter, et est restaurée à partir du PSP (dans le cas où elle a été modifiée par l'application) dans le cadre de la gestion des terminaisons d'une application du système d'exploitation DOS.

Entrée

Registre Description
AH Ce registre permet d'indiquer les drapeaux de processus et le type d'erreur:
Bit Description
0 Ce bit vaut 1 si écriture, 0 si c'est en lecture.
1 à 2 Ces bits permettent d'indiquer la région sur le disque où est survenu l'erreur:
Valeur Description
00b Cette valeur permet d'indiquer la région du système d'exploitation DOS.
01b Cette valeur permet d'indiquer dans la FAT (Table d'allocation de fichier).
10b Cette valeur permet d'indiquer dans le répertoire racine.
11b Cette valeur permet d'indiquer dans la région des données.
3 Ce bit permet d'indiquer un échec d'allocation (DOS 3.0+).
4 Ce bit permet d'indiquer qu'il faut réessayer l'allocation (DOS 3.0+).
5 Ce bit permet d'indiquer qu'il faut ignorer l'allocation (DOS 3.0+).
6 Ce bit n'est pas utilisé.
7 Ce bit permet d'indiquer la classe d'erreur critique:
Valeur Description
0 Cette valeur permet d'indiquer une erreur d'entrée/sortie disque, dans ce cas:
Registre Description
AL Ce registre permet d'indiquer l'unité de disque logique.
1 Cette valeur permet d'indiquer un si c'est un périphérique de bloc, une mauvaise image de FAT en mémoire, si c'est un périphérique de caractères, son code d'erreur est dans le registre DI:
Registre Description
DI L'octet faible de ce registre contient le code d'erreur si le bit 7 de AH vaut 1:
Valeur Système requis Description
00h DOS 1.0+ Cette valeur permet d'indiquer que la disquette est protégé contre l'écriture.
01h DOS 1.0+ Cette valeur permet d'indiquer que l'accès à un périphérique non reconnu par le système d'exploitation.
02h DOS 1.0+ Cette valeur permet d'indiquer que la lecture au périphérique n'est pas prête.
03h DOS 1.0+ Cette valeur permet d'indiquer que l'instruction n'est pas reconnu par le système d'exploitation.
04h DOS 1.0+ Cette valeur permet d'indiquer qu'une erreur CRC est survenu.
05h DOS 1.0+ Cette valeur permet d'indiquer que la largeur des données n'est pas correcte.
06h DOS 1.0+ Cette valeur permet d'indiquer que l'opération de recherche a été infructueuse.
07h DOS 1.0+ Cette valeur permet d'indiquer que le type de périphérique n'est pas reconnu par le système d'exploitation.
08h DOS 1.0+ Cette valeur permet d'indiquer que le secteur est introuvable.
09h DOS 2.0+ Cette valeur permet d'indiquer qu'il n'y a plus de papier dans l'imprimante.
0Ah DOS 2.0+ Cette valeur permet d'indiquer une erreur d'écriture.
0Bh DOS 2.0+ Cette valeur permet d'indiquer une erreur de lecture.
0Ch DOS 2.0+ Cette valeur permet d'indiquer une erreur de catégorie générale.
0Dh DOS 3.0+ Cette valeur permet d'indiquer une erreur de violation de partage de même ressource.
0Eh DOS 3.0+ Cette valeur permet d'indiquer une violation de verrouillage.
0Fh DOS 3.0+ Cette valeur permet d'indiquer un changement d'unité de disque invalide.
10h DOS 3.0+ Cette valeur permet d'indiquer que le FCB est invalide.
11h DOS 3.0+ Cette valeur permet d'indiquer un débordement de tampon dans le partage.
12h DOS 3.3+ Cette valeur permet d'indiquer qu'un code de page de numéro incompatible avec le système d'exploitation.
13h DOS 4.0+ Cette valeur permet d'indiquer qu'une entrée manquante est survenu.
14h DOS 4.0+ Cette valeur permet d'indiquer qu'un espace insuffisante sur l'unité de disque est survenu.
BP:SI Cette paire de registres permet d'indiquer l'entête du pilote de périphérique.

Empiler dans la pile, on retrouve respectivement:

Taille Description
Double mot Adresse de retour pour l'appel de l'interruption 24h
Mot Registre de drapeaux du microprocesseur de l'interruption 24h
Mot Registre AX de l'entrée de l'interruption 21h
Mot Registre BX de l'entrée de l'interruption 21h
Mot Registre CX de l'entrée de l'interruption 21h
Mot Registre DX de l'entrée de l'interruption 21h
Mot Registre SI de l'entrée de l'interruption 21h
Mot Registre DI de l'entrée de l'interruption 21h
Mot Registre BP de l'entrée de l'interruption 21h
Mot Registre DS de l'entrée de l'interruption 21h
Mot Registre ES de l'entrée de l'interruption 21h
Double Mot Adresse de retour de l'appel de l'interruption 21h
Mot Registre de drapeaux du microprocesseur de l'interruption 21h

Sortie

Registre Description
AL Cette registre permet d'indiquer le code d'action à apporté:
Valeur Description
00h Cette valeur permet d'indiquer qu'il faut ignoré l'erreur
01h Cette valeur permet d'indiquer qu'il faut répéter l'opération (RETRY)
02h Cette valeur permet d'indiquer qu'il faut terminer le programme immédiatement à l'aide de l'Interruption 21h, Fonction 4Ch ou Interruption 20h.
03h Cette valeur permet d'indiquer qu'il faut interrompre l'appel de la fonction courante (si DOS 3 ou supérieur).

Remarques

Références

Aide-mémoire des interruptions du MS-DOS, Edition Marabout, Philippe Mercier, 1990, ISBN: 2-501-01297-6, page 297 à 299.

Dernière mise à jour : Jeudi, le 3 mars 2016