1.12) What are SALLY, ANTIC, CTIA/GTIA/FGTIA, POKEY, and FREDDIE?

Portions of this section derived from De Re Atari.

The internal layout of the Atari 8-bit computer is very different from other
systems.  It of course has a microprocessor (a 6502), random-access memory
(RAM), read-only memory (ROM), and a peripheral interface adapter (PIA).
However, it also has three special-purpose large-scale integration (LSI) chips
known as ANTIC, one of CTIA/GTIA/FGTIA, and POKEY.  These chips were designed
by Atari engineers primarily to take much of the burden of housekeeping off of
the 6502, thereby freeing the 6502 to concentrate on computations.  While they
were at it, they designed a great deal of power into these chips.  Each of
these chips is almost as big (in terms of silicon area) as a 6502, so the
three of them together provide a tremendous amount of power.  Mastering the
Atari 8-bit computers is primarily a matter of mastering these three chips.


6502 MPU  -- MOS Technology MCS6502A or equivalent (400/800,most NTSC):C014377
========          Atari SALLY (400/800,late NTSC & all PAL; XL/XE,all):C014806
The Atari 400/800 were designed around the MOS Technology MCS6502A (6502 rated
for 2MHz) microprocessor unit (MPU).  The MCS6502 primary designers were Chuck
Peddle (architecture) and Bill Mensch (engineering), and it was introduced by
MOS Technology in September 1975.  MOS Technology was acquired by Commodore
(CBM) in November 1976, and would later operate as Commodore Semiconductor
Group (CSG).  Before appearing in the Atari 400/800, the 6502 had already
gained wide market acceptance in products including the Apple II and Commodore
PET microcomputers, and the derivative 6507 was used in the Atari Video
Computer System (VCS).

While the 6502 is not proprietary to Atari, the standard 6502 chips shipped in
most Atari NTSC 400/800 computers were usually manufactured for Atari and have
the Atari C014377 part number.

Later production NTSC 400/800 computers, all PAL 400/800 computers, and all of
the Atari XL/XE computer models contain Atari's proprietary version of the
6502 chip.  This chip was originally named SALLY by Atari engineers, but Atari
Customer Support documents (Field Services Manuals) variously described it as
"6502 (Modified)", "6502 Modified", "Custom 6502", or "6502C".  Field Service
Manuals published by Atari, Corp./Atari Corporation reverted to using the
chip's original name, SALLY, while Atari, Corp./Atari Corporation XE consumer
owner's manuals (unfortunately) continued to use "6502C" in reference to the
SALLY 6502.

Several manufacturers produced the SALLY 6502 for Atari, including MOS
Technology, Synertek, Rockwell, NCR, and United Microelectronics (UMC).  It is
important to note that chips marked "6502C" such as the MOS Technology
MCS6502C, MOS Technology MPS6502C, Synertek SY6502C, Rockwell R6502C, or UMC
UM6502C are NOT the Atari "6502C" but rather equivalents to the standard
MCS6502 that are certified for 4MHz operation.  Atari SALLY 6502 chips are
never marked "6502C" but, other than the UMC UM6502I, always carry the Atari
part number C014806.

In contrast to the MCS6502 and equivalents, the SALLY 6502 has the addition of
a /HALT signal on pin 35.  The SALLY 6502 also has a second R/W signal on pin
36 (in addition to pin 34).  Pins 35 and 36 are not connected on the MCS6502
and equivalents.

The Atari's second microprocessor, ANTIC, must routinely interrupt the 6502 in
order to utilize the processor bus for itself for direct memory access (DMA).
/HALT on the SALLY 6502 facilitates this system design.  Atari's earlier
implementation of the same functionality in the 400/800 using the MCS6502 or
equivalent requires a series of 4 additional chips that are unnecessary in
computers designed for the SALLY 6502. 

Other systems utilizing the Atari SALLY 6502 chip:
- Atari 5200
- Exidy Max-A-Flex coin-operated arcade conversion system
   (embedded Atari 600XL): Astro Chase, Boulder Dash, Bristles, Flip and Flop
- Atari 7800

6502.org "the 6502 microprocessor resource": http://www.6502.org/


