repo.or.cz
/
urasm.git
/
blob
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
log
|
graphiclog1
|
graphiclog2
|
commit
|
commitdiff
|
tree
|
refs
|
edit
|
fork
blame
|
history
|
raw
|
HEAD
UrForth: cosmetix
[urasm.git]
/
libs
/
crc16
/
crc16.zas
blob
d3f5eb2d27e0027765ec5f8042133583e4b3cbe8
1
; ÍÅÄÌÅÎÎÁÑ ÆÕÎËÃÉÑ ÐÏÄÓÞ£ÔÁ CRC-16
2
; by Kirill Frolov
3
; ix=*data, bc=size
4
; de=ÐÏÌÉÎÏÍ (0x1021), hl=ÎÁÞÁÌØÎÏÅ ÚÎÁÞÅÎÉÅ
5
; ÎÁ ×ÙÈÏÄÅ -> hl=ÐÏÄÓÞÉÔÁÎÎÏÅ ÚÎÁÞÅÎÉÅ
6
crc16:
7
.crc16_0:
8
ld a, b
9
or c
10
ret z
11
ld a,(ix)
12
inc ix
13
xor h
14
ld h,a
15
ld a,8
16
.crc16_1:
17
add hl,hl
18
jr nc,.crc16_2
19
ex af,af'
20
ld a,l
21
xor e
22
ld l,a
23
ld a,h
24
xor d
25
ld h,a
26
ex af,af'
27
.crc16_2:
28
dec a
29
jr nz,.crc16_1
30
dec bc
31
jr .crc16_0