#include "project.h" static void msf_set_ident (uint8_t *i) { i[0] = 0; i[1] = 1; i[2] = 1; i[3] = 1; i[4] = 1; i[5] = 1; i[6] = 1; i[7] = 0; } void msf_make_bits (UTC u, uint8_t *a, uint8_t *b) { bzero (a, 60); bzero (b, 60); a[0] = 1; b[0] = 1; bcd_set (a, 17, 24, u.year % 100); bcd_set (a, 25, 29, u.month); bcd_set (a, 30, 35, u.mday); bcd_set (a, 36, 38, u.wday - 1); bcd_set (a, 39, 44, u.hour); bcd_set (a, 45, 51, u.minute); msf_set_ident (&a[52]); b[53] = 0; /* about to be BST */ b[54] = set_parity (a, 17, 24); b[55] = set_parity (a, 25, 35); b[56] = set_parity (a, 36, 38); b[57] = set_parity (a, 39, 51); b[58] = 0; /*BST vs GMT */ } void msf_make_stream (uint8_t *v, uint8_t *a, uint8_t *b) { unsigned s; bzero (v, 600); for (s = 0; s < 60; ++s, v += 10, ++a, ++b) { if (!s) memset (v, 1, 5); v[0] = 1; v[1] = *a; v[2] = *b; } }