| version 1.1, 2003/10/16 17:57:56 | version 1.4, 2003/11/12 20:02:54 | 
| Line 1 | Line 1 | 
 | #include        "compiler.h" | #include        "compiler.h" | 
 | #include        "i286.h" | #include        "i286.h" | 
 | #include        "memory.h" |  | 
 | #include        "pccore.h" | #include        "pccore.h" | 
 | #include        "iocore.h" | #include        "iocore.h" | 
 |  |  | 
| Line 133  void pic_irq(void) { | Line 132  void pic_irq(void) { | 
 | else { | else { | 
 | pry = (char)p->pi[0].pry[p->pi[0].level[p->pi[0].levels - 1]]; | pry = (char)p->pi[0].pry[p->pi[0].level[p->pi[0].levels - 1]]; | 
 | } | } | 
 |  | irq = 0xff; | 
 | targetbit = 0; | targetbit = 0; | 
 | for (bit=1, i=0; bit; bit<<=1, i++) { | for (bit=1, i=0; bit; bit<<=1, i++) { | 
 | if ((p->pi[0].irr & bit) && | if ((p->pi[0].irr & bit) && | 
| Line 243  void pic_setirq(BYTE irq) { | Line 243  void pic_setirq(BYTE irq) { | 
 | if (bit & PIC_SYSTEMTIMER) { | if (bit & PIC_SYSTEMTIMER) { | 
 | if ((pit.mode[0] & 0x0c) == 0x04) { | if ((pit.mode[0] & 0x0c) == 0x04) { | 
 | SINT32 cnt;                                                                             // ver0.29 | SINT32 cnt;                                                                             // ver0.29 | 
| if (pit.value[0].w > 8) { | if (pit.value[0] > 8) { | 
| cnt = pc.multiple * pit.value[0].w; | cnt = pc.multiple * pit.value[0]; | 
 | cnt >>= 2; | cnt >>= 2; | 
 | } | } | 
 | else { | else { | 
| Line 291  static void IOOUTCALL pic_o00(UINT port, | Line 291  static void IOOUTCALL pic_o00(UINT port, | 
 | PICITEM         picp; | PICITEM         picp; | 
 | BYTE            level; | BYTE            level; | 
 |  |  | 
 |  | //      TRACEOUT(("pic %x %x", port, dat)); | 
 | picp = &pic.pi[(port >> 3) & 1]; | picp = &pic.pi[(port >> 3) & 1]; | 
 | picp->writeicw = 0; | picp->writeicw = 0; | 
 | switch(dat & 0x18) { | switch(dat & 0x18) { | 
| Line 340  static void IOOUTCALL pic_o02(UINT port, | Line 341  static void IOOUTCALL pic_o02(UINT port, | 
 |  |  | 
 | PICITEM         picp; | PICITEM         picp; | 
 |  |  | 
 |  | //      TRACEOUT(("pic %x %x", port, dat)); | 
 | picp = &pic.pi[(port >> 3) & 1]; | picp = &pic.pi[(port >> 3) & 1]; | 
 | if (!picp->writeicw) { | if (!picp->writeicw) { | 
 | picp->imr = dat; | picp->imr = dat; |