THIS IS AN EYE OPENER.

Thanks so much for explaining. Now i understand why it didnt work. I have learn a great deal from your post.

Thanks for the tips, i think option B is what I will go for. Its worth the effort.
But how can i determine from the .lst, the system variables in use.

I have used DT Interrupts and they work well (apart from inadvertenly enabling unwanted interrupts sometimes). But to avoid saving every variable all the time and save time is my goal. I need to have more speed.

Lastly, my question about macros. Can i do something like this;

Asm
MACRO myPAUSE msec,subID
movlw msec
movwf delay1
movlw subID
movwf KeepTrack
Endasm

; then concote any kind of PBP code here

@ Endm