pc port works
[gbajam22] / src / pc / intr.c
diff --git a/src/pc/intr.c b/src/pc/intr.c
new file mode 100644 (file)
index 0000000..86b716a
--- /dev/null
@@ -0,0 +1,37 @@
+#include <string.h>
+#include "intr.h"
+
+static void (*intrfunc[14])(void);
+static unsigned int intrmask;
+
+#define IE     0x8000
+
+void intr_init(void)
+{
+       memset(intrfunc, 0, sizeof intrfunc);
+}
+
+void interrupt(int intr, void (*handler)(void))
+{
+       intrfunc[intr] = handler;
+}
+
+void intr_enable(void)
+{
+       intrmask |= IE;
+}
+
+void intr_disable(void)
+{
+       intrmask &= ~IE;
+}
+
+void mask(int intr)
+{
+       intrmask &= ~(1 << intr);
+}
+
+void unmask(int intr)
+{
+       intrmask |= 1 << intr;
+}