2 blender for the Gameboy Advance
3 Copyright (C) 2021 John Tsiombikas <nuclear@member.fsf.org>
5 This program is free software: you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation, either version 3 of the License, or
8 (at your option) any later version.
10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details.
15 You should have received a copy of the GNU General Public License
16 along with this program. If not, see <https://www.gnu.org/licenses/>.
21 static void (*intr_table[MAX_INTR])(void);
23 __attribute__ ((target("arm")))
24 static void intr_handler(void)
30 iflags = REG_IF & 0x3fff;
33 for(i=0; i<MAX_INTR; i++) {
34 if((iflags & (1 << i)) && intr_table[i]) {
39 REG_IF = iflags; /* ack intr */
45 INTR_VECTOR = (uint32_t)intr_handler;
48 void interrupt(int intr, void (*handler)(void))
50 intr_table[intr] = handler;