Alphanumeric Television Interface Controller ( ANTIC ) is an LSI ASIC dedicated to generating 2D computer graphics to be shown on a television screen or computer display .
51-468: Under the direction of Jay Miner , the chip was designed in 1977–1978 by Joe Decuir , Francois Michel, and Steve Smith for the Atari 8-bit computers first released in 1979. The chip was patented by Atari, Inc. in 1981. ANTIC is also used in the 1982 Atari 5200 video game console, which shares most of the same hardware as the 8-bit computers. For every frame of video, ANTIC reads instructions to define
102-686: A CRT screen . Because the image would immediately fade, it needed to be redrawn many times a second ( storage tube CRTs retained the image until blanked, but they were unsuitable for interactive graphics). To refresh the display, a dedicated CPU called a Display Processor or Display Processing Unit (DPU) was used, which had a memory buffer for a "display list", "display file", or "display program" containing line segment coordinates and other information. Advanced Display Processors also supported control flow instructions, which were useful for drawing repetitive graphics such as text, and some could perform coordinate transformations such as 3D projection . One of
153-570: A display list , in Atari parlance, which specifies how the entire display is built from a stack of individual modes. The display list specifies where the data for each row comes from. For character modes, the base address of the character bitmaps is stored in an on-chip register and can be changed. Display list instructions can enable horizontal and vertical fine scrolling and mark that an interrupt should occur. An interrupt allows arbitrary 6502 code to execute, usually to change display-related settings in
204-465: A Display List function called the 'Roller RAM'. This is a 512-byte RAM area consisting of 256 16-bit pointers in RAM, one for each line of the 720 × 256 pixel display. Each pointer identifies the location of 90 bytes of monochrome pixels that hold the line's 720 pixel states. The 90 bytes of 8 pixel states are spaced at 8-byte intervals, so there are 7 unused bytes between each byte of pixel data. This suits how
255-592: A cardiac defibrillator. Miner married his wife Carolina (née Poplowski) in 1951 while attending an electronics school in Groton, Connecticut. His dog Mitchy, a cockapoo , accompanied him everywhere. While he worked at Atari, Mitchy even had her own employee ID badge with number 000, and an embossing of her paw print is inside the Amiga 1000 top cover, alongside staff signatures. Miner's personal hobbies included cultivating bonsai trees, square dancing, and camping. He
306-468: A command list the GPU can execute, and doesn't inherit any GPU state. Bundles, are best used for storing and executing small sets of commands any number of times. This is used differently than regular command lists, where commands stored in a command list are typically executed only once. Compute command lists are used for general computations, with a common use being calculating mipmaps . A copy command list
357-471: A dedicated co-processor, called " Copper ", which ran a simple program or 'Copper List' intended for modifying hardware registers in sync with the display. The Copper List instructions could direct the Copper to wait for the display to reach a specific position on the screen, and then change the contents of hardware registers. In effect, it was a processor dedicated to servicing raster interrupts . The Copper
408-475: A different state that GTIA will interpret as different colors. Unlike many platforms Atari's horizontal scrolling is visually consistent and free from color "strobing" artifacts due to Atari's pixel size matching the color clock timing needed for accurate color. Vertical Fine Scroll This register specifies the distance of the Vertical fine scrolling in scan lines. The lowest 4 bits are significant, however
459-460: A framebuffer. This was often used in place of, or in addition to, sprites. In more primitive systems, the results of a display list can be simulated, though at the cost of CPU-intensive writes to certain display modes, color control, or other visual effect registers in the video device, rather than a series of rendering commands executed by the device. Thus, one must create the displayed image using some other rendering process, either before or while
510-597: A radio operator for the North Atlantic Weather Patrol who serviced meteorological duties on distant islands for three years. He returned to school to enroll in the University of California at Berkeley , for which he received a BS in EECS in 1958, focusing on electronics design. Miner first became a chip designer when he joined General Microelectronics in 1964, playing a role in the design of
561-532: A subsidiary of Commodore. Jay still owned Amiga, because of the Patents/IP, but once again grew frustrated with the management style of the company. His frustrations largely revolved around what he said was Commodore marketing executives' failure to penetrate the Amiga into the low-cost computer market. He still owned majority of Amiga. Miner's last electronics job was at the company Ventritex, operating medical instrumentation and designing chips which controlled
SECTION 10
#1732780238358612-539: Is a system in which graphics commands are recorded (retained) to execute in succession at a later time. This is contrary to immediate mode , where graphics commands are immediately executed on client calls. Command lists are created using the ID3D12Device::CreateCommandList function. Command lists may be created in several types: direct, bundle, compute, copy, video decode, video process, and video encoding. Direct command lists specify that
663-627: Is in effect the Player/Missile memory can be modified between the redundant DMA fetches thus changing the pattern sent to the GRAF* registers and producing apparent Single line resolution Player/Missiles. Display List DMA bit values: Playfield display requires that Display List DMA is enabled, and a Playfield width specified. If either value is zero, then no Playfield display is generated. SHADOW: CHART $ 02F3 Character Control CHACTL controls character display. Character control bit values do
714-521: Is strictly for copying and the video decode and video process command lists are for video decoding and processing respectively. Upon creation, command lists are in the recording state. Command lists may be re-used by calling the ID3D12GraphicsCommandList::Reset function. After recording commands, the command list must be transitioned out of the recording state by calling ID3D12GraphicsCommandList::Close . The command list
765-484: Is then executed by calling ID3D12CommandQueue::ExecuteCommandLists . Display lists have largely been deprecated in modern graphics architectures, as they represent a set of commands in the fixed function graphics pipeline . Modern architectures use shaders and vertex buffer objects , to avoid tying graphics performance to the CPU. Due to the nature of the display list, it must copy every command and its data, which may be
816-684: The Bulova Watch Company , but they quickly became a second source manufacturer for chips designed by other firms such as Intel, Rockwell, and MOS Technology. Due to its manufacturing of the MOS Technology 65xx series of chips, Synertek was recommended as a partner to Atari, Inc. after it had been decided to use the MOS 6507 for their upcoming Atari VCS home video game console. One of Atari's engineers, Harold Lee , had worked with Miner at Standard MicroSystems and suggested him as
867-527: The Display List . The first Mode line without the VS bit set becomes the end of the scrolling region and is used as a buffer line to supply the new information to scroll up into the bottom of the scrolling region. The Vertical scroll value indicates the scan line number to begin the display in the first Mode line and is also used as the scan line number to end the display in the last Mode line (the line without
918-548: The ANTIC and GTIA chips in one integrated circuit to reduce production costs of Atari computers and 5200 consoles. Two such prototype circuits were being developed, but neither entered production. The Atari 8-bit computers and the Atari 5200 console map the ANTIC chip to the $ D4xx hex page. ANTIC provides 15 Read/Write registers controlling Playfield display parameters, DMA for Player/Missile graphics, fine scrolling, light pen input, and interrupts. Hardware registers do not return
969-461: The CPU from creating Player/Missile ( sprite ) graphics. These bits turn on ANTIC's transmission of Player data and Missile data to CTIA/GTIA. CTIA/GTIA must also be configured to receive the data via its GRACTL register in order for Player/Missile DMA to function as expected. When Player DMA is enabled, Missile DMA automatically occurs to keep the DMA timing consistent, but the data is not delivered to
1020-473: The CPU-driven display generation executes. In many cases, the image is also modified or re-rendered between frames . The image is then displayed in various ways, depending on the exact way in which the CPU-driven display code is implemented. Examples of the results possible on these older machines requiring CPU-driven video include effects such as Commodore 64/128's FLI mode, or Rainbow Processing on
1071-513: The Missile's GRAFM register. When enabled, Player/Missile DMA occurs on every scan line in the visible display—from scan line 8 to 247. Therefore, the Player/Missile data in the memory map (see ANTIC's PMBASE ) above and below those scan line counts is unused and undisplayed. Player/Missile Resolution bit values: ANTIC DMA and Player/Missile pattern register updates occur on each scan line regardless of resolution. When Double line resolution
SECTION 20
#17327802383581122-515: The Shadow registers during the next vertical blank. Some Write hardware registers do not have corresponding Shadow registers. They can be safely written by an application without the value being overwritten during the vertical blank. If the application needs to know the last state of the register then it is the responsibility of the application to remember what it wrote. Operating System Shadow registers also exist for some Read registers where reading
1173-460: The TIA but the project was altered from a video game console into what would become the Atari 8-bit computers . Due to clashes with management over this and other decisions, Miner left Atari before the release of the computers and found his way into the medical world. He worked for a company called Zymos Corporation and received two patents for a microprocessor-driven pacemaker made into a product by
1224-481: The VS bit set). 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 ". Jay Miner received his first formal electronics education after joining the U.S. Coast Guard out of high school. Following his service he became
1275-546: The Vertical Blank interrupt is disabled. Horizontal Fine Scroll This register specifies the distance of the Horizontal fine scrolling shift in color clocks. Only the lowest 4 bits are significant. The value range of 16 color clocks allows ANTIC to shift Mode 2 Text four characters, and Mode 6 text two characters before a coarse scroll is needed. When Horizontal scrolling is enabled for a mode line ANTIC fetches
1326-474: The Vertical scroll value should range from 0 to the ANTIC Mode line's scan line height - 1. Scrolling farther than the ANTIC Mode's number of scan lines results in lines of repeated data upsetting the fine scrolling continuity (though, this can also be used as an exploitable behavior). The Vertical scrolling region is defined by setting the VS bit ($ 20) on a sequential series of ANTIC Mode Lines in
1377-476: The ZX Spectrum. To delimit a display list, the glNewList and glEndList functions are used, and to execute the list, the glCallList function is used. Almost all rendering commands that occur between the function calls are stored in the display list. Commands that affect the client state are not stored in display lists. Display lists are named with an integer value, and creating a display list with
1428-546: The age of 62. Display list A display list , also called a command list in Direct3D 12 and a command buffer in Vulkan , is a series of graphics commands so that they may be later run when the list is executed. Systems that make use of display list functionality are called retained mode systems, while systems that do not are as opposed to immediate mode systems. In OpenGL, display lists are useful to redraw
1479-512: The beginning of a screen refresh is controlled by a Z80-writable I/O register. Therefore, the screen can be scrolled simply by changing this I/O register. Another system using a Display List-like feature in hardware is the Amiga , which, not coincidentally, was also designed by some of the same people who developed the custom hardware for the Atari 8-bit computers. Once directed to produce a display mode, it would continue to do so automatically for every following scan line. The computer also included
1530-532: The bottom of the descender area. SHADOW: SDLSTL/SDLSTH $ 0230/$ 0231 Display List Pointer ANTIC begins executing the Display List pointed to by the 16-bit address in registers DLISTL/DLISTH (D402-D403 hex /54274-54275 dec ). The address registers are updated during Display List execution by ANTIC's JMP (Jump) and JVB (Jump and wait for Vertical Blank). The address is also updated by the Operating System's Vertical Blank Interrupt (VBI) routine using
1581-427: The buffered data beginning from the last (right most) color clock of the last buffered byte and progressing to the left. When HSCROL is 0 no color clocks are output from the buffer, so the first screen byte displayed is the first byte after the buffered data. As HSCROL increases more color clocks from the end (right side) of the buffered data are added to the left edge of the display causing the fine scroll shift to move
ANTIC - Misplaced Pages Continue
1632-486: The co-founders of the company Hi-Toro. In 1979 The soon to be called Amiga was called the Lorraine. In 1980 with the hardware in hand suddenly the sole focus of Hi-Toro, (eventually renamed Amiga Corporation ). Soon, the company suffered financial difficulties. Which led it first into a temporary deal with Atari, Inc. and then acquisition by Commodore International . Miner continued to work for Amiga Corporation as
1683-480: The company Intermedics Inc. called Cosmos. In 1979, Miner was approached by David Morse, Vice President from Tonka Toys about starting a new company to create video game hardware without the oversight of a large corporation. Jay Minor agreed to take control of engineering on two conditions: that the design be a computer, and that it be a 16/32-bit system, built around the Motorola 68000 CPU. They would become two of
1734-523: The designer for a custom chip which would power Atari's new console. Through an arrangement with Synertek, Atari hired Miner in late 1975 to lead the chip design for the Atari VCS, primarily that of the display hardware, the TIA . Miner was also the designer on the follow-up technology intended for a successor console to the Atari VCS. The ANTIC and CTIA were created with enhanced capabilities compared to
1785-587: The earliest systems with a true display list was the Atari 8-bit computers . The display list (actually called so in Atari terminology) is a series of instructions for ANTIC , the video co-processor used in these machines. This program, stored in the computer's memory and executed by ANTIC in real-time, can specify blank lines, any of six text modes and eight graphics modes, which sections of the screen can be horizontally or vertically fine-scrolled, and trigger Display List Interrupts (called raster interrupts or HBI on other systems). The Amstrad PCW family contains
1836-561: The first calculator to use the MOS ICs, the Victor 3900 . He then worked at the companies Standard MicroSystems and American Micro Systems, at the latter of which he contributed to the design of the MP944 microprocessor . Subsequently he co-founded Synertek in 1973, where he served as the company's primary chip designer. One of the company's earliest contracts would be creating CMOS chips for
1887-634: The following actions: The CHACTL Video Inverse and Video Blank bits affect the display of characters in ANTIC Text Modes 2 and 3 which have the high bit set (characters $ 80 through $ FF). Toggling the values of the CHACTL bits allow blinking or blanking these characters globally for the entire display. Video Inverse and Video Blank enabled together result in reverse video characters displayed as an inverse blank space. Video Inverse and Video Blank bits work in ANTIC modes 2 and 3, and have no effect on
1938-535: The middle of a frame. Atari computer magazine Antic was named after the chip. The list below describes ANTIC's inherent hardware capabilities meaning the intended functionality of the hardware by itself, not including results achieved by CPU-serviced interrupts or display kernels frequently driving register changes. ANTIC uses DMA to read a program called the display list which specifies these playfield features: Other register-based functions: by part number Atari, Inc. intended to combine functions of
1989-538: The next size increment greater than the current screen width to provide the buffer of data subject to the horizontal scrolling control. When displaying Narrow width ANTIC fetches the screen RAM needed for Normal width. Likewise, for Normal width ANTIC fetches the screen RAM needed for Wide. ANTIC buffers the first few bytes read from screen memory that are sufficient to cover the 16 color clock range of movement. (Two to four bytes depending on display mode.) The HSCROL value specifies how many color clocks should be output from
2040-410: The one scanline gap) with more than 7 other sprites. i.e., so long as at least one sprite had finished drawing, another sprite could be added below it on the screen. Additionally, the later 32-bit AGA chipset allowed the drawing of bigger sprites (more pixels per row) while retaining the same multiplexing. The Amiga also had dedicated block-shifter ("blitter") hardware, which could draw larger objects into
2091-438: The other text modes 4, 5, 6, and 7. The Video Reflect bit affects all Text Modes. Video Reflect is useful for situations requiring mirroring effects without defining a new character set. An ideal use is card games displaying accurate card faces showing upside down suits. As this vertically mirrors the glyph data before it is used, the effect appears inconsistent for ANTIC Mode 3 descenders with glyph bytes 6 and 7 appearing at
ANTIC - Misplaced Pages Continue
2142-402: The playfield, or background graphics, then delivers a data stream to the companion CTIA or GTIA chip which adds color and overlays sprites (referred to as "Player/Missile graphics" by Atari). Each ANTIC instruction corresponds to either blank scan lines or one of 14 graphics modes used for a horizontal band of the display. The height of each band depends on the mode. The instructions comprise
2193-405: The same geometry or apply a set of state changes multiple times. This benefit is also used with Direct3D 12's bundle command lists. In Direct3D 12 and Vulkan, display lists are regularly used for per-frame recording and execution. The vector monitors or calligraphic displays of the 1960s and 1970s used electron beam deflection to draw line segments , points, and sometimes curves directly on
2244-422: The same name as one already created overrides the first. The glNewList function expects two arguments: an integer representing the name of the list, and an enumeration for the compilation mode. The two modes include GL_COMPILE_AND_EXECUTE , which compiles and immediately executes, and GL_COMPILE , which only compiles the list. Display lists enable the use of the retained mode rendering pattern, which
2295-415: The screen contents to the right. ANTIC Mode F (high-resolution, 1/2 color clock pixels) can only be scrolled two pixels at a time, because HSCROL specifies color clocks. ANTIC Modes using the alternate GTIA color interpretations must be scrolled by an entire GTIA pixel (two color clocks). Only even values should be used to ensure correct scrolling. Odd values of HSCROL will shift the pixel stream into
2346-422: The text-orientated PCW constructs a typical screen buffer in RAM, where the first character's 8 rows are stored in the first 8 bytes, the second character's rows in the next 8 bytes, and so on. The Roller RAM was implemented to speed up display scrolling as it would have been unacceptably slow for its 3.4 MHz Z80 to move up the 23 KB display buffer 'by hand' i.e. in software. The Roller RAM starting entry used at
2397-707: The value directly from hardware at an unknown stage in the display cycle may return inconsistent results. In the individual register listings below the following legend applies: SHADOW: SDMCTL $ 022F Direct Memory Access (DMA) Control DMACTL controls ANTIC's DMA behavior for the Playfield and Player-Missile ( sprite ) graphics. Playfield Width bit values: Also see Display List DMA bit regarding Playfield display. Player/Missile DMA bits values: ANTIC's Player/Missile DMA feature reads bytes from memory and delivering data to update CTIA/GTIA 's GRAFP0, GRAFP1, GRAFP2, GRAFP3, and GRAFM graphics pattern registers relieving
2448-705: The values in shadow registers SDLSTL/SDLSTH (0230-0231 hex /560-561 dec ). When the OS Vertical Blank Interrupt is enabled, direct updates to the ANTIC DLIST registers by the CPU or the ANTIC Jump instructions will be overwritten by the OS during the next Vertical Blank by the values in the shadow registers. Therefore, page flipping implemented by Display Lists that point to the next Display List in series will not operate as expected unless
2499-411: The written values back when read. This problem is solved by Operating System Shadow registers implemented in regular RAM as places to store the last value written to registers. Operating System Shadow registers are copied from RAM to the hardware registers during the vertical blank. Therefore, any writes to hardware registers which have corresponding shadow registers will be overwritten by the value of
2550-474: Was a particular fan of flight simulators on computers, having been significantly inspired to design Amiga as an excellent flight simulator. He said at one time his favorite Amiga program was the game F/A-18 Interceptor published by Electronic Arts in 1988. He endured kidney problems for most of his life, according to his wife, and relied on dialysis . His sister, Joyce Beers, donated a kidney to him in 1990. He died due to complications from kidney failure at
2601-446: Was used by Workbench to mix multiple display modes (multiple resolutions and color palettes on the monitor at the same time), and by numerous programs to create rainbow and gradient effects on the screen. The Amiga Copper was also capable of reconfiguring the sprite engine mid-frame, with only one scanline of delay. This allowed the Amiga to draw more than its 8 hardware sprites, so long as the additional sprites did not share scanlines (or
SECTION 50
#1732780238358#357642