El modo carácter multicolor comparte muchas características con el modo carácter estándar:
- La pantalla tiene 25 filas por 40 columnas.
- Los caracteres de la pantalla salen de la RAM de pantalla.
- El color de los caracteres sale de la RAM de color (sólo en parte).
La principal diferencia es que cada carácter, en vez de tener un único color, puede tener varios colores (hasta cuatro).
Para que esto sea posible, de forma análoga a lo que ocurría con los sprites multicolor, los bits o pixels de la matriz de 8 x 8 se agrupan de dos en dos en sentido horizontal:
De este modo, si el grupo de 2 bits / pixels vale:
- %00: Se toma el color del registro $d021 (color de fondo 0).
- %01: Se toma el color del registro $d022 (color de fondo 1).
- %10: Se toma el color del registro $d023 (color de fondo 2).
- %11: Se toma el color del carácter de la RAM de color.
Es decir, tres colores (valores de los registros $d021, $d022 y $d023) tienen que ser compartidos entre todos los caracteres, mientras que el cuarto color es específico de cada carácter individual y sale de la RAM de color.
De lo anterior se deriva que:
- Aunque se podría usar el juego de caracteres estándar en multicolor, no será habitual hacerlo, ya que este juego de caracteres requiere más resolución y no está pensando para el multicolor. Los caracteres estándar no se interpretan bien en multicolor, como puede apreciarse más arriba.
- Suelen diseñarse juegos de caracteres a medida para el multicolor, aunque, más que caracteres propiamente dichos (letras, números y símbolos), suelen diseñarse “ladrillos” para componer fondos de pantalla.
Además de diseñar un “juego de caracteres” adecuado para el multicolor, ubicarlo en RAM y activarlo como se explicó en la entrada anterior, hay que configurar el VIC para que funcione en modo multicolor. Esto se hace activando el bit 4 del registro $d016.
Por último, hay que utilizar la RAM de color ($d800 – $dbe7) para especificar el color de cada carácter almacenado en la RAM de pantalla ($0400 – $07e7). Una cuestión curiosa es que si el color de una posición:
- Está entre 0 y 7: El carácter se mostrará en modo estándar o monocolor.
- Está entre 8 y 15: El carácter se mostrará en modo multicolor.
Lo anterior permite mezclar caracteres monocolor y multicolor en la misma pantalla.
En la figura que sigue se muestra una pantalla llena de “pirámides” de tres colores: negro (fondo 1), amarillo (fondo 2), y verde claro. El color verde claro podría ser diferente en cada carácter, puesto que sale de la RAM de color.
Programa de ejemplo: Prog41