Hi Nikolai,
Thank you for this question and also answer.
Yes, the S12Z vectors have 4 bytes while the addresses are just 3 bytes (24bit address space). So, the lowest byte from a vector is unused.
I use PE code for generating user vector table:
typedef void (* tIsrFunc)(void);
typedef struct
{
byte padding;
tIsrFunc address;
} InterruptTableEntry;
#define _VECTOR(v) {0xFFU, &v}
InterruptTableEntry _InterruptVectorTable[INT_VECTOR_TABLE_SIZE] @INT_VECTOR_TABLE_ADDR = {
_VECTOR(Unimplemented_ISR),
_VECTOR(Unimplemented_ISR),
_VECTOR(Unimplemented_ISR),
I hope it helps you.
Have a great day,
Radek
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------