home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 9 Archive
/
09-Archive.zip
/
unzip531.zip
/
qdos
/
crc68.s
< prev
next >
Wrap
Text File
|
1996-07-05
|
2KB
|
92 lines
.text
.globl _crc32 ; (ulg val, uch *buf, extent bufsize)
.globl _get_crc_table ; ulg *get_crc_table(void)
_crc32:
move.l 8(sp),d0
bne valid
moveq #0,d0
rts
valid: movem.l d2/d3,-(sp)
jsr _get_crc_table
move.l d0,a0
move.l 12(sp),d0
move.l 16(sp),a1
move.l 20(sp),d1
not.l d0
move.l d1,d2
lsr.l #3,d1
bra decr8
loop8: moveq #0,d3
move.b (a1)+,d3
eor.b d0,d3
lsl.w #2,d3
move.l 0(a0,d3.w),d3
lsr.l #8,d0
eor.l d3,d0
moveq #0,d3
move.b (a1)+,d3
eor.b d0,d3
lsl.w #2,d3
move.l 0(a0,d3.w),d3
lsr.l #8,d0
eor.l d3,d0
moveq #0,d3
move.b (a1)+,d3
eor.b d0,d3
lsl.w #2,d3
move.l 0(a0,d3.w),d3
lsr.l #8,d0
eor.l d3,d0
moveq #0,d3
move.b (a1)+,d3
eor.b d0,d3
lsl.w #2,d3
move.l 0(a0,d3.w),d3
lsr.l #8,d0
eor.l d3,d0
moveq #0,d3
move.b (a1)+,d3
eor.b d0,d3
lsl.w #2,d3
move.l 0(a0,d3.w),d3
lsr.l #8,d0
eor.l d3,d0
moveq #0,d3
move.b (a1)+,d3
eor.b d0,d3
lsl.w #2,d3
move.l 0(a0,d3.w),d3
lsr.l #8,d0
eor.l d3,d0
moveq #0,d3
move.b (a1)+,d3
eor.b d0,d3
lsl.w #2,d3
move.l 0(a0,d3.w),d3
lsr.l #8,d0
eor.l d3,d0
moveq #0,d3
move.b (a1)+,d3
eor.b d0,d3
lsl.w #2,d3
move.l 0(a0,d3.w),d3
lsr.l #8,d0
eor.l d3,d0
decr8: dbra d1,loop8
and.w #7,d2
bra decr1
loop1: moveq #0,d3
move.b (a1)+,d3
eor.b d0,d3
lsl.w #2,d3
move.l 0(a0,d3.w),d3
lsr.l #8,d0
eor.l d3,d0
decr1: dbra d2,loop1
done: movem.l (sp)+,d2/d3
not.l d0
rts