Hold-And-Modify, usually abbreviated as HAM, is a display mode of the Amiga computer. It uses a highly unusual technique to express the color of pixels, allowing many more colors to appear on screen than would otherwise be possible. HAM mode was commonly used to display digitized photographs or video frames, bitmap art and occasionally animation. At the time of the Amiga's launch in 1985, this near-photorealistic display was unprecedented for a home computer and it was widely used to demonstrate the Amiga's graphical capability. However, HAM has significant technical limitations which prevent it from being used as a general purpose display mode.
Background
The original Amiga chipset uses a planar display with a 12-bit RGB color space that produces 4096 possible colors. The bitmap of the playfield was held in a section of main memory known as chip RAM, which was shared between the display system and the main CPU. The display system usually used an indexed color system with a color palette. The hardware contained 32 registers that could be set to any of the 4096 possible colors, and the image could access up to 32 values using 5 bits per pixel. The sixth available bit could be used by a display mode known as Extra Half-Brite which reduced the luminosity of that pixel by half, providing an easy way to produce shadowing effects.
Hold-And-Modify mode Over-the-air analog color television was designed to solve the problem of sending a color signal over the channel bandwidth assigned for black-and-white signals. It was found that the human visual system is far less sensitive to changes in color than in brightness. Taking advantage of this, the NTSC system slightly reduced the resolution of the black-and-white signal, which became known as the luminance, or luma. The reduction in resolution left a small amount of unused bandwidth which was then used to broadcast a much lower resolution color signal known as chrominance, or chroma. The chroma signal is then further split into two signals, hue and saturation, and the resulting three-part signal is known as HSV, for hue, saturation and value. Just before broadcast, the hue and saturation are further encoded, although the details of these two differ among the different broadcast systems – in NTSC it is known as YIQ, and in PAL it is Y'UV. In computers and game consoles of the home computer era, which normally used color televisions as computer monitors, the signals inside the computer were normally encoded in HSV. This signal could then be easily turned into YIQ or YUV as needed and then sent to the television using an RF modulator. As the television was receiving a signal that had reduced color resolution, many systems of the era encoded their graphics in a way that also reduced the resolution of the color signal in order to save memory. For instance, the ZX Spectrum stored color only for 8-pixel groups, but this made it difficult to make high-resolution color images due to a problem known as attribute clash. In the Amiga, the HAM mode was developed as a solution to reducing color resolution memory needs while avoiding attribute clash. In this system, an initial color was set and then the following data was used to modify that value. Normally the data would be used to make adjustments to the luma, producing a higher resolution image based on two colors, like the Spectrum, but this system had no fixed-location edges and the encoding could change the base color anywhere along the line. One could, for instance, set the color of a particular section of a line to "sky blue" and then use the rest of the data for that line to encode changes in brightness, only periodically adjusting luma, to display clouds and similar features. This is the same basic technique used in modern image compression techniques like JPEG and MPEG, as well as in other HSV/YUV based video modes such as the YJK encoding of the V9958 MSX-Video chip (first used in the MSX2+). As the Amiga design migrated from a games console to a more general purpose home computer, the video chipset was itself changed from HSV to the modern RGB color model. It appeared that this change negated much of the benefit of HAM mode. Amiga project lead Jay Miner relates:
… excerpt ends here. Continue reading the full article.






