/kernel/trunk/docs/sysfuncr.txt |
---|
151,7 → 151,8 |
Возвращаемое значение: |
* если буфер пуст, возвращается eax=1 |
* если буфер непуст, то возвращается al=0, ah=код нажатой клавиши, |
биты 16-23 содержат сканкод нажатой клавиши, |
биты 16-23 содержат сканкод нажатой клавиши в режиме ASCII, |
в режме сканкодов биты обнулены. |
биты 23-31 обнулены |
* если есть "горячая клавиша", то возвращается |
al=2, ah=сканкод нажатой клавиши (0 для управляющих клавиш), |
/kernel/trunk/docs/sysfuncs.txt |
---|
149,7 → 149,8 |
* if the buffer is empty, function returns eax=1 |
* if the buffer is not empty, function returns al=0, |
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 |
* if there is "hotkey", function returns al=2, |
ah=scancode of the pressed key (0 for control keys), |
/kernel/trunk/hid/keyboard.inc |
---|
492,7 → 492,14 |
mov [KEY_COUNT+eax], bl ; actually KEY_BUFF + EAX - 1 |
; store original scancode |
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 |
pop ecx |
sub eax, 120+2 |
.exit.irq1: |
ret |