Historia de los graficos - EGA y VGA
Hoy en día las tarjetas gráficas son tecnología altamente compleja, pero, ¿cómo eran en los albores del PC? ¿Cuáles fueron los diferentes estándares? Acompañadnos a este viaje al pasado donde no solamente haremos un repaso de los estándares CGA, EGA y VGA sino también a la prehistoria y explicaremos las características e historias de cada uno.
Durante la década de los 70 se puso de moda entre los aficionados a la electrónica llamado TV Typewriter, el cual consistía en convertir el televisor en una terminal de texto. Aunque los primeros TVTs no hacían más que colocar en el televisor las teclas que se pulsaban , tan pronto como la primera generación de microprocesadores integrada de bajo coste empezó a aparecer en el mercado con la trifecta Intel 8080, MOS 6502 y Motorola 6809, estos empezaron a integrar TVTs como sistemas de video.
EL primer ordenador que integro el hardware de un TVT junto al resto del ordenador en una placa fue el Apple I, esto definió sus modos de video y el de sucesor, el Apple II.
De 1977 a 1981, año del lanzamiento del IBM PC original, el Apple II fue el rey del mercado de ordenadores estadounidense y la mayoría de aplicaciones se diseñaron para utilizar la terminal de texto en televisión que era el TVT.
¿Cómo funcionaba un TVT?
Para generar el texto en pantalla, el TVT necesitaba que la CPU tuviese en una parte de la RAM las pulsaciones de tecla que el usuario había realizado, cada tecla correspondía a un carácter, el cual era mapa de bits de m*n pixeles que se encontraba en una ROM de caracteres.
Las ROMS de caracteres utilizaban tres tipos de pines:
- Pines de direccionamiento: Servían para escoger el carácter que queríamos que saliese en pantalla.
- Pines de fila: Sirven para indicar que fila del carácter se quiere transmitir.
- Pines de salida: Transmite la línea del carácter actual.
El TVT al ser el sistema de video tenía que tener la capacidad de contar las líneas de escaneo tanto activas como no activas ya que los televisores no tenían esa capacidad y se tenía que hacer con un sistema externo, para ello se utilizaban contadores binarios para contar la cantidad de pulsos en horizontal y vertical de la pantalla y se utilizaban otros contadores binarios asegurarse que el carácter y la fila
En realidad, una ROM de caracteres podía ser cualquier cosa e incluso utilizarse caracteres que no fuesen alfanuméricos para la reproducción de juegos de manera muy rudimentaria.
40 columnas no eran suficientes
Pese al dominio del Apple II este no conseguía arrancar en el mercado corporativo, su killer app fue la primer hoja de cálculo, llamada Visicalc, pero existía un problema, el sistema de video del Apple II solo permitía 40 columnas de texto en pantalla, esto dificultaba trabajar e hizo que muchos usuarios buscaran tarjetas de 80 columnas.
La respuesta de Apple fue el Apple III, un ordenador que fue un fiasco comercial horrendo y le dejo vía libre a IBM para arrasar con su PC, aparte que le dio las indicaciones de cómo IBM tenía que realizar las cosas de cara a sus adaptadores de video, tenía que dar soporte para texto en 80 columnas.
El sistema de vídeo del IBM PC
IBM decidió no integrar el sistema de vídeo en la placa madre e implementarlo en tarjetas de expansión que se conectaban al mismo a través de un slot de expansión que en su día fue llamada PC Bus, este slot tenía una longitud de 8 bits, cualquier tarjeta de expansión que se conectase a ese puerto tenía su memoria mapeada al direccionamiento de memoria de la CPU, por lo que solo hacía falta enviar datos a esa dirección de memoria.
IBM además para ahorrar costes en vez de crear una compleja circuitería de chips del tipo TTL lo que hicieron fue utilizar un controlador CRT, el cual integraba en un solo chip todos los elementos de un TVT excepto dos elementos: La tabla de color para las tarjetas CGA y conversor digital a analógico.
El controlador escogido fue el 6845CRTC de Motorola, tanto en las tarjetas MDA como en las CGA, cuya ventaja era que es posible variar el valor de sus registros para escoger los tiempos de los contadores binarios en vez de que fueran fijos, esto permitía utilizarlo en todo tipo de monitores CRT y no solo los que estuviesen bajo la norma NTSC.
El Monochrome Display Adapter o MDA
IBM lanzo su IBM 5150 con dos configuraciones de monitor distintas, una de ellas era su monitor monocromo a que le correspondía la tarjeta MDA; la cual era conectada a través de un puerto DE-9 al monitor. En ningún momento seguía la normativa NTSC ya que su frecuencia horizontal era de 18.432kHz con una tasa de refresco de 50hz, lo que en conjunto con su ROM de caracteres de 9×14 pixeles, le daba una resolución de 720 pixeles de ancho y 350 pixeles en vertical.
Aparte del puerto DE-9, las tarjetas MDA disponían de un puerto LPT1 integrado para conectarle una impresora.
CGA, Color Graphics Adapter
El CGA fue lanzado al mismo tiempo que el MDA, con las siguientes características.
- Pensado para ser utilizado con pantallas bajo el estándar NTSC donde la frecuencia horizontal es de 15.75 KHz,
- Al igual que el MDA utilizaba el 6845 CRTC
- Caracteres de 8×8 pixeles.
- Soporte de hasta 16 colores (4 bits por pixel)
La tarjeta CGA se ideo para utilizarse con el monitor de color 5153, para conectar la tarjeta con dicho monitor se hacía uso de una conexión llamada RGBi, pero también tenía salida de video compuesto para conectarlo a un televisor NTSC a color.
La diferencia entre el MDA y el CGA era obviamente el color, ya que disponían de un DAC distinto que dependiendo del modo gráfico que se utilizará, en dicho modo en vez de apuntar a la ROM de caracteres el 6845 apunta a una tabla de 4 bits, 16 valores, que corresponden a la paleta de colores del CGA.
Esos 16 colores en realidad eran 8 pero con dos valores de intensidad, aparte del blanco y el negro se encontraban los 3 colores RGB básicos: rojo, verde y azul. Y los 3 colores alternos: cian, magenta y amarillo.
La resolución de horizontal derivaba en que si tenemos en cuenta que un 6845 a 2 MHz puede realizar unas 128 escrituras al registro de desplazamiento en lo que dura una línea de escaneo bajo el formato NTSC, si descontamos el periodo HBlank, entonces esto son 80 escrituras al registro de desplazamiento en el tiempo de la pantalla activa. A 8 bits por escritura esto nos da unos 640 bits por linea activa, lo que se traduce en 640 pixeles en 2 colores (blanco y negro), 320 pixeles en 4 colores o 160 pixeles en 16 colores. En cuanto a la resolución vertical, está siempre era la misma, independientemente de cual fuera la horizontal: 200 líneas.
La CPU era la que tenía que escribir el búfer de imagen durante el periodo VBlank, dado que el sistema funcionaba en modo entrelazado tenía que hacerlo durante el periodo VBlank, el cual era de 262 líneas. El problema era que el sistema no era lo suficientemente rápido y provocaba un molesto parpadeo en la pantalla.
El PCJr y el estándar Tandy, una versión mejorada del CGA
En 1983 IBM lanzo una versión de consumo del IBM al que llamaron PCjr, fue un fiasco comercial pero ttrajo consigo una versión mejorada del CGA, esta vez no hizo uso de un controlador CRT externo como el 6845, ssino uno al que llamaron Video Gate Array, el cual no tiene que confundirse con el estándar VGA que salió más tarde.
Debido a que los clónicos de la empresa Radio Shack, conocidos como Tandy, adaptaron esta versión del CGA avanzado y tuvieron más éxito que el PCJr de IBM se le acabo llamando Tandy Graphics Adapter o TGA. ¿Su particularidad respecto al CGA estándar? La memoria asignada a vídeo se aumentó de los 16 KB a los 64 KB e hizo posible un modo de 16 colores a 320×200 pixeles cuando se utilizaba este adaptador gráfico.
¿El problema? Bueno, fueron varios, el primero es que no existió tarjeta propiamente dicha ya que en estos sistemas la gráfica estaba integrada en la placa, por lo que a no ser que te comprases un ordenador de la marca Tandy o un PCJr no podías hacer eso del modo de 320×200 píxeles. El segundo es que se aprovechaba de la memoria del sistema para usarla como memoria de video, aunque algunos modelos de Tandy vinieron con memoria gráfica dedicada.
Enhaced Graphics Adapter
La segunda generación del IBM PC llego con el IBM PC AT, modelo 5170, cuyo procesador principal era el 80286 de Intel y aumento el ancho de banda del PC Bus de los 8 bits a los 16 bits, el cual con el cambio paso a ser conocido como ISA. Con el PC AT llego también una nueva generación de tarjetas gráficas que fue bautizada como Enhaced Graphics Adapter o EGA.
EGA dejo de utilizar el 6845 como controlador para hacer uso de uno propietario de la propia IBM, el cual dejo de lado los gráficos derivados del TVT para hacer uso de los llamados planos de bits para componer la pantalla.
Los planos de bits correspondían en varios búferes de imagen, uno por cada canal de color y un último para la intensidad. Esto significaba que el búfer de imagen de una tarjeta EGA no se ordenaba de la misma manera que una tarjeta CGA y el DAC que utilizaba era completamente distinto.
EGA tenía una paleta 64 colores en total, en realidad su colorido es un derivado a diferentes niveles de luminosidad de las dos paletas CGA y dado que genera unos 4 bits por pixel utiliza de serie los 16 colores CGA, igualando este con el CGA expandido para el PCjr y los ordenadores de la serie Tandy 1000 de Radio Shack. La particularidad de EGA es que era posible cambiar la selección de 16 colores al vuelo durante el HBlank y si el desarrollador era lo suficientemente hábil podía mostrar gráficos con los 64 colores de la paleta en pantalla.
Los colores se representaban en formato RRGGBB, por lo que eran 2 bits por componente, los 16 colores a utilizar se elegían colocando los valores RRGGBB de cada uno de los 16 colores en unos registros especiales, si no se hacía ningún cambio mostraba los colores del CGA.
Rompía la compatibilidad con CGA
IBM vendió el PC AT con un nuevo monitor, el modelo 5154, el cual mostraba una resolución de 640 x 350 pixeles a 60 Hz, necesitando para ello una frecuencia horizontal más alta que los 15.75 KHz, en concreto unos 21.8 kHz por lo que era un modo imposible en los monitores CGA y televisores, basados en el estándar NTSC, es más, hacía uso de un nuevo tipo de conector.
No obstante, la primera tarjeta EGA que salió al mercado no estuvo exenta de polémica, ya que el modo de 640 x 350 píxeles y con 16 colores solamente funcionaba si la tarjeta venía equipada con 128 KB de memoria de video y la tarjeta inicial tenía una configuración de 64 KB, por lo que era necesario comprar una expansión de memoria de video aparte para disfrutar de ese modo gráfico.
Pero ese no era el único problema, IBM no se planteó jamás la compatibilidad hacía adelante del software, es por ello que hicieron que EGA utilizará un direccionamiento de memoria distinto con CGA, rompiendo así la compatibilidad hacía atrás con el estándar antiguo.
Esto obligaba a los desarrolladores a crear un ejecutable EGA de sus programas, el motivo detrás de esto era que, si la memoria para el CGA empezaba en la dirección B00, la del EGA empezaba en la A00 por lo que todas las referencias a la memoria de video en tenían que cambiar en las aplicaciones.
El nacimiento del mercado de las tarjetas gráficas
En 1986, Chips and Technologies consiguió copiar el chipset EGA reduciendo con ello el número de chips necesarios y haciendo posible la construcción de tarjetas gráficas de otras marcas aparte de la de IBM, dichas tarjetas tenían la capacidad de combinarse también con controladores CGA por lo que aseguraban una total compatibilidad con todas las tarjetas y no requerían en su mayoría del uso de expansiones de memoria.
También permitieron el uso de las tarjetas EGA en monitores CGA con interfaz RGBI, en realidad a no ser que el usuario tuviese un 5154 u otro monitor compatible con el estándar EGA no habían diferencias de rendimiento visual entre la serie Tandy 1000 y un PC AT con una EGA corriendo bajo MS-DOS ya que en los modos de 200 líneas era imposible cambiar los colores y se veían solo los 16 colores del CGA, esto provoco que hubiesen dos estándares distintos para los gráficos en PC a mediados de los 80.
VGA (Video Graphics Array)
En 1987 IBM introdujo en el mercado la tercera generación de su PC, al que llamo IBM PS/2, esta vez basada en el 80386 de Intel y con el vino una nueva generación de tarjetas gráficas a la que IBM llamo Multicolor Graphics Adapter o MCGA, la cual fue conocida con el tiempo como VGA.
Pero IBM no lanzo una tarjeta gráfica dedicada, sino que de la misma manera que ocurrió con el PCJr decidieron integrar el controlador en la placa, esta vez con su propia memoria de video, la cual era del tipo VRAM y fue el primer controlador gráfico en utilizar este tipo de memoria.
La VRAM permitía que el procesador y el controlador gráfico accedieran a la información al mismo tiempo por lo que la composición de la pantalla ya no solo se podía construir durante los periodos HBlank y VBlank sino en cualquier momento. Los primeros modelos se vendieron con configuraciones de 64 KB y 128 KB, aunque la configuración máxima era de 256 KB y solamente con ella se podían llegar a los modos gráficos más altos que permitía el nuevo estándar.
Pero la particularidad del MCGA era que abarataba enormemente los costes, el motivo era que tanto el DAC como la tabla que almacenaba la paleta de colores se encontraban en integrados en el controlador, esto redujo el coste de las tarjetas gráficas basadas en VGA y fue una de las claves de su estandarización.
El MCGA no tardo en ser duplicado, pero IBM continuo con sus tendencias monopolísticas, se inventó un nuevo bus de 32 bits, el cual no era una versión ampliada del ISA, al que llamaron MCA. Esto obligo a los fabricantes de los clónicos del MCGA a buscar una alternativa, de tal manera que utilizaban dos ISA de 16 bits al mismo tiempo, lo cual era conocido como EISA o Extended ISA.
El puerto VGA como estándar absoluto
La naturaleza de integrar todo lo necesario en un solo chip hizo que se convirtiese en el estándar absoluto durante años y la salida VGA se convirtió con ello en la salida de video estándar hasta la salida del HDMI.
Curiosamente IBM hizo compatible hacía atrás MCGA o VGA con CGA, aunque el conector volvió a ser completamente nuevo otra vez, esta vez era posible reproducir aplicaciones en modo CGA desde el VGA, esto llevo a que la salida RGBi desapareciese tanto de los monitores como de las tarjetas gráficas con el tiempo.
El motivo era que las aplicaciones CGA funcionaban perfectamente en un monitor VGA, eso si, no era muy recomendable utilizarla en los juegos.
Especificaciones del estándar VGA
La paleta de colores del estándar de 262.114 colores en total, lo que significaba que de EGA a VGA se había pasado de una paleta de 6 bits a una de 18 bits. En cuanto a la cantidad de colores simultáneos en pantalla, VGA permitía hasta 256 colores en pantalla y el motivo por el cual se le llamaba Multicolor Graphics Adapter inicialmente es porque IBM rompió la compatibilidad con los planos de bits de EGA y volvió a la forma de representar el búfer de imagen del CGA, pero esta vez con una mayor cantidad de planos.
En cuanto a la resolución, la tecnología VGA tenía dos resoluciones de salida, ambas a una tasa de refresco de 70 Hz y con la capacidad de mostrar hasta 256 colores simultáneos. La primera de 640 x 480 y la segunda de 800 x 600 píxeles.
0 comentarios:
Publicar un comentario