Here is what I do to parse an unknown length GPS message.

GetData:
ProcessRMC:
serin2 rx232, 188, 2000, nogps,[WAIT("$GPRMC")] ' find start
for i = 0 to 84 ' plenty of length - can be cut back
serin2 rx232, 188, [a[i]]
next i

Here I bring in 84 characters after first finding the $GPRMC header. Having made the 84 character array I then go through it and count commas to find the particular fields I am looking for.

The complete code was posted to the GPS section of this forum a couple of years back.

HTH
Brian