--- np2/io/pic.c 2003/10/21 11:22:05 1.2 +++ np2/io/pic.c 2003/11/28 08:01:33 1.5 @@ -171,6 +171,7 @@ void pic_irq(void) { nevent_reset(NEVENT_PICMASK); } i286_interrupt((BYTE)((p->pi[0].icw[1] & 0xf8) | irq)); +// TRACEOUT(("hardware-int %.2x", (p->pi[0].icw[1] & 0xf8) | irq)); return; } if ((!p->pi[0].levels) || @@ -211,7 +212,7 @@ void pic_irq(void) { p->pi[0].irr &= ~(1 << sirq); p->pi[0].level[p->pi[0].levels++] = sirq; } -// TRACEOUT(("hardware int %.2x", (p->pi[1].icw[1] & 0xf8) | irq)); +// TRACEOUT(("hardware-int %.2x", (p->pi[1].icw[1] & 0xf8) | irq)); i286_interrupt((BYTE)((p->pi[1].icw[1] & 0xf8) | irq)); } } @@ -243,8 +244,8 @@ void pic_setirq(BYTE irq) { if (bit & PIC_SYSTEMTIMER) { if ((pit.mode[0] & 0x0c) == 0x04) { SINT32 cnt; // ver0.29 - if (pit.value[0].w > 8) { - cnt = pc.multiple * pit.value[0].w; + if (pit.value[0] > 8) { + cnt = pc.multiple * pit.value[0]; cnt >>= 2; } else { @@ -291,6 +292,7 @@ static void IOOUTCALL pic_o00(UINT port, PICITEM picp; BYTE level; +// TRACEOUT(("pic %x %x", port, dat)); picp = &pic.pi[(port >> 3) & 1]; picp->writeicw = 0; switch(dat & 0x18) { @@ -340,6 +342,7 @@ static void IOOUTCALL pic_o02(UINT port, PICITEM picp; +// TRACEOUT(("pic %x %x", port, dat)); picp = &pic.pi[(port >> 3) & 1]; if (!picp->writeicw) { picp->imr = dat;