>The 320 record is made into
>254 and 66
>
>m.buffer = FGETS(gnOrigin)
>? LEN(m.buffer)
>
>Any idea why FGETS() is doing an invalid partition of my record?
Because you omitted the second parameter and it defaulted to 254. Include 320 (or, better, a somewhat bigger number):
m.buffer = FGETS(gnOrigin, 420)
? LEN(m.buffer)