Tarjetas gráficas de la era IBM

No todos los ordenadores fueron creados igual. Unos nacieron para educar, otros para jugar, y el caso del PC de IBM para los negocios. Aunque esto ya se ha dicho antes, en mi famoso artículo sobre la edad de oro de las tarjetas de sonido. En esta ocasión nos centraremos en el apartado gráfico del vetusto y ubicuo ordenador personal del gigante azul. CGA, EGA, VGA… ¿te suena?

A diferencia de los ordenadores domésticos de la época, la arquitectura PC no usaba un chipset para gráficos integrado, sino que se valía de tarjetas de expansión para acometer la salida por pantalla. Esto, junto con su filosofía de ser una arquitectura más o menos abierta, propició que existiera a lo largo de su existencia toda una variedad de soluciones. He devorado un montón de páginas de revistas de informática antiguas y he aquí mis impresiones.

Este es el PC original. Se parece más a una caja del Corte Inglés que a un ordenador. ¿Lo habíamos dicho ya?

Cuando apareció el primer PC en 1981 se ofrecieron dos controladores gráficos distintos: Monochrome Display Adapter (MDA) y el Color Graphics Adapter (CGA). Ambas basadas en el Motorola 6845, un chip encargado de generar señales de vídeo, que acabaría usándose en ordenadores como el BBC Micro y el Amstrad CPC. De hecho, también se usó en otros adaptadores de vídeo para PC, que veremos ahora mismo.

Monochrome Display Adapter

La madre de todas las tarjetas gráficas de PC no es otra que la MDA, y se cita a menudo como una de las razones de su éxito en el entorno de los negocios. Se trata de, como su propio nombre indica, un adaptador de gráficos monocromo, con conexión ISA de 8 bits, y permite una matriz de caracteres en alta resolución de 80 por 25.

La genuina y original Monochrome Display Adapter de IBM.

Bueno, la verdad es que gráficos es quizá decir mucho, por lo que el nombre de “tarjeta gráfica” le viene un poco grande, pero “tarjeta de texto” le viene pequeño (y naturalmente no la iban a llamar “tarjeta de pellizcos”). Aunque su resolución real era de 720×350 píxeles (80×25 caracteres de 9×14 píxeles) su memoria de tan sólo 4k no permitía direccionar cada punto por separado  (aunque sí atributos como subrayado o parpadeo), de ahí a que su único modo de pantalla fuera el de texto. Aún con todo, para un uso profesional como hoja de cálculo o procesador de textos era suficiente, de hecho su gran calidad de imagen la hizo incluso más popular que su hermana de leche.

El MDA en toda su gloria. Imagen cortesía de nightfallcrew.com

El monitor y la tarjeta contaban con una conexión TTL, con dos pines para la señal de vídeo (ya que permitía un bit de intensidad) y dos para sincronía vertical y horizontal. El refresco de pantalla era fijo a 50Hz, y contaba con dos knobs para el contraste y el brillo. La pantalla de fósforo verde, imagen del ordenador desde los 60 y hasta bien entrados los 80, daba su nota de sobriedad.

¿Estás ahí, Neo?

Un hecho curioso y conocido es que el Monochrome Display and Printer Adapter, como se llamaba formalmente, incluía un puerto paralelo para la impresora.

Color Graphics Adapter

La CGA fue lanzada al mercado al mismo tiempo que el IBM PC y la MDA. No incluía el modo de texto en alta resolución de su hermana trajeada, pero sus 16 KB de memoria le permitían utilizar una resolución de 640×200 en blanco y negro o 320×200 a cuatro colores con tres paletas gráficas predefinidas. Incluía modos de texto con 16 colores, aunque no tan pulcros como los de la MDA.

La tarjeta de gráficos a color original de IBM, CGA.

Ni que decir tiene que era la opción lógica para las aplicaciones lúdicas, y salvo algunos juegos en modo texto casi todos dieron soporte a esta tarjeta para mostrar gráficos. De hecho durante al menos 10 años siguieron apareciendo juegos que, de una manera u otra, permitían usar este venerable hardware. De hecho Son of the Empire (Action Sixteen) soportó esta tarjeta en el año 1992 de Nuestro Señor, incluso Windows 3.0 (Microsoft, 1990) funcionaba con ella.

Sim City (Maxis, 1989) en el modo de alta resolución monocromático

La tarjeta CGA podía usarse con el mismo conector DE9 que MDA, salvo que en lugar de tener dos pines TTL tenía cuatro (RGBi), lo que nos daba una conexión digital de 16 colores y sincronía. Todo ello con una frecuencia de refresco fija en 60 Hz. Curiosamente se uno de los pines se usaba como una salida de 12V al monitor, aunque la mayoría no lo usó.

Prince of Persia versión CGA (Jordan Mechner, 1990)

Además de la conexión TTL una de las características más interesantes de las tarjetas CGA era su salida analógica de vídeo NTSC, como una conexión RCA de vídeo compuesto. La verdad es que sus colores no eran una maravilla, y tendían a mezclarse unos con otros, al fin y al cabo se trataba de vídeo compuesto y codificado como “Never Twice Same Color” nada menos. No obstante esto podía usarse como una ventaja, y permitir muchos más colores aparente al mezclar los adyacentes para generar “nuevos”. El amigo 8-Bit Guy lo explica mucho mejor en su canal, si entendéis el idioma de Chaquespeare.

