15e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh/*
25e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh * Copyright 1992 by Jutta Degener and Carsten Bormann, Technische
35e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh * Universitaet Berlin.  See the accompanying file "COPYRIGHT" for
45e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh * details.  THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE.
55e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh */
65e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh
75e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh/* $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 $ */
85e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh
95e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh#include "private.h"
105e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh
115e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh#include "gsm.h"
125e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh#include "proto.h"
135e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh
145e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yehvoid gsm_implode P3((s, source, c), gsm s, gsm_signal * source, gsm_byte * c)
155e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh{
165e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh	/*	variable	size	index
175e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh
185e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		GSM_MAGIC	4	-
195e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh
205e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		LARc[0]		6	0
215e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		LARc[1]		6	1
225e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		LARc[2]		5	2
235e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		LARc[3]		5	3
245e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		LARc[4]		4	4
255e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		LARc[5]		4	5
265e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		LARc[6]		3	6
275e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		LARc[7]		3	7
285e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh
295e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		Nc[0]		7	8
305e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		bc[0]		2	9
315e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		Mc[0]		2	10
325e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		xmaxc[0]	6	11
335e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		xmc[0]		3	12
345e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		xmc[1]		3	13
355e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		xmc[2]		3	14
365e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		xmc[3]		3	15
375e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		xmc[4]		3	16
385e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		xmc[5]		3	17
395e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		xmc[6]		3	18
405e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		xmc[7]		3	19
415e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		xmc[8]		3	20
425e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		xmc[9]		3	21
435e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		xmc[10]		3	22
445e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		xmc[11]		3	23
455e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		xmc[12]		3	24
465e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh
475e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		Nc[1]		7	25
485e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		bc[1]		2	26
495e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		Mc[1]		2	27
505e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		xmaxc[1]	6	28
515e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		xmc[13]		3	29
525e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		xmc[14]		3	30
535e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		xmc[15]		3	31
545e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		xmc[16]		3	32
555e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		xmc[17]		3	33
565e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		xmc[18]		3	34
575e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		xmc[19]		3	35
585e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		xmc[20]		3	36
595e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		xmc[21]		3	37
605e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		xmc[22]		3	38
615e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		xmc[23]		3	39
625e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		xmc[24]		3	40
635e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		xmc[25]		3	41
645e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh
655e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		Nc[2]		7	42
665e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		bc[2]		2	43
675e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		Mc[2]		2	44
685e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		xmaxc[2]	6	45
695e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		xmc[26]		3	46
705e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		xmc[27]		3	47
715e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		xmc[28]		3	48
725e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		xmc[29]		3	49
735e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		xmc[30]		3	50
745e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		xmc[31]		3	51
755e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		xmc[32]		3	52
765e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		xmc[33]		3	53
775e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		xmc[34]		3	54
785e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		xmc[35]		3	55
795e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		xmc[36]		3	56
805e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		xmc[37]		3	57
815e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		xmc[38]		3	58
825e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh
835e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		Nc[3]		7	59
845e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		bc[3]		2	60
855e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		Mc[3]		2	61
865e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		xmaxc[3]	6	62
875e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		xmc[39]		3	63
885e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		xmc[40]		3	64
895e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		xmc[41]		3	65
905e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		xmc[42]		3	66
915e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		xmc[43]		3	67
925e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		xmc[44]		3	68
935e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		xmc[45]		3	69
945e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		xmc[46]		3	70
955e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		xmc[47]		3	71
965e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		xmc[48]		3	72
975e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		xmc[49]		3	73
985e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		xmc[50]		3	74
995e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		xmc[51]		3	75
1005e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh	*/
1015e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh
1025e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh	/*	There are 76 parameters per frame.  The first eight are
1035e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh	 * 	unique.  The remaining 68 are four identical subframes of
1045e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh	 * 	17 parameters each.  gsm_implode converts from a representation
1055e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh	 * 	of these parameters as values in one array of signed words
1065e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh	 * 	to the "packed" version of a GSM frame.
1075e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh	 */
1085e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh
1095e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh#	define	LARc	source
1105e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh#	define	Nc	*((gsm_signal (*) [17])(source + 8))
1115e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh#	define	bc	*((gsm_signal (*) [17])(source + 9))
1125e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh#	define	Mc	*((gsm_signal (*) [17])(source + 10))
1135e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh#	define	xmaxc	*((gsm_signal (*) [17])(source + 11))
1145e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh
1155e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh#ifdef WAV49
1165e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh	if (s->wav_fmt) {
1175e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh
1185e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		uword sr = 0;
1195e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		if (s->frame_index) {
1205e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 6 | LARc[0] << 10;
1215e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 6 | LARc[1] << 10;
1225e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			*c++ = sr >> 4;
1235e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 5 | LARc[2] << 11;
1245e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			*c++ = sr >> 7;
1255e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 5 | LARc[3] << 11;
1265e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 4 | LARc[4] << 12;
1275e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			*c++ = sr >> 6;
1285e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 4 | LARc[5] << 12;
1295e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | LARc[6] << 13;
1305e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			*c++ = sr >> 7;
1315e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | LARc[7] << 13;
1325e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 7 | Nc[0] << 9;
1335e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			*c++ = sr >> 5;
1345e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 2 | bc[0] << 14;
1355e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 2 | Mc[0] << 14;
1365e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 6 | xmaxc[0] << 10;
1375e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			*c++ = sr >> 3;
1385e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh#undef xmc
1395e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh#define	xmc	(source + 12)
1405e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh
1415e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | xmc[0] << 13;
1425e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			*c++ = sr >> 8;
1435e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | xmc[1] << 13;
1445e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | xmc[2] << 13;
1455e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | xmc[3] << 13;
1465e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			*c++ = sr >> 7;
1475e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | xmc[4] << 13;
1485e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | xmc[5] << 13;
1495e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | xmc[6] << 13;
1505e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			*c++ = sr >> 6;
1515e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | xmc[7] << 13;
1525e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | xmc[8] << 13;
1535e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			*c++ = sr >> 8;
1545e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | xmc[9] << 13;
1555e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | xmc[10] << 13;
1565e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | xmc[11] << 13;
1575e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			*c++ = sr >> 7;
1585e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | xmc[12] << 13;
1595e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 7 | Nc[1] << 9;
1605e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			*c++ = sr >> 5;
1615e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 2 | bc[1] << 14;
1625e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 2 | Mc[1] << 14;
1635e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 6 | xmaxc[1] << 10;
1645e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			*c++ = sr >> 3;
1655e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh#undef	xmc
1665e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh#define	xmc	(source + 29 - 13)
1675e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh
1685e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | xmc[13] << 13;
1695e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			*c++ = sr >> 8;
1705e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | xmc[14] << 13;
1715e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | xmc[15] << 13;
1725e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | xmc[16] << 13;
1735e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			*c++ = sr >> 7;
1745e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | xmc[17] << 13;
1755e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | xmc[18] << 13;
1765e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | xmc[19] << 13;
1775e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			*c++ = sr >> 6;
1785e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | xmc[20] << 13;
1795e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | xmc[21] << 13;
1805e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			*c++ = sr >> 8;
1815e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | xmc[22] << 13;
1825e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | xmc[23] << 13;
1835e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | xmc[24] << 13;
1845e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			*c++ = sr >> 7;
1855e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | xmc[25] << 13;
1865e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 7 | Nc[2] << 9;
1875e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			*c++ = sr >> 5;
1885e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 2 | bc[2] << 14;
1895e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 2 | Mc[2] << 14;
1905e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 6 | xmaxc[2] << 10;
1915e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			*c++ = sr >> 3;
1925e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh#undef	xmc
1935e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh#define	xmc	(source + 46 - 26)
1945e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh
1955e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | xmc[26] << 13;
1965e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			*c++ = sr >> 8;
1975e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | xmc[27] << 13;
1985e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | xmc[28] << 13;
1995e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | xmc[29] << 13;
2005e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			*c++ = sr >> 7;
2015e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | xmc[30] << 13;
2025e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | xmc[31] << 13;
2035e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | xmc[32] << 13;
2045e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			*c++ = sr >> 6;
2055e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | xmc[33] << 13;
2065e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | xmc[34] << 13;
2075e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			*c++ = sr >> 8;
2085e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | xmc[35] << 13;
2095e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | xmc[36] << 13;
2105e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | xmc[37] << 13;
2115e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			*c++ = sr >> 7;
2125e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | xmc[38] << 13;
2135e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 7 | Nc[3] << 9;
2145e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			*c++ = sr >> 5;
2155e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 2 | bc[3] << 14;
2165e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 2 | Mc[3] << 14;
2175e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 6 | xmaxc[3] << 10;
2185e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			*c++ = sr >> 3;
2195e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh#undef	xmc
2205e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh#define	xmc	(source + 63 - 39)
2215e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh
2225e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | xmc[39] << 13;
2235e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			*c++ = sr >> 8;
2245e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | xmc[40] << 13;
2255e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | xmc[41] << 13;
2265e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | xmc[42] << 13;
2275e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			*c++ = sr >> 7;
2285e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | xmc[43] << 13;
2295e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | xmc[44] << 13;
2305e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | xmc[45] << 13;
2315e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			*c++ = sr >> 6;
2325e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | xmc[46] << 13;
2335e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | xmc[47] << 13;
2345e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			*c++ = sr >> 8;
2355e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | xmc[48] << 13;
2365e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | xmc[49] << 13;
2375e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | xmc[50] << 13;
2385e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			*c++ = sr >> 7;
2395e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | xmc[51] << 13;
2405e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 4;
2415e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			*c = sr >> 8;
2425e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			s->frame_chain = *c;
2435e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		}
2445e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		else {
2455e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 4 | s->frame_chain << 12;
2465e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 6 | LARc[0] << 10;
2475e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			*c++ = sr >> 6;
2485e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 6 | LARc[1] << 10;
2495e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			*c++ = sr >> 8;
2505e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 5 | LARc[2] << 11;
2515e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 5 | LARc[3] << 11;
2525e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			*c++ = sr >> 6;
2535e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 4 | LARc[4] << 12;
2545e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 4 | LARc[5] << 12;
2555e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			*c++ = sr >> 6;
2565e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | LARc[6] << 13;
2575e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | LARc[7] << 13;
2585e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			*c++ = sr >> 8;
2595e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 7 | Nc[0] << 9;
2605e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 2 | bc[0] << 14;
2615e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			*c++ = sr >> 7;
2625e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 2 | Mc[0] << 14;
2635e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 6 | xmaxc[0] << 10;
2645e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			*c++ = sr >> 7;
2655e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh#undef xmc
2665e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh#define	xmc	(source + 12)
2675e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh
2685e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | xmc[0] << 13;
2695e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | xmc[1] << 13;
2705e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | xmc[2] << 13;
2715e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			*c++ = sr >> 6;
2725e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | xmc[3] << 13;
2735e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | xmc[4] << 13;
2745e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			*c++ = sr >> 8;
2755e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | xmc[5] << 13;
2765e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | xmc[6] << 13;
2775e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | xmc[7] << 13;
2785e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			*c++ = sr >> 7;
2795e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | xmc[8] << 13;
2805e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | xmc[9] << 13;
2815e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | xmc[10] << 13;
2825e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			*c++ = sr >> 6;
2835e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | xmc[11] << 13;
2845e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | xmc[12] << 13;
2855e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			*c++ = sr >> 8;
2865e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 7 | Nc[1] << 9;
2875e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 2 | bc[1] << 14;
2885e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			*c++ = sr >> 7;
2895e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 2 | Mc[1] << 14;
2905e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 6 | xmaxc[1] << 10;
2915e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			*c++ = sr >> 7;
2925e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh#undef	xmc
2935e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh#define	xmc	(source + 29 - 13)
2945e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh
2955e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | xmc[13] << 13;
2965e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | xmc[14] << 13;
2975e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | xmc[15] << 13;
2985e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			*c++ = sr >> 6;
2995e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | xmc[16] << 13;
3005e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | xmc[17] << 13;
3015e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			*c++ = sr >> 8;
3025e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | xmc[18] << 13;
3035e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | xmc[19] << 13;
3045e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | xmc[20] << 13;
3055e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			*c++ = sr >> 7;
3065e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | xmc[21] << 13;
3075e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | xmc[22] << 13;
3085e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | xmc[23] << 13;
3095e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			*c++ = sr >> 6;
3105e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | xmc[24] << 13;
3115e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | xmc[25] << 13;
3125e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			*c++ = sr >> 8;
3135e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 7 | Nc[2] << 9;
3145e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 2 | bc[2] << 14;
3155e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			*c++ = sr >> 7;
3165e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 2 | Mc[2] << 14;
3175e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 6 | xmaxc[2] << 10;
3185e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			*c++ = sr >> 7;
3195e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh#undef	xmc
3205e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh#define	xmc	(source + 46 - 26)
3215e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh
3225e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | xmc[26] << 13;
3235e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | xmc[27] << 13;
3245e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | xmc[28] << 13;
3255e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			*c++ = sr >> 6;
3265e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | xmc[29] << 13;
3275e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | xmc[30] << 13;
3285e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			*c++ = sr >> 8;
3295e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | xmc[31] << 13;
3305e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | xmc[32] << 13;
3315e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | xmc[33] << 13;
3325e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			*c++ = sr >> 7;
3335e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | xmc[34] << 13;
3345e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | xmc[35] << 13;
3355e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | xmc[36] << 13;
3365e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			*c++ = sr >> 6;
3375e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | xmc[37] << 13;
3385e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | xmc[38] << 13;
3395e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			*c++ = sr >> 8;
3405e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 7 | Nc[3] << 9;
3415e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 2 | bc[3] << 14;
3425e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			*c++ = sr >> 7;
3435e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 2 | Mc[3] << 14;
3445e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 6 | xmaxc[3] << 10;
3455e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			*c++ = sr >> 7;
3465e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh#undef	xmc
3475e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh#define	xmc	(source + 63 - 39)
3485e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh
3495e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | xmc[39] << 13;
3505e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | xmc[40] << 13;
3515e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | xmc[41] << 13;
3525e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			*c++ = sr >> 6;
3535e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | xmc[42] << 13;
3545e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | xmc[43] << 13;
3555e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			*c++ = sr >> 8;
3565e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | xmc[44] << 13;
3575e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | xmc[45] << 13;
3585e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | xmc[46] << 13;
3595e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			*c++ = sr >> 7;
3605e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | xmc[47] << 13;
3615e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | xmc[48] << 13;
3625e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | xmc[49] << 13;
3635e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			*c++ = sr >> 6;
3645e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | xmc[50] << 13;
3655e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			sr = sr >> 3 | xmc[51] << 13;
3665e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh			*c++ = sr >> 8;
3675e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		}
3685e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh	}
3695e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh	else
3705e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh#endif
3715e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh	{
3725e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh
3735e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		*c++ =   ((GSM_MAGIC & 0xF) << 4)		/* 1 */
3745e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		       | ((LARc[0] >> 2) & 0xF);
3755e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		*c++ =   ((LARc[0] & 0x3) << 6)
3765e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		       | (LARc[1] & 0x3F);
3775e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		*c++ =   ((LARc[2] & 0x1F) << 3)
3785e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		       | ((LARc[3] >> 2) & 0x7);
3795e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		*c++ =   ((LARc[3] & 0x3) << 6)
3805e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		       | ((LARc[4] & 0xF) << 2)
3815e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		       | ((LARc[5] >> 2) & 0x3);
3825e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		*c++ =   ((LARc[5] & 0x3) << 6)
3835e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		       | ((LARc[6] & 0x7) << 3)
3845e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		       | (LARc[7] & 0x7);
3855e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh
3865e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh
3875e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		*c++ =   ((Nc[0] & 0x7F) << 1)
3885e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh
3895e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh
3905e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		       | ((bc[0] >> 1) & 0x1);
3915e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		*c++ =   ((bc[0] & 0x1) << 7)
3925e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh
3935e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh
3945e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		       | ((Mc[0] & 0x3) << 5)
3955e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh
3965e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		       | ((xmaxc[0] >> 1) & 0x1F);
3975e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		*c++ =   ((xmaxc[0] & 0x1) << 7)
3985e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh
3995e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh#undef xmc
4005e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh#define	xmc	(source + 12)
4015e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh
4025e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		       | ((xmc[0] & 0x7) << 4)
4035e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		       | ((xmc[1] & 0x7) << 1)
4045e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		       | ((xmc[2] >> 2) & 0x1);
4055e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		*c++ =   ((xmc[2] & 0x3) << 6)
4065e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		       | ((xmc[3] & 0x7) << 3)
4075e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		       | (xmc[4] & 0x7);
4085e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		*c++ =   ((xmc[5] & 0x7) << 5)			/* 10 */
4095e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		       | ((xmc[6] & 0x7) << 2)
4105e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		       | ((xmc[7] >> 1) & 0x3);
4115e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		*c++ =   ((xmc[7] & 0x1) << 7)
4125e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		       | ((xmc[8] & 0x7) << 4)
4135e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		       | ((xmc[9] & 0x7) << 1)
4145e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		       | ((xmc[10] >> 2) & 0x1);
4155e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		*c++ =   ((xmc[10] & 0x3) << 6)
4165e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		       | ((xmc[11] & 0x7) << 3)
4175e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		       | (xmc[12] & 0x7);
4185e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh
4195e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh
4205e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		*c++ =   ((Nc[1] & 0x7F) << 1)
4215e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh
4225e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh
4235e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		       | ((bc[1] >> 1) & 0x1);
4245e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		*c++ =   ((bc[1] & 0x1) << 7)
4255e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh
4265e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh
4275e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		       | ((Mc[1] & 0x3) << 5)
4285e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh
4295e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh
4305e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		       | ((xmaxc[1] >> 1) & 0x1F);
4315e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		*c++ =   ((xmaxc[1] & 0x1) << 7)
4325e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh
4335e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh#undef	xmc
4345e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh#define	xmc	(source + 29 - 13)
4355e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh
4365e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		       | ((xmc[13] & 0x7) << 4)
4375e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		       | ((xmc[14] & 0x7) << 1)
4385e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		       | ((xmc[15] >> 2) & 0x1);
4395e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		*c++ =   ((xmc[15] & 0x3) << 6)
4405e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		       | ((xmc[16] & 0x7) << 3)
4415e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		       | (xmc[17] & 0x7);
4425e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		*c++ =   ((xmc[18] & 0x7) << 5)
4435e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		       | ((xmc[19] & 0x7) << 2)
4445e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		       | ((xmc[20] >> 1) & 0x3);
4455e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		*c++ =   ((xmc[20] & 0x1) << 7)
4465e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		       | ((xmc[21] & 0x7) << 4)
4475e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		       | ((xmc[22] & 0x7) << 1)
4485e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		       | ((xmc[23] >> 2) & 0x1);
4495e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		*c++ =   ((xmc[23] & 0x3) << 6)
4505e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		       | ((xmc[24] & 0x7) << 3)
4515e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		       | (xmc[25] & 0x7);
4525e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh
4535e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh
4545e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		*c++ =   ((Nc[2] & 0x7F) << 1)			/* 20 */
4555e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh
4565e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh
4575e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		       | ((bc[2] >> 1) & 0x1);
4585e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		*c++ =   ((bc[2] & 0x1) << 7)
4595e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh
4605e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh
4615e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		       | ((Mc[2] & 0x3) << 5)
4625e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh
4635e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh
4645e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		       | ((xmaxc[2] >> 1) & 0x1F);
4655e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		*c++ =   ((xmaxc[2] & 0x1) << 7)
4665e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh
4675e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh#undef	xmc
4685e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh#define	xmc	(source + 46 - 26)
4695e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh
4705e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		       | ((xmc[26] & 0x7) << 4)
4715e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		       | ((xmc[27] & 0x7) << 1)
4725e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		       | ((xmc[28] >> 2) & 0x1);
4735e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		*c++ =   ((xmc[28] & 0x3) << 6)
4745e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		       | ((xmc[29] & 0x7) << 3)
4755e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		       | (xmc[30] & 0x7);
4765e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		*c++ =   ((xmc[31] & 0x7) << 5)
4775e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		       | ((xmc[32] & 0x7) << 2)
4785e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		       | ((xmc[33] >> 1) & 0x3);
4795e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		*c++ =   ((xmc[33] & 0x1) << 7)
4805e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		       | ((xmc[34] & 0x7) << 4)
4815e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		       | ((xmc[35] & 0x7) << 1)
4825e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		       | ((xmc[36] >> 2) & 0x1);
4835e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		*c++ =   ((xmc[36] & 0x3) << 6)
4845e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		       | ((xmc[37] & 0x7) << 3)
4855e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		       | (xmc[38] & 0x7);
4865e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh
4875e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh
4885e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		*c++ =   ((Nc[3] & 0x7F) << 1)
4895e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh
4905e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh
4915e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		       | ((bc[3] >> 1) & 0x1);
4925e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		*c++ =   ((bc[3] & 0x1) << 7)
4935e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh
4945e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh
4955e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		       | ((Mc[3] & 0x3) << 5)
4965e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh
4975e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh
4985e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		       | ((xmaxc[3] >> 1) & 0x1F);
4995e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		*c++ =   ((xmaxc[3] & 0x1) << 7)
5005e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh
5015e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh#undef	xmc
5025e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh#define	xmc	(source + 63 - 39)
5035e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh
5045e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		       | ((xmc[39] & 0x7) << 4)
5055e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		       | ((xmc[40] & 0x7) << 1)
5065e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		       | ((xmc[41] >> 2) & 0x1);
5075e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		*c++ =   ((xmc[41] & 0x3) << 6)			/* 30 */
5085e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		       | ((xmc[42] & 0x7) << 3)
5095e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		       | (xmc[43] & 0x7);
5105e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		*c++ =   ((xmc[44] & 0x7) << 5)
5115e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		       | ((xmc[45] & 0x7) << 2)
5125e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		       | ((xmc[46] >> 1) & 0x3);
5135e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		*c++ =   ((xmc[46] & 0x1) << 7)
5145e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		       | ((xmc[47] & 0x7) << 4)
5155e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		       | ((xmc[48] & 0x7) << 1)
5165e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		       | ((xmc[49] >> 2) & 0x1);
5175e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		*c++ =   ((xmc[49] & 0x3) << 6)
5185e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		       | ((xmc[50] & 0x7) << 3)
5195e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh		       | (xmc[51] & 0x7);
5205e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh	}
5215e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh}
522