ANTIC

From Wikipedia, the free encyclopedia

This article refers to the ANTIC display chip. For the magazine, see Antic (magazine).

ANTIC (Alpha-Numeric Television Interface Circuit) was an early video system chip used in the Atari 8-bit family of microcomputers as well as the Atari 5200 in the 1980s.

ANTIC was a microprocessor dedicated to generating 2D computer graphics to be shown on a television screen or computer display. It was a true microprocessor, in that it had an instruction set to run programs (called display lists) to process data.

The display list and the display data were written into RAM by a 6502-compatible CPU. The ANTIC retrieved that information from RAM using a technique known as direct memory access (DMA). It processed the higher level instructions in the display list and translated these instructions into a real-time stream of simpler instructions to the CTIA chip, a combination providing for 12 graphics modes. With the more advanced GTIA, 16 modes were available.

ANTIC's most notable features were:

  • 14 different graphics/text modes
  • Display modes can be mixed onscreen
  • Non-fixed screen RAM. Allowed screen RAM to be located almost anywhere in memory. This allowed for easy page-flipping, scrolling and other effects.

ANTIC had four types of instructions:

  • Map mode - display colored pixels
  • Character mode - display character data
  • Blank line - display horizontal blank lines (solid color)
  • Jump instruction - reload ANTIC's program counter (3-byte instruction)

Each instruction had additional options by setting specific bits:

  • DLI - Display list interrupt
  • Load Memory Scan (LMS) - Loads address of graphics/character data (3-byte instruction)
  • Vertical scrolling - Enables vertical fine scrolling
  • Horizontal scrolling - Enables horizontal fine scrolling

Although ANTIC's program counter is 16-bit, only 10 bits are changed during normal (i.e. sequential) execution of the display list. This means the display list need a JMP (Jump) instruction to cross a 1K boundary. Also the Memory Scan Register, a register addressing the data stored in the screen memory, is 16-bit, but only 12 bits are changed when ANTIC is sequentially scanning the video memory. Thus an LMS (Load Memory Scan) instruction is needed for data crossing a 4K boundary. Finally, a JVB (Jump on Vertical Blank) instruction is placed at the end of the display list. The vertical extent of the entire display can vary between 0 and 240 scanlines - this depends on what number of lines the ANTIC is programmed to display according to the display list.

[edit] Display list example program

Type the following program at the BASIC prompt (typically the word "READY"), terminating each line by pressing the Enter (or Return) key. Run it by typing "RUN" and pressing Enter. When the program has finished running, type "PRINT USR(30720)" and hit Enter. The program should display a green pixel in BASIC graphics mode 3, and lines in BASIC mode 0.

   10 FOR N=30720 TO 30829
   20 READ D
   30 POKE N,D
   40 NEXT N
   50 DATA 169,112,141,0,128,141,1,128
   60 DATA 141,2,128,169,66,141,3,128 
   70 DATA 169,0,141,4,128,169,130
   80 DATA 141,5,128,169,2,141,6,128
   90 DATA 141,7,128,169,72,141,8,128
   100 DATA 169,0,141,9,128,169,140
   110 DATA 141,10,128,169,8,141,11,128
   120 DATA 141,12,128,141,13,128,141,14
   130 DATA 128,169,65,141,15,128,169,0
   140 DATA 141,16,128,169,128,141,17,128
   150 DATA 169,0,141,48,2,169,128,141
   160 DATA 5,141,6,150,169,150,141,7,150
   170 DATA 5,141,6,150,169,150,141,7,150
   180 DATA 169,2,141,11,140,5,150

[edit] External links