/[PAMELA software]/calo/unpacking/calcrc.cpp
ViewVC logotype

Contents of /calo/unpacking/calcrc.cpp

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1.1.1 - (show annotations) (download) (vendor branch)
Mon Dec 5 16:23:22 2005 UTC (18 years, 11 months ago) by mocchiut
Branch: MAIN, unpacking
CVS Tags: start, v1r00, HEAD
Changes since 1.1: +0 -0 lines
Imported sources

1 #include <stdlib.h>
2 #include <stdio.h>
3 #include <string.h>
4
5 #define BLEN 8
6 extern "C"{
7 short crc_(short*, short*);
8 }
9 short crc_(short *oldCRC, short *newCRC)
10 /* void crc_(short *old,short *new) */
11 {
12 union crc_data {
13 short word;
14 struct bit_field {
15 unsigned b0:1;
16 unsigned b1:1;
17 unsigned b2:1;
18 unsigned b3:1;
19 unsigned b4:1;
20 unsigned b5:1;
21 unsigned b6:1;
22 unsigned b7:1;
23 unsigned b8:1;
24 unsigned b9:1;
25 unsigned b10:1;
26 unsigned b11:1;
27 unsigned b12:1;
28 unsigned b13:1;
29 unsigned b14:1;
30 unsigned b15:1;
31 } bit;
32 } c,d,r;
33
34 c.word = *oldCRC;
35 d.word = *newCRC;
36 r.word = 0;
37
38 r.bit.b0 = c.bit.b0 ^ c.bit.b4 ^ c.bit.b8 ^ c.bit.b11 ^ c.bit.b12 ^
39 d.bit.b0 ^ d.bit.b4 ^ d.bit.b8 ^ d.bit.b11 ^ d.bit.b12;
40
41 r.bit.b1 = c.bit.b1 ^ c.bit.b5 ^ c.bit.b9 ^ c.bit.b12 ^ c.bit.b13 ^
42 d.bit.b1 ^ d.bit.b5 ^ d.bit.b9 ^ d.bit.b12 ^ d.bit.b13;
43
44 r.bit.b2 = c.bit.b2 ^ c.bit.b6 ^ c.bit.b10 ^ c.bit.b13 ^ c.bit.b14 ^
45 d.bit.b2 ^ d.bit.b6 ^ d.bit.b10 ^ d.bit.b13 ^ d.bit.b14;
46
47 r.bit.b3 = c.bit.b3 ^ c.bit.b7 ^ c.bit.b11 ^ c.bit.b14 ^ c.bit.b15 ^
48 d.bit.b3 ^ d.bit.b7 ^ d.bit.b11 ^ d.bit.b14 ^ d.bit.b15;
49
50 r.bit.b4 = c.bit.b4 ^ c.bit.b8 ^ c.bit.b12 ^ c.bit.b15 ^
51 d.bit.b4 ^ d.bit.b8 ^ d.bit.b12 ^ d.bit.b15;
52
53 r.bit.b5 = c.bit.b0 ^ c.bit.b4 ^ c.bit.b5 ^ c.bit.b8 ^ c.bit.b9 ^
54 c.bit.b11 ^ c.bit.b12 ^ c.bit.b13 ^
55 d.bit.b0 ^ d.bit.b4 ^ d.bit.b5 ^ d.bit.b8 ^ d.bit.b9 ^
56 d.bit.b11 ^ d.bit.b12 ^ d.bit.b13;
57
58 r.bit.b6 = c.bit.b1 ^ c.bit.b5 ^ c.bit.b6 ^ c.bit.b9 ^ c.bit.b10 ^
59 c.bit.b12 ^ c.bit.b13 ^ c.bit.b14 ^
60 d.bit.b1 ^ d.bit.b5 ^ d.bit.b6 ^ d.bit.b9 ^ d.bit.b10 ^
61 d.bit.b12 ^ d.bit.b13 ^ d.bit.b14;
62
63 r.bit.b7 = c.bit.b2 ^ c.bit.b6 ^ c.bit.b7 ^ c.bit.b10 ^ c.bit.b11 ^
64 c.bit.b13 ^ c.bit.b14 ^ c.bit.b15 ^
65 d.bit.b2 ^ d.bit.b6 ^ d.bit.b7 ^ d.bit.b10 ^ d.bit.b11 ^
66 d.bit.b13 ^ d.bit.b14 ^ d.bit.b15;
67
68 r.bit.b8 = c.bit.b3 ^ c.bit.b7 ^ c.bit.b8 ^ c.bit.b11 ^ c.bit.b12 ^
69 c.bit.b14 ^ c.bit.b15 ^
70 d.bit.b3 ^ d.bit.b7 ^ d.bit.b8 ^ d.bit.b11 ^ d.bit.b12 ^
71 d.bit.b14 ^ d.bit.b15;
72
73 r.bit.b9 = c.bit.b4 ^ c.bit.b8 ^ c.bit.b9 ^ c.bit.b12 ^ c.bit.b13 ^
74 c.bit.b15 ^
75 d.bit.b4 ^ d.bit.b8 ^ d.bit.b9 ^ d.bit.b12 ^ d.bit.b13 ^
76 d.bit.b15;
77
78 r.bit.b10 = c.bit.b5 ^ c.bit.b9 ^ c.bit.b10 ^ c.bit.b13 ^ c.bit.b14 ^
79 d.bit.b5 ^ d.bit.b9 ^ d.bit.b10 ^ d.bit.b13 ^ d.bit.b14;
80
81 r.bit.b11 = c.bit.b6 ^ c.bit.b10 ^ c.bit.b11 ^ c.bit.b14 ^ c.bit.b15 ^
82 d.bit.b6 ^ d.bit.b10 ^ d.bit.b11 ^ d.bit.b14 ^ d.bit.b15;
83
84 r.bit.b12 = c.bit.b0 ^ c.bit.b4 ^ c.bit.b7 ^ c.bit.b8 ^ c.bit.b15 ^
85 d.bit.b0 ^ d.bit.b4 ^ d.bit.b7 ^ d.bit.b8 ^ d.bit.b15;
86
87 r.bit.b13 = c.bit.b1 ^ c.bit.b5 ^ c.bit.b8 ^ c.bit.b9 ^
88 d.bit.b1 ^ d.bit.b5 ^ d.bit.b8 ^ d.bit.b9;
89
90 r.bit.b14 = c.bit.b2 ^ c.bit.b6 ^ c.bit.b9 ^ c.bit.b10 ^
91 d.bit.b2 ^ d.bit.b6 ^ d.bit.b9 ^ d.bit.b10;
92
93 r.bit.b15 = c.bit.b3 ^ c.bit.b7 ^ c.bit.b10 ^ c.bit.b11 ^
94 d.bit.b3 ^ d.bit.b7 ^ d.bit.b10 ^ d.bit.b11;
95
96 return r.word;
97 /* *old = r.word; */
98 }
99

  ViewVC Help
Powered by ViewVC 1.1.23