ok key release works now
[ld45_start_nothing] / src / keyb.asm
index 0f1d498..d9fdd4e 100644 (file)
@@ -4,10 +4,7 @@
 
        global kb_init
 kb_init:
-       push kbintr
-       push dword IRQ_TO_INTR(KB_IRQ)
-       call set_intr
-       add esp, 8
+       set_irq_vector KB_IRQ, kbintr
 
        ; enable keyboard interrupt
        mov eax, KB_CMD_GET_CMDBYTE
@@ -25,6 +22,8 @@ kb_init:
        jz .skipread
        call read_data
 .skipread:
+
+       unmask_irq KB_IRQ
        ret
 
        ; keyboard interrupt handler
@@ -39,6 +38,7 @@ 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