Interruption 11h: Demande l'équipement
Cette interruption permet de retourner les informations de configuration de l'ordinateur.
Entrée
Aucune
Sortie
Registre | Description | |||
---|---|---|---|---|
Pour les PC, XT et PC Junior, XT 286, AT | ||||
AX | Ce registre contient des bits de configuration : | |||
Bits | Description | |||
0 | Ce bit vaut 1 si l'ordinateur dispose d'une ou plusieurs unités de disquette. | |||
1 | Ce bit vaut 1 si un coprocesseur est installé. | |||
2 à 3 | Ces bits indiquent la quantité de mémoire installé : | |||
Valeur | PC | XT | ||
00b | 16 Ko | 64 Ko | ||
01b | 32 Ko | 128 Ko | ||
10b | 48 Ko | 192 Ko | ||
11b | 64 Ko | 256 Ko | ||
4 à 5 | Ces bits indiquent le mode vidéo du lancement de l'ordinateur. | |||
Valeur | Description | |||
00b | EGA, PGA, MCGA, VGA et SVGA | |||
01b | Texte couleurs 40x25 | |||
10b | Texte couleurs 80x25 | |||
11b | Texte monochrome 80x25 | |||
6 à 7 | Ces bits indiquent le nombre d'unité de disquette installé sur l'ordinateur. | |||
Valeur | Description | |||
00b | 1 unité de disquette | |||
01b | 2 unités de disquette | |||
10b | 3 unités de disquette | |||
11b | 4 unités de disquette | |||
8 | Ce bit indique si un circuit DMA est installé sur l'ordinateur. | |||
9 à 11 | Ces bits indiquent le nombre de port série RS-232 sont installés sur l'ordinateur. | |||
12 | Ce bit indique si un port de manette de jeux est installé sur cette ordinateur. | |||
13 | Ce bit indique si un modem interne (PC et XT) ou une imprimante série (PC Junior) est installé sur cette ordinateur. | |||
14 à 15 | Ces bits indiquent le nombre d'imprimantes sont installés sur l'ordinateur. | |||
Pour les PS/2, 80386, 80486, Pentium,... | ||||
EAX | Ce registre contient des bits de configuration : | |||
Bits | Description | |||
0 | Ce bit vaut 1 si l'ordinateur dispose d'une ou plusieurs unités de disquette. | |||
1 | Ce bit vaut 1 si un coprocesseur est installé. | |||
2 | Ce bit indique si un périphérique de pointeur de souris de type PS/2 est installé | |||
3 | Ce bit est réservé | |||
4 à 5 | Ces bits indiquent le mode vidéo du lancement de l'ordinateur. | |||
Valeur | Description | |||
00b | EGA, PGA, MCGA, VGA et SVGA | |||
01b | Texte couleurs 40x25 | |||
10b | Texte couleurs 80x25 | |||
11b | Texte monochrome 80x25 | |||
6 à 7 | Ces bits indiquent le nombre d'unité de disquette installé sur l'ordinateur. | |||
Valeur | Description | |||
00b | 1 unité de disquette | |||
01b | 2 unités de disquette | |||
10b | 3 unités de disquette | |||
11b | 4 unités de disquette | |||
8 | Ce bit indique si un circuit DMA est installé sur l'ordinateur. | |||
9 à 11 | Ces bits indiquent le nombre de port série RS-232 sont installés sur l'ordinateur. | |||
12 | Ce bit indique si un port de manette de jeux est installé sur cette ordinateur. | |||
13 | Ce bit indique si un modem interne (PC et XT) ou une imprimante série (PC Junior) est installé sur cette ordinateur. | |||
23 | Ce bit indique s'il vaut 1 que la table de page est ajusté avec un coprocesseur Weitek en mode réel. | |||
24 | Ce bit indique s'il vaut 1 qu'un coprocesseur Weitek est installé. | |||
25 | Ce bit indique s'il vaut 1 que le DMA par le port parallèle supporté (Compaq SystemPro avec 80386+) | |||
26 | Ce bit indique s'il vaut 0 qu'il utilise l'IRQ5, s'il vaut 1 qu'il utilise l'IRQ7 comme DMA interne (Compaq SystemPro avec 80386+) | |||
27 à 28 | Ces bits indiquent que l'ajustement du canal du port parallèle (Compaq SystemPro avec 80386+) | |||
Valeur | Description | |||
00b | DMA en canal 0 | |||
01b | Non-documenté | |||
10b | Réservé | |||
11b | DMA en canal 3 |
Remarque
- Les bits de 2 à 3 de la valeur renvoyée sont utilisés uniquement dans le BIOS en ROM pour le IBM PC d'origine avec la carte système de 64 Ko et sur le PC Junior.
Exemples
Voici un exemple, en Turbo Pascal, permettant de demander l'équipement installé à l'aide de cette interruption :
- Program BiosEquip;
-
- Var
- Equip:Word;
-
- BEGIN
- ASM
- INT 11h
- MOV Equip,AX
- END;
- If (Equip AND $0002) shr 1 = 1 Then Begin
- WriteLn('Coprocesseur mathématique présent');
- End
- Else
- Begin
- WriteLn('Coprocesseur mathématique non installé');
- End;
- WriteLn('Nombre de port RS-232 : ',(Equip AND $0E00) shr 9);
- WriteLn('Nombre de port parallèle : ',(Equip AND $C000) shr 14);
- WriteLn('Nombre de manette de jeu : ',(Equip AND $1000) shr 12);
- END.
Voici un exemple, en Turbo C, permettant de demander l'équipement installé à l'aide de cette interruption :
- #include <stdio.h>
- #include <stdlib.h>
- #include <dos.h>
-
- int main() {
- int Equip;
- geninterrupt(0x11);
- Equip = _AX;
- if((Equip & 0x0002) >> 1) {
- printf("Coprocesseur mathématique présent\n");
- } else {
- printf("Coprocesseur mathématique non installé\n");
- }
- printf("Nombre de port RS-232 : %i\n",(Equip & 0x0E00)>> 9);
- printf("Nombre de port parallèle : %i\n",(Equip & 0xC000) >> 14);
- printf("Nombre de manette de jeu : %i\n",(Equip & 0x1000)>> 12);
- return 0;
- }
Voir également
Assembleur 80x86 - Référence global de la mémoire des compatibles IBM PC - Cellule 00410h à 00411h
Références
Aide-mémoire des interruptions du MS-DOS, Edition Marabout, Philippe Mercier, 1990, ISBN: 2-501-01297-6, page 54 à 56.
Dernière mise à jour : Jeudi, le 3 mars 2016