XMODEM_BLOCK
u_char buf[3 + XMODEM_BLOCK + 2], c;
pktlen = 3 + XMODEM_BLOCK + (crc_mode ? 2 : 1);
len = fread(buf + 3, 1, XMODEM_BLOCK, f);
memset(buf + 3 + len, XMODEM_SUB, XMODEM_BLOCK - len);
crc = xmodem_crc16(buf + 3, XMODEM_BLOCK);
buf[3 + XMODEM_BLOCK] = crc >> 8;
buf[3 + XMODEM_BLOCK + 1] = crc & 0xFF;
buf[3 + XMODEM_BLOCK] = 0;
for (i = 0; i < XMODEM_BLOCK; i++)
buf[3 + XMODEM_BLOCK] += buf[3 + i];
if (len < XMODEM_BLOCK)