Fix for r.4588

git-svn-id: svn://kolibrios.org@4612 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
Marat Zakiyanov (Mario79) 2014-03-05 15:31:09 +00:00
parent feb4d70501
commit f6f7a854c7
3 changed files with 12 additions and 3 deletions

View File

@ -151,7 +151,8 @@
Возвращаемое значение: Возвращаемое значение:
* если буфер пуст, возвращается eax=1 * если буфер пуст, возвращается eax=1
* если буфер непуст, то возвращается al=0, ah=код нажатой клавиши, * если буфер непуст, то возвращается al=0, ah=код нажатой клавиши,
биты 16-23 содержат сканкод нажатой клавиши, биты 16-23 содержат сканкод нажатой клавиши в режиме ASCII,
в режме сканкодов биты обнулены.
биты 23-31 обнулены биты 23-31 обнулены
* если есть "горячая клавиша", то возвращается * если есть "горячая клавиша", то возвращается
al=2, ah=сканкод нажатой клавиши (0 для управляющих клавиш), al=2, ah=сканкод нажатой клавиши (0 для управляющих клавиш),

View File

@ -149,7 +149,8 @@ Returned value:
* if the buffer is empty, function returns eax=1 * if the buffer is empty, function returns eax=1
* if the buffer is not empty, function returns al=0, * if the buffer is not empty, function returns al=0,
ah=code of the pressed key, ah=code of the pressed key,
bits 16-23 = contain scancode for pressed key, bits 16-23 = contain scancode for pressed key in ASCII mode,
in the scancodes mode this bits cleared.
bits 23-31 = zero bits 23-31 = zero
* if there is "hotkey", function returns al=2, * if there is "hotkey", function returns al=2,
ah=scancode of the pressed key (0 for control keys), ah=scancode of the pressed key (0 for control keys),

View File

@ -492,7 +492,14 @@ send_scancode:
mov [KEY_COUNT+eax], bl ; actually KEY_BUFF + EAX - 1 mov [KEY_COUNT+eax], bl ; actually KEY_BUFF + EAX - 1
; store original scancode ; store original scancode
add eax, 120+2 add eax, 120+2
push ecx
cmp [keyboard_mode], 0; return from keymap
je @f
xor ch, ch
@@:
mov [KEY_COUNT+eax], ch ; actually KEY_BUFF + EAX - 1 mov [KEY_COUNT+eax], ch ; actually KEY_BUFF + EAX - 1
pop ecx
sub eax, 120+2 sub eax, 120+2
.exit.irq1: .exit.irq1:
ret ret