El modo carácter con color de fondo extendido es una mezcla entre el modo estándar y el modo multicolor. A mi entender, se parece más al modo carácter estándar, y se entiende mejor si se compara con él.
En el modo carácter con color de fondo extendido, al igual que en 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 es único y sale de la RAM de color.
La principal diferencia es que cada carácter puede tener un color de fondo diferente, en vez de ser el color de fondo compartido entre todos los caracteres de la pantalla, como ocurre en el caso estándar.
Para determinar el color de fondo de cada carácter se utilizan los dos bits más significativos de su código de pantalla en la RAM de pantalla (ojo, no en la RAM de color). De este modo, si el código de pantalla empieza por:
- %00: Se toma el color de fondo del registro $d021 (color de fondo 0).
- %01: Se toma el color de fondo del registro $d022 (color de fondo 1).
- %10: Se toma el color de fondo del registro $d023 (color de fondo 2).
- %11: Se toma el color de fondo del registro $d024 (color de fondo 3).
Por otro lado, si los dos bits más significativos del código de pantalla se utilizan para determinar el color de fondo del carácter, de ello se deriva que sólo quedan 6 bits para determinar el carácter. Es decir, en este modo sólo se puede representar 2^6=64 caracteres, ya sean los primeros 64 caracteres del juego estándar o de un juego personalizado.
En definitiva, el modo carácter con color de fondo extendido nos da control sobre el color de los caracteres y el color de su fondo, que deja de ser común para todos, con el coste limitar el número de caracteres representables a 64.
Quedaría por explicar cómo se activa este modo, lo cual se consigue activando el bit 6 del registro $d011.
A mi modesto entender, se trata de un modo un poco extraño, y con poca utilidad práctica. Normalmente el programador querrá escribir textos o hacer fondos de pantalla gráficos. Para lo primero, el modo carácter estándar permite controlar el color de los caracteres, e incluso su forma con juegos personalizados, y el color del fondo que es común a toda la pantalla. Para lo segundo, el modo carácter multicolor permite diseñar patrones y controlar sus colores (hasta cuatro). Más que suficiente. No veo claro un escenario de uso donde interese controlar el color de los caracteres y el color de su fondo individualmente, y menos si es a costa de reducir el número de caracteres representables.
Programa de ejemplo: Prog42
Hola.
Un posible uso del color de fondo extendido es la simulación de ventanas.
En una interfaz de usuario de este tipo el color de fondo puede usarse para marcar la superficie de una especie de ventana emergente.
Un saludo, HVSW.
Me gustaMe gusta