ANTIC
ANTIC (Alpha-Numeric Television Interface Circuit) Circuito de Interfaz Alfanumérica de Televisión. Fue un primitivo chip de sistema de video usado tanto por los microcomputadores de la familia Atari de 8 bits como también por algunas consolas de juegos de vídeo de Atari allá por los 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 computador. Se trataba de un verdadero microprocesador, que tenía un conjunto de 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 unidad de procesamiento central CPU, 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 acceso directo a la memoria {direct memory access} DMA. 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
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 paginas {page-flipping} y otros efectos fácilmente.
Instrucciones
ANTIC tenía cuatro tipos de Instruccióninstrucciones:
- 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 progama 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
- Re Atari by Chris Crawford (en inglés).
- the Atari, Revised Edition by Ian Chadwick (en inglés).
- |ANTIC Chip data sheet (en inglés).
- CGIA Chip data sheet (en inglés).