# Video Graphics Array

Video Graphics Array (en català, adaptador gràfic de vídeo), conegut generalment per l'acrònim VGA, és tant una pantalla analògica estàndard d'ordinadors, (connector VGA de 15 clavilles D-subminiatura que es va comercialitzar per primera vegada el 1988 per IBM), com a la resolució 640×480. Si bé aquesta resolució ha estat reemplaçada en el mercat de les computadores, s'està convertint de nou popular pels dispositius mòbils. VGA va ser l'últim estàndard de gràfics introduït per IBM que la majoria dels fabricants de clons de PC s'ajustava, fent-lo avui (a partir de 2007) el mínim que tot el maquinari gràfic suporta abans de carregar un dispositiu específic. Per exemple, la pantalla de Microsoft Windows apareix mentre la màquina segueix funcionant en mode VGA, raó per la qual aquesta pantalla apareixerà sempre amb reducció de la resolució i profunditat de color. VGA va ser oficialment substituït per Extended Graphics Array (XGA) estàndard d'IBM però en realitat ha estat reemplaçada per nombroses extensions clon lleugerament diferents de VGA realitzats pels fabricants que van arribar a ser conegudes en conjunt com Super Video Graphics Array (Super VGA).

## Detalls tècnics

VGA que s'anomena "matriu" (array) en comptes d'"adaptador" (adapter), ja que es va posar en pràctica des de l'inici com un sol xip, en substitució dels Motorola 6845 i dotzenes de xips de lògica discreta que cobreixen una longitud total d'una targeta ISA que Monochrome Display Adapter (MDA), Color Graphics Adapter (CGA) i Enhanced Graphics Adapter (EGA) utilitzaven. Això també permet que es col·loquin directament sobre la placa base del PC amb un mínim de dificultat (només requereix memòria de vídeo i un RAMDAC extern). Els primers models IBM PS/2 estaven equipats amb VGA a la placa mare. Les especificacions VGA són les següents:
* 256 kB Vídeo RAM
* Modes: 16-colors i 256-colors
* 262.144 valors de la paleta de colors (6 bits per a vermell, verd i blau)
* Rellotge mestre seleccionable de 25/2 MHz o 28/3
* Màxim de 720 píxels horitzontals
* Màxim de 480 línies
* Taxa de refresc de fins a 70 Hz
* Interrupció vertical buida (No totes les targetes el suporten)
* Mode pla: màxim de 16 colors
* Mode píxel empaquetat: en mode 256 colors (Mode 13h)
* Suport per fer scrolling
* Algunes operacions per a mapes de bits
* Barrel shifter
* Suport per partir la pantalla
* 0,7 V cresta a cresta
* 75 ohm d'impedància (9.3mA - 6.5 mW)
VGA suporta tant els modes de tots els punts direccionables com maneres de text alfanumèrics. Els modes estàndard de gràfics són:
* 640×480 a 16 colors
* 640×350 a 16 colors
* 320×200 a 16 colors
* 320×200 a 256 colors (Mode 13h)
Tant com les formes estàndard, VGA, pot ser configurat per emular qualsevol dels seus modes predecessors (EGA, CGA, and MDA).

## Modes de text estàndard

