CRC32 Builder by Cryptoman17th Feb 2004 18:21
|
---|
Summary Quick crc32 check system to help prevent hacking or modified files Description Code ` This code was downloaded from The Game Creators ` It is reproduced here with full permission ` http://www.thegamecreators.com `CRC32 builder `by TRS80Model1 `2-17-2004 (6hrs) `OpenSource-Just remember who contributed `Use to check to see if any of your media or Readme files `have been changed. If files have been modified then do not allow your `program to run. This will help to prevent non-coding jerks from taking your credit `Sorry I could not get the program to compile under funtions so these are gosubs instead dim malngCRC32(256) Global CRC32 = 0xFFFFFFFF `Build Lookup Table gosub ConstructCRCTable `InputFileName$=the file you wish to check. InputFileName$="upgrade5_1.txt" `Load file into memblock gosub loadfile `Calculate CRC32 gosub GetCRCFromMemblock do `Print Calculated CRC32 print GetCrc sync loop end loadfile: open to read 1,InputFileName$ make memblock from file 1,1 close file 1 InputLength = get memblock size (1) return GetCRCFromMemblock: ` Comments : This procedure generates a CRC for the memblock specified ` Returns : The calculated CRC value `' Construct the CRC table For Counter = 0 To InputLength-1 ` Update the CRC gosub UpdateCRC32 Next Counter `' The memblock is done being processed `' Delete memblock and Return the CRC delete memblock 1 GetCRC = --CRC32 Return UpdateCRC32: ` Comments : This procedure calculates the new CRC based on the current CRC ` and the byte value ` Returns : The calculated cumulative CRC value ` Calculate the lookup value Lookup = (CRC32 ~~ memblock byte(1,Counter)) And 255 ` Calculate and return the new CRC value CRC32 = (Int(CRC32 / 256) And 0xFFFFFF) ~~ malngCRC32(Lookup) return ConstructCRCTable: ` Comments : This procedure fills the CRC table with precalculated Values. ` This is more efficient than calculating CRC's on the fly ` Returns : Nothing ` ` Fill the table with the precalculate CRC Values. malngCRC32(0) = 0x0 malngCRC32(1) = 0x77073096 malngCRC32(2) = 0xEE0E612C malngCRC32(3) = 0x990951BA malngCRC32(4) = 0x76DC419 malngCRC32(5) = 0x706AF48F malngCRC32(6) = 0xE963A535 malngCRC32(7) = 0x9E6495A3 malngCRC32(8) = 0xEDB8832 malngCRC32(9) = 0x79DCB8A4 malngCRC32(10) = 0xE0D5E91E malngCRC32(11) = 0x97D2D988 malngCRC32(12) = 0x9B64C2B malngCRC32(13) = 0x7EB17CBD malngCRC32(14) = 0xE7B82D07 malngCRC32(15) = 0x90BF1D91 malngCRC32(16) = 0x1DB71064 malngCRC32(17) = 0x6AB020F2 malngCRC32(18) = 0xF3B97148 malngCRC32(19) = 0x84BE41DE malngCRC32(20) = 0x1ADAD47D malngCRC32(21) = 0x6DDDE4EB malngCRC32(22) = 0xF4D4B551 malngCRC32(23) = 0x83D385C7 malngCRC32(24) = 0x136C9856 malngCRC32(25) = 0x646BA8C0 malngCRC32(26) = 0xFD62F97A malngCRC32(27) = 0x8A65C9EC malngCRC32(28) = 0x14015C4F malngCRC32(29) = 0x63066CD9 malngCRC32(30) = 0xFA0F3D63 malngCRC32(31) = 0x8D080DF5 malngCRC32(32) = 0x3B6E20C8 malngCRC32(33) = 0x4C69105E malngCRC32(34) = 0xD56041E4 malngCRC32(35) = 0xA2677172 malngCRC32(36) = 0x3C03E4D1 malngCRC32(37) = 0x4B04D447 malngCRC32(38) = 0xD20D85FD malngCRC32(39) = 0xA50AB56B malngCRC32(40) = 0x35B5A8FA malngCRC32(41) = 0x42B2986C malngCRC32(42) = 0xDBBBC9D6 malngCRC32(43) = 0xACBCF940 malngCRC32(44) = 0x32D86CE3 malngCRC32(45) = 0x45DF5C75 malngCRC32(46) = 0xDCD60DCF malngCRC32(47) = 0xABD13D59 malngCRC32(48) = 0x26D930AC malngCRC32(49) = 0x51DE003A malngCRC32(50) = 0xC8D75180 malngCRC32(51) = 0xBFD06116 malngCRC32(52) = 0x21B4F4B5 malngCRC32(53) = 0x56B3C423 malngCRC32(54) = 0xCFBA9599 malngCRC32(55) = 0xB8BDA50F malngCRC32(56) = 0x2802B89E malngCRC32(57) = 0x5F058808 malngCRC32(58) = 0xC60CD9B2 malngCRC32(59) = 0xB10BE924 malngCRC32(60) = 0x2F6F7C87 malngCRC32(61) = 0x58684C11 malngCRC32(62) = 0xC1611DAB malngCRC32(63) = 0xB6662D3D malngCRC32(64) = 0x76DC4190 malngCRC32(65) = 0x1DB7106 malngCRC32(66) = 0x98D220BC malngCRC32(67) = 0xEFD5102A malngCRC32(68) = 0x71B18589 malngCRC32(69) = 0x6B6B51F malngCRC32(70) = 0x9FBFE4A5 malngCRC32(71) = 0xE8B8D433 malngCRC32(72) = 0x7807C9A2 malngCRC32(73) = 0xF00F934 malngCRC32(74) = 0x9609A88E malngCRC32(75) = 0xE10E9818 malngCRC32(76) = 0x7F6A0DBB malngCRC32(77) = 0x86D3D2D malngCRC32(78) = 0x91646C97 malngCRC32(79) = 0xE6635C01 malngCRC32(80) = 0x6B6B51F4 malngCRC32(81) = 0x1C6C6162 malngCRC32(82) = 0x856530D8 malngCRC32(83) = 0xF262004E malngCRC32(84) = 0x6C0695ED malngCRC32(85) = 0x1B01A57B malngCRC32(86) = 0x8208F4C1 malngCRC32(87) = 0xF50FC457 malngCRC32(88) = 0x65B0D9C6 malngCRC32(89) = 0x12B7E950 malngCRC32(90) = 0x8BBEB8EA malngCRC32(91) = 0xFCB9887C malngCRC32(92) = 0x62DD1DDF malngCRC32(93) = 0x15DA2D49 malngCRC32(94) = 0x8CD37CF3 malngCRC32(95) = 0xFBD44C65 malngCRC32(96) = 0x4DB26158 malngCRC32(97) = 0x3AB551CE malngCRC32(98) = 0xA3BC0074 malngCRC32(99) = 0xD4BB30E2 malngCRC32(100) = 0x4ADFA541 malngCRC32(101) = 0x3DD895D7 malngCRC32(102) = 0xA4D1C46D malngCRC32(103) = 0xD3D6F4FB malngCRC32(104) = 0x4369E96A malngCRC32(105) = 0x346ED9FC malngCRC32(106) = 0xAD678846 malngCRC32(107) = 0xDA60B8D0 malngCRC32(108) = 0x44042D73 malngCRC32(109) = 0x33031DE5 malngCRC32(110) = 0xAA0A4C5F malngCRC32(111) = 0xDD0D7CC9 malngCRC32(112) = 0x5005713C malngCRC32(113) = 0x270241AA malngCRC32(114) = 0xBE0B1010 malngCRC32(115) = 0xC90C2086 malngCRC32(116) = 0x5768B525 malngCRC32(117) = 0x206F85B3 malngCRC32(118) = 0xB966D409 malngCRC32(119) = 0xCE61E49F malngCRC32(120) = 0x5EDEF90E malngCRC32(121) = 0x29D9C998 malngCRC32(122) = 0xB0D09822 malngCRC32(123) = 0xC7D7A8B4 malngCRC32(124) = 0x59B33D17 malngCRC32(125) = 0x2EB40D81 malngCRC32(126) = 0xB7BD5C3B malngCRC32(127) = 0xC0BA6CAD malngCRC32(128) = 0xEDB88320 malngCRC32(129) = 0x9ABFB3B6 malngCRC32(130) = 0x3B6E20C malngCRC32(131) = 0x74B1D29A malngCRC32(132) = 0xEAD54739 malngCRC32(133) = 0x9DD277AF malngCRC32(134) = 0x4DB2615 malngCRC32(135) = 0x73DC1683 malngCRC32(136) = 0xE3630B12 malngCRC32(137) = 0x94643B84 malngCRC32(138) = 0xD6D6A3E malngCRC32(139) = 0x7A6A5AA8 malngCRC32(140) = 0xE40ECF0B malngCRC32(141) = 0x9309FF9D malngCRC32(142) = 0xA00AE27 malngCRC32(143) = 0x7D079EB1 malngCRC32(144) = 0xF00F9344 malngCRC32(145) = 0x8708A3D2 malngCRC32(146) = 0x1E01F268 malngCRC32(147) = 0x6906C2FE malngCRC32(148) = 0xF762575D malngCRC32(149) = 0x806567CB malngCRC32(150) = 0x196C3671 malngCRC32(151) = 0x6E6B06E7 malngCRC32(152) = 0xFED41B76 malngCRC32(153) = 0x89D32BE0 malngCRC32(154) = 0x10DA7A5A malngCRC32(155) = 0x67DD4ACC malngCRC32(156) = 0xF9B9DF6F malngCRC32(157) = 0x8EBEEFF9 malngCRC32(158) = 0x17B7BE43 malngCRC32(159) = 0x60B08ED5 malngCRC32(160) = 0xD6D6A3E8 malngCRC32(161) = 0xA1D1937E malngCRC32(162) = 0x38D8C2C4 malngCRC32(163) = 0x4FDFF252 malngCRC32(164) = 0xD1BB67F1 malngCRC32(165) = 0xA6BC5767 malngCRC32(166) = 0x3FB506DD malngCRC32(167) = 0x48B2364B malngCRC32(168) = 0xD80D2BDA malngCRC32(169) = 0xAF0A1B4C malngCRC32(170) = 0x36034AF6 malngCRC32(171) = 0x41047A60 malngCRC32(172) = 0xDF60EFC3 malngCRC32(173) = 0xA867DF55 malngCRC32(174) = 0x316E8EEF malngCRC32(175) = 0x4669BE79 malngCRC32(176) = 0xCB61B38C malngCRC32(177) = 0xBC66831A malngCRC32(178) = 0x256FD2A0 malngCRC32(179) = 0x5268E236 malngCRC32(180) = 0xCC0C7795 malngCRC32(181) = 0xBB0B4703 malngCRC32(182) = 0x220216B9 malngCRC32(183) = 0x5505262F malngCRC32(184) = 0xC5BA3BBE malngCRC32(185) = 0xB2BD0B28 malngCRC32(186) = 0x2BB45A92 malngCRC32(187) = 0x5CB36A04 malngCRC32(188) = 0xC2D7FFA7 malngCRC32(189) = 0xB5D0CF31 malngCRC32(190) = 0x2CD99E8B malngCRC32(191) = 0x5BDEAE1D malngCRC32(192) = 0x9B64C2B0 malngCRC32(193) = 0xEC63F226 malngCRC32(194) = 0x756AA39C malngCRC32(195) = 0x26D930A malngCRC32(196) = 0x9C0906A9 malngCRC32(197) = 0xEB0E363F malngCRC32(198) = 0x72076785 malngCRC32(199) = 0x5005713 malngCRC32(200) = 0x95BF4A82 malngCRC32(201) = 0xE2B87A14 malngCRC32(202) = 0x7BB12BAE malngCRC32(203) = 0xCB61B38 malngCRC32(204) = 0x92D28E9B malngCRC32(205) = 0xE5D5BE0D malngCRC32(206) = 0x7CDCEFB7 malngCRC32(207) = 0xBDBDF21 malngCRC32(208) = 0x86D3D2D4 malngCRC32(209) = 0xF1D4E242 malngCRC32(210) = 0x68DDB3F8 malngCRC32(211) = 0x1FDA836E malngCRC32(212) = 0x81BE16CD malngCRC32(213) = 0xF6B9265B malngCRC32(214) = 0x6FB077E1 malngCRC32(215) = 0x18B74777 malngCRC32(216) = 0x88085AE6 malngCRC32(217) = 0xFF0F6A70 malngCRC32(218) = 0x66063BCA malngCRC32(219) = 0x11010B5C malngCRC32(220) = 0x8F659EFF malngCRC32(221) = 0xF862AE69 malngCRC32(222) = 0x616BFFD3 malngCRC32(223) = 0x166CCF45 malngCRC32(224) = 0xA00AE278 malngCRC32(225) = 0xD70DD2EE malngCRC32(226) = 0x4E048354 malngCRC32(227) = 0x3903B3C2 malngCRC32(228) = 0xA7672661 malngCRC32(229) = 0xD06016F7 malngCRC32(230) = 0x4969474D malngCRC32(231) = 0x3E6E77DB malngCRC32(232) = 0xAED16A4A malngCRC32(233) = 0xD9D65ADC malngCRC32(234) = 0x40DF0B66 malngCRC32(235) = 0x37D83BF0 malngCRC32(236) = 0xA9BCAE53 malngCRC32(237) = 0xDEBB9EC5 malngCRC32(238) = 0x47B2CF7F malngCRC32(239) = 0x30B5FFE9 malngCRC32(240) = 0xBDBDF21C malngCRC32(241) = 0xCABAC28A malngCRC32(242) = 0x53B39330 malngCRC32(243) = 0x24B4A3A6 malngCRC32(244) = 0xBAD03605 malngCRC32(245) = 0xCDD70693 malngCRC32(246) = 0x54DE5729 malngCRC32(247) = 0x23D967BF malngCRC32(248) = 0xB3667A2E malngCRC32(249) = 0xC4614AB8 malngCRC32(250) = 0x5D681B02 malngCRC32(251) = 0x2A6F2B94 malngCRC32(252) = 0xB40BBE37 malngCRC32(253) = 0xC30C8EA1 malngCRC32(254) = 0x5A05DF1B malngCRC32(255) = 0x2D02EF8D return |