that's got it

Code:
GLCD_StringOut:
Readcode GLCD_Addr+j, g_chr ' Get a character
if  g_chr = 0 then RETURN ' Look for Null char, Stop if found
j=j+1
gosub gcga 
goto   GLCD_StringOut
Code:
;----[String]---------------------------------------------------------------
GLCDC?S  macro Cin
 local TheString, OverStr ; define local labels so you can call macro multiple times
 goto OverStr ; goto over string stored in FLASH, so processor can't execute that
TheString ;label to get address of your string
 data Cin, 0 ;add string to flash at TheString address and end string with 0
OverStr
  movlw   0
  CHK?RP    _j
  MOVWF     _j
 MOVE?CW TheString, _GLCD_Addr ;move addres of string to word variable, don't know how it would work with device that have more than 65535K of FLASH???
 L?CALL _GLCD_StringOut 
 endm
good work