Section courante

A propos

Section administrative du site

Spécification Description
Fabricant IBM
Date de conception 1984
ROM installé 64 Ko
RAM installé 320 Ko, 2 Ko de RAM partageable à l'adresse de mode réel C600h:0000h.
Architecture ISA 8 bits
Affichage 640x480 pixels en 256 couleurs sur une palette de 4096
Taille des caractères 14x8 pixels
Moniteur compatible IBM 5175, Samsung SyncMaster 500s Plus

Introduction

La carte vidéo PGC du fabricant IBM est une carte vidéo destiné au professionnel au milieu du CAD (Conception Assisté par Ordinateur) tirant son nom de l'abréviation de l'anglicisme «Professional Graphic Controller». La carte est extrêmement puissance et dispose de son propre microprocesseur 8088 ainsi que d'une mémoire de 320 Ko, créant par le fait même deuxième micro-ordinateur dans un micro-ordinateur ! Elle pouvait s'insérer dans un PC/XT, PC/XT 286 et un PC/AT. Sa production fut arrêté en 1987, lors de la sortie de la carte IBM 8514/A.


Structure de la mémoire

Voici la signification des cellules mémoires de 2 Ko accessible en mode réel à l'adresse C600h:0000h :

Spécification Description
C600h:0000h à C600h:00FFh Ce champ est utilisé comme tampon entre la carte vidéo PGA et le micro-ordinateur hôte
C600h:0100h à C600h:01FFh Ce champ est utilisé comme tampon de résultat entre la carte vidéo PGA et le micro-ordinateur hôte
C600h:0200h à C600h:02FFh Ce champ est utilisé comme tampon d'erreur entre la carte vidéo PGA et le micro-ordinateur hôte
C600h:0300h Ce champ permet d'indiquer un pointeur d'écriture vers un tampon dans le segment C600h.
C600h:0301h Ce champ permet d'indiquer un pointeur de lecture vers un tampon dans le segment C600h.
C600h:0302h Ce champ permet d'indiquer un pointeur d'écriture vers un tampon dans le segment C610h.
C600h:0303h Ce champ permet d'indiquer un pointeur de lecture vers un tampon dans le segment C610h.
C600h:0304h Ce champ permet d'indiquer un pointeur d'écriture vers un tampon dans le segment C620h.
C600h:0305h Ce champ permet d'indiquer un pointeur de lecture vers un tampon dans le segment C620h.
C600h:0306h Ce champ permet d'indiquer un drapeau de démarrage à froid.
C600h:0307h Ce champ permet d'indiquer un drapeau de démarrage à chaud.
C600h:0308h Ce champ permet de demander un rapport d'erreur si différent de 0.
C600h:030Ah Ce champ contient un résultat d'utilitaire de diagnostique.
C600h:030Bh Ce champ permet de sélectionner le mode CGA si la valeur est différente de 0.
C600h:030Ch Ce champ permet d'indiquer la requête d'affichage (commande DI).
C600h:030Dh Ce champ permet d'indiquer l'affichage reconnu.
C600h:030Eh Ce champ permet d'indiquer une requête de mémoire d'image CGA.
C600h:030Fh Ce champ permet d'indiquer la mémoire d'image CGA reconnu.
C600h:0310h à C600h:0321h Ce champ permet d'indiquer les valeurs respectives de registres AX, BX, CX, DX, BP, SI, DI, DS et ES du microprocesseur 8088 situé sur la carte vidéo PGC.
C600h:0322h Ce champ permet d'indiquer la verticale CGA au total.
C600h:0323h Ce champ permet d'indiquer la verticale CGA affiché.
C600h:0324h Ce champ permet d'indiquer la verticale CGA ajusté.
C600h:0325h Ce champ permet d'indiquer la verticale CGA synchronisé.
C600h:0327h à C600h:0328h Ce champ permet d'indiquer la taille du curseur CGA.
C600h:0329h à C600h:032Ah Ce champ permet d'indiquer l'adresse du curseur CGA.
C600h:032Bh à C600h:032Ch Ce champ permet d'indiquer l'adresse de début du CGA.
C600h:03D8h Ce champ permet d'indiquer la dernière valeur écrite sur le port d'entrée/sortie 3D8h.
C600h:03D9h Ce champ permet d'indiquer la dernière valeur écrite sur le port d'entrée/sortie 03D9h.
C600h:03DBh Ce champ permet d'indiquer l'octet de test de présence.
C600h:03E0h à C600h:03F3h Ce champ permet d'indiquer les dernières valeurs écrites dans l'émulateur CGA du CRTC.
C600h:03F8h à C600h:03F9h Ce champ permet d'indiquer la version firmware de la carte vidéo PGC.
C600h:03FBh Ce champ contient 0A5h si le processeur PGC a passé le test.
C600h:03FCh Ce champ contient 0FFh si la ROM de 32 Ko inférieur de la carte vidéo PGC a échoué le test sinon 5Ah.
C600h:03FDh Ce champ contient 0FFh si la ROM de 32 Ko supérieur de la carte vidéo PGC a échoué le test sinon 55h.
C600h:03FEh Ce champ contient 0FFh si la RAM de la carte vidéo PGC a échoué le test sinon AAh.
C600h:03FFh Ce champ permet de redémarrer la carte PGC si vous écrivez la valeur 50h dans ce champ.
C600h:0400h à C600h:07FFh Ce champ permet contient la pile de traitement de la carte vidéo PGC.

