|
1 /* |
|
2 * Copyright 1992 by Jutta Degener and Carsten Bormann, Technische |
|
3 * Universitaet Berlin. See the accompanying file "COPYRIGHT" for |
|
4 * details. THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE. |
|
5 */ |
|
6 |
|
7 /* $Header: /tmp_amd/presto/export/kbs/jutta/src/gsm/RCS/gsm_implode.c,v 1.2 1996/07/02 14:32:43 jutta Exp jutta $ */ |
|
8 |
|
9 #include "private.h" |
|
10 |
|
11 #include "gsm.h" |
|
12 #include "proto.h" |
|
13 |
|
14 void gsm_implode P3((s, source, c), gsm s, gsm_signal * source, gsm_byte * c) |
|
15 { |
|
16 /* variable size index |
|
17 |
|
18 GSM_MAGIC 4 - |
|
19 |
|
20 LARc[0] 6 0 |
|
21 LARc[1] 6 1 |
|
22 LARc[2] 5 2 |
|
23 LARc[3] 5 3 |
|
24 LARc[4] 4 4 |
|
25 LARc[5] 4 5 |
|
26 LARc[6] 3 6 |
|
27 LARc[7] 3 7 |
|
28 |
|
29 Nc[0] 7 8 |
|
30 bc[0] 2 9 |
|
31 Mc[0] 2 10 |
|
32 xmaxc[0] 6 11 |
|
33 xmc[0] 3 12 |
|
34 xmc[1] 3 13 |
|
35 xmc[2] 3 14 |
|
36 xmc[3] 3 15 |
|
37 xmc[4] 3 16 |
|
38 xmc[5] 3 17 |
|
39 xmc[6] 3 18 |
|
40 xmc[7] 3 19 |
|
41 xmc[8] 3 20 |
|
42 xmc[9] 3 21 |
|
43 xmc[10] 3 22 |
|
44 xmc[11] 3 23 |
|
45 xmc[12] 3 24 |
|
46 |
|
47 Nc[1] 7 25 |
|
48 bc[1] 2 26 |
|
49 Mc[1] 2 27 |
|
50 xmaxc[1] 6 28 |
|
51 xmc[13] 3 29 |
|
52 xmc[14] 3 30 |
|
53 xmc[15] 3 31 |
|
54 xmc[16] 3 32 |
|
55 xmc[17] 3 33 |
|
56 xmc[18] 3 34 |
|
57 xmc[19] 3 35 |
|
58 xmc[20] 3 36 |
|
59 xmc[21] 3 37 |
|
60 xmc[22] 3 38 |
|
61 xmc[23] 3 39 |
|
62 xmc[24] 3 40 |
|
63 xmc[25] 3 41 |
|
64 |
|
65 Nc[2] 7 42 |
|
66 bc[2] 2 43 |
|
67 Mc[2] 2 44 |
|
68 xmaxc[2] 6 45 |
|
69 xmc[26] 3 46 |
|
70 xmc[27] 3 47 |
|
71 xmc[28] 3 48 |
|
72 xmc[29] 3 49 |
|
73 xmc[30] 3 50 |
|
74 xmc[31] 3 51 |
|
75 xmc[32] 3 52 |
|
76 xmc[33] 3 53 |
|
77 xmc[34] 3 54 |
|
78 xmc[35] 3 55 |
|
79 xmc[36] 3 56 |
|
80 xmc[37] 3 57 |
|
81 xmc[38] 3 58 |
|
82 |
|
83 Nc[3] 7 59 |
|
84 bc[3] 2 60 |
|
85 Mc[3] 2 61 |
|
86 xmaxc[3] 6 62 |
|
87 xmc[39] 3 63 |
|
88 xmc[40] 3 64 |
|
89 xmc[41] 3 65 |
|
90 xmc[42] 3 66 |
|
91 xmc[43] 3 67 |
|
92 xmc[44] 3 68 |
|
93 xmc[45] 3 69 |
|
94 xmc[46] 3 70 |
|
95 xmc[47] 3 71 |
|
96 xmc[48] 3 72 |
|
97 xmc[49] 3 73 |
|
98 xmc[50] 3 74 |
|
99 xmc[51] 3 75 |
|
100 */ |
|
101 |
|
102 /* There are 76 parameters per frame. The first eight are |
|
103 * unique. The remaining 68 are four identical subframes of |
|
104 * 17 parameters each. gsm_implode converts from a representation |
|
105 * of these parameters as values in one array of signed words |
|
106 * to the "packed" version of a GSM frame. |
|
107 */ |
|
108 |
|
109 # define LARc source |
|
110 # define Nc *((gsm_signal (*) [17])(source + 8)) |
|
111 # define bc *((gsm_signal (*) [17])(source + 9)) |
|
112 # define Mc *((gsm_signal (*) [17])(source + 10)) |
|
113 # define xmaxc *((gsm_signal (*) [17])(source + 11)) |
|
114 |
|
115 // Wirlab |
|
116 (void)s; |
|
117 |
|
118 #ifdef WAV49 |
|
119 if (s->wav_fmt) { |
|
120 |
|
121 uword sr = 0; |
|
122 if (s->frame_index == 0) { |
|
123 |
|
124 sr = *c++; |
|
125 LARc[0] = sr & 0x3f; sr >>= 6; |
|
126 sr |= (uword)*c++ << 2; |
|
127 LARc[1] = sr & 0x3f; sr >>= 6; |
|
128 sr |= (uword)*c++ << 4; |
|
129 LARc[2] = sr & 0x1f; sr >>= 5; |
|
130 LARc[3] = sr & 0x1f; sr >>= 5; |
|
131 sr |= (uword)*c++ << 2; |
|
132 LARc[4] = sr & 0xf; sr >>= 4; |
|
133 LARc[5] = sr & 0xf; sr >>= 4; |
|
134 sr |= (uword)*c++ << 2; /* 5 */ |
|
135 LARc[6] = sr & 0x7; sr >>= 3; |
|
136 LARc[7] = sr & 0x7; sr >>= 3; |
|
137 sr |= (uword)*c++ << 4; |
|
138 Nc[0] = sr & 0x7f; sr >>= 7; |
|
139 bc[0] = sr & 0x3; sr >>= 2; |
|
140 Mc[0] = sr & 0x3; sr >>= 2; |
|
141 sr |= (uword)*c++ << 1; |
|
142 xmaxc[0] = sr & 0x3f; sr >>= 6; |
|
143 #undef xmc |
|
144 #define xmc (source + 12) |
|
145 xmc[0] = sr & 0x7; sr >>= 3; |
|
146 sr = *c++; |
|
147 xmc[1] = sr & 0x7; sr >>= 3; |
|
148 xmc[2] = sr & 0x7; sr >>= 3; |
|
149 sr |= (uword)*c++ << 2; |
|
150 xmc[3] = sr & 0x7; sr >>= 3; |
|
151 xmc[4] = sr & 0x7; sr >>= 3; |
|
152 xmc[5] = sr & 0x7; sr >>= 3; |
|
153 sr |= (uword)*c++ << 1; /* 10 */ |
|
154 xmc[6] = sr & 0x7; sr >>= 3; |
|
155 xmc[7] = sr & 0x7; sr >>= 3; |
|
156 xmc[8] = sr & 0x7; sr >>= 3; |
|
157 sr = *c++; |
|
158 xmc[9] = sr & 0x7; sr >>= 3; |
|
159 xmc[10] = sr & 0x7; sr >>= 3; |
|
160 sr |= (uword)*c++ << 2; |
|
161 xmc[11] = sr & 0x7; sr >>= 3; |
|
162 xmc[12] = sr & 0x7; sr >>= 3; |
|
163 sr |= (uword)*c++ << 4; |
|
164 Nc[1] = sr & 0x7f; sr >>= 7; |
|
165 bc[1] = sr & 0x3; sr >>= 2; |
|
166 Mc[1] = sr & 0x3; sr >>= 2; |
|
167 sr |= (uword)*c++ << 1; |
|
168 xmaxc[1] = sr & 0x3f; sr >>= 6; |
|
169 #undef xmc |
|
170 #define xmc (source + 29 - 13) |
|
171 xmc[13] = sr & 0x7; sr >>= 3; |
|
172 sr = *c++; /* 15 */ |
|
173 xmc[14] = sr & 0x7; sr >>= 3; |
|
174 xmc[15] = sr & 0x7; sr >>= 3; |
|
175 sr |= (uword)*c++ << 2; |
|
176 xmc[16] = sr & 0x7; sr >>= 3; |
|
177 xmc[17] = sr & 0x7; sr >>= 3; |
|
178 xmc[18] = sr & 0x7; sr >>= 3; |
|
179 sr |= (uword)*c++ << 1; |
|
180 xmc[19] = sr & 0x7; sr >>= 3; |
|
181 xmc[20] = sr & 0x7; sr >>= 3; |
|
182 xmc[21] = sr & 0x7; sr >>= 3; |
|
183 sr = *c++; |
|
184 xmc[22] = sr & 0x7; sr >>= 3; |
|
185 xmc[23] = sr & 0x7; sr >>= 3; |
|
186 sr |= (uword)*c++ << 2; |
|
187 xmc[24] = sr & 0x7; sr >>= 3; |
|
188 xmc[25] = sr & 0x7; sr >>= 3; |
|
189 sr |= (uword)*c++ << 4; /* 20 */ |
|
190 Nc[2] = sr & 0x7f; sr >>= 7; |
|
191 bc[2] = sr & 0x3; sr >>= 2; |
|
192 Mc[2] = sr & 0x3; sr >>= 2; |
|
193 sr |= (uword)*c++ << 1; |
|
194 xmaxc[2] = sr & 0x3f; sr >>= 6; |
|
195 #undef xmc |
|
196 #define xmc (source + 46 - 26) |
|
197 xmc[26] = sr & 0x7; sr >>= 3; |
|
198 sr = *c++; |
|
199 xmc[27] = sr & 0x7; sr >>= 3; |
|
200 xmc[28] = sr & 0x7; sr >>= 3; |
|
201 sr |= (uword)*c++ << 2; |
|
202 xmc[29] = sr & 0x7; sr >>= 3; |
|
203 xmc[30] = sr & 0x7; sr >>= 3; |
|
204 xmc[31] = sr & 0x7; sr >>= 3; |
|
205 sr |= (uword)*c++ << 1; |
|
206 xmc[32] = sr & 0x7; sr >>= 3; |
|
207 xmc[33] = sr & 0x7; sr >>= 3; |
|
208 xmc[34] = sr & 0x7; sr >>= 3; |
|
209 sr = *c++; /* 25 */ |
|
210 xmc[35] = sr & 0x7; sr >>= 3; |
|
211 xmc[36] = sr & 0x7; sr >>= 3; |
|
212 sr |= (uword)*c++ << 2; |
|
213 xmc[37] = sr & 0x7; sr >>= 3; |
|
214 xmc[38] = sr & 0x7; sr >>= 3; |
|
215 sr |= (uword)*c++ << 4; |
|
216 Nc[3] = sr & 0x7f; sr >>= 7; |
|
217 bc[3] = sr & 0x3; sr >>= 2; |
|
218 Mc[3] = sr & 0x3; sr >>= 2; |
|
219 sr |= (uword)*c++ << 1; |
|
220 xmaxc[3] = sr & 0x3f; sr >>= 6; |
|
221 #undef xmc |
|
222 #define xmc (source + 63 - 39) |
|
223 |
|
224 xmc[39] = sr & 0x7; sr >>= 3; |
|
225 sr = *c++; |
|
226 xmc[40] = sr & 0x7; sr >>= 3; |
|
227 xmc[41] = sr & 0x7; sr >>= 3; |
|
228 sr |= (uword)*c++ << 2; /* 30 */ |
|
229 xmc[42] = sr & 0x7; sr >>= 3; |
|
230 xmc[43] = sr & 0x7; sr >>= 3; |
|
231 xmc[44] = sr & 0x7; sr >>= 3; |
|
232 sr |= (uword)*c++ << 1; |
|
233 xmc[45] = sr & 0x7; sr >>= 3; |
|
234 xmc[46] = sr & 0x7; sr >>= 3; |
|
235 xmc[47] = sr & 0x7; sr >>= 3; |
|
236 sr = *c++; |
|
237 xmc[48] = sr & 0x7; sr >>= 3; |
|
238 xmc[49] = sr & 0x7; sr >>= 3; |
|
239 sr |= (uword)*c++ << 2; |
|
240 xmc[50] = sr & 0x7; sr >>= 3; |
|
241 xmc[51] = sr & 0x7; sr >>= 3; |
|
242 |
|
243 s->frame_chain = sr & 0xf; |
|
244 } |
|
245 else { |
|
246 sr = s->frame_chain; |
|
247 sr |= (uword)*c++ << 4; /* 1 */ |
|
248 LARc[0] = sr & 0x3f; sr >>= 6; |
|
249 LARc[1] = sr & 0x3f; sr >>= 6; |
|
250 sr = *c++; |
|
251 LARc[2] = sr & 0x1f; sr >>= 5; |
|
252 sr |= (uword)*c++ << 3; |
|
253 LARc[3] = sr & 0x1f; sr >>= 5; |
|
254 LARc[4] = sr & 0xf; sr >>= 4; |
|
255 sr |= (uword)*c++ << 2; |
|
256 LARc[5] = sr & 0xf; sr >>= 4; |
|
257 LARc[6] = sr & 0x7; sr >>= 3; |
|
258 LARc[7] = sr & 0x7; sr >>= 3; |
|
259 sr = *c++; /* 5 */ |
|
260 Nc[0] = sr & 0x7f; sr >>= 7; |
|
261 sr |= (uword)*c++ << 1; |
|
262 bc[0] = sr & 0x3; sr >>= 2; |
|
263 Mc[0] = sr & 0x3; sr >>= 2; |
|
264 sr |= (uword)*c++ << 5; |
|
265 xmaxc[0] = sr & 0x3f; sr >>= 6; |
|
266 #undef xmc |
|
267 #define xmc (source + 12) |
|
268 xmc[0] = sr & 0x7; sr >>= 3; |
|
269 xmc[1] = sr & 0x7; sr >>= 3; |
|
270 sr |= (uword)*c++ << 1; |
|
271 xmc[2] = sr & 0x7; sr >>= 3; |
|
272 xmc[3] = sr & 0x7; sr >>= 3; |
|
273 xmc[4] = sr & 0x7; sr >>= 3; |
|
274 sr = *c++; |
|
275 xmc[5] = sr & 0x7; sr >>= 3; |
|
276 xmc[6] = sr & 0x7; sr >>= 3; |
|
277 sr |= (uword)*c++ << 2; /* 10 */ |
|
278 xmc[7] = sr & 0x7; sr >>= 3; |
|
279 xmc[8] = sr & 0x7; sr >>= 3; |
|
280 xmc[9] = sr & 0x7; sr >>= 3; |
|
281 sr |= (uword)*c++ << 1; |
|
282 xmc[10] = sr & 0x7; sr >>= 3; |
|
283 xmc[11] = sr & 0x7; sr >>= 3; |
|
284 xmc[12] = sr & 0x7; sr >>= 3; |
|
285 sr = *c++; |
|
286 Nc[1] = sr & 0x7f; sr >>= 7; |
|
287 sr |= (uword)*c++ << 1; |
|
288 bc[1] = sr & 0x3; sr >>= 2; |
|
289 Mc[1] = sr & 0x3; sr >>= 2; |
|
290 sr |= (uword)*c++ << 5; |
|
291 xmaxc[1] = sr & 0x3f; sr >>= 6; |
|
292 #undef xmc |
|
293 #define xmc (source + 29 - 13) |
|
294 xmc[13] = sr & 0x7; sr >>= 3; |
|
295 xmc[14] = sr & 0x7; sr >>= 3; |
|
296 sr |= (uword)*c++ << 1; /* 15 */ |
|
297 xmc[15] = sr & 0x7; sr >>= 3; |
|
298 xmc[16] = sr & 0x7; sr >>= 3; |
|
299 xmc[17] = sr & 0x7; sr >>= 3; |
|
300 sr = *c++; |
|
301 xmc[18] = sr & 0x7; sr >>= 3; |
|
302 xmc[19] = sr & 0x7; sr >>= 3; |
|
303 sr |= (uword)*c++ << 2; |
|
304 xmc[20] = sr & 0x7; sr >>= 3; |
|
305 xmc[21] = sr & 0x7; sr >>= 3; |
|
306 xmc[22] = sr & 0x7; sr >>= 3; |
|
307 sr |= (uword)*c++ << 1; |
|
308 xmc[23] = sr & 0x7; sr >>= 3; |
|
309 xmc[24] = sr & 0x7; sr >>= 3; |
|
310 xmc[25] = sr & 0x7; sr >>= 3; |
|
311 sr = *c++; |
|
312 Nc[2] = sr & 0x7f; sr >>= 7; |
|
313 sr |= (uword)*c++ << 1; /* 20 */ |
|
314 bc[2] = sr & 0x3; sr >>= 2; |
|
315 Mc[2] = sr & 0x3; sr >>= 2; |
|
316 sr |= (uword)*c++ << 5; |
|
317 xmaxc[2] = sr & 0x3f; sr >>= 6; |
|
318 #undef xmc |
|
319 #define xmc (source + 46 - 26) |
|
320 xmc[26] = sr & 0x7; sr >>= 3; |
|
321 xmc[27] = sr & 0x7; sr >>= 3; |
|
322 sr |= (uword)*c++ << 1; |
|
323 xmc[28] = sr & 0x7; sr >>= 3; |
|
324 xmc[29] = sr & 0x7; sr >>= 3; |
|
325 xmc[30] = sr & 0x7; sr >>= 3; |
|
326 sr = *c++; |
|
327 xmc[31] = sr & 0x7; sr >>= 3; |
|
328 xmc[32] = sr & 0x7; sr >>= 3; |
|
329 sr |= (uword)*c++ << 2; |
|
330 xmc[33] = sr & 0x7; sr >>= 3; |
|
331 xmc[34] = sr & 0x7; sr >>= 3; |
|
332 xmc[35] = sr & 0x7; sr >>= 3; |
|
333 sr |= (uword)*c++ << 1; /* 25 */ |
|
334 xmc[36] = sr & 0x7; sr >>= 3; |
|
335 xmc[37] = sr & 0x7; sr >>= 3; |
|
336 xmc[38] = sr & 0x7; sr >>= 3; |
|
337 sr = *c++; |
|
338 Nc[3] = sr & 0x7f; sr >>= 7; |
|
339 sr |= (uword)*c++ << 1; |
|
340 bc[3] = sr & 0x3; sr >>= 2; |
|
341 Mc[3] = sr & 0x3; sr >>= 2; |
|
342 sr |= (uword)*c++ << 5; |
|
343 xmaxc[3] = sr & 0x3f; sr >>= 6; |
|
344 #undef xmc |
|
345 #define xmc (source + 63 - 39) |
|
346 |
|
347 xmc[39] = sr & 0x7; sr >>= 3; |
|
348 xmc[40] = sr & 0x7; sr >>= 3; |
|
349 sr |= (uword)*c++ << 1; |
|
350 xmc[41] = sr & 0x7; sr >>= 3; |
|
351 xmc[42] = sr & 0x7; sr >>= 3; |
|
352 xmc[43] = sr & 0x7; sr >>= 3; |
|
353 sr = *c++; /* 30 */ |
|
354 xmc[44] = sr & 0x7; sr >>= 3; |
|
355 xmc[45] = sr & 0x7; sr >>= 3; |
|
356 sr |= (uword)*c++ << 2; |
|
357 xmc[46] = sr & 0x7; sr >>= 3; |
|
358 xmc[47] = sr & 0x7; sr >>= 3; |
|
359 xmc[48] = sr & 0x7; sr >>= 3; |
|
360 sr |= (uword)*c++ << 1; |
|
361 xmc[49] = sr & 0x7; sr >>= 3; |
|
362 xmc[50] = sr & 0x7; sr >>= 3; |
|
363 xmc[51] = sr & 0x7; sr >>= 3; |
|
364 } |
|
365 } |
|
366 else |
|
367 #endif |
|
368 { |
|
369 |
|
370 *c++ = ((GSM_MAGIC & 0xF) << 4) /* 1 */ |
|
371 | ((LARc[0] >> 2) & 0xF); |
|
372 *c++ = ((LARc[0] & 0x3) << 6) |
|
373 | (LARc[1] & 0x3F); |
|
374 *c++ = ((LARc[2] & 0x1F) << 3) |
|
375 | ((LARc[3] >> 2) & 0x7); |
|
376 *c++ = ((LARc[3] & 0x3) << 6) |
|
377 | ((LARc[4] & 0xF) << 2) |
|
378 | ((LARc[5] >> 2) & 0x3); |
|
379 *c++ = ((LARc[5] & 0x3) << 6) |
|
380 | ((LARc[6] & 0x7) << 3) |
|
381 | (LARc[7] & 0x7); |
|
382 |
|
383 |
|
384 *c++ = ((Nc[0] & 0x7F) << 1) |
|
385 |
|
386 |
|
387 | ((bc[0] >> 1) & 0x1); |
|
388 *c++ = ((bc[0] & 0x1) << 7) |
|
389 |
|
390 |
|
391 | ((Mc[0] & 0x3) << 5) |
|
392 |
|
393 | ((xmaxc[0] >> 1) & 0x1F); |
|
394 *c++ = ((xmaxc[0] & 0x1) << 7) |
|
395 |
|
396 #undef xmc |
|
397 #define xmc (source + 12) |
|
398 |
|
399 | ((xmc[0] & 0x7) << 4) |
|
400 | ((xmc[1] & 0x7) << 1) |
|
401 | ((xmc[2] >> 2) & 0x1); |
|
402 *c++ = ((xmc[2] & 0x3) << 6) |
|
403 | ((xmc[3] & 0x7) << 3) |
|
404 | (xmc[4] & 0x7); |
|
405 *c++ = ((xmc[5] & 0x7) << 5) /* 10 */ |
|
406 | ((xmc[6] & 0x7) << 2) |
|
407 | ((xmc[7] >> 1) & 0x3); |
|
408 *c++ = ((xmc[7] & 0x1) << 7) |
|
409 | ((xmc[8] & 0x7) << 4) |
|
410 | ((xmc[9] & 0x7) << 1) |
|
411 | ((xmc[10] >> 2) & 0x1); |
|
412 *c++ = ((xmc[10] & 0x3) << 6) |
|
413 | ((xmc[11] & 0x7) << 3) |
|
414 | (xmc[12] & 0x7); |
|
415 |
|
416 |
|
417 *c++ = ((Nc[1] & 0x7F) << 1) |
|
418 |
|
419 |
|
420 | ((bc[1] >> 1) & 0x1); |
|
421 *c++ = ((bc[1] & 0x1) << 7) |
|
422 |
|
423 |
|
424 | ((Mc[1] & 0x3) << 5) |
|
425 |
|
426 |
|
427 | ((xmaxc[1] >> 1) & 0x1F); |
|
428 *c++ = ((xmaxc[1] & 0x1) << 7) |
|
429 |
|
430 #undef xmc |
|
431 #define xmc (source + 29 - 13) |
|
432 |
|
433 | ((xmc[13] & 0x7) << 4) |
|
434 | ((xmc[14] & 0x7) << 1) |
|
435 | ((xmc[15] >> 2) & 0x1); |
|
436 *c++ = ((xmc[15] & 0x3) << 6) |
|
437 | ((xmc[16] & 0x7) << 3) |
|
438 | (xmc[17] & 0x7); |
|
439 *c++ = ((xmc[18] & 0x7) << 5) |
|
440 | ((xmc[19] & 0x7) << 2) |
|
441 | ((xmc[20] >> 1) & 0x3); |
|
442 *c++ = ((xmc[20] & 0x1) << 7) |
|
443 | ((xmc[21] & 0x7) << 4) |
|
444 | ((xmc[22] & 0x7) << 1) |
|
445 | ((xmc[23] >> 2) & 0x1); |
|
446 *c++ = ((xmc[23] & 0x3) << 6) |
|
447 | ((xmc[24] & 0x7) << 3) |
|
448 | (xmc[25] & 0x7); |
|
449 |
|
450 |
|
451 *c++ = ((Nc[2] & 0x7F) << 1) /* 20 */ |
|
452 |
|
453 |
|
454 | ((bc[2] >> 1) & 0x1); |
|
455 *c++ = ((bc[2] & 0x1) << 7) |
|
456 |
|
457 |
|
458 | ((Mc[2] & 0x3) << 5) |
|
459 |
|
460 |
|
461 | ((xmaxc[2] >> 1) & 0x1F); |
|
462 *c++ = ((xmaxc[2] & 0x1) << 7) |
|
463 |
|
464 #undef xmc |
|
465 #define xmc (source + 46 - 26) |
|
466 |
|
467 | ((xmc[26] & 0x7) << 4) |
|
468 | ((xmc[27] & 0x7) << 1) |
|
469 | ((xmc[28] >> 2) & 0x1); |
|
470 *c++ = ((xmc[28] & 0x3) << 6) |
|
471 | ((xmc[29] & 0x7) << 3) |
|
472 | (xmc[30] & 0x7); |
|
473 *c++ = ((xmc[31] & 0x7) << 5) |
|
474 | ((xmc[32] & 0x7) << 2) |
|
475 | ((xmc[33] >> 1) & 0x3); |
|
476 *c++ = ((xmc[33] & 0x1) << 7) |
|
477 | ((xmc[34] & 0x7) << 4) |
|
478 | ((xmc[35] & 0x7) << 1) |
|
479 | ((xmc[36] >> 2) & 0x1); |
|
480 *c++ = ((xmc[36] & 0x3) << 6) |
|
481 | ((xmc[37] & 0x7) << 3) |
|
482 | (xmc[38] & 0x7); |
|
483 |
|
484 |
|
485 *c++ = ((Nc[3] & 0x7F) << 1) |
|
486 |
|
487 |
|
488 | ((bc[3] >> 1) & 0x1); |
|
489 *c++ = ((bc[3] & 0x1) << 7) |
|
490 |
|
491 |
|
492 | ((Mc[3] & 0x3) << 5) |
|
493 |
|
494 |
|
495 | ((xmaxc[3] >> 1) & 0x1F); |
|
496 *c++ = ((xmaxc[3] & 0x1) << 7) |
|
497 |
|
498 #undef xmc |
|
499 #define xmc (source + 63 - 39) |
|
500 |
|
501 | ((xmc[39] & 0x7) << 4) |
|
502 | ((xmc[40] & 0x7) << 1) |
|
503 | ((xmc[41] >> 2) & 0x1); |
|
504 *c++ = ((xmc[41] & 0x3) << 6) /* 30 */ |
|
505 | ((xmc[42] & 0x7) << 3) |
|
506 | (xmc[43] & 0x7); |
|
507 *c++ = ((xmc[44] & 0x7) << 5) |
|
508 | ((xmc[45] & 0x7) << 2) |
|
509 | ((xmc[46] >> 1) & 0x3); |
|
510 *c++ = ((xmc[46] & 0x1) << 7) |
|
511 | ((xmc[47] & 0x7) << 4) |
|
512 | ((xmc[48] & 0x7) << 1) |
|
513 | ((xmc[49] >> 2) & 0x1); |
|
514 *c++ = ((xmc[49] & 0x3) << 6) |
|
515 | ((xmc[50] & 0x7) << 3) |
|
516 | (xmc[51] & 0x7); |
|
517 } |
|
518 } |