Ich hab mir die XC866-Doku runtergezogen und versucht, aus der gemappten-Memory-Bank-Extension Philosophie schlau zu werden (diese Bank-Orgie geht mir, ehrlich gesagt, auch bei den PIC... auf den Geist)
Verdacht: Ich seh in der Disassemblerliste keine Stack-Pointer festlegung. (das muß nix heißen) ABER:
Lt. Datasheet ist der SP initial mit 0x07 definiert. Das wäre saumäßig. denn durch die volatile -definition hat der Compiler auch time1----etc. alles da unten addressiert.
Spekulation: 0x80 und größer (kleiner nicht) sind mögliche Flash-Addressen. wenn du also in den Clinch mit dem Stack kommst und ihm eine 0x80.. addresse als return reinschreibst, kommt auch so ein Gefuddel dabei raus (2.ISR)
Ein sinnvoller werte für den SP wäre z.B. 7F (RAMEND)

Es kann aber sein, daß der C in der disassemblerliste nur seine SP-definition unterschlagen hat, dann isses natürlich wieder nix.
Mach dich einmal beim C-Manual /Workbench schlau, wie denn das so ist mit dem SP, in den Infineon Unterlagen steht da natürlich nix.
*seufz*