Solo agregando un poco mas de info a lo bien mensionado por el pana khasistos, si usas modelos de 16 bits tienes que agregar la instruccion CONTEXT SAVE tambien antes del ISR, ahora guarda tu status,tufsr,etc,,, pero que psas con las variables del sistema(de proton+ me refiero) esas son las usadas para hacer calculos complejos una de ellas puede ser PP1 si esta se maneja muchas veces mas se a a ir incrementando y pasara a PP1H, y luego PP1HH y asi sucesivamente, dependiendo de l calculo a hacer, en caso de que DENTRO de nuestra interrupcion usemos una o varias(por eso en el manual se recomienda usar comandos simples, no serializados y lo mas que se pueda en asm)incluidas en un comando complejo como PRINT AT <--- aqui abria que guardar las posiciones para un GLCD y lo estados del flag, y demas,
Para no extender esta explicacion, las v.s que se usen deben ser guardadas y restauradas(esto no es falla del compilador, solo falta de vision del programador, el cual en sus proximas versiones es muy probable que ya venga incluido, asi que preparense
)con context Restore y context save( esta solo necesaria para modelos de 16 bits). Asi que podemos decir que proton+ vamos para adelante, Otro detalle(para versiones desactualizadas) no soporta mas de 92 deficniciones de variables de sistema(v.S) ya que no era el punto estarlas definiendo, esto se usa como solucion alterna mientras adaptan este plus a nuevas versiones.
Un abrazo panas