<?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=Verilog_implementation_of_the_ACID_chip</id>
		<title>Verilog implementation of the ACID chip - Revision history</title>
		<link rel="self" type="application/atom+xml" href="https://oldwiki.cpcwiki.eu/index.php?action=history&amp;feed=atom&amp;title=Verilog_implementation_of_the_ACID_chip"/>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=Verilog_implementation_of_the_ACID_chip&amp;action=history"/>
		<updated>2026-08-28T13:38:26Z</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=Verilog_implementation_of_the_ACID_chip&amp;diff=108056&amp;oldid=prev</id>
		<title>Polluks: Category</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=Verilog_implementation_of_the_ACID_chip&amp;diff=108056&amp;oldid=prev"/>
				<updated>2021-05-11T13:52:35Z</updated>
		
		<summary type="html">&lt;p&gt;Category&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 13:52, 11 May 2021&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;= Download =&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;= Download =&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;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt; &lt;/del&gt;* [[Media:acid.v|Verilog Code]]&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;* [[Media:acid.v|Verilog Code]]&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;= 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;= Code =&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;L86&quot; &gt;Line 86:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 86:&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 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;−&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;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;[[Category:Hardware]]&lt;/del&gt;[[Category:CPC Internal Components]][[Category:Electronic Component]][[Category:DIY]]&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;[[Category:CPC Internal Components]] [[Category:Electronic Component]] [[Category:DIY]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

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

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=Verilog_implementation_of_the_ACID_chip&amp;diff=67240&amp;oldid=prev</id>
		<title>Octoate: added new page for the verilog code</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=Verilog_implementation_of_the_ACID_chip&amp;diff=67240&amp;oldid=prev"/>
				<updated>2011-04-15T10:47:53Z</updated>
		
		<summary type="html">&lt;p&gt;added new page for the verilog code&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= Download =&lt;br /&gt;
 * [[Media:acid.v|Verilog Code]]&lt;br /&gt;
&lt;br /&gt;
= Code =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
`timescale 1ns / 1ps&lt;br /&gt;
//////////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
// Company: &lt;br /&gt;
// Engineer: Octoate, Nilquader&lt;br /&gt;
// ACID Reverse engineering by nocash&lt;br /&gt;
// &lt;br /&gt;
// Create Date   : 00:45:53 09/03/2010&lt;br /&gt;
// Design Name   : amsacid&lt;br /&gt;
// Module Name   : amsacid &lt;br /&gt;
// Project Name  : &lt;br /&gt;
// Target Devices: Xilinx XC9572&lt;br /&gt;
// Tool versions :  &lt;br /&gt;
// Description   : Reverse engineered Amstrad 40908 &amp;quot;ACID&amp;quot; Chip &lt;br /&gt;
//&lt;br /&gt;
// Revision: &lt;br /&gt;
// Revision 0.05&lt;br /&gt;
// Additional Comments: &lt;br /&gt;
//&lt;br /&gt;
//////////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
module amsacid(PinCLK, PinA, PinOE, PinCCLR, PinSIN);&lt;br /&gt;
&lt;br /&gt;
input PinCLK;&lt;br /&gt;
input [7:0]PinA;&lt;br /&gt;
input PinOE;&lt;br /&gt;
input PinCCLR;&lt;br /&gt;
&lt;br /&gt;
output [7:0]PinSIN;&lt;br /&gt;
&lt;br /&gt;
wire PinCLK;&lt;br /&gt;
&lt;br /&gt;
reg [16:0]ShiftReg = 17'h1FFFF;&lt;br /&gt;
wire [16:0]CmpVal;&lt;br /&gt;
wire [16:0]XorVal;&lt;br /&gt;
&lt;br /&gt;
assign CmpVal = 17'h13596	^ (PinA[0] ? 17'h0000c : 0)&lt;br /&gt;
									^ (PinA[1] ? 17'h06000 : 0)&lt;br /&gt;
									^ (PinA[2] ? 17'h000c0 : 0)&lt;br /&gt;
									^ (PinA[3] ? 17'h00030 : 0)&lt;br /&gt;
									^ (PinA[4] ? 17'h18000 : 0)&lt;br /&gt;
									^ (PinA[5] ? 17'h00003 : 0)&lt;br /&gt;
									^ (PinA[6] ? 17'h00600 : 0)&lt;br /&gt;
									^ (PinA[7] ? 17'h01800 : 0);&lt;br /&gt;
assign XorVal = 17'h0C820	^ (PinA[0] ? 17'h00004 : 0)&lt;br /&gt;
									^ (PinA[1] ? 17'h06000 : 0)&lt;br /&gt;
									^ (PinA[2] ? 17'h00080 : 0)&lt;br /&gt;
									^ (PinA[3] ? 17'h00020 : 0)&lt;br /&gt;
									^ (PinA[4] ? 17'h08000 : 0)&lt;br /&gt;
									^ (PinA[5] ? 17'h00000 : 0)&lt;br /&gt;
									^ (PinA[6] ? 17'h00000 : 0)&lt;br /&gt;
									^ (PinA[7] ? 17'h00800 : 0);&lt;br /&gt;
&lt;br /&gt;
always@(negedge PinCLK)&lt;br /&gt;
	begin&lt;br /&gt;
&lt;br /&gt;
	if (PinCCLR) // not in reset state&lt;br /&gt;
		begin&lt;br /&gt;
		if (!PinOE &amp;amp;&amp;amp; ((ShiftReg | 17'h00100) == CmpVal))&lt;br /&gt;
			begin&lt;br /&gt;
			ShiftReg &amp;lt;= (ShiftReg ^ XorVal) &amp;gt;&amp;gt; 1;&lt;br /&gt;
			ShiftReg[16] &amp;lt;= ShiftReg[0] ^ ShiftReg[9] ^ ShiftReg[12] ^ ShiftReg[16] ^ XorVal[0];  // hier xorval mit berüchsichtigen&lt;br /&gt;
			end&lt;br /&gt;
		else&lt;br /&gt;
			begin&lt;br /&gt;
			ShiftReg &amp;lt;= ShiftReg &amp;gt;&amp;gt; 1;&lt;br /&gt;
			ShiftReg[16] &amp;lt;= ShiftReg[0] ^ ShiftReg[9] ^ ShiftReg[12] ^ ShiftReg[16];&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		begin&lt;br /&gt;
			ShiftReg &amp;lt;= 17'h1FFFF;&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
//assign PinSIN = ShiftReg[7:0] ^ 8'hff;&lt;br /&gt;
assign PinSIN = ShiftReg[7:0];&lt;br /&gt;
//assign PinSIN[0] = PinCLK;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
endmodule&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Hardware]][[Category:CPC Internal Components]][[Category:Electronic Component]][[Category:DIY]]&lt;/div&gt;</summary>
		<author><name>Octoate</name></author>	</entry>

	</feed>