From 9b0002fc40f4d8b97cf2064910a9ded467f29276 Mon Sep 17 00:00:00 2001 From: fishsoupisgood Date: Tue, 26 Feb 2019 10:56:52 +0000 Subject: fish --- msf.c | 72 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 msf.c (limited to 'msf.c') diff --git a/msf.c b/msf.c new file mode 100644 index 0000000..47e5188 --- /dev/null +++ b/msf.c @@ -0,0 +1,72 @@ +#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; + } +} + -- cgit v1.2.3