Das Interrupt flag in der ISR zu löschen ist eine gute Idee: beim Aufruf als interrupt passiert nichts, beim Aufruf per Gosub weren interrupts gespeert. Auf das explizite setzen des Interrupt flags sollte man aber besser verzichten, denn sonst kann man 2 geschaltelte ISRs kriegen und braicht 2 mal den Stack für die ganzen Register. Am ender der ISR sollter der Interrupt ohnehin wie der frei gegeben werden (durch dem ASM befehl RETI am den Ende).