30 lines
519 B
Prolog
30 lines
519 B
Prolog
; Nell'acquisizione dei dati registrati col SATA c'è un'inversione di byte all'interno di word 16 bit.
|
|
; Invece di avere A0_A1_A2_A3 viene acquisito A2_A3_A0_A1.
|
|
|
|
|
|
FUNCTION sata_endian, vect
|
|
|
|
app_0 = BYTE(vect)
|
|
|
|
app_1 = LONARR(N_ELEMENTS(app_0))
|
|
|
|
FOR i = 0L, N_ELEMENTS(vect) - 1 DO BEGIN
|
|
|
|
IF vect[i] GE 256 THEN $
|
|
BEGIN
|
|
|
|
app_1[i] = ( (vect[i] - app_0[i]) / 256L ) + ( app_0[i] * 256L )
|
|
|
|
ENDIF $
|
|
ELSE BEGIN
|
|
|
|
app_1[i] = ( (vect[i] - app_0[i]) / 256L ) + ( app_0[i] * 256L )
|
|
|
|
ENDELSE
|
|
|
|
ENDFOR
|
|
|
|
RETURN, app_1
|
|
|
|
END
|