Interruption 13h |
Fonction 04h |
Vérifie le disque |
---|---|---|
PC, XT, PC Junior, XT/286, AT, PS/2 |
Description
Cette fonction permet d'effectuer la vérification de secteurs.
Entrée
Registre | Description |
---|---|
AH | 04h |
AL | Ce registre indique le nombre de secteurs à vérifier (1 à 128) |
CH | Ce registre indique le nombre de cylindre |
CL | Ce registre indique le numéro de secteur pour le bit 0 à 5, et les bits 7 et 8 correspondent au bits 8 et 9 du nombre de cylindre. |
DH | Ce registre indique le numéro de tête de lecture/écriture |
DL | Ce registre indique l'unité (00h à 7Fh: lecteur de disquette; 80h à FFh pour les disques durs) |
ES:BX | Cette paire de registre indique l'adresse du tampon |
Sortie
Drapeau | Valeur | Description | ||
---|---|---|---|---|
CF | 1 | Erreur, dans ce cas: | ||
Registre | Description | |||
AH | Code d'erreur: | |||
Valeur | Description | |||
01h | Cette valeur indique le numéro de la fonction est invalide | |||
02h | Cette valeur indique la marque d'adresse introuvable | |||
03h | Cette valeur indique une tentative d'écriture sur l'unité de disque protégée contre l'écriture | |||
04h | Cette valeur indique un secteur appelé introuvable | |||
05h | Cette valeur indique un échec de réinitialisation | |||
06h | Cette valeur indique une disquette absente | |||
07h | Cette valeur indique une mauvaise table de paramètres | |||
08h | Cette valeur indique un débordement DMA | |||
09h | Cette valeur indique un transfert de données par-delà la limite de segment | |||
0Ah | Cette valeur indique un secteur défectueux | |||
0Bh | Cette valeur indique une piste défectueux | |||
0Ch | Cette valeur indique un type de média introuvable | |||
0Dh | Cette valeur indique un nombre de secteur invalides | |||
0Eh | Cette valeur indique une marque de contrôle détectée | |||
0Fh | Cette valeur indique un niveau de DMA interdit | |||
10h | Cette valeur indique une erreur de lecture ou d'ECC | |||
11h | Cette valeur indique une erreur CRC corrigée | |||
20h | Cette valeur indique une erreur sur le contrôleur de disque | |||
40h | Cette valeur indique une piste introuvable | |||
80h | Cette valeur indique une erreur de dépassement de délai ou de lecture ne réagissant pas | |||
AAh | Cette valeur indique une unité pas prête | |||
BBh | Cette valeur indique une erreur indéfinie | |||
CCh | Cette valeur indique une erreur d'écriture | |||
E0h | Cette valeur indique une erreur dans le registre d'état | |||
FFh | Cette valeur indique une échec de l'opération demandant l'état | |||
0 | Tous va bien: | |||
Registre | Description | |||
AH | 00h |
Remarques
- Sur les PC, PC/XT et PC/AT avec le BIOS en ROM datés antérieurs au 15 novembre 1985, la paire de registres ES:BX doit pointer vers un tampon valide.
- Sur les disques durs, les 2 bits supérieurs du numéro de cylindre à 10 bits sont placés dans les 2 bits supérieurs du registre CL.
- Cette fonction peut être utilisée pour tester si un support lisible se trouve dans un unité de disquette. Une erreur peut résulter de l'arrêt du moteur du lecteur au moment de la demande, car le BIOS en ROM n'attend pas automatiquement que le lecteur atteigne sa vitesse avant de tenter l'opération de vérification. Le programme demandeur doit réinitialiser le système de disquettes (Interruption 13h, Fonction 00h) et réessayer l'opération trois fois avant de supposer qu'aucune disquette lisible n'est présente.
Références
Aide-mémoire des interruptions du MS-DOS, Edition Marabout, Philippe Mercier, 1990, ISBN: 2-501-01297-6, page 66 à 68.
Dernière mise à jour : Jeudi, le 3 mars 2016