Hi Don,
It's not clear to me exactly what your trying to do. You say that ARRAYWRITE doesn't access porgram space but that's exactly what it does. It takes data stored in program space and moves it to and array in RAM. It can also copy data from RAM to the array using one of many modifiers, like STR.
Code:
String_1 VAR BYTE 128
String_2 VAR BYTE 64
Value VAR BYTE
Value = 123
ARRAYWRITE, String_2, [" and this is the second part of the string.",0]
ARRAYWRITE, String_1, ["This is the first part,", STR String_2, " The variable value is: ", DEC Value, 0]
The STR modifer writes the contents of String_2 in this case to String_1. It stops when it sees the 0 padded to the end of String_2. I don't think it actually writes that 0 in which case we're in trouble....
However, since I don't fully understand your problem I'm not sure this helps at all. If you have enough RAM to store the full 600+ bytes string you could build the string with a single ARRAYWRITE statement, pad a zero at the end and then enable the TX interrupt to have it sent in the background.
I'm sorry if I'm completely missing the point here....
/Henrik.
Bookmarks