* grub-core/kern/i386/pc/startup.S (grub_console_getkey): Fix incorrect
handling of special keys.
This commit is contained in:
parent
c7980ad945
commit
74baff844e
2 changed files with 13 additions and 5 deletions
|
@ -1,3 +1,8 @@
|
||||||
|
2010-10-09 Vladimir Serbinenko <phcoder@gmail.com>
|
||||||
|
|
||||||
|
* grub-core/kern/i386/pc/startup.S (grub_console_getkey): Fix incorrect
|
||||||
|
handling of special keys.
|
||||||
|
|
||||||
2010-10-02 Aleš Nesrsta <starous@volny.cz>
|
2010-10-02 Aleš Nesrsta <starous@volny.cz>
|
||||||
|
|
||||||
* include/grub/scsi.h (grub_make_scsi_id): Fix incorrect usgae of
|
* include/grub/scsi.h (grub_make_scsi_id): Fix incorrect usgae of
|
||||||
|
|
|
@ -615,6 +615,7 @@ LOCAL(bypass_table_end):
|
||||||
|
|
||||||
FUNCTION(grub_console_getkey)
|
FUNCTION(grub_console_getkey)
|
||||||
pushl %ebp
|
pushl %ebp
|
||||||
|
pushl %edi
|
||||||
|
|
||||||
call prot_to_real
|
call prot_to_real
|
||||||
.code16
|
.code16
|
||||||
|
@ -644,15 +645,16 @@ FUNCTION(grub_console_getkey)
|
||||||
jz 1f
|
jz 1f
|
||||||
|
|
||||||
andl %edx, %eax
|
andl %edx, %eax
|
||||||
cmp %eax, 0x20
|
cmpl $0x20, %eax
|
||||||
ja 2f
|
ja 2f
|
||||||
movl %edx, %eax
|
movl %edx, %eax
|
||||||
leal LOCAL(bypass_table), %esi
|
leal LOCAL(bypass_table), %edi
|
||||||
movl $((LOCAL(bypass_table_end) - LOCAL(bypass_table)) / 2), %ecx
|
movl $((LOCAL(bypass_table_end) - LOCAL(bypass_table)) / 2), %ecx
|
||||||
repne cmpsw
|
repne scasw
|
||||||
jz 3f
|
jz 3f
|
||||||
|
|
||||||
addl $('a' - 1 | GRUB_TERM_CTRL), %eax
|
andl $0xff, %eax
|
||||||
|
addl $(('a' - 1) | GRUB_TERM_CTRL), %eax
|
||||||
jmp 2f
|
jmp 2f
|
||||||
3:
|
3:
|
||||||
andl $0xff, %eax
|
andl $0xff, %eax
|
||||||
|
@ -662,6 +664,7 @@ FUNCTION(grub_console_getkey)
|
||||||
shrl $8, %eax
|
shrl $8, %eax
|
||||||
orl $GRUB_TERM_EXTENDED, %eax
|
orl $GRUB_TERM_EXTENDED, %eax
|
||||||
2:
|
2:
|
||||||
|
popl %edi
|
||||||
popl %ebp
|
popl %ebp
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue