void ncr9x_rethink(void) { for (int i = 0; ncrs[i]; i++) { if (ncrs[i]->boardirq) INTREQ_0(0x8000 | 0x0008); } }
static void ICRB(uae_u32 data) { if (ciabimask & ciabicr) { ciabicr |= 0x80; INTREQ_0 (0x8000 | data); } ciabicr_reg |= ciabicr; }
static void RethinkICRA (void) { if (ciaaimask & ciaaicr) { ciaaicr |= 0x80; INTREQ_0 (0x8000 | 0x0008); } else { ciaaicr &= 0x7F; } }
static void RethinkICRB (void) { if (ciabimask & ciabicr) { ciabicr |= 0x80; INTREQ_0 (0x8000 | 0x2000); } else { ciabicr &= 0x7F; } }
static void RethinkICRA (void) { if (ciaaimask & ciaaicr) { ciaaicr |= 0x80; INTREQ_0 (0x8000 | 0x0008); } else { ciaaicr &= 0x7F; /* custom_bank.wput(0xDFF09C,0x0008);*/ } }
void rethink_gayle (void) { int lev2 = 0; int lev6 = 0; uae_u8 mask; if (currprefs.cs_ide == IDE_A4000) { gayle_irq |= checkgayleideirq (); if ((gayle_irq & GAYLE_IRQ_IDE) && !(intreq & 0x0008)) INTREQ_0 (0x8000 | 0x0008); return; } if (currprefs.cs_ide != IDE_A600A1200 && !currprefs.cs_pcmcia) return; gayle_irq |= checkgayleideirq(); gayle_irq |= checkpcmciaideirq(); gayle_irq |= checkpcmciane2000irq(); mask = gayle_int & gayle_irq; if (mask & (GAYLE_IRQ_IDE | GAYLE_IRQ_WR)) lev2 = 1; if (mask & GAYLE_IRQ_CCDET) lev6 = 1; if (mask & (GAYLE_IRQ_BVD1 | GAYLE_IRQ_BVD2)) { if (gayle_int & GAYLE_INT_BVD_LEV) lev6 = 1; else lev2 = 1; } if (mask & GAYLE_IRQ_BSY) { if (gayle_int & GAYLE_INT_BSY_LEV) lev6 = 1; else lev2 = 1; } if (lev2 && !(intreq & 0x0008)) INTREQ_0 (0x8000 | 0x0008); if (lev6 && !(intreq & 0x2000)) INTREQ_0 (0x8000 | 0x2000); }
STATIC_INLINE void setirq (int nr) { INTREQ_0 (0x8000 | (0x80 << nr)); }
void rethink_cdtvcr(void) { if ((cdtvcr_4510_ram[CDTVCR_INTREQ] & cdtvcr_4510_ram[CDTVCR_INTENA]) && !cdtvcr_4510_ram[CDTVCR_INTDISABLE]) INTREQ_0 (0x8000 | 0x0008); }
// serial_win32 void serial_check_irq (void) { if (data_in_serdatr) INTREQ_0 (0x8000 | 0x0800); }