ANTIC
El ANTIC (Alpha-Numeric Television Interface Circuit) Circuito de Interfaz Alfanumérica de Televisión, fue una GPU diseñado por Steven Mayer, Jay Miner, Douglas Neubauer y Joseph Decuir (patente de Estados Unidos 4.296.476, con fecha 20 de octubre de 1981) para Atari y utilizado en los computadores domésticos de la familia Atari de 8 bits y en la videoconsola Atari 5200 en la década de 1980.
ANTIC era un microprocesador dedicado que generaba los gráficos en 2D que se mostraban en la pantalla de un televisor o en un monitor de computadora. Se trataba de un verdadero microprocesador, que tenía un conjunto de instrucciones que le permitían ejecutar programas para procesar datos de gráficas de vídeo. Estos "programas" tenían el nombre de listas de despliegue (display lists).
La CPU de dichos equipos, compatible con 6502, escribía en la RAM la lista de despliegue y los datos del despliegue. El ANTIC recogía esa información desde la RAM usando una técnica conocida como DMA (direct memory access, acceso directo a la memoria). Procesaba las instrucciones de nivel más alto (o más complejas) de la lista de despliegue y las traducía en tiempo real en un flujo de instrucciones simplificadas para el chip CTIA, en una combinación que proporcionaba 12 modos gráficos. Con el chip GTIA, más avanzado, se disponía de 16 modos gráficos.
Características
[editar]Las características más notables de ANTIC eran:
- 14 modos diferentes de gráficos y de texto.
- Los modos de despliegue (Display modes) podían mezclarse en la pantalla
- RAM de pantalla variable (Non-fixed screen RAM). La RAM de pantalla se podía ubicar casi en cualquier área de la memoria. Eso hacía posible que se pudiera hacer intercambio de páginas (page-flipping) y otros efectos fácilmente.
Instrucciones
[editar]ANTIC tenía cuatro tipos de instrucciones:
- Modo de mapa de bits - despliegue de pixeles
- Modo de caracteres - despliegue de datos de carácter
- Línea en blanco - despliegue de líneas horizontales en blanco (en color sólido)
- Instrucción de salto - recargaba el contador del programa ANTIC (instrucción de 3 bytes)
Cada instrucción tenía opciones adicionales dadas mediante la asignación de bits específicos:
- DLI - {Display list interrupt} interrupción de la lista de despliegue.
- Carga barrido de memoria {Load Memory Scan} (LMS) - Carga las direcciones de los datos de gráficos/caracteres (instrucción de 3 bytes)
- Deslizamiento Vertical {Vertical scrolling} - Habilita el deslizamiento vertical
- Deslizamiento Horizontal {Horizontal scrolling} - Habilita el deslizamiento horizontal
Aunque ANTIC era un microprocesador, su contador de programa tenía sólo 10-bits de longitud. Esto hacía que la lista de despliegue requiriera de una instrucción de salto JMP para cruzar un límite de 1K. Se necesitaba una instrucción de "carga de barrido de memoria" LMS (Load Memory Scan) para los datos que cruzaban un límite de 4K. Finalmente, se ponía una instrucción de "salto durante el borrado vertical" JVB (Jump on Vertical Blank), al final de la lista de despliegue. El despliegue completo era igual a 192 líneas de barrido.
Enlaces externos
[editar]- De Re Atari by Chris Crawford (en inglés).
- Mapping the Atari, Revised Edition by Ian Chadwick (en inglés).
- ANTIC Chip data sheet (en inglés).
- CGIA Chip data sheet (en inglés).