I am writing a small 16-bit OS and I am wondering why input_msg doesn't print the expected output. I am using the BIOS teletype print interrupt and also getting user input and stosb
-ing it in input_msg. At least that's the intent.
kernel:
bits 16
org 0x9000
entry:
cld
call clear_screen_widetext
mov si, loaded_kernel
call print_str
jmp handle_enter
hang:
mov ah, 0x10
int 0x16
mov [input_char], al
mov di, input_msg
stosb
mov si, input_char
call print_str
mov al, [input_char]
cmp al, 13
je handle_enter
jmp hang
print_str:
lodsb
mov ah, 0x0E
cmp al, 0
je done
int 0x10
jmp print_str
clear_screen_widetext:
mov ah, 0x0700
int 0x10
ret
handle_enter:
mov si, enter_handle_data
call print_str
mov si, input_msg
mov si, cli_default_text
call print_str
jmp hang
done:
ret
data:
loaded_kernel db 'Loaded Kernel Successfully', 13, 10, 0
input_char db 0, 0
input_msg db 0, 0, 0, 0
enter_handle_data db 10, 0
cli_default_text db '>>>', 0
Any help is appreciated