Из документации по формату UDI:
Так вот вопрос, это стандартный алгоритм CRC32? Если стандартный, то есть ли его реализация для Z80? Если не стандатный, то всё равно требуется его реализация под Z80 :)Код:ПРИЛОЖЕНИЕ 2
Алгоритм вычисления CRC32 для файла UDI
Начальное значение CRC = 0xFFFFFFFF (-1l).
Функция обновления CRC32 для одного байта Symbol:
long CalcCRC32(long CRC, unsigned char Symbol)
{
long temp;
CRC ^= -1l ^ Symbol;
for(int k = 8; k--;)
{ temp = -(CRC & 1), CRC >>= 1, CRC ^= 0xEDB88320ul & temp; }
CRC ^= -1l;
return CRC;
}
Эту функцию нужно вызвать для каждого байта из файла UDI (исключая последние
4 байта CRC).
Первый аргумент функции - текущая CRC, второй аргумент - байт данных,
результат - новая CRC.