Charles,
You got me thinking about breaking up array, so I tried a few things,
Arrayread Array[index point in array], limit,goto................................. starts read at a point into array.

After storing chars with RXint, framing with start and end char to start loading and triggering a finish to rcv and parse, I have an index of char count. So now I can figure indexing points and lengths as follows.

Code:
 ParseSUB:        'InDX up to 500 dec
b6=0 
if indx<250 then             'char count less than 250 for 1 sweep 
arrayread rcvdata, INDX,NONE,  [wait("RUN")]:b6=1:return
else 
INDX1=indx-245                'char count >250 and < 500 about
arrayread rcvdata, 250,NONE1,  [wait("RUN")]:b6=1:return  'test first 250 char in array
NONE1;
arrayread rcvdata[245], INDX1,NONE,  [wait("RUN")]:b6=1:return  'test balance of chars  at >245 indx
NONE: RETURN                    'back-up a few chars incase "wait" straddles arrayread
endif
Same setup for other parses, I'm not sure if some code could be reduced.
Don