ANTIC  --  ANTIC NTSC (pre-'E'):C012296        ANTIC PAL 'A':C014887
=====            ANTIC NTSC 'E':C021697        ANTIC PAL 'B':C021698
- C012296/C014887 shipped in the 400/800/1200XL and some 800XL units.
- C021697/C021698 shipped in the 600XL, some 800XL, and all XE units.

ANTIC ("AlphaNumeric Television Interface Controller" --FD100001 Rev.02 p.1-8)
is a microprocessor dedicated to the television display.  It is a true
microprocessor; it has an instruction set, a program (called the display
list), and data.  The display list and the display data are written into RAM
by the 6502.  ANTIC retrieves this information from RAM using direct memory
access (DMA).  It processes the higher level instructions in the display list
and translates these instructions into a real-time stream of simple
instructions to CTIA/GTIA/FGTIA.

Specific ANTIC functions include:
- Object DMA (Direct Memory Access) control. 
   Two types of display DMA (uses 6502 halt for "cycle stealing"):
     1) Playfield DMA - Execution of display list instructions in RAM.
     2) Player-Missile DMA - Automatic fetching of player-missile graphics
        data from RAM for CTIA/GTIA/FGTIA.
   The ANTIC chip also generates DMA addresses for the (entirely automatic)
   refresh of on-board dynamic memory RAM (DRAM).  ANTIC versions C012296/
   C014887 use an 8 bit refresh cycle counter, supporting DRAM chips including
   those requiring 128 cycle/2ms or 256 cycle/4ms refresh (standard 16KiB and
   64KiB DRAM chips).  The C021697/C021698 ANTIC versions use a 9 bit refresh
   cycle counter, supporting additional DRAM chips that require more refresh
   cycles (standard 256KiB DRAM chips).
- NMI (Non-Maskable Interrupt) control.  3 types of NMIs on the Atari are:
     1) Display List Interrupt (DLI)
     2) System Reset (key)
     3) Vertical Blank Interrupt (VBI)
- Vertical and Horizontal fine scrolling
- Light pen / light gun horizontal and vertical position registers
    - Updated upon pulse of any of the Joystick Trigger lines
       - Exception: 400 Controller Jacks 1-3 Trigger lines are not connected
         to ANTIC.
- Vertical line counter
- WSYNC (wait for horizontal sync) command -- allows the microprocessor to
   synchronize itself to the TV horizontal line rate

Other systems utilizing the Atari ANTIC chip:
- Atari 5200
- Exidy Max-A-Flex coin-operated arcade conversion system
   (embedded Atari 600XL): Astro Chase, Boulder Dash, Bristles, Flip and Flop

ANTIC C012296 (NTSC) REV. D technical documentation by Atari:
http://preview.tinyurl.com/y8vlcvuq


CTIA/GTIA/FGTIA  --  CTIA(NTSC):C012295       GTIA,PAL:C014889
===============       GTIA,NTSC:C014805   FGTIA(SECAM):C020120
CTIA = "Color Television Interface Adaptor" --FD100001 Rev.02 p.1-10
       "Colleen Television Interface Adaptor" (probable original)
GTIA = "Graphics Television Interface Adaptor" --FD100001 Rev.02 p.1-10
       "George's Television Interface Adaptor" (probable original)
FGTIA = "French Graphics Television Interface Adaptor" (probable)

Early NTSC 400/800 units shipped with CTIA.  Later NTSC 400/800 units, all PAL
400/800 units, and all NTSC XL/XE and PAL XL/XE systems include GTIA.  SECAM
800XL, 130XE and XE System Console units include FGTIA.

The NTSC versions of CTIA/GTIA were designed to interface with the NTSC
version of ANTIC.  The PAL version of GTIA and the FGTIA were designed to
interface with the PAL version of ANTIC.

The CTIA, GTIA, or FGTIA is the television interface chip.  ANTIC directly
controls most of the operations of the CTIA/GTIA/FGTIA, although the 6502 can
also be programmed to intercede and control some or all of the functions of
the CTIA/GTIA/FGTIA.  The CTIA/GTIA/FGTIA converts the digital commands
from ANTIC (or the 6502) into the video signal output.

In addition to its basic television/video interface function, the
CTIA/GTIA/FGTIA performs color-luminance control for the entire video signal,
player-missile control, and both priority control and collision detection
among player-missiles and the background.  The CTIA/GTIA/FGTIA also reads the
controller port trigger inputs and the console keys (Start/Select/Option), and
it generates Console Speaker sounds.  In the XL/XE, the GTIA/FGTIA senses the
presence of an active ROM cartridge, and in the XE System Console the
GTIA/FGTIA senses the presense of an XE Keyboard.

The GTIA is backward compatible with the CTIA, with the GTIA simply making
available three additional graphics modes (GTIA Modes 1-3).  Notably, both the
400/800 OS Rev.A and Atari BASIC Rev. A were GTIA-ready from their 1979
release.  By way of explanation, Robin Sherer of Santa Cruz Education Software
was quoted in InfoWorld 3/15/82 regarding GTIA:
  "They had it designed before the computer even went to market.  They
  had already ordered 100,000 of the CTIAs--that's the rumored number.  Not
  wanting to throw away chips, they introduced [computers] in this country
  with the CTIA."

The FGTIA is software compatible with the GTIA.  However, in GTIA Mode 1 the
FGTIA can only display 8 distinct luminances, compared to the 16 distinct
luminances that can be displayed in GTIA Mode 1 by the GTIA.

Whether CTIA or GTIA/FGTIA is installed can be determined by observing what
happens as a result of trying to enter a GTIA graphics mode.  In Atari BASIC,
at the "READY" prompt, type POKE 623,64 [RETURN].  If the screen blackens, you
have the GTIA or FGTIA chip.  If it stays blue, you have the early CTIA chip.