A lo largo de los años se han desarrollado técnicas complejas para sacar muchos más colores de los ideados inicialmente, hasta 1024 en la demo 8088 MPH (Hornet & CRTC & Desire, 2015). Al parecer, manipulando con mucho cuidado las sincronizaciones de vídeo, accediendo a modos no documentados y programando a muy bajo nivel, podemos hacer auténticas virguerías con este hardware. Naturalmente es poco práctico, pero ahí queda.

A costa de tiempo de proceso se podían hacer locuras con el modo de vídeo compuesto. En la imagen el Comander Keen IV (id Software, 1991)

Debido a que MDA y CGA usaban recursos distintos técnicamente era posible usar las dos tarjetas al mismo tiempo, con dos monitores. La hoja de cálculo por antonomasia, Lotus 1-2-3 (Lotus Software, 1993) escribía directamente en la memoria de vídeo y consiguió que pudiera usarse el monitor monocromo para visualizar el texto y el monitor a color para gráficos, todo simultáneamente. Aunque esta característica no fue ampliamente utilizada, este software fue una de las razones del éxito del PC a medio plazo, y un importante punto de referencia para considerar un ordenador como “compatible”.

Hercules Graphics Card

Esta tarjeta fue, si no la primera fabricada por un tercero, la primera en hacerlo con éxito comercial considerable. Básicamente se trata de una tarjeta compatible con la Monochrome Display Adapter de IBM con el interesante añadido, gracias a sus 64 KB de memoria, de direccionar punto a punto una resolución de 720×350, por lo que podía mostrar gráficos monocromáticos de alta calidad, todo ello en el monitor y la conexión suministrado con el PC. Técnicamente las dos últimas líneas no eran accesibles, por lo que la resolución quedaba en unos decentes 720×348 píxeles.

Tarjeta gráfica Hercules

No fue una tarjeta tan ampliamente soportada como las “oficiales”, pero sí que existió una cohorte de juegos que pudieron usarla, como muchos de LucasArts o los de Sierra On-Line, famosos por funcionar hasta en el microondas. El precio de lanzamiento de esta tarjeta era de 500 dólares americanos, equivalentes a unos 1300 en 2018.

Maniac Mansion (LucasFilm, 1987) tal como se veía en Hercules

Era posible, no obstante, emular una tarjeta CGA para aumentar la compatibilidad con programas y juegos que no soportasen directamente la tarjeta. Algunos modelos posteriores incluyeron compatibilidad por hardware, pero lo habitual es que se hiciera por software mediante emuladores como SIMCGA, que básicamente lo era por fuerza bruta: copiaba tan rápido como podía la memoria desde el área CGA (escrita por programas) a la memoria de Hercules en tiempo real. No funcionaba maravillosamente, especialmente con programas que escribieran directamente en la memoria en lugar de usar la BIOS, pero era mejor que nada. Los que lo hacían mostraban un tramado en lugar de colores, naturalmente. Pese a sus desventajas, ojalá hubiera tenido el SIMCGA cuando fue la primera tarjeta gráfica que cayó en mis manos…

Maniac Mansion Enhanced (LucasFilm Games, 1989) en modo Hercules

Paralelamente a la Hercules aparecieron la Orchid Graphics Adapter y la Plantronics Colorplus, de similares características. En el caso de la Colorplus se añadía compatibilidad por hardware con CGA, pero ninguna de ellas gozó de un éxito comercial y apenas recibieron soporte de programas importantes.

IBM PCJr y Tandy 1000

El PCJr fue muy anticipado, y muchos profesionales y aficionados esperaban interesados un PC orientado al hogar en lugar de a los negocios. El resultado fue el PCJr, lanzado en 1983 y con mayormente compatible con el PC y el PC XT, sus hermanos mayores. Se diferenció de éstos por su teclado tipo chiclet, su chip de sonido y por tener sólo 128 KB de RAM, por lo que los programas más exigentes del PC no podían ejecutarse. En el apartado gráfico contaba con el Video Gate Array (no confundir con el VGA posterior), más conocido como CGA Plus.

PCjr con monitor

Las diferencias con la Color Graphics Adapter era mayormente poder usar más colores en sus modos gráficos: 16 colores en el modo 320×200 y 4 en el 640×200 píxeles, siendo sus colores programables en lugar de paletas predeterminadas. Otra característica, menos deseable, era que sus 128 KB de memoria eran compartidos con la memoria del sistema, haciendo que este ordenador fuera más lento que otros con el mismo procesador. Ninguna de sus características le salvó de ser uno de los fracasos más sonados de la informática moderna.

Microsoft Flight Simulator en el PCJr (1983)

Salieron muy pocos juegos pensados para esta plataforma, y los más interesantes eran, por supuesto, las aventuras gráficas de Sierra On-Line. El ejemplo por excelencia es King Quest (1984), que salió en disquetes aunque el ordenador estaba pensando para usarse con cartuchos ROM.

