forked from KolibriOS/kolibrios
console: added support for escape sequences <esc>[?25l and <esc>[?25h (hide and show cursor)
git-svn-id: svn://kolibrios.org@3886 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
5b768d8b9a
commit
aba5058a6b
@ -788,6 +788,8 @@ con.write_special_char:
|
|||||||
jmp con.write_char
|
jmp con.write_char
|
||||||
.esc_sci:
|
.esc_sci:
|
||||||
; this is real Esc sequence
|
; this is real Esc sequence
|
||||||
|
cmp al, '?' ; DEC private mode (DECSET/DECRST sequences)
|
||||||
|
je .questionmark
|
||||||
cmp al, ';'
|
cmp al, ';'
|
||||||
jz .next_arg
|
jz .next_arg
|
||||||
cmp al, '0'
|
cmp al, '0'
|
||||||
@ -804,6 +806,11 @@ con.write_special_char:
|
|||||||
mov [con_esc_attrs+(ecx-1)*4], edx
|
mov [con_esc_attrs+(ecx-1)*4], edx
|
||||||
pop edx ecx eax
|
pop edx ecx eax
|
||||||
ret
|
ret
|
||||||
|
.questionmark:
|
||||||
|
push ecx
|
||||||
|
mov ecx, [con_esc_attr_n]
|
||||||
|
mov dword[con_esc_attrs+(ecx-1)*4], 0xffffffff
|
||||||
|
pop ecx
|
||||||
.next_arg:
|
.next_arg:
|
||||||
push eax
|
push eax
|
||||||
mov eax, [con_esc_attr_n]
|
mov eax, [con_esc_attr_n]
|
||||||
@ -835,7 +842,38 @@ con.write_special_char:
|
|||||||
jz .cursor_right
|
jz .cursor_right
|
||||||
cmp al, 'D'
|
cmp al, 'D'
|
||||||
jz .cursor_left
|
jz .cursor_left
|
||||||
|
cmp al, 'l'
|
||||||
|
je .dec_rst
|
||||||
|
cmp al, 'h'
|
||||||
|
je .dec_set
|
||||||
ret ; simply skip unknown sequences
|
ret ; simply skip unknown sequences
|
||||||
|
|
||||||
|
.dec_rst:
|
||||||
|
mov eax, [con_esc_attrs]
|
||||||
|
cmp eax, 0xffffffff
|
||||||
|
jne .no_dec_rst
|
||||||
|
mov eax, [con_esc_attrs+4]
|
||||||
|
cmp eax, 25
|
||||||
|
je .hide_cursor
|
||||||
|
.no_dec_rst:
|
||||||
|
ret
|
||||||
|
.hide_cursor:
|
||||||
|
mov [con.cursor_height], 0
|
||||||
|
ret
|
||||||
|
|
||||||
|
.dec_set:
|
||||||
|
mov eax, [con_esc_attrs]
|
||||||
|
cmp eax, 0xffffffff
|
||||||
|
jne .no_dec_set
|
||||||
|
mov eax, [con_esc_attrs+4]
|
||||||
|
cmp eax, 25
|
||||||
|
je .show_cursor
|
||||||
|
.no_dec_set:
|
||||||
|
ret
|
||||||
|
|
||||||
|
.show_cursor:
|
||||||
|
mov [con.cursor_height], (15*font_height+50)/100 ; default height
|
||||||
|
ret
|
||||||
.clear:
|
.clear:
|
||||||
mov eax, [con_esc_attrs]
|
mov eax, [con_esc_attrs]
|
||||||
test eax, eax
|
test eax, eax
|
||||||
|
Loading…
Reference in New Issue
Block a user