Bill Wilkinson offers a technique whereby software can determine whether a
CTIA or a GTIA is installed in his "Insight: Atari" column in the January 1983
(#32) issue of Compute!, page 171, see:
http://www.atarimagazines.com/compute/issue32/085_1_INSIGHT_ATARI.php

A substantial number of late-production Atari XE computer systems, especially
later 800XE computers made in China, shipped with moderately defective GTIA
chips.  This page (in Polish) details the scope of the issue, including how to
detect whether a given computer contains one of the faulty GTIA chips:
http://atariki.krap.pl/index.php/GTIA

Pawel Rosowski published this detailed description of the highly-obscure
temperature-dependent "Delayed GTIA Functions" ("DGF") phenomenon in 2013:
http://preview.tinyurl.com/zcjl6cl

Other systems utilizing the Atari GTIA chip:
- Atari 5200
- Exidy Max-A-Flex coin-operated arcade conversion system
   (embedded Atari 600XL): Astro Chase, Boulder Dash, Bristles, Flip and Flop

Technical documentation by Atari:
GTIA(NTSC) C014805: http://www.retromicro.com/files/atari/8bit/gtia.pdf
FGTIA:
ftp://ftp.pigwa.net/stuff/collections/nir_dary_cds/Tech%20Info/FGTIA.PDF


POKEY  --  C012294
=====
POKEY (name derived from POtentiometer and KEYboard) is a digital input/output
(I/O) chip.  It handles such disparate tasks as the serial I/O bus (SIO),
audio generation, keyboard scan, timers, and random number generation.  It
also digitizes the resistive paddle inputs (potentiometer or "pot" ports) and
controls selected maskable interrupt (IRQ) requests from peripherals (other
IRQs are handled by the PIA).

- The 8 pot ports (pot input lines) are used to convert analog voltages to
  digital values by measuring internal dump resistor rise/charge times to
  logic "1" once per each video output scan line.  Timing counters for each
  pot line increment once per color clock, and there are 228 color clocks per
  scan line, yielding possible counts/values from 1-228.
- The POKEY two-tone mode is used to produce the sounds that comprise the
  digital track when saving data to cassette with an Atari program recorder.
- The POKEY volume control only mode (4-bit PCM) is used to produce the tones
  for tone dialing by the Atari 1030 modem.

Other systems utilizing the Atari POKEY chip:
- 40 production coin-operated arcade games released by Atari or Atari Games,
   from Missile Command (June 1980) to Tetris and Vindicators Part II (both
   released February 1989).  (Thanks to Laurent Delsarte for the list.)
- Centuri Tunnel Hunt, coin-operated arcade game licensed from Atari
- Atari 5200
- Exidy Max-A-Flex coin-operated arcade conversion system
   (embedded Atari 600XL): Astro Chase, Boulder Dash, Bristles, Flip and Flop
- Atari Ballblazer and Commando cartridges for the Atari 7800
 
POKEY Technical documentation by Atari:
http://visual6502.org/images/C012294_Pokey/pokey.pdf


FREDDIE  --  800XL("800XLF" and SECAM),XE(all):C061922/C061991
=======
According to Atari's design specification (C061922), the "Freddie RAM" Memory
Control Unit (MCU) is a custom LSI chip providing dynamic RAM (DRAM) control
functions.  It replaces a number of small-scale integration (SSI) and medium-
scale integration (MSI) transistor-transistor logic (TTL) parts, including a
custom delay line.  FREDDIE multiplexes 16-bit RAM addresses from the
processor bus into 8-bit row and 8-bit column addresses for direct use in the
DRAM, and it generates row and column DRAM address timing strobes.

Any functional difference between the C061922 and C061991 FREDDIE versions is
not well established.  It is theorized that the original C061922 was designed
to work with the earlier C012296/C014887 ANTIC versions with 7 bit DRAM
refresh address counter for 128 row addresses, while the later C061991 also
supports an 8 bit counter for 256 row addresses as generated by the later
C021697/C021698 ANTIC versions.  Both versions carry the 1983 copyright date.

"FREDDIE" or "FREDDY"?
Atari technical documentation consistently uses "FREDDIE" while Atari consumer
documentation (Owner's Manuals for all XE systems) consistently uses "FREDDY."
This FAQ List adopts the convention from Atari's technical documentation:
"FREDDIE"

FREDDIE technical documentation by Atari: http://preview.tinyurl.com/z6xmjpj


6520 PIA  --  MOS Technology MCS6520A or equivalent: C012298/C014795/C014812
========
The 8-bit Atari uses the MOS Technology MCS6520A (6520 rated for 2MHz) or
equivalent as a peripheral interface adapter (PIA).  Introduced in 1976, the
MCS6520 was a direct pin-for-pin replacement, with identical electrical
specifications, for the Motorola MC6820 PIA which had been introduced in 1974.
6820 principal designer at Motorola: Bill Mensch.

Also in 1976, Motorola introduced the MC6821 PIA, a functionally equivalent
replacement for the MC6820 with slightly different electrical specifications.

While the 6520 is not proprietary to Atari, the PIA chips shipped in Atari
computers were usually manufactured for Atari and have an Atari part number:
  C012298 = Synertek P6520A (early 400/800 units)
  C014795 = Any 2Mhz 6520 equivalent (replaced the C012298 part number)
  C014812 = 68B21 (Motorola MC6821 rated for 2 MHz) or equivalent.


Hardware manuals from Atari:
- Hardware Manual
    - (c)1980 edition, 10/80
       - BLUE title page (printings with line-printed title page include
         date imprint; printing with Atari logo on title page lacks date)
       - Section VI.C. Schematics is published single-sided.
       - Pages B-10 and B-11 (Memory Configurations) are hand-drawn.
       - Included in earlier printings of C016555 Atari Personal Computer
         System Operating System User's Manual and Hardware Manual (official
         nickname: "Technical User's Notes"), including printings dated:
         November 1980 (orange cover page), August 1981 (cover page??),
         January 1982 (yellow cover page)
    - (c)1982 edition.  Identical to the 10/80 edition except:
       - BEIGE title page (with Atari logo)
       - Section VI.C. Schematics is published double-sided.
       - Pages B-10 and B-11 (Memory Configurations) are machine-produced.
       - Included in C016555 Rev. A (1982) Technical Reference Notes
- De Re Atari: A Guide to Effective Programming
    - C060070, (c)1981 editions (early versions for registered developers)
      https://archive.org/details/DeReAtari_early_version
      https://archive.org/details/DeReAtari_Alternate_Early_Version
    - APX-90008, (c)1982 edition (common version sold via APX)
      http://www.atariarchives.org/dere/
    - Also published in German and French language editions
About Us - Contact - Credits - Powered with Webdev - © Atarimania 2003-2018