Re: Introducing my own interrupt in dosemu.

Stas Sergeev
2004-07-16T11:18:20Z

Hello.

Wartan Hachaturow wrote:
> Then, in signal handler:
> pic_sched(PIC_IRQ10, 1); /* That should schedule an irq 10 in
> * 1 "dosemu jiffie", right?
> */
> do_irq();
That's rather wrong. You took that from the
timer code, but that's really not the case
here. You should just use pic_request().

> Additionally, I initialize PIC to unmask the interrupt in init.c:
> pic_seti(PIC_IRQ10, my_interrupt, 0, NULL);
> pic_unmaski(PIC_IRQ10);
That's correct.

> But my_interrupt() (which should just do a warn()) doesn't get called
> either :(
Note that pic_unmaski() unmasks the IRQ only
internally, i.e. it makes it available for the
use of a DOS prog. You still have to unmask it
from within your DOS program yourself, when
setting up the handler. I guess this is what
you have not done.