Released in , SAM was the first software-only speech synthesizer for personal computers. He later developed Macintalk, speech synthesis for Fandal: Atari programer and archivist Frantisek Houra is better known to the Atari community as Fandal. He's an Atari computer programmer and long-time archivist of European Atari software. He has created many original Atari games and conversions from other platforms: including Fruity Pete, Mashed Turtles, Crescent
|Country:||Saint Kitts and Nevis|
|Published (Last):||13 June 2005|
|PDF File Size:||1.81 Mb|
|ePub File Size:||11.37 Mb|
|Price:||Free* [*Free Regsitration Required]|
Under the direction of Jay Miner , the chip was designed in by Joe Decuir , Francois Michel, and Steve Smith  for the Atari 8-bit family of home computers first released in and was patented by Atari, Inc. Atari advertised it as a true microprocessor, in that it has an instruction set to run programs called display lists to process data.
ANTIC has no capacity for writing back computed values to memory, it merely reads data from memory and processes it for output to the screen, therefore it is not Turing complete. 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.
Atari, Inc. Two such prototype circuits were being developed, but neither entered production. Hardware registers do not return 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 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 the value directly from hardware at an unknown stage in the display cycle may return inconsistent results.
If either value is zero, then no Playfield display is generated. Video Inverse and Video Blank enabled together result in reverse video characters displayed as an inverse blank space. 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 the bottom of the descender area. Therefore, page flipping implemented by Display Lists that point to the next Display List in series will not operate as expected unless the Vertical Blank interrupt is disabled. This register specifies the distance of the Horizontal fine scrolling shift in color clocks.
Only the lowest 4 bits are significant. When Horizontal scrolling is enabled for a mode line ANTIC fetches the next size increment greater than the current screen width to provide the buffer of data subject to the horizontal scrolling control. 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 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 the screen contents to the right.
Only even values should be used to ensure correct scrolling. 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.
This register specifies the distance of the Vertical fine scrolling in scan lines. 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 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 the VS bit set. When Vertical scrolling is not set in the Display List the three Modes lines would naturally result in 24 displayed scan lines. Since fine scrolling is based on scan lines not pixel height, and scrolling region movement is done simply by skipping scan lines from the first Mode line and adding scan lines to the last Mode line, it is possible to use different graphics Modes within the scrolling region.
This merely requires additional care when determining how many scan lines can be shifted for the current first and last Mode lines in the scrolling region. Blank Mode lines cannot be contained within a scrolling region, because Blank Mode line instructions inherently do not have a Vertical Scroll Modifier bit. However, a Blank Mode instruction can be used to end a scrolling region and is still subject to the expected scan line height changes per the vertical scroll value.
This specifies the page of the base address for the character set. This register allows programs to synchronize to the display. A write to this register halts the program through the end of the current scanline. The value written is unimportant. This register tracks the scan line currently being generated. The value returned is the actual scan line divided by 2.
Blank lines generated at the start of the display are included. This value is useful during Display List Interrupts to identify the vertical screen position. The shadow register is the recommended source for reading this information, since it will be updated during the vertical blank guaranteeing consistent and reliable results. Programs should avoid reading the hardware register directly unless the program is certain the register is read at a time insuring the value is valid.
Light guns for the Atari function the same way as light pens with the addition of an optical magnifier allowing the screen to be read from a greater distance. It is the responsibility of the DLI routine to save the state of the registers that will be used during the DLI routine, and then the last action is to restore the original values of the registers before exiting with an RTI instruction.
Routines typically push the register values to the stack. The Operating System uses the Vertical Blank to perform various housekeeping chores among other things - updating timers, copying controller input values to their Shadow registers, and copying the contents of Shadow registers to the custom chips hardware registers. User programs can insert execution of custom code either before Immediate or after Deferred the Operating System's Vertical Blank Interrupt routines.
This is used by interrupt dispatch code in the Operating System and there would ordinarily not be a reason for a user program to write here. The Operating System's Non-Maskable Interrupt dispatch routine reads this register to determine the reason for the interrupt and so which service routine to execute.
The data processed by this Display List "program" is the screen memory. The output is the graphics display. The kinds of graphics in the output text vs addressable pixels is determined by the instructions in the Display List.
This allows the Atari 8-bit computers to produce complex, mixed-mode displays without direct CPU intervention. Other platforms, even those designed much later, cannot either mix graphics modes in one display, or do so without complex CPU interrupts. Together the two chips provide 6 text and 8 graphics modes 14 total. The Atari display is built as a series of ANTIC instructions each describing a line of text or graphics mode progressively from the top to the bottom of the screen until the desired display area is filled.
Different modes occupy different numbers of scan lines and use different amounts of RAM. Designing a display requires counting the scan lines of each Mode instruction and tracking the memory for each Mode line to prevent overrunning ANTIC or video standard limitations. See the Limitations section. Mixing multiple graphics modes in one display is done simply by providing different character or map mode instructions for the desired position on screen.
For example, the Atari Operating System graphics modes 1 through 8 offer full screen display, or an option for a four-line text window at the bottom of the screen. Map and Character mode instructions have additional modifiers that can be enabled with the instruction:. ANTIC can only update the lowest 10 bits of the address during the automatic increment limiting the display list to begin and end within a 1K address range.
These instructions load the full bits of address, so can be used to circumvent the 1K Display List limitation. Bits are modifiers for Playfield Mode instructions in bits Bit value 1 Enables the modifier, and 0 disables the modifier. The number of blank scan lines are specified by the value of Bits 4 through Bits 6 allowing a range from 0 through 7.
ANTIC adds one to this value and displays the resulting number of scan lines. Instruction Values:. Blank lines are useful for delaying the start of the screen display until the electron beam has left the vertical overscan area at the top of the display.
Blank lines are also useful for partitioning parts of a custom display with different purposes i. Blank Mode lines cannot be contained within a scrolling region, because Blank Mode line instructions inherently do not have Fine Scrolling Modifier bits. However, a Blank Mode instruction can be used to end a vertical scrolling region and is still subject to the expected scan line height changes per the vertical scroll value. The DLI modifier bit is available for blank line instructions.
When the DLI bit is enabled a Display List Interrupt will be triggered during the last blank scan line of the instruction. The JVB's argument usually points to the beginning of the same Display List, but it can also point to another Display List, so that a chain of Display Lists is executed after consecutive vertical blanks. For more detailed descriptions of each Mode see the Playfield Graphics Modes section. Modifier bit value 1 Enables the modifier, and 0 disables the modifier.
When horizontal scrolling is enabled ANTIC retrieves more screen memory bytes than displayed in order to show partially scrolled display bytes at the beginning and end of the line.
Scrolling in Wide screen will cause blank data to be shifted into the scrolled area. The Character or Map mode specified will begin displaying bytes from that address. Most of the Operating System-generated full screen modes will have only that one occurrence of the LMS modifier present in the Display List. Full screen displays using Playfield Map Modes E or F will have a second occurrence of the LMS modifier on a Map Instruction near the middle of the screen, since the full display requires more than 4K of screen memory.
Combining the Map and Character Mode instructions with the LMS bit makes it possible to set the screen memory address freely within the 64K address space independently for each display line. In other words, the screen memory does not have to be completely contiguous memory scanned sequentially towards higher addresses - only that a single Mode line must be provided with adequate sequential bytes of memory to meet the requirements of that Mode, width of the display, and Scrolling feature.
It is the responsibility of the DLI routine to save the state of the registers used during the DLI, and then restore the original values of the registers before exiting with an RTI instruction. DLI routines are ordinarily short and quick, changing the color registers or Player-Missile positions before exiting. However, brevity is not required. While the Operating System's default height for graphics modes is scan lines Antic can display vertical overscan up to TV scan lines tall by creating a custom Display List.
The pixel resolution is across but the color resolution half that, thus each group of two pixels will "blend" together to form a single color and four artifact colors may be generated this way.
The exact colors produced this way vary with different Atari 8-bit models and also between the CTIA and GTIA chips, thus undesirable artifact colors may result from running software that uses Mode F on a machine other than the one it was developed for.
ANTIC'S MODE 3
The programs run on all Atari computers. Newer readers now know where our name came from. A few of the concepts and terms used in this article may be unfamiliar to you. The display list is a set of instructions used by the ANTIC chip, the special graphics processor that constructs the screen display. A scan line is a single horizontal line traced by the electron beam on your television screen.
ANTIC The Atari 8-bit Podcast
Each issue contained one type-in game as "Game of the Month. He quit his job on 15 January to found a magazine for the computer. Companies such as On-Line Systems , Broderbund , and Synapse Software agreed to purchase advertising in the new publication, and Capparell's staff distributed the first issue of 30 pages at the March West Coast Computer Faire. The first issue of Antic was published in April While it began as a bimonthly magazine, within a year it had gone monthly.
1.12) What are SALLY, ANTIC, CTIA/GTIA/FGTIA, POKEY, and FREDDIE?
Under the direction of Jay Miner , the chip was designed in by Joe Decuir , Francois Michel, and Steve Smith  for the Atari 8-bit family of home computers first released in and was patented by Atari, Inc. Atari advertised it as a true microprocessor, in that it has an instruction set to run programs called display lists to process data. ANTIC has no capacity for writing back computed values to memory, it merely reads data from memory and processes it for output to the screen, therefore it is not Turing complete. 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. Atari, Inc. Two such prototype circuits were being developed, but neither entered production.