Most Helpful Member
I thought your improved macro just inserted the single required BSF? - perhaps I was thinking of someone elses?.My aversion to the use of even my (more efficient) macro was the fact it makes the source unreadable. In effect you need a banksel before every memory access. Much better to learn which registers are in which bank and use a single bsf etc to switch banks at the appropriate time. Microchip, in their wisdom, removed all the register addresses from the data sheet sections - EG, timer 1 section.
On a 16F876, using banksel, writing to a tris register can take 6 instructions. This is supposed to be an efficient chip.