Clear
Este es el código del comando clear
en DariOS. Se encarga de limpiar toda la pantalla y resetear el cursor y el buffer de entrada.
Propósito
Borrar todo el contenido visible de la pantalla y colocar el cursor en la esquina superior izquierda, además de reiniciar el índice del buffer del shell.
Lógica paso a paso
mov ah, 0x06
- Define la función de scroll hacia arriba de la BIOS (
0x06
).
mov al, 0
0
indica que se deben limpiar todas las líneas de la ventana de texto.
mov bh, [color_actual]
- Usa el color actual para rellenar el área borrada.
mov cx, 0x0000
- Coordenada de inicio del área a borrar: fila 0, columna 0.
mov dx, 0x184F
- Coordenada final del área a borrar: fila 24, columna 79 (esquina inferior derecha).
int 0x10
- Llama a la interrupción de video para realizar el scroll (limpieza).
Mover el cursor al inicio
mov ah, 0x02
mov bh, 0x00
mov dh, 0x00
mov dl, 0x00
int 0x10
- Utiliza la función de BIOS
0x02
para colocar el cursor en la fila 0, columna 0.
Limpiar el buffer
xor bx, bx
- Reinicia el índice del buffer de entrada (
bx = 0
).
mov si, 0
call limpiar_buffer
- Llama a la función
limpiar_buffer
para borrar los caracteres del buffer.
Finalizar
jmp inicio
- Regresa al punto de entrada principal del shell.