]> git.sesse.net Git - pistorm/blobdiff - gpio/gpio.h
Some more cleanup, improve IRQ checking a little
[pistorm] / gpio / gpio.h
index 398aafde0ad09d10ea8afc1ebaf548e9abf6cfd1..8110083dcb3d73eceedd42251f7d1a48d0d204f3 100644 (file)
 #define GPIO_PULL *(gpio + 37)      // Pull up/pull down
 #define GPIO_PULLCLK0 *(gpio + 38)  // Pull up/pull down clock
 
+#define GPIO_HANDLE_IRQ \
+  if (GET_GPIO(1) == 0) { \
+    srdata = read_reg(); \
+    m68k_set_irq((srdata >> 13) & 0xff); \
+  } else { \
+    if ((gayle_int & 0x80) && get_ide(0)->drive->intrq) { \
+      write16(0xdff09c, 0x8008); \
+      m68k_set_irq(2); \
+    } \
+    else \
+        m68k_set_irq(0); \
+  }; \
+
+extern uint8_t gayle_int;
+
 void setup_io();
 void gpio_enable_200mhz();
 void gpio_handle_irq();