# ANTIC

L'ANTIC (Alpha-Numeric Television Interface Circuit) è un circuito integrato prodotto da Atari, Inc., usato per la generazione dell'immagine video da visualizzare su un televisore oppure su un monitor. L'ANTIC è stato sviluppato tra il 1977 e il 1978 da Joe Decuir, Francois Michel e Steve Smith sotto la supervisione di Jay Miner ed è stato poi utilizzato sui computer a 8 bit di Atari commercializzati a partire dal 1979, nonché sulla console giochi Atari 5200 presentata nel 1982.

## Storia

Subito dopo l'immissione sul mercato della console 2600, avvenuta nel 1977, Atari incaricò i suoi ingegneri di iniziare a lavorare alla sua erede. Tra le priorità c'era quella di realizzare un nuovo chipset più performante rispetto a quello che equipaggiava la 2600, basato su un chip grafico noto come Television Interface Adaptor (TIA).
Durante lo sviluppo, iniziò la rivoluzione degli home computer per l'arrivo sul mercato di 3 computer: l'Apple II, il Commodore PET ed il Radio Shack TRS-80. Il nuovo presidente di Atari, Ray Kassar, decise di provare ad entrare nell'appena nato mercato dei computer domestici e fece revisionare il progetto della nuova console affinché potesse dar luogo a 2 sistemi distinti: un sistema di fascia bassa per sostituire la console 2600 ed un sistema di fascia alta da vendere, dopo opportune modifiche, come home computer. In entrambi i casi l'hardware doveva essere rivisto perché graficamente, oltre a prestazioni superiori, esso doveva poter gestire anche i caratteri grafici. A tale scopo gli ingegneri progettarono un nuovo integrato denominato ANTIC, il cui scopo era quello di gestire un framebuffer di grafica bitmap, che né il TIA né il suo erede CTIA erano capaci di gestire. Il nuovo sistema prevedeva che l'ANTIC generasse lo sfondo, inserisse gli eventuali caratteri e disegnasse la parte grafica e poi passasse le informazioni grafiche al CTIA, che avrebbe poi provveduto a colorare tutto, ad applicare gli sprite ed a spedire l'immagine al circuito preposto a generare il segnale video.
Il risultato fu un sistema grafico molto più potente rispetto a quanto offerto dal TIA: uno schermo con una risoluzione che poteva variare da 40 a 320 pixel orizzontalmente e da 24 a 192 pixel verticalmente; 6 modalità testuali e 8 modalità grafiche differenti; da 2 a 4 colori per riga in modalità grafica e 5 in modalità testuale abbinato al CTIA, fino a 16 colori se abbinato al GTIA. Una modalità molto usata nei giochi fu quella a 160×192 pixel a 4 colori, nota come "graphics 7.5".

## Descrizione

L'ANTIC era indicato dalla stessa Atari, Inc. come un vero microprocessore dedito alla generazione della grafica 2D: esso infatti aveva un proprio insieme di istruzioni per eseguire dei "programmi" noti come display list. Questi elenchi di istruzioni ed i corrispondenti dati erano scritti nella RAM di sistema. L'ANTIC prelevava queste informazioni usando un accesso diretto alla memoria, sollevando perciò la CPU dal compito di dover passare continuamente i dati al chip grafico, cosa che invece avveniva su altri computer come ad esempio il Sinclair ZX81, operazione che rallentava tutto il sistema.
Le istruzioni ad alto livello venivano processate per generare un'immagine grafica statica e poi tradotte in un flusso in tempo reale di dati grafici che venivano inviati al coprocessore CTIA, il quale applicava il colore e gestiva gli sprite: insieme essi fornivano all'utente 14 modalità video, 6 testuali e 8 grafiche. Quando il CTIA fu riprogettato e Atari realizzò il GTIA, i modi disponibili salirono a 56 perché il GTIA permetteva 3 diverse combinazioni di colori per ognuno dei 14 modi grafici.
L'ANTIC supportava anche modalità miste in cui lo schermo era diviso in più parti ognuna gestita con una propria modalità video. Questo era reso possibile grazie alle display list, con le quali era possibile programmare il chip affinché cambiasse modalità ad una determinato riga dell'immagine.

## Caratteristiche tecniche principali

Le principali caratteristiche del chip ANTIC sono:
* 14 modalità (8 grafiche/6 testuali);
* possibilità di utilizzare differenti modalità per diverse parti dello schermo;
* possibilità di gestire la memoria video in un qualsiasi punto della RAM del sistema, permettendo effetti come il page-flipping e altri.
L'ANTIC ha 4 tipi di istruzioni:
* Map mode - disegna pixel colorati
* Character mode - disegna caratteri
* Blank line - disegna linee orizzontali vuote
* Jump instruction - gestione dei salti
Ogni istruzioni ha delle opzioni per impostare dei bit particolari:
* DLI - Display List Interrupt
* Load Memory Scan (LMS) - Carica grafica o dati dalla memoria
* Vertical scrolling - Attiva lo scrolling verticale
* Horizontal scrolling - Attiva lo scrolling orizzontale
Sebbene l'ANTIC avesse un program counter a 16 bit, ne poteva usare solo 10 bit. Questo significava che si aveva bisogno dell'istruzione JMP per superare il limite del blocco da 1 kB. Inoltre era necessario il comando LMS (Load Memory Scan) per superare il limite dei 4 kB.

## Versioni

Quello che segue è l'elenco dei modelli di ANTIC prodotti ed i computer su cui erano utilizzati:
* CO12296 (NTSC): utilizzato sui computer Atari 400, 800 e 1200XL;
* CO14887 (PAL/SECAM): utilizzato sugli Atari 400 e 800;
* CO21697 (NTSC): utilizzato sugli Atari 600XL, 800XL e XE;
* CO21698 (PAL/SECAM): utilizzato sui modelli XL e XE.
Atari, Inc. pensò di integrare le funzionalità dell'ANTIC e del GTIA in un unico integrato per ridurre i costi di produzione della sua console 5200. Furono prodotti 2 prototipi di questo chip ma non furono mai mandati in produzione:
* CO20577 - CGIA
* CO21737 - KERI