summaryrefslogtreecommitdiff
path: root/src/idt/idt.asm
diff options
context:
space:
mode:
Diffstat (limited to 'src/idt/idt.asm')
-rw-r--r--src/idt/idt.asm24
1 files changed, 23 insertions, 1 deletions
diff --git a/src/idt/idt.asm b/src/idt/idt.asm
index 998a242..235f46b 100644
--- a/src/idt/idt.asm
+++ b/src/idt/idt.asm
@@ -1,6 +1,12 @@
section .asm
-global idt_load:
+extern int21h_handler
+extern default_int_handler
+
+global int21h
+global default_handler
+global idt_load
+
idt_load:
push ebp
@@ -11,3 +17,19 @@ idt_load:
pop ebp
ret
+
+int21h:
+ cli
+ pushad ; Push all general-purpose registers to the stack
+ call int21h_handler
+ popad
+ sti
+ iret
+
+default_handler:
+ cli
+ pushad ; Push all general-purpose registers to the stack
+ call default_int_handler
+ popad
+ sti
+ iret