--- np2/io/pic.c 2003/12/08 00:55:32 1.8 +++ np2/io/pic.c 2004/01/22 01:10:04 1.11 @@ -63,6 +63,7 @@ void extirq_pop(void) { *(UINT32 *)(p->pi[1].level+0) = *(UINT32 *)(p->pi[1].levelbak+0); *(UINT32 *)(p->pi[1].level+4) = *(UINT32 *)(p->pi[1].levelbak+4); p->pi[1].isr = p->pi[1].isrbak; +// TRACEOUT(("iret: extirq_pop")); } } @@ -245,11 +246,11 @@ void pic_setirq(REG8 irq) { if ((pit.mode[0] & 0x0c) == 0x04) { SINT32 cnt; // ver0.29 if (pit.value[0] > 8) { - cnt = pc.multiple * pit.value[0]; + cnt = pccore.multiple * pit.value[0]; cnt >>= 2; } else { - cnt = pc.multiple << (16 - 2); + cnt = pccore.multiple << (16 - 2); } nevent_set(NEVENT_PICMASK, cnt, picmask, NEVENT_ABSOLUTE); } @@ -413,6 +414,7 @@ void pic_reset(void) { pic.pi[0] = def_master; pic.pi[1] = def_slave; + pic.ext_irq = 0; } void pic_bind(void) {