King Quest (Sierra On-Line, 1983) en Tandy Graphics Adapter

El relevo natural de este ordenador lo tomó la compañía Tandy Corporation, con su Tandy 1000. Su tarjeta gráfica se llamó, por supuesto, Tandy Graphics Adapter. Si bien ofrecía las mismas características que el CGA Plus (incluyendo el hecho de compartir la memoria con el sistema), no eran directamente compatibles, y el software de uno ejecutando en el otro normalmente daba resultados no demasiado buenos: líneas que faltaban, otras que no debían estar ahí, etc. Pero no importa mucho: casi nadie echó en falta al PCJr y el software solía escribirse para esta TGA.

Professional Graphics Controller

Si bien el PC era una máquina competente en aplicaciones empresariales sus capacidades gráficas no eran algo del otro mundo. A partir de 1984, no obstante, IBM fabricó y vendió esta tarjeta, también conocida como Professional Graphics AdapterProfessional Graphics Array, o simplemente PGC. cuyas características orientadas a las artes gráficas miraba desde las alturas a prácticamente todos los ordenadores domésticos de la época. Eran realmente de infarto: 640×480 píxeles de resolución a 256 colores de una paleta de 4096, además de ser compatibles con los modos gráficos de la CGA.

Professional Graphics Adapter de IBM

Su aspecto era imponente: consistía en un sándwich de tres tarjetas de tamaño completo (una de ellas sólo para emular CGA por hardware) que ocupaban dos huecos en el IBM PC XT. No era para menos, ya que este producto incluía 320 KB (¡más que la mayoría de ordenadores!) y su propio procesador Intel 8088, por lo que escribir en memoria era mucho más rápido que en tarjetas de la competencia. Su precio era igualmente superlativo: 3.000 dólares de 1984 (equivalentes a unos 7.800 de 2018), y que sólo podía utilizarse con el monitor IBM 5175, que costaba en su día otros 1.300 dólares (unos 3.400 en 2018). La wikipedia cita, no obstante, que una estación de trabajo para diseño por ordenador rondaba por los 50.000 dólares (unos 130.000 en 2018), por lo que en perspectiva no era tan descabellado.

Sus modos especiales no eran accesibles mediante la BIOS, y no se conoce de ningún juego que los usase. No es una gran sorpresa, dado que era un producto orientado al CAD (Computer Aided Design, diseño asistido por ordenador), y su uso principal fue en el AutoCAD 2.5 (Autodesk, 1986). No tuvo realmente competencia, aunque en un par de años surgieron clones decentes, como la Everex EPGA, compatible también con la Hercules y CGA, ocupando una sola ranura de expansión. En lugar del 8088 incluía nada más y nada menos que un intel 80286, más poderoso aún, y 512 KB de memoria RAM. No he conseguido encontrar a cuánto se vendió, pero me atrevería a decir que no era barata. Actualización: Costaba 999 dólares (aprox. 2.400 de 2018), lo pone en grande en el anuncio. Veo menos que un gato de yeso.

Enhanced Graphics Adapter

El nuevo estándar de vídeo IBM llegó con esta tarjeta, que aunque no era totalmente retrocompatible con las anteriores incluía modos de vídeo para todos los gustos. Llegó en 1984, y mostraba una resolución de hasta 640×350 a 16 colores, a elegir arbitrariamente de una paleta de 64.

La EGA original de IBM

Este producto usaba un nuevo tipo de monitor, muy convenientemente llamado EGA. Se usó de nuevo el conector DE9 TTL, esta vez con 6 pines para la imagen. Su uso no se limitaba al flamante AT, el nuevo modelo de PC que IBM presentó ese año, pero sin duda fue su complemento ideal. Proporcionaba mucho mejores gráficos que ordenadores de la época como el Commodore 64 (1982) por un precio muy competitivo, que en 1986 era de 524 dólares. (unos 1.350 de 2018). Ni que decir tiene que se convirtió en la tarjeta que todos los juegos querían, y hasta 1994 siguieron saliendo juegos, como BlackThorne (Blizzard). No obstante, los modos de alta resolución no solían ser soportados…

Cosmo’s Cosmic Adventure (Apogee, 1992) heredaba la tecnología de Commander Keen (id Software, 1990) y era uno de los juegos con mejor scroll en EGA

La tarjeta EGA era compatible con los modos RGBi de la CGA, y cambiaba su frecuencia vertical de 15.7 a 21.8 kHz mediante conmutadores accesibles en la placa. Esto era un poco engorroso porque hasta que no aparecieron las primeras tarjetas autoconmutadas había que estar toqueteando el ordenador por detrás, así como eligiendo el modo en el monitor, pero valía la pena tener compatibilidad casi completa. Se perdió, no obstante, la conexión de vídeo compuesto NTSC, por lo que el software (¡los juegos!) pensados en este modo no se veían demasiado bien con la EGA.

Quest for Glory (Sierra On-Line, 1989). Este era el modo habitual de usar EGA.

