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 |