Hold and Modify
# Hold and Modify

HAM (Hold and Modify) es un modo de gráfico de los ordenadores Commodore Amiga. Es un tipo de tratamiento gráfico que soporta directamente el hardware de los ordenadores Amiga desde el principio y denota una alta calidad de sus chips gráficos. Su principal característica es que permite visualizar simultáneamente una gran cantidad de colores y todo ello ocupando muy poca memoria puesto que se basa en un tipo de compresión de imágenes vía hardware (soportada por el Amiga directamente por sus custom chips).

Su nombre viene de las palabras Hold And Modify (HAM).

## Modo HAM6

Es el modo Hold And Modify original y es soportado por todos los sets de chips gráficos del Amiga (a saber: OCS, ECS, AGA). Este modo utiliza 6 bits por plane para simular una profundidad de color de 12 bits por medio de compresión por hardware. Se usan 4 bits como colores base y 2 para controlar y modificarlos y producir más colores. OCS y ECS soportan HAM6 en baja resolución y AGA en todas. Soporta como máximo en pantalla 4096 colores de una paleta de 4096.

## Modo HAM8

El modo HAM8 es parecido al HAM6 pero soporta más colores y más bitplanes. Sólo lo soporta el set AGA y se usan en este caso 8 bits para simular una profundidad de 18 bits, recurriendo siempre a compresión hard. Se usan 6 bits como colores de base y 2 para controlar y modificarlos. Se soporta en todas las resoluciones y puede mostrar un máximo de 262144 colores de una paleta de 16777216. Se pueden también simular 24 bits de profundidad a través de trucos hard y soft.

## Funcionamiento

Como en todo modo gráfico, se parte de una paleta de colores constituida de 2*n (2 elevado a n) colores, donde n es el número de profundidad del color. En el modo HAM6, la paleta se formada con 16 colores (4 bits); con el modo HAM8, son 64 colores (6 bits). Se añaden además 2 bits suplementarios para controlar la selección de paleta, con lo que se llega a 6 bits para HAM6 y 8 bits para HAM8. Estos 2 bits suplementarios pueden tomar pues 4 estados diferentes:

1 estado en el que los demás bits marcan el número de paleta como en un modo normal.

3 estados restantes en los que una de las tres componentes R, G o B es modificada a un nuevo valor.

| | R | G | B | |
| - | - | - | - | - |
| 0 0 | | | | Selección de nueva paleta (1-16) |
| 0 1 | Hold | Hold | Modify | |
| 1 0 | Modify | Hold | Hold | |
| 1 1 | Hold | Modify | Hold | |

Por tal comportamiento se le denomina HAM.

## Ventajas y limitaciones del modo HAM

Con este sistema se consigue unas transiciones de color muy suaves y muy buenas, lo cual es muy beneficioso para imágenes realistas. En el modo HAM, se pueden mostrar, en teoría, más de 600 000 colores simultáneamente en pantalla. No es un modo indicado para tiempo real, pero en animaciones da un resultado más que aceptable.

