file[pp] = '\0';
if(migrate_hex(&s[i]) == 0) return TERM_SRECERR;
c = hex2byte(&s[i]);
+ sum = ~sum;
if(c != sum) return TERM_SUMERR;
return TERM_OK;
}
}
if(migrate_hex(&s[i]) == 0) return TERM_SUMERR;
c = hex2byte(&s[i]);
+ sum = ~sum;
if(c != sum) return TERM_SUMERR;
/*
* OK!
} else if(s[1] == '9') {
if((s[2] != '0') || (s[3] != '3')) return TERM_SRECERR;
for(i = 4; i < 10; i += 2) if(migrate_hex(&s[i]) == 0) return TERM_SRECERR;
- sum= 3;
+ sum = 3;
h = hex2byte(&s[4]);
l = hex2byte(&s[6]);
c = hex2byte(&s[8]);
*addr = (h << 8) | l;
*len = 0;
- sum = sum + h + l;
+ sum = ~(sum + h + l);
if(c != sum) return TERM_SUMERR;
return TERM_SRECEND;
} else {
bin2hex(&s[pp], c);
pp += 2;
}
+ sum = ~sum;
bin2hex(&s[pp], sum);
pp += 2;
s[pp] = '\n';
i += 2;
pp++;
}
+ sum = ~sum;
bin2hex(&s[i], sum);
s[i + 2] = '\n';
s[i + 3] = '\0';
s[3] = '3';
sum = 3;
for(pp = 4; pp < 8; pp++) s[pp] = '0';
+ sum = ~sum;
bin2hex(&s[pp], sum);
s[pp + 2] = '\n';