   byte1 = getbyte();
    if (byte1 & 0xc0)
      continue;			        /* Resynchronize */
    byte2 = getbyte();
    byte3 = getbyte();
    byte3 = -byte3;
    outbyte = 0x40;
    outbyte |= ((byte2 >> 6)&0x03);
    outbyte |= ((byte3 >> 4)&0x0c);
    outbyte |= (byte1&0x01) << 5;	/* Left button */
    outbyte |= (byte1&0x02) << 3;	/* Right button */
    out[0] = outbyte;
    out[1] = (byte2)&0x3f;
    out[2] = (byte3)&0x3f;
    ret = write(fifo, out, 3);
    if (ret < 0 && errno != EPIPE)
      return;
  }
}


int main(int argc, char **argv)
{

  prog_name = argv[0];
  if (argc < 3) {
    fprintf(stderr, "Usage: %s <mouse dev> <fifo>\n", argv[0]);
    exit(1);
  }

  mouse = open