This is something from the Embedded Design book by Prof John Peatman. I'm probably wrong but in your code shouldn't you be copying the address of the variable to FSR0? I have heard that 'B' series silicon can have temperature stability problem at room temperature on the 18F series. Colin POINT macro stringname movlw high stringname movwf TBLPTRH movlw low stringname movwf TBLPTRL endm ByteDisplay POINT Byte_1 ;Display BYTE= rcall DisplayConst ;send to display lfsr 0,BYTESTR+8 ;byte = 8 elements set lfsr0 to point to element 8 of BYTESTR REPEAT_ clrf WREG ;Make sure W is empty rrcf BYTE,F ;Move contents of bit0 into carry rlcf WREG,F ;Move into W iorlw 0x30 ;Add 30h to contents to make ASCII number movwf POSTDEC0 ;Move into BYTESTR and move back one position movf FSR0L,W ;Have we finished sublw low BYTESTR UNTIL_ .Z. lfsr 0,BYTESTR ;Going to add position to element0 and EOF to position 9 so pointer = beginning of file MOVLF 0xC0,BYTESTR ;0xC0 = line 2 for cursor clrf BYTESTR+9 ;EOF indicator at element 9 rcall DisplayStrng ;Call string display return -- cdb, bodgy1@optusnet.com.au on 23/12/2002 Light travels faster than sound. That's why some people appear bright until they speak! -- http://www.piclist.com hint: PICList Posts must start with ONE topic: [PIC]:,[SX]:,[AVR]: ->uP ONLY! [EE]:,[OT]: ->Other [BUY]:,[AD]: ->Ads