X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?p=ld45_start_nothing;a=blobdiff_plain;f=src%2Fkeyb.asm;h=b953474240785f3840f0b86f45f084c5cc719454;hp=c41a2b6316a44afa59ebc798725d8fd7e7d59806;hb=033d820931e5930051b9df6a0c4a8183aa9299ee;hpb=371bbe72cccdd5c40d5118bd0417fab062f3699a diff --git a/src/keyb.asm b/src/keyb.asm index c41a2b6..b953474 100644 --- a/src/keyb.asm +++ b/src/keyb.asm @@ -38,17 +38,14 @@ kbintr: ; keystate[keycode] address in ebx xor ebx, ebx mov bl, al + and bl, 07fh add ebx, keystate - ; determine if it's a press or release - test al, 80h - jz .press - ; key release - mov byte [ebx], 0 - jmp .eoi -.press: ; key press - mov byte [ebx], 1 - + ; determine if it's a press or release (high bit set on release) + rol al, 1 + and al, 1 + xor al, 1 + mov byte [ebx], al .eoi: cli end_of_irq KB_IRQ