> From what I can tell...you can only read on even address boundaries > for table reads? So if I have a counter that I am incrementing for a > table read, I am forced to do a 2x on the counter value in order to > index into the table? tblrd*+ might be one option clrf tblptru ;user names table address mov high(user),tblptrh clrf tblptrl usr_srch tblrd*+ ;get table character movfw tablat xorwf postinc0,w ;compare with string character bnz nxt_usr ;no match, try new string decfsz cnt1 ;field count bra usr_srch But, yes, otherwise all byte addressing on the 18F is 16-bit, say for RETLW strings movlw d_text+.01 ;send CMEE=1, report << ERROR >> movwf pclath clrf cnt1 ;character address getcmee movf cnt1,w call cmee ;get character xorlw 0xff ;test for e-o-s bz cmee_r ;yes xorlw 0xff ;no outw ;transmit call write_d ;display incf cnt1 ;<<<<<<<<<<< incf cnt1 ;<<<<<<<<<<< bra getcmee cmee addwf pcl ;CMEE= retlw "C" retlw "M" retlw "E" retlw "E" retlw "=" retlw "1" retlw .13 retlw 0xff -- http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist