/* To use, either add this file to the project file list (preferred), or 
 * #include it in a single source file if you are just using 
 * File->CompileToOutput (this works but using the Project feature is better
 */

/* As is, all interrupts except reset jumps to 0xffff, which is most
 * likely not going to be 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 (which must be defined with 
 * #pragma interrupt_handler ...) then in this file:
 * add
 *	extern void SCIHandler();
 * before the table.
 * In the SCI entry, change:
 *	DUMMY_ENTRY,
 * to
 *  SCIHandler, 
 */
#if defined(_HC12)
/* add any interrupt vectors in here too for HC12 paged compilation
 */
#pragma nonpaged_function _start
#endif
extern void _start(void);	/* entry point in crt12.s */
extern void RTI_handler(void);


#define DUMMY_ENTRY	(void (*)(void))0xFFFF

#pragma abs_address:0xffd0

/* change the above address if your vector starts elsewhere
 */
void (*interrupt_vectors[])(void) = 
	{
	/* to cast a constant, say 0xb600, use
	   (void (*)())0xb600
	 */
	/* 812A4 vectors starts at 0xff80, but most entries are not used 
	   if you use Key Wakeup H, change the start address to 0xffCE and
	   add one entry to the beginning */
	DUMMY_ENTRY,	/* BDLC */			/* Key Wakeup J */
	DUMMY_ENTRY,	/* ATD */			/* ATD */
	DUMMY_ENTRY,	/* RESERVED */		/* SCI 1 */
	DUMMY_ENTRY,	/* SCI */
	DUMMY_ENTRY,	/* SPI */
	DUMMY_ENTRY,	/* PAIE */
	DUMMY_ENTRY,	/* PAO */
	DUMMY_ENTRY,	/* TOF */
	DUMMY_ENTRY,	/* HC12 TC7 */
	DUMMY_ENTRY,	/* TC6 */
	DUMMY_ENTRY,	/* TC5 */
	DUMMY_ENTRY,	/* TC4 */
	DUMMY_ENTRY,	/* TC3 */
	DUMMY_ENTRY,	/* TC2 */
	DUMMY_ENTRY,	/* TC1 */
	DUMMY_ENTRY,	/* TC0 */
	RTI_handler,	/* RTI */
	DUMMY_ENTRY,	/* IRQ */
	DUMMY_ENTRY,	/* XIRQ */
	DUMMY_ENTRY,	/* SWI */
	DUMMY_ENTRY,	/* ILLOP */
	DUMMY_ENTRY,	/* COP */
	DUMMY_ENTRY,	/* CLM */
	_start			/* RESET */
	};
#pragma end_abs_address

