Section courante

A propos

Section administrative du site

Port d'entrée/sortie 80x86

03D4h/03D5h en couleurs ou 03B4h/03B5h en monochrome

MDA, HGC, EGA, VGA, SVGA Le contrôleur du tube de rayons cathodiques (Cathod Ray Tube Controller ou CRTC)

Description

Concernant les cartes vidéo MDA, HGC, CGA et PC Junior : Seul les registres de 00h à 0Fh sont disponibles car ils sont basé sur les valeurs programmables dans les registres CRTC de la puce MC6845 de Motorola. Il ne faut pas oublier non plus que la plupart de ces cartes disposent seulement de l'accès en écriture. Il est donc impossible de lire des informations ou si vous en lisez les informations seront probablement erronée.

Le circuit VGA et Super VGA possèdent énormément de registres attribué au contrôleur du tube de rayons cathodiques (CRTC pour Cathod Ray Tube Controller). On lui attribue la responsabilité de la génération du signal vidéo. Le CRTC est programmable sans aucune contrainte et le rayon cathodique peut être manipulé avec beaucoup trop de liberté pour sa sécurité: ceci pouvant se révéler fort dangereux pour votre moniteur si vous ne manifestez pas un minimum de prudence! Ainsi, à partir des cartes VGA, afin de sécuriser le matériel contre des programmeurs amateurs et des anciens Virus, les registres sont protégés par un bit de protection (registre 11h du CRTC) empêchant toutes écritures accidentelles. Mais le CRTC dispose aussi de beaucoup d'autres registres n'ayant rien à voir avec le timing du rayon (par exemple Linear Starting Address, attribué à la position de départ de l'affichage mémoire), et peuvent donc être manipulés sans crainte d'endommager votre matériel. Bref, nous entrons en contact avec ces registres au moyen de 2 adresses: tout d'abord 3D4h sert d'index et ensuite 3D5h est destiné aux données. Ces adresses sont attribué à l'affichage couleurs, cependant en monochrome on utilise d'autre adresses, ceux-ci deviendront respectivement 3B4h et 3B5h. On atteint un registre donné en écrivant d'abord son numéro dans le registre d'index et en accédant ensuite, en écriture ou en lecture, au registre de données correspondant alors au registre CRTC recherché. Une fois l'index fixé, il reste valable et les accès peuvent se succéder autant de fois qu'on le désire. Pour des raisons d'efficacité on peut effectuer un accès unique en écriture en émettant un mot (Word) sur le port d'index: l'octet de poids faible doit alors contenir le numéro du registre et l'octet de poids fort la valeur à donner au registre.

Liste des registres

Voici un tableau explicatif de la signification des registres CRTC, Port 3D5h/3B5 en fonction de leur registre :

Registre Nom Description
00h Horizontal Total Les bits de 0 à 7 permettent de renseigner sur la taille d'une ligne en nombre de caractères (Character Times Units). A titre de référence, une unité de ce type correspond soit à 8 pixels (registre 1 du TS: bit 0 = 0, par exemple en mode 320x200) ou 9 pixels (registre 1 du TS: bit 0=0, par exemple en mode texte 80x25 (03h)). La valeur effective de ce registre doit être diminuée de 5 en VGA, Super VGA et de 2 pour une carte en mode EGA.
01h Horizontal Display End Les bits de 0 à 7 fournissent les informations indiquant en pratique le nombre de caractères visible, soit 8 ou 9 pixels. Voir le registre 00h pour mieux saisir les explications...
02h Horizontal Blank Start Les bits de 0 à 7 définissent la position à laquelle le CRTC doit désactivé le rayon cathodique du moniteur lors de l'affichage d'une ligne. La période de blanc contient la période de retour de balayage et créer par conséquent un cadre noir à droite et à gauche de l'écran.
03h Horizontal Blank End Ce registre est divisé en plusieurs catégorie :
  • Pour commencer le bits de 5 à 6 sont utilisées pour le nombre de caractères que le CRTC scrute à l'avance dans la mémoire (autrement dit, il s'agit du signal Display Enable, lequel est retardé en conséquence) afin d'être toujours prêt à renseigner sur le prochain caractère. En VGA, sa valeur par défaut est 0.
  • Tandis que les 5 bits inférieurs, soit ceux situer de 0 à 4, a une taille de 6 bits (0 à 63) représentent la fin de la période de blanc. Le bit 5 de ce nombre pourra être retrouver dans le registre 05h du CRTC.
