<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://oldwiki.cpcwiki.eu/index.php?action=history&amp;feed=atom&amp;title=Programming%3ACRC32</id>
		<title>Programming:CRC32 - Revision history</title>
		<link rel="self" type="application/atom+xml" href="https://oldwiki.cpcwiki.eu/index.php?action=history&amp;feed=atom&amp;title=Programming%3ACRC32"/>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=Programming:CRC32&amp;action=history"/>
		<updated>2026-08-28T17:50:34Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.25.1</generator>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=Programming:CRC32&amp;diff=3158&amp;oldid=prev</id>
		<title>PulkoMandy: Category:Programming</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=Programming:CRC32&amp;diff=3158&amp;oldid=prev"/>
				<updated>2006-08-13T14:06:36Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;a href=&quot;/index.php/Category:Programming&quot; title=&quot;Category:Programming&quot;&gt;Category:Programming&lt;/a&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 14:06, 13 August 2006&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;L142&quot; &gt;Line 142:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 142:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; ret&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; ret&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:Programming]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>PulkoMandy</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=Programming:CRC32&amp;diff=2396&amp;oldid=prev</id>
		<title>Kangaroo at 20:28, 9 August 2006</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=Programming:CRC32&amp;diff=2396&amp;oldid=prev"/>
				<updated>2006-08-09T20:28:39Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 20:28, 9 August 2006&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;L1&quot; &gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== The author ==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== The author ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Author of this code is 84plusfreak. He wrote this routine for the TI84 calculator, but it should work on the CPC without big modifications (just change the addresses which are used).&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Author of this code is 84plusfreak. He wrote this routine for the TI84 calculator, but it should work on the &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;[[&lt;/ins&gt;CPC&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;]] &lt;/ins&gt;without big modifications (just change the addresses which are used).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== The Code ==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== The Code ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key wikidb:diff:version:1.11a:oldid:1650:newid:2396 --&gt;
&lt;/table&gt;</summary>
		<author><name>Kangaroo</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=Programming:CRC32&amp;diff=1650&amp;oldid=prev</id>
		<title>Octoate: Initial page</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=Programming:CRC32&amp;diff=1650&amp;oldid=prev"/>
				<updated>2006-07-26T07:16:23Z</updated>
		
		<summary type="html">&lt;p&gt;Initial page&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== The author ==&lt;br /&gt;
