Hello
Are you programming in ANSI C or in Assembler?
Normally when an interrupt occurs, the hardware is saving register A, X, SR, PC on the stack.
Register H is not saved automatically by the hardware.
If you are programming in assembler you need to save H on the stack at the beginning of the interrupt (instruction PSHH) and restore it at the end of the interrupt(instruction PULH).
If you are programming in ANSI C then it depends on the compiler you are using.
CodeWarrior compiler is automatically taking care of saving/restoring the register H is you define your interrupt function using interrupt keyword.
For Example:
interrupt void intFunc(void) {
For other compiler, please check your compiler vendor manual to check whether and how you can make sure register H is saved/ restored in interrupt functions.
I hope this helps.
CrasyCat