04h Horizontal Sync Start Les bits de 0 à 7 fournissent la position (en caractère bien-sûr) où se commence le retour de balayage horizontal.
05h Horizontal Synd End Ce registre est divisé en plusieurs catégorie :
  • Les bits de 0 à 4 sont affectés à la fin du retour de balayage horizontal par rapport au début. La première fois que les 5 bits inférieurs du compteur de caractères interne sont identiques au contenu de ce registre, on pourra en conclure que le retour de balayage est achevé.
  • Le bits de 5 et 6 est utiliser pour le Horizontal Sync Skew (délai). Le retour de balayage horizontal est parfois suivi d'un court délai, pour en savoir davantage, on se référera au registre 03h, bits 5 et 6.
  • Le bit 7 sera quand à lui associée au signal horizontal Blank End (registre 03h).
06h Vertical Total Les bits de 0 à 7 sont exploitées afin de donner la hauteur totale de l'image en lignes de balayages (doit être diminuer de 2 pour une carte VGA ou Super VGA et de 1 dans le cas d'une EGA). Ce nombre est compris sur 10 bits (11 en Super VGA). Les bits 8 et 9 se retrouve dans le registre 07h (Overflow).
07h Overflow Toutes les informations contenue dans ce registre sont utilisées en complément d'autres registres. En voici leur signification :
  • Bit 0: Vertical Total (bit 8)
  • Bit 1: Vertical Display Enable End (bit 8)
  • Bit 2: Vertical Sync Start (bit 8)
  • Bit 3: Vertical Blank Start (bit 8)
  • Bit 4: Line compare (Split Screen) (bit 8)
  • Bit 5: Vertical Total (bit 9)
  • Bit 6: Vertical Display Enable End (bit 9)
  • Bit 7: Vertical Sync Start (bit 9)
08h Initial Row Address Ce registre est divisé en plusieurs catégorie:
  • Les bits de 5 à 6 sont exploités afin de permettre un décalage du contenu de l'écran vers la gauche. Le décalage peut aller jusqu'à 3 octets, (en mode 320x200 pixels par exemple), mais il peut se faire avec plus de liberté en maniant l'adresse du début linéaire (Linear Starting Address, registre 0Ch et 0Dh).
  • Les bits de 0 à 4 identifie de leur côté, la ligne de déclenchement du retour de balayage vertical, normalement associé à la ligne 0. Si on augmente ce paramètre, le CRTC débute par une ligne située plus bas, ceci déplaçant le contenu de l'écran vers le haut. En outre, se registre fonctionne de la même façon en mode texte, de sorte que grâce à lui on peut réaliser un défilement continu vertical de l'affichage.
A noter qu'en mode 320x200 en 256 couleurs, on pourra utiliser se principe le suivant afin de ralentir sensiblement le défilement vertical tout en conservant 70 décalages par seconde dans l'objectif d'éviter des tressaillements: l'adresse de début est incrémentée qu'après 2 balayages afin de diminuer la vitesse. Le défilement de fin est ensuite effectué à l'aide de ce registre en le faisant osciller entre les valeurs 0 et 1. A chaque fois le défilement se fera sur une ligne de balayage (correspondant à la moitié d'une ligne d'image en mode 320x200 en 256 couleurs).
09h Maximum Row Address Ce registre est divisé en plusieurs catégorie:
  • Le bit 7 offre l'opportunité assez intéressante de divisé par 2 le rythme de l'horloge (clock rate) s'il est fixé à 1. En terme claire, grâce à ce bit on pourra doubler l'affichage de chaque ligne. Mais pourquoi cette caractéristique si particulière? A l'origine se mécanisme fut prévu pour la génération des modes d'affichages en 200 lignes dans une résolution physique de 400 lignes. La plupart des BIOS passe donc par se bit afin de parvenir à se résultat.
  • Les bits de 0 à 4 pour leur part, donne la hauteur des caractères dans les modes textes diminuée de 1. Par exemple le mode 3 de la carte VGA, avec des caractères de dimension 9x16 pixels, retournera 15. On pourra en plus l'exploiter dans les modes graphiques pour diminuer la résolution verticale (affichage multiple de chaque ligne si les bits de 0 à 4 sont toutefois supérieur à 0), dans le but très certain de provoquer une effet d'étirement.
