After reading this explaination, I feel if code that does not use PBP library is placed inside interrupt should work fine isnt it?
Eg statements line freqout, sound, pause, serouts will cause problems
but simple math/ array operations should work . Am I right?
If the code which is placed as BASIC code inside interrupt is getting modified at very selected locations in the program and we make sure the variable accesses are mutually exclusive then also it should not pose any problem.

If i dont want to use wsave1,2,3 , if I store wsave register in access location eg $70 , that should solve the purpose am I right?

I found the thread explaining about banks on the forum which saya the following thing-

"When a particular bank is selected with the RP0 and RP1 bits in the STATUS register, any opcode trying to access that bank is limited to 128 bytes. So, $20, $A0, $120 and $1A0 all point to a location that is 32 bytes into their respective BANK. The Variable declarations wsave1-3 are set that way to reserve the same locations in each bank.

That way you don't need to worry which bank you are in. The "MOVWF W_TEMP" always puts the byte in the correct location, no matter which bank is selected."

If my program is in bank1 and interrupt fires, my registers get stored in bank1.If my interrupt lies in different bank it just jumps to the bank (long jumps) and returns with long jump. It picks up wsave from that bank
If we give different offset of wsave1 and wsave, this interrupt handling should produce incorrect results. Am I right?

Thanks and regards,
cwmaddy