shell: Redraw the line when needed
This commit is contained in:
parent
7f6eeb10c7
commit
c321e54cfb
|
@ -1,6 +1,7 @@
|
||||||
; shell routines
|
; shell routines
|
||||||
|
|
||||||
const CURSOR: 0x8A
|
const CURSOR: 0x8A
|
||||||
|
const REDRAW_LINE: 0xFE
|
||||||
|
|
||||||
; create a new shell task
|
; create a new shell task
|
||||||
; inputs:
|
; inputs:
|
||||||
|
@ -120,9 +121,16 @@ shell_task_parse_key:
|
||||||
call print_character_to_terminal
|
call print_character_to_terminal
|
||||||
call shell_push_character
|
call shell_push_character
|
||||||
|
|
||||||
; finally, print the cursor
|
; then, print the cursor
|
||||||
mov r0, CURSOR
|
mov r0, CURSOR
|
||||||
call print_character_to_terminal
|
call print_character_to_terminal
|
||||||
|
|
||||||
|
; finally, redraw the line
|
||||||
|
; print character 3 times in order to execute the control character once (see terminal's text.asm for details)
|
||||||
|
mov r0, REDRAW_LINE
|
||||||
|
call print_character_to_terminal
|
||||||
|
call print_character_to_terminal
|
||||||
|
call print_character_to_terminal
|
||||||
ret
|
ret
|
||||||
shell_key_down_enter:
|
shell_key_down_enter:
|
||||||
; clear the cursor from the screen
|
; clear the cursor from the screen
|
||||||
|
@ -160,6 +168,10 @@ shell_key_down_backspace:
|
||||||
mov r0, CURSOR ; cursor
|
mov r0, CURSOR ; cursor
|
||||||
call print_character_to_terminal
|
call print_character_to_terminal
|
||||||
call shell_delete_character
|
call shell_delete_character
|
||||||
|
mov r0, REDRAW_LINE
|
||||||
|
call print_character_to_terminal
|
||||||
|
call print_character_to_terminal
|
||||||
|
call print_character_to_terminal
|
||||||
ret
|
ret
|
||||||
|
|
||||||
shell_print_prompt:
|
shell_print_prompt:
|
||||||
|
@ -168,6 +180,10 @@ shell_print_prompt:
|
||||||
call print_character_to_terminal
|
call print_character_to_terminal
|
||||||
mov r0, shell_prompt
|
mov r0, shell_prompt
|
||||||
call print_str_to_terminal
|
call print_str_to_terminal
|
||||||
|
mov r0, REDRAW_LINE
|
||||||
|
call print_character_to_terminal
|
||||||
|
call print_character_to_terminal
|
||||||
|
call print_character_to_terminal
|
||||||
ret
|
ret
|
||||||
|
|
||||||
shell_parse_line:
|
shell_parse_line:
|
||||||
|
|
Loading…
Reference in New Issue
Block a user