Skip to main content

Leer comando

Este es el código de la función leer_comando de DariOS

leer_comando

Explicación de la función leer_comando

La función leer_comando se encarga de leer una tecla del teclado. Si es una tecla especial como Backspace (0x08) o Enter (0x0D), llama a la rutina correspondiente. Si no, guarda el carácter en el buffer del shell y lo imprime por pantalla.


Propósito

Leer la entrada del usuario en el shell carácter por carácter y actuar dependiendo de la tecla.


Lógica paso a paso

mov ah, 0
int 0x16
  • Espera a que el usuario presione una tecla y guarda el carácter leído en AL.
cmp al, 0x08
je borrar_caracter
  • Si el carácter es Backspace (0x08), salta a la subrutina borrar_caracter.
cmp al, 0x0D
je enter_shell
  • Si el carácter es Enter (0x0D), salta a la subrutina enter_shell para procesar el comando.
mov [buffer_shell + bx], al
inc bx
  • Guarda el carácter leído en el buffer del shell e incrementa el índice BX.
mov ah, 0x0E
int 0x10
  • Imprime el carácter en pantalla usando la interrupción del BIOS 0x10 (modo TTY).
ret
  • Retorna al programa llamador.

Requisitos

  • buffer_shell debe estar definido y tener espacio suficiente.
  • bx debe usarse como índice de posición dentro del buffer.
  • Las subrutinas borrar_caracter y enter_shell deben existir.