? define KOD_USTROJSTVA 3 // код устройства
? define NOMER_SETI 3 // номер сети
byte SMS[ 140 ] = 0;
//─────────────────────────────────────────────────────────────────────────
// ПОДСЧИТАТЬ 31 бит CRC В БУФЕРЕ МОДЕМА. Полином x^31 + x^3 + 1
void COUNT_CSUM ()
{
SI = # SMS; BP = 138;
CH = NOMER_SETI; CL = KOD_USTROJSTVA; BH = 1; BL = 0xE4;
loop ( BP ) {
AL = DSBYTE[ SI ]; SI++;
AH = 8;
loop ( AH ) {
$SHR AL, 1 $RCR CX, 1 $RCR BX, 1
$TEST BL, 1
IF( NOTZEROFLAG ) CH ^= 0x90;
}
}
BL &= 0xFE;
DSWORD[ # SMS + 138 ] = CX;
}