Hi Richard,

Thanks for the help. I started work Friday so my time on the forum will be a lot less from now on unfortunately - but good that I have an income now after so long.

Can I ask: have you tried these changes yourself and seen the results on a Nokia 3310 lcd? I tried your suggestion per my interpretation below and it compiled/assembled without errors but the result was the same as if the changes were not made - so I'm assuming I didn't do it correctly or am still missing something.

I made the following edits after replacing data with da:

Code:
'for @ printstr
Addr  VAR WORD
'Char  VAR byte ' lcdchardata[0]   [WJS] as it was
Char  VAR word ' lcdchardata[0]    [WJS] now for modification

StringOut:
' Edits for 16F devices.
    Readcode Addr, Char             ' Get a character
    if Char = 0 then StringDone     ' Look for Null char, Stop if found
packedbit = char.7                  ' Store bit 7 value of low byte 
char.lowbyte = char.lowbyte&127     ' Bitwise And (&) the low byte with 127

Char.highbyte = (Char.highbyte <<1) ' left shift the high byte 1 digit (multiplying by 2n)
	if packedbit <> 0 then
	Char.highbyte = Char.highbyte+1
	endif

    Gosub  Lcd_GotoXY
    Lcd_Data = Char
    
    gosub Lcd_SendChar            ' puttext
    Addr = Addr + 1               ' Point to next character
    PosX = PosX + 6
    if PosX > 78 then             ' If end of line, cycle to next line
        PosY = PosY + 1           
        PosX = 0
    endif
    goto StringOut                ' Continue with rest of the string

'' Original
'    Readcode Addr, Char           ' Get a character
'    if Char = 0 then StringDone   ' Look for Null char, Stop if found
'    Gosub Lcd_GotoXY
'    Lcd_Data = Char
    
'    gosub Lcd_SendChar            ' puttext
'    Addr = Addr + 1               ' Point to next character
'    PosX = PosX + 6
'    if PosX > 78 then             ' If end of line, cycle to next line
'        PosY = PosY + 1           
'        PosX = 0
'    endif
'    goto StringOut                ' Continue with rest of the string

  StringDone:
return
Please show me where have I blundered.

Kind regards,
Bill