0Ah Ligne de début du curseur Ce registre est divisé en plusieurs catégorie :
  • Les bits de 0 à 4 sont utilisées afin de désigner où la ligne de balayage désignant le curseur commence à l'intérieur du caractère afficher.
  • Le bit 5 est exploité afin d'offrir aux programmeurs sans techniques compliquer de faire apparaître (0) ou disparaître (1) le curseur.
0Bh Ligne de fin du curseur Ce registre est divisé en plusieurs catégorie:
  • Avec les bits de 0 à 3, dans le même ordre d'idée que le registre précèdent, on exploitera pour ce nombre pour désigner la ligne de balayage où le curseur s'arrête à l'intérieur du caractère afficher.
  • Tandis que les bits 5 et 6, tant qu'à eux, permettront à l'affichage de fixer le délai à laquelle le curseur s'affichera à l'écran. Cela bien entendu, ne s'applique qu'avec une cartes VGA ou postérieur. La valeur par défaut est pour cette raison égale à 0.
La Super VGA de Zymos: La lecture de se registre contrairement aux autres cartes vidéo retournera 2. On utilisera d'ailleurs cette technique afin de détecter la présence de la carte. Cependant, on ne devra pas oublier que le comportement ne s'opère que si le port d'Entrée/Sortie est 3D4h/3D5h et surtout pas 3B4h/3B5h.
0Ch Linear Starting Address High Les bits de 0 à 7 de se registre, contienne les valeurs des bits 8 à 15 associée à l'adresse de début de l'affichage. On peut donc comprendre, qu'il s'agit d'un registre de 16 bits, puisqu'on observe la partie haute de ceux-ci. A titre purement préventif, sachez donc que l'adresse indique la position à l'intérieur de la mémoire de l'écran, où le CRTC commence à lire les données graphiques. En manipulant cette information, on pourra provoquer un défilement horizontal, et vertical de l'écran. En mode texte le défilement se fait toutefois un caractère à la fois, le paramétrage de fin se faisant par le registre 13h de l'ATC (Horizontal Pixel Panning) et le registre 08h du CRTC (Initial Row Address). Par voie de conséquence, dans le cas du défilement continu en mode texte, avant d'écrire dans se registre, on devra obligatoirement diviser par 2 l'adresse réelle en mode pair/impair et par 4 en mode Chain 4 (par exemple 13h).
0Dh Linear Starting Address Low Les bits de 0 à 7 affecte le mot de poids inférieur de l'adresse de début de l'écran. Pour mieux saisir ses explications, voir le registre 0Ch.
0Eh Cursor Address High Les bits de 0 à 7 indiquent la position actuel (partie haute) du curseur dans la mémoire de l'écran.
0Fh Cursor Address Low Les bits de 0 à 7 contiennent le mot de poids faible de l'adresse du curseur.
10h VGA: Vertical Sync Start Les bits de 0 à 7 correspond également au bits de 0 à 7 de la ligne de balayage (pour un grand total de 10 bits) où se déclenche le retour de signal vertical. Les bits 8 et 9 pourront être affecter par l'intermédiaire du registre Overflow (07h).

L'ensemble de puce Ark utilise les bits de 6 à 7 afin de fournir des informations sur la quantité de mémoire installée. Voici la valeur et leur correspondance:

