The Time Capsule-Part II

The series continues, this time with a look at the more technical aspects of the Amiga from day 1 to today.

Compiled by Greg Noggle, Telecommunications Editor and Hardware Guru, g.noggle@genie.com

Devices, Memory, and Disks

If a lot of this doesn't make sense right now; be patient. Rome wasn't built in a day; nor was your Amiga. Give yourself some time to learn.

What are the Amiga Custom Chips?

In the first Amiga, the A1000, the chips "Agnus," "Paula," and "Denise" did the hard work. They together build a specialized multiprocessor system that takes much of the time-critical load off of the main processor. This includes the plain display of image information, 4-channel sound output, floppy control, general DMA control, and much more. In the newest Amigas you find the "AGA chipset", which consists of the original "Paula" and the advanced chips named "Alice" (the replacement for Agnus) and "Lisa" (the replacement for Denise).

What are OCS, ECS, AGA, and AA?

Over the years, the chipset was redesigned several times. The first chipset in the Amiga 1000 is called the OCS, for Original Chip Set. It consists of the chips Paula, Agnus, and Denise. With these, you can display graphics in resolutions up to 640x512 (or 640x400, depending on whether you had the American or European version) and in up to 4096 colors, a fantastic achievement in 1985.

The next generation was ECS, the Enhanced Chip Set. The chip names remained unchanged, except some minor additions like "Fat Agnus". Only Agnus and Denise were changed. Compared to OCS, they provided higher resolutions, but no expansion of the color palette so far. The current generation was created in the labs as the AA chipset (for Advanced Amiga), but in some countries it was later marketed as AGA (Advanced Graphics Architecture). Agnus was replaced by Alice and Denise by Lisa. The resolutions now reach up to 1280x512 in VGA scan frequencies. The color palette is now 24 bits or 16.8 million colors. You can display up to 256 colors simultaneously or in HAM mode more than 640,000. Backwards compatibility with Video and OCS modes is assured.

What is the Copper?

Copper is the short name for a "Coprocessor" which is integrated into the Amiga custom chips. It makes fast action games possible, as well as unbelievable color effects, and the capability to drag down a screen partially on the Amiga's display and thus show several screens at once. Technically, the Copper is a highly specialized microprocessor which knows only three different commands, but can process these extremely fast and efficiently. It provides the ability to change, for instance, graphics mode, color values, or sprite definitions somewhere at a well defined location within the screen. This way the Amiga can display many different actions on one screen simultaneously without activity by the main CPU.

What is the Blitter?

Blitter is the short name for another graphics coprocessor which is part of the Amiga custom chips. With it you can copy rectangular image parts extremely fast to other areas. During this, you can take up to three source data areas and perform logical operations on them. This allows you, for example, to define certain color values of the copied object as transparent, thus not modifying the destination area. As an add-on, the Blitter can also draw lines and fill areas quickly. All in all it serves to provide extremely fast, animated graphics that can be designed to be especially realistic.

What is a sprite?

A sprite is a graphical object that can be moved easily across the screen and still be displayed without any flicker. In game programs, they are used to show projectiles or characters, which contributes to the blindingly fast speed of typical Amiga action games. Technically speaking, the sprite data is held separately from the normal image data in memory. A certain part of the graphics hardware overlays this object at a selectable location onto the background image. Simply by changing one single memory value, the sprite can be moved directly, without any delay, to a different location on screen. The mouse pointer is one example of a sprite. The Amiga graphics hardware provides for 8 sprites.

The HAM mode is one of several graphics modes that was provided by the Amiga custom chips from the start. With HAM, you can display many colors simultaneously while using up very little memory. Simply put, it's sort of a hardware data compression method by a factor of three. Still you can display practically all colors of the palette on screen.

How does HAM mode work?

Technically it works like the name says: HAM = Hold And Modify. Like other graphics modes, you have a palette with base colors, so that for every pixel you can store the number of its color in the video RAM. With the old HAM6 mode, these are 16 colors (4 bits per pixel); with the new HAM8 mode (since the AGA chipset), these are 64 colors (6 bits per pixel). Now in the video RAM two more bits of storage are provided, in addition to these 4 or 6 bits, for every pixel. This yields six bits for HAM6 and eight bits for HAM8.

These additional two control bits can assume four different states: In one state, the other bits give the number of a palette color like a normal graphics mode. In the other three cases, one of the three color components R, G, or B gets set to a new value from the other bits. This way this color component gets modified, while the other color components remain unaltered from the previous pixel, so they are held. This explains the name HAM.

What are the strengths and limitations of HAM mode?

This modification of one color component serves to render soft color transitions very accurately, as they are typical for natural pictures like portraits. In the HAM8 mode you can theoretically display more than 640,000 colors simultaneously on screen. The dependence on previous pixel contents sets certain limits, so that the HAM mode is less suited for realtime action. But in still pictures or precalculated animations, it lives with its many colors. With its data compression, the HAM mode is also responsible for the Amiga being so famous for its animations that can run at full speed, even on smaller Amiga models.

How many colors can be displayed simultaneously in HAM8 mode?

Basically you can display all 16.8 million colors of the 24-bit palette in HAM8 mode. But there are two limitations: for one, no current monitor (or screenmode) can display so many pixels simultaneously. In the screenmode SuperHiRes PAL Interlaced, there are e.g. 640,000 pixels. Second, it's not so easy to reach this color resolution with real-world pictures. Through the normal HAM8 mechanism you can only set the upper six bits of each color component red, green, and blue. Each component has 8 bit resolution so that we get a total resolution of 3 * 8 or 24 bit. The lowest two bits are only reachable through a special method, in that you have to choose the 64 base colors appropriately so that they exactly cover all 64 possible combinations of the lower two bits of all color components (3 * 2 bit = 6 bit, which gives 64 combinations). But for real-world pictures, you want to use the HAM mechanism to get smooth color transitions, so that the change to another base color is not preferable.

To summarize, you can theoretically (and in very special applications like demos) set practically every pixel on screen to a different color. But in reality you are limited to an 18-bit color space (18-bit from 3 * 6 bit of the HAM parts of the color components). In data sheets, you often find the theoretical maximum value of about 640,000 colors (limited by the number of pixels displayable on one screen).