os_start_cli: pusha call os_print_newline mov si, prompt call os_print_string mov ax, 20 mov di, user_input call os_display_input ; ------------------------------------------------ os_read_cli: pusha mov si, user_input call os_upper_case ; Make the input uppercase so it's case insensitive .output_the_user_input: call os_print_newline .check_matches: ; Check if the user input matches any internal commands ; Help mov si, user_input mov di, help_string call os_compare_strings cmp cl, 1 je help ; Clear screen mov si, user_input mov di, clear_string call os_compare_strings cmp cl, 1 je clear ; Reboot mov si, user_input mov di, reboot_string call os_compare_strings cmp cl, 1 je power_reboot ; Pong mov si, user_input mov di, pong_string call os_compare_strings cmp cl, 1 je pong jmp .unkown .unkown: mov si, unknown_command call os_print_string mov si, user_input call os_print_string jmp .finish .finish: popa call os_start_cli clear: call os_set_text_mode call os_read_cli.finish help: mov si, help_text call os_print_string call os_read_cli.finish pong: call game_pong call os_read_cli.finish section .data welcome_text db 'Welcome to CrawOS, the Cwick, Real and AWsome Operating System\n', 0 user_input times 20 db 0 prompt_length db 20 prompt db 'CrawOS sh> ', 0 help_string db 'HELP', 0 clear_string db 'CLEAR', 0 reboot_string db 'REBOOT', 0 cat_string db 'CAT', 0 pong_string db 'PONG', 0 help_text db 'This is for Cowards:\n"HELP" for this helpful text,\n"CLEAR" to clear the screen,\n"REBOOT" or esc to reboot\n', 0 command_result_text db 'You typed: ', 0 unknown_command db 'Error: Unkown Command.. \n', 0