Section courante

A propos

Section administrative du site

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

Exemples

Voici un exemple, en Turbo Pascal, permettant de demander l'équipement installé à l'aide de cette interruption :

  1. Program BiosEquip;
  2.  
  3. Var
  4.  Equip:Word;
  5.  
  6. BEGIN
  7.  ASM
  8.   INT 11h
  9.   MOV Equip,AX
  10.  END;
  11.  If (Equip AND $0002) shr 1 = 1 Then Begin
  12.   WriteLn('Coprocesseur mathématique présent');
  13.  End
  14.   Else
  15.  Begin
  16.   WriteLn('Coprocesseur mathématique non installé');
  17.  End;
  18.  WriteLn('Nombre de port RS-232 : ',(Equip AND $0E00) shr 9);
  19.  WriteLn('Nombre de port parallèle : ',(Equip AND $C000) shr 14);
  20.  WriteLn('Nombre de manette de jeu : ',(Equip AND $1000) shr 12); 
  21. END.

Voici un exemple, en Turbo C, permettant de demander l'équipement installé à l'aide de cette interruption :

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <dos.h>
  4.  
  5. int main() {
  6.  int Equip;
  7.  geninterrupt(0x11);
  8.  Equip = _AX;
  9.  if((Equip & 0x0002) >> 1) {
  10.   printf("Coprocesseur mathématique présent\n");
  11.  } else {
  12.   printf("Coprocesseur mathématique non installé\n");
  13.  }
  14.  printf("Nombre de port RS-232 : %i\n",(Equip & 0x0E00)>> 9);
  15.  printf("Nombre de port parallèle : %i\n",(Equip & 0xC000) >> 14);
  16.  printf("Nombre de manette de jeu : %i\n",(Equip & 0x1000)>> 12);
  17.  return 0;
  18. }

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