Comando color
Este comando permite cambiar el color de texto en DariOS. El cambio afecta tanto al texto que se muestra como al color de fondo en la pantalla. A continuación se explican las diferentes secciones que lo componen.
Propósito
Cambiar el color de texto de la terminal, limpiar la pantalla con el nuevo color, y colocar el cursor en la esquina superior izquierda.
Sección: Establecer nuevo color <color>
mov byte [color_actual], <color>
- Se almacena el valor del nuevo color en la variable
color_actual
. Este valor debe ser un byte válido para el modo texto (por ejemplo,0x02
para verde).
mov ah, 0x06
mov al, 0
mov bh, [color_actual]
mov cx, 0x0000
mov dx, 0x184F
int 0x10
- Usa la función
0x06
de la BIOS para hacer scroll o limpiar la pantalla. Conal = 0
, se borra toda la pantalla, utilizando el color almacenado encolor_actual
.
mov ah, 0x02
mov bh, 0x00
mov dh, 0x00
mov dl, 0x00
int 0x10
- Mueve el cursor a la esquina superior izquierda (fila 0, columna 0).
ret
- Finaliza la subrutina.
Sección: Resetear color por defecto
mov byte [color_actual], 0x07
- Restaura el color por defecto (blanco sobre negro:
0x07
).
El resto del código es idéntico a la sección anterior: se limpia la pantalla y se mueve el cursor al inicio.
mov ah, 0x06
mov al, 0
mov bh, [color_actual]
mov cx, 0x0000
mov dx, 0x184F
int 0x10
mov ah, 0x02
mov bh, 0x00
mov dh, 0x00
mov dl, 0x00
int 0x10
ret
Sección: Manejar sintaxis incorrecta
mov si, color_error
call imprimir_cadena
- Muestra un mensaje de error almacenado en
color_error
si el comando no está bien escrito o el color no es válido.
ret
- Finaliza la rutina de error.
Notas adicionales
color_actual
almacena el atributo de color que se usará en futuras impresiones.- El modo texto de la BIOS utiliza un esquema de atributos de 8 bits para definir colores.
- Puedes extender el comando
color
añadiendo más opciones comored
,blue
, etc., asociando su código hexadecimal correspondiente.