I am getting more like what I expected this morning. Including the MEMCOPY then the STRPRINT to the same SSx working ok without dropping characters.
Maybe just a bad case of HUHS?*
1) C-more will not always display all of a string. If it has no spaces in the string it will display as much as it can in a too narrow text object. If it has a space, you only get up to the last space that will fit. Leads to confusion.
e.g. 123456789a123456789b might show 123456789a123 but 123456789 1234567 would only show 123456789
2) When C-more writes a 44 character string to a Do-more SS location, the SS.MaxLen is set to the length C-more has for the tag. If it was MaxLen 64 and C-more writes a 23 character string, MaxLen becomes 44 in the Do-more. Why? What does this mean? If I change the size in the tag name database in C-more to 58 and write another string, MaxLen will change 58. If it sends a shorter length MaxLen does not decrease in size. At least this is what I think I am seeing.
Checked some more - I can data view edit a 64 character string into SS0 and SS0.MaxLen goes to 64. C-more then writes a 29 character string to SS0 and SS0.MaxLen is now 44 (which is the size I have set in the C-more Tag Database for the SS0 string only.)
So again, what is MaxLen's purpose and personality?
3) The tricky part seems to be that once C-more has set SS0.MaxLen to 44, a MEMCOPY from SS0 to SS147 results in SS147.MaxLen also dropping from 64 to 44. Now if I try to STRPRINT a longer string into SS147, it does not have enough room as it clips after 44 characters. Without the MEMCOPY, SS147.MaxLen stays at 64 and I can fit the STRPRINT result into just fine.
* Head Up Heinie Syndrome