ArticleslgStudy

computer science

Hold-And-Modify

Hold-And-Modify is a computer science topic covered in the lgStudy science library. This page brings together a partial reference excerpt, illustrations, worked examples, real-world applications and a short study plan, so you can understand Hold-And-Modify rather than just read about it. In short: 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.

Hold-And-Modify — main illustration
Hold-And-Modify — illustration

Key takeaways

  • Hold-And-Modify belongs to computer science; place it in that map before memorising details.
  • Learn the definition first, then one example that makes the definition concrete.
  • Connect Hold-And-Modify to a quantity you can measure, compute or draw — that is where exam questions come from.
  • Reproduce the core statement of Hold-And-Modify from memory before moving on to harder problems.

Reference excerpt

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.

Illustrations

Hold-And-Modify: Fragment of full-color image (left) vs Amiga HAM (right)
Fragment of full-color image (left) vs Amiga HAM (right)
Hold-And-Modify: Screenshot of Juggler, a 3D demo released in 1987 using the HAM mode
Screenshot of Juggler, a 3D demo released in 1987 using the HAM mode
Hold-And-Modify: An example of HAM color fringing: white and black are in the palette, the other colors are not, so they require horizontal transition steps.
An example of HAM color fringing: white and black are in the palette, the other colors are not, so they require horizontal transition steps.
Hold-And-Modify: An example of the Commodore Amiga's Hold-And-Modify Mode 6 with 12-bit color depth, 16 base palette colors, and 6 bitplanes (HAM6)
An example of the Commodore Amiga's Hold-And-Modify Mode 6 with 12-bit color depth, 16 base palette colors, and 6 bitplanes (HAM6)
Hold-And-Modify: An example of the Commodore Amiga's Hold-And-Modify Mode 5 with 12-bit color depth, 16 base palette colors, and 5 bitplanes (HAM5)
An example of the Commodore Amiga's Hold-And-Modify Mode 5 with 12-bit color depth, 16 base palette colors, and 5 bitplanes (HAM5)

Worked examples

Example 1 — a first encounter with Hold-And-Modify

Start with the simplest possible case. Write down what Hold-And-Modify claims or describes in one sentence, then invent the smallest concrete situation in which that sentence is true. In computer science, the smallest case is usually a single object, a single equation or a single measurement. Check that every symbol or term in your sentence has a meaning in that case.

Example 2 — changing one variable

Take the situation from Example 1 and change exactly one quantity: double it, halve it, or set it to zero. Predict what should happen to Hold-And-Modify before you calculate. Comparing your prediction with the result is the fastest way to find out whether you understand the idea or only the words.

Example 3 — an exam-style question

Typical questions about Hold-And-Modify ask you to (a) state it precisely, (b) apply it to given data, and (c) explain a limitation. Practise writing all three answers in under five minutes; the third part is what separates a full-mark answer from an average one.

Applications of Hold-And-Modify

In research
Hold-And-Modify appears in computer science research whenever the underlying quantities have to be modelled precisely. Papers usually cite it as a starting assumption and then explore where it breaks down.
In technology and industry
Engineering practice reuses Hold-And-Modify in design rules, simulations and safety margins. Knowing the idea lets you read a specification sheet and understand why the numbers look the way they do.
In the classroom
Hold-And-Modify is common in secondary-school and first-year university syllabi. It links to neighbouring topics Amiga, Color depths, Computer display standards, so understanding it makes those chapters shorter.
In everyday life
Look for Hold-And-Modify outside the textbook — in sport, cooking, traffic, electronics or the sky above you. An example you found yourself is remembered far longer than one you were given.

Affiliate

Preply — study more efficiently by working with a personal tutor. 50% off.

How to study Hold-And-Modify in 20 minutes

  1. Read the reference excerpt below once, without taking notes.
  2. Close the page and write down what Hold-And-Modify means in your own words.
  3. Compare your version with the excerpt and mark what you missed.
  4. Work through the three examples above with pen and paper.
  5. Explain Hold-And-Modify out loud to somebody else — or to Teacher Smith in the lgStudy chat.

Frequently asked questions

What is Hold-And-Modify in simple terms?

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.

Why does Hold-And-Modify matter?

Because it connects several computer science ideas at once: it gives you a definition you can apply, a quantity you can calculate, and a way to check whether a result is plausible.

How should I study Hold-And-Modify?

Read the excerpt, restate it from memory, then work through the examples and applications listed on this page. The five-step study plan above takes about twenty minutes.

What does this page cover?

It gives you a compact reference excerpt plus original lgStudy explanations, examples, applications and study material on Hold-And-Modify.

Tags

  • Amiga
  • Color depths
  • Computer display standards

Keep exploring