Skip to main content

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.

establecercolor resetcolor sintaxiscolor


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. Con al = 0, se borra toda la pantalla, utilizando el color almacenado en color_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 como red, blue, etc., asociando su código hexadecimal correspondiente.