 
;By Dr. Imre Bartfai
; What you need is to define the polynomial. E. g. for the CCITT one:
poly0	equ	$21
poly1	equ	$10
; Do not forget to initialize <crcval> = <crch:crcl> before the 1st call
; e. g. with 0xFF or with zeroes, as the particular CRC algorithm
; requires.
;This subroutine calculates a 16-bit CRC
;--------
; CrcUpd: update <crcval> using <W>
;
;
crch	DS 1
crcl	DS 1
saved	DS 1
oldcch	DS 1
i	DS 1
CrcUpd	mov	saved, W	; j = W
	mov	W, #8		; W = 8
	mov	i, W		; i = W
_loop	mov	W, crch
	mov	oldcch, W	; temporary save
	clrb	C		; clear carry for rlf
	rl	crcl		; crc << 1
	rl	crch
	mov	W, saved	; the char read
	xor	oldcch, W	; test with old high
	sb	oldcch.7	; if bit set, apply mask
        jmp     _notset         ; otherwise skip
	mov	W, #poly0
	xor	crcl, W
	mov	W, #poly1
	xor	crch, W
_notset	clrb	C		; for rl
	rl	saved		; next bit of saved
	decsz	i
        jmp     _loop
	ret
;
; End CrcUpd
| file: /Techref/scenix/lib/io/osi2/crc_sx.htm, 1KB, , updated: 2001/5/19 20:49, local time: 2025/10/31 09:09, 
 
216.73.216.87,10-2-37-96:LOG IN | 
| ©2025 These pages are served without commercial sponsorship. (No popup ads, etc...).Bandwidth abuse increases hosting cost forcing sponsorship or shutdown. This server aggressively defends against automated copying for any reason including offline viewing, duplication, etc... Please respect this requirement and DO NOT RIP THIS SITE. Questions? <A HREF="http://www.piclist.com/tecHREF/scenix/lib/io/osi2/crc_sx.htm"> SX Specific Cyclic Redundancy Check 16 and 32 Bit </A> | 
| Did you find what you needed? | 
|  PICList 2025 contributors: o List host: MIT, Site host massmind.org, Top posters @none found - Page Editors: James Newton, David Cary, and YOU! * Roman Black of Black Robotics donates from sales of Linistep stepper controller kits. * Ashley Roll of Digital Nemesis donates from sales of RCL-1 RS232 to TTL converters. * Monthly Subscribers: Gregg Rew. on-going support is MOST appreciated! * Contributors: Richard Seriani, Sr. | 
| The Backwoods Guide to Computer Lingo | 
.