SetByte - возвращает число переданных символов, если возвращает -1, то это значит вы слишком много символов положили в буффер - он переполнился. Послали запрос - дождитесь ответа или разумного таймаута 50-150 мс. И только после этого новый запрос
GetByte - возвращает указатель на след. символ.
Если символа нет - то указатель нулевой, если есть - отличный от нуля, его надо разименовать и получить доступ к данным и флагам. Разименовывание через ^