Tip1.

In your program you will probably have variables that are used often... put those variables in BANK ZERO...

For example, you have a variable called CounterA, you would normally deline it as...

CounterA var Byte Bank0

...all you have to do is change that to...

CounterA var Byte Bank0

I did that in one program and recovered close to 2K... so it's really worth doing.

Eventually, you'll fill up Bank0 and can't fit any more variables into it, so there's a limit here, therefore pick the variables you use MOST OFTEN to go into Bank0.

Come back and tell us how much you saved just by doing this...

Tip2.

Put your SUBROUTINES at the start of your program and your first instruction is a jump over them... eg GOTO START. The more commonly used subroutines and variables that you can stuff into the first Bank of Memory in your PIC the better for the overall compactness of your program when it starts to grow.