Valeur Description
00b 1 Mo
01b 2 Mo
10b 4 Mo
11b 8 Mo
11h VGA: Vertical Sync End Ce registre est divisé en plusieurs catégorie:
  • Les bits de 0 à 3 correspond à la fin du retour de balayage. Elle est aussi déterminer à partir du début, étant donné que seulement 4 bits sont réellement utilisées à cette effet. Lorsqu'il s'agit de la première fois que les 4 bits inférieur du compteur de lignes internes sont identiques, on peut en déduire qu'un retour de balayage en cours vient d'être achevé.
  • Le bit 4 pour sa part, est exploité afin d'activer l'interruption. Toutefois on ne devra pas oublier qu'à l'issue de chaque interruption, ce bit devra être remis à 0, et cela afin qu'une nouvelle interruption puisse encore être déclencher.
  • Si le bit 5 vaut 0, c'est que l'interruption précédente est réinitialisée par effacement du bit 4, le CRTC déclenche un IRQ2 au prochain retour de balayage vertical. Mais la plupart des cartes VGA ne génèrent pas cette interruption hélas, soit parce qu'elles ne sont tout simplement pas en mesure de la faire a cause de raison matériel ou que le constructeur a décidé de le configurer par micro-interruption DIP dans le but inavoué de rester compatible.
  • Enfin, le bit 7 est ni plus ni moins qu'un très sage bit de protection. Donc s'il est égale à 1, c'est qu'il sera impossible de modifier les registres 0 à 7 du CRTC à l'exception toutefois du bit 4 du registre d'Overflow (registre 07h). Presque tous les BIOS des cartes VGA et Super VGA ne prennent aucun risque et fixe ce bit à 1. On devra donc mettre à 0 ce bit si l'on souhaite effectuer une manipulation du timing.
12h VGA: Vertical Display End Après la ligne correspondant à se numéro, le CRTC coupe littéralement le rayon cathodique. On ne verra donc plus rien d'afficher à l'écran après cette position! Les bits 8 et 9 sont situés dans le registre Overflow (registre 07h).
13h VGA: Row Offset Les bits de 0 à 7 définissent la distance entre 2 lignes située dans la mémoire vidéo, autrement dit leur longueur (Bytes Per Line). L'unité de référence dépendra du type d'adressage courant: en mode double mot on compte en blocs de 8 octets, par exemple dans le mode 13h si le registre contient la valeur 40, la largeur sera calculer comme soit 40 x 8 = 320 octets. En mode d'adressage par mot, l'unité de mesure est par groupe de 2 octets. Par exemple, le mode 320x400 en 256 couleurs, contient dans le registre le nombre 40, le produit sera donc le suivant: 40 x 2 = 80 octets. Ce registre permet également d'exécuter un défilement horizontal. On lui donne par exemple la valeur 80, ensuite la distance les lignes est alors dédoublée et en dehors de l'extrait visible sur le moniteur, on obtient des zones invisibles de la mémoire d'écran. Si on déplace par la suite le début de l'écran de quelques octets, on constatera qu'on peut effectuer un défilement horizontal de l'écran virtuel.
14h VGA: Underline Location Ce registre est divisé en plusieurs catégorie:
  • Les bits de 0 à 4 en mode monochrome, détermine la ligne de balayage de l'ACT exécutant le soulignement. Si on diminue cette valeur, les caractères peuvent se retrouver carrément barrés ou surlignés. Si on dépasse la hauteur d'un caractère, le soulignement est toutefois inactif.
  • Le bit 5, dans l'éventualité où il porterait la valeur 1, provoquera une fréquence de lecture dès lors divisée par 4. On l'emploi le plus régulièrement dans le cas d'un mode double mot.
  • Le bit 6 permettra d'enclencher le mode double mot à condition bien sûr de fixer sa valeur à 1. Dans ce mode particulier, l'adresse actuel subit une rotation de 2 bits vers la gauche, avant d'être ensuite envoyé à la mémoire vidéo pour un accès en lecture. De ce fait, la plupart du temps, ce sont d'abord les positions 0, 4, 8,... puis 1, 5, 9,... étant lu en mémoire. Dans la vie concrète d'une carte vidéo, ce fonctionnement se produit par exemple en mode 320x200 en 256 couleurs.
