stringtranslate.com

Modo 13h

Imagen simulada tal como se muestra usando el modo VGA, resolución de 13 h y capacidades de color (relación de aspecto no corregida).
Paleta VGA predeterminada de 256 colores

El modo 13h es el modo estándar de 256 colores en hardware de gráficos VGA introducido en 1987 con el IBM PS/2 . Tiene una resolución de 320×200 píxeles . [1] Se utilizó en juegos de computadora y software de arte / animación a finales de los 80 y principios y mediados de los 90. [ cita necesaria ] "13h" se refiere al número del modo en el BIOS VGA . La "h" significa hexadecimal .

El modo 13h proporciona a los programadores un bloque lineal de memoria de vídeo de 320 × 200 , donde cada byte representa un píxel. Esto permite una programación sencilla a expensas del acceso a otras funciones útiles del hardware VGA.

Dada la relación de aspecto de una pantalla con resolución de 320 × 200 para usar en una pantalla de 4:3 , el Modo 13h no tiene píxeles cuadrados . [2]

Detalles técnicos

El modo 13h es algo curioso, porque el VGA es un dispositivo plano desde una perspectiva de hardware , y no es adecuado para operaciones con gráficos gruesos. El VGA tiene 256  KiB de memoria de vídeo que consta de 4 bancos de 64 KiB, conocidos como planos (o 'mapas' en la documentación de IBM). La disposición de la memoria plana divide los píxeles horizontalmente en grupos de cuatro. Para cualquier byte determinado en la apertura de la memoria de video de 64 KiB de la PC, se puede acceder a cuatro píxeles en la pantalla seleccionando los planos requeridos. Esto es más complicado para el programador, pero permite acceder a toda la memoria de video disponible y otros beneficios (ver Modo X ).

El modo 13h, sin embargo, permite al programador acceder al VGA de forma "gruesa" (lineal), donde cada dirección consecutiva en la apertura representa un píxel consecutivo en la pantalla. No es necesario manipular los planos para seleccionar los píxeles correctos para modificar o leer. Esto se logra usando la configuración VGA 'Chain 4' en la que los dos bits más bajos de la dirección de apertura de 16 bits se usan para seleccionar el plano para escribir/leer. El resultado es que el programador tiene un modelo de acceso simple; la desventaja es que ahora solo se puede acceder a 2 14 (16 KiB) del espacio de direcciones del plano de video (los otros 2 bits se usan para seleccionar planos), por lo que solo se puede direccionar un total de 64 KiB (4 × 16 KiB). Los 48 KiB superiores de cada avión no se utilizan en este modo.

A diferencia de SVGA y de mayores profundidades de color, el Modo 13h, parte del conjunto de modos de vídeo MCGA , tiene 18 bits de color , 6 por canal RGB. Los datos de la paleta de colores no se almacenan en la memoria per se , sino que se modifican, leen y escriben mediante llamadas de puertos de E/S de bajo nivel en los registros DAC .

Los datos de la paleta a menudo se copiaban desde los puertos de bajo nivel uno a la vez a un lugar en la memoria después de los datos de la pantalla para que los colores pudieran guardarse junto con los píxeles a los que pertenecían. Una captura de pantalla en modo 13h tiene simplemente 64.000 bytes de valores de 0 a 255, cada uno de los cuales es un índice de un color de una paleta conocida de múltiples colores. Si la paleta de colores está confusa o es totalmente incorrecta, una hoja verde aparecerá azul, o cualquier otro color posible, dependiendo de para qué se configuró ese color en particular, cuál de 256 en particular.

Debido a la forma en que se asignan los fragmentos de memoria en dicho entorno, los bytes en el segmento 0xA000 del desplazamiento 64000 a 64768 se pueden escribir sin efectos negativos. Esto permite al programador guardar los bytes adicionales, 256 (colores) × 3 (canales de color) = 768 bytes, al final del archivo de captura de pantalla. Estos deben volver a leerse y escribirse en el puerto de color para que cambien cuando se carga una imagen que contiene un pie de página con información de color. Un método utilizado con esto fue tener una paleta global y hacer coincidir los colores de una paleta de colores antigua con una paleta de colores nueva. Esto significó cambiar el índice de cada píxel, donde señalaría una coincidencia casi perfecta de un color del conjunto de colores antiguo al nuevo. Esto también tenía desventajas, ya que a veces no había suficientes gradientes y aparecían artefactos y cosas así.

No es imprescindible configurar el modo de gráficos a través del BIOS; Es posible cambiar el modo de gráficos al modo protegido de 32 bits, aunque es un poco más complicado. Implica escribir datos de tamaño en el controlador VGA.

Variantes

Un modo plano alternativo de 256 colores está disponible al desactivar el modo Cadena 4 (desencadenar). Los modos de vídeo creados con esta técnica se denominan colectivamente Modo X , aunque el uso original de ese término era para un modo VGA que también tenía píxeles cuadrados. Si bien estos modos (junto con muchos otros modos VGA posibles) no fueron documentados específicamente por IBM, las funciones y características del hardware VGA utilizadas para implementarlos se documentaron al menos ya en 1988, en la Referencia técnica de interfaz de hardware PS/2 .

Notación

En lenguaje ensamblador x86, se ingresa al modo cuando AL es 13h, AH es 0 y se ejecuta BIOS INT 10h . [1] Sin embargo, la "h" a veces se elimina en los idiomas que no admiten ese método de notación; por ejemplo, se conoce como modo de pantalla 13 en QuickBASIC y sus derivados. [3] QuickBASIC tiene su propio esquema de numeración de modos de pantalla, y muchos modos de pantalla QuickBASIC tienen números que difieren de los modos BIOS en los que se basan. [4] En C , el 13 hexadecimal se escribe 0x13.

Referencias

  1. ^ ab Brown, Ralf D. "Lista de interrupciones de Ralf Brown" . Consultado el 24 de agosto de 2018 .
  2. ^ Fabien Sanglard, LIBRO NEGRO DE GAME ENGINE: WOLFENSTEIN 3D, segunda edición, capítulo Hardware, página 59, disponible gratuitamente en https://fabiensanglard.net/gebb/index.html
  3. ^ "Asesor de Microsoft QuickBasic 4.5". Microsoft . 1990. Archivado desde el original el 5 de enero de 2009 . Consultado el 19 de julio de 2007 .
  4. ^ Un ejemplo importante es el modo de pantalla QuickBASIC 0, que cubre todos los modos de texto del BIOS 00h..03h. Además, los modos de pantalla QuickBASIC 1 y 2 corresponden a los modos CGA BIOS 04h a 06h. Tenga en cuenta además que QuickBASIC tiene modos para el modo de gráficos Hercules , que no tiene ningún soporte de BIOS estándar, y para los modos de gráficos CGA extendidos de Olivetti/AT&T .

enlaces externos