Interruption 10h |
Fonction 1Bh |
Fonction disponible? |
|---|---|---|
| VGA et SVGA ou PS/2 | ||
Description
Cette fonction permet de demander les fonctions vidéo disponibles.
Entrée
| Registre | Description |
|---|---|
| AH | 1Bh |
| BX | Type d'implémentation (Toujours 0000h) |
| ES:DI | Cette paire de registre permettra d'indiquer l'adresse du tampon de 64 octets allant recevoir en sortie |
Sortie
| Registre | Description | |||||
|---|---|---|---|---|---|---|
| AL | Contient 1Bh si l'opération s'est correctement déroulé. | |||||
| ES:DI | Si l'opération s'est bien déroulé, cette paire de registre contient un tampon de 64 octets avec les informations suivantes: | |||||
| Déplacement | Taille | Description | ||||
| 00h à 03h | 4 octets | Ce double mot contient un pointeur sur l'information de possibilités supporté par la carte. Le tampon à la structure suivante: | ||||
| Déplacement | Taille | Description | ||||
| 00h à 03h | 4 octets | Ce double mot de 32-bits indique les modes vidéo (Interruption 10h, Fonction 00h) supportés: | ||||
| Bit | Description | |||||
| 0 | Ce bit vaut 1 si le mode 00h est supporté | |||||
| 1 | Ce bit vaut 1 si le mode 01h est supporté | |||||
| 2 | Ce bit vaut 1 si le mode 02h est supporté | |||||
| 3 | Ce bit vaut 1 si le mode 03h est supporté | |||||
| 4 | Ce bit vaut 1 si le mode 04h est supporté | |||||
| 5 | Ce bit vaut 1 si le mode 05h est supporté | |||||
| 6 | Ce bit vaut 1 si le mode 06h est supporté | |||||
| 7 | Ce bit vaut 1 si le mode 07h est supporté | |||||
| 8 | Ce bit vaut 1 si le mode 08h est supporté | |||||
| 9 | Ce bit vaut 1 si le mode 09h est supporté | |||||
| 10 | Ce bit vaut 1 si le mode 0Ah est supporté | |||||
| 11 | Ce bit vaut 1 si le mode 0Bh est supporté | |||||
| 12 | Ce bit vaut 1 si le mode 0Ch est supporté | |||||
| 13 | Ce bit vaut 1 si le mode 0Dh est supporté | |||||
| 14 | Ce bit vaut 1 si le mode 0Eh est supporté | |||||
| 15 | Ce bit vaut 1 si le mode 0Fh est supporté | |||||
| 16 | Ce bit vaut 1 si le mode 10h est supporté | |||||
| 17 | Ce bit vaut 1 si le mode 11h est supporté | |||||
| 18 | Ce bit vaut 1 si le mode 12h est supporté | |||||
| 19 | Ce bit vaut 1 si le mode 13h est supporté | |||||
| 04h à 06h | 3 octets | Ces octets sont réservés | ||||
| 07h | 1 octet | Cet octet indique le nombre de lignes de balayage supporté en mode texte: | ||||
| Bit | Description | |||||
| 0 | Ce bit vaut 1 si 200 lignes de balayage sont supportés | |||||
| 1 | Ce bit vaut 1 si 350 lignes de balayage sont supportés | |||||
| 2 | Ce bit vaut 1 si 400 lignes de balayage sont supportés | |||||
| 3 | Ce bit vaut 1 si 480 lignes de balayage sont supportés | |||||
| 08h | 1 octet | Cet octet permet d'indiquer le nombre de blocs de caractères disponibles en mode texte (voir Interruption 10h, Fonction 11h) | ||||
| 09h | 1 octet | Cet octet permet d'indiquer le nombre de maximal de blocs caractères actifs en mode texte | ||||
| 0Ah à 0Bh | 2 octets | Ce mot de 16-bits indique les diverses possibilités du BIOS: | ||||
| Bit | Description | |||||
| 0 | Ce bit vaut 1 si tous les modes sont actifs sur toutes les cartes (toujours 0 en MCGA) | |||||
| 1 | Ce bit vaut 1 si la somme des valeurs de gris est autorisée | |||||
| 2 | Ce bit vaut 1 si un affichage monochrome est présent | |||||
| 3 | Ce bit vaut 1 si un chargement de la palette par défaut est interdit | |||||
| 4 | Ce bit vaut 1 si l'émulation du curseur est autorisée | |||||
| 5 | Ce bit vaut 1 si la palette EGA de 64 couleurs est disponible | |||||
| 6 | Ce bit vaut 1 si le chargement des registres de couleurs est possible | |||||
| 7 | Ce bit vaut 1 si la pagination des registres de couleurs est possible | |||||
| 8 | Ce bit vaut 1 si le crayon lumineux est disponible | |||||
| 9 | Ce bit vaut 1 si la sauvegarde et restitution de l'affichage à l'aide de l'Interruption 10h, Fonction 1Ch est possible | |||||
| 10 | Ce bit vaut 1 si le contrôle intensité/clignotement est possible | |||||
| 11 | Ce bit vaut 1 si la demande/définition du code de combinaison possible | |||||
| 0Ch à 0Dh | 2 octets | Ce mot est réservé | ||||
| 0Eh | 1 octet | Cet octet de 8-bits indique les diverses possibilités de la zone de sauvegarde: | ||||
| Bit | Description | |||||
| 0 | Ce bit vaut 1 si le jeu de 512 caractères est actif | |||||
| 1 | Ce bit vaut 1 si la zone de sauvegarde dynamique est active | |||||
| 2 | Ce bit vaut 1 si la surcharge de la police texte est active | |||||
| 3 | Ce bit vaut 1 si la surcharge de la police graphique est active | |||||
| 4 | Ce bit vaut 1 si la surcharge de la palette est autorisée | |||||
| 5 | Ce bit vaut 1 si l'extension de code de combinaison est active | |||||
| 0Fh | 1 octet | Cet octet est réservé | ||||
| 04h | 1 octet | Cet octet permet d'indiquer le mot d'affichage courant | ||||
| 05h à 06h | 2 octets | Ce mot permet d'indiquer le nombre de colonnes de caractères | ||||
| 07h à 08h | 2 octets | Ce mot permet d'indiquer la longueur du tampon d'affichage en octets | ||||
| 09h à 0Ah | 2 octets | Ce mot permet d'indiquer le segment d'une adresse d'affichage du coin supérieur gauche de l'écran | ||||
| 0Bh à 1Ah | 16 octets | Cet ensemble de 8 couple d'octets permet d'indiquer la position respectivement Y et X de curseur sur chacune des 8 pages | ||||
| 1Bh | 1 octet | Cet octet permet d'indiquer la ligne de début du curseur | ||||
| 1Ch | 1 octet | Cet octet permet d'indiquer la ligne de fin du curseur | ||||
| 1Dh | 1 octet | Cet octet permet d'indiquer le numéro de la page courante | ||||
| 1Eh à 1Fh | 2 octets | Ce mot permet d'indiquer le port d'Entrée/Sortie de la carte vidéo: 3B?h en monochrome, 3D?h en couleurs | ||||
| 20h | 1 octet | Cet octet permet d'indiquer le contenu du port d'Entrée/Sortie 3B8h ou 3D8h | ||||
| 21h | 1 octet | Cet octet permet d'indiquer le contenu du port d'Entrée/Sortie 3B9h ou 3D9h | ||||
| 22h | 1 octet | Cet octet permet d'indiquer le nombre de lignes de caractères | ||||
| 23h à 24h | 2 octets | Ce mot permet d'indiquer la hauteur de caractères en ligne de balayage | ||||
| 25h | 1 octet | Cet octet permet d'indiquer le code de la carte vidéo active: | ||||
| Valeur | Description | |||||
| 00h | Cette valeur permet d'indiquer qu'il n'y a pas de carte vidéo d'installé | |||||
| 01h | MDA avec moniteur monochrome | |||||
| 02h | CGA avec moniteur CGA | |||||
| 03h | Réservé | |||||
| 04h | EGA avec au moniteur EGA ou multisync | |||||
| 05h | EGA avec un moniteur monochrome | |||||
| 06h | PGA avec un moniteur 5175 | |||||
| 07h | VGA avec un moniteur monochrome analogique | |||||
| 08h | VGA avec un moniteur couleur analogique | |||||
| 09h | Réservé | |||||
| 0Ah | MCGA avec un moniteur couleur digital | |||||
| 0Bh | MCGA avec un moniteur monochrome digital | |||||
| 0Ch | MCGA avec un moniteur couleur analogique | |||||
| FFh | Cette valeur permet d'indiquer la carte vidéo est inconnue | |||||
| 26h | 1 octet | Cet octet permet d'indiquer le code de carte vidéo inactive: | ||||
| Valeur | Description | |||||
| 00h | Cette valeur permet d'indiquer qu'il n'y a pas de carte vidéo secondaire d'installé | |||||
| 01h | MDA avec moniteur monochrome | |||||
| 02h | CGA avec moniteur CGA | |||||
| 03h | Réservé | |||||
| 04h | EGA avec au moniteur EGA ou multisync | |||||
| 05h | EGA avec un moniteur monochrome | |||||
| 06h | PGA avec un moniteur 5175 | |||||
| 07h | VGA avec un moniteur monochrome analogique | |||||
| 08h | VGA avec un moniteur couleur analogique | |||||
| 09h | Réservé | |||||
| 0Ah | MCGA avec un moniteur couleur digital | |||||
| 0Bh | MCGA avec un moniteur monochrome digital | |||||
| 0Ch | MCGA avec un moniteur couleur analogique | |||||
| FFh | Cette valeur permet d'indiquer la carte vidéo est inconnue | |||||
| 27h à 28h | 2 octets | Ce mot permet d'indiquer le nombre de couleurs affichables (0 en monochrome) | ||||
| 29h | 1 octet | Cet octet permet d'indiquer le nombre de pages d'affichage | ||||
| 2Ah | 1 octet | Cet octet permet d'indiquer le nombre de lignes de balayage: | ||||
| Valeur | Nombre de lignes de balayage | Carte vidéo requise | ||||
| 00h | 200 | EGA, MCGA, VGA et Super VGA | ||||
| 01h | 350 | EGA, MCGA, VGA et Super VGA | ||||
| 02h | 400 | MCGA, VGA et Super VGA | ||||
| 03h | 480 | Certaines cartes Super VGA | ||||
| 05h | 600 | Certaines cartes Super VGA | ||||
| 06h | 768 | Certaines cartes Super VGA | ||||
| 08h | 352 | Certaines cartes Super VGA | ||||
| 09h | 364 | Certaines cartes Super VGA | ||||
| 04h, 07h, 0Ah à FFh | Réservé | Certaines cartes Super VGA | ||||
| 2Bh | 1 octet | Cet octet permet d'indiquer le bloc de caractères primaires (voir Interruption 10h, Fonction 11h, Sous-Fonction 03h) | ||||
| 2Ch | 1 octet | Cet octet permet d'indiquer le bloc de caractères secondaire | ||||
| 2Dh | 1 octet | Cet octet permet d'indiquer des informations divers: | ||||
| Bits | Description | |||||
| 0 | Ce bit vaut 1 si tous les modes sont actifs sur toutes les cartes (=0 pour la MCGA) | |||||
| 1 | Ce bit vaut 1 si la somme des valeurs de gris est autorisée | |||||
| 2 | Ce bit vaut 1 si un affichage monochrome est présent | |||||
| 3 | Ce bit vaut 1 si le chargement de la palette par défaut est interdit | |||||
| 4 | Ce bit vaut 1 si l'émulation du curseur est autorisé (toujours 0 en MCGA) | |||||
| 5 | Ce bit indique l'état du bit I/C (0=intensité, 1=clignotement) | |||||
| 6 | Ce bit vaut 1 si un écran plat est activé | |||||
| 2Dh | 1 octet | Cet octet permet d'indiquer des informations sur les fonctionnalités non-VGA: | ||||
| Bits | Description | |||||
| 0 | Ce bit vaut 1 si le BIOS supporte le retour d'information de l'adaptateur d'interface | |||||
| 1 | Ce bit vaut 1 si un pilote d'adaptateur d'interface est requis | |||||
| 2 | Ce bit vaut 1 si le mode en 16-bits de couleurs est présent | |||||
| 3 | Ce bit vaut 1 si les attributs MFI sont actifs (voir Interruption 10h, Fonction 12h, Sous-fonction 37h), vaut 0 s'il s'agit des attributs VGA. | |||||
| 4 | Ce bit vaut 1 si le mode 132 colonnes en écran de texte est supporté | |||||
| 2Fh à 30h | 2 octets | Ces octets sont réservés | ||||
| 31h | 1 octet | Cet octet permet d'indiquer la taille de la mémoire vidéo: | ||||
| Valeur | Description | |||||
| 00h | 64 Ko | |||||
| 01h | 128 Ko | |||||
| 02h | 192 Ko | |||||
| 03h | 256 Ko ou plus | |||||
| 32h | 1 octet | Cet octet permet d'indiquer l'état du pointeur de sauvegarde: | ||||
| Bits | Description | |||||
| 0 | Ce bit vaut 1 si le jeu de 512 caractères est actif, 0 s'il est inactif | |||||
| 1 | Ce bit vaut 1 si la zone de sauvegarde dynamique est actif, 0 s'il est inactif | |||||
| 2 | Ce bit vaut 1 si la surcharge de la police de caractères texte est active | |||||
| 3 | Ce bit vaut 1 si la surcharge de la police de caractères graphique est active | |||||
| 4 | Ce bit vaut 1 si la surcharge de la palette est autorisée | |||||
| 5 | Ce bit vaut 1 si l'extension de code de combinaison est active | |||||
| 33h à 3Fh | 13 octets | Ces octets sont réservés | ||||
Références
La Bible du PC: Programmation système - Sixième Edition, Edition Micro-Application, Michael Tischer, 1996, ISBN: 2-7429-0544-8, page 1604 à 1605.
Advanced Programmer's Guide to Super VGA Cards: The Advanced Programmer's Graphic Library Volume II, Edition Brady, George Sutty and Steve Blair, 1990, ISBN: 0-13-010455-8, page 82 à 85.
The Undocumented PC: A programmer's Guide to I/O, CPUs, and Fixed Memory Areas - Second Edition, Edition Addison-Wesley, Frank van Gilluwe, 1997, ISBN: 0-201-47950-8, page 439 à 443.
Dernière mise à jour : Jeudi, le 3 mars 2016
