|
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_print.c,v 1.1 1992/10/28 00:15:50 jutta Exp $ */ |
|
8 |
|
9 #include <stdio.h> |
|
10 |
|
11 #include "private.h" |
|
12 |
|
13 #include "gsm.h" |
|
14 #include "proto.h" |
|
15 |
|
16 int gsm_print P3((f, s, c), FILE * f, gsm s, gsm_byte * c) |
|
17 { |
|
18 word LARc[8], Nc[4], Mc[4], bc[4], xmaxc[4], xmc[13*4]; |
|
19 // Wirlab |
|
20 (void)s; |
|
21 |
|
22 |
|
23 /* GSM_MAGIC = (*c >> 4) & 0xF; */ |
|
24 |
|
25 if (((*c >> 4) & 0x0F) != GSM_MAGIC) return -1; |
|
26 |
|
27 LARc[0] = (*c++ & 0xF) << 2; /* 1 */ |
|
28 LARc[0] |= (*c >> 6) & 0x3; |
|
29 LARc[1] = *c++ & 0x3F; |
|
30 LARc[2] = (*c >> 3) & 0x1F; |
|
31 LARc[3] = (*c++ & 0x7) << 2; |
|
32 LARc[3] |= (*c >> 6) & 0x3; |
|
33 LARc[4] = (*c >> 2) & 0xF; |
|
34 LARc[5] = (*c++ & 0x3) << 2; |
|
35 LARc[5] |= (*c >> 6) & 0x3; |
|
36 LARc[6] = (*c >> 3) & 0x7; |
|
37 LARc[7] = *c++ & 0x7; |
|
38 |
|
39 |
|
40 Nc[0] = (*c >> 1) & 0x7F; |
|
41 bc[0] = (*c++ & 0x1) << 1; |
|
42 bc[0] |= (*c >> 7) & 0x1; |
|
43 Mc[0] = (*c >> 5) & 0x3; |
|
44 xmaxc[0] = (*c++ & 0x1F) << 1; |
|
45 xmaxc[0] |= (*c >> 7) & 0x1; |
|
46 xmc[0] = (*c >> 4) & 0x7; |
|
47 xmc[1] = (*c >> 1) & 0x7; |
|
48 xmc[2] = (*c++ & 0x1) << 2; |
|
49 xmc[2] |= (*c >> 6) & 0x3; |
|
50 xmc[3] = (*c >> 3) & 0x7; |
|
51 xmc[4] = *c++ & 0x7; |
|
52 xmc[5] = (*c >> 5) & 0x7; |
|
53 xmc[6] = (*c >> 2) & 0x7; |
|
54 xmc[7] = (*c++ & 0x3) << 1; /* 10 */ |
|
55 xmc[7] |= (*c >> 7) & 0x1; |
|
56 xmc[8] = (*c >> 4) & 0x7; |
|
57 xmc[9] = (*c >> 1) & 0x7; |
|
58 xmc[10] = (*c++ & 0x1) << 2; |
|
59 xmc[10] |= (*c >> 6) & 0x3; |
|
60 xmc[11] = (*c >> 3) & 0x7; |
|
61 xmc[12] = *c++ & 0x7; |
|
62 |
|
63 Nc[1] = (*c >> 1) & 0x7F; |
|
64 bc[1] = (*c++ & 0x1) << 1; |
|
65 bc[1] |= (*c >> 7) & 0x1; |
|
66 Mc[1] = (*c >> 5) & 0x3; |
|
67 xmaxc[1] = (*c++ & 0x1F) << 1; |
|
68 xmaxc[1] |= (*c >> 7) & 0x1; |
|
69 xmc[13] = (*c >> 4) & 0x7; |
|
70 xmc[14] = (*c >> 1) & 0x7; |
|
71 xmc[15] = (*c++ & 0x1) << 2; |
|
72 xmc[15] |= (*c >> 6) & 0x3; |
|
73 xmc[16] = (*c >> 3) & 0x7; |
|
74 xmc[17] = *c++ & 0x7; |
|
75 xmc[18] = (*c >> 5) & 0x7; |
|
76 xmc[19] = (*c >> 2) & 0x7; |
|
77 xmc[20] = (*c++ & 0x3) << 1; |
|
78 xmc[20] |= (*c >> 7) & 0x1; |
|
79 xmc[21] = (*c >> 4) & 0x7; |
|
80 xmc[22] = (*c >> 1) & 0x7; |
|
81 xmc[23] = (*c++ & 0x1) << 2; |
|
82 xmc[23] |= (*c >> 6) & 0x3; |
|
83 xmc[24] = (*c >> 3) & 0x7; |
|
84 xmc[25] = *c++ & 0x7; |
|
85 |
|
86 |
|
87 Nc[2] = (*c >> 1) & 0x7F; |
|
88 bc[2] = (*c++ & 0x1) << 1; /* 20 */ |
|
89 bc[2] |= (*c >> 7) & 0x1; |
|
90 Mc[2] = (*c >> 5) & 0x3; |
|
91 xmaxc[2] = (*c++ & 0x1F) << 1; |
|
92 xmaxc[2] |= (*c >> 7) & 0x1; |
|
93 xmc[26] = (*c >> 4) & 0x7; |
|
94 xmc[27] = (*c >> 1) & 0x7; |
|
95 xmc[28] = (*c++ & 0x1) << 2; |
|
96 xmc[28] |= (*c >> 6) & 0x3; |
|
97 xmc[29] = (*c >> 3) & 0x7; |
|
98 xmc[30] = *c++ & 0x7; |
|
99 xmc[31] = (*c >> 5) & 0x7; |
|
100 xmc[32] = (*c >> 2) & 0x7; |
|
101 xmc[33] = (*c++ & 0x3) << 1; |
|
102 xmc[33] |= (*c >> 7) & 0x1; |
|
103 xmc[34] = (*c >> 4) & 0x7; |
|
104 xmc[35] = (*c >> 1) & 0x7; |
|
105 xmc[36] = (*c++ & 0x1) << 2; |
|
106 xmc[36] |= (*c >> 6) & 0x3; |
|
107 xmc[37] = (*c >> 3) & 0x7; |
|
108 xmc[38] = *c++ & 0x7; |
|
109 |
|
110 Nc[3] = (*c >> 1) & 0x7F; |
|
111 bc[3] = (*c++ & 0x1) << 1; |
|
112 bc[3] |= (*c >> 7) & 0x1; |
|
113 Mc[3] = (*c >> 5) & 0x3; |
|
114 xmaxc[3] = (*c++ & 0x1F) << 1; |
|
115 xmaxc[3] |= (*c >> 7) & 0x1; |
|
116 |
|
117 xmc[39] = (*c >> 4) & 0x7; |
|
118 xmc[40] = (*c >> 1) & 0x7; |
|
119 xmc[41] = (*c++ & 0x1) << 2; |
|
120 xmc[41] |= (*c >> 6) & 0x3; |
|
121 xmc[42] = (*c >> 3) & 0x7; |
|
122 xmc[43] = *c++ & 0x7; /* 30 */ |
|
123 xmc[44] = (*c >> 5) & 0x7; |
|
124 xmc[45] = (*c >> 2) & 0x7; |
|
125 xmc[46] = (*c++ & 0x3) << 1; |
|
126 xmc[46] |= (*c >> 7) & 0x1; |
|
127 xmc[47] = (*c >> 4) & 0x7; |
|
128 xmc[48] = (*c >> 1) & 0x7; |
|
129 xmc[49] = (*c++ & 0x1) << 2; |
|
130 xmc[49] |= (*c >> 6) & 0x3; |
|
131 xmc[50] = (*c >> 3) & 0x7; |
|
132 xmc[51] = *c & 0x7; /* 33 */ |
|
133 |
|
134 fprintf(f, |
|
135 "LARc:\t%2.2d %2.2d %2.2d %2.2d %2.2d %2.2d %2.2d %2.2d\n", |
|
136 LARc[0],LARc[1],LARc[2],LARc[3],LARc[4],LARc[5],LARc[6],LARc[7]); |
|
137 |
|
138 fprintf(f, "#1: Nc %4.4d bc %d Mc %d xmaxc %d\n", |
|
139 Nc[0], bc[0], Mc[0], xmaxc[0]); |
|
140 fprintf(f, |
|
141 "\t%.2d %.2d %.2d %.2d %.2d %.2d %.2d %.2d %.2d %.2d %.2d %.2d %.2d\n", |
|
142 xmc[0],xmc[1],xmc[2],xmc[3],xmc[4],xmc[5],xmc[6], |
|
143 xmc[7],xmc[8],xmc[9],xmc[10],xmc[11],xmc[12] ); |
|
144 |
|
145 fprintf(f, "#2: Nc %4.4d bc %d Mc %d xmaxc %d\n", |
|
146 Nc[1], bc[1], Mc[1], xmaxc[1]); |
|
147 fprintf(f, |
|
148 "\t%.2d %.2d %.2d %.2d %.2d %.2d %.2d %.2d %.2d %.2d %.2d %.2d %.2d\n", |
|
149 xmc[13+0],xmc[13+1],xmc[13+2],xmc[13+3],xmc[13+4],xmc[13+5], |
|
150 xmc[13+6], xmc[13+7],xmc[13+8],xmc[13+9],xmc[13+10],xmc[13+11], |
|
151 xmc[13+12] ); |
|
152 |
|
153 fprintf(f, "#3: Nc %4.4d bc %d Mc %d xmaxc %d\n", |
|
154 Nc[2], bc[2], Mc[2], xmaxc[2]); |
|
155 fprintf(f, |
|
156 "\t%.2d %.2d %.2d %.2d %.2d %.2d %.2d %.2d %.2d %.2d %.2d %.2d %.2d\n", |
|
157 xmc[26+0],xmc[26+1],xmc[26+2],xmc[26+3],xmc[26+4],xmc[26+5], |
|
158 xmc[26+6], xmc[26+7],xmc[26+8],xmc[26+9],xmc[26+10],xmc[26+11], |
|
159 xmc[26+12] ); |
|
160 |
|
161 fprintf(f, "#4: Nc %4.4d bc %d Mc %d xmaxc %d\n", |
|
162 Nc[3], bc[3], Mc[3], xmaxc[3]); |
|
163 fprintf(f, |
|
164 "\t%.2d %.2d %.2d %.2d %.2d %.2d %.2d %.2d %.2d %.2d %.2d %.2d %.2d\n", |
|
165 xmc[39+0],xmc[39+1],xmc[39+2],xmc[39+3],xmc[39+4],xmc[39+5], |
|
166 xmc[39+6], xmc[39+7],xmc[39+8],xmc[39+9],xmc[39+10],xmc[39+11], |
|
167 xmc[39+12] ); |
|
168 |
|
169 return 0; |
|
170 } |