Dies ist eine alte Version des Dokuments!
CRC-Berechnung
In diversen U880-Programmen, z.B. EPROM-Software, wird oftmals eine Prüfsumme ausgegeben. Dabei handelt es sich fast immer um CRC-16 und das CCITT-Polynom
CRC-CCITT (CRC-16) x16 + x12 + x5 + 1
s. Wikipedia.
Als Startwert wird eigentlich immer 0FFFFh genommen.
In Assembler sieht die CRC-Routine wie folgt aus.
crc: ld hl, 0FFFFh crc1: ld a, (de) xor h ld h, a rrca rrca rrca rrca and 0Fh xor h ld h, a rrca rrca rrca push af and 1Fh xor l ld l, a pop af push af rrca and 0F0h xor l ld l, a pop af and 0E0h xor h ld h, l ld l, a inc de dec bc ld a, b or c jr nz, crc1 ret