|
|
| version 1.2, 2003/12/01 17:13:36 | version 1.6, 2004/03/19 00:30:01 |
|---|---|
| Line 1 | Line 1 |
| typedef struct { | typedef struct { |
| int levels; | UINT8 icw[4]; |
| BYTE level[8]; | |
| int levelsbak; | UINT8 imr; // ocw1 |
| BYTE levelbak[8]; | UINT8 isr; |
| UINT8 irr; | |
| BYTE pry[8]; | UINT8 ocw3; |
| BYTE icw[4]; | |
| UINT8 pry; | |
| BYTE imr; // ocw1 | UINT8 writeicw; |
| BYTE ocw3; | UINT8 padding[2]; |
| BYTE irr; | |
| BYTE ext; | |
| BYTE isr; | |
| BYTE isrbak; | |
| BYTE writeicw; | |
| BYTE padding; | |
| } _PICITEM, *PICITEM; | } _PICITEM, *PICITEM; |
| typedef struct { | typedef struct { |
| _PICITEM pi[2]; | _PICITEM pi[2]; |
| BYTE ext_irq; | |
| } _PIC, *PIC; | } _PIC, *PIC; |
| enum { | enum { |
| Line 54 enum { | Line 45 enum { |
| IRQ_INT6 = 0x0d | IRQ_INT6 = 0x0d |
| }; | }; |
| #define PICEXISTINTR (!pic.ext_irq) && \ | #define PICEXISTINTR ((pic.pi[0].irr & (~pic.pi[0].imr)) || \ |
| ((pic.pi[0].irr & (~pic.pi[0].imr)) || \ | |
| (pic.pi[1].irr & (~pic.pi[1].imr))) | (pic.pi[1].irr & (~pic.pi[1].imr))) |
| Line 63 enum { | Line 53 enum { |
| extern "C" { | extern "C" { |
| #endif | #endif |
| void extirq_push(void); | |
| void extirq_pop(void); | |
| void pic_irq(void); | void pic_irq(void); |
| void pic_setirq(BYTE irq); | void pic_setirq(REG8 irq); |
| void pic_resetirq(BYTE irq); | void pic_resetirq(REG8 irq); |
| void pic_registext(BYTE irq); | |
| void picmask(NEVENTITEM item); | void picmask(NEVENTITEM item); |