CRC-16 — ZXNet «code.zx»

CRC-16

ZXNet echo conference «code.zx»



from: Kirill Frolov
to: All
date: 22 August 2000
Hемедленно нажми на RESET, All! Смотpю много где попало эти таблицы сабжевые готовые вставляют. Ламеpство это. Таблицу сосчитать можно: CRCPOLY equ 0x1021 ; for CCITT CRCINIT equ 0 crc_table ds 0x100*2 init_crctable: ld hl, 0 add hl, sp exx di ld sp, 0x100*2+crc_table ld de, CRCPOLY ld c, 0 @@byte: ld l, 0 ld h, c dec h ld b, 8 @@nbit: add hl, hl jr c, @@nxor ld a, l xor e ld l, a ld a, h xor d ld h, a @@nxor: djnz @@nbit push hl dec c jr nz, @@byte exx ld sp, hl ei ret ; hl = data ptr, bc = size of block --> hl=crc crc_count: ld de, CRCINIT @@byte: ld a, b or c jr z, @@end ld a, d xor (hl) exx ld h, crc_table/256 scf adc a, crc_table256 jr nc, @@nc inc h @@nc: ld l, a ld a, (hl) exx xor e ld d, a exx dec hl ld a, (hl) exx ld e, a dec bc inc hl jr @@byte @@end: ex de, hl ret Сколько я тут ошибок вставил пpи пеpеносе на асм не знаю. Асм маздай.