]> git.dujemihanovic.xyz Git - nameless-os.git/commitdiff
Fix keyboard interrupts
authorDuje Mihanović <duje.mihanovic@skole.hr>
Sat, 12 Mar 2022 12:28:35 +0000 (13:28 +0100)
committerDuje Mihanović <duje.mihanovic@skole.hr>
Sat, 12 Mar 2022 12:28:35 +0000 (13:28 +0100)
boot/x86/boot.s
kernel/arch/x86/irq/sample_handler.c

index 572ef74453e99d3efb870ac590d636ed038d7dfa..a7fe3c31ff1fb0f6cedf9a5fdd39f2718643dcac 100644 (file)
@@ -15,7 +15,7 @@ KERNEL_OFFSET equ 1000h ; where we will load our kernel
        jc reset_error ; halt if controller reset fails
 
        mov ah, 2 ; instruct BIOS's interrupt 13h to read sectors
-       mov al, 10 ; load 10 sectors, might be excessive (for now) but it's still good to do so
+       mov al, 30 ; load 30 sectors, might be excessive (for now) but it's still good to do so
        xor ch, ch ; read from 1st cylinder
        mov cl, 2 ; start reading from 2nd sector, right after the boot sector
        xor dh, dh ; read from 1st head
index c8bddfec63bf61b22ef239727e0d075accea5744..d9bd8f9c953a3e48a46b6695957e28d6650aed0d 100644 (file)
@@ -1,5 +1,6 @@
 #include <tty.h>
 #include <irq/i8259a.h>
+#include <io.h>
 #include <stdint.h>
 
 typedef uint32_t uword_t;
@@ -17,6 +18,7 @@ void keyb_handler(struct interrupt_frame *frame)
 {
        pic_send_eoi(1);
        kprint("Got a keyboard interrupt!\n", 0);
+       inb(0x60);
 }
 
 
@@ -26,5 +28,6 @@ void double_fault(struct abort_frame *frame)
        *(volatile char *) (0xb8000) = ":";
        *(volatile char *) (0xb8002) = "(";
        asm volatile ("cli; hlt");
+       while(1);
 }