Bonjour,
un appel à l'aide
pour déchiffrer un bout de code...
Moi et le C avec les pointeurs, ça fait au moins 312000
je m'en remets à une âme charitable du forum qui voudra bien m'éclairer...
Voici donc le code en question :
Code:
1
2
3
4
5
6
7
8
9
10
11 #define NBP_BUFFER 810 #define N_FRAME 71 unsigned char huge *ACQ_POINTER; long far ENTRY_POINT = 0xdc000000; Init_Sample_Array(tab) int huge *tab; { ACQ_POINTER = tab; }
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13 acquisition(tab) int huge *tab; { Init_Sample_Array(tab); pseudo_int(0); for (int i = 0 ; i<25 ; i++) { pseudo_int(0); //... } }
après, j'ai ça :Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 pseudo_int() { register char far *pointer; register int time; pointer = ENTRY_POINT; LINK_FAIL = 0; *ACQ_POINTER++ = pointer[0xc0]; /*Get Lower byte */ time = pointer[0xc1]&0x0f; if ((time & 0x08) != 0) /* If negate */ time |= 0xf0; /* 4 upper bit extend to sign */ *ACQ_POINTER++ = time; }
je cherche donc à savoir comment est constitué "signal"Code:
1
2 short int huge signal[NBP_BUFFER*N_FRAME]; acquisition(signal);
c'est la partie dans "pseudo_int" qui me pose problème
déjà, j'ai du mal à saisir ce qui est fait...
est-ce que le contenu de "pointeur" est mis bout à bout dans "signal"??
ou bien est-ce que c'est cumulé à chaque passage dans "pseudo_int"??
après, c'est quoi exactement ces manip avec la variable "time"??
Merci d'avance