En cierto modo, el modo bitmap estándar es bastante multicolor, ya que cada cuadradito de 8 x 8 admite dos colores, el de los bits activos y el de los bits inactivos. Ambos colores salen de la RAM de pantalla (nibble alto y nibble bajo). Pero, todavía más, los dos colores de un cuadrado de 8 x 8 pueden ser distintos de los dos colores del cuadrado de al lado. En definitiva, admite bastante colorido.
A pesar de esto, hay un modo bitmap multicolor. Y al igual que ocurría con los sprites multicolor y con el modo carácter multicolor, se consiguen cuatro colores a costa de dividir por la mitad la resolución horizontal, que pasa a ser de 200 x 160 pixels.
De este modo, en cada matriz de 8 x 8, los pixels / bits se agrupan de dos en dos en sentido horizontal. En función de lo que valgan esos dos bits así será el color:
- %00: Se toma el color de fondo del registro $d021 (color de fondo 0).
- %01: Se toma el color de la RAM de pantalla (nibble alto).
- %10: Se toma el color de la RAM de pantalla (nibble bajo).
- %11: Se toma el color de la RAM de color.
Es decir, en el modo bitmap multicolor, el diseño de la pantalla (pixels activos e inactivos) sale de un segmento de 8K de memoria, igual que en el modo bitmap estándar. Y el color sale de la RAM de pantalla, igual que en el modo bitmap estándar, y, además, del registro $d021 y la RAM de color. Ninguna de estas dos últimas fuentes de información se utiliza en el modo bitmap estándar.
El modo bitmap multicolor se activa activando a la vez el bit 5 del registro $d011 (igual que el modo bitmap estándar) y el bit 4 del registro $d016 (igual que el modo carácter multicolor).
Programa de ejemplo: Prog45