Code attached sorry bout FSR its nothing to do with it. Its (AN556) computed goto crossing 256 bit page boundary. All messages up to and including 33 are ok but when pcl >255 it starts reading from the wrong place. Steve STRNUM is the message to be displayed TABOFF is the pointer to the char to be returned ;------------------INCREMEMTS CHARTHER POINTER FOR TEXT STRING---------- POINT MACRO INCF TABOFF,F MOVFW TABOFF ADDWF PCL,F ENDM Org 0800h LAST EQU b'10000000' ; SIGNIFIER FOR LAST CHAR CALLSTR MOVFW STRNUM ; GET STRING ADDWF PCL,1 ; WHICH STRING GOTO MSG0 ; blah GOTO MSG1 ; blah goto MSG34 ; blah ; lots of text strings here MSG34 POINT RETLW 'B' RETLW 'A' RETLW 'T' RETLW 'T' RETLW 'E' ; Its an '877 and my text block starts at 0800h OK, so it's table reads in program memory then. But then, I dont see where the FSR reg comes into play... > It's a big bunch of ascii for a display but I got loads a messages What messages ? > and about half way throu msg 34 I don't know what "msg 34" is. > (address 08ff) it jumps to the wrong place > middle of some previous message (PCL should be 256 for the computed > jump) but I aint sure where bit 9 of the pointer is What "pointer" ? Well, definitly time to show some code... A stripped down example that shows the problem would be fine. Jan-Erik. -- http://www.piclist.com hint: PICList Posts must start with ONE topic: [PIC]:,[SX]:,[AVR]: ->uP ONLY! [EE]:,[OT]: ->Other [BUY]:,[AD]: ->Ads -- http://www.piclist.com hint: PICList Posts must start with ONE topic: [PIC]:,[SX]:,[AVR]: ->uP ONLY! [EE]:,[OT]: ->Other [BUY]:,[AD]: ->Ads