Как задолбали меня свои же глюки
Сначала проверить, потом изменить чтение параметров и, не проверив, запостить )))
- Code: Select all
__asm
ld (crc32_ix),ix
ld (crc32_iy),iy
ld (crc32_sp),sp
pop af
pop hl
pop de ; DEHL = CRC
pop ix ; IX = data ptr
pop bc ; BC = size
exx
ld de,#_crc32_table
ld c,#0
exx
//crc = crc32_table[(crc ^ *buf++) & 0x000000FF] ^ (crc >> 8);
crc32_lp$:
ld a,0 (ix)
xor l ; (crc ^ *buf++) & 0x000000FF
exx
ld l,a
ld h,c
add hl,hl
add hl,hl
add hl,de
ld a,l
.db 0xFD
ld l,a
ld a,h
.db 0xFD
ld h,a
exx
ld a,0 (iy)
xor h
ld l,a
ld a,1 (iy)
xor e
ld h,a
ld a,2 (iy)
xor d
ld e,a
ld d,3 (iy)
inc ix
dec bc
ld a,b
or c
jp nz,crc32_lp$
ld a,l
cpl
ld l,a
ld a,h
cpl
ld h,a
ld a,e
cpl
ld e,a
ld a,d
cpl
ld d,a
ld ix,(crc32_ix)
ld iy,(crc32_iy)
ld sp,(crc32_sp)
ret
crc32_sp:
.dw #0
crc32_ix:
.dw #0
crc32_iy:
.dw #0
__endasm;