calc_parity
packet[0] = calc_parity(0x07);
packet[1] = calc_parity(0x01);
packet[2] = calc_parity(0x40 | tm.tm_min);
packet[3] = calc_parity(0x40 | tm.tm_hour);
packet[4] = calc_parity(0x40 | tm.tm_mday);
packet[4] = calc_parity(0x60 | tm.tm_mday);
packet[5] = calc_parity(0x40 | (1 + tm.tm_mon));
packet[6] = calc_parity(0x40 | (1 + tm.tm_wday));
packet[7] = calc_parity(0x40 | ((tm.tm_year - 90) & 0x3f));
packet[8] = calc_parity(0x0f);
packet[9] = calc_parity(0x100 - checksum);
packet[10] = calc_parity(0x07);
packet[11] = calc_parity(0x04);
packet[12] = calc_parity(0x40 | ((sys_tz.tz_minuteswest / 60) & 0x1f));
packet[12] = calc_parity(0x40 | ((24 + sys_tz.tz_minuteswest / 60) & 0x1f));
packet[13] = calc_parity(0);
packet[14] = calc_parity(0x0f);
packet[15] = calc_parity(0x100 - checksum);
packet[i] = calc_parity(packet[i]);
data0->data[0] = calc_parity(vivid_cc_sequence1[2 * frame]);
data0->data[1] = calc_parity(vivid_cc_sequence1[2 * frame + 1]);
data0->data[0] = calc_parity(vivid_cc_sequence2[2 * frame]);
data0->data[1] = calc_parity(vivid_cc_sequence2[2 * frame + 1]);
data0->data[0] = calc_parity(0);
data0->data[1] = calc_parity(0);
data1->data[0] = calc_parity(0);
data1->data[1] = calc_parity(0);