Re com might help if you could share a snippet of your code. If you print to com it adds LF CR characters.
It’s not CRLF characters. Variable length strings print 2-bytes for size, then the string.
OPEN “com1” FOR OUTPUT AS #1
PRINT #1, “foo”
PRINT #1, “bar”
PRINT #1, “foo” + CHR$(13) + CHR$(10) + “bar”
Now, without knowing the size, how could you read those 3 batches of data and know how to delimitate them?
Fixed length data is simple — you know how many bytes to expect to send and receive, but how do you separate variable length data? How would you know that’s not a single line of data like PRINT #1, “foobarfoo” + CHR$(13) + CHR$(10) + “bar”?
BASIC sends string size (as a 2-byte integer) and then the string, when using PRINT with variable-length strings.
If you just want to send raw data, use GET/PUT instead.