Interruption 21h |
Fonction 44h, Sous-fonction 0Dh |
IOCTL: Contrôle d'Entrée/Sortie par bloc |
---|---|---|
DOS 3.2+, OS/2, Windows NT |
Description
Cette fonction de type IOCTL permet d'effectuer des contrôles d'Entrée/Sortie sur un périphérique de caractères orienté en bloc.
Entrée
Registre | Valeur ou description | |
---|---|---|
AX | 440Dh | |
BL | Ce registre permet d'indiquer l'unité de disque : | |
Valeur | Description | |
0 | Cette valeur permet d'indiquer l'unité courante | |
1 | Cette valeur permet d'indiquer l'unité de disque A: | |
2 | Cette valeur permet d'indiquer l'unité de disque B: | |
3 | Cette valeur permet d'indiquer l'unité de disque C: | |
4 | Cette valeur permet d'indiquer l'unité de disque D: | |
5 | Cette valeur permet d'indiquer l'unité de disque E: | |
6 | Cette valeur permet d'indiquer l'unité de disque F: | |
7 | Cette valeur permet d'indiquer l'unité de disque G: | |
8 | Cette valeur permet d'indiquer l'unité de disque H: | |
9 | Cette valeur permet d'indiquer l'unité de disque I: | |
10 | Cette valeur permet d'indiquer l'unité de disque J: | |
11 | Cette valeur permet d'indiquer l'unité de disque K: | |
12 | Cette valeur permet d'indiquer l'unité de disque L: | |
13 | Cette valeur permet d'indiquer l'unité de disque M: | |
14 | Cette valeur permet d'indiquer l'unité de disque N: | |
15 | Cette valeur permet d'indiquer l'unité de disque O: | |
16 | Cette valeur permet d'indiquer l'unité de disque P: | |
17 | Cette valeur permet d'indiquer l'unité de disque Q: | |
18 | Cette valeur permet d'indiquer l'unité de disque R: | |
19 | Cette valeur permet d'indiquer l'unité de disque S: | |
20 | Cette valeur permet d'indiquer l'unité de disque T: | |
21 | Cette valeur permet d'indiquer l'unité de disque U: | |
22 | Cette valeur permet d'indiquer l'unité de disque V: | |
23 | Cette valeur permet d'indiquer l'unité de disque W: | |
24 | Cette valeur permet d'indiquer l'unité de disque X: | |
25 | Cette valeur permet d'indiquer l'unité de disque Y: | |
26 | Cette valeur permet d'indiquer l'unité de disque Z: | |
CL | Code de fonction: | |
Code de fonction | Description | |
40h | Cette fonction indique de fixer les paramètres d'un périphérique. | |
41h | Cette fonction permet d'effectuer l'écriture d'une piste. | |
42h | Cette fonction permet d'effectuer le formatage et la vérification d'une piste. | |
60h | Cette fonction indique de demander les paramètres d'un périphérique. | |
61h | Cette fonction permet d'effectuer la lecture d'une piste. | |
62h | Cette fonction permet d'effectuer la vérification d'une piste. | |
DS:DX | Adresse du bloc de paramètres |
Sortie
Registre | Valeur ou description | |||
---|---|---|---|---|
FC | Ce registre de drapeau de retenue permet d'indiquer le résultat de l'opération : | |||
Valeur | Description | |||
0 | Tout va bien, si a été appelé avec CL=60h ou 61h, DS:DX=Adresse du bloc de paramètres | |||
1 | Cette valeur permet d'indiquer qu'une erreur s'est produite, dans ce cas : | |||
Registre | Description | |||
AX | Ce registre permet d'indiquer le code d'erreur |
Remarques
- Voici pour les codes inférieur à 40h (fixer les paramètres d'un périphérique), et 60h (demande les paramètres d'un périphérique), le bloc de paramètres est formaté comme suit :
- Voici le champ BPB d'un périphérique structure ses données sur le disque courant et ses zones de contrôle. Ce champ est structuré de la façon suivante :
- Pour les codes inférieurs 41h (écriture de caractères) et 61h (lecture d'une piste), le bloc de paramètres a le format suivant :
- Pour le code inférieur 42h (formatage et vérification de piste) et 62h (vérification de piste), le bloc de paramètres est structuré comme suit :
Déplacement | Longueur | Description | ||
---|---|---|---|---|
00h | 1 octet | Ce champ contient des fonctions spécialisés: | ||
Bits | Description | |||
0 | Ce bit indique s'il vaut 1 indique qu'il utilise le BPB courant, sinon (0) le champ de périphérique BPB contient un nouveau BPB par défaut | |||
1 | Ce bit indique s'il vaut 1 indique qu'il utilise tous les champs du bloc de paramètres, sinon (0) utilise seulement le champ de structure piste | |||
2 | Ce bit indique s'il vaut 1 indique qu'il utilise tous les secteurs de même taille sinon (0) utilise tous les secteurs de piste pouvant être de taille différente | |||
01h | 1 octet | Ce champs contient le type de périphérique: | ||
Code | Description | |||
00h | Ce code indique une unité disque de 5"1/2, 320/360Ko | |||
01h | Ce code indique une unité disque de 5"1/2, 1,2 Mo | |||
02h | Ce code indique une unité disque de 3"1/2, 720 Ko | |||
03h | Ce code indique une unité disque de 8", simple densité | |||
04h | Ce code indique une unité disque de 8", double densité | |||
05h | Ce code indique une unité disque fixe | |||
06h | Ce code indique une unité disque à dérouleur de bande (TAPE) | |||
07h | Ce code indique un autre type d'unité disque | |||
02h à 03h | 2 octets | Ce champ contient l'attribut de périphérique: | ||
Bits | Description | |||
0 | Ce bit indique s'il vaut 1 que le support de stockage n'est pas amovible | |||
1 | Ce bit indique s'il vaut 1 que le verrouillage de la porte est pris en charge | |||
04h à 05h | 2 octets | Ce champ contient le nombre de cylindres | ||
06h | 1 octet | Ce champ contient le type de support: | ||
Code | Description | |||
0 | Ce code indique un disque 5"1/2; 1,2 Mo | |||
1 | Ce code indique un disque 5"1/2; 320/360 Ko | |||
07h à 25h | 31 octets | Ce champ indique le périphérique BPB | ||
26h à ??? | ? octets | Ces champs indique l'organisation des pistes: | ||
Déplacement | Description | |||
Mot | Ce champ indique le nombre de secteurs par piste | |||
Mot | Ce champ indique le numéro du premier secteur dans la piste | |||
Mot | Ce champ indique la taille du premier secteur dans la piste | |||
: | ||||
Mot | Ce champ indique le numéro du dernier secteur de la piste | |||
Mot | Ce champ indique la taille du dernier secteur de la piste |
Déplacement | Longueur | Description |
---|---|---|
00h à 01h | 2 octets (1 mot) | Ce champ contient le nombre d'octet par secteur. |
02h | 1 octet | Ce champ contient le nombre de secteur par unité d'allocation. |
03h à 04h | 2 octets (1 mot) | Ce champ contient le nombre de secteur réservé au début de l'unité de disque. |
05h | 1 octet | Ce champ contient le nombre de tables d'allocation de fichiers (FAT). |
06h à 07h | 2 octets (1 mot) | Ce champ contient le nombre de maximum d'entrées dans le répertoire racine. |
08h à 09h | 2 octets (1 mot) | Ce champ contient le nombre de secteurs. |
0Ah | 1 octet | Ce champ contient le descripteur du support. |
0Bh à 0Ch | 2 octets (mot) | Ce champ contient le nombre de secteurs par FAT. |
0Dh à 0Eh | 2 octets (mot) | Ce champ contient le nombre de secteurs par piste. |
0Fh à 10h | 2 octets (mot) | Ce champ contient le nombre de têtes. |
11h à 14h | 4 octets (double mot) | Ce champ contient le nombre de secteurs cachés. |
15h à 1Fh | 11 octets | Ce champ est réservé pour un usage interne ou futur. |
Déplacement | Longueur | Description |
---|---|---|
00h | 1 octet | Ce champ contient une fonction spécial (doit être égal à 0). |
01h à 02h | 2 octets (mot) | Ce champ contient la tête. |
03h à 04h | 2 octets (mot) | Ce champ contient le cylindre. |
05h à 06h | 2 octets (mot) | Ce champ contient le secteur de début. |
07h à 08h | 2 octets (mot) | Ce champ contient le secteur à transférer. |
09h à 0Ch | 2 octets (mot) | Ce champ contient l'adresse du tampon de transfert. |
Déplacement | Longueur | Description |
---|---|---|
00h | 1 octet | Ce champs contient une fonction spécial (doit être égal à 0). |
01h à 02 | 1 octet | Ce champs contient la tête. |
Références
Aide-mémoire des interruptions du MS-DOS, Edition Marabout, Philippe Mercier, 1990, ISBN: 2-501-01297-6, page 237 à 241.
Dernière mise à jour : Jeudi, le 3 mars 2016