
The Television Interface Adaptor (TIA) is the custom
computer chip which, along with a variant of the
MOS Technology 6502
The MOS Technology 6502 (typically pronounced "sixty-five-oh-two" or "six-five-oh-two") William Mensch and the moderator both pronounce the 6502 microprocessor as ''"sixty-five-oh-two"''. is an 8-bit computing, 8-bit microprocessor that was desi ...
, constitutes the heart of the 1977
Atari Video Computer System game console. The TIA generates the screen display, sound effects, and reads the controllers. At the time the Atari VCS was designed, even small amounts of
RAM were expensive. The chip was designed without the extra circuitry of a
framebuffer
A framebuffer (frame buffer, or sometimes framestore) is a portion of random-access memory (RAM) containing a bitmap that drives a video display. It is a memory buffer containing data representing all the pixels in a complete video frame. Mode ...
, instead requiring detailed programming to create even a simple display.
Development of the CO10444/CO11903
TIA was led by
Jay Miner
Jay Glenn Miner (May 31, 1932 – June 20, 1994) was an American integrated circuit designer, known primarily for developing graphics and audio chips for the Atari 2600 and Atari 8-bit computers and as the "father of the Amiga".
Early life
...
, who continued at Atari expanding on the design of the TIA for the
Atari 8-bit computers
The Atari 8-bit computers, formally launched as the Atari Home Computer System, are a series of home computers introduced by Atari, Inc., in 1979 with the Atari 400 and Atari 800. The architecture is designed around the 8-bit MOS Technology 650 ...
with the
ANTIC,
CTIA/GTIA and
POKEY chips which allow for more graphical and sound capabilities. Miner later led the design of the custom chips for the
Amiga
Amiga is a family of personal computers produced by Commodore International, Commodore from 1985 until the company's bankruptcy in 1994, with production by others afterward. The original model is one of a number of mid-1980s computers with 16-b ...
computer.
Design
Background
Around 1975, Atari's engineers at
Cyan Engineering led by Steve Mayer and Ron Milner had been considering alternatives to the development dedicated hardware such as application-specific integrated circuits (ASIC) for arcade video games and home video game consoles. Programmable
microprocessor
A microprocessor is a computer processor (computing), processor for which the data processing logic and control is included on a single integrated circuit (IC), or a small number of ICs. The microprocessor contains the arithmetic, logic, a ...
s had reached the market, but Atari considered them too expensive for a home application.
They were limited by cost in options for displaying graphics. At this point in time, most computer graphics were generated by using
sprites drawn atop a playfield, which then were translated into an analog signal for display on a
CRT[Chris Crawford]
"ANTIC and the display list"
''De Re Atari'' Sprites would be held as a
bitmap
In computing, a bitmap (also called raster) graphic is an image formed from rows of different colored pixels. A GIF is an example of a graphics image file that uses a bitmap.
As a noun, the term "bitmap" is very often used to refer to a partic ...
in a
framebuffer
A framebuffer (frame buffer, or sometimes framestore) is a portion of random-access memory (RAM) containing a bitmap that drives a video display. It is a memory buffer containing data representing all the pixels in a complete video frame. Mode ...
, requiring
random-access memory
Random-access memory (RAM; ) is a form of Computer memory, electronic computer memory that can be read and changed in any order, typically used to store working Data (computing), data and machine code. A random-access memory device allows ...
(RAM). RAM was still expensive, costing tens of thousands of dollars per megabyte.,
and to display a two-color playfield on an 80×48 display would have cost thousands of dollars in memory.
On a conventional
NTSC
NTSC (from National Television System Committee) is the first American standard for analog television, published and adopted in 1941. In 1961, it was assigned the designation System M. It is also known as EIA standard 170.
In 1953, a second ...
color television
Color television (American English) or colour television (British English) is a television transmission technology that also includes color information for the picture, so the video image can be displayed in color on the television set. It improv ...
, maximum resolutions generally fell between 256 and 320 pixels per line, and 192 to 240 lines per screen.
In September 1975,
MOS Technology
MOS Technology, Inc. ("MOS" being short for Metal Oxide Semiconductor), later known as CSG (Commodore Semiconductor Group) and GMT Microelectronics, was a semiconductor design and fabrication company based in Audubon, Pennsylvania. It is ...
introduced the
6502 microprocessor, one of the first low-cost microprocessors on the market. Mayer and Milner arranged to speak to the chip's designer,
Chuck Peddle, on using the 6502 as the basis for their programmable video game console. Over the course of a couple of days, the basic design of the Atari VCS was laid out, with Peddle offering Atari the use of the lower-cost
MOS Technology 6507 processor and the
MOS Technology 6532 RAM-I/O-Timer (RIOT) as the core of the design.
Using a
breadboard
A breadboard, solderless breadboard, or protoboard is a construction base used to build semi-permanent prototypes of electronic circuits. Unlike a perfboard or stripboard, breadboards do not require soldering or destruction of tracks and are h ...
prototype for the display adapter atop a 6502 testbed system, Milner was able to demonstrate the ability to program a simple version of their ''
Tank
A tank is an armoured fighting vehicle intended as a primary offensive weapon in front-line ground combat. Tank designs are a balance of heavy firepower, strong armour, and battlefield mobility provided by tracks and a powerful engine; ...
'' game.
Joe Decuir was hired on to help convert Milner's proof-of-concept to a functional prototype, sufficient for Atari to give the go-ahead for the development to continue.
While Decuir worked on the design of the rest of the system,
Jay Miner
Jay Glenn Miner (May 31, 1932 – June 20, 1994) was an American integrated circuit designer, known primarily for developing graphics and audio chips for the Atari 2600 and Atari 8-bit computers and as the "father of the Amiga".
Early life
...
focused on making an ASIC for the display adapter.
Early on, the ASIC display adapter was named the Television Interface Adaptor (TIA).
The cost of RAM remained high as the team began its design, and thus the option to use memory-based framebuffers was dropped from the TIA's design.
RAM-less design
Due to the lack of RAM, the TIA differs from the conventional framebuffer in that using the TIA, the screen is composed by manipulating five movable graphic objects (2 players, 2 missiles and 1 ball) and a static playfield object. These are all generated on every scan line from their respective registers, unlike the technique used in a framebuffer-mapped model, requiring the program to update these on every scan line.
[Wright, Steve]
"Stella Programmer's Guide"
(in Spanish) December 3, 1979
Archived
on March 5, 2016. Horizontal resolution is not uniform, as its size depends on the particular graphics object. The smallest unit of pixel corresponds to 1 color clock cycle of the chip, of which there are 160 visible ones on a line.
The Playfield object consists of a two-and-a-half byte register (20 bits wide), which can be reflected symmetrically or copied as-is to the right half of the screen for 40 bits in total (each bit being 4 color cycles wide). The color that was drawn if the bit was a 1 or a 0 was selected from a pre-defined palette of up to 128 colors (see below) and held in other registers.
The TIA also supported five separate graphics objects consisting of:
*Two 8-pixel horizontal lines which make up the '
sprites' Player 1 and Player 2. These are single color, can be stretched by a factor of 2 or 4, and can be duplicated or triplicated.
*A 'ball' - a horizontal line that is the same color as the playfield. It can be one, two, four, or eight pixels wide.
*Two 'missiles' - another horizontal line that is the same color as its respective player. It can be one, two, four, or eight pixels wide.
Without RAM-based framebuffers,
collision detection
Collision detection is the computational problem of detecting an intersection of two or more objects in virtual space. More precisely, it deals with the questions of ''if'', ''when'' and ''where'' two or more objects intersect. Collision detect ...
is also complicated. The TIA has hardware collision detection for all of these objects through the use of 15 set/reset
flip-flops and stores a bitmap of collisions, that are typically read during the VBLANK period.
Registers in the TIA allow the programmer to control the positioning of the graphical objects and their color.
The TIA also provides two channels of one-bit sound. Each channel provides for 32 pitch values and 16 possible bit sequences. There is a 4 bit volume control.
Lastly, the TIA has inputs for reading up to four analog paddle controllers using
potentiometer
A potentiometer is a three- terminal resistor with a sliding or rotating contact that forms an adjustable voltage divider. If only two terminals are used, one end and the wiper, it acts as a variable resistor or rheostat.
The measuring instrum ...
s and for two joystick triggers.
Drawing the display
As the registers hold data for only a single line of the display, creating a full screen requires the game program to update the registers on the fly, a process known as "
racing the beam".
To start the process, the game program running on the
MOS Technology 6502
The MOS Technology 6502 (typically pronounced "sixty-five-oh-two" or "six-five-oh-two") William Mensch and the moderator both pronounce the 6502 microprocessor as ''"sixty-five-oh-two"''. is an 8-bit computing, 8-bit microprocessor that was desi ...
-based
CPU loads the TIA's registers with the data needed to draw the first line of the display. The TIA then waits until the television is ready to draw the line (under the command of the TIA's associated analog hardware) and read out the registers to produce a signal for that line. During the
horizontal blanking period between lines, the 6502 quickly changes the TIA's registers as needed for the next line. This process continues down the screen.
This is made more difficult because the
MOS Technology 6507 in the 2600 is a pin-reduced version of the 6502 with no support for hardware
interrupt
In digital computers, an interrupt (sometimes referred to as a trap) is a request for the processor to ''interrupt'' currently executing code (when permitted), so that the event can be processed in a timely manner. If the request is accepted ...
s. Generally the analog side of the display system generates an interrupt when it finishes drawing a raster line and is getting ready for the next one. The interrupt triggers the code needed to update the screen, and then returns to the "main" program. The 6507 left these pins off of the CPU to save money, however it does have a "RDY" pin to insert wait states into
CPU bus cycles. The TIA was specifically designed to use the RDY pin to synchronize the CPU with the raster line timing of the video generated by the TIA: when the CPU writes to a certain register address of the TIA, the TIA lowers its RDY output signal until the end of the current line, a "wait for sync" command.
This suspends the operation of the CPU until the start (color clock cycle 0) of the horizontal blanking period right ahead of the next line, providing a measure of automatic synchronization. The intended use of this mechanism is for the CPU to run code that sets up the TIA registers for the line about to be drawn, and which usually runs to completion some time before the TIA reaches the end of that line. To make video timing synchronization easier, the CPU then writes to the register that triggers the synchronization delay via RDY, throwing away a variable amount of CPU time.
In addition, the TIA only semi-automatically generates
vertical sync timing signals (to mark the end of each video frame and the start of the next). The TIA is capable of inserting a vertical sync signal into the analog output video signal, but it does not have a frame line-counter and so cannot tell when a frame should end. Instead, it is left to the CPU program to trigger vertical sync signals and to count the lines in each frame to determine when a vertical sync signal should be generated. Like for the RDY-wait hardware, the vertical sync signal is triggered by the CPU writing to a specific TIA register address. If no write to that address was ever done and the TIA was allowed to free-run, it would generate a single infinite frame of active raster lines, which would typically appear on the TV as a rolling picture. Most published games for the
Atari 2600
The Atari 2600 is a home video game console developed and produced by Atari, Inc. Released in September 1977 as the Atari Video Computer System (Atari VCS), it popularized microprocessor-based hardware and games stored on swappable ROM cartridg ...
generated
vertical sync after either every 262 or every 263 lines (but nothing about the TIA prevents it from generating frames of any length, shorter or longer, though the resulting video displays would roll vertically on normal TVs).
These and other details of TIA programming mean that programmers need to time their programs carefully to run in the exact number of cycles needed for various screen-related events. Getting this wrong means the screen is not drawn properly. The part of a program that does this is known as the "kernel" of that program.
Given this complexity, early games using the system tended to be simple in layout, using the TIA to create symmetric playfields with players on top. This was the original intention of the system: to run the handful of
arcade game
An arcade game or coin-op game is a coin-operated entertainment machine typically installed in public businesses such as restaurants, bars and amusement arcades. Most arcade games are presented as primarily game of skill, games of skill and in ...
s Atari had already produced like ''
Tank
A tank is an armoured fighting vehicle intended as a primary offensive weapon in front-line ground combat. Tank designs are a balance of heavy firepower, strong armour, and battlefield mobility provided by tracks and a powerful engine; ...
'' and ''
Pong
''Pong'' is a 1972 sports video game developed and published by Atari for arcades. It is one of the earliest arcade video games; it was created by Allan Alcorn as a training exercise assigned to him by Atari co-founder Nolan Bushnell, but B ...
''. In these cases the playfield data was typically laid out in the 2 kB
ROM
Rom, or ROM may refer to:
Biomechanics and medicine
* Risk of mortality, a medical classification to estimate the likelihood of death for a patient
* Rupture of membranes, a term used during pregnancy to describe a rupture of the amniotic sac
* ...
memory in the
game cartridge
A ROM cartridge, usually referred to in context simply as a cartridge, cart, cassette, or card, is a replaceable part designed to be connected to a consumer electronics device such as a home computer, video game console or, to a lesser extent, ...
. As each line used 20 bits of data, and there were 192 lines on an NTSC display, a display with a different layout on every line needed only 480 bytes (192 x 20 / 8) of the cartridge's 4 kB to hold a single hard-coded display. In this case the kernel simply advanced 20 bits through ROM for every line as the TIA advanced down the screen, a task that took only a few cycles of CPU time. This can be further reduced by using the same data for multiple lines, either doubling them vertically, or reading one way through the list for the top and then back the other way for the bottom, producing a vertically mirrored display of only 240 bytes.

