xref: /aosp_15_r20/external/libgsm/src/toast_alaw.c (revision 8ec969cea971fe25ff2d3933a5a9f8504f8e86c9)
1*8ec969ceSTreehugger Robot /*
2*8ec969ceSTreehugger Robot  * Copyright 1992 by Jutta Degener and Carsten Bormann, Technische
3*8ec969ceSTreehugger Robot  * Universitaet Berlin.  See the accompanying file "COPYRIGHT" for
4*8ec969ceSTreehugger Robot  * details.  THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE.
5*8ec969ceSTreehugger Robot  */
6*8ec969ceSTreehugger Robot 
7*8ec969ceSTreehugger Robot /* $Header: /home/kbs/jutta/src/gsm/gsm-1.0/src/RCS/toast_alaw.c,v 1.2 1996/07/05 17:23:46 jutta Exp $ */
8*8ec969ceSTreehugger Robot 
9*8ec969ceSTreehugger Robot #include	"toast.h"
10*8ec969ceSTreehugger Robot 
11*8ec969ceSTreehugger Robot /*  toast_alaw.c -- manipulate A-law encoded sound.
12*8ec969ceSTreehugger Robot  */
13*8ec969ceSTreehugger Robot 
14*8ec969ceSTreehugger Robot extern FILE	* in, * out;
15*8ec969ceSTreehugger Robot 
16*8ec969ceSTreehugger Robot #define	A2S(x)	(a2s[  (unsigned char )(x)       ])
17*8ec969ceSTreehugger Robot #define	S2A(x)	(s2a[ ((unsigned short)(x)) >> 4 ])
18*8ec969ceSTreehugger Robot 
19*8ec969ceSTreehugger Robot static unsigned short a2s[] = {
20*8ec969ceSTreehugger Robot 
21*8ec969ceSTreehugger Robot  60032, 60288, 59520, 59776, 61056, 61312, 60544, 60800,
22*8ec969ceSTreehugger Robot  57984, 58240, 57472, 57728, 59008, 59264, 58496, 58752,
23*8ec969ceSTreehugger Robot  62784, 62912, 62528, 62656, 63296, 63424, 63040, 63168,
24*8ec969ceSTreehugger Robot  61760, 61888, 61504, 61632, 62272, 62400, 62016, 62144,
25*8ec969ceSTreehugger Robot  43520, 44544, 41472, 42496, 47616, 48640, 45568, 46592,
26*8ec969ceSTreehugger Robot  35328, 36352, 33280, 34304, 39424, 40448, 37376, 38400,
27*8ec969ceSTreehugger Robot  54528, 55040, 53504, 54016, 56576, 57088, 55552, 56064,
28*8ec969ceSTreehugger Robot  50432, 50944, 49408, 49920, 52480, 52992, 51456, 51968,
29*8ec969ceSTreehugger Robot  65192, 65208, 65160, 65176, 65256, 65272, 65224, 65240,
30*8ec969ceSTreehugger Robot  65064, 65080, 65032, 65048, 65128, 65144, 65096, 65112,
31*8ec969ceSTreehugger Robot  65448, 65464, 65416, 65432, 65512, 65528, 65480, 65496,
32*8ec969ceSTreehugger Robot  65320, 65336, 65288, 65304, 65384, 65400, 65352, 65368,
33*8ec969ceSTreehugger Robot  64160, 64224, 64032, 64096, 64416, 64480, 64288, 64352,
34*8ec969ceSTreehugger Robot  63648, 63712, 63520, 63584, 63904, 63968, 63776, 63840,
35*8ec969ceSTreehugger Robot  64848, 64880, 64784, 64816, 64976, 65008, 64912, 64944,
36*8ec969ceSTreehugger Robot  64592, 64624, 64528, 64560, 64720, 64752, 64656, 64688,
37*8ec969ceSTreehugger Robot   5504,  5248,  6016,  5760,  4480,  4224,  4992,  4736,
38*8ec969ceSTreehugger Robot   7552,  7296,  8064,  7808,  6528,  6272,  7040,  6784,
39*8ec969ceSTreehugger Robot   2752,  2624,  3008,  2880,  2240,  2112,  2496,  2368,
40*8ec969ceSTreehugger Robot   3776,  3648,  4032,  3904,  3264,  3136,  3520,  3392,
41*8ec969ceSTreehugger Robot  22016, 20992, 24064, 23040, 17920, 16896, 19968, 18944,
42*8ec969ceSTreehugger Robot  30208, 29184, 32256, 31232, 26112, 25088, 28160, 27136,
43*8ec969ceSTreehugger Robot  11008, 10496, 12032, 11520,  8960,  8448,  9984,  9472,
44*8ec969ceSTreehugger Robot  15104, 14592, 16128, 15616, 13056, 12544, 14080, 13568,
45*8ec969ceSTreehugger Robot    344,   328,   376,   360,   280,   264,   312,   296,
46*8ec969ceSTreehugger Robot    472,   456,   504,   488,   408,   392,   440,   424,
47*8ec969ceSTreehugger Robot     88,    72,   120,   104,    24,     8,    56,    40,
48*8ec969ceSTreehugger Robot    216,   200,   248,   232,   152,   136,   184,   168,
49*8ec969ceSTreehugger Robot   1376,  1312,  1504,  1440,  1120,  1056,  1248,  1184,
50*8ec969ceSTreehugger Robot   1888,  1824,  2016,  1952,  1632,  1568,  1760,  1696,
51*8ec969ceSTreehugger Robot    688,   656,   752,   720,   560,   528,   624,   592,
52*8ec969ceSTreehugger Robot    944,   912,  1008,   976,   816,   784,   880,   848
53*8ec969ceSTreehugger Robot 
54*8ec969ceSTreehugger Robot };
55*8ec969ceSTreehugger Robot 
56*8ec969ceSTreehugger Robot 
57*8ec969ceSTreehugger Robot static unsigned char  s2a[] = {
58*8ec969ceSTreehugger Robot 
59*8ec969ceSTreehugger Robot 	213,212,215,214,209,208,211,210,221,220,223,222,217,216,219,218,
60*8ec969ceSTreehugger Robot 	197,196,199,198,193,192,195,194,205,204,207,206,201,200,203,202,
61*8ec969ceSTreehugger Robot 	245,245,244,244,247,247,246,246,241,241,240,240,243,243,242,242,
62*8ec969ceSTreehugger Robot 	253,253,252,252,255,255,254,254,249,249,248,248,251,251,250,250,
63*8ec969ceSTreehugger Robot 	229,229,229,229,228,228,228,228,231,231,231,231,230,230,230,230,
64*8ec969ceSTreehugger Robot 	225,225,225,225,224,224,224,224,227,227,227,227,226,226,226,226,
65*8ec969ceSTreehugger Robot 	237,237,237,237,236,236,236,236,239,239,239,239,238,238,238,238,
66*8ec969ceSTreehugger Robot 	233,233,233,233,232,232,232,232,235,235,235,235,234,234,234,234,
67*8ec969ceSTreehugger Robot 	149,149,149,149,149,149,149,149,148,148,148,148,148,148,148,148,
68*8ec969ceSTreehugger Robot 	151,151,151,151,151,151,151,151,150,150,150,150,150,150,150,150,
69*8ec969ceSTreehugger Robot 	145,145,145,145,145,145,145,145,144,144,144,144,144,144,144,144,
70*8ec969ceSTreehugger Robot 	147,147,147,147,147,147,147,147,146,146,146,146,146,146,146,146,
71*8ec969ceSTreehugger Robot 	157,157,157,157,157,157,157,157,156,156,156,156,156,156,156,156,
72*8ec969ceSTreehugger Robot 	159,159,159,159,159,159,159,159,158,158,158,158,158,158,158,158,
73*8ec969ceSTreehugger Robot 	153,153,153,153,153,153,153,153,152,152,152,152,152,152,152,152,
74*8ec969ceSTreehugger Robot 	155,155,155,155,155,155,155,155,154,154,154,154,154,154,154,154,
75*8ec969ceSTreehugger Robot 	133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,
76*8ec969ceSTreehugger Robot 	132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,
77*8ec969ceSTreehugger Robot 	135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,
78*8ec969ceSTreehugger Robot 	134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,
79*8ec969ceSTreehugger Robot 	129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,
80*8ec969ceSTreehugger Robot 	128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,
81*8ec969ceSTreehugger Robot 	131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,
82*8ec969ceSTreehugger Robot 	130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,
83*8ec969ceSTreehugger Robot 	141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,
84*8ec969ceSTreehugger Robot 	140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,
85*8ec969ceSTreehugger Robot 	143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,
86*8ec969ceSTreehugger Robot 	142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,
87*8ec969ceSTreehugger Robot 	137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,
88*8ec969ceSTreehugger Robot 	136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,
89*8ec969ceSTreehugger Robot 	139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,
90*8ec969ceSTreehugger Robot 	138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,
91*8ec969ceSTreehugger Robot 	181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,
92*8ec969ceSTreehugger Robot 	181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,
93*8ec969ceSTreehugger Robot 	180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,
94*8ec969ceSTreehugger Robot 	180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,
95*8ec969ceSTreehugger Robot 	183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,
96*8ec969ceSTreehugger Robot 	183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,
97*8ec969ceSTreehugger Robot 	182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,
98*8ec969ceSTreehugger Robot 	182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,
99*8ec969ceSTreehugger Robot 	177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,
100*8ec969ceSTreehugger Robot 	177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,
101*8ec969ceSTreehugger Robot 	176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,
102*8ec969ceSTreehugger Robot 	176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,
103*8ec969ceSTreehugger Robot 	179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,
104*8ec969ceSTreehugger Robot 	179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,
105*8ec969ceSTreehugger Robot 	178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,
106*8ec969ceSTreehugger Robot 	178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,
107*8ec969ceSTreehugger Robot 	189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,
108*8ec969ceSTreehugger Robot 	189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,
109*8ec969ceSTreehugger Robot 	188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,
110*8ec969ceSTreehugger Robot 	188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,
111*8ec969ceSTreehugger Robot 	191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,
112*8ec969ceSTreehugger Robot 	191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,
113*8ec969ceSTreehugger Robot 	190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,
114*8ec969ceSTreehugger Robot 	190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,
115*8ec969ceSTreehugger Robot 	185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,
116*8ec969ceSTreehugger Robot 	185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,
117*8ec969ceSTreehugger Robot 	184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,
118*8ec969ceSTreehugger Robot 	184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,
119*8ec969ceSTreehugger Robot 	187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,
120*8ec969ceSTreehugger Robot 	187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,
121*8ec969ceSTreehugger Robot 	186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,
122*8ec969ceSTreehugger Robot 	186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,
123*8ec969ceSTreehugger Robot 	165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,
124*8ec969ceSTreehugger Robot 	165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,
125*8ec969ceSTreehugger Robot 	165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,
126*8ec969ceSTreehugger Robot 	165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,
127*8ec969ceSTreehugger Robot 	164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,
128*8ec969ceSTreehugger Robot 	164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,
129*8ec969ceSTreehugger Robot 	164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,
130*8ec969ceSTreehugger Robot 	164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,
131*8ec969ceSTreehugger Robot 	167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,
132*8ec969ceSTreehugger Robot 	167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,
133*8ec969ceSTreehugger Robot 	167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,
134*8ec969ceSTreehugger Robot 	167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,
135*8ec969ceSTreehugger Robot 	166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,
136*8ec969ceSTreehugger Robot 	166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,
137*8ec969ceSTreehugger Robot 	166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,
138*8ec969ceSTreehugger Robot 	166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,
139*8ec969ceSTreehugger Robot 	161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,
140*8ec969ceSTreehugger Robot 	161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,
141*8ec969ceSTreehugger Robot 	161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,
142*8ec969ceSTreehugger Robot 	161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,
143*8ec969ceSTreehugger Robot 	160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,
144*8ec969ceSTreehugger Robot 	160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,
145*8ec969ceSTreehugger Robot 	160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,
146*8ec969ceSTreehugger Robot 	160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,
147*8ec969ceSTreehugger Robot 	163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,
148*8ec969ceSTreehugger Robot 	163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,
149*8ec969ceSTreehugger Robot 	163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,
150*8ec969ceSTreehugger Robot 	163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,
151*8ec969ceSTreehugger Robot 	162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,
152*8ec969ceSTreehugger Robot 	162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,
153*8ec969ceSTreehugger Robot 	162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,
154*8ec969ceSTreehugger Robot 	162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,
155*8ec969ceSTreehugger Robot 	173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,
156*8ec969ceSTreehugger Robot 	173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,
157*8ec969ceSTreehugger Robot 	173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,
158*8ec969ceSTreehugger Robot 	173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,
159*8ec969ceSTreehugger Robot 	172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,
160*8ec969ceSTreehugger Robot 	172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,
161*8ec969ceSTreehugger Robot 	172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,
162*8ec969ceSTreehugger Robot 	172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,
163*8ec969ceSTreehugger Robot 	175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,
164*8ec969ceSTreehugger Robot 	175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,
165*8ec969ceSTreehugger Robot 	175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,
166*8ec969ceSTreehugger Robot 	175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,
167*8ec969ceSTreehugger Robot 	174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,
168*8ec969ceSTreehugger Robot 	174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,
169*8ec969ceSTreehugger Robot 	174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,
170*8ec969ceSTreehugger Robot 	174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,
171*8ec969ceSTreehugger Robot 	169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,
172*8ec969ceSTreehugger Robot 	169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,
173*8ec969ceSTreehugger Robot 	169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,
174*8ec969ceSTreehugger Robot 	169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,
175*8ec969ceSTreehugger Robot 	168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,
176*8ec969ceSTreehugger Robot 	168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,
177*8ec969ceSTreehugger Robot 	168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,
178*8ec969ceSTreehugger Robot 	168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,
179*8ec969ceSTreehugger Robot 	171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,
180*8ec969ceSTreehugger Robot 	171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,
181*8ec969ceSTreehugger Robot 	171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,
182*8ec969ceSTreehugger Robot 	171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,
183*8ec969ceSTreehugger Robot 	170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,
184*8ec969ceSTreehugger Robot 	170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,
185*8ec969ceSTreehugger Robot 	170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,
186*8ec969ceSTreehugger Robot 	170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,
187*8ec969ceSTreehugger Robot 	 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
188*8ec969ceSTreehugger Robot 	 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
189*8ec969ceSTreehugger Robot 	 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
190*8ec969ceSTreehugger Robot 	 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
191*8ec969ceSTreehugger Robot 	 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43,
192*8ec969ceSTreehugger Robot 	 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43,
193*8ec969ceSTreehugger Robot 	 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43,
194*8ec969ceSTreehugger Robot 	 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43,
195*8ec969ceSTreehugger Robot 	 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
196*8ec969ceSTreehugger Robot 	 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
197*8ec969ceSTreehugger Robot 	 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
198*8ec969ceSTreehugger Robot 	 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
199*8ec969ceSTreehugger Robot 	 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
200*8ec969ceSTreehugger Robot 	 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
201*8ec969ceSTreehugger Robot 	 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
202*8ec969ceSTreehugger Robot 	 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
203*8ec969ceSTreehugger Robot 	 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
204*8ec969ceSTreehugger Robot 	 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
205*8ec969ceSTreehugger Robot 	 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
206*8ec969ceSTreehugger Robot 	 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
207*8ec969ceSTreehugger Robot 	 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
208*8ec969ceSTreehugger Robot 	 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
209*8ec969ceSTreehugger Robot 	 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
210*8ec969ceSTreehugger Robot 	 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
211*8ec969ceSTreehugger Robot 	 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
212*8ec969ceSTreehugger Robot 	 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
213*8ec969ceSTreehugger Robot 	 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
214*8ec969ceSTreehugger Robot 	 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
215*8ec969ceSTreehugger Robot 	 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
216*8ec969ceSTreehugger Robot 	 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
217*8ec969ceSTreehugger Robot 	 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
218*8ec969ceSTreehugger Robot 	 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
219*8ec969ceSTreehugger Robot 	 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
220*8ec969ceSTreehugger Robot 	 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
221*8ec969ceSTreehugger Robot 	 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
222*8ec969ceSTreehugger Robot 	 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
223*8ec969ceSTreehugger Robot 	 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
224*8ec969ceSTreehugger Robot 	 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
225*8ec969ceSTreehugger Robot 	 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
226*8ec969ceSTreehugger Robot 	 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
227*8ec969ceSTreehugger Robot 	 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
228*8ec969ceSTreehugger Robot 	 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
229*8ec969ceSTreehugger Robot 	 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
230*8ec969ceSTreehugger Robot 	 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
231*8ec969ceSTreehugger Robot 	 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,
232*8ec969ceSTreehugger Robot 	 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,
233*8ec969ceSTreehugger Robot 	 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,
234*8ec969ceSTreehugger Robot 	 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,
235*8ec969ceSTreehugger Robot 	 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38,
236*8ec969ceSTreehugger Robot 	 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38,
237*8ec969ceSTreehugger Robot 	 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38,
238*8ec969ceSTreehugger Robot 	 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38,
239*8ec969ceSTreehugger Robot 	 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
240*8ec969ceSTreehugger Robot 	 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
241*8ec969ceSTreehugger Robot 	 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
242*8ec969ceSTreehugger Robot 	 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
243*8ec969ceSTreehugger Robot 	 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
244*8ec969ceSTreehugger Robot 	 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
245*8ec969ceSTreehugger Robot 	 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
246*8ec969ceSTreehugger Robot 	 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
247*8ec969ceSTreehugger Robot 	 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
248*8ec969ceSTreehugger Robot 	 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
249*8ec969ceSTreehugger Robot 	 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
250*8ec969ceSTreehugger Robot 	 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
251*8ec969ceSTreehugger Robot 	 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
252*8ec969ceSTreehugger Robot 	 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
253*8ec969ceSTreehugger Robot 	 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
254*8ec969ceSTreehugger Robot 	 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
255*8ec969ceSTreehugger Robot 	 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
256*8ec969ceSTreehugger Robot 	 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
257*8ec969ceSTreehugger Robot 	 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57,
258*8ec969ceSTreehugger Robot 	 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57,
259*8ec969ceSTreehugger Robot 	 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62,
260*8ec969ceSTreehugger Robot 	 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62,
261*8ec969ceSTreehugger Robot 	 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
262*8ec969ceSTreehugger Robot 	 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
263*8ec969ceSTreehugger Robot 	 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60,
264*8ec969ceSTreehugger Robot 	 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60,
265*8ec969ceSTreehugger Robot 	 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61,
266*8ec969ceSTreehugger Robot 	 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61,
267*8ec969ceSTreehugger Robot 	 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50,
268*8ec969ceSTreehugger Robot 	 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50,
269*8ec969ceSTreehugger Robot 	 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
270*8ec969ceSTreehugger Robot 	 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
271*8ec969ceSTreehugger Robot 	 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
272*8ec969ceSTreehugger Robot 	 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
273*8ec969ceSTreehugger Robot 	 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
274*8ec969ceSTreehugger Robot 	 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
275*8ec969ceSTreehugger Robot 	 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54,
276*8ec969ceSTreehugger Robot 	 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54,
277*8ec969ceSTreehugger Robot 	 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
278*8ec969ceSTreehugger Robot 	 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
279*8ec969ceSTreehugger Robot 	 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
280*8ec969ceSTreehugger Robot 	 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
281*8ec969ceSTreehugger Robot 	 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53,
282*8ec969ceSTreehugger Robot 	 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53,
283*8ec969ceSTreehugger Robot 	 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
284*8ec969ceSTreehugger Robot 	 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
285*8ec969ceSTreehugger Robot 	  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,
286*8ec969ceSTreehugger Robot 	  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,
287*8ec969ceSTreehugger Robot 	 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
288*8ec969ceSTreehugger Robot 	 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
289*8ec969ceSTreehugger Robot 	 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
290*8ec969ceSTreehugger Robot 	 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
291*8ec969ceSTreehugger Robot 	  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
292*8ec969ceSTreehugger Robot 	  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
293*8ec969ceSTreehugger Robot 	  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
294*8ec969ceSTreehugger Robot 	  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
295*8ec969ceSTreehugger Robot 	  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,
296*8ec969ceSTreehugger Robot 	  7,  7,  7,  7,  7,  7,  7,  7,  7,  7,  7,  7,  7,  7,  7,  7,
297*8ec969ceSTreehugger Robot 	  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
298*8ec969ceSTreehugger Robot 	  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,
299*8ec969ceSTreehugger Robot 	 26, 26, 26, 26, 26, 26, 26, 26, 27, 27, 27, 27, 27, 27, 27, 27,
300*8ec969ceSTreehugger Robot 	 24, 24, 24, 24, 24, 24, 24, 24, 25, 25, 25, 25, 25, 25, 25, 25,
301*8ec969ceSTreehugger Robot 	 30, 30, 30, 30, 30, 30, 30, 30, 31, 31, 31, 31, 31, 31, 31, 31,
302*8ec969ceSTreehugger Robot 	 28, 28, 28, 28, 28, 28, 28, 28, 29, 29, 29, 29, 29, 29, 29, 29,
303*8ec969ceSTreehugger Robot 	 18, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19, 19, 19, 19, 19,
304*8ec969ceSTreehugger Robot 	 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 17, 17, 17, 17,
305*8ec969ceSTreehugger Robot 	 22, 22, 22, 22, 22, 22, 22, 22, 23, 23, 23, 23, 23, 23, 23, 23,
306*8ec969ceSTreehugger Robot 	 20, 20, 20, 20, 20, 20, 20, 20, 21, 21, 21, 21, 21, 21, 21, 21,
307*8ec969ceSTreehugger Robot 	106,106,106,106,107,107,107,107,104,104,104,104,105,105,105,105,
308*8ec969ceSTreehugger Robot 	110,110,110,110,111,111,111,111,108,108,108,108,109,109,109,109,
309*8ec969ceSTreehugger Robot 	 98, 98, 98, 98, 99, 99, 99, 99, 96, 96, 96, 96, 97, 97, 97, 97,
310*8ec969ceSTreehugger Robot 	102,102,102,102,103,103,103,103,100,100,100,100,101,101,101,101,
311*8ec969ceSTreehugger Robot 	122,122,123,123,120,120,121,121,126,126,127,127,124,124,125,125,
312*8ec969ceSTreehugger Robot 	114,114,115,115,112,112,113,113,118,118,119,119,116,116,117,117,
313*8ec969ceSTreehugger Robot 	 74, 75, 72, 73, 78, 79, 76, 77, 66, 67, 64, 65, 70, 71, 68, 69,
314*8ec969ceSTreehugger Robot 	 90, 91, 88, 89, 94, 95, 92, 93, 82, 83, 80, 81, 86, 87, 84, 85
315*8ec969ceSTreehugger Robot };
316*8ec969ceSTreehugger Robot 
317*8ec969ceSTreehugger Robot int alaw_input P1((buf), gsm_signal * buf)
318*8ec969ceSTreehugger Robot {
319*8ec969ceSTreehugger Robot 	int  i, c;
320*8ec969ceSTreehugger Robot 
321*8ec969ceSTreehugger Robot 	for (i = 0; i < 160 && (c = fgetc(in)) != EOF; i++) buf[i] = A2S( c );
322*8ec969ceSTreehugger Robot 	if (c == EOF && ferror(in)) return -1;
323*8ec969ceSTreehugger Robot 	return i;
324*8ec969ceSTreehugger Robot }
325*8ec969ceSTreehugger Robot 
326*8ec969ceSTreehugger Robot int alaw_output P1((buf), gsm_signal * buf)
327*8ec969ceSTreehugger Robot {
328*8ec969ceSTreehugger Robot 	int  i;
329*8ec969ceSTreehugger Robot 
330*8ec969ceSTreehugger Robot 	for (i = 0; i < 160; i++, buf++)
331*8ec969ceSTreehugger Robot 		if (fputc( S2A( *buf ), out) == EOF) return -1;
332*8ec969ceSTreehugger Robot 	return 0;
333*8ec969ceSTreehugger Robot }
334*8ec969ceSTreehugger Robot 
335