Un CRC en PBP,
;definición de datos
CRC var word ;registro doble donde se almacenara el resultado del CRC
cuenta var byte ;variable interna de la subrutina
cantidad_datos var byte ;indice de la matriz de datos- cuidado,realmente es
;cantidad de datos - 1 ,la matriz tiene base 0
bit_dato var byte ;variable interna de la subrutina
CALC_CRC: ;subrutina de cálculo de crc
CRC = $FFFF ;inicio del CRC
FOR cuenta = 0 TO cantidad_datos ;bucle de análisis de byte
CRC=CRC ^ dato[cuenta] ;or exclusiva
FOR bit_dato = 0 to 7 ;bucle de análisis de bit de cada byte
if (crc&$01)=1 then ;si el bit es uno
CRC = (CRC>>1)^ $A001 ;desplaza y efectua or exclusiva
else ;si el bit fué 0 solo desplaza
crc=crc>>1
ENDIF
NEXT bit_dato
NEXT cuenta
RETURN
Saludos
Ricky
Madrid-España