Un cambio que sí fue muy bien recibido eran los modos lineales, en oposición a la Hercules y CGA cuyos modos gráficos eran entrelazados. ¿Qué significa esto exactamente? Pues que antiguamente la memoria tenía dos bloques: uno con las líneas impares y otro con las pares, de manera que uno iba escribiendo en la memoria y de repente saltaba dos líneas, no una. Con EGA por fin podíamos escribir desde el principio hasta el final sin tirones extraños. Otra característica muy deseable fue la de incluir en su ROM extensiones a la BIOS, de manera que el software podía usarla mediante la misma, a diferencia de la PGC, por ejemplo. Una de las formas más destacadas de explotar este hardware fue el scroll suave de Commander Keen (1990) programado por John Carmack, en la que hacía uso de píxeles no visibles (y del desplazamiento por hardware) de modos planares consiguiendo emular la visual de las videoconsolas de la época sin parpadeos ni artefactos de imagen. Qué son dichos modos planares lo expondré más adelante.

Sim City en la tarjeta EGA, modo de alta resolución

Al tiempo de existir el estándar comenzaron a surgir sus clones. Algunos incorporaban modos gráficos parecidos al MDA, otros tenían más resolución. Estos modos gráficos apenas tuvieron soporte por lo que no eran una característica demasiado interesante. Otras tarjetas en lugar de ello incluían autoconmutación, de modo que no había que ir tocando palanquitas minúsculas para cambiar de modo gráfico. Fue el caso de la Paradise EGA, en 1986. Por 500 dólares (1.300 en 2018) hacía todo lo que la estándar EGA, CGA, Hercules y MDA, con autoconmutación y soporte para lápiz de luz. Además, tenía dos conectores RCA que ni su padre sabía para qué fueron. Yo desde luego no tengo ni idea.

Multi-Color Graphics Array

En realidad, esta tarjeta nunca existió como tal. Era simplemente el nombre que recibía el chipset de vídeo del IBM PS/2 Model 30, un interesante ordenador lanzado en 1987 del que deriva, por ejemplo, el conector de ratón y teclado que se usó hasta hace relativamente poco. También se introdujo el bus MCA (Micro Channel Arquitecture), que fue un intento de IBM de recuperar el timón de la arquitectura PC. Fue un duro y caro revés para IBM.

IBM PS/2 model 30, el ordenador de la MCGA original

El chipset MCGA sin embargo vino para quedarse, o mejor dicho sus modos gráficos lo hicieron. En especial el de 320×200 a 256 colores a elegir de entre 262.144, que fue usado extensivamente en juegos. También ofrecía soporte para 640×480 en monocromo. Su mayor desventaja era no ser compatible con EGA, por lo que los juegos que no soportaran estos nuevos modos se veían obligados a mostrarse en los modos CGA, mucho más feos. La solución era simplemente usar el modo a 256 colores y usar los 16 que más se pareciesen a los de EGA, pero el software tenía que estar programado para ello y lógicamente ello excluía a todos los programas anteriores a MCGA. Aún con todo es a partir de entonces cuando los PCs comenzaron a tener capacidades gráficas superiores a prácticamente todos los ordenadores domésticos de la época.

Monkey Island 2 (LucasArts, 1992) en MCGA

El conector y monitor que empleaba esta tecnología eran analógicos, al contrario que los estándares anteriores (salvo la Professional Graphics Adapter) que eran basados en señales digitales TTL. El conector era un DE15 que portaba señales RGB y sincronía vertical y horizontal, y en esta ocasión podía tener una frecuencia de refresco de 50 a 70 Hz dependiendo del modo gráfico. A la postre este conector se denominó VGA, y aún en 2018 sigue dando coletazos pese a estar obsoleto. Su nombre es evidente para los aficionados a la informática, como ya veremos.

Sim City en MCGA

Este MCGA murió con los primeros modelos de la línea PS/2 de IBM, que dejaron de fabricarse en 1992. Ni que decir tiene que también desapareció el bus MCA, aunque curiosamente el conector para teclado y ratón se quedó con nosotros hasta bien pasados los años ’10 del siglo XXI.

El famoso cable y conector VGA. Algunas tarjetas y monitores profesionales usaban 5 cables BNC, pero no era lo habitual.

Una alternativa al MCGA en la línea PS/2 fue el menos conocido estándar IBM 8514, muy parecido al Professional Graphics Adapter de unos años antes en prestaciones al soportar también una resolución de 640×480 a 256 colores. Se trataba no sólo de una tarjeta gráfica sino de toda una CPU moderna, ya que permitía aceleración gráfica (en 2D, obviamente) al permitir instrucciones como dibujar primitivas o transferir memoria. Al ser compatible con Windows 3.X (posteriormente también con Windows 2.X) fue el estandarte de la calidad de vídeo de IBM, que mostraba el Microsoft Excel luciendo como en ningún sitio. La tarjeta costaba 1.290 dólares, más 270 si queríamos la ampliación de memoria a 1MB (necesaria para el modo gráfico 640×480 a 256 colores) eran otros 270 y el monitor a juego nos lo vendía IBM a 1.550. En total: 3.110 dólares de vellón, alrededor de 6.600 dólares de 2018. Esta tarjeta no fue tan clonada como otras de IBM, por lo que el soporte de software fue limitado y no se conoce su uso lúdico.

