--- np2/io/pic.h 2003/10/16 17:57:56 1.1 +++ np2/io/pic.h 2004/03/19 00:30:01 1.6 @@ -1,29 +1,20 @@ typedef struct { - int levels; - BYTE level[8]; + UINT8 icw[4]; - int levelsbak; - BYTE levelbak[8]; - - BYTE pry[8]; - BYTE icw[4]; - - BYTE imr; // ocw1 - BYTE ocw3; - BYTE irr; - BYTE ext; - - BYTE isr; - BYTE isrbak; - BYTE writeicw; - BYTE padding; + UINT8 imr; // ocw1 + UINT8 isr; + UINT8 irr; + UINT8 ocw3; + + UINT8 pry; + UINT8 writeicw; + UINT8 padding[2]; } _PICITEM, *PICITEM; typedef struct { _PICITEM pi[2]; - BYTE ext_irq; } _PIC, *PIC; enum { @@ -54,18 +45,17 @@ enum { IRQ_INT6 = 0x0d }; +#define PICEXISTINTR ((pic.pi[0].irr & (~pic.pi[0].imr)) || \ + (pic.pi[1].irr & (~pic.pi[1].imr))) + #ifdef __cplusplus extern "C" { #endif -void extirq_push(void); -void extirq_pop(void); - void pic_irq(void); -void pic_setirq(BYTE irq); -void pic_resetirq(BYTE irq); -void pic_registext(BYTE irq); +void pic_setirq(REG8 irq); +void pic_resetirq(REG8 irq); void picmask(NEVENTITEM item);