Jump to content

ANTIC

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by 192.26.10.192 (talk) at 15:09, 5 June 2007 (reformatted example program). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

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 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 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 scrolling
  • Horizontal scrolling - Enables horizontal scrolling

Although ANTIC was a microprocessor, its program counter was only 10-bits long. This meant the display list needed a JMP (Jump) instruction to cross a 1K boundary. A LMS (Load Memory Scan) was needed for data crossing a 4K boundary. Finally, a JVB (Jump on Vertical Blank) instruction was placed at the end of the display list. The entire display had to equal 192 scan lines.

     --Display list in example program:--

You have to write the following program to Basic (it usually write READY on blue screen, after turning ON computer. Every line, separate by pressing enter (on Atari keypad it is marked by "Return"). Lines are marked by numbers (10, 20 etc.). Run it by typing "RUN" and pressing enter('return'). Wait until all numbers end listing, and write PRINT USR(30720) and hit enter('return'). The PROGRAM displaying a GREEN PIXEL in Basic graphic mode 3, and lines in Basic mode 0. Tested on Atari 65 XE.

10 REM REDELERT 2006
20 FOR N=30720 TO 30829
30 READ D
34 ? N
35 POKE N,D
37 NEXT N
40 DATA 169,112,141,0,128,141,1,128
45 DATA 141,2,128,169,66,141,3,128 
50 DATA 169,0,141,4,128,169,130
55 DATA 141,5,128,169,2,141,6,128
60 DATA 141,7,128,169,72,141,8,128
65 DATA 169,0,141,9,128,169,140
70 DATA 141,10,128,169,8,141,11,128
75 DATA 141,12,128,141,13,128,141,14
80 DATA 128,169,65,141,15,128,169,0
85 DATA 141,16,128,169,128,141,17,128
90 DATA 169,0,141,48,2,169,128,141
95 DATA 5,141,6,150,169,150,141,7,150
100 DATA 5,141,6,150,169,150,141,7,150
105 DATA 169,2,141,11,140,5,150