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