15h VGA: Vertical Blank Start Les bits de 0 à 7 indique la position vertical où le CRTC doit désactiver le rayon cathodique. C'est à l'intérieur de cette période de blanc que le retour de balayage vertical va être déclenché. On pourra accéder aux bits 8 et 9 en utilisant le registre Overflow (registre 07h).
16h VGA: Vertical Blank End Les bits de 0 à 7 permettent une référence relative au début du blanc, puisque seuls les 8 bits sont utilisés. La première fois que les 8 bits inférieurs du compteur de ligne interne correspondent au contenu de ce registre, la mise à blanc sera terminée.
17h VGA: CRTC Mode Ce registre est divisé en plusieurs catégorie:
  • Si on les mets à 0, les bits 0 à 1 reprogramment les lignes d'adresse 13 et 14: le bit 0 est reproduit en bit 13, le bit 1 en bit 14. Attention, se sera uniquement le cas si le bit 1 de ce registre vaut 0. En conséquence, les adresses impaires sont lues par tranches de 8 Ko après les paires, les 2 bits inférieurs déterminant un bloc. On peut grâce à cette caractéristique, émuler le contrôleur 6845 adressant la mémoire vidéo de cette manière. En CGA le bit 0 est mis à 0 tout comme le bit 1 en émulation du mode Hercules.
  • Le bit 2 s'il est égale à 1, indique que le compteur de ligne n'est incrémenté que toutes les 2 lignes, ceci dédoublant le timing vertical.
  • En mettant à 1 le bit 3, il divise par 2 la fréquence d'accès aux caractères dans la mémoire d'écran. On peut considérer que son rôle est similaire à celui du bit 5 du registre 14h.
  • Si le bit 5 est nul, le bit 15 n'est pas transféré dans le bit 13 en direction du bit 0 (rotation): à titre historique, ce procédé permettait aux cartes EGA munies de 64 Ko de mémoire de ne pas déborder en mode double mot.
  • Si le bit 6 est égale à 0, le mode mot (Word) est actif, sinon il s'agit du mode octet (Byte). Si le bit 6 du registre 14h contient 1 (mode double mot) ce bit n'a plus aucune importance.
  • Une valeur de 0 du bit 7, arrête l'ensemble du timing horizontal et vertical.
18h VGA: Line Compare (Splot Screen) Les bits de 0 à 7 indique où est-ce que la ligne de balayage physique où le CRTC redébute à extraire ses données du commencement de la mémoire d'écran. A l'aide de cette propriété, on peut réaliser un écran partagé en 2: dans la partie supérieure s'affichera le domaine de la mémoire fixé par la Linear Starting Address, tandis que dans la partie inférieure on fixe plutôt le début de la mémoire. Le bit 8 de ce registre se trouve dans le registre d'Overflow, le bit 9 dans le registre Maximum Row Address.
19h Genoa Super EGA: Double Scan Control
  • Le bit 0 fixer à la valeur 1 de la carte Super EGA du fabricant Genoa permet d'activer le double balayage de ligne.
