summaryrefslogtreecommitdiff
path: root/asm/int_kb_handler.asm
diff options
context:
space:
mode:
Diffstat (limited to 'asm/int_kb_handler.asm')
-rw-r--r--asm/int_kb_handler.asm28
1 files changed, 28 insertions, 0 deletions
diff --git a/asm/int_kb_handler.asm b/asm/int_kb_handler.asm
new file mode 100644
index 0000000..f2e33bf
--- /dev/null
+++ b/asm/int_kb_handler.asm
@@ -0,0 +1,28 @@
+global int_kb_handler
+[extern keyboard_handle]
+[extern int_default]
+
+[bits 32]
+
+int_kb_handler:
+cli
+
+pusha
+
+ mov eax,0x0
+ in al,0x60
+
+ push eax
+ call keyboard_handle
+
+ pop eax
+; call int_default
+
+ mov al, 0x20 ;Port number AND command number to Acknowledge IRQ
+ out 0x20, al ;Acknowledge IRQ, so we keep getting interrupts
+
+popa
+
+sti
+
+iretd ;Interrupt-Return