El adaptador de gráficos mejorado ( EGA ) es un adaptador de gráficos de IBM PC [2] [3] y un estándar de pantalla de computadora de facto desde 1984 que reemplazó al estándar CGA introducido con el IBM PC original , y fue reemplazado por el estándar VGA en 1987. Además de la tarjeta EGA original fabricada por IBM , se fabricaron muchas tarjetas de terceros compatibles, y los modos gráficos EGA continuaron siendo compatibles con VGA y estándares posteriores.
IBM introdujo EGA en octubre de 1984, [2] [3] poco después de su nueva PC/AT . EGA podía instalarse en las IBM PC lanzadas anteriormente, pero requería una actualización de ROM en la placa base . [4]
El primer producto de Chips and Technologies , anunciado en septiembre de 1985, fue un chipset EGA de cuatro chips que manejaba las funciones de 19 chips propietarios de IBM en el adaptador gráfico mejorado original. En el COMDEX de noviembre de ese año , más de media docena de empresas habían anunciado placas compatibles con EGA basadas en el chipset de C&T. [5] La primera placa compatible con EGA fue Vega en diciembre de 1985, lanzada por Video Seven y que usaba el chipset de C&T. [6] : 34 La Vega tenía la mitad del ancho de la placa EGA original de IBM. [7]
Entre 1984 y 1987, varios fabricantes externos produjeron tarjetas compatibles , como la Autoswitch EGA [8] o el chipset Super EGA de Genoa Systems . [9] Las tarjetas posteriores que admitían una versión extendida de VGA se denominaron de manera similar Super VGA .
El estándar EGA quedó obsoleto en 1987 con la introducción de MCGA y VGA con la línea de computadoras PS/2 . [10]
El software comercial comenzó a soportar EGA poco después de su introducción, con The Ancient Art of War , lanzado en 1984. [11] Microsoft Flight Simulator v2.12 , [12] [13] Jet , [14] Silent Service , [15] y Cyrus , [16] todos lanzados en 1985, ofrecieron soporte para EGA, junto con Windows 1.0 . King's Quest III de Sierra , lanzado en 1986, fue uno de los primeros juegos de PC convencionales en usarlo.
En 1987, el soporte para EGA era algo común. [17] La mayoría del software creado hasta 1991 podía ejecutarse en EGA, aunque la gran mayoría de los juegos comerciales usaban 320 × 200 con 16 colores para compatibilidad con versiones anteriores de CGA y Tandy , y para dar soporte a los usuarios que no poseían un monitor EGA mejorado. Los modos de 350 líneas fueron utilizados principalmente por juegos freeware/shareware y software de aplicación, aunque SimCity es un ejemplo notable de un juego comercial que se ejecuta en modo 640 × 350 con 16 colores. [18] [19] Los juegos de aventuras modernos, como The Crimson Diamond , usan herramientas freeware como Adventure Game Studio para crear juegos con paletas de colores estilo EGA pero con características modernas. [20]
La IBM EGA original era una tarjeta PC ISA de 8 bits con 64 KB de RAM integrada . Una placa secundaria opcional (la tarjeta de expansión de memoria gráfica ) proporcionaba un mínimo de 64 KB de RAM adicional y hasta 192 KB si se completaba con el kit de módulo de memoria gráfica . [21] Sin estas actualizaciones, la tarjeta estaría limitada a cuatro colores en modo 640 × 350. [22]
La salida se realizó a través de RGB de accionamiento directo , [23] como con el CGA, pero no se incluyó salida de video compuesto . [24] Se podían controlar monitores MDA y CGA, así como monitores de color mejorados recientemente lanzados para usar específicamente con EGA. [25]
Los monitores específicos de EGA utilizaban un diseño de sincronización dual que podía cambiar de 15,7 kHz para los modos de 200 líneas a 21,8 kHz para los modos de 350 líneas. [25]
Muchas tarjetas EGA tienen interruptores DIP en la parte posterior de la tarjeta para seleccionar el tipo de monitor. Si se selecciona CGA, la tarjeta funcionará en modo de 200 líneas y utilizará caracteres de 8×8 en modo de texto . Si se selecciona EGA, la tarjeta funcionará en modo de 350 líneas y utilizará texto de 8×14.
Algunas tarjetas de terceros que usaban la especificación EGA se vendieron con los 128 KB de RAM completos de fábrica, mientras que otras incluían hasta 256 KB para permitir múltiples páginas de gráficos, múltiples conjuntos de caracteres de modo de texto y pantallas de desplazamiento grandes. [8] Algunas tarjetas de terceros, como la ATI Technologies EGA Wonder , se basaron en el estándar EGA para ofrecer además funciones como modos gráficos extendidos de hasta 800 × 560 y detección automática del tipo de monitor. [26]
EGA produce una pantalla de hasta 16 colores (utilizando una paleta fija , o una seleccionada de una gama de 64 colores (RGB de 6 bits) , según el modo) en varias resoluciones de hasta 640 × 350 píxeles, así como dos modos monocromáticos en resoluciones más altas. Las tarjetas EGA incluyen una ROM para ampliar el BIOS del sistema para funciones gráficas adicionales y un controlador CRT personalizado (CRTC) . [27]
El IBM EGA CRTC admite todos los modos de los adaptadores IBM MDA y CGA a través de opciones de modo específicas, [27] pero no es totalmente compatible con los registros del Motorola MC6845 utilizado en esas tarjetas, por lo que el software que programa directamente los registros para seleccionar modos puede producir resultados diferentes en el EGA. [28]
Las resoluciones admitidas son 320 × 200 y 640 × 200 (en un monitor CGA o EGA [29] ), 720 × 350 y 640 × 350 (en un monitor MDA) y 320 × 350 y 640 × 350 (en un monitor EGA). EGA escanea a 21,8 kHz cuando se utilizan modos de 350 líneas y a 15,7 kHz cuando se utilizan modos de 200 líneas. [25]
En el modo de alta resolución de 640 × 350, que requiere un monitor EGA mejorado, se pueden seleccionar 16 colores de una paleta que comprende todas las combinaciones de dos bits por píxel para rojo, verde y azul. Esto supone cuatro niveles de intensidad para cada color primario y 64 colores en total. Los modos gráficos de 640 × 200 y 320 × 200 proporcionan compatibilidad con versiones anteriores del software y los monitores CGA, pero pueden utilizar toda la paleta CGA de dieciséis colores simultáneamente, en lugar de las paletas de cuatro colores más pequeñas a las que se limita el CGA real en esos modos. [29]
Los modos gráficos de 16 colores de EGA utilizan planos de bits y registros de máscara [30] junto con operaciones bit a bit de la CPU [31] para gráficos acelerados . Las mismas técnicas se utilizaron posteriormente en VGA .
EGA apoya:
Modos de texto:
Modos gráficos ampliados de placas de terceros: [ cita requerida ]
Con el EGA, se pueden utilizar los 16 colores CGA simultáneamente y cada uno de ellos se puede asignar a una paleta más grande de 64 colores (dos bits para cada uno de los colores rojo, verde y azul). El color marrón alternativo del CGA se incluye en la paleta más grande, por lo que se puede utilizar sin ningún hardware de visualización adicional. El estándar VGA posterior se basó en esto asignando cada uno de los 64 colores a una paleta más grande y personalizable de 256.
Los monitores EGA estándar no admiten el uso de la paleta de colores extendida en los modos de 200 líneas, porque el monitor no puede distinguir entre estar conectado a una tarjeta CGA o estar conectado a una tarjeta EGA que emita un modo de 200 líneas. EGA redefine algunos pines del conector para transportar la información de color extendida. Si el monitor estuviera conectado a una tarjeta CGA, estos pines no transportarían información de color válida y la pantalla podría verse distorsionada si el monitor los interpretara como tal. Por este motivo, los monitores EGA estándar utilizarán la asignación de pines CGA en los modos de 200 líneas, por lo que el monitor también se puede utilizar con una tarjeta CGA. [ cita requerida ]
Algunos monitores EGA son conmutables , lo que significa que se pueden configurar para utilizar la paleta completa incluso en modos de 200 líneas, a menudo a través de un interruptor mecánico. Solo se lanzaron unos pocos juegos comerciales con soporte para la paleta de colores extendida en 320 × 200 o 640 × 200 (incluida la versión DOS de Super Off Road ). [32] [33]
Al seleccionar un color de la paleta EGA, se utilizan dos bits para los canales rojo, verde y azul para señalar los valores 0, 1, 2 o 3. Por ejemplo, para seleccionar el color magenta, los valores rojo y azul serían de intensidad media (2, o 10 en binario) y el valor verde estaría apagado (0).
La siguiente tabla muestra un ejemplo de paleta que coincide con los 16 colores CGA estándar, con sus representaciones en binario rgbRGB (orden de bits interno de la tarjeta), donde las letras minúsculas son los bits de baja intensidad y las letras mayúsculas son los bits de alta intensidad. También se muestran los valores decimales y hexadecimales (convertidos a colores web sRGB de 24 bits equivalentes).
Las siguientes imágenes ilustran la paleta completa de EGA en detalle.
EGA utiliza un conector D-sub ( DE-9 ) hembra de nueve pines para la salida, idéntico al conector CGA. El estándar de señal y la distribución de pines son compatibles con CGA, lo que permite utilizar monitores EGA en tarjetas CGA y viceversa.
Cuando se opera en modos EGA, los pines 2, 6 y 7 se reutilizan para las señales RGB secundarias de EGA (consulte la tabla de distribución de pines a continuación). Cuando se opera en modos CGA de 200 líneas, la tarjeta EGA es totalmente compatible con un monitor IBM CGA estándar; sin embargo, los monitores de terceros tenían una compatibilidad variable. [ cita requerida ]
Los monitores de terceros a veces conectaban el pin dos a tierra internamente. Cuando se conectan a una tarjeta EGA, esto provoca un cortocircuito en la salida roja secundaria de la EGA a tierra y puede dañar la tarjeta. Además, algunos monitores estaban cableados con el pin dos como única conexión a tierra, y estos no funcionarán con la EGA. [ cita requerida ]
Por el contrario, un monitor EGA debería funcionar con un adaptador CGA, pero si no está configurado en modo CGA, la señal roja secundaria estará conectada a tierra (siempre cero) y la azul secundaria estará flotante (desconectada), lo que provocará que todos los colores de alta intensidad, excepto el marrón, se muestren incorrectamente y que todos los colores tengan potencialmente un tinte azul variable debido al estado indeterminado de la azul secundaria desconectada. [ cita requerida ]
El monitor IBM 5154 EGA tiene un modo especial de compatibilidad IBM 5153 CGA cuando opera con señales de sincronización CGA y cambia automáticamente a la distribución de pines CGA para evitar todos los problemas mencionados al operar en este modo. [34]
La tarjeta EGA original de IBM incluye un conector especial (conector azul J4, ver la primera foto de esta página) que proporciona acceso a dos conectores RCA en la parte posterior de la tarjeta, además de varias señales analógicas y digitales que el adaptador EGA puede configurarse para usar. [35]
En la tarjeta original también estaba presente una interfaz de lápiz óptico . [36]
Para los modos de texto en color y gráficos CGA, la memoria de video se asigna a 16 KB de direcciones que comienzan en la dirección B8000h, y en el modo de texto monocromático (compatible con MDA), la memoria de video ocupa 16 KB a partir de B0000h. Estas asignaciones de direcciones se realizan para compatibilidad con versiones anteriores.
Para los modos nuevos de EGA, la memoria de video comienza en la dirección A0000h y ocupa 64 KB. Las diferentes direcciones base para los modos color y monocromo permiten utilizar una EGA simultáneamente con una tarjeta gráfica monocromática en la misma computadora, o utilizar una EGA en modo de texto MDA simultáneamente con una CGA en la misma computadora.
Los modos gráficos nativos de EGA son planos , a diferencia de los modos intercalados CGA y Hercules . La memoria de video se divide en cuatro "planos" (excepto 640 × 350 × 2, que tiene dos planos), uno para cada componente del espacio de color RGBI. Cada píxel está representado por un bit en cada plano. Si un bit en el plano rojo está activado, pero ninguno de los bits equivalentes en las otras páginas lo está, aparecerá un píxel rojo en esa ubicación en la pantalla. Si todos los demás bits para ese píxel en particular también estuvieran activados, se volvería blanco, y así sucesivamente.
Los aviones son de diferentes tamaños según el modo:
Todos los planos residen en el segmento A000 del espacio de direcciones de la CPU. Están conmutados por banco y solo se puede leer un plano a la vez en el bus de la CPU; sin embargo, el programador puede configurar los registros de control de la tarjeta para seleccionar en qué planos se escribe y escribir en varios a la vez. Una excepción es el modo de lectura 1, en el que se leen los cuatro planos y se comparan con los datos de "Comparación de colores" programados, y se puede leer un byte que indica el resultado de la comparación de los cuatro planos en el bus de E/S.