> and the bankx > macros are a good idea, I will use them! That's certainly better than doing BSF/BCF on RP0/RP1, but still leaves you open to errors of manually picking the wrong bank. You could make a macro that takes a RAM address and sets the banks accordingly. After all, the bank is just (adr >> 7). Now you can reliably set the bank without having to know which bank, but writing two BSF/BCF instructions in front of every RAM reference is wasteful. You could use an assembler variable to keep track of the current RAM bank, and only generate the BSF/BCF instructions that are needed. You could even avoid setting RP1 on processors that only have two or less banks, or emit nothing at all on processors that have only one bank. You could do all that, but you could also download a tested version of this macro for free. See my DBANKIF and related macros in STD.INS.ASPIC at http://www.embedinc.com/pic. ***************************************************************** Embed Inc, embedded system specialists in Littleton Massachusetts (978) 742-9014, http://www.embedinc.com -- http://www.piclist.com hint: The PICList is archived three different ways. See http://www.piclist.com/#archives for details.