<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
		<id>https://cpcwiki.de/index.php?action=history&amp;feed=atom&amp;title=ACID</id>
		<title>ACID - Versionsgeschichte</title>
		<link rel="self" type="application/atom+xml" href="https://cpcwiki.de/index.php?action=history&amp;feed=atom&amp;title=ACID"/>
		<link rel="alternate" type="text/html" href="https://cpcwiki.de/index.php?title=ACID&amp;action=history"/>
		<updated>2026-04-17T00:50:25Z</updated>
		<subtitle>Versionsgeschichte dieser Seite in Deutsches CPCWiki</subtitle>
		<generator>MediaWiki 1.27.1</generator>

	<entry>
		<id>https://cpcwiki.de/index.php?title=ACID&amp;diff=134&amp;oldid=prev</id>
		<title>TFM: Die Seite wurde neu angelegt: „Der '''ACID''' (&quot;Amstrad Cartridge Identification Device&quot;) Chip befindet sich in jedem Modul (&quot;Cartridge&quot;) der GX4000 Spielkonsole bzw.   464 Plus und…“</title>
		<link rel="alternate" type="text/html" href="https://cpcwiki.de/index.php?title=ACID&amp;diff=134&amp;oldid=prev"/>
				<updated>2018-01-07T20:04:53Z</updated>
		
		<summary type="html">&lt;p&gt;Die Seite wurde neu angelegt: „Der &amp;#039;&amp;#039;&amp;#039;ACID&amp;#039;&amp;#039;&amp;#039; (&amp;quot;Amstrad Cartridge Identification Device&amp;quot;) Chip befindet sich in jedem Modul (&amp;quot;Cartridge&amp;quot;) der &lt;a href=&quot;/index.php?title=GX4000&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;GX4000 (Seite nicht vorhanden)&quot;&gt;GX4000&lt;/a&gt; Spielkonsole bzw.   &lt;a href=&quot;/index.php?title=464_Plus&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;464 Plus (Seite nicht vorhanden)&quot;&gt;464 Plus&lt;/a&gt; und…“&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Der '''ACID''' (&amp;quot;Amstrad Cartridge Identification Device&amp;quot;) Chip befindet sich in jedem Modul (&amp;quot;Cartridge&amp;quot;) der [[GX4000]] Spielkonsole bzw. &lt;br /&gt;
&lt;br /&gt;
[[464 Plus]] und [[6128 Plus]] Rechner.&lt;br /&gt;
&lt;br /&gt;
Nachdem divese Mitglieder der Deutschen CPC-Szene die Hardware des ACID Chips dekodiert haben ist es nun möglich den ACID auf Hardware-&lt;br /&gt;
&lt;br /&gt;
Ebene zu emulieren (z.B. mit Hilfe eines CPLD Chips).&lt;br /&gt;
&lt;br /&gt;
== Technik ==&lt;br /&gt;
&lt;br /&gt;
Der ACID Chip der Module besitzt 16 Pins. Beim Einschalten sendet er eine serielle Folge von Bytes an den 160 Pin ASIC Chip der GX4000 bzw. &lt;br /&gt;
&lt;br /&gt;
des 464/6128 Plus Rechners. Die Daten werden durch eine Reihe von Shift und Xor Schaltungen generiert. Weiterhin üben auch die Adress- und &lt;br /&gt;
&lt;br /&gt;
&amp;quot;Enable&amp;quot;-Signate des EPROMs des Moduls einen Einfluss aus. Falls dieser Datenstrom nicht vom ACID zum ASIC gesendet wird, dann zerstreut &lt;br /&gt;
&lt;br /&gt;
der ASIC den Zugriff auf den Speicher, dadurch wird das Modul unbenutzbar.&lt;br /&gt;
&lt;br /&gt;
 ;ACID reverse-engineered 13-16 February 2010 von Martin Korth&lt;br /&gt;
 ;below is repeated on every CLK cycle...&lt;br /&gt;
 CmpVal=13596h, XorVal=0c820h&lt;br /&gt;
 if PinA0=1 then CmpVal=CmpVal XOR 0000ch, XorVal=XorVal XOR 00004h&lt;br /&gt;
 if PinA1=1 then CmpVal=CmpVal XOR 06000h, XorVal=XorVal XOR 06000h&lt;br /&gt;
 if PinA2=1 then CmpVal=CmpVal XOR 000c0h, XorVal=XorVal XOR 00080h&lt;br /&gt;
 if PinA3=1 then CmpVal=CmpVal XOR 00030h, XorVal=XorVal XOR 00020h&lt;br /&gt;
 if PinA4=1 then CmpVal=CmpVal XOR 18000h, XorVal=XorVal XOR 08000h&lt;br /&gt;
 if PinA5=1 then CmpVal=CmpVal XOR 00003h, XorVal=XorVal XOR 00000h&lt;br /&gt;
 if PinA6=1 then CmpVal=CmpVal XOR 00600h, XorVal=XorVal XOR 00000h&lt;br /&gt;
 if PinA7=1 then CmpVal=CmpVal XOR 01800h, XorVal=XorVal XOR 00800h&lt;br /&gt;
 if PinCE=0 AND (ShiftReg OR 100h)=CmpVal then ShiftReg=ShiftReg XOR XorVal&lt;br /&gt;
 NewBit=ShiftRegBit0 XOR ShiftRegBit9 XOR ShiftRegBit12 XOR ShiftRegBit16&lt;br /&gt;
 ShiftReg=(ShiftReg SHR 1) + (NewBit SHL 16)&lt;br /&gt;
 Wait for falling edge on PinCLK&lt;br /&gt;
 if PinCCLR=0 then ShiftReg=1FFFFh      ;\done at falling CLK edge&lt;br /&gt;
 PinSIN=ShiftRegBit0                    ;/&lt;br /&gt;
 ;Mind that above is a software example - a hardware solution obviously&lt;br /&gt;
 ;wouldn't require CmpVal and XorVal registers - instead, hardware would&lt;br /&gt;
 ;directly deal with the PinAx (or NOT PinAx) signals.&lt;br /&gt;