1Bh ET3000: X-Zoom Start Register Ce registre n'est utilisable qu'avec les vidéo équipé d'un ensemble de puces ET3000 de Tseng Labs.
1Ch ET3000: X-Zoom End Register Ce registre n'est utilisable qu'avec les vidéo équipé d'un ensemble de puces ET3000 de Tseng Labs.
1Dh ET3000: Y-Zoom Start Register Low Ce registre n'est utilisable qu'avec les vidéo équipé d'un ensemble de puces ET3000 de Tseng Labs.
1Eh ET3000: Y-Zoom End Register Low Ce registre n'est utilisable qu'avec les vidéo équipé d'un ensemble de puces ET3000 de Tseng Labs.
1Fh ET3000: Y-Zoom Start And End High Register Ce registre n'est utilisable qu'avec les vidéo équipé d'un ensemble de puces ET3000 de Tseng Labs.
20h ET3000: Zoom Start Address Register Low Ce registre n'est utilisable qu'avec les vidéo équipé d'un ensemble de puces ET3000 de Tseng Labs.
21h ET3000: Zoom Start Address Register Medium Ce registre n'est utilisable qu'avec les vidéo équipé d'un ensemble de puces ET3000 de Tseng Labs.
23h ET3000: Extended Start Address Ce registre n'est utilisable qu'avec les vidéo équipé d'un ensemble de puces ET3000 de Tseng Labs.
24h ET3000: Compatibility Register Ce registre n'est utilisable qu'avec les vidéo équipé d'un ensemble de puces ET3000 de Tseng Labs.
25h ET3000: Overflow High Register Ce registre n'est utilisable qu'avec les vidéo équipé d'un ensemble de puces ET3000 de Tseng Labs.
27h Cirrus Logic CL-GD54xx: Chips version Ce registre permet de connaître la version de puce installés de la carte Super VGA de Cirrus Logic :
Valeur Description
8Ah Cirrus Logic CL-GD5420
8Bh Cirrus Logic CL-GD5420 r1
8Ch Cirrus Logic CL-GD5422
90h Cirrus Logic CL-GD5426
94h Cirrus Logic CL-GD5424
98h Cirrus Logic CL-GD5428
9Ch Cirrus Logic CL-GD5429
A0h Cirrus Logic CL-GD5430/40
A4h Cirrus Logic CL-GD5434 révision 4
A8h Cirrus Logic CL-GD5434 révision 8
ACh Cirrus Logic CL-GD5436
B8h Cirrus Logic CL-GD5446
BCh Cirrus Logic CL-GD5480
D0h Cirrus Logic CL-GD5462
D4h Cirrus Logic CL-GD5464
D5h Cirrus Logic CL-GD5464 révision BD
D6h Cirrus Logic CL-GD5465
E8h Cirrus Logic CL-GD5436
29h WD90C00: Unlock Second Bank Ce registre permet d'activer ou désactiver l'accès à la banque de mémoire secondaire.
2Ah WD90C00: EGA Switches Ce registre permet d'autoriser la lecture et l'écriture d'ajustement de la carte vidéo de changer les échangeurs sur la carte vidéo.
2Bh WD90C00: Scatch Pad Ce registre permet de désaffecter la réinitialisation matériel et de le désactiver lors de son redémarrage.
2Ch WD90C00: Interlace H/2 Start Ce registre permet d'indiquer la position de démarrage horizontal du compteur de caractères lors de synchronisation vertical de l'horloge dans un champ alternatif d'une opération d'entrelacement.
2Dh WD90C00: Interlace H/2 End Ce registre permet d'ajuster l'activation d'IRQ, le double balayage vertical, l'activation du mode d'entrelacement et la synchronisation horizontal avec le mode d'entrelacement.
2Dh S3: Extended Chip ID Ce registre permet d'identifier le modèle d'ensemble de puce S3 installée.
2Dh WD90C00: Miscellaneous Control 1 Ce registre permet d'effectuer des ajustement divers d'horloge de la carte vidéo.
2Eh S3 7xx/866/x68: New Chip ID Ce registre permet d'identifier les nouveaux modèle de puce S3 installée.
2Fh S3 7xx/866/x68: Chipset Revision Ce registre permet d'identifier la version du nouvel ensemble de puce S3.
30h WD90C00: Miscellaneous Control 3 Ce registre permet d'effectuer des ajustement divers de la ROM de la carte vidéo.
30h S3: Chip ID/Revision Ce registre permet d'identifier la puce S3 installé ainsi que sa version. Voici les valeurs reconnu :
Valeur Description
81h S3 86c911
82h S3 86c911A ou S3 86c924
90h S3 86c928 (version original)
A0h S3 86c801/805 A-step ou B-step
B0h S3 86c928 PCI
C0h S3 Vision864
C1h S3 Vision864P
D0h S3 Vision964
D1h S3 Vision964P
E0h S3 Trio32/64, 86c866, 86c868, 86c968
E1h S3 Trio32/64, 86c866, 86c868, 86c968
31h S3: Memory Configuration Ce registre permet de connaître la configuration actuel de la mémoire d'une carte vidéo de S3.
32h S3: backward compatibility 1 Ce registre permet d'assurer une certaine compatibilité avec l'ancien matériel.
33h S3: backward compatibility 2 Ce registre permet d'assurer une certaine compatibilité avec l'ancien matériel.
34h ET4000: 6845 compatibility control register Ce registre permet d'assurer une certaine compatibilité avec l'ancien matériel d'affichage :
  • Le bit 0 permet d'assurer la translation EMCK du bit CS0.
  • Le bit 6 permet d'activer le double balayage de ligne / soulignement du mode AT&T.
  • Le bit 7 permet à la carte d'émuler le contrôleur 6845 des cartes CGA.
35h S3: CRT Register Lock Ce registre permet configurer la carte vidéo de S3.
36h Tseng Labs ET4000: Bus RAM Les cartes vidéo étant équipée de la puce Tseng Labs ET4000 permettent de connaître les informations suivantes:
  • Le bit 6 s'il vaut 0, indique que l'accès à la mémoire vidéo se fait en 8 bits, tandis que s'il est vaut 1, elle se fait en 16 bits.
  • Le bit 7 fournira un renseignement dans le même genre, c'est-a-dire que si le bit est à 0, les accès de port d'entrée/sortie sont effectués en 8 bits, et égalera 1 dans le cas de 16 bits.
