Listing1—Now, this is the way to handle code generation for interrupt vectors. I like the idea of using the actual datasheet names for the vectors. //Interrupt Vector Numbers #define iv_RESET 1 #define iv_INT0 2 #define iv_INT1 3 #define iv_TIMER1_CAPT 4 #define iv_TIMER1_COMPA 5 #define iv_TIMER1_COMPB 6 #define iv_TIMER1_OVF 7 #define iv_TIMER0_OVF 8 #define iv_SPI_STC 9 #define iv_UART_RX 10 #define iv_UART_RXC 10 #define iv_UART_DRE 11 #define iv_UART_UDRE 11 #define iv_UART_TX 12 #define iv_UART_TXC 12 #define iv_ANA_COMP 13 #define iv_ANALOG_COMP 13