char Com_getchar (void)
{	
 if (Com_rbuflen () == 0)		//If the receive buffer is empty, return an error value.
   return (-1);
 else if (Com_rbuflen () >= RBUF_SIZE)	//If the receive buffer is overflow, return an error value.
 {
	r_in = 0;	r_out = 0;				//Reset and clear the receive buffer
	return (-1);
 }
 //Return the byte pointed by r_out in rbuf, then update the pointer r_out  
 return (rbuf [(r_out++) & (RBUF_SIZE - 1)]);	
}