Author of this code is 84plusfreak. He wrote this routine for the TI84 calculator, but it should work on the CPC without big modifications (just change the addresses which are used).&lt;br /&gt;
&lt;br /&gt;
== The Code ==&lt;br /&gt;
'''CRC32Init'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CRC32Init:&lt;br /&gt;
 ;Inputs:&lt;br /&gt;
 ; A=0 -&amp;gt; Use 'default' Polynomial (the one used in the ZIP Format)&lt;br /&gt;
 ; A=1 -&amp;gt; Use custom Polynomial&lt;br /&gt;
 ;     -&amp;gt; DEHL=Polynomial&lt;br /&gt;
 ;Outputs:&lt;br /&gt;
 ; ($8292)=Polynomial&lt;br /&gt;
 ; ($8296)=Current CRC (~($8296)=CRC32)&lt;br /&gt;
 ;Destroys:&lt;br /&gt;
 ; AF,DE,HL&lt;br /&gt;
 or a&lt;br /&gt;
 jr nz,$+08&lt;br /&gt;
 ld de,$EDB8&lt;br /&gt;
 ld hl,$8320&lt;br /&gt;
 ld a,d&lt;br /&gt;
 ld d,e&lt;br /&gt;
 ld e,a&lt;br /&gt;
 ld a,h&lt;br /&gt;
 ld h,l&lt;br /&gt;
 ld l,a&lt;br /&gt;
 ld ($8292),de&lt;br /&gt;
 ld ($8294),hl&lt;br /&gt;
 ld hl,$FFFF&lt;br /&gt;
 ld ($8296),hl&lt;br /&gt;
 ld ($8298),hl&lt;br /&gt;
 ret&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''CRC32Update'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CRC32Update:&lt;br /&gt;
 ;Inputs:&lt;br /&gt;
 ; HL -&amp;gt; Points to data&lt;br /&gt;
 ; BC -&amp;gt; Number of bytes&lt;br /&gt;
 ;Outputs:&lt;br /&gt;
 ; ($8296) = Updated&lt;br /&gt;
 ;Destroys:&lt;br /&gt;
 ; AF,BC,DE,HL&lt;br /&gt;
 ld a,b&lt;br /&gt;
 or c&lt;br /&gt;
 ret z&lt;br /&gt;
 push hl&lt;br /&gt;
 push bc&lt;br /&gt;
 ld b,(hl)&lt;br /&gt;
 call CRC32Update_Routine&lt;br /&gt;
 pop bc&lt;br /&gt;
 pop hl&lt;br /&gt;
 inc hl&lt;br /&gt;
 dec bc&lt;br /&gt;
 jr CRC32Update&lt;br /&gt;
CRC32Update_OneByte:&lt;br /&gt;
 ;Inputs:&lt;br /&gt;
 ; A = Byte to add to CRC&lt;br /&gt;
 ;Destroys:&lt;br /&gt;
 ; AF,BC,DE,HL&lt;br /&gt;
 ld b,a&lt;br /&gt;
CRC32Update_Routine:&lt;br /&gt;
 ld a,($8296)&lt;br /&gt;
 xor b&lt;br /&gt;
 call CRC32TableLookup&lt;br /&gt;
 ld a,($8297)&lt;br /&gt;
 xor l&lt;br /&gt;
 ld ($8296),a&lt;br /&gt;
 ld a,($8298)&lt;br /&gt;
 xor h&lt;br /&gt;
 ld ($8297),a&lt;br /&gt;
 ld a,($8299)&lt;br /&gt;
 xor e&lt;br /&gt;
 ld ($8298),a&lt;br /&gt;
 ld a,d&lt;br /&gt;
 ld ($8299),a&lt;br /&gt;
 ret&lt;br /&gt;
CRC32TableLookup:&lt;br /&gt;
 ld de,$0000&lt;br /&gt;
 ld h,d&lt;br /&gt;
 ld l,a&lt;br /&gt;
 ld b,8&lt;br /&gt;
CRC32TableLookupLoop:&lt;br /&gt;
 push bc&lt;br /&gt;
 or a&lt;br /&gt;
 rr d&lt;br /&gt;
 rr e&lt;br /&gt;
 rr h&lt;br /&gt;
 rr l&lt;br /&gt;
 jr nc,CRC32TableLookupLoopEnd&lt;br /&gt;
 push hl&lt;br /&gt;
 pop bc&lt;br /&gt;
 ld hl,$8292&lt;br /&gt;
 ld a,d&lt;br /&gt;
 xor (hl)&lt;br /&gt;
 inc hl&lt;br /&gt;
 ld d,a&lt;br /&gt;
 ld a,e&lt;br /&gt;
 xor (hl)&lt;br /&gt;
 inc hl&lt;br /&gt;
 ld e,a&lt;br /&gt;
 ld a,b&lt;br /&gt;
 xor (hl)&lt;br /&gt;
 inc hl&lt;br /&gt;
 ld b,a&lt;br /&gt;
 ld a,c&lt;br /&gt;
 xor (hl)&lt;br /&gt;
 ld c,a&lt;br /&gt;
 push bc&lt;br /&gt;
 pop hl&lt;br /&gt;
CRC32TableLookupLoopEnd:&lt;br /&gt;
 pop bc&lt;br /&gt;
 djnz CRC32TableLookupLoop&lt;br /&gt;
 ret&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''CRC32Finalize'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CRC32Finalize:&lt;br /&gt;
 ;Inputs:&lt;br /&gt;
 ; None&lt;br /&gt;
 ;Outputs:&lt;br /&gt;
 ; DEHL = CRC32&lt;br /&gt;
 ;Destroys:&lt;br /&gt;
 ; AF,BC,DE,HL&lt;br /&gt;
 ld de,($8298)&lt;br /&gt;
 ld bc,($8296)&lt;br /&gt;
 ld hl,$FFFF&lt;br /&gt;
 push hl&lt;br /&gt;
 or a&lt;br /&gt;
 sbc hl,bc&lt;br /&gt;
 ex (sp),hl&lt;br /&gt;
 sbc hl,de&lt;br /&gt;
 ex de,hl&lt;br /&gt;
 pop hl&lt;br /&gt;
 ret&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Octoate</name></author>	</entry>

	</feed>