IDT seems to setup ok. The prob is when i try to asm("sti"); it to re-init interrupts. i get a triple fault! sigh :/ can't figure it out. also, if u mask all ints does that make them unusable? any good tuts on IDT beside intel docs? do i just disable interrupt by XORing present bit? thanks in advance
Regards,
Mr. Xsism
IDT setup OK but "sti" woes!!
Someone please help
i really need help with this. Are there any suggestions for what else might be causing the problem? please, this is a big hurdle in os dev. i need help!
THANX
Mr. Xsism
THANX
Mr. Xsism
RE:IDT setup OK but
did you put at least 32 ring 0 32-bit interrupt gates into the IDT? (access byte = 8Eh)
route all interrupts to the same function, at first. you won't be able to tell the interrupts apart, but the first thing you want to do is to see if they work at all
do you have the correct IDT limit and (linear!) address in the pseudo-descriptor loaded by the LIDT instruction? (if you got LGDT to work properly, do the same thing for LIDT)
instead of testing your interrupt code by turning on hardware interrupts (sti), use a software interrupt instruction, e.g. asm("int $0x0F"); then you don't have to worry about the 8259 chips, or the other hardware stuff just yet
if all else fails, use Bochs with the built-in debugger to step through your code
route all interrupts to the same function, at first. you won't be able to tell the interrupts apart, but the first thing you want to do is to see if they work at all
do you have the correct IDT limit and (linear!) address in the pseudo-descriptor loaded by the LIDT instruction? (if you got LGDT to work properly, do the same thing for LIDT)
instead of testing your interrupt code by turning on hardware interrupts (sti), use a software interrupt instruction, e.g. asm("int $0x0F"); then you don't have to worry about the 8259 chips, or the other hardware stuff just yet
if all else fails, use Bochs with the built-in debugger to step through your code