37h Tseng Labs ET4000: Chips Memory Les cartes vidéo étant équipée de la puce Tseng Labs ET4000 permettent de connaître les informations suivantes à propos de la mémoire avec lequel les cartes sont équipés:
  • Le bit 0 et 1 fournit quatre combinaison possible lequel représente la quantité de mémoire installée sur la carte Super VGA. Les valeurs correspondent au information suivantes:
Valeur Description
00b ou 01b 256 Ko
10b 512 Ko
11b 1 Mo
  • Le bit 4 indique lorsqu'il vaut 0, que le bus de la ROM fait des accès en 8 bits, au contraire lorsqu'il vaut 1, c'est même accès sont effectuer en 16 bits.
  • Le bit 7 est indicateurs intéressant, puisqu'il permet d'indiquer le type de mémoire installée: 0 = DRAM, 1 = VRAM.
38h S3: S3 Register lock Ce registre permet configurer la carte vidéo de S3.
39h S3: Register Lock 2 Ce registre permet configurer la carte vidéo de S3.
3Ah S3: Miscellaneous Ce registre permet configurer la carte vidéo de S3.
3Bh S3: Data Transfer Execute position Ce registre permet configurer la carte vidéo de S3.
3Ch S3: Interlace Retrace Start Ce registre permet configurer la carte vidéo de S3.
40h S3: System Configuration Ce registre permet d'effectuer les ajustements du système d'affichage de la carte vidéo S3:
  • Le bit 0 permet d'activer l'accès aux registres de compatibilité de la carte IBM 8514/A lequel utilise le Port d'Entrée/Sortie x2E8h.
