XCHR
printf("%c%c ", XCHR(pkt[i] >> 4), XCHR(pkt[i]));
XCHR((i + 1) >> 28), XCHR((i + 1) >> 24),
XCHR((i + 1) >> 20), XCHR((i + 1) >> 16),
XCHR((i + 1) >> 12), XCHR((i + 1) >> 8),
XCHR((i + 1) >> 4), XCHR(i + 1));
printf("%c%c ", XCHR(pkt[i]>>4), XCHR(pkt[i]));
XCHR((i+1)>>28), XCHR((i+1)>>24), XCHR((i+1)>>20),
XCHR((i+1)>>16), XCHR((i+1)>>12), XCHR((i+1)>>8),
XCHR((i+1)>>4), XCHR(i+1));
printf("%c%c ", XCHR(pkt[i]>>4), XCHR(pkt[i]));
printf("%c\n%c%c%c%c: ", '"', XCHR((i+1)>>12),
XCHR((i+1)>>8), XCHR((i+1)>>4), XCHR(i+1));
printf("%c%c ", XCHR(pkt[i]>>4), XCHR(pkt[i]));
XCHR((i+1)>>28), XCHR((i+1)>>24),
XCHR((i+1)>>20), XCHR((i+1)>>16),
XCHR((i+1)>>12), XCHR((i+1)>>8),
XCHR((i+1)>>4), XCHR(i+1));