La
Color Graphics Adapter
(
Adaptador de Graficos de Color
) o
CGA
, comercializada en 1981, fue la primera
tarjeta grafica
en color de
IBM
(originalmente llamada
Color/Graphics Adapter
or
IBM Color/Graphics Monitor Adapter
,
[
1
]
), y el primer estandar grafico en color para el
IBM PC
.
Cuando IBM introdujo en el mercado su PC en 1981, el estandar CGA, a pesar de haber aparecido al mismo tiempo, era poco usado al principio, ya que la mayoria de los compradores adquirian un PC para uso profesional. Para juegos habia otros ordenadores mucho mas populares, y en aquella epoca no se consideraba que los graficos en color tuvieran otro uso que el puramente ludico. En consecuencia, muchos de los primeros compradores del PC optaron por la
Monochrome Display Adapter
(MDA), que solo permitia la visualizacion de texto.
En 1982 se comercializo la
Hercules Graphics Card
, que permitia mostrar graficos monocromaticos a una resolucion mucho mayor que la CGA, ademas de ser compatible con la MDA, lo que perjudico todavia mas a las ventas de la CGA. Todo cambio en 1984 cuando IBM introdujo el
IBM Personal Computer/AT
y la
Enhanced Graphics Adapter
(EGA). Con ello, el precio de la antigua tarjeta CGA bajo considerablemente y se convirtio en una interesante alternativa de bajo coste, por lo que las nuevas empresas dedicadas a la fabricacion de PC clonicos la adoptaron rapidamente. Los PC no-AT de bajo coste con tarjetas CGA se vendieron muy bien en los anos siguientes, y como consecuencia muchos juegos fueron editados para ellos a pesar de sus limitaciones. La popularidad de la CGA comenzo a desaparecer cuando en 1987 la tarjeta
VGA
se convirtio en la nueva solucion de alto nivel, relegando la EGA a los PC de bajo coste.
La tarjeta estandar CGA de IBM incorporaba 16
kilobytes
de
VRAM
, y podia conectarse a un monitor de
video compuesto
NTSC
o a una
television
mediante un
conector RCA
, o a un monitor de 4-bit "RGBI"
[
2
]
como el
IBM 5153
mediante un conector
DE-9
.
[
3
]
Permitia mostrar varios modos graficos y de texto. La resolucion maxima era 640×200, y la mayor
profundidad de color
soportada era de 2 bits (4 colores). El modo mas conocido, usado en la mayoria de los juegos CGA, mostraba 4 colores a una resolucion de 320×200.
Aunque los 4 colores estaban considerados generalmente como el limite para la tarjeta CGA, era posible aumentar esa cantidad mediante varios metodos (algunos oficiales, otros no).
La paleta de colores de la CGA
[
editar
]
'''Paleta completa de 16 colores CGA'''
|
0 ? negro
#000000
|
8 ? gris (oscuro)
#555555
|
1 ? azul
#0000AA
|
9 ? azul intenso
#5555FF
|
2 ? verde
#00AA00
|
10 ? verde intenso
#55FF55
|
3 ? cian
#00AAAA
|
11 ? cian intenso
#55FFFF
|
4 ? rojo
#AA0000
|
12 ? rojo intenso
#FF5555
|
5 ? magenta
#AA00AA
|
13 ? magenta intenso
#FF55FF
|
6 ? marron
#AA5500
|
14 ? amarillo
#FFFF55
|
7 ? blanco (gris claro)
#AAAAAA
|
15 ? blanco intenso
#FFFFFF
|
La tarjeta CGA funcionaba con monitores en color
CRT
RGBI. Estaba basada en el controlador de video
Motorola 6845
y tenia una paleta de 16 colores. El rojo, el verde y el azul correspondian a cada uno de los tres rayos catodicos y el negro significaba que todos los rayos estaban casi apagados. El cian era una mezcla de los rayos verde y azul, el magenta de azul y rojo, y el marron de verde y rojo. El blanco (o gris claro) era una mezcla de los tres rayos.
Los 8 colores restantes se conseguian mediante la activacion de un
bit de intensificacion
, consiguiendo una version mas brillante de cada color, aunque el gris oscuro no se podia distinguir del negro en muchos monitores. El diseno
RGB + bit de intensificacion
de la CGA se denominaba
RGBI
.
El
Commodore 128
utilizaba el mismo metodo para transmitir colores por su salida RGBI, por lo que se podian conectar los mismos monitores y mostrar los mismos 16 colores.
Existe cierta confusion respecto al color #6 en los monitores RGBI: siguiendo estrictamente el modelo de color RGBI, el color #6 deberia ser amarillo oscuro (#AAAA00) (ver mas abajo). Sin embargo, IBM opto por incluir circuiteria adicional en el monitor de color 5153 para detectar el color #6 y rebajar el componente verde para convertirlo en un tono marron mas agradable (#AA5500), asi que la mayoria de monitores "compatibles con CGA" imitan este comportamiento. La teoria predominante sobre esta decision es que IBM pretendia que los colores se aproximaran a los del terminal del
mainframe
3270
, concretamente el
3279
, pero esta informacion no esta comprobada.
Modos de texto estandar
[
editar
]
La CGA permitia usar dos modos de texto:
- 40×25 caracteres
con 16 colores para el texto y 8 de fondo. Cada caracter esta formado por un patron de 8×8
pixels
. La resolucion efectiva de este modo es de 320×200
pixeles
(con una
relacion de aspecto
de 1:1.2), aunque no es posible acceder a los pixeles individuales. Por lo tanto, los patrones estaban limitados a uno de los 256 caracteres almacenados en un
chip
de
ROM
en la propia tarjeta, por lo que la
tipografia
de los modos de texto era fija y no se podia cambiar (aunque en una tarjeta IBM CGA original del IBM PC era posible seleccionar entre dos tipografias diferentes, normal o delgada, cambiando un
jumper
no presente en la mayoria de los clones). En este modo cada caracter podia tener un color primario y otro de fondo que podian ser escogidos libremente de la paleta CGA completa (ver tabla); por ejemplo, texto amarillo para un caracter, blanco sobre negro para el siguiente y cian sobre gris para otro. La tarjeta tenia suficiente
VRAM
para 8 paginas de texto diferentes en este modo.
- 80×25 caracteres
con 16 colores para el texto y 8 de fondo. Nuevamente cada caracter era un patron de puntos de 8×8 (con el mismo juego de caracteres del modo de 40×25), con una relacion de aspecto de 1:2.4. La resolucion efectiva era de 640×200 pixeles, que al igual que en el otro modo de texto no eran accesibles individualmente. Debido a que la cantidad de caracteres en pantalla de este modo era el doble, solo 4 paginas de texto podian ser almacenadas en la
VRAM
.
Modos graficos estandar
[
editar
]
|
Paleta CGA fija de 4 colores #1
|
color por defecto
|
5 ? magenta
|
3 ? cian
|
7 ? blanco (gris claro)
|
|
Paleta CGA fija de 4 colores #2
|
color por defecto
|
4 ? rojo
|
2 ? verde
|
6 ? marron (naranja)
|
La CGA ofrecia dos modos graficos usados habitualmente:
- 320×200 pixeles
, como en el modo de texto de 40×25. Sin embargo, en el modo grafico era posible acceder a cada pixel individualmente, aunque solo 4 colores podian ser mostrados simultaneamente. Esos 4 colores no se podian elegir libremente de entre los 16 totales, ya que solo habia dos paletas oficiales para este modo:
- Magenta, cian, blanco y el color de fondo (negro por defecto).
- Rojo, verde, marron/amarillo y el color de fondo (negro por defecto).
Activando el bit de intensificacion era posible conseguir versiones mas brillantes de estos colores.
- La relacion de aspecto de 1:1.2 debia ser tenida en cuenta a la hora de dibujar grandes formas geometricas en la pantalla.
- 640×200
pixeles, como en el modo de texto de 80×25. Todos los pixeles podian ser accedidos libremente. Este modo era monocromo, permitiendo solamente los colores blanco y negro (aunque esto podia ser cambiado), con una relacion de aspecto de 1:2.4.
En el modo de texto, los
mapa de bits
de las tipografias provenian de la ROM de caracteres, que solo era accesible para la propia tarjeta. En los modos graficos, en cambio, la salida de texto usaba dos tablas diferentes: los primeros 128 caracteres del conjunto eran obtenidos de una tabla en la
BIOS
en la direccion F000:FA6E, y los 128 restantes provenian de la direccion indicada por la interrupcion 1F (0000:007C). Esta segunda mitad aparecia como espacios en blanco (o como caracteres sin sentido, depende de la implementacion) a menos que fueran definidos explicitamente, normalmente por una utilidad como GRAFTABL o por el programa ejecutado.
El modo de video compuesto
[
editar
]
Aunque desconocido para muchos, existia un modo grafico adicional de
video compuesto
de
160×200
(con relacion de aspecto de 1.67:1), en el que se podian utilizar 16 colores diferentes. Este modo no utilizaba la tabla de colores CGA, sino que era mas parecido al modo de "alta resolucion duplicada" del
Apple II
, ya que ambos utilizaban una tecnica similar. El modo compuesto fue raramente utilizado; la falta de soporte en la BIOS impidio que muchos programadores lo adoptaran, y el coste de un sistema IBM era tan alto que la mayoria de sus compradores no podian permitirse adquirir el tambien el costoso monitor RGB. Solo unos pocos titulos de software (la mayoria juegos) utilizaron este modo.
Una equivocacion comun es que el modo compuesto era soportado por algunas maquinas con monitor RGB, pero esto seria una contradiccion teniendo en cuenta el funcionamiento de este modo. La explicacion mas probable es la creencia de que los modos de 160×200 del
IBM PCjr
/
Tandy 1000
o el
Amstrad CPC
son lo mismo (son iguales en cuanto a resolucion, pero no en cuanto a color y organizacion de memoria). Cualquier intento de activar el modo compuesto en un monitor RGB producia un resultado identico al modo grafico de 640×200.
Otros modos graficos y trucos
[
editar
]
|
Tercera paleta fija CGA "trucada"
|
color por defecto
|
4 - rojo
|
3 ? cian
|
7 ? blanco (gris claro)
|
|
Existia una serie de posibilidades oficiales y no oficiales que podian ser utilizadas para conseguir mejores graficos.
- En el modo de 320×200, el color de fondo, que por defecto era el negro despues de la inicializacion, podia ser cambiado para cualquiera de los 16 colores de la paleta CGA. Esto permitia introducir cierta variedad y algunos efectos de destellos, ya que era posible cambiar el color sin tener que redibujar la pantalla.
- En el modo de 640×200, el color principal podia ser cambiado para cualquiera de los 16 colores basicos.
- En los modos de texto, el color del borde (mostrado fuera del area de visualizacion, y normalmente negro) podia ser cambiado a cualquiera de los 16 colores.
- Existia una tercera paleta de 4 colores para el modo de 320×200 que podia ser utilizada activando el bit de monocromo con el modo de color activado. Esto cambiaba los colores de paleta a rojo, cian, blanco, mas el color de fondo.
- Mediante una sincronizacion precisa, era posible cambiar de paleta mientras el contenido de la pantalla todavia se estaba dibujando, permitiendo usar cualquiera de las 3 en cada linea de escaneo. El mejor ejemplo de uso de esta tecnica es el juego
California Games
[
4
]
cuando se ejecuta en un
8088
a 4.77
MHz
(en un ordenador mas rapido no se obtendria el efecto, ya que se perderia la sincronizacion necesaria para cambiar las paletas en el momento adecuado) Lo mismo se puede hacer con el color de fondo, para crear el rio y la carretera en
Frogger
.
[
5
]
Otro ejemplo documentado de esta tecnica es la conversion realizada por
Atarisoft
de
Jungle Hunt
al IBM PC.
- Se podian aproximar colores adicionales mediante
tramado
. Si la imagen era desplegada en un televisor convencional (que tenian en ese entonces una baja resolucion), se podian ver 16 colores solidos cuando se trabajaba con la resolucion estandar de 320×200, pero si la imagen era vista en un monitor de color (de alta resolucion) no aparecian los 16 colores sino que se notaba el tramado.
Algunas de estas tecnicas se podian combinar. Se pueden encontrar algunos ejemplos en juegos.
[
6
]
La mayoria de los titulos no utilizaron estas posibilidades, pero hay algunas excepciones sorprendentes.
El modo de 160×100 con 16 colores
[
editar
]
Tecnicamente este no era un modo grafico, sino un truco realizado mediante el modo de texto de 80×25. Consistia en cambiar el registro que indicaba la altura de las celdas de los caracteres para que mostrara solo 2 lineas por celda en vez de las 8 normales. Esto cuadruplicaba el numero de lineas de texto visibles, de 25 a 100. Estos caracteres "comprimidos" no se mostraban completos, sino solamente las dos lineas superiores, de 8 pixeles cada una.
|
Caracter 221.
|
|
221 con texto azul y fondo rojo.
|
|
221 con texto rojo y fondo azul.
|
|
Caracter 222.
|
El caracter 221 del juego extendido de caracteres
ASCII
es un rectangulo que ocupa la mitad izquierda de la celda, mientras que el caracter 222 ocupa la mitad derecha.
Cada caracter podia tener un color diferente para el texto y el fondo, por lo que podia ser coloreado, por ejemplo, azul en la izquierda (texto) y rojo en la derecha (fondo), con la posibilidad de invertirlo intercambiando los colores de texto y fondo.
Usando el caracter 221 o 222, cada mitad de cada caracter podia ser usado como un pixel individual, lo cual daba un total de 160 pixels por linea horizontal. Asi era posible mostrar 160×100 pixeles con 16 colores simultaneos y una relacion de aspecto de 1:1.2.
|
Un unico gran "pixel" en el modo de 160×100.
Estas son las dos filas superiores de la mitad del caracter 221.
Tengase en cuenta los 8 pixeles que lo forman y la
proporcion 1:1.2 de los pixeles.
|
|
Aunque suponia dar un rodeo considerable para conseguir el objetivo final de mostrar 16 colores simultaneos, funcionaba bastante bien
[
7
]
y este modo era mencionado (aunque no explicado en detalle) en la documentacion oficial del hardware de IBM.
Usando otros caracteres para combinar el
arte ASCII
con esta tecnica, era posible conseguir un nivel de detalle mayor.
La misma tecnica de reduccion de las celdas de texto se podia usar con el modo de 40×25, pero solo tenia sentido combinandolo con arte ASCII, ya que de lo contrario la resolucion resultante seria de solo 80×100.
[
8
]
[
9
]
[
10
]
Errores y errata
[
editar
]
El error mas notable del hardware de la CGA era la "nieve" que aparecia en el modo de texto 80x25. La
VRAM
en la tarjeta IBM CGA original no era de doble puerto, por lo que el acceso de lectura o escritura no era posible hacerlo de manera simultanea entre el controlador de video
Motorola 6845
y el CPU. Por ello se veian bloques rectangulares aleatorios que se encendian y apagaban siempre que se accedia a la memoria simultaneamente por la CPU y el controlador de video. Este error fue reparado en la mayoria de los clones, pero aun existe en algunas iteraciones (como en el
AT&T PC 6300
).
La memoria CGA en modos graficos era entrelazada, esto era una molestia para los programadores. Normalmente, la memoria de video es estrictamente lineal: la siguiente fila de datos de imagen corresponde a la siguiente fila de pixeles. Pero con CGA, la siguiente fila de datos de imagen correspondia a la fila de pixeles
dos
filas mas abajo. Esto continua asi hasta el final de la pantalla y solo entonces se comienzan a rellenar las filas vacantes. con lo que la primera mitad de la memoria de pantalla son las filas 0, 2, 4, etc., hasta el fin de la pantalla y la segunda mitad de la
VRAM
de la CGA es para las filas 1, 3, 5, etc. Esto anade pasos de calculo para muchas operaciones graficas en la CGA si el programador buscaba tener
artefactos visuales'
cuando actualizara la pantalla.
IBM diseno el monitor CGA
IBM 5153
[
11
]
para intencionadamente oscurecer el color indexado #6 de amarillo oscuro a marron; sin embargo, algunos monitores clonicos no tenian ese circuito. En esos monitores y en monitores 5153 con el circuito defectuoso, el color indexado #6 permanecia amarillo oscuro (ver imagen).
La totalidad de la
VRAM
de una tarjeta CGA (16.384 bytes) no es utilizada por completo por todos los modos de video inicializados por la BIOS (texto en 40×25 y 80×25, graficos de 320×200 y 640×200). Solo estableciendo modos de video manualmente programando el
Motorola 6845
de la CGA se pueden mostar los 16384 bytes como pixeles individuales simultaneamente.
Adaptadores rivales
[
editar
]
CGA ha tenido dos principales competidores:
- Para negocios y procesado de texto, IBM lanza su
Monochrome Display Adapter
(MDA) al mismo tiempo que la CGA. La MDA produce texto en 80×25, dibujando cada caracter en una caja de 9×14 pixeles, de los que 7×11 son el caracter en si, lo que nos daria una resolucion de 720 x 350 pixeles, que eran claramente superior a los 8×8 de los modos de texto de la CGA. Debido al alto precio de la CGA en su momentos, el MDA fue la eleccion preferida para los negocios.
- En 1982 aparece la
Hercules Graphics Card
(HGC), que no es fabricada por IBM. Ofrece un modo de texto en alta resolucion compatible la MDA y un modo grafico monocromatico de 720×348 pixeles, mucho mejor que la maxima resolucion de la que la CGA puede ofrecer. Por ello, incluso sin ningun tipo de capacidad de color, el adaptador de Hercules ofrece unos mejores graficos monocromaticos y la posibilidad de trabajar con monitores mucho menos costosos lo convierten en la opcion preferida por muchos. Al principio de 1985, programas
emuladores
residentes en memoria como SIMCGA permitian mostrar modos graficos CGA en el modo grafico de la Hercules (el resultado parecia
tramado
, crudo. La Hercules es probablemente la tarjeta mas utilizada para conectar monitores monocromaticos en era del IBM PC.
Un competidor menos utilizado fue la
Plantronics
Colorplus
, una tarjeta CGA compatible que dobla la
VRAM
a 32 KB, lo que le permite utilizar nuevos modos graficos de 16 colores a 320×200 y 4 colores a 640×200. Los modos extendidos CGA presentes en el
IBM PCjr
y los
Tandy 1000
son similares a estos modos.
La CGA fue sustituida en el tramo de consumo por la tarjeta IBM
Enhanced Graphics Adapter
(EGA), que soportaba la mayoria de los modos de la CGA, y anadia una resolucion adicional de 640×350 ademas de una paleta de 16 colores de entre 64 seleccionables por software, tanto en los modos de texto como en los graficos.
Referencias
[
editar
]
Vease tambien
[
editar
]
Otras tarjetas graficas:
Enlaces externos
[
editar
]