Thanks Henrik,
It seems that ArrayWrite can't access program mem directly, this code didn't work, probably same for EEprom . Looks like it only works for ram to ram functioning.

Code:
arraywrite  snd_array ,[str str2,0]   (Didn't work)


asm                        ;test tables at top of program mem
                 
str1   org 0xb100             
    db  "<name=IDLE_TIME,value=",0 
 
str2   org 0xb200   
    db  "<name=LONG,value=",0 
 
str3   org 0xb300    
    db  "<name=IP Address,value= 192.168.1.3>",0 
  
endasm
like you said, I would have to build string-array piece by piece and send when done or send piece by piece out TX.
I understand that the time it takes to send 600 chars @ 115200 is the same no matter how its sent, but the machine instructions to send by TX should be much less than HSER or SER. The main loop of 10X per second (100 milli sec per loop) should allow for about 300,000 instructions each .1sec loop without overrunning timer interrupt. The use of interrupts keeps all that constant.
I think....

don