Hi: I was having all kinds of problems getting table reads to work. It turns out that AN526 has some errors as well as the data sheet (DS30430A) for the PIC15F8X family as wel as the 16C8X family. Both data sheets in para. "4.3 Program Counter: PCL and PCLATH": ..."The contents of PCLATH are transferred to the upper byte of the program counter when the PC is loaded with a new value. This occurs during a CALL, GOTO or a write to PCL." This does NOT apply to the 16(F/C)8X parts since they have only 1K of memory and therefore do not use the PCLATH bits. I incorrectly thought that PCLATH would take on a value to match the current PC value after a CALL or GOTO. This is NOT what the above sentences mean! What the data sheets do not say is that PCLATH is only controled by the programmer and not by the any of the commands. Said another way PCLATH will only take on values that are programmed into it. The ADDWF PCL,F instruction only changes the PCL (8 bits) so unless your table is in program memory page 0 you will need to set PCLATH for proper addressing of the computed table address. erata for AN526: "SECTION 1, Computed Goto Instruction": change "Program 3" to "Example 3" change "Example 3" to "Example 4" Note that Example 4 fixes the callingroutine in seperate page from table problem and introduces the split table problem. "Interrupts": This entire paragraph is WRONG. The silicon properly handles interrupts. "Section 2 Implementation for the PIC 16C5X Family": change "Table has to be in the top half of a 512 byte page" to "Table has to be in the bottom half of a 512 byte page." Have Fun, Brooke