Els modes estàndard de text alfanumèric per VGA utilitzen 80×25 o 40×25 cel·les de text. Cada cel·la pot triar entre un dels 16 colors disponibles per al seu primer pla i 8 colors per al fons, els 8 colors de fons són els permesos sense el bit d'alta intensitat. Cada caràcter també pot parpellejar, i tots els que es configuren per parpellejar ho fan a l'uníson. L'opció de parpelleig per a tota la pantalla pot ser canviada per la capacitat de triar el color de fons per a cadascuna de les cel·les d'entre tots els 16 colors. Totes aquestes opcions són les mateixes que les de l'adaptador CGA presentat per IBM.
En general els adaptadors VGA suporten el mode text tant en blanc i negre com en color, encara que la manera monocrom, gairebé mai és utilitzat. En blanc i negre en gairebé tots els adaptadors VGA moderns ho fan amb text en color gris sobre fons negre en el mode de color. Els monitors VGA monocrom es van vendre destinats principalment per a aplicacions de text, però la majoria d'ells treballen de manera adequada com a mínim amb un adaptador VGA en el mode de color. De tant en tant una connexió defectuosa a un monitor modern i una targeta de vídeo VGA causa que la targeta detecti el monitor com a monocrom, i d'aquesta manera, la BIOS i la seqüència d'arrencada inicial apareguin en escala de grisos. En general, una vegada que els controladors de la targeta de vídeo s'han carregat (per exemple, mitjançant l'arrencada del sistema operatiu) se sobrecarregaran aquesta detecció i el monitor tornarà a color.
En el mode de text en color, cada caràcter de la pantalla està, en realitat, representat per doble byte. El menor, és el caràcter real per a l'actual conjunt de caràcters, i el superior, o atribut byte és un camp de bits utilitzat per seleccionar els diferents atributs de vídeo, com el color, el parpelleig, el conjunt de caràcters, etc. Aquest esquema parell-byte és una de les característiques que va heretar en última instància VGA de CGA.

## Paleta de colors de VGA

El sistema de color VGA és compatible amb els adaptadors EGA i CGA, i afegeix un altre nivell de configuració a la part superior. CGA va ser capaç de mostrar fins a 16 colors, i EGA va ampliar aquest permetent cada un dels 16 colors que es trien d'una paleta de colors de 64 (aquests 64 colors es componen de dos bits per al vermell, verd i blau: dos bits × tres canals = sis bits = 64 valors diferents). VGA s'estén encara més les possibilitats d'aquest sistema mitjançant l'augment de la paleta EGA de 64 entrades a 256 entrades. Dos blocs de més de 64 colors amb tons més foscos progressivament es van afegir, al llarg de 8 entrades "en blanc" que es van fixar a negre.
A més de l'ampliació de la paleta, a cadascuna de les 256 entrades es podia assignar un valor arbitrari de color a través de la DAC VGA. La BIOS EGA només va permetre 2 bits per canal per a representar a cada entrada, mentre que VGA permetia 6 bits per representar la intensitat de cadascun dels tres primaris (vermell, blau i verd). Això va proporcionar un total de 63 diferents nivells d'intensitat de vermell, verd i blau, resultant 262.144 possibles colors, qualssevol 256 podrien ser assignats a la paleta (i, al seu torn, dels 256, qualsevol 16 d'ells podrien ser mostrades en modes de vídeo CGA).
Aquest mètode va permetre nous colors que s'utilitzaran en els modes gràfics EGA i CGA, proporcionant un recordatori de com els diferents sistemes de paleta s'estableixen junts. Per definir el text de color vermell molt fosc en el mode de text, per exemple, ha de ser fixat a un dels colors CGA (per exemple, el color per defecte, núm. 7: gris clar.) Aquest color després s'assigna a un de la paleta EGA - en el cas del color 7 de CGA, es mapa a l'entrada 42 d'EGA. El DAC VGA s'ha de configurar per a canviar de color 42 a vermell fosc, i després immediatament qualsevol cosa que apareix a la pantalla a la llum de gris (color CGA 7) passarà a ser de color vermell fosc. Aquesta funció es fa servir sovint en jocs DOS de 256 colors. Mentre que les maneres CGA i EGA compatibles permetien 16 colors per a mostrar d'una vegada, altres maneres VGA, com àmpliament utilitzat mode 13h, permetia que les 256 entrades de la paleta es mostraren a la pantalla al mateix temps, i així en aquests maneres qualsevol 256 colors podrien ser vistos dels 262.144 colors disponibles.

## Detalls d'adreçament

La memòria de vídeo de la VGA està assignada a la memòria de PC a través d'una finestra en el rang entre els segments 0xA000 i 0xC000 en la mode real de l'espai d'adreces. Típicament aquests segments són:
* 0xA000 per a modes gràfics EGA/VGA (64 KB)
* 0xB000 per monocrom en mode text (32 KB)
* 0xB800 per a color en mode text i modes CGA gràfics compatibles (32 KB)
A causa de la utilització de diferents assignacions de direcció per als diferents maneres, és possible disposar d'un adaptador de pantalla monocrom i un adaptador de color, com el VGA, EGA o CGA instal·lat a la mateixa màquina. A principis de la dècada de 1980, això es feia servir per mostrar fulls de càlcul de Lotus 1-2-3 en alta resolució de text en una pantalla MDA i gràfics associats en CGA a baixa resolució en una pantalla simultàniament. Molts programadors també utilitzen aquest servei amb la targeta monocrom que mostra informació de depuració mentre corria en un programa de l'altra targeta en mode gràfic. Diversos depuradors, com Borland Turbo Debugger, D86 (per Alan J. Cox) i CodeView de Microsoft podrien treballar en una configuració de monitor dual. Qualsevol de Turbo Debugger o CodeView es podrien utilitzar per depurar Windows. També hi ha controladors de dispositiu DOS, com ox.sys per a implementar una interfície sèrie per simulació a la pantalla MDA, per exemple, permet a l'usuari rebre missatges d'error de depuració de les versions de Windows sense utilitzar un terminal sèrie real. També és possible utilitzar la comanda "MODE MONO" a l'indicador de DOS per a redirigir la sortida a la pantalla monocrom. Quan un adaptador de pantalla monocromàtica no hi era present, es podia utilitzar l'espai d'adreces de memòria 0xB000 - 0xB7FF addicionalment per a altres programes (per exemple, mitjançant l'addició de la línia "DEVICE = EMM386.EXE I = B000-B7FF" a config.sys), aquesta memòria estaria disponible per a programes que poden ser carregats a la memòria alta.

## Trucs de programació

Una tècnica indocumentada però popular anomenada Mode X (encunyat per Michael Abrash) es va utilitzar per fer les tècniques de programació i les resolucions gràfiques possibles que no ho eren d'una altra manera en l'estàndard Mode 13h. Això es va fer per "desmembrar" els 256 KB de memòria VGA en quatre "plans", que faria que tots els 256 KB de RAM de VGA disponibles en els modes de color de 256 colors. Hi va haver una compensació extra de la complexitat i la pèrdua de rendiment en algunes operacions de gràfics, però va ser mitigat per altres operacions cada vegada amb més rapidesa en certes situacions:
* L'ompliment de polígons d'un color podria accelerar a causa de la capacitat d'establir quatre píxels amb una sola escriptura en el maquinari.
* L'adaptador de vídeo podria ajudar en la còpia de regions RAM de vídeo, que de vegades és més ràpid que fer-ho amb la lenta interfície CPU−VGA.
* Diversos modes de major resolució són possibles: a 16 colors, 704×528, 736×552, 768×576, i fins a 800×600 eren possibles. Programari com Xlib (una biblioteca gràfica VGA per C a principis de 1990) i ColoRIX (un programa de tractament de gràfics de 256 colors), també suportava modes de color de 256 colors utilitzant moltes combinacions de les columnes de 256, 320, i 360 píxels, i files de 200, 240, 256, 400, i 480 línies (el límit superior de 640×400, que utilitza gairebé tots els bytes de VGA 256 KB de RAM de vídeo). No obstant això, 320×240 és el més conegut i d'ús freqüent, ja que és el típic format d'imatge de 4:3 amb resolució de píxels quadrats.
* L'ús de múltiples pàgines de vídeo en maquinari permet al programador fer doble buffering, que està disponible en tots els modes de VGA de 16 colors, no era possible utilitzar la modalitat de 13h.
De vegades, la taxa de refresc del monitor havia de ser reduïda per donar cabuda a aquests modes, incrementant l'tensió ocular. També són incompatibles amb alguns monitors més antics, que produeixen problemes de visualització, com el detall de la imatge desaparegut, el pampallugueig, scrolling vertical i horitzontal i de la falta de sincronització en funció de la modalitat que s'intenti. Degut a això, la majoria dels ajustaments VGA utilitzats en productes comercials es van limitar a combinacions "monitor-safe", com 320×240 (píxels quadrats, tres pàgines de vídeos), 320×400 (el doble de resolució, dues pàgines de vídeos), i 360×480 (màxima resolució estàndard VGA compatible amb monitors, un vídeo de la pàgina).
La targeta VGA és una Targeta gràfica que fa servir una norma de visualització de gràfics per ordinador creada el 1987 per IBM, VGA pertany a la família de dispositius MDA. Com va passar amb altres productes d'IBM, múltiples fabricants van crear targetes clòniques compatibles amb la VGA original. Tot i que la tecnologia VGA està antiquada, es va crear el SVGA (Super VGA) una extensió per a VGA amb compatibilitat retroactiva.
La funció principal d'una targeta gràfica és capaç de mostrar informació en una pantalla d'ordinador. Aquesta informació pot ser de diversos tipus: caràcters alfanumèrics, geomètrica... Un adaptador de VGA anomenat simplement han de ser compatibles amb l'estàndard de pantalla VGA. Aquesta norma defineix una sèrie de maneres de visualització que la targeta ha de suportar.
El funcionament intern d'una targeta VGA, pot variar d'un fabricant a l'altre. No obstant això, qualsevol targeta compatible amb l'estàndard té un nombre de components estàndard per garantir el seu funcionament. Aquests components li permetrà associar un color a cada pixel de la pantalla i controlar el moviment de la taca de la CRT.
Les targetes gràfiques modernes per complir les normes molt més avançada que la VGA estàndard. Permeten que les resolucions més fi en maquinari diferent (per exemple, LCD - LCD). Totes aquestes targetes noves, però, emular els components de la targeta VGA en primer lloc per ser compatible amb els programes més antics escrits per VGA.

## Els modes de vídeo del BIOS

En arquitectures com PC, el BIOS proposa una sèrie de modes de vídeo de text o gràfics que el programador pot utilitzar fàcilment (sempre que es fa servir un sistema d'explotació a la crida al BIOS com MS-DOS per exemple). Entre ells figuren el Mode 03h (mode de text 80x25, 16 colors) i Mode 13h (mode gràfic de 320x200, 256 colors). Els noms d'aquests modes del valor que ha de ser un dels paràmetres de la funció dels modes de visualització BIOS canviant (h = hexadecimal).
Els modes de vídeo del BIOS en realitat corresponen a les configuracions específiques de la targeta VGA. És possible crear i utilitzar molts altres mètodes per a la configuració de la targeta de gràfics directament sense emprar el BIOS. Això és el que el sistema operatiu proporciona per les interfícies gràfiques o el jocs de vídeo.

## Components d'una targeta VGA

Cada un dels components de la targeta VGA realitza una transacció específica. Tots aquests components són configurables pel programador que desitgi crear una forma de vídeo. La configuració es realitza mitjançant l'accés als registres de la targeta gràfica. El Mode 13h de BIOS, per exemple, correspon a una configuració específica de tots els registres. En total hi ha més de seixanta 8-registres de bits a la targeta. El nombre de configuracions possibles (i per tant els modes de vídeo) és molt gran. A la pràctica, només un petit nombre d'ells són efectivament utilitzats.

### CRTC (Cathod Ray Tube Controller) o controlador tub de raigs catòdics

Una de les funcions de la targeta és controlar el desplaçament de la taca a la pantalla. És el paper de la CRTC. Té un gran nombre de registres configurables pel programador que afecten directament als moviments del terreny. Gràcies a la CRTC, poden, per exemple, canviar la mida i la resolució de la imatge.

### Memòria de vídeo o de la pantalla

La imatge que apareix a la pantalla s'emmagatzema en la memòria de vídeo. Quan és un text, s'emmagatzemen els caràcters ASCII i el seu color. En mode gràfic, s'emmagatzema el color de cadascun dels píxels a la memòria de la pantalla.
Hi ha un fort vincle entre la memòria de vídeo i la del CRTC. De fet, el CRTC sempre coneix la posició del "spot". Per tant, serà capaç de seleccionar la direcció en la memòria dels píxels (mode gràfic) o de caràcter (mode text) del lloc que es mostra a la pantalla. Una segona funció del CRTC és calcular l'adreça de memòria de vídeo que conté la informació que es visualitza al monitor.

### Controlador de dades gràfiques

En el controlador de gràfics el processador ha de ser capaç d'escriure en la memòria de vídeo, canviï el text o canviar la imatge que apareix a la pantalla. El controlador de gràfics proporciona diverses maneres d'escriptura i lectura de memòria de vídeo. Aquests es fan servir diferents mètodes per accelerar els canvis a la pantalla quan omplir àrees amb el color mateix, per exemple, o còpies de parts de la pantalla. El controlador de gràfics és l'intermediari entre el processador i la memòria de gràfics.

### Digital Analog Converter

El DAC (convertidor digital-analògic) o el monitor és el control de la intensitat dels tres feixos d'electrons (vermell, verd, blau) que permetrà la visualització de diferents colors. Ha de rebre senyals analògics per al control de les bigues, no els senyals digitals. La DAC té una paleta, un índex de color (a escollir entre 256), combina les proporcions dels tres senyals de color vermell, verd i blau. Aquestes proporcions poden ser modificades pel programador per a cada un de 256 colors. El DAC és llavors responsable de traduir les proporcions associades amb un anàleg dels senyals de color perfectament comprensible el monitor.

### ATC (Attribute Controller o controlador d'atributs)

Periòdicament, les dades de la memòria de vídeo han de ser analitzats per deduir la imatge que apareix a la pantalla. Els atributs del controlador es carregarà a la pantalla, a deduir de la informació en la memòria de vídeo (caràcters en mode de text o gràfics en color, manera de píxel) d'índex a la paleta del CAD.

### TS (Timing sequenciator)

El TS o seqüenciador de temps sincronitza tots els components de la targeta que figuren fins ara. Ell és el responsable de la gestió del rellotge i s'encarrega d'actualitzar la gestió de memòria de vídeo i la concurrència en la memòria.
També afecta a la gestió del seqüenciador mode d'adreçament de memòria de vídeo. La capacitat de memòria de 256 kb. No obstant això, el processador només té un espai d'adreces de 64 kb per a l'accés. Això es deu a la memòria de vídeo està compost de 4 "planes" de 64 kb. L'elecció de la "plana" quan el processador accedeix a la memòria depèn del mode d'adreçament utilitzat.

## Programació de la targeta VGA

Tots els components de la targeta VGA, discutida anteriorment, tenen 8-registres modificables pel programador (amb l'excepció del de memòria de vídeo). Tots els registres (mapa de registres) compten amb un mode de vídeo propi, pe: els modes 03h i 13h del BIOS, ambdós corresponen a una configuració particular del mapa de registres, per a la de la targeta VGA, el Mode X. Aquests modes corresponen a les configuracions del mapa de registres per obtenir més avantatges dels modes gràfics que el simple mode 13h (per als jocs de vídeo) per exemple: 640x480 a 256 colors.
L'accés als registres de la targeta VGA es fa mitjançant instruccions d'entrada/sortida en assemblador per a processadors x86 cap al port del mapa de registres que es vol accedir.

## Vegeu també

* Color Graphics Adapter
* PC 99
* DVI
* High-Definition Multimedia Interface
* Super Video Graphics Array

## Enllaços externs

* programació de la targeta VGA