

Task

Demonstrate a method of deriving the Cyclic Redundancy Check from within the language.



The result should be in accordance with ISO 3309, ITU-T V.42, Gzip and PNG.

Algorithms are described on Computation of CRC in Wikipedia.
This variant of CRC-32 uses LSB-first order, sets the initial CRC to FFFFFFFF16, and complements the final CRC.

For the purpose of this task, generate a CRC-32 checksum for the ASCII encoded string:

 The quick brown fox jumps over the lazy dog


 
MODULE BbtComputeCRC32;
IMPORT ZlibCrc32,StdLog;
 
PROCEDURE Do*;
VAR
	s: ARRAY 128 OF SHORTCHAR;
BEGIN	
	s := "The quick brown fox jumps over the lazy dog";
	StdLog.IntForm(ZlibCrc32.CRC32(0,s,0,LEN(s$)),16,12,'0',TRUE);
	StdLog.Ln;
END Do;
END BbtComputeCRC32.
 