41h Ark: Display Start
S3: BIOS Flag register
Les cartes vidéo d'origine Ark permettent de fixer, à l'aide de se registre, la position de départ de l'affichage à partir de la mémoire.
42h S3: Mode Control Ce registre permet de configurer la carte vidéo de S3.
43h S3: Extended Mode Ce registre permet configurer la carte vidéo de S3.
45h S3: Hardware Graphics Cursor Mode Ce registre permet configurer la carte vidéo de S3.
46h S3: Hardware Cursor Origin X Low Ce registre permet configurer la carte vidéo de S3.
47h S3: Hardware Cursor Origin X High Ce registre permet configurer la carte vidéo de S3.
48h S3: Hardware Cursor Origin Y Low Ce registre permet configurer la carte vidéo de S3.
49h S3: Hardware Cursor Origin Y High Ce registre permet configurer la carte vidéo de S3.
4Ah S3: Hardware Graphics Cursor Foreground Stack Ce registre permet configurer la carte vidéo de S3.
4Bh S3: Hardware Graphics Cursor Background Stack Ce registre permet configurer la carte vidéo de S3.
4Ch S3: Hardware Graphics Cursor Map Start Address Low Ce registre permet configurer la carte vidéo de S3.
4Dh S3: Hardware Graphics Cursor Map Start Address High Ce registre permet configurer la carte vidéo de S3.
4Eh S3: Hardware Cursor Pattern Start X Ce registre permet configurer la carte vidéo de S3.
4Fh S3: Hardware Cursor Pattern Start Y Ce registre permet configurer la carte vidéo de S3.
50h Ark Model Ce registre permet de connaître l'identité de l'ensemble de puce Ark installé.
Valeur Modèle de puces
88h ARK1000VL
90h ARK1000PV
98h ARK2000PV
A0h ARK2000MT
A8h ARK2000MI
51h S3 801+: Extended System Control 2 Ce registre permet configurer la carte vidéo de S3 de série 801 ou postérieur.
52h S3 801+: Extended BIOS Flag 1 Ce registre permet configurer la carte vidéo de S3 de série 801 ou postérieur.
53h S3 801+: Extended Memory Control 1 Ce registre permet configurer la carte vidéo de S3 de série 801 ou postérieur.
54h S3 801+: Extended Memory Control 2 Ce registre permet configurer la carte vidéo de S3 de série 801 ou postérieur.
55h S3 801+: Extended Video DAC Control Ce registre permet configurer la carte vidéo de S3 de série 801 ou postérieur.
56h S3 801+: External Sync Control 1 Ce registre permet configurer la carte vidéo de S3 de série 801 ou postérieur.
57h S3 801+: External Sync Control 2 Ce registre permet configurer la carte vidéo de S3 de série 801 ou postérieur.
58h S3 801+: Linear Address Window Control Ce registre permet configurer la carte vidéo de S3 de série 801 ou postérieur.
59h S3 801+: Linear Address Window Position High Ce registre permet configurer la carte vidéo de S3 de série 801 ou postérieur.
5Ah S3 801+: Linear Address Window Position Low Ce registre permet configurer la carte vidéo de S3 de série 801 ou postérieur.
5Bh S3 801+: Extended BIOS Flag 2 Ce registre permet configurer la carte vidéo de S3 de série 801 ou postérieur.
5Ch S3 801+: General Output Port Ce registre permet configurer la carte vidéo de S3 de série 801 ou postérieur.
5Dh S3 801+: Extended Horizontal Overflow Ce registre permet configurer la carte vidéo de S3 de série 801 ou postérieur.
5Eh S3 801+: Extended Vertical Overflow Ce registre permet configurer la carte vidéo de S3 de série 801 ou postérieur.
5Fh S3 928/964: Bus Grant Termination Position Ce registre permet configurer la carte vidéo de S3 de série 864/964 ou postérieur.
60h S3 864/964: Extended Memory Control 3 Ce registre permet configurer la carte vidéo de S3 de série 864/964 ou postérieur.
61h S3 864/964: Extended Memory Control 4 Ce registre permet configurer la carte vidéo de S3 de série 864/964 ou postérieur.
62h S3 864/964: Extended Memory Control 5 Ce registre permet configurer la carte vidéo de S3 de série 864/964 ou postérieur.
63h S3 864/964: External Sync Delay Adjustment High Ce registre permet configurer la carte vidéo de S3 de série 864/964 ou postérieur.
64h S3 864/964: Genlocking Adjustment Ce registre permet configurer la carte vidéo de S3 de série 864/964 ou postérieur.
65h S3 864/964: Extended Miscellaneous Control Ce registre permet configurer la carte vidéo de S3 de série 864/964 ou postérieur.
66h S3 864/964: Extended Miscellaneous Control 1 Ce registre permet configurer la carte vidéo de S3 de série 864/964 ou postérieur.
67h S3 864/964: Extended Miscellaneous Control 2 Ce registre permet configurer la carte vidéo de S3 de série864/964 ou postérieur.
68h S3 864/964: Configuration 3 Ce registre permet configurer la carte vidéo de S3 de série 864/964 ou postérieur.
69h S3 864/964: Extended System Control 3 Ce registre permet configurer la carte vidéo de S3 de série 864/964 ou postérieur.
6Ah S3 864/964: Extended System Control 4 And Switch Bank Les bits de 0 à 5 sont utilisés par les cartes vidéo S3 de série 864/964 afin de permuter de page de 64 Ko de mémoire à l'adresse segment A000h.
6Bh S3 864/964: Extended BIOS Flag 3 Ce registre permet configurer la carte vidéo de S3 de série 864/964 ou postérieur.
6Ch S3 864/964: Extended BIOS Flag 4 Ce registre permet configurer la carte vidéo de S3 de série 864/964 ou postérieur.
6Dh S3 864/964: Extended Miscellaneous Control Ce registre permet configurer la carte vidéo de S3 de série 864/964 ou postérieur.

Exemple

L'exemple suivant permet de tester la présence de la carte vidéo Zymos :

  1. MOV DX,3D4h
  2. MOV AL,0Bh
  3. OUT DX,AL ; 3D4h
  4. INC DX
  5. IN  AL,DX ; 3D5h
  6. AND AL,0Fh
  7. CMP AL,2
  8. JE  @ZyMosFound
  9.  ; Ce n'est pas une carte vidéo Zymos
  10.  ; ...
  11. @ZyMosFound:
  12.  ; La carte Zymos a été trouvé
  13.  ; ...


Dernière mise à jour : Samedi, le 2 août 2014