&lt;br /&gt;
Es ist problemlos möglich das EPROM eines Moduls zu ersetzen oder neu zu beschreiben, der ACID schützt also nicht vor dem Kopieren der &lt;br /&gt;
&lt;br /&gt;
Software auf den Modulen. Allerdings verhindert er, dass unlizensierte Software in großem Stiel verkauft wird.&lt;br /&gt;
&lt;br /&gt;
Es sind jedoch mittlerweile einige Quessen von ACIDs im Internet aufgetaucht. Außerdem kann der ACID emuliert werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Timings ==&lt;br /&gt;
Auch wenn die Funktion des ACID bekannt ist, so ist doch das präzise Timing der einzelnen Signale des Chips nicht ganz bekannt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pinbelegung ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
           +--()--+&lt;br /&gt;
       GND |1   16| +5V      AMSTRAD 40908&lt;br /&gt;
       A7  |2   15| A6       1L03P1003&lt;br /&gt;
       CLK4|3   14| A5       JAPAN&lt;br /&gt;
       NC  |4   13| A4&lt;br /&gt;
       CCLR|5   12| A3&lt;br /&gt;
       SIN |6   11| A2&lt;br /&gt;
       /CE |7   10| A1&lt;br /&gt;
       GND |8    9| A0&lt;br /&gt;
           +------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{|{{Prettytable|width: 700px; font-size: 2em;}}&lt;br /&gt;
|''Pin Nummer''||''Signal-Name''||''Daten-Richtung''||''Beschreibung''&lt;br /&gt;
|-&lt;br /&gt;
|1||GND||-||Ground&lt;br /&gt;
|-&lt;br /&gt;
|2||A7||Input||EPROM Address A7&lt;br /&gt;
|-&lt;br /&gt;
|3||CLK4||Input||Clock (4 MHz)&lt;br /&gt;
|-&lt;br /&gt;
|4||NC||-||Not connected&lt;br /&gt;
|-&lt;br /&gt;
|5||CCLR||Input||Reset ACID&lt;br /&gt;
|-&lt;br /&gt;
|6||SIN||Output||Serial Data&lt;br /&gt;
|-&lt;br /&gt;
|7||/CE||Input||EPROM Chip enable&lt;br /&gt;
|-&lt;br /&gt;
|8||GND||-||Ground&lt;br /&gt;
|-&lt;br /&gt;
|9||A0||Input||EPROM Address A0&lt;br /&gt;
|-&lt;br /&gt;
|10||A1||Input||EPROM Address A1&lt;br /&gt;
|-&lt;br /&gt;
|11||A2||Input||EPROM Address A2&lt;br /&gt;
|-&lt;br /&gt;
|12||A3||Input||EPROM Address A3&lt;br /&gt;
|-&lt;br /&gt;
|13||A4||Input||EPROM Address A4&lt;br /&gt;
|-&lt;br /&gt;
|14||A5||Input||EPROM Address A5&lt;br /&gt;
|-&lt;br /&gt;
|15||A6||Input||EPROM Address A6&lt;br /&gt;
|-&lt;br /&gt;
|16||+5V||-||Vcc&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Anmerkung: Die beiden GND Pins sind miteinander verbunden (innerhalb des Chips). Der NC Pin scheint immer &amp;quot;high&amp;quot; zu sein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Klone / Emulationen / Nachbauten ==&lt;br /&gt;
* Ein ACID Ersatz nutzt den Xilinx XC9536 CPLD und eine Verilog Implementation des ACID Chips. Entwickelt von [[Octoate]] und &lt;br /&gt;
&lt;br /&gt;
[[Nilquader]]. [https://www.octoate.de/wp/articles/acid-verilog-code/]&lt;br /&gt;
&lt;br /&gt;
* Miguel Angel (aka mcleod_ideafix) publizierte viele Informationen seiner ACID Implementation in einem CPLD. Verilog Quellcode vorhanden. &lt;br /&gt;
[http://www.zxprojects.com/index.php/analisis-del-chip-acid/62-analisis-del-chip-acid-del-amstrad-cpcgx4000]&lt;br /&gt;
&lt;br /&gt;
* Es ist wohl auch möglich den Plus ohne ACID zu nutzen, dazu mißbraucht man einen Timing-Bug des ASICs. Eine Idee von [[Nilquader]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Untersuchungen ==&lt;br /&gt;
&lt;br /&gt;
*http://amstradcpc.mforos.com/305097/7723493-que-hace-exactamente-el-chip-acid-de-los-cartuchos/ (in Spanisch)&lt;br /&gt;
&lt;br /&gt;
*[http://www.vieuzordiland.fr/index.php?option=com_content&amp;amp;task=view&amp;amp;id=23&amp;amp;Itemid=34 Vieuxzordiland's Seite zum Thema, in Französisch.]&lt;br /&gt;
&lt;br /&gt;
*[http://cpcwiki.eu/forum/index.php/topic,410.0.html| Eine Diskussion in der Englischen CPCwiki]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Cartridges]]&lt;br /&gt;
[[Category:CPC Plus]]&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>TFM</name></author>	</entry>

	</feed>