Here is the code which remaps the pic :
Code: Select all
outb(0x20, 0x11); // ICW1
outb(0xA0, 0x11);
outb(0x21, pic_irq_first); // ICW2
outb(0xA1, pic_irq_first + 8);
outb(0x21, 0x4); // ICW3
outb(0xA1, 0x2);
outb(0x21, 0x1); // ICW4
outb(0xA1, 0x1);
outb(0x21, 0x0); // OCW1
outb(0xA1, 0x0);
Code: Select all
cpu_idt_modify(pic_irq_first + 1, keyboard_ps2_handle_int, 8, 0x8E00);
If I remove the "+1" I get this on the screen when I write "test" for example :
[tt]ttttttttttttttteeeeeeeeeeeeeeeesssssssssssssstttttttttt[/tt]
which is normal because instead of getting an IRQ every time a key is pressed or released (IRQ1), I get one every 1.42 ms or something like that (IRQ0)
This proves that the interruption flag is set and that the code to get the key is working
So my problem is that no IRQ1 is generated
What do you suggest ? :-\