"Peter L. Peres" wrote: > Last time I checked, Microchip datasheets explicitly define all operations > on the PC excepting GOTOs to affect the lower byte only. So it's not just > ADDWF, also SUBWF and all the others. No, that's not how they define it at all. On the midrange PICs (14-bit core), any instruction that has PCL as a destination register will load the high byte of the program counter from PCLATH. Since the value in PCLATH does not necessarily bear any relation to the current PC, this is not even *similar* to your claim that the high byte is unaffected. On the low-end PICs (12-bit core), any instruction that has PCL as a destination register will load bit 8 of the PC with a zero (always), and bits 9-11 from the program page bits PA2..PA0 of the STATUS register. Again, this is not even *similar* to the idea of leaving the high byte unchanged. Whenever you want to do a computed branch (by writing to PCL), you MUST make sure that the PCLATH (14-bit) or the PA bits of STATUS (12-bit) are set correctly, or you'll get unpredictable results. In some applications in which only a small amount of lookup table space is needed, it is sufficient to set those bits once and never change them. Eric