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: /tmp_amd/presto/export/kbs/jutta/src/gsm/RCS/gsm_encode.c,v 1.2 1996/07/02 09:59:05 jutta Exp $ */ 8*8ec969ceSTreehugger Robot 9*8ec969ceSTreehugger Robot #include "private.h" 10*8ec969ceSTreehugger Robot #include "gsm.h" 11*8ec969ceSTreehugger Robot #include "proto.h" 12*8ec969ceSTreehugger Robot 13*8ec969ceSTreehugger Robot void gsm_encode P3((s, source, c), gsm s, gsm_signal * source, gsm_byte * c) 14*8ec969ceSTreehugger Robot { 15*8ec969ceSTreehugger Robot word LARc[8], Nc[4], Mc[4], bc[4], xmaxc[4], xmc[13*4]; 16*8ec969ceSTreehugger Robot 17*8ec969ceSTreehugger Robot Gsm_Coder(s, source, LARc, Nc, bc, Mc, xmaxc, xmc); 18*8ec969ceSTreehugger Robot 19*8ec969ceSTreehugger Robot 20*8ec969ceSTreehugger Robot /* variable size 21*8ec969ceSTreehugger Robot 22*8ec969ceSTreehugger Robot GSM_MAGIC 4 23*8ec969ceSTreehugger Robot 24*8ec969ceSTreehugger Robot LARc[0] 6 25*8ec969ceSTreehugger Robot LARc[1] 6 26*8ec969ceSTreehugger Robot LARc[2] 5 27*8ec969ceSTreehugger Robot LARc[3] 5 28*8ec969ceSTreehugger Robot LARc[4] 4 29*8ec969ceSTreehugger Robot LARc[5] 4 30*8ec969ceSTreehugger Robot LARc[6] 3 31*8ec969ceSTreehugger Robot LARc[7] 3 32*8ec969ceSTreehugger Robot 33*8ec969ceSTreehugger Robot Nc[0] 7 34*8ec969ceSTreehugger Robot bc[0] 2 35*8ec969ceSTreehugger Robot Mc[0] 2 36*8ec969ceSTreehugger Robot xmaxc[0] 6 37*8ec969ceSTreehugger Robot xmc[0] 3 38*8ec969ceSTreehugger Robot xmc[1] 3 39*8ec969ceSTreehugger Robot xmc[2] 3 40*8ec969ceSTreehugger Robot xmc[3] 3 41*8ec969ceSTreehugger Robot xmc[4] 3 42*8ec969ceSTreehugger Robot xmc[5] 3 43*8ec969ceSTreehugger Robot xmc[6] 3 44*8ec969ceSTreehugger Robot xmc[7] 3 45*8ec969ceSTreehugger Robot xmc[8] 3 46*8ec969ceSTreehugger Robot xmc[9] 3 47*8ec969ceSTreehugger Robot xmc[10] 3 48*8ec969ceSTreehugger Robot xmc[11] 3 49*8ec969ceSTreehugger Robot xmc[12] 3 50*8ec969ceSTreehugger Robot 51*8ec969ceSTreehugger Robot Nc[1] 7 52*8ec969ceSTreehugger Robot bc[1] 2 53*8ec969ceSTreehugger Robot Mc[1] 2 54*8ec969ceSTreehugger Robot xmaxc[1] 6 55*8ec969ceSTreehugger Robot xmc[13] 3 56*8ec969ceSTreehugger Robot xmc[14] 3 57*8ec969ceSTreehugger Robot xmc[15] 3 58*8ec969ceSTreehugger Robot xmc[16] 3 59*8ec969ceSTreehugger Robot xmc[17] 3 60*8ec969ceSTreehugger Robot xmc[18] 3 61*8ec969ceSTreehugger Robot xmc[19] 3 62*8ec969ceSTreehugger Robot xmc[20] 3 63*8ec969ceSTreehugger Robot xmc[21] 3 64*8ec969ceSTreehugger Robot xmc[22] 3 65*8ec969ceSTreehugger Robot xmc[23] 3 66*8ec969ceSTreehugger Robot xmc[24] 3 67*8ec969ceSTreehugger Robot xmc[25] 3 68*8ec969ceSTreehugger Robot 69*8ec969ceSTreehugger Robot Nc[2] 7 70*8ec969ceSTreehugger Robot bc[2] 2 71*8ec969ceSTreehugger Robot Mc[2] 2 72*8ec969ceSTreehugger Robot xmaxc[2] 6 73*8ec969ceSTreehugger Robot xmc[26] 3 74*8ec969ceSTreehugger Robot xmc[27] 3 75*8ec969ceSTreehugger Robot xmc[28] 3 76*8ec969ceSTreehugger Robot xmc[29] 3 77*8ec969ceSTreehugger Robot xmc[30] 3 78*8ec969ceSTreehugger Robot xmc[31] 3 79*8ec969ceSTreehugger Robot xmc[32] 3 80*8ec969ceSTreehugger Robot xmc[33] 3 81*8ec969ceSTreehugger Robot xmc[34] 3 82*8ec969ceSTreehugger Robot xmc[35] 3 83*8ec969ceSTreehugger Robot xmc[36] 3 84*8ec969ceSTreehugger Robot xmc[37] 3 85*8ec969ceSTreehugger Robot xmc[38] 3 86*8ec969ceSTreehugger Robot 87*8ec969ceSTreehugger Robot Nc[3] 7 88*8ec969ceSTreehugger Robot bc[3] 2 89*8ec969ceSTreehugger Robot Mc[3] 2 90*8ec969ceSTreehugger Robot xmaxc[3] 6 91*8ec969ceSTreehugger Robot xmc[39] 3 92*8ec969ceSTreehugger Robot xmc[40] 3 93*8ec969ceSTreehugger Robot xmc[41] 3 94*8ec969ceSTreehugger Robot xmc[42] 3 95*8ec969ceSTreehugger Robot xmc[43] 3 96*8ec969ceSTreehugger Robot xmc[44] 3 97*8ec969ceSTreehugger Robot xmc[45] 3 98*8ec969ceSTreehugger Robot xmc[46] 3 99*8ec969ceSTreehugger Robot xmc[47] 3 100*8ec969ceSTreehugger Robot xmc[48] 3 101*8ec969ceSTreehugger Robot xmc[49] 3 102*8ec969ceSTreehugger Robot xmc[50] 3 103*8ec969ceSTreehugger Robot xmc[51] 3 104*8ec969ceSTreehugger Robot */ 105*8ec969ceSTreehugger Robot 106*8ec969ceSTreehugger Robot #ifdef WAV49 107*8ec969ceSTreehugger Robot 108*8ec969ceSTreehugger Robot if (s->wav_fmt) { 109*8ec969ceSTreehugger Robot s->frame_index = !s->frame_index; 110*8ec969ceSTreehugger Robot if (s->frame_index) { 111*8ec969ceSTreehugger Robot 112*8ec969ceSTreehugger Robot uword sr; 113*8ec969ceSTreehugger Robot 114*8ec969ceSTreehugger Robot sr = 0; 115*8ec969ceSTreehugger Robot sr = sr >> 6 | LARc[0] << 10; 116*8ec969ceSTreehugger Robot sr = sr >> 6 | LARc[1] << 10; 117*8ec969ceSTreehugger Robot *c++ = sr >> 4; 118*8ec969ceSTreehugger Robot sr = sr >> 5 | LARc[2] << 11; 119*8ec969ceSTreehugger Robot *c++ = sr >> 7; 120*8ec969ceSTreehugger Robot sr = sr >> 5 | LARc[3] << 11; 121*8ec969ceSTreehugger Robot sr = sr >> 4 | LARc[4] << 12; 122*8ec969ceSTreehugger Robot *c++ = sr >> 6; 123*8ec969ceSTreehugger Robot sr = sr >> 4 | LARc[5] << 12; 124*8ec969ceSTreehugger Robot sr = sr >> 3 | LARc[6] << 13; 125*8ec969ceSTreehugger Robot *c++ = sr >> 7; 126*8ec969ceSTreehugger Robot sr = sr >> 3 | LARc[7] << 13; 127*8ec969ceSTreehugger Robot sr = sr >> 7 | Nc[0] << 9; 128*8ec969ceSTreehugger Robot *c++ = sr >> 5; 129*8ec969ceSTreehugger Robot sr = sr >> 2 | bc[0] << 14; 130*8ec969ceSTreehugger Robot sr = sr >> 2 | Mc[0] << 14; 131*8ec969ceSTreehugger Robot sr = sr >> 6 | xmaxc[0] << 10; 132*8ec969ceSTreehugger Robot *c++ = sr >> 3; 133*8ec969ceSTreehugger Robot sr = sr >> 3 | xmc[0] << 13; 134*8ec969ceSTreehugger Robot *c++ = sr >> 8; 135*8ec969ceSTreehugger Robot sr = sr >> 3 | xmc[1] << 13; 136*8ec969ceSTreehugger Robot sr = sr >> 3 | xmc[2] << 13; 137*8ec969ceSTreehugger Robot sr = sr >> 3 | xmc[3] << 13; 138*8ec969ceSTreehugger Robot *c++ = sr >> 7; 139*8ec969ceSTreehugger Robot sr = sr >> 3 | xmc[4] << 13; 140*8ec969ceSTreehugger Robot sr = sr >> 3 | xmc[5] << 13; 141*8ec969ceSTreehugger Robot sr = sr >> 3 | xmc[6] << 13; 142*8ec969ceSTreehugger Robot *c++ = sr >> 6; 143*8ec969ceSTreehugger Robot sr = sr >> 3 | xmc[7] << 13; 144*8ec969ceSTreehugger Robot sr = sr >> 3 | xmc[8] << 13; 145*8ec969ceSTreehugger Robot *c++ = sr >> 8; 146*8ec969ceSTreehugger Robot sr = sr >> 3 | xmc[9] << 13; 147*8ec969ceSTreehugger Robot sr = sr >> 3 | xmc[10] << 13; 148*8ec969ceSTreehugger Robot sr = sr >> 3 | xmc[11] << 13; 149*8ec969ceSTreehugger Robot *c++ = sr >> 7; 150*8ec969ceSTreehugger Robot sr = sr >> 3 | xmc[12] << 13; 151*8ec969ceSTreehugger Robot sr = sr >> 7 | Nc[1] << 9; 152*8ec969ceSTreehugger Robot *c++ = sr >> 5; 153*8ec969ceSTreehugger Robot sr = sr >> 2 | bc[1] << 14; 154*8ec969ceSTreehugger Robot sr = sr >> 2 | Mc[1] << 14; 155*8ec969ceSTreehugger Robot sr = sr >> 6 | xmaxc[1] << 10; 156*8ec969ceSTreehugger Robot *c++ = sr >> 3; 157*8ec969ceSTreehugger Robot sr = sr >> 3 | xmc[13] << 13; 158*8ec969ceSTreehugger Robot *c++ = sr >> 8; 159*8ec969ceSTreehugger Robot sr = sr >> 3 | xmc[14] << 13; 160*8ec969ceSTreehugger Robot sr = sr >> 3 | xmc[15] << 13; 161*8ec969ceSTreehugger Robot sr = sr >> 3 | xmc[16] << 13; 162*8ec969ceSTreehugger Robot *c++ = sr >> 7; 163*8ec969ceSTreehugger Robot sr = sr >> 3 | xmc[17] << 13; 164*8ec969ceSTreehugger Robot sr = sr >> 3 | xmc[18] << 13; 165*8ec969ceSTreehugger Robot sr = sr >> 3 | xmc[19] << 13; 166*8ec969ceSTreehugger Robot *c++ = sr >> 6; 167*8ec969ceSTreehugger Robot sr = sr >> 3 | xmc[20] << 13; 168*8ec969ceSTreehugger Robot sr = sr >> 3 | xmc[21] << 13; 169*8ec969ceSTreehugger Robot *c++ = sr >> 8; 170*8ec969ceSTreehugger Robot sr = sr >> 3 | xmc[22] << 13; 171*8ec969ceSTreehugger Robot sr = sr >> 3 | xmc[23] << 13; 172*8ec969ceSTreehugger Robot sr = sr >> 3 | xmc[24] << 13; 173*8ec969ceSTreehugger Robot *c++ = sr >> 7; 174*8ec969ceSTreehugger Robot sr = sr >> 3 | xmc[25] << 13; 175*8ec969ceSTreehugger Robot sr = sr >> 7 | Nc[2] << 9; 176*8ec969ceSTreehugger Robot *c++ = sr >> 5; 177*8ec969ceSTreehugger Robot sr = sr >> 2 | bc[2] << 14; 178*8ec969ceSTreehugger Robot sr = sr >> 2 | Mc[2] << 14; 179*8ec969ceSTreehugger Robot sr = sr >> 6 | xmaxc[2] << 10; 180*8ec969ceSTreehugger Robot *c++ = sr >> 3; 181*8ec969ceSTreehugger Robot sr = sr >> 3 | xmc[26] << 13; 182*8ec969ceSTreehugger Robot *c++ = sr >> 8; 183*8ec969ceSTreehugger Robot sr = sr >> 3 | xmc[27] << 13; 184*8ec969ceSTreehugger Robot sr = sr >> 3 | xmc[28] << 13; 185*8ec969ceSTreehugger Robot sr = sr >> 3 | xmc[29] << 13; 186*8ec969ceSTreehugger Robot *c++ = sr >> 7; 187*8ec969ceSTreehugger Robot sr = sr >> 3 | xmc[30] << 13; 188*8ec969ceSTreehugger Robot sr = sr >> 3 | xmc[31] << 13; 189*8ec969ceSTreehugger Robot sr = sr >> 3 | xmc[32] << 13; 190*8ec969ceSTreehugger Robot *c++ = sr >> 6; 191*8ec969ceSTreehugger Robot sr = sr >> 3 | xmc[33] << 13; 192*8ec969ceSTreehugger Robot sr = sr >> 3 | xmc[34] << 13; 193*8ec969ceSTreehugger Robot *c++ = sr >> 8; 194*8ec969ceSTreehugger Robot sr = sr >> 3 | xmc[35] << 13; 195*8ec969ceSTreehugger Robot sr = sr >> 3 | xmc[36] << 13; 196*8ec969ceSTreehugger Robot sr = sr >> 3 | xmc[37] << 13; 197*8ec969ceSTreehugger Robot *c++ = sr >> 7; 198*8ec969ceSTreehugger Robot sr = sr >> 3 | xmc[38] << 13; 199*8ec969ceSTreehugger Robot sr = sr >> 7 | Nc[3] << 9; 200*8ec969ceSTreehugger Robot *c++ = sr >> 5; 201*8ec969ceSTreehugger Robot sr = sr >> 2 | bc[3] << 14; 202*8ec969ceSTreehugger Robot sr = sr >> 2 | Mc[3] << 14; 203*8ec969ceSTreehugger Robot sr = sr >> 6 | xmaxc[3] << 10; 204*8ec969ceSTreehugger Robot *c++ = sr >> 3; 205*8ec969ceSTreehugger Robot sr = sr >> 3 | xmc[39] << 13; 206*8ec969ceSTreehugger Robot *c++ = sr >> 8; 207*8ec969ceSTreehugger Robot sr = sr >> 3 | xmc[40] << 13; 208*8ec969ceSTreehugger Robot sr = sr >> 3 | xmc[41] << 13; 209*8ec969ceSTreehugger Robot sr = sr >> 3 | xmc[42] << 13; 210*8ec969ceSTreehugger Robot *c++ = sr >> 7; 211*8ec969ceSTreehugger Robot sr = sr >> 3 | xmc[43] << 13; 212*8ec969ceSTreehugger Robot sr = sr >> 3 | xmc[44] << 13; 213*8ec969ceSTreehugger Robot sr = sr >> 3 | xmc[45] << 13; 214*8ec969ceSTreehugger Robot *c++ = sr >> 6; 215*8ec969ceSTreehugger Robot sr = sr >> 3 | xmc[46] << 13; 216*8ec969ceSTreehugger Robot sr = sr >> 3 | xmc[47] << 13; 217*8ec969ceSTreehugger Robot *c++ = sr >> 8; 218*8ec969ceSTreehugger Robot sr = sr >> 3 | xmc[48] << 13; 219*8ec969ceSTreehugger Robot sr = sr >> 3 | xmc[49] << 13; 220*8ec969ceSTreehugger Robot sr = sr >> 3 | xmc[50] << 13; 221*8ec969ceSTreehugger Robot *c++ = sr >> 7; 222*8ec969ceSTreehugger Robot sr = sr >> 3 | xmc[51] << 13; 223*8ec969ceSTreehugger Robot sr = sr >> 4; 224*8ec969ceSTreehugger Robot *c = sr >> 8; 225*8ec969ceSTreehugger Robot s->frame_chain = *c; 226*8ec969ceSTreehugger Robot } 227*8ec969ceSTreehugger Robot else { 228*8ec969ceSTreehugger Robot uword sr; 229*8ec969ceSTreehugger Robot 230*8ec969ceSTreehugger Robot sr = 0; 231*8ec969ceSTreehugger Robot sr = sr >> 4 | s->frame_chain << 12; 232*8ec969ceSTreehugger Robot sr = sr >> 6 | LARc[0] << 10; 233*8ec969ceSTreehugger Robot *c++ = sr >> 6; 234*8ec969ceSTreehugger Robot sr = sr >> 6 | LARc[1] << 10; 235*8ec969ceSTreehugger Robot *c++ = sr >> 8; 236*8ec969ceSTreehugger Robot sr = sr >> 5 | LARc[2] << 11; 237*8ec969ceSTreehugger Robot sr = sr >> 5 | LARc[3] << 11; 238*8ec969ceSTreehugger Robot *c++ = sr >> 6; 239*8ec969ceSTreehugger Robot sr = sr >> 4 | LARc[4] << 12; 240*8ec969ceSTreehugger Robot sr = sr >> 4 | LARc[5] << 12; 241*8ec969ceSTreehugger Robot *c++ = sr >> 6; 242*8ec969ceSTreehugger Robot sr = sr >> 3 | LARc[6] << 13; 243*8ec969ceSTreehugger Robot sr = sr >> 3 | LARc[7] << 13; 244*8ec969ceSTreehugger Robot *c++ = sr >> 8; 245*8ec969ceSTreehugger Robot sr = sr >> 7 | Nc[0] << 9; 246*8ec969ceSTreehugger Robot sr = sr >> 2 | bc[0] << 14; 247*8ec969ceSTreehugger Robot *c++ = sr >> 7; 248*8ec969ceSTreehugger Robot sr = sr >> 2 | Mc[0] << 14; 249*8ec969ceSTreehugger Robot sr = sr >> 6 | xmaxc[0] << 10; 250*8ec969ceSTreehugger Robot *c++ = sr >> 7; 251*8ec969ceSTreehugger Robot sr = sr >> 3 | xmc[0] << 13; 252*8ec969ceSTreehugger Robot sr = sr >> 3 | xmc[1] << 13; 253*8ec969ceSTreehugger Robot sr = sr >> 3 | xmc[2] << 13; 254*8ec969ceSTreehugger Robot *c++ = sr >> 6; 255*8ec969ceSTreehugger Robot sr = sr >> 3 | xmc[3] << 13; 256*8ec969ceSTreehugger Robot sr = sr >> 3 | xmc[4] << 13; 257*8ec969ceSTreehugger Robot *c++ = sr >> 8; 258*8ec969ceSTreehugger Robot sr = sr >> 3 | xmc[5] << 13; 259*8ec969ceSTreehugger Robot sr = sr >> 3 | xmc[6] << 13; 260*8ec969ceSTreehugger Robot sr = sr >> 3 | xmc[7] << 13; 261*8ec969ceSTreehugger Robot *c++ = sr >> 7; 262*8ec969ceSTreehugger Robot sr = sr >> 3 | xmc[8] << 13; 263*8ec969ceSTreehugger Robot sr = sr >> 3 | xmc[9] << 13; 264*8ec969ceSTreehugger Robot sr = sr >> 3 | xmc[10] << 13; 265*8ec969ceSTreehugger Robot *c++ = sr >> 6; 266*8ec969ceSTreehugger Robot sr = sr >> 3 | xmc[11] << 13; 267*8ec969ceSTreehugger Robot sr = sr >> 3 | xmc[12] << 13; 268*8ec969ceSTreehugger Robot *c++ = sr >> 8; 269*8ec969ceSTreehugger Robot sr = sr >> 7 | Nc[1] << 9; 270*8ec969ceSTreehugger Robot sr = sr >> 2 | bc[1] << 14; 271*8ec969ceSTreehugger Robot *c++ = sr >> 7; 272*8ec969ceSTreehugger Robot sr = sr >> 2 | Mc[1] << 14; 273*8ec969ceSTreehugger Robot sr = sr >> 6 | xmaxc[1] << 10; 274*8ec969ceSTreehugger Robot *c++ = sr >> 7; 275*8ec969ceSTreehugger Robot sr = sr >> 3 | xmc[13] << 13; 276*8ec969ceSTreehugger Robot sr = sr >> 3 | xmc[14] << 13; 277*8ec969ceSTreehugger Robot sr = sr >> 3 | xmc[15] << 13; 278*8ec969ceSTreehugger Robot *c++ = sr >> 6; 279*8ec969ceSTreehugger Robot sr = sr >> 3 | xmc[16] << 13; 280*8ec969ceSTreehugger Robot sr = sr >> 3 | xmc[17] << 13; 281*8ec969ceSTreehugger Robot *c++ = sr >> 8; 282*8ec969ceSTreehugger Robot sr = sr >> 3 | xmc[18] << 13; 283*8ec969ceSTreehugger Robot sr = sr >> 3 | xmc[19] << 13; 284*8ec969ceSTreehugger Robot sr = sr >> 3 | xmc[20] << 13; 285*8ec969ceSTreehugger Robot *c++ = sr >> 7; 286*8ec969ceSTreehugger Robot sr = sr >> 3 | xmc[21] << 13; 287*8ec969ceSTreehugger Robot sr = sr >> 3 | xmc[22] << 13; 288*8ec969ceSTreehugger Robot sr = sr >> 3 | xmc[23] << 13; 289*8ec969ceSTreehugger Robot *c++ = sr >> 6; 290*8ec969ceSTreehugger Robot sr = sr >> 3 | xmc[24] << 13; 291*8ec969ceSTreehugger Robot sr = sr >> 3 | xmc[25] << 13; 292*8ec969ceSTreehugger Robot *c++ = sr >> 8; 293*8ec969ceSTreehugger Robot sr = sr >> 7 | Nc[2] << 9; 294*8ec969ceSTreehugger Robot sr = sr >> 2 | bc[2] << 14; 295*8ec969ceSTreehugger Robot *c++ = sr >> 7; 296*8ec969ceSTreehugger Robot sr = sr >> 2 | Mc[2] << 14; 297*8ec969ceSTreehugger Robot sr = sr >> 6 | xmaxc[2] << 10; 298*8ec969ceSTreehugger Robot *c++ = sr >> 7; 299*8ec969ceSTreehugger Robot sr = sr >> 3 | xmc[26] << 13; 300*8ec969ceSTreehugger Robot sr = sr >> 3 | xmc[27] << 13; 301*8ec969ceSTreehugger Robot sr = sr >> 3 | xmc[28] << 13; 302*8ec969ceSTreehugger Robot *c++ = sr >> 6; 303*8ec969ceSTreehugger Robot sr = sr >> 3 | xmc[29] << 13; 304*8ec969ceSTreehugger Robot sr = sr >> 3 | xmc[30] << 13; 305*8ec969ceSTreehugger Robot *c++ = sr >> 8; 306*8ec969ceSTreehugger Robot sr = sr >> 3 | xmc[31] << 13; 307*8ec969ceSTreehugger Robot sr = sr >> 3 | xmc[32] << 13; 308*8ec969ceSTreehugger Robot sr = sr >> 3 | xmc[33] << 13; 309*8ec969ceSTreehugger Robot *c++ = sr >> 7; 310*8ec969ceSTreehugger Robot sr = sr >> 3 | xmc[34] << 13; 311*8ec969ceSTreehugger Robot sr = sr >> 3 | xmc[35] << 13; 312*8ec969ceSTreehugger Robot sr = sr >> 3 | xmc[36] << 13; 313*8ec969ceSTreehugger Robot *c++ = sr >> 6; 314*8ec969ceSTreehugger Robot sr = sr >> 3 | xmc[37] << 13; 315*8ec969ceSTreehugger Robot sr = sr >> 3 | xmc[38] << 13; 316*8ec969ceSTreehugger Robot *c++ = sr >> 8; 317*8ec969ceSTreehugger Robot sr = sr >> 7 | Nc[3] << 9; 318*8ec969ceSTreehugger Robot sr = sr >> 2 | bc[3] << 14; 319*8ec969ceSTreehugger Robot *c++ = sr >> 7; 320*8ec969ceSTreehugger Robot sr = sr >> 2 | Mc[3] << 14; 321*8ec969ceSTreehugger Robot sr = sr >> 6 | xmaxc[3] << 10; 322*8ec969ceSTreehugger Robot *c++ = sr >> 7; 323*8ec969ceSTreehugger Robot sr = sr >> 3 | xmc[39] << 13; 324*8ec969ceSTreehugger Robot sr = sr >> 3 | xmc[40] << 13; 325*8ec969ceSTreehugger Robot sr = sr >> 3 | xmc[41] << 13; 326*8ec969ceSTreehugger Robot *c++ = sr >> 6; 327*8ec969ceSTreehugger Robot sr = sr >> 3 | xmc[42] << 13; 328*8ec969ceSTreehugger Robot sr = sr >> 3 | xmc[43] << 13; 329*8ec969ceSTreehugger Robot *c++ = sr >> 8; 330*8ec969ceSTreehugger Robot sr = sr >> 3 | xmc[44] << 13; 331*8ec969ceSTreehugger Robot sr = sr >> 3 | xmc[45] << 13; 332*8ec969ceSTreehugger Robot sr = sr >> 3 | xmc[46] << 13; 333*8ec969ceSTreehugger Robot *c++ = sr >> 7; 334*8ec969ceSTreehugger Robot sr = sr >> 3 | xmc[47] << 13; 335*8ec969ceSTreehugger Robot sr = sr >> 3 | xmc[48] << 13; 336*8ec969ceSTreehugger Robot sr = sr >> 3 | xmc[49] << 13; 337*8ec969ceSTreehugger Robot *c++ = sr >> 6; 338*8ec969ceSTreehugger Robot sr = sr >> 3 | xmc[50] << 13; 339*8ec969ceSTreehugger Robot sr = sr >> 3 | xmc[51] << 13; 340*8ec969ceSTreehugger Robot *c++ = sr >> 8; 341*8ec969ceSTreehugger Robot } 342*8ec969ceSTreehugger Robot } 343*8ec969ceSTreehugger Robot 344*8ec969ceSTreehugger Robot else 345*8ec969ceSTreehugger Robot 346*8ec969ceSTreehugger Robot #endif /* WAV49 */ 347*8ec969ceSTreehugger Robot { 348*8ec969ceSTreehugger Robot 349*8ec969ceSTreehugger Robot *c++ = ((GSM_MAGIC & 0xF) << 4) /* 1 */ 350*8ec969ceSTreehugger Robot | ((LARc[0] >> 2) & 0xF); 351*8ec969ceSTreehugger Robot *c++ = ((LARc[0] & 0x3) << 6) 352*8ec969ceSTreehugger Robot | (LARc[1] & 0x3F); 353*8ec969ceSTreehugger Robot *c++ = ((LARc[2] & 0x1F) << 3) 354*8ec969ceSTreehugger Robot | ((LARc[3] >> 2) & 0x7); 355*8ec969ceSTreehugger Robot *c++ = ((LARc[3] & 0x3) << 6) 356*8ec969ceSTreehugger Robot | ((LARc[4] & 0xF) << 2) 357*8ec969ceSTreehugger Robot | ((LARc[5] >> 2) & 0x3); 358*8ec969ceSTreehugger Robot *c++ = ((LARc[5] & 0x3) << 6) 359*8ec969ceSTreehugger Robot | ((LARc[6] & 0x7) << 3) 360*8ec969ceSTreehugger Robot | (LARc[7] & 0x7); 361*8ec969ceSTreehugger Robot *c++ = ((Nc[0] & 0x7F) << 1) 362*8ec969ceSTreehugger Robot | ((bc[0] >> 1) & 0x1); 363*8ec969ceSTreehugger Robot *c++ = ((bc[0] & 0x1) << 7) 364*8ec969ceSTreehugger Robot | ((Mc[0] & 0x3) << 5) 365*8ec969ceSTreehugger Robot | ((xmaxc[0] >> 1) & 0x1F); 366*8ec969ceSTreehugger Robot *c++ = ((xmaxc[0] & 0x1) << 7) 367*8ec969ceSTreehugger Robot | ((xmc[0] & 0x7) << 4) 368*8ec969ceSTreehugger Robot | ((xmc[1] & 0x7) << 1) 369*8ec969ceSTreehugger Robot | ((xmc[2] >> 2) & 0x1); 370*8ec969ceSTreehugger Robot *c++ = ((xmc[2] & 0x3) << 6) 371*8ec969ceSTreehugger Robot | ((xmc[3] & 0x7) << 3) 372*8ec969ceSTreehugger Robot | (xmc[4] & 0x7); 373*8ec969ceSTreehugger Robot *c++ = ((xmc[5] & 0x7) << 5) /* 10 */ 374*8ec969ceSTreehugger Robot | ((xmc[6] & 0x7) << 2) 375*8ec969ceSTreehugger Robot | ((xmc[7] >> 1) & 0x3); 376*8ec969ceSTreehugger Robot *c++ = ((xmc[7] & 0x1) << 7) 377*8ec969ceSTreehugger Robot | ((xmc[8] & 0x7) << 4) 378*8ec969ceSTreehugger Robot | ((xmc[9] & 0x7) << 1) 379*8ec969ceSTreehugger Robot | ((xmc[10] >> 2) & 0x1); 380*8ec969ceSTreehugger Robot *c++ = ((xmc[10] & 0x3) << 6) 381*8ec969ceSTreehugger Robot | ((xmc[11] & 0x7) << 3) 382*8ec969ceSTreehugger Robot | (xmc[12] & 0x7); 383*8ec969ceSTreehugger Robot *c++ = ((Nc[1] & 0x7F) << 1) 384*8ec969ceSTreehugger Robot | ((bc[1] >> 1) & 0x1); 385*8ec969ceSTreehugger Robot *c++ = ((bc[1] & 0x1) << 7) 386*8ec969ceSTreehugger Robot | ((Mc[1] & 0x3) << 5) 387*8ec969ceSTreehugger Robot | ((xmaxc[1] >> 1) & 0x1F); 388*8ec969ceSTreehugger Robot *c++ = ((xmaxc[1] & 0x1) << 7) 389*8ec969ceSTreehugger Robot | ((xmc[13] & 0x7) << 4) 390*8ec969ceSTreehugger Robot | ((xmc[14] & 0x7) << 1) 391*8ec969ceSTreehugger Robot | ((xmc[15] >> 2) & 0x1); 392*8ec969ceSTreehugger Robot *c++ = ((xmc[15] & 0x3) << 6) 393*8ec969ceSTreehugger Robot | ((xmc[16] & 0x7) << 3) 394*8ec969ceSTreehugger Robot | (xmc[17] & 0x7); 395*8ec969ceSTreehugger Robot *c++ = ((xmc[18] & 0x7) << 5) 396*8ec969ceSTreehugger Robot | ((xmc[19] & 0x7) << 2) 397*8ec969ceSTreehugger Robot | ((xmc[20] >> 1) & 0x3); 398*8ec969ceSTreehugger Robot *c++ = ((xmc[20] & 0x1) << 7) 399*8ec969ceSTreehugger Robot | ((xmc[21] & 0x7) << 4) 400*8ec969ceSTreehugger Robot | ((xmc[22] & 0x7) << 1) 401*8ec969ceSTreehugger Robot | ((xmc[23] >> 2) & 0x1); 402*8ec969ceSTreehugger Robot *c++ = ((xmc[23] & 0x3) << 6) 403*8ec969ceSTreehugger Robot | ((xmc[24] & 0x7) << 3) 404*8ec969ceSTreehugger Robot | (xmc[25] & 0x7); 405*8ec969ceSTreehugger Robot *c++ = ((Nc[2] & 0x7F) << 1) /* 20 */ 406*8ec969ceSTreehugger Robot | ((bc[2] >> 1) & 0x1); 407*8ec969ceSTreehugger Robot *c++ = ((bc[2] & 0x1) << 7) 408*8ec969ceSTreehugger Robot | ((Mc[2] & 0x3) << 5) 409*8ec969ceSTreehugger Robot | ((xmaxc[2] >> 1) & 0x1F); 410*8ec969ceSTreehugger Robot *c++ = ((xmaxc[2] & 0x1) << 7) 411*8ec969ceSTreehugger Robot | ((xmc[26] & 0x7) << 4) 412*8ec969ceSTreehugger Robot | ((xmc[27] & 0x7) << 1) 413*8ec969ceSTreehugger Robot | ((xmc[28] >> 2) & 0x1); 414*8ec969ceSTreehugger Robot *c++ = ((xmc[28] & 0x3) << 6) 415*8ec969ceSTreehugger Robot | ((xmc[29] & 0x7) << 3) 416*8ec969ceSTreehugger Robot | (xmc[30] & 0x7); 417*8ec969ceSTreehugger Robot *c++ = ((xmc[31] & 0x7) << 5) 418*8ec969ceSTreehugger Robot | ((xmc[32] & 0x7) << 2) 419*8ec969ceSTreehugger Robot | ((xmc[33] >> 1) & 0x3); 420*8ec969ceSTreehugger Robot *c++ = ((xmc[33] & 0x1) << 7) 421*8ec969ceSTreehugger Robot | ((xmc[34] & 0x7) << 4) 422*8ec969ceSTreehugger Robot | ((xmc[35] & 0x7) << 1) 423*8ec969ceSTreehugger Robot | ((xmc[36] >> 2) & 0x1); 424*8ec969ceSTreehugger Robot *c++ = ((xmc[36] & 0x3) << 6) 425*8ec969ceSTreehugger Robot | ((xmc[37] & 0x7) << 3) 426*8ec969ceSTreehugger Robot | (xmc[38] & 0x7); 427*8ec969ceSTreehugger Robot *c++ = ((Nc[3] & 0x7F) << 1) 428*8ec969ceSTreehugger Robot | ((bc[3] >> 1) & 0x1); 429*8ec969ceSTreehugger Robot *c++ = ((bc[3] & 0x1) << 7) 430*8ec969ceSTreehugger Robot | ((Mc[3] & 0x3) << 5) 431*8ec969ceSTreehugger Robot | ((xmaxc[3] >> 1) & 0x1F); 432*8ec969ceSTreehugger Robot *c++ = ((xmaxc[3] & 0x1) << 7) 433*8ec969ceSTreehugger Robot | ((xmc[39] & 0x7) << 4) 434*8ec969ceSTreehugger Robot | ((xmc[40] & 0x7) << 1) 435*8ec969ceSTreehugger Robot | ((xmc[41] >> 2) & 0x1); 436*8ec969ceSTreehugger Robot *c++ = ((xmc[41] & 0x3) << 6) /* 30 */ 437*8ec969ceSTreehugger Robot | ((xmc[42] & 0x7) << 3) 438*8ec969ceSTreehugger Robot | (xmc[43] & 0x7); 439*8ec969ceSTreehugger Robot *c++ = ((xmc[44] & 0x7) << 5) 440*8ec969ceSTreehugger Robot | ((xmc[45] & 0x7) << 2) 441*8ec969ceSTreehugger Robot | ((xmc[46] >> 1) & 0x3); 442*8ec969ceSTreehugger Robot *c++ = ((xmc[46] & 0x1) << 7) 443*8ec969ceSTreehugger Robot | ((xmc[47] & 0x7) << 4) 444*8ec969ceSTreehugger Robot | ((xmc[48] & 0x7) << 1) 445*8ec969ceSTreehugger Robot | ((xmc[49] >> 2) & 0x1); 446*8ec969ceSTreehugger Robot *c++ = ((xmc[49] & 0x3) << 6) 447*8ec969ceSTreehugger Robot | ((xmc[50] & 0x7) << 3) 448*8ec969ceSTreehugger Robot | (xmc[51] & 0x7); 449*8ec969ceSTreehugger Robot 450*8ec969ceSTreehugger Robot } 451*8ec969ceSTreehugger Robot } 452