Pongo aquí la solución que se obtuvo en el foro de software troubleshooting, por si es de utilidad para alguien.
-->Las variables iniciales deben ser declaradas como char, en vez de int. Decía:
int val = 0;
int serbyte = 0;
lo cambié por:
char val = 0;
char serbyte = 0;
El código del ejemplo tenía un error, decía:
if (val != -1) {
val = serbyte;
}
debería ser:
if (serbyte != -1) {
val = serbyte;
}
suerte,
adrián goya