1 {CRC24 table calculation (C) 2006 W.Ehrhardt} 2 3 program T_CTab24; 4 5 {$i STD.INC} 6 7 {$ifdef APPCONS} 8 {$apptype console} 9 {$endif} 10 11 12 uses 13 mem_util; 14 15 const 16 CRC24_POLY = $1864cfb; 17 18 {---------------------------------------------------------------------------} 19 procedure CalcTable; 20 {-Calclate and output CRC24 table} 21 var 22 CTab: array[0..255] of longint; 23 i,b: integer; 24 crc: longint; 25 begin 26 for i:=0 to 255 do begin 27 crc:= longint(i) shl 16; 28 for b:=1 to 8 do begin 29 crc := crc shl 1; 30 if crc and $1000000 <> 0 then crc := crc xor CRC24_POLY; 31 end; 32 CTab[i] := crc; 33 end; 34 writeln('const'); 35 writeln(' CT24: array[0..255] of longint = ('); 36 for i:=0 to 255 do begin 37 if i and 7 = 0 then write('':4); 38 write('$',HexLong(CTab[i])); 39 if i=255 then writeln 40 else begin 41 write(','); 42 if i and 7 = 7 then writeln 43 end; 44 end; 45 writeln(' );') 46 end; 47 48 begin 49 writeln('T_CTab24 - CRC24 table calculation (C) 2006 W.Ehrhardt'); 50 writeln; 51 CalcTable; 52 end. 53