stringtranslate.com

interrupción de trama

Una interrupción ráster (también llamada interrupción en blanco horizontal ) es una señal de interrupción en un sistema informático heredado que se utiliza para la sincronización de la visualización. Por lo general, aunque no siempre, lo genera el chip de gráficos de un sistema mientras las líneas de escaneo de un cuadro se preparan para enviarse al monitor para su visualización. La implementación más básica de una interrupción ráster es la interrupción vertical en blanco .

Una interrupción de este tipo proporciona un mecanismo para que los registros gráficos cambien a mitad del fotograma, de modo que tengan diferentes valores por encima y por debajo del punto de interrupción. Esto permite que un objeto de un solo color, como el fondo o el borde de la pantalla, tenga múltiples bandas de color horizontales , por ejemplo. O bien, reposicionar un objeto de hardware para dar la ilusión de que hay más objetos de los que admite un sistema. La limitación es que los cambios solo afectan la parte de la pantalla debajo de la interrupción. No permiten más colores ni más sprites en una sola línea de escaneo.

Los sistemas operativos modernos en modo protegido generalmente no admiten interrupciones ráster, ya que el acceso a interrupciones de hardware para programas de usuarios sin privilegios podría comprometer la estabilidad del sistema. Dado que su caso de uso más importante, la multiplexación de sprites de hardware, hoy en día ya no es relevante, no existe un sucesor moderno de las interrupciones rasterizadas.

Sistemas que soportan interrupciones ráster

Varias computadoras domésticas y consolas de videojuegos populares incluían chips gráficos que admitían interrupciones ráster o tenían características que podían combinarse para funcionar como interrupciones ráster. La siguiente lista no es exhaustiva.

Astrocade (dos chips personalizados, 1977)

Bally Astrocade admitía una interrupción horizontal en blanco para seleccionar los cuatro colores de la pantalla de una paleta de 256 colores. El Astrocade no admitía sprites de hardware.

Computadoras Atari de 8 bits (chip ANTIC, 1979)

El chip ANTIC utilizado por las computadoras Atari de 8 bits incluye interrupciones de la lista de visualización (DLI), que se activan a medida que se dibuja la pantalla. [1] [2] El chip ANTIC en sí es considerablemente potente e inherentemente capaz de muchas características que otros sistemas requieren interrupciones ráster para duplicar. ANTIC puede mezclar múltiples modos de gráficos en la pantalla, mostrar gráficos de sobreexploración horizontal y vertical y desplazarse con precisión por regiones horizontales seleccionadas. Los DLI en Atari se usan típicamente para agregar color adicional a la pantalla y reutilizar elementos gráficos de Player/Missile.

ColecoVision y MSX (chip TMS9918, 1979)

La ColecoVision , una consola de juegos de 8 bits lanzada en 1982, así como la MSX , una computadora doméstica estandarizada de 1983, utilizaban el Texas Instruments TMS9918 . Incluye una fuente de 'interrupción vertical' para reposicionar los sprites de hardware en la pantalla.

Commodore 64 (chip VIC-II de tecnología MOS, 1982)

El VIC-II del C64 y del C128 tiene un sistema de interrupción de trama flexible. Las interrupciones ráster y la intervención de la CPU son necesarias para reutilizar sprites en la pantalla, mezclar modos de gráficos y desplazarse selectivamente por regiones de la pantalla. Las interrupciones ráster también son compatibles con los TED del Plus/4 y del C16 .

Sistema de entretenimiento Nintendo (chip PPU, 1983)

El chip gráfico PPU de Nintendo Entertainment System no admite interrupciones rasterizadas verdaderas (se puede configurar una interrupción para que se active durante el intervalo en blanco vertical , pero no en cualquier línea de escaneo arbitraria); en cambio, requería sondear una "bandera de impacto" que indicaba cuándo Se estaba dibujando el primer sprite. Aunque los primeros juegos como Super Mario Bros. , Castlevania y The Legend of Zelda lograron producir un desplazamiento de pantalla dividida efectivo con este método, requiere un uso intensivo de la CPU. Algunos cartuchos posteriores incorporaron circuitos MMC (sobre todo el chip MMC3 de Nintendo) que realizaban un seguimiento de la dirección y las líneas de datos de la PPU y generaban interrupciones rasterizadas.

IBM PCjr (matriz de puerta de vídeo, 1984)

El IBM PCjr que utiliza el chip gráfico Video Gate Array admitía una "interrupción de retroceso vertical" implementada como IRQ5. [3] Más tarde, en 1984, IBM introdujo el estándar de gráficos EGA que también admitía una interrupción de retroceso vertical, pero implementado como XT IRQ2 y deshabilitado de forma predeterminada. [4] Sin embargo, no todas las tarjetas EGA implementaron esta característica y muy pocos programas que utilizaban modos EGA dependían de ella.

Las GPU modernas tienen una IRQ registrada en el procesador principal. Es importante destacar que esto no es una "interrupción en blanco" vertical ni horizontal y es manejado por el controlador del dispositivo de la tarjeta gráfica.

MSX2 (Yamaha V9938, 1985)

Las computadoras MSX2 cuentan con un chip gráfico Yamaha V9938 que, al igual que la NES, admite "interrupciones en blanco verticales" pero requiere sondeo para detectar "interrupciones en blanco horizontales". Se usaba comúnmente para crear pantallas divididas, mezclar múltiples modos de video en una pantalla y aumentar la cantidad de colores únicos en la pantalla más allá de las especificaciones oficiales. Ejemplos de uso destacados son la serie Aleste y Space Manbow de Konami .

Amiga (chip de cobre, 1985)

Las computadoras Amiga incluyen un coprocesador personalizado llamado Copper que se dedica a atender interrupciones ráster. Copper ejecuta un programa de instrucciones simples que le indican que espere una línea de escaneo vertical específica y una posición del haz horizontal, y luego actualice el contenido de un registro de hardware de chip personalizado. Esto generalmente se usa para modificar parámetros de visualización, como mezclar modos de visualización, reutilizar sprites o cambiar registros de color, pero también se puede usar para activar una interrupción de la CPU.

X68000 (chip VSOP + VINAS, 1987)

El X68000 , un ordenador doméstico de 16 bits vendido en Japón, tiene un sistema de interrupción de trama flexible para multiplexar sprites de hardware.

Game Boy (chip PPU, 1989)

La PPU de Game Boy admite cuatro interrupciones de trama: [5] se puede configurar para que se active al principio de una línea de exploración específica, al final de las líneas de exploración (durante el borrado horizontal ), al principio de todas las líneas de exploración o al el comienzo del supresión vertical . Su inconveniente es que se utiliza el mismo controlador de interrupciones para las tres primeras, lo que requiere el uso de código de "despacho" si se utiliza más de una condición.

Referencias

  1. ^ De Re Atari. Atari, Inc. 1982.
  2. ^ Watson, Alan (1982). "Introducción a las interrupciones de la lista de visualización". Segundo libro de Atari de COMPUTE !
  3. ^ Referencia técnica de IBM PCjr. Corporación Internacional de Máquinas de Negocios. Noviembre de 1983. p. 108.
  4. ^ Manual del adaptador de gráficos mejorado de IBM (PDF) . Corporación Internacional de Máquinas de Negocios. pag. 72. Archivado (PDF) desde el original el 24 de mayo de 2024 . Consultado el 29 de julio de 2024 .
  5. ^ "Visualización de vídeo". Wiki GBDev . Consultado el 20 de octubre de 2017 .

Ver también