comparison trau-decode/parse-tfo16.c @ 76:d4ee42801cdc

trau-decode: factor out parse-fr-common.c
author Mychaela Falconia <falcon@freecalypso.org>
date Sat, 08 Feb 2025 04:57:15 +0000
parents 5f98c5cae4ea
children
comparison
equal deleted inserted replaced
75:b518ab15b518 76:d4ee42801cdc
16 HUNT_FOUND_0, 16 HUNT_FOUND_0,
17 GOT_8_ZEROS, 17 GOT_8_ZEROS,
18 SYNCED 18 SYNCED
19 } state; 19 } state;
20 static unsigned hunt_for_0_count, frame_pos_count; 20 static unsigned hunt_for_0_count, frame_pos_count;
21 static uint8_t in_frame_2bit[160], frame_bits[320], d_bits[260]; 21 static uint8_t in_frame_2bit[160], frame_bits[320];
22 22
23 static void 23 static void
24 unpack_dibits() 24 unpack_dibits()
25 { 25 {
26 int i, inb; 26 int i, inb;
57 } 57 }
58 return accum; 58 return accum;
59 } 59 }
60 60
61 static void 61 static void
62 collect_d_bits()
63 {
64 bcopy(frame_bits + 33, d_bits, 15);
65 bcopy(frame_bits + 49, d_bits + 15, 15);
66 bcopy(frame_bits + 65, d_bits + 30, 15);
67 bcopy(frame_bits + 81, d_bits + 45, 15);
68 bcopy(frame_bits + 97, d_bits + 60, 15);
69 bcopy(frame_bits + 113, d_bits + 75, 15);
70 bcopy(frame_bits + 129, d_bits + 90, 15);
71 bcopy(frame_bits + 145, d_bits + 105, 15);
72 bcopy(frame_bits + 161, d_bits + 120, 15);
73 bcopy(frame_bits + 177, d_bits + 135, 15);
74 bcopy(frame_bits + 193, d_bits + 150, 15);
75 bcopy(frame_bits + 209, d_bits + 165, 15);
76 bcopy(frame_bits + 225, d_bits + 180, 15);
77 bcopy(frame_bits + 241, d_bits + 195, 15);
78 bcopy(frame_bits + 257, d_bits + 210, 15);
79 bcopy(frame_bits + 273, d_bits + 225, 15);
80 bcopy(frame_bits + 289, d_bits + 240, 15);
81 bcopy(frame_bits + 305, d_bits + 255, 5);
82 }
83
84 static void
85 process_frame() 62 process_frame()
86 { 63 {
87 unsigned c1_5eq, c6_11; 64 unsigned c1_5eq, c6_11;
88 65
89 printf("Frame at 0x%x:\n", file_offset - 159); 66 printf("Frame at 0x%x:\n", file_offset - 159);
110 putchar('\n'); 87 putchar('\n');
111 c6_11 = bits_to_num(frame_bits + 22, 6); 88 c6_11 = bits_to_num(frame_bits + 22, 6);
112 printf(" C6-C11: %u\n", c6_11); 89 printf(" C6-C11: %u\n", c6_11);
113 printf(" C12=%u C13=%u C14=%u C15=%u\n", frame_bits[28], 90 printf(" C12=%u C13=%u C14=%u C15=%u\n", frame_bits[28],
114 frame_bits[29], frame_bits[30], frame_bits[31]); 91 frame_bits[29], frame_bits[30], frame_bits[31]);
115 switch (c1_5eq) { 92 print_fr_efr_frame(frame_bits, c1_5eq);
116 case 0x02:
117 case 0x1C:
118 collect_d_bits();
119 print_fr_frame(d_bits);
120 break;
121 case 0x1A:
122 collect_d_bits();
123 check_efr_crc(d_bits);
124 print_efr_frame(d_bits);
125 break;
126 }
127 printf(" C16=%u C17=%u C18=%u C19=%u C20=%u C21=%u\n", 93 printf(" C16=%u C17=%u C18=%u C19=%u C20=%u C21=%u\n",
128 frame_bits[310], frame_bits[311], frame_bits[312], 94 frame_bits[310], frame_bits[311], frame_bits[312],
129 frame_bits[313], frame_bits[314], frame_bits[315]); 95 frame_bits[313], frame_bits[314], frame_bits[315]);
130 printf(" T1=%u T2=%u T3=%u T4=%u\n", frame_bits[316], frame_bits[317], 96 printf(" T1=%u T2=%u T3=%u T4=%u\n", frame_bits[316], frame_bits[317],
131 frame_bits[318], frame_bits[319]); 97 frame_bits[318], frame_bits[319]);