/* This file specifies the interrupt vectors including SWI and reset * As is, most interrupts except reset jumps to 0xf000, which is most * likely not going to useful. To replace an entry, declare your function, * and then change the corresponding entry in the table. For example, * if you have a SCI handler, add a #pragma before the function, e.g., * #pragma interrupt_handler SCIHandler() * then in this file add: * extern void SCIHandler(); * before the table. * In the SCI entry, change: * DUMMY_ENTRY, * to * SCIHandler, */ extern void _start(); /* entry point in crt??.s */ extern void TOFhandler(); #define DUMMY_ENTRY (void (*)())0xF000 #ifdef _HC12 #pragma abs_address:0xffce #else /* HC11 */ #pragma abs_address:0xffd6 #endif /* change the above address if your vector starts elsewhere */ void (*interrupt_vectors[])() = { /* to cast a constant, say 0xb600, use (void (*)())0xb600 */ #ifdef _HC12 DUMMY_ENTRY, /* ffce 812 KeyWakeUpH */ DUMMY_ENTRY, /* ffd0 912 BDLC, 812 KeyWakeUpJ */ DUMMY_ENTRY, /* ffd2 ATD */ DUMMY_ENTRY, /* ffd4 812 SCI1 */ #endif DUMMY_ENTRY, /* ffd6 SCI, 812 SCI0 */ DUMMY_ENTRY, /* ffd8 SPI */ DUMMY_ENTRY, /* ffda PAIE */ DUMMY_ENTRY, /* ffdc PAO */ TOFhandler, /* ffde TOF */ DUMMY_ENTRY, /* ffe0 TOC5 */ /* HC12 TC7 */ DUMMY_ENTRY, /* ffe2 TOC4 */ /* TC6 */ DUMMY_ENTRY, /* ffe4 TOC3 */ /* TC5 */ DUMMY_ENTRY, /* ffe6 TOC2 */ /* TC4 */ DUMMY_ENTRY, /* ffe8 TOC1 */ /* TC3 */ DUMMY_ENTRY, /* ffea TIC3 */ /* TC2 */ DUMMY_ENTRY, /* ffec TIC2 */ /* TC1 */ DUMMY_ENTRY, /* ffee TIC1 */ /* TC0 */ DUMMY_ENTRY, /* fff0 RTI */ DUMMY_ENTRY, /* fff2 IRQ, 812 KeyWakeUpD*/ DUMMY_ENTRY, /* fff4 XIRQ */ DUMMY_ENTRY, /* fff6 SWI */ DUMMY_ENTRY, /* fff8 ILLOP */ DUMMY_ENTRY, /* fffa COP */ DUMMY_ENTRY, /* fffc CLM */ _start /* fffe RESET */ }; #pragma end_abs_address