title: Hold and Modify
text: # 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).
  
  # Hold and Modify
  ## 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.
  
  # Hold and Modify
  ## 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.
  
  # Hold and Modify
  ## 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.
  
  # Hold and Modify
  ## 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.