MyTetra Share
Делитесь знаниями!
Подсчет контрольной суммы для ПЭВМ Микроша на языке Си
Время создания: 06.06.2022 15:59
Текстовые метки: Микроша, ПЭВМ, контрольная сумма, алгоритм
Раздел: Компьютер - Микроша
Запись: xintrea/mytetra_syncro/master/base/1654520381wwf0m3ij7r/text.html на raw.github.com

Если отбросить шелуху, то код, формирующий из rom-файла RKM на языке Си выглядит следующим образом:



write_byte_to_file(file_out, 0);

write_byte_to_file(file_out, 0);

write_byte_to_file(file_out, (uint8_t)(filesize >> 8 & 0x00FF));

write_byte_to_file(file_out, (uint8_t)(0x00FF & filesize));

while ( ( x = fgetc( file ) ) != EOF ) {

write_byte_to_file(file_out, (uint8_t)(0x00FF & x));

if (i++ % 2 == 0) {

csm_lo ^= (uint32_t)0x00FF & x;

} else {

csm_hi ^= (uint32_t)0x00FF & x;

}

}

write_byte_to_file(file_out, csm_hi);

write_byte_to_file(file_out, csm_lo);



Значения csm_hi и csm_lo - это и есть старший и младший байты контрольной суммы.


Так же в этом разделе:
 
MyTetra Share v.0.59
Яндекс индекс цитирования