PMode Interrupts/Coprocessor INT

Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
Post Reply
bchadwick01

PMode Interrupts/Coprocessor INT

Post by bchadwick01 »

 I have a two piece kernel, Assembly/C, that jmps to Pmode and sets up the IDT. The hardware IRQs get reassigned to INTs 0x20..0x2F, but when they are enabled, only IRQ 13  (coprocessor) shows up.  I made each IRQ print out a letter 0..F, and all I get are Ds, and lots of them. I'm thinking that this could be the clock, because it's so frequent, but I've checked my new vector assignments and they look good.
 Sadly no other IRQs are able to register, and masking all/none is unsuccessfull.
 If anyone has any ideas it would be great  :)
thanks
BC
Kernel Panic

Re: PMode Interrupts/Coprocessor INT

Post by Kernel Panic »

Are you sure you tell PIC to enable all the IRQs? Write a zero (byte) to ports 0x20 and 0xA0, so that all the IRQs are enabled.
It's strange, though, that the coprocessor issues interrupts so frequently.. Are you sure it really isn't the clock? :)
K.J.

Re: PMode Interrupts/Coprocessor INT

Post by K.J. »

Check out Chris Giese's OSD kernels:
http://www.execpc.com/~geezer/osd/code/osd.zip

K.J.
Bchadwick

Re: PMode Interrupts/Coprocessor INT

Post by Bchadwick »

Well, Thanks for your replies... it seems it was the clock after all, a mistake with allocating the Intel reserved Exceptions, put my IRQs directly after the Machine check Exception, which is 0xD (13) descriptors from the start of the IRQs in the table.  So the clock was being called to vector 0, when that was really vector 13. Thanks guys.

BC
Post Reply