--- np2/io/pic.c 2003/11/30 11:20:55 1.6 +++ np2/io/pic.c 2003/11/30 12:32:04 1.7 @@ -112,7 +112,7 @@ void pic_irq(void) { int i; BYTE bit; - char pry; + SINT8 pry; BYTE irq; BYTE sirq; BYTE targetbit; @@ -130,14 +130,14 @@ void pic_irq(void) { pry = -1; } else { - pry = (char)p->pi[0].pry[p->pi[0].level[p->pi[0].levels - 1]]; + pry = (SINT8)p->pi[0].pry[p->pi[0].level[p->pi[0].levels - 1]]; } irq = 0xff; targetbit = 0; for (bit=1, i=0; bit; bit<<=1, i++) { if ((p->pi[0].irr & bit) && (!((p->pi[0].imr | p->pi[0].isr) & bit))) { - if ((char)p->pi[0].pry[i] > pry) { + if ((SINT8)p->pi[0].pry[i] > pry) { pry = p->pi[0].pry[i]; irq = (BYTE)i; targetbit = bit; @@ -152,7 +152,7 @@ void pic_irq(void) { sirq = p->pi[1].icw[2] & 7; bit = 1 << sirq; if (!((p->pi[0].imr | p->pi[0].isr) & bit)) { - if ((char)p->pi[0].pry[sirq] > pry) { + if ((SINT8)p->pi[0].pry[sirq] > pry) { irq = sirq; targetbit = bit; } @@ -184,13 +184,13 @@ void pic_irq(void) { pry = -1; } else { - pry = (char)p->pi[1].pry[p->pi[1].level[p->pi[1].levels - 1]]; + pry = (SINT8)p->pi[1].pry[p->pi[1].level[p->pi[1].levels - 1]]; } targetbit = 0; for (bit=1, i=0; bit; bit<<=1, i++) { if ((p->pi[1].irr & bit) && (!((p->pi[1].imr | p->pi[1].isr) & bit))) { - if ((char)p->pi[1].pry[i] > pry) { + if ((SINT8)p->pi[1].pry[i] > pry) { pry = p->pi[1].pry[i]; irq = (BYTE)i; targetbit = bit;