I have (again) a problem with my operating-system.
I wanted to implement IRQs so I wrote a code which sets up the idt and adds ISRS.
The software interrupts work, but the hardware don't.
For exemple, If my code is "int 0x42" it will display "Interrupt 0x42", but if I get an exception from the keyboard, I'll only have messages in bochs such as :
http://www.reactos.org/bugzilla/show_bug.cgi?id=111100651280000i[KBD ] internal keyboard buffer full, ignoring scancode.(a7)
http://f.osdev.org/viewtopic.php?f=2&t= ... b&start=15
After reading that, I tested with qemu and ... it still doesn't work so I can't accuse bochs
The gate descriptor is correctly loaded :
And if I put some breakpoints, I can see that actually, the OS enters the code of interrupt 0x42 but never the code wich belongs to the keyboard interrupt.<bochs:9> info idt 33
Interrupt Descriptor Table (base=0x00101720, limit=7968):
IDT[0x21]=32-Bit Interrupt Gate target=0x0008:0x00100326, DPL=0
The file dealing with idt :
http://x86.pastebin.com/MU81AeH7
The file dealing with 8259A :
http://x86.pastebin.com/uP6kEFCq
The kernel :
http://x86.pastebin.com/PHts9yss
Could you please help me?
thank you