7 static int interrupt_IF = 0xE0;
10 static int interrupt_IE = 0;
12 int interrupt_pending(
void)
14 return interrupt_IF & interrupt_IE & 0x1F;
17 void interrupt_flush(
void)
21 pending = interrupt_pending();
33 cpu_interrupt_begin();
36 pending = interrupt_pending();
38 if(pending & INTR_VBLANK)
40 interrupt_IF ^= INTR_VBLANK;
43 else if(pending & INTR_LCDSTAT)
45 interrupt_IF ^= INTR_LCDSTAT;
48 else if(pending & INTR_TIMER)
50 interrupt_IF ^= INTR_TIMER;
53 else if(pending & INTR_SERIAL)
55 interrupt_IF ^= INTR_SERIAL;
58 else if(pending & INTR_JOYPAD)
60 interrupt_IF ^= INTR_JOYPAD;
69 int interrupt_enabled(
void)
74 void interrupt_enable(
void)
79 void interrupt_disable(
void)
84 int interrupt_get_enabled(
void)
89 void interrupt(
unsigned int n)
94 unsigned char interrupt_get_IF(
void)
99 void interrupt_set_IF(
unsigned char mask)
101 interrupt_IF = 0xE0 | mask;
104 unsigned char interrupt_get_mask(
void)
109 void interrupt_set_mask(
unsigned char mask)