Video Graphics Array

Si hubiera que elegir un adaptador gráfico por excelencia para el PC podemos parar de buscar. Apareció en 1987 y sus modos gráficos son soportados aún hoy, y utilizados cuando falla todo lo demás. Fue y es el denominador común en gráficos de prácticamente todos los PCs y compatibles, y es con mucho el estándar gráfico más clonado que haya existido. Se puede escribir un libro tocho sobre el VGA (y hay no pocos), pero vamos a tratar de discurrir sobre lo más importante.

Paradise Systems PVGA1A, de 1988, una de las primeras VGA de terceros

En sus especificaciones estándar está el incluir prácticamente todos los modos de vídeo de EGA, CGA y MCGA, además de uno de 640×480 con 16 colores definibles. La mayoría, no obstante, soportaba también los modos de alta resolución de hasta 800×600 puntos, aunque dependiendo del dinero que nos gastásemos la tarjeta o el monitor podrían no soportar los modos más altos, y dependiendo también de su memoria RAM que, aunque se especificó en 256 KB, algunos modelos más baratos traían menos. Dada su naturaleza programable era capaz de usar una resolución prácticamente arbitraria con combinaciones locas, así como nuevos modos de texto que se hicieron muy populares en entornos como el desarrollo de software.

Monkey Island (Lucasfilm Games, 1991) en Hercules, CGA, EGA, EGA (alta resolución) y VGA (MCGA)

La desde entonces ubícua VGA tenía unas características técnicas muy interesantes. Su frecuencia de refresco variaba de 50 Hz para los modos de alta resolución hasta los 70, y su sincronía vertical era fija en 31.46875 kHz. Este número no es casual: era exactamente el doble que una señal NTSC, por lo que era relativamente sencillo construir un adaptador para mostrar imágenes en un televisor normal. Gracias a su memoria RAM se podían definir hasta 4 planos, que podían modificarse aunque no se estuvieran visualizando en ese momento y conmutarlos cuando nos fuera conveniente. La guinda del pastel era que casi todos sus modos gráficos eran accesibles por la BIOS por las extensiones que incluía para esta.

Syndicate (Bullfrog, 1993) salió para VGA en PC y era impresionante, le daba un pasote a todos los otras versiones

Este adaptador de vídeo tenía, no obstante, algunos pequeños inconvenientes. No era compatible con los modos especiales del PCJr o de Hercules, y la compatibilidad no era del 100% con EGA. Tampoco incluía salida de vídeo compuesto como CGA. En realidad ninguna de estas desventajas eran gran cosa, dado que prácticamente todos los modos gráficos podían emularse en VGA fácilmente. Por último, programar los modos gráficos más complejos (múltiples planos, operaciones complejas) no era sencillo y no podía hacerse mediante la BIOS sino que había que manejar el hardware directamente. Esto más adelante fue casi tanto una ventaja como una desventaja, ya que la flexibilidad de este estándar permitió desarrollar toda una suerte de modos gráficos exóticos y algoritmos específicos.

El Doom original (id Software, 1993) usaba la tarjeta VGA de forma increíble

La VGA no era una verdadera GPU como tal, dado que no tenía capacidades de aceleración de vídeo. Sin embargo sí que contaba con ciertas operaciones que podían aprovecharse para mejorar mucho el rendimiento gráfico, como poder establecer 4 píxeles de golpe o copiar regiones de la RAM de vídeo sin intervención del procesador. Esto, junto con los modos multiplanares, mejoró considerablemente la capacidad en juegos de lo conseguido con EGA, consiguiendo no sólo scroll suave sino el poder usar sprites de forma parecida a los sistemas de videojuegos dedicados.

El PC en Japón

Dado que el estándar PC estaba pensando para utilizar el alfabeto latino (o el cirílico o el griego si cambiábamos los glifos del modo de texto) y no soportaba caracteres japoneses (más complejos y numerosos) nunca fue popular en Japón. En 1986 se introdujo una variación de EGA, llamada JEGA (Japanese EGA) que usaba una BIOS especial con caracteres de doble ancho, pero no fue suficiente para competir con la arquitectura PC-98 de NEC. Tampoco lo fue el AX-VGA, su equivalente actualizado a los estándares VGA.

DOS/V 4, el MS-DOS para ordenadores japoneses (emulado, por eso el cursor de ratón)

La solución fue más sencilla de lo que parecía: Microsoft lanzó versiones específicas de su MS-DOS a partir de 1990, al que llamó DOS/V que funcionaba en las máquinas japonesas con una VGA estándar y permitía usar texto con caracteres japoneses.

Modo X

Si bien la mayoría de trucos de este hardware se conocían de antes, en 1991 Michael Abrash publicó un artículo sobre un modo gráfico no documentado por IBM, acuñando el nombre de modo X. No era inédito y se usó anteriormente en algunos juegos, pero fue a partir de entonces cuando adquirió identidad en el mundo de la programación de videojuegos por aunar todas las características deseables de los modos gráficos. Excepto por una cosa: era bastante complejo de programar.