Liste des commandes

Les commandes peuvent être envoyées sous forme texte ASCII ou en une représentation en mode hexadécimal. Voici la liste de tous les commandes PGC :

Commande (ASCII mode) Mode Hexadécimal Paramètres Description
ARC (AR) 3Ch radius,angle1,angle2 (1 coordonnées, 2 mots) Cette commande permet de dessiner un arc centré à la position courante et avec l'angle de début et de fin spécifié. Si le rayon est un angle négatif, le négatif est soustrait de l'axe des X.
AREA (A) C0h Aucun Cette commande permet de remplir la région, en débutant à partir de la position courante avec la couleur courante.
AREABC (AB) C1h colour (1 octet) Cette commande permet de remplir la région mais arrête à la couleur spécifié.
AREAPT (AP) E7h mot,mot... (16 mots) Cette commande permet de fixer la palette de remplissage (par défaut la couleur de remplissage est solide). Le premier mot indique la ligne du bas dans un Bitmap de 16x16 pixels, le second indique la ligne au dessus et ainsi de suite. Pour chacun des mots, le bit 0 est pixel le plus à gauche et le bit 15 est le bit le plus à droite.
BUFFER (BU) 4Fh p, q (2 octets) Cette commande permet d'affecter les drapeaux d'affichage interne.
CA D2h (ou 43h 41h) Aucun Cette commande permet de passer en mode ASCII pour les commandes.
CIRCLE (CI) 38h radius (1 coordonnée) Cette commande permet de dessiner un centre centré à la position de dessin courant.
CLBEG (CB) 70h id (1 octet) Cette commande permet d'entreposer une liste de commande pour l'exécuter plus tard. Les commandes sont accumulés jusqu'au prochain CLEND.
CLDEL (CD) 74h id (1 octet) Cette commande permet de supprimer la commande spécifié de la liste de traitement.
CLEARS (CLS) 0Fh colour (1 octet) Cette commande permet d'effacer l'écran avec la couleur spécifié.
CLEND (CE) 71h Aucun Cette commande permet d'indiquer la fin d'une liste de commande.
CLIPH (CH) AAh mode (1 octet) Cette commande permet de fixer le mode de capture «Hither» selon les valeurs suivantes :
Valeur Description
0 Cette valeur permet d'indiquer qu'il faut désactiver le mode de capture «Hither».
1 Cette valeur permet d'indiquer qu'il faut activer le mode de capture «Hither».
CLIPY (CY) ABh mode (1 octet) Cette commande permet de fixer le mode de capture «Yon» selon les valeurs suivantes :
Valeur Description
0 Cette valeur permet d'indiquer qu'il faut désactiver le mode de capture «Yon».
1 Cette valeur permet d'indiquer qu'il faut activer le mode de capture «Yon».
CLOOP (CL) 73h id, repeats (1 octet, 1 mot) Cette commande permet d'exécuter la liste de commande spécifié un nombre de fois spécifié.
CLRD (CRD) 75h id (1 octet) Cette commande lire la la liste de commande spécifié et retourne la liste en octets hexadécimaux, précédée d'un mot donnant la longueur de la liste.
CLRUN (CR) 72h id (1 octet) Cette commande permet d'exécuter la liste de commande spécifié.
COLOR (C) 06h colour (1 octet) Cette commande permet de sélectionner la couleur de dessin courante, soit une valeur entre 0 et 255.
CONVRT (CV) AFh Aucun Cette commande permet de cartographier la position courante en 3 dimensions en une 2 dimensions et fixe la position de dessin en 2 dimensions dans le résultat.
CX D1h (ou 43h 58h) Aucun Cette commande permet de faire passer les commande en mode hexadécimal. Toutes les commandes ont un octet de long.
DISPLA (DI) D0h mode (1 octet) Cette commande permet de fixer le mode d'affichage selon les valeurs suivantes :
Valeur Description
0 Cette valeur permet d'indiquer le mode d'affichage 640x480 pixels.
1 Cette valeur permet d'indiquer le mode d'émulation CGA.
DISTAN (DS) B1h distance (1 coordonnée) Cette commande permet de fixer la distance de la vue en 3 dimensions. C'est la distance de l'oeil à la vue du point de référence.
DISTH (DH) A8h distance (1 coordonnée) Cette commande permet de fixer la distance de la vue du point de référence à plage de capture «Hither». Tous les points les plus éloignés du spectateur que plage de la capture ne sont pas nécessairement affichés.
DISTY (DY) A9h distance (1 coordonnée) Cette commande permet de fixer la distance de la capture «Yon». Tous les points les plus proches de la vue de la plage de capture ne sont pas nécessairement affichés.
DRAW (D) 28h x,y (2 coordonnées) Cette commande permet de dessiner de la position courante à la position spécifié.
DRAWR (DR) 29h dx,dy (2 coordonnées) Cette commande permet de dessiner une ligne relative à la position courante.
DRAW3 (D3) 2Ah x,y,z (3 coordonnées) Cette commande permet de dessiner de la position courante en 3 dimensions jusqu'à la position en 3 dimensions spécifiés.
DRAWR3 (DR3) 2Bh dx,dy,dz (3 coordonnées) Cette commande permet d'effectuer le tracage d'une ligne relative à la position en 3 dimensions spécifiés.
ELIPSE (EL) 39h Width,Height (2 coordonnées) Cette commande permet de dessiner un ellipse centré à la position de dessin courant.
FILMSK (FM) EFh mask (1 octet) Cette commande permet de fixer le masque de remplissage.
FLAGRD (FRD) 51h Flag no. (1 octet) Cette commande permet de lire les drapeaux de la carte vidéo PGC.
FLOOD (F) 07h colour (1 octet) Cette commande permet de remplir la région correspondant à la vue.
IMAGER (IR) D8h row,col1,col2 (3 mots) Cette commande permet de lire quelques ou tous les points d'une ligne de pixels et la commande IMAGEW retournera la ligne de pixel.
IMAGEW (IW) D9h row,col1,col2, data (3 mots, alors des octets de données) Cette commande permet de mettre quelques ou toute la ligne de pixels entre la colonne spécifié.
LINFUN (LF) EBh mode (1 octet) Cette commande permet de fixer le mode dessin selon les valeurs suivantes :
Valeur Description
0 Cette valeur permet de fixer les pixels à la couleur sélectionné courante.
1 Cette valeur permet d'inverser la couleurs des pixels.
LINPAT (LP) EAh pattern (1 mot) Cette commande permet de sélectionner un motif de ligne (pour des lignes pointillé). Le paramètre est un mot traité comme un motif de Bitmap.
LUT (L) EEh ink, r, g, b (4 octets) Cette commande permet de fixer la palette de couleur ink, dans l'intervalle de 0 à 255. Les couleurs r (rouge), g (vert), b (bleu) doivent être situé dans l'intervalle de 0 à 15.
LUTINT (LI) ECh palette (1 octets) Cette commande permet de fixer la palette standard (0 à 5 ou 255).
LUTRD (LRD) 50h ink (1 octet) Cette commande permet de lire les valeurs de la palette de couleur ink, dans l'intervalle de 0 à 255. Elle retourne les valeurs rouge/vert/bleu dans un tampon de sortie.
LUTSAV (LS) EDh Aucun Cette commande permet de sauvegarder la palette courante. Vous pouvez la restaurer avec la LUTINT 255.
MASK (MK) E8h mask (1 octet) Cette commande permet de fixer le masque de dessin.
MATXRD (MRD) 52h id (1 octet) Cette commande permet de lire une matrice d'un modèle en 3 dimensions. Elle retourne 16 octets, correspondant à une matrice de 4x4. Voici les valeurs reconnues :
Valeur Description
1 Cette valeur permet d'indiquer matrice de modèle.
2 Cette valeur permet d'indiquer matrice de vue.
MDIDEN (MDI) 90h Aucun Cette commande permet de réinitialisé la matrice d'un modèle en 3 dimensions à son identité.
MDMATX (MDM) 97h 16 coordonnées Cette commande permet de fixer la matrice d'un modèle en 3 dimensions : un tableau 4x4 de coordonnées.
MDORG (MDO) 91h x,y,z (3 coordonnées) Cette commande permet de fixer l'origine d'une matrice d'un modèle en 3 dimensions.
MDROTX (MDX) 93h angle (1 mot) Cette commande permet de fixer la rotation de l'axe X d'un modèle en 3 dimensions.
MDROTY (MDY) 94h angle (1 mot) Cette commande permet de fixer la rotation de l'axe Y d'un modèle en 3 dimensions.
MDROTZ (MDZ) 95h angle (1 mot) Cette commande permet de fixer la rotation de l'axe Z d'un modèle en 3 dimensions.
MDSCAL (MDS) 92h xscale, yscale, zscale (3 coordonnées) Cette commande permet d'effectuer une mise à l'échelle d'un modèle en 3 dimensions.
MDTRAN (MDT) 92h dx, dy, dz (3 coordonnées) Cette commande permet d'effectuer une translation d'un modèle en 3 dimensions.
MOVE (M) 10h x,y (2 coordonnées) Cette commande permet de fixer la position de dessin courant.
MOVER (MR) 11h dx,dy (2 coordonnées) Cette commande permet d'ajouter les valeurs fournit à la position de dessin courant.
MOVE3 (M3) 12h x,y,z (3 coordonnées) Cette commande permet de fixer la position de dessin en 3 dimensions.
MOVER3 (MR3) 13h dx,dy,dz (3 coordonnées) Cette commande permet de fournir les valeurs de la position courante de dessin en 3 dimensions.
POINT (PT) 08h Aucun Cette commande permet d'afficher un pixel avec la couleur spécifié à la position de dessin spécifié.
POINT3 (PT3) 09h Aucun Cette commande permet d'afficher un pixel avec la couleur spécifié avec un position de dessin en 3 dimensions.
POLY (P) 30h count, x1,y1,x2,y2,... (1 octet, suivi par 2*count coordonnées) Cette commande permet d'indiquer le nombre de points d'un polygone.
POLYR (PR) 31h count, x1,y1,x2,y2,... (1 octet, suivi par 2*count coordonnées) Cette commande permet d'indiquer les coordonnées relative d'un point de polygone à partir de la position de dessin courant.
POLY3 (P3) 32h count, x1,y1,z1,... (1 octet, suivi par 3*count coordonnées) Cette commande permet de dessiner un polygone dans une espace en 3 dimensions avec des coordonnées x,y,z.
POLYR3 (PR3) 33h count, x1,y1,z1,... (1 octet, suivi par 3*count coordonnées) Cette commande permet de dessiner un polygone dans une espace en 3 dimensions avec des coordonnées x,y,z relative.
PRMFIL (PF) E9h fill (1 octet) Cette commande permet de fixer la valeur de remplissage d'un polygone, soit une valeur entre 0 et 2 :
Valeur Description
0 Cette valeur permet d'indiquer qu'il faut dessiner les polygones sous forme de contours.
1 Cette valeur permet d'indiquer qu'il faut remplir les polygones avec le motif de remplissage courant.
2 Cette valeur permet d'indiquer qu'il ne faut pas vérifier les polygones générés et donc la performance est légèrement amélioré.
PROJCT (PRO) B0h angle (1 mot) Cette commande permet de fixer le type de projection utilisé dans une transformation de 3 dimensions à 2 dimensions.
RECT (R) 34h x,y (2 coordonnées) Cette commande permet de dessiner un rectangle de la position courant à la coordonnée absolue du coin inférieur spécifié.
RECTR (RR) 35h dx,dy (2 coordonnées) Cette commande permet de dessiner un rectangle avec coordonnées relatives à partir de la position de dessin courant.
RESETF (RF) 04h Aucun Cette commande permet de réinitialiser la carte vidéo PGC à ses paramètres par défaut.
SCAN 5Fh search (1 octet) Cette commande permet de retourner 1 si l'octet spécifié est trouvé (dans le tampon d'image) ou 1 sinon.
SECTOR (S) 3D radius,angle1,angle2 (1 coordonnées, 2 mots) Cette commande permet d'effectuer un arc avec le point à la fin.
TANGLE (TA) 82h angle (1 mot) Cette commande permet de fixer l'angle de ligne de base utilisé pour dessiner du texte.
TDEFIN (TD) 84h char_id, width, height, bits... (octets) Cette commande permet de fixer la forme d'un caractère utilisateur.
TEXT (T) 80h "txt" ou 'txt' Cette commande permet de dessiner le texte spécifié du coin inférieur gauche à la position courante.
TEXTP (TP) 83h "txt" ou 'txt' Cette commande permet de dessiner le texte spécifié en utilisant les caractères définit par TDEFIN.
TJUST (TJ) 85h (2 octets) Cette commande permet de fixer le texte à la position relative vers le point courant.
TSIZE (TS) 81h size (1 coordonnée) Cette commande permet de fixer l'espace horizontal entre les caractères.
VWIDEN (VWI) A0h Aucun Cette commande permet de réinitialiser la matrice de vue à son identité.
VWMATX (VWM) A7h 16 coordonnées. Cette commande permet de fixer la matrice de vue en 3 dimensions.
VWPORT (VWP) A1h x1, x2, y1, y2 (mots) Cette commande permet de fixer la région de la vue.
VWRPT (VWR) A1h x,y,z (3 coordonnées) Cette commande permet de fixer un point de référence d'une vue en 3 dimensions.
VWROTX (VWX) A3h angle (1 mot) Cette commande permet d'indiquer une rotation en 3 dimensions de la vue (X).
VWROTY (VWY) A4h angle (1 mot) Cette commande permet d'indiquer une rotation en 3 dimensions de la vue (Y).
VWROTZ (VWZ) A5h angle (1 mot) Cette commande permet d'indiquer une rotation en 3 dimensions de la vue (Z).
WAIT (W) 05h delay (1 mot) Cette commande permet d'attendre le nombre de balayage spécifié.
WINDOW (WI) B3h, 4 mots x1, x2, y1, y2 (mots) Cette commande permet de fixer les coordonnées de fenêtre de visualisation.
  5Bh 71h 8Ch segment, offset,checksum (3 mots) Cette commande permet de sauter à point de transfert de tampon pour un diagnostique de la carte vidéo PGC.

Concurrence

Il existe de nombreux clones de la carte vidéo PGC d'IBM fait par d'autres fabricant. Voici les modèles les plus connues :

Fabricant Modèles
Matrox PG-640, PG-1280 et QG-640
Dell NEC MVA-1024
Everex EPGA
Orchid Technology TurboPGA
Vermont Microsystems IM-640, IM-1024


Dernière mise à jour : Dimanche, le 10 septembre 2017