A key advance was the licensing of ''
Space Invaders
is a 1978 shoot 'em up video game developed and published by Taito for Arcade video game, arcades. It was released in Japan in April 1978, with the game being released by Midway Manufacturing overseas. ''Space Invaders'' was the first fixed s ...
'' for the platform, which required many more player graphics to draw the enemy aliens. The solution was to change the player data for every line as the image was being drawn, creating an apparent large number of players. Another advance was made by (partially) coding the display as CPU instructions instead of storing it as fixed data in ROM. ''
Adventure
An adventure is an exciting experience or undertaking that is typically bold, sometimes risky. Adventures may be activities with danger such as traveling, exploring, skydiving, mountain climbing, scuba diving, river rafting, or other extreme spo ...
'' uses this concept to produce a wide variety of maps by combining different portions of the data in ROM, jumping back and forth through it during the screen drawing.
[Robinett, Warren]
"Adventure"
University of North Carolina
The University of North Carolina is the Public university, public university system for the state of North Carolina. Overseeing the state's 16 public universities and the North Carolina School of Science and Mathematics, it is commonly referre ...
Archived
on January 27, 2018. This allowed the game to have 30 rooms, which would have otherwise required 14 kB of
ROM
Rom, or ROM may refer to:
Biomechanics and medicine
* Risk of mortality, a medical classification to estimate the likelihood of death for a patient
* Rupture of membranes, a term used during pregnancy to describe a rupture of the amniotic sac
* ...
.
As programmers grew more accustomed to the odd timing needed to get things to work properly on-screen, they began to use the inherent flexibility in the TIA to greatly improve the displays. One common technique was to change the color registers that were used to draw the 1 and 0 states of the playfield, resulting in displays with rainbow-like effects. Later games could modify the playfield mid-line to generate asymmetric patterns, repositioning and changing player sprites mid-screen to generate additional sprites.
TIA Color Capabilities
The TIA uses different
color palettes depending on the
television signal format used. For
NTSC
NTSC (from National Television System Committee) is the first American standard for analog television, published and adopted in 1941. In 1961, it was assigned the designation System M. It is also known as EIA standard 170.
In 1953, a second ...
format (part number CO10444),
a 128-color palette is provided, while only 104 colors are available for
PAL
Phase Alternating Line (PAL) is a color encoding system for analog television. It was one of three major analogue colour television standards, the others being NTSC and SECAM. In most countries it was broadcast at 625 lines, 50 fields (25 ...
(part number CO11903).
Finally, the
SECAM
SECAM, also written SÉCAM (, ''Séquentiel de couleur à mémoire'', French for ''sequential colour memory''), is an analog color television system that was used in France, Russia and some other countries or territories of Europe and Africa. ...
palette consists of only 8 colors.
NTSC palette
PAL palette
SECAM palette
Noise/Tone Generator (AUD0/1)
The TIA is capable of generating different types of
pulse waves and
white noise
In signal processing, white noise is a random signal having equal intensity at different frequencies, giving it a constant power spectral density. The term is used with this or similar meanings in many scientific and technical disciplines, i ...
output to its two
oscillators
Oscillation is the repetitive or periodic variation, typically in time, of some measure about a central value (often a point of equilibrium) or between two or more different states. Familiar examples of oscillation include a swinging pendulum ...
(or
channels) AUD0 and AUD1. Each oscillator has a 5-bit
frequency divider
Frequency is the number of occurrences of a repeating event per unit of time. Frequency is an important parameter used in science and engineering to specify the rate of oscillatory and vibratory phenomena, such as mechanical vibrations, audio ...
and a 4-bit audio control register which manipulates the
waveform
In electronics, acoustics, and related fields, the waveform of a signal is the shape of its Graph of a function, graph as a function of time, independent of its time and Magnitude (mathematics), magnitude Scale (ratio), scales and of any dis ...
. There is also a 4-bit volume control register per
channel.
Frequency Divider (AUDF0/1)
Frequencies
Frequency is the number of occurrences of a repeating event per unit of time. Frequency is an important parameter used in science and engineering to specify the rate of oscillatory and vibratory phenomena, such as mechanical vibrations, audio ...
are generated by taking 31399
Hz (31113
Hz for
PAL
Phase Alternating Line (PAL) is a color encoding system for analog television. It was one of three major analogue colour television standards, the others being NTSC and SECAM. In most countries it was broadcast at 625 lines, 50 fields (25 ...
) and dividing by the 5-bit value supplied.
The result is a cheap
frequency divider
Frequency is the number of occurrences of a repeating event per unit of time. Frequency is an important parameter used in science and engineering to specify the rate of oscillatory and vibratory phenomena, such as mechanical vibrations, audio ...
capable of detuned notes and the odd tuned frequency. The TIA is not a musical chip unless the composer works within the frequency limits or modulates between two detuned frequencies to create a
vibrato
Vibrato (Italian language, Italian, from past participle of "wikt:vibrare, vibrare", to vibrate) is a musical effect consisting of a regular, pulsating change of pitch (music), pitch. It is used to add expression to vocal and instrumental music. ...
tuned note. The TIA is tuned to the inverted harmonic series due to each frequency being the base frequency divided by a whole number.
Audio Control (AUDC0/1)
The Audio Control register generates and manipulates a
pulse wave to create complex
pulses or noise. The following tables (with designed duplicates) explains how its tones are generated:
Instruments
Here is a table showing the instruments
Code
Shown is the code from combat
MOTORS LDA AltSnd,X
BEQ DOMOTOR
; Pong sound.
LDA #$04
STA AUDC0,X
LDA #$07
STA AUDV0,X
LDA BounceCount,X
STA AUDF0,X
RTS
; Engine sound.
DOMOTOR LDY GAMSHP
LDA SNDV,Y
AND GameOn ; Kills sound if no game on by ANDing
STA AUDV0,X ; volume value w/$00 no-game value
LDA SNDC,Y
STA AUDC0,X
CLC
LDA #$00
MOPIT0 DEY ; This loop sets start value for sound
BMI MOPIT1 ; pitch based on GAMSHP in Y (tank,
ADC #$0C ; biplane, or jet)
BPL MOPIT0
MOPIT1 ADC Vtemp,X ; Use saved velocity to adjust
TAY ; sound pitch via SNDP table
TXA
ASL
ADC SNDP,Y
STA AUDF0,X
RTS
References
Sources
*
External links
ATARI 2600 Programming for NewbiesTIA technical informationProgramming the Atari 2600, and Me - Part 1 part 1 of an 8-part series
{{Atari 2600
Atari 2600
Graphics chips