Turrican 2 (Rainbow arts) no salió en PC hasta 1994, pero cuando lo hizo, lo hizo a lo grande, usando el modo X

Este modo proporcionaba una resolución de 320×240 píxeles con 256 colores arbitrarios. En la relación de aspecto de los monitores de PC (4:3) esto significaba que los píxeles eran cuadrados, a diferencia de casi todos los demás modos de vídeo, lo que simplificaba enormemente el cálculo de distancias “reales” en la pantalla respecto a la diferencia en píxeles. El tener 256 colores significaba que cada píxel de la pantalla era representado por un único byte en memoria, por lo que se eliminaba la necesidad de leer y realizar máscaras de bits para dibujar en pantalla. Pero sobre todo, al ser un modo planar (llamado en su artículo “desencadenado”) permitía escribir en varios planos y conmutarlos a voluntad. De su mayor virtud también su defecto principal: la forma de escribir en memoria era muy compleja, dado que cada byte contiguo estaba en un plano distinto. Con cuatro planos, por ejemplo, cada 4 bytes contiguos representaban cuatro píxeles en pantalla, uno en cada plano.

Fabricantes

Los primeros ordenadores en incorporar una tarjeta gráfica VGA fueron la línea PS/2 de IBM, al principio integradas en la placa base y luego como una tarjeta independiente. De hecho el principal alegato de la empresa era que ya no se trataba de un conjunto de chips, sino que se prescindió del controlador MC6845 que tenían otras tarjetas y se integró todo en un único procesador, salvo por la memoria y la electrónica auxiliar. (cristales, electrónica pasiva, etc.) Su alta escala de integración fue lo que permitió el lujo de poder incluirla en la propia placa base.

Tseng ET4000, con conexión ISA de 16 bits, una de tantísimas VGA de terceros

No tardaron en salir tarjetas con una alta compatibilidad, que rondaban los 500 dólares en 1987 (unos 1.100 dólares en 2018). De hecho es probablemente la tarjeta de vídeo más clonada en los PCs, y la wikipedia cita como los principales a S3, Ati, Matrox, Tseng, Trident, NEC y otros muchos más. Todos tenían en común los modos estándar y normalmente los de alta resolción, así como otros tantos modos y características particulares de cada casa. Esto permitía dos cosas: que la industria progresara añadiendo nuevas capacidades y que IBM perdiera el control sobre el estándar, por lo que cada tarjeta terminó siendo de su padre y de su madre, dando paso al siguiente capítulo del culebrón.

XGA y lo que te rondaré, morena

Tras el éxito arrollador de la VGA, el siguiente estándar propuesto por IBM fue el Extended Graphics Array, abreviado como XGA. Sus características sobre el papel no eran muy arrolladoras para 1990, aunque sí se añadió un modo de 640×480 a 65.536 colores, algo que dejaba poco que echar en falta frente a soluciones profesionales. Añadía también compatibilidad parcial con la 8514 de IBM, en particular con su modo de 640×480 a 256 colores y el modo 1024×768 píxeles a 256 colores, que en esta ocasión permitía direccionar todos los píxeles individualmente a diferencia de la 8514 que sólo permitía texto en este modo.

XGA original de IBM, de conector MCA

Sin embargo, la mayor baza de esta tarjeta era una supuesta mejora de hasta un 50% en Windows frente a VGA. Realmente no era para tanto, porque el software no solía estar programado para usar todos los recursos de la tarjeta, por lo que soltar los 1,095 dólares de 1990 (más de 2.100 dólares de 2018) difícilmente justificaba esta mejora de rendimiento. Era una buena opción, eso sí, para sustituir al carísimo sistema 8514 en el sistema operativo OS/2 de IBM o en el propio Windows de Microsoft.

Anuncio de Arlington Computer Products con precios de casi todo, incluídas tarjetas gráficas, publicado en el número de diciembre de 1992 de PC Magacine.

Esta nueva tarjeta gráfica tuvo dos problemas fundamentales: primero que fue presentada para su línea de ordenadores PS/2 con un bus MCA, y puesto que era propietario y caro de implementar por terceros fracasó. Además, en aquella época terceros fabricantes simplemente añadían extensiones a las especificaciones VGA para alcanzar prestaciones arbitrarias, siendo esta especificación XGA poco atractiva para ellos. Los juegos y programas en alta resolución, en particular para MS-DOS, lo tuvieron difícil a finales de los 80 y principios de los 90 ya que debían soportar toda una plétora de variopintos estándares, por lo que la mayoría se quedaron estancados en el común denominador que eran los modos VGA.

Super VGA

Justo a continuación de salir las primeras VGA al mercado comenzaron a establecerse los primeros retazos de esta especificación, que nunca se materializaron en ninguna tarjeta en concreto. De hecho, técnicamente no se trata ni siqueira de una especificación formal, ya que no había una autoridad que hubiera publicado un estándar fuera del camino que IBM o los principales fabricantes fueron abriendo. En este contexto, incluso la XGA de IBM acabó siendo considerada como parte del comistrajo de Super VGA.

Theme Park (Bullfrog, 1994) en Super VGA, que era prácticamente lo mismo que en VGA pero con más resolución.

Esto cambió alrededor de 1990 con la publicación por consorcio VESA (Video Electronics Standards Association) de las VBE: VESA BIOS extensions. A partir de entonces comenzó, poco a poco, a existir una interfaz común en para acceder a los modos de alta resolución a la postre denominados Super VGA, todo mediante dichas extensiones en la BIOS. Las primeras especificaciones definieron modos de vídeo que las tarjetas implementarían, en especial los de alta resolución. En 1994 se publicó su especificación 2.0 que añadía soporte de páginas, modos planares, modos de 16 y 24 bits de color, modos lineales y todo ello en el modo protegido de la CPU, lo que permitió por fin que los juegos en alta resolución se hicieran realidad en el PC sin tener que programar para cada tarjeta específica.

Sim City 2000 (Maxis, 1994) fue uno de los primeros pensados para Super VGA

Otra de las especificaciones de VESA fue el VLB, VESA local bus, en 1992. Esta interfaz alternativa al bus PC (a la postre llamado ISA, Industry Standard Architecture) hacía que el microprocesador estuviera mucho más cerca de la gráfica, lo que permitía un rendimiento superior. Se trataba en realidad de un añadido a ISA, y permitía por ejemplo que la tarjeta gráfica accediese a la memoria principal mediante canales DMA, o memoria gráfica mapeada en la memoria principal en el modo protegido. No era un estándar exento de problemas: primero estaba diseñado fundamentalmente alrededor del procesador 80486 de Intel, lo que resultó en una solución no escalable y no demasiado fiable. Su uso, salvo excepciones, se limitó al de las tarjetas gráficas, y las placas base solían incluir a lo sumo dos ranuras que soportasen VLB. Por último, su factor de forma hacía las tarjetas difíciles de instalar, ya que era un conector enorme y que aplicaba cierto estrés a los componentes al instalarse. La puntilla fue la aparición del bus PCI ese mismo año, y tarjetas gráficas compatibles al año siguiente.

Finale

Super VGA, o lo que vino siendo mediante estándares y consorcios, fue el último gran (no) estándar gráfico de la era PC, ya fuera de los designios de la empresa IBM. En 1990 una tarjeta Super VGA decente costaba alrededor de 400 dólares (770 de 2018), frente a los más de 1000 (más de 1.900 de 2018) que costaban las soluciones de IBM, por lo que fuera de aplicaciones gráficas profesionales fue el gran triunfador.

S3 Trio 64V+, una de las tarjetas SVGA económicas más populares, de conexión PCI

A partir de entonces es otra película. Con el ocaso de MS-DOS, el inicio de la era Windows 95 y el modelo de drivers pasó algo parecido a con las tarjetas de sonido, y las peleas se centraron en aplicaciones específicas como el 3D o la decodificación de vídeo. Pero esto es otra historia.

The Settlers 2 (Blue Byte, 1996) a 1024×768 y 256 colores. O 16 bit. O 18, nadie lo tiene claro.

Agradecimientos a mis amigos gráficos, que me acompañan y me asesoran en esta exposición:

  • El píxel loco
  • La tarjeta humana
  • Doña Resolución Horizontal y doña Resolución Vertical
  • La enana en alta resolución
  • El monitor morsegón
  • La ranura glotona
  • El señor Estándar
  • Por último, don Aquí No Se Ve Na.

Como siempre, tendré a bien recibir comentarios, apuntes y añadidos sobre lo ya dicho, así como experiencias personales de quienes se gastaron más dinero del debido en tener 10 o 12 colores más en pantalla.

14 opiniones en “Tarjetas gráficas de la era IBM”

  1. Yo experimenté el uso de casi todas las gráficas que has mencionado, y me gustaría aclarar algunas cosas:

    1. Comentas que el Modo X de la VGA era más complejo de programar… y no es correcto. Los modos de 4 planos, donde había que escribir 4 posiciones de memoria para cada pixel y 8 píxeles cada vez, eran precísamente los modos de 16 colores de la EGA y VGA. El modo X, de 256 colores, tenía la ventaja de que 1 byte = 1 pixel, tal cual. Por cierto, en modo texto, la EGA permitía hasta 43 líneas en pantalla, y la VGA hasta 60.

    2. Una de las grandes mejoras técnicas que introdujo la VGA era que su memoria de video VRAM era de “3 vías”. Esto es, 1 vía para escribir, 1 vía para leer y 1 vía para el chip “raster”. Esto permitía leer y escribir en la memoria de video sin preocuparse del “refresco vertical” y sin latencia. En gráficas anteriores, la electrónica no permitía acceder a la memoria de video mientras el chip raster estaba leyendo los píxeles para mostrarlos en pantalla, lo que provocaba una demora significativa, además de provocar parpadeos (muy notorios especialmente en la CGA).

    3. La XGA fue la sucesora directa del 8514/A y aunque eran compatibles con la VGA, no estaban en su misma línea. Ambas fueron diseñadas especialmente para sistemas CAD, e incluian todo un sistema de primitivas de dibujo y almacenaban esos comandos dentro de la propia memoria de video. Eso permitía “redibujar” toda la pantalla sin intervención de la CPU. Y es verdad que la XGA fue la primera de las que aparecen en el artículo que soportó un modo de 64K colores, con un formato de 2 bytes por pixel (5R 6G 5B). No has mencionado las TARGA, que fueron las primeras en soportar hasta 32 bits por pixel.

    4. Lo de los “sprites” fue exclusivo del 8514/A y la XGA hasta que empezaron a implementarlo en algunas SuperVGA. Realmente sólo soportaban un sprite, que estaba destinado al puntero del ratón, y tenían unos registros especiales para ello. Fue eso precísamente lo que mejoraba el rendimiento gráfico en windows. Cuando movías el puntero del ratón, el uso de CPU era inferior al 1%, mientras que en una VGA el uso de CPU se disparaba a un 30-50%. Y lo digo con la seguridad de haber hecho esa prueba en su día.

    En aquella época yo estuve trabajando en un concesionario importante de IBM, y de hecho llegué a conseguir que IBM España pidiera directamente a EE.UU. un manual de programación de la XGA para mí, y me lo enviaron fotocopiado (más de 200 páginas) 😉

    1. Muchas gracias por tus comentarios, Jose. Respecto al modo X creo que no me he explicado demasiado bien, supongo que porque mi experiencia programando la VGA se limita al modo 13h, y mediante librerías. Las Truevision no las he mencionado porque no he encontrado literatura suficiente, quizás me anime a buscar en el futuro. Espero volver a leer tus apuntes por aquí.

  2. Gran artículo. De hecho, me interesa tanto el tema que escribí hace tiempo una guía parecida, para orientar a los novatos en esto de los juegos antiguos: http://www.abandonsocios.org/index.php?topic=14230.0

    Personalmente, me inicié en el mundillo de los PC con un 486/66 que traía una VGA Trident baratita. Pero como muchos juegos ofrecían otras modalidades de gráficos más antiguas y me encanta cacharrear enseguida me puse a probarlas. Nunca conocí a na die que jugara, por ejemplo, al “Stunts” en modo Hercules, pero sin duda se merecía un concierto solidario o algo.

    Lo último ha sido descubrir gracias a DOSBox el modo “CGA Composite” y los PCjr / Tandy. Si alguna vez llegaron a Europa lo desconozco, pero son unas maquinotas la mar de curiosas, sobretodo el Tandy 1000, que es el que tiene más juegos con algún tipo de soporte. En alguno, como el “Arctifox” o el “Ninja” hasta es el modo con más colores y todo.

    Eso sí, me siguen repateando lo que no está escrito los juegos en CGA con la maldita paleta de magentas y cian. Lo que le ha pasado a IBM para mí no es más que una venganza cármica por la de juegos en ese modo gráfico que hicieron tragar a los usuarios de PC. He dicho.

  3. Sobre el Modo X había con varias resoluciones no solo la de 320×240 que podías usar los 256k de memoria de la VGA standard. También estaba el modo de 256×256 y superiores dependiendo la memoria que tuviera la VGA.
    Luego sacaron el modo VESA ( Nada que ver con los conectores VESA) donde las VGAs más modernas ya lo tenían incorporado en ROM y las más antiguas lo tenían si le instalabas un driver en RAM. Lo que se conseguía con el modo VESA era acceso a la programación gráfica de una manera standard similar a la BIOS y con esto se hacían los juegos más compatibles. La última revisión VESA creo que fue la 2.0
    En esta época uno de los fabricantes más famosos de tarjetas gráficas era ATI que ya hemos visto actualmente hasta donde ha llegado. No existía NVIDIA

    1. Sobre el modo 256×256×256 se llamó modo Q, que tenía características particulares. Con los drivers para los modos VESA imagino que te refieres a los Scitech Display Doctor (antes Univbe), muy útiles para jugar en SVGA en tarjetas antiguas como comentas.

    1. Me alegro, Kike. No tengo planes por el momento, no es un tema que me apasione tanto. De todas formas trataré de documentarme un poco en kiwipedia y similares para ver si hay material.

  4. Muy molón el reportaje… es un tema que me apasiona porque aunque soy un negado para los datos técnicos me encanta trastear con juegos antiguos y emuladores de DOS. La verdad es que antes de la EGA estaba muy “mala” la cosa… yo empecé con un 486/66 y tarjeta SVGA, pero muchos juegos todavía venían en Hercules – CGA – EGA y era un espectáculo de lo más triste, sobretodo la CGA con su paleta donde siempre se colaba por narices el rosa.

    Y una preguntilla: ¿Se puede reproducir ese modo EGA mejorado del “Secret of Monkey Island” con DOSBox o PCem? No lo conocía y me ha parecido muy curioso.

    1. En SCUMMVM parece que no está soportado, pero en el juego original sí. Tienes que usar la versión VGA del Monkey Island 1 de disquetes y usar la opción e. Así:

      C:\MONKEY> monkey e

  5. Excelente artículo, minucioso. La verdad es que uno por ahí no sabe estos detalles aunque los haya vivido en parte no?. Gracias por lo escrito. Saludos!

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.