Thomas, I would try a raw read from the input to see what is being returned by the device. Something like this:
while 1
obtain (0,siz=1),'bi',x$,'ei'
if x$="" x$=eom
if x$=esc break
print hta(x$)," ",
wend
Loops until ESCAPE is received
This should tell you exactly what is being sent. (You may need to change the ESC to something else should the reader send that character).
Once we know exactly what is being received between the fields we may be able to advise.