diff --git a/arch/z80/include/z8/irq.h b/arch/z80/include/z8/irq.h index 915fa50fa5..551e9fcb48 100644 --- a/arch/z80/include/z8/irq.h +++ b/arch/z80/include/z8/irq.h @@ -45,23 +45,141 @@ * Included Files ****************************************************************************/ +#include + /**************************************************************************** * Definitions ****************************************************************************/ -/* Z80 Interrupts */ +/* ez8 Interrupt Numbers */ -#define Z80_RST0 (0) -#define Z80_RST1 (1) -#define Z80_RST2 (2) -#define Z80_RST3 (3) -#define Z80_RST4 (4) -#define Z80_RST5 (5) -#define Z80_RST6 (6) -#define Z80_RST7 (7) +#if defined(ENCORE_VECTORS) -#define Z80_IRQ_SYSTIMER Z80_RST7 -#define NR_IRQS (8) +# define Z8_WDT_IRQ 0 +# define Z8_TRAP_IRQ 1 +# define Z8_TIMER2_IRQ 2 /* Only if EZ8_TIMER3 defined */ +# define Z8_TIMER1_IRQ 3 +# define Z8_TIMER0_IRQ 4 +# define Z8_UART0_RX_IRQ 5 /* Only if EZ8_UART0 defined */ +# define Z8_UART0_TX_IRQ 6 /* Only if EZ8_UART0 defined */ +# define Z8_I2C_IRQ 7 /* Only if EZ8_I2C defined */ +# define Z8_SPI_IRQ 8 /* Only if EZ8_SPI defined */ +# define Z8_ADC_IRQ 9 /* Only if EZ8_ADC defined */ +# define Z8_P7AD_IRQ 10 +# define Z8_P6AD_IRQ 11 +# define Z8_P5AD_IRQ 12 +# define Z8_P4AD_IRQ 13 +# define Z8_P3AD_IRQ 14 +# define Z8_P2AD_IRQ 15 +# define Z8_P1AD_IRQ 16 +# define Z8_P0AD_IRQ 17 +# define Z8_TIMER3_IRQ 18 /* Only if EZ8_TIMER4 defined */ +# define Z8_UART1_RX_IRQ 19 /* Only if EZ8_UART1 defined */ +# define Z8_UART1_TX_IRQ 20 /* Only if EZ8_UART1 defined */ +# define Z8_DMA_IRQ 21 /* Only if EZ8_DMA defined */ +# define Z8_C3_IRQ 22 /* Only if EZ8_PORT1 defined */ +# define Z8_C2_IRQ 23 /* Only if EZ8_PORT1 defined */ +# define Z8_C1_IRQ 24 /* Only if EZ8_PORT1 defined */ +# define Z8_C0_IRQ 25 /* Only if EZ8_PORT1 defined */ + +# define NR_IRQS (26) + +#elif defined(ENCORE_XP_VECTORS) + +# define Z8_WDT_IRQ 0 +# define Z8_TRAP_IRQ 1 +# define Z8_TIMER2_IRQ 2 /* Only if EZ8_TIMER3 defined */ +# define Z8_TIMER1_IRQ 3 +# define Z8_TIMER0_IRQ 4 +# define Z8_UART0_RX_IRQ 5 /* Only if EZ8_UART0 defined */ +# define Z8_UART0_TX_IRQ 6 /* Only if EZ8_UART0 defined */ +# define Z8_I2C_IRQ 7 /* Only if EZ8_I2C defined */ +# define Z8_SPI_IRQ 8 /* Only if EZ8_SPI defined */ +# define Z8_ADC_IRQ 9 /* Only if EZ8_ADC or EZ8_ADC_NEW defined */ +# define Z8_P7AD_IRQ 10 +# define Z8_P6AD_IRQ 11 +# define Z8_P5AD_IRQ 12 +# define Z8_P4AD_IRQ 13 +# define Z8_P3AD_IRQ 14 +# define Z8_P2AD_IRQ 15 +# define Z8_P1AD_IRQ 16 +# define Z8_P0AD_IRQ 17 +# define Z8_TIMER3_IRQ 18 /* Only if EZ8_TIMER4 defined */ +# define Z8_UART1_RX_IRQ 19 /* Only if EZ8_UART1 defined */ +# define Z8_UART1_TX_IRQ 20 /* Only if EZ8_UART1 defined */ +# define Z8_DMA_IRQ 21 /* Only if EZ8_DMA defined */ +# define Z8_C3_IRQ 22 /* Only if EZ8_PORT1 defined */ +# define Z8_C2_IRQ 23 /* Only if EZ8_PORT1 defined */ +# define Z8_C1_IRQ 24 /* Only if EZ8_PORT1 defined */ +# define Z8_C0_IRQ 25 /* Only if EZ8_PORT1 defined */ +# define Z8_POTRAP_IRQ 27 +# define Z8_WOTRAP_IRQ 28 + +# define NR_IRQS (29) + +#elif defined(ENCORE_XP16K_VECTORS) + +# define Z8_WDT_IRQ 0 +# define Z8_TRAP_IRQ 1 +# define Z8_TIMER2_IRQ 2 /* Only if EZ8_TIMER3 defined */ +# define Z8_TIMER1_IRQ 3 +# define Z8_TIMER0_IRQ 4 +# define Z8_UART0_RX_IRQ 5 /* Only if EZ8_UART0 defined */ +# define Z8_UART0_TX_IRQ 6 /* Only if EZ8_UART0 defined */ +# define Z8_I2C_IRQ 7 /* Only if EZ8_I2C defined */ +# define Z8_SPI_IRQ 8 /* Only if EZ8_SPI defined */ +# define Z8_ADC_IRQ 9 /* Only if EZ8_ADC_NEW defined */ +# define Z8_P7AD_IRQ 10 +# define Z8_P6AD_IRQ 11 +# define Z8_P5AD_IRQ 12 +# define Z8_P4AD_IRQ 13 +# define Z8_P3AD_IRQ 14 +# define Z8_P2AD_IRQ 15 +# define Z8_P1AD_IRQ 16 +# define Z8_P0AD_IRQ 17 +# define Z8_MCT_IRQ 19 /* Only if EZ8_MCT defined */ +# define Z8_UART1_RX_IRQ 20 /* Only if EZ8_UART1 defined */ +# define Z8_UART1_TX_IRQ 21 /* Only if EZ8_UART1 defined */ +# define Z8_C3_IRQ 22 +# define Z8_C2_IRQ 23 +# define Z8_C1_IRQ 24 +# define Z8_C0_IRQ 25 +# define Z8_POTRAP_IRQ 27 +# define Z8_WOTRAP_IRQ 28 + +# define NR_IRQS (29) + +#elif defined(ENCORE_MC_VECTORS) + +# define Z8_WDT_IRQ 0 +# define Z8_TRAP_IRQ 1 +# define Z8_PWMTIMER_IRQ 2 +# define Z8_PWMFAULT_IRQ 3 +# define Z8_ADC_IRQ 4 /* Only if EZ8_ADC_NEW defined */ +# define Z8_CMP_IRQ 5 +# define Z8_TIMER0_IRQ 6 +# define Z8_UART0_RX_IRQ 7 /* Only if EZ8_UART0 defined */ +# define Z8_UART0_TX_IRQ 8 /* Only if EZ8_UART0 defined */ +# define Z8_SPI_IRQ 9 /* Only if EZ8_SPI defined */ +# define Z8_I2C_IRQ 10 /* Only if EZ8_I2C defined */ +# define Z8_C0_IRQ 12 +# define Z8_PB_IRQ 13 +# define Z8_P7A_IRQ 14 +# define Z8_P3A_IRQ Z8_P7A_IRQ +# define Z8_P6A_IRQ 15 +# define Z8_P2A_IRQ Z8_P6A_IRQ +# define Z8_P5A_IRQ 16 +# define Z8_P1A_IRQ Z8_P5A_IRQ +# define Z8_P4A_IRQ 17 +# define Z8_P0A_IRQ Z8_P4A_IRQ +# define Z8_POTRAP_IRQ 27 +# define Z8_WOTRAP_IRQ 28 + +# define NR_IRQS (29) + +#endif + +#define Z8_IRQ_SYSTIMER Z8_TIMER0_IRQ /* IRQ Stack Frame Format * @@ -71,7 +189,6 @@ #define XCPT_I (0) /* Offset 0: Saved I w/interrupt state in carry */ #define XCPT_BC (1) /* Offset 1: Saved BC register */ -#define XCPT_DE (2) /* Offset 2: Saved DE register */ #define XCPT_IX (3) /* Offset 3: Saved IX register */ #define XCPT_IY (4) /* Offset 4: Saved IY register */ #define XCPT_SP (5) /* Offset 5: Offset to SP at time of interrupt */ diff --git a/arch/z80/src/z8/Make.defs b/arch/z80/src/z8/Make.defs index d9b2f69cb1..389d6bb81a 100644 --- a/arch/z80/src/z8/Make.defs +++ b/arch/z80/src/z8/Make.defs @@ -44,6 +44,6 @@ CMN_CSRCS = up_initialize.c up_allocateheap.c up_createstack.c \ up_schedulesigaction.c up_sigdeliver.c \ up_registerdump.c up_usestack.c -CHIP_SSRCS = #z8_saveusercontext.S z8_restoreusercontext.S +CHIP_SSRCS = z8_vector.S #z8_saveusercontext.S z8_restoreusercontext.S CHIP_CSRCS = #z8_initialstate.c z8_irq.c diff --git a/arch/z80/src/z8/z8_head.S b/arch/z80/src/z8/z8_head.S index 0e3153a8e8..814cb87f64 100755 --- a/arch/z80/src/z8/z8_head.S +++ b/arch/z80/src/z8/z8_head.S @@ -41,12 +41,13 @@ #include #include #include +#include /************************************************************************** * Definitions **************************************************************************/ -/* Assuem the large model */ +/* Assume the large model */ #if !defined(CONFIG_Z8_MODEL_LARGE) && !defined(CONFIG_Z8_MODEL_SMALL) # define CONFIG_Z8_MODEL_LARGE 1 @@ -100,10 +101,6 @@ * Code **************************************************************************/ - /* Vector table space allocation */ - - include "vect.inc" - /* Reset vector */ vector reset=_z8_reset @@ -232,7 +229,7 @@ _z8_reset_halt: jr _z8_reset_halt /************************************************************************** - * Code + * Data **************************************************************************/ #ifdef CONFIG_Z8_MODEL_LARGE diff --git a/arch/z80/src/z8/z8_vector.S b/arch/z80/src/z8/z8_vector.S new file mode 100755 index 0000000000..96970a8fc1 --- /dev/null +++ b/arch/z80/src/z8/z8_vector.S @@ -0,0 +1,614 @@ +/************************************************************************** + * arch/z80/src/z8/z8_xdef.S + * Interrupt Handling + * + * Copyright (C) 2008 Gregory Nutt. All rights reserved. + * Author: Gregory Nutt + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name NuttX nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS or IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER or CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, or CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS or SERVICES; LOSS + * OF USE, DATA, or PROFITS; or BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, or TORT (INCLUDING NEGLIGENCE or OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + **************************************************************************/ + +/************************************************************************** + * Included Files + **************************************************************************/ + +#include +#include +#include +#include + +/************************************************************************** + * Definitions + **************************************************************************/ + +/************************************************************************** + * External References / External Definitions + **************************************************************************/ + +#if defined(ENCORE_VECTORS) + xdef _z8_wdt_handler + xdef _z8_trap_handler +# if defined(EZ8_TIMER3) + xdef _z8_timer2_handler +# endif + xdef _z8_timer1_handler + xdef _z8_timer0_handler +# if defined(EZ8_UART0) + xdef _z8_uart0rx_handler + xdef _z8_uart0tx_handler +# endif +# if defined(EZ8_I2C) + xdef _z8_i2c_handler +# endif +# if defined(EZ8_SPI) + xdef _z8_spi_handler +# endif +# if defined(EZ8_ADC) + xdef _z8_adc_handler +# endif + xdef _z8_p7ad_handler + xdef _z8_p6ad_handler + xdef _z8_p5ad_handler + xdef _z8_p4ad_handler + xdef _z8_p3ad_handler + xdef _z8_p2ad_handler + xdef _z8_p1ad_handler + xdef _z8_p0ad_handler +# if defined(EZ8_TIMER4) + xdef _z8_timer3_handler +# endif +# if defined(EZ8_UART1) + xdef _z8_uart1rx_handler + xdef _z8_uart1tx_handler +# endif +# if defined(EZ8_DMA) + xdef _z8_dma_handler +# endif +# if !defined(EZ8_PORT1) + xdef _z8_c3_handler + xdef _z8_c2_handler + xdef _z8_c1_handler + xdef _z8_c0_handler +# endif + +/**************************************************************************/ + +#elif defined(ENCORE_XP_VECTORS) + + xdef _z8_wdt_handler + xdef _z8_trap_handler +# if defined(EZ8_TIMER3) + xdef _z8_timer2_handler +# endif + xdef _z8_timer1_handler + xdef _z8_timer0_handler +# if defined(EZ8_UART0) + xdef _z8_uart0rx_handler + xdef _z8_uart0tx_handler +# endif +# if defined(EZ8_I2C) + xdef _z8_i2c_handler +# endif +# if defined(EZ8_SPI) + xdef _z8_spi_handler +# endif +# if defined(EZ8_ADC) || defined(EZ8_ADC_NEW) + xdef _z8_adc_handler +# endif + xdef _z8_p7ad_handler + xdef _z8_p6ad_handler + xdef _z8_p5ad_handler + xdef _z8_p4ad_handler + xdef _z8_p3ad_handler + xdef _z8_p2ad_handler + xdef _z8_p1ad_handler + xdef _z8_p0ad_handler +# if defined(EZ8_TIMER4) + xdef _z8_timer3_handler +# endif +# if defined(EZ8_UART1) + xdef _z8_uart1rx_handler + xdef _z8_uart1tx_handler +# endif +# if defined(EZ8_DMA) + xdef _z8_dma_handler +# endif +# if !defined(EZ8_PORT1) + xdef _z8_c3_handler + xdef _z8_c2_handler + xdef _z8_c1_handler + xdef _z8_c0_handler +# endif + xdef _z8_potrap_handler + xdef _z8_wotrap_handler + +/**************************************************************************/ + +#elif defined(ENCORE_XP16K_VECTORS) + + xdef _z8_wdt_handler + xdef _z8_trap_handler +# if defined(EZ8_TIMER3) + xdef _z8_timer2_handler +# endif + xdef _z8_timer1_handler + xdef _z8_timer0_handler +# if defined(EZ8_UART0) + xdef _z8_uart0rx_handler + xdef _z8_uart0tx_handler +# endif +# if defined(EZ8_I2C) + xdef _z8_i2c_handler +# endif +# if defined(EZ8_ESPI) + xdef _z8_spi_handler +# endif +# if defined(EZ8_ADC_NEW) + xdef _z8_adc_handler +# endif + xdef _z8_p7ad_handler + xdef _z8_p6ad_handler + xdef _z8_p5ad_handler + xdef _z8_p4ad_handler + xdef _z8_p3ad_handler + xdef _z8_p2ad_handler + xdef _z8_p1ad_handler + xdef _z8_p0ad_handler +# if defined(EZ8_MCT) + xdef _z8_mct_handler +# endif +# if defined(EZ8_UART1) + xdef _z8_uart1rx_handler + xdef _z8_uart1tx_handler +# endif + xdef _z8_c3_handler + xdef _z8_c2_handler + xdef _z8_c1_handler + xdef _z8_c0_handler + xdef _z8_potrap_handler + xdef _z8_wotrap_handler + +/**************************************************************************/ + +#elif defined(ENCORE_MC_VECTORS) + + xdef _z8_wdt_handler + xdef _z8_trap_handler + xdef _z8_pwmtimer_handler + xdef _z8_pwmfault_handler +# if defined(EZ8_ADC_NEW) + xdef _z8_adc_handler +# endif + xdef _z8_cmp_handler + xdef _z8_timer0_handler +# if defined(EZ8_UART0 + xdef _z8_uart0rx_handler + xdef _z8_uart0tx_handler +# endif +# if defined(EZ8_SPI) + xdef _z8_spi_handler +# endif +# if defined(EZ8_I2C) + xdef _z8_i2c_handler +# endif + xdef _z8_c0_handler + xdef _z8_c0_handler + xdef _z8_p7p3a_handler + xdef _z8_p6ap2a_handler + xdef _z8_p5ap1a_handler + xdef _z8_p4ap0a_handler + xdef _z8_potrap_handler + xdef _z8_wotrap_handler +#endif + + /************************************************************************** + * Code + **************************************************************************/ + +#if defined(ENCORE_VECTORS) + vector WDT = _z8_wdt_handler + vector TRAP = _z8_trap_handler +# if defined(EZ8_TIMER3) + vector TIMER2 = _z8_timer2_handler +# endif + vector TIMER1 = _z8_timer1_handler + vector TIMER0 = _z8_timer0_handler +# if defined(EZ8_UART0) + vector UART0_RX = _z8_uart0rx_handler + vector UART0_TX = _z8_uart0tx_handler +# endif +# if defined(EZ8_I2C) + vector I2C = _z8_i2c_handler +# endif +# if defined(EZ8_SPI) + vector SPI = _z8_spi_handler +# endif +# if defined(EZ8_ADC) + vector ADC = _z8_adc_handler +# endif + vector P7AD = _z8_p7ad_handler + vector P6AD = _z8_p6ad_handler + vector P5AD = _z8_p5ad_handler + vector P4AD = _z8_p4ad_handler + vector P3AD = _z8_p3ad_handler + vector P2AD = _z8_p2ad_handler + vector P1AD = _z8_p1ad_handler + vector P0AD = _z8_p0ad_handler +# if defined(EZ8_TIMER4) + vector TIMER3 = _z8_timer3_handler +# endif +# if defined(EZ8_UART1) + vector UART1_RX = _z8_uart1rx_handler + vector UART1_TX = _z8_uart1tx_handler +# endif +# if defined(EZ8_DMA) + vector DMA = _z8_dma_handler +# endif +# if !defined(EZ8_PORT1) + vector C3 = _z8_c3_handler + vector C2 = _z8_c2_handler + vector C1 = _z8_c1_handler + vector C0 = _z8_c0_handler +# endif + +/**************************************************************************/ + +#elif defined(ENCORE_XP_VECTORS) + + vector WDT = _z8_wdt_handler + vector TRAP = _z8_trap_handler +# if defined(EZ8_TIMER3) + vector TIMER2 = _z8_timer2_handler +# endif + vector TIMER1 = _z8_timer1_handler + vector TIMER0 = _z8_timer0_handler +# if defined(EZ8_UART0) + vector UART0_RX = _z8_uart0rx_handler + vector UART0_TX = _z8_uart0tx_handler +# endif +# if defined(EZ8_I2C) + vector I2C = _z8_i2c_handler +# endif +# if defined(EZ8_SPI) + vector SPI = _z8_spi_handler +# endif +# if defined(EZ8_ADC) || defined(EZ8_ADC_NEW) + vector ADC = _z8_adc_handler +# endif + vector P7AD = _z8_p7ad_handler + vector P6AD = _z8_p6ad_handler + vector P5AD = _z8_p5ad_handler + vector P4AD = _z8_p4ad_handler + vector P3AD = _z8_p3ad_handler + vector P2AD = _z8_p2ad_handler + vector P1AD = _z8_p1ad_handler + vector P0AD = _z8_p0ad_handler +# if defined(EZ8_TIMER4) + vector TIMER3 = _z8_timer3_handler +# endif +# if defined(EZ8_UART1) + vector UART1_RX = _z8_uart1rx_handler + vector UART1_TX = _z8_uart1tx_handler +# endif +# if defined(EZ8_DMA) + vector DMA = _z8_dma_handler +# endif +# if !defined(EZ8_PORT1) + vector C3 = _z8_c3_handler + vector C2 = _z8_c2_handler + vector C1 = _z8_c1_handler + vector C0 = _z8_c0_handler +# endif + vector POTRAP = _z8_potrap_handler + vector WOTRAP = _z8_wotrap_handler + +/**************************************************************************/ + +#elif defined(ENCORE_XP16K_VECTORS) + + vector WDT = _z8_wdt_handler + vector TRAP = _z8_trap_handler +# if defined(EZ8_TIMER3) + vector TIMER2 = _z8_timer2_handler +# endif + vector TIMER1 = _z8_timer1_handler + vector TIMER0 = _z8_timer0_handler +# if defined(EZ8_UART0) + vector UART0_RX = _z8_uart0rx_handler + vector UART0_TX = _z8_uart0tx_handler +# endif +# if defined(EZ8_I2C) + vector I2C = _z8_i2c_handler +# endif +# if defined(EZ8_ESPI) + vector SPI = _z8_spi_handler +# endif +# if defined(EZ8_ADC_NEW) + vector ADC = _z8_adc_handler +# endif + vector P7AD = _z8_p7ad_handler + vector P6AD = _z8_p6ad_handler + vector P5AD = _z8_p5ad_handler + vector P4AD = _z8_p4ad_handler + vector P3AD = _z8_p3ad_handler + vector P2AD = _z8_p2ad_handler + vector P1AD = _z8_p1ad_handler + vector P0AD = _z8_p0ad_handler +# if defined(EZ8_MCT) + vector MCT = _z8_mct_handler +# endif +# if defined(EZ8_UART1) + vector UART1_RX = _z8_uart1rx_handler + vector UART1_TX = _z8_uart1tx_handler +# endif + vector C3 = _z8_c3_handler + vector C2 = _z8_c2_handler + vector C1 = _z8_c1_handler + vector C0 = _z8_c0_handler + vector POTRAP = _z8_potrap_handler + vector WOTRAP = _z8_wotrap_handler + +/**************************************************************************/ + +#elif defined(ENCORE_MC_VECTORS) + + vector WDT = _z8_wdt_handler + vector TRAP = _z8_trap_handler + vector PWMTIMER = _z8_pwmtimer_handler + vector PWMFAULT = _z8_pwmfault_handler +# if defined(EZ8_ADC_NEW) + vector ADC = _z8_adc_handler +# endif + vector CMP = _z8_cmp_handler + vector TIMER0 = _z8_timer0_handler +# if defined(EZ8_UART0 + vector UART0_RX = _z8_uart0rx_handler + vector UART0_TX = _z8_uart0tx_handler +# endif +# if defined(EZ8_SPI) + vector SPI = _z8_spi_handler +# endif +# if defined(EZ8_I2C) + vector I2C = _z8_i2c_handler +# endif + vector C0 = _z8_c0_handler + vector PB = _z8_c0_handler + vector P7A = _z8_p7p3a_handler + vector P6A = _z8_p6ap2a_handler + vector P5A = _z8_p5ap1a_handler + vector P4A = _z8_p4ap0a_handler + vector POTRAP = _z8_potrap_handler + vector WOTRAP = _z8_wotrap_handler +#endif + +/************************************************************************** + * Name: _z16f_*_handler + * + * Description: + * Map individual interrupts into interrupt number and branch to common + * interrupt handling logic. If higher interrupt handling performance + * for particular interrupts is required, then those interrupts should + * be picked off here and handled outside of the common logic. + * + **************************************************************************/ + + define startup, space=rom + segment startup +#if defined(ENCORE_VECTORS) +_z8_wdt_handler: +_z8_trap_handler: +# if defined(EZ8_TIMER3) +_z8_timer2_handler: +# endif +_z8_timer1_handler: +_z8_timer0_handler: +# if defined(EZ8_UART0) +_z8_uart0rx_handler: +_z8_uart0tx_handler: +# endif +# if defined(EZ8_I2C) +_z8_i2c_handler: +# endif +# if defined(EZ8_SPI) +_z8_spi_handler: +# endif +# if defined(EZ8_ADC) +_z8_adc_handler: +# endif +_z8_p7ad_handler: +_z8_p6ad_handler: + _z8_p5ad_handler: +_z8_p4ad_handler: +_z8_p3ad_handler: +_z8_p2ad_handler: +_z8_p1ad_handler: +_z8_p0ad_handler: +# if defined(EZ8_TIMER4) +_z8_timer3_handler: +# endif +# if defined(EZ8_UART1) +_z8_uart1rx_handler: +_z8_uart1tx_handler: +# endif +# if defined(EZ8_DMA) +_z8_dma_handler: +# endif +# if !defined(EZ8_PORT1) +_z8_c3_handler: +_z8_c2_handler: +_z8_c1_handler: +_z8_c0_handler: +# endif + +/**************************************************************************/ + +#elif defined(ENCORE_XP_VECTORS) + +_z8_wdt_handler: +_z8_trap_handler: +# if defined(EZ8_TIMER3) +_z8_timer2_handler: +# endif +_z8_timer1_handler: +_z8_timer0_handler: +# if defined(EZ8_UART0) +_z8_uart0rx_handler: +_z8_uart0tx_handler: +# endif +# if defined(EZ8_I2C) +_z8_i2c_handler: +# endif +# if defined(EZ8_SPI) +_z8_spi_handler: +# endif +# if defined(EZ8_ADC) || defined(EZ8_ADC_NEW) +_z8_adc_handler: +# endif +_z8_p7ad_handler: +_z8_p6ad_handler: + _z8_p5ad_handler: +_z8_p4ad_handler: +_z8_p3ad_handler: +_z8_p2ad_handler: +_z8_p1ad_handler: +_z8_p0ad_handler: +# if defined(EZ8_TIMER4) +_z8_timer3_handler: +# endif +# if defined(EZ8_UART1) +_z8_uart1rx_handler: +_z8_uart1tx_handler: +# endif +# if defined(EZ8_DMA) +_z8_dma_handler: +# endif +# if !defined(EZ8_PORT1) +_z8_c3_handler: +_z8_c2_handler: +_z8_c1_handler: +_z8_c0_handler: +# endif +_z8_potrap_handler: +_z8_wotrap_handler: + +/**************************************************************************/ + +#elif defined(ENCORE_XP16K_VECTORS) + +_z8_wdt_handler: +_z8_trap_handler: +# if defined(EZ8_TIMER3) +_z8_timer2_handler: +# endif +_z8_timer1_handler: +_z8_timer0_handler: +# if defined(EZ8_UART0) +_z8_uart0rx_handler: +_z8_uart0tx_handler: +# endif +# if defined(EZ8_I2C) +_z8_i2c_handler: +# endif +# if defined(EZ8_ESPI) +_z8_spi_handler: +# endif +# if defined(EZ8_ADC_NEW) +_z8_adc_handler: +# endif +_z8_p7ad_handler: +_z8_p6ad_handler: + _z8_p5ad_handler: +_z8_p4ad_handler: +_z8_p3ad_handler: +_z8_p2ad_handler: +_z8_p1ad_handler: +_z8_p0ad_handler: +# if defined(EZ8_MCT) +_z8_mct_handler: +# endif +# if defined(EZ8_UART1) +_z8_uart1rx_handler: +_z8_uart1tx_handler: +# endif +_z8_c3_handler: +_z8_c2_handler: +_z8_c1_handler: +_z8_c0_handler: +_z8_potrap_handler: +_z8_wotrap_handler: + +/**************************************************************************/ + +#elif defined(ENCORE_MC_VECTORS) + +_z8_wdt_handler: +_z8_trap_handler: +_z8_pwmtimer_handler: +_z8_pwmfault_handler: +# if defined(EZ8_ADC_NEW) +_z8_adc_handler: +# endif +_z8_cmp_handler: +_z8_timer0_handler: +# if defined(EZ8_UART0 +_z8_uart0rx_handler: +_z8_uart0tx_handler: +# endif +# if defined(EZ8_SPI) +_z8_spi_handler: +# endif +# if defined(EZ8_I2C) +_z8_i2c_handler: +# endif +_z8_c0_handler: +_z8_c0_handler: +_z8_p7p3a_handler: +_z8_p6ap2a_handler: +_z8_p5ap1a_handler: +_z8_p4ap0a_handler: +_z8_potrap_handler: +_z8_wotrap_handler: +#endif + +/************************************************************************** + * Name: _z16f_common_handler + * + * Description: + * Common IRQ handling logic + * + **************************************************************************/ + +_z8_common_handler: + iret + +/************************************************************************** + * Data + **************************************************************************/ + + end _z8_common_handler