Move the CRC8 code into utility

This commit is contained in:
hkz 2025-09-01 08:42:13 +02:00
commit 0f34399cca
4 changed files with 17 additions and 45 deletions

View file

@ -51,7 +51,6 @@ static uint16_t file_load_address[FILE_LIST_LEN] = { // This will hold the load
static void init(void);
static void init_floppy_data(uint8_t *cur_trk, uint8_t *cur_file);
static uint8_t fill_trksec_list(uint8_t* cur_trk);
static uint8_t calculate_crc8(uint8_t* data, uint8_t len);
// Low level initialization
static void init(void) {
@ -117,26 +116,6 @@ static void init_floppy_data(uint8_t *cur_trk, uint8_t *cur_file) {
if (!initialized_correctly) __asm volatile(" brk\n":::);
}
#define CRC8RDALLAS_POLY 0x31
static uint8_t calculate_crc8(uint8_t* data, uint8_t len) {
uint8_t crc = 0;
for(uint8_t data_idx = 0; data_idx < len; data_idx++) {
uint8_t carry;
uint8_t d = data[data_idx];
for (uint8_t i = 8; i > 0; i--) {
carry = (crc & 0x80);
crc <<= 1;
if (d & 1) crc |= 1;
d >>= 1;
if (carry) crc ^= CRC8RDALLAS_POLY;
}
}
return crc;
}
__task int main(void) {
uint8_t cur_trk = 0;
uint8_t cur_file = 0;