>Woo-hoo! This solved my problem. >Much thanks everyone! Hi, now that you have the probelm fixed, you might want to look at some code by Tony Kubek. He has some nice BANK swithcing macros, among other things, that make it a lot easier to see where your are at in your code. Ofcourse you still have to be in the right bank. http://www.piclist.org/techref/microchip/16f877/snipp.htm from the page above: ; ****************** Macro definitions ******************************** ;+++++ ; PAGE/BANK0/1/2/3 selects register bank 0/1/2/3. ; Leave set to BANK0 normally. BANK0 MACRO BCF STATUS,RP0 ; clear bank select bits BCF STATUS,RP1 BCF STATUS,IRP ; clear indirect adressing bit ENDM BANK1 MACRO BSF STATUS,RP0 ; BCF STATUS,RP1 ; BCF STATUS,IRP ; clear indirect adressing bit ENDM BANK2 MACRO BCF STATUS,RP0 ; BSF STATUS,RP1 BSF STATUS,IRP ; set bit for indirect adressing ENDM BANK3 MACRO BSF STATUS,RP0 ; BSF STATUS,RP1 BSF STATUS,IRP ; set bit for indirect adressing ENDM -- http://www.piclist.com hint: The PICList is archived three different ways. See http://www.piclist.com/#archives for details.