forsyth20121205-174063a80cc13 years agoHistory
23 lines · 699 B · Objective-C
RawDownload
Crc: module{	PATH: con "/dis/lib/crc.dis"; 	CRCstate: adt {		crc: int;		crctab: array of int;		reg: int;	}; 	# setup crc table with given polynomial (if 0 default polynomial used) 	# (the polynomial has an implicit top bit set)	# reg is the initial value of the CRC register 	# (usually 0 but 16rfffffffrf in the CRC32 algorithm for example)	init: fn(poly: int, reg: int): ref CRCstate; 	# calculate crc of first nb bytes in given array of bytes and return its value	# may be called repeatedly to calculate crc of a series of arrays of bytes	crc :	fn(state: ref CRCstate, buf: array of byte, nb: int): int; 	# reset crc state to its initial value	reset: fn(state: ref CRCstate);};