735,21 → 735,6 |
; ============================================================================ ; |
|
; ============================================================================ ; |
; < eax = key scancode (1 byte) ; |
; ============================================================================ ; |
macro wait_for_scancode |
{ |
local .wait |
|
.wait: |
mcall 2 |
test al, al |
jnz .wait |
|
shr eax, 8 |
} |
|
; ============================================================================ ; |
; < eax = key scancode / 0 - no keys ; |
; ============================================================================ ; |
proc get_key |
765,10 → 750,8 |
|
cmp eax, 0E1h |
jne @f |
|
wait_for_scancode |
wait_for_scancode |
|
mcall 2 |
mcall 2 |
xor eax, eax |
jmp .exit |
|
778,9 → 761,8 |
|
cmp eax, 0E0h |
jne @f |
|
wait_for_scancode |
|
mcall 2 |
shr eax, 8 |
mov ecx, eax |
or eax, 0E000h |
mov ebx, 128 |
812,7 → 794,6 |
mov [PressedKeys + ebx * 4], edx |
|
.exit: |
;DEBUGF DEBUG_FINE, 'get_key: %x\n', eax:4 |
ret |
endp |
; ============================================================================ ; |