Compiler know how to handle user command with string.
So lets try to get something...
Try this code:

Code:
GLCD_Addr var word
GLCD_Char var byte
asm   
;----[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
 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

 ENDASM
GLCD_StringOut:
Readcode GLCD_Addr, GLCD_Char ' Get a character
if GLCD_Char = 0 then RETURN ' Look for Null char, Stop if found