<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://oldwiki.cpcwiki.eu/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Bread80wiki</id>
		<title>CPCWiki - THE Amstrad CPC encyclopedia! - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://oldwiki.cpcwiki.eu/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Bread80wiki"/>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php/Special:Contributions/Bread80wiki"/>
		<updated>2026-08-29T13:00:17Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.25.1</generator>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=Technical_documentation&amp;diff=108457</id>
		<title>Technical documentation</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=Technical_documentation&amp;diff=108457"/>
				<updated>2022-03-18T13:50:05Z</updated>
		
		<summary type="html">&lt;p&gt;Bread80wiki: Moved Soft968 to firmware (etc) section. Clarified link to BIOS functions.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;border: 1px solid rgb(228, 222, 222); margin: 0px 0px 5px; padding: 0.5em 1em; background-color: rgb(249, 249, 249);&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Ongoing project for additional technical documentation: the [[KevArchive|local mirror]] of Kevin Thackers' archive at [http://www.cpctech.org.uk http://www.cpctech.org.uk].''''' &amp;lt;/center&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== BASIC / Firmware / CP/M ==&lt;br /&gt;
&lt;br /&gt;
* [[Locomotive BASIC]] (reference for BASIC commands, functions and error messages)&lt;br /&gt;
* [[Technical information about Locomotive BASIC]] (encoding of BASIC programs in memory)&lt;br /&gt;
* [[BIOS Functions]] (firmware routine summary)&lt;br /&gt;
* [[Soft968:_CPC_464/664/6128_Firmware|Soft968 Firmware Specification]] (the official Amstrad firmware documentation)&lt;br /&gt;
&lt;br /&gt;
== DIY Hardware Projects ==&lt;br /&gt;
&lt;br /&gt;
Can now be found under [[DIY|DIY &amp;amp; Repair]]&lt;br /&gt;
&lt;br /&gt;
== Built-in connectors: pinout ==&lt;br /&gt;
&lt;br /&gt;
* [[Connector:2nd disc drive (CPC664, CPC6128, CPC6128+)|2nd disc drive (CPC664, CPC6128, CPC6128+)]]&lt;br /&gt;
* [[Connector:Analogue joystick (CPC Plus only)|Analogue joystick (CPC Plus only)]]&lt;br /&gt;
* [[Connector:Aux socket (CPC Plus only)|Aux socket (CPC Plus only)]] (Lightgun)&lt;br /&gt;
* [[Connector:Cartridge Slot (CPC Plus only)|Cartridge Slot (CPC Plus only)]]&lt;br /&gt;
* [[Connector:Cassette recorder|Cassette recorder]]&lt;br /&gt;
* [[Connector:Digital joystick|Digital joystick]]&lt;br /&gt;
* [[Connector:Expansion port|Expansion port]]&lt;br /&gt;
* [[Connector:Monitor|Monitor]]&lt;br /&gt;
* [[Connector:Printer port|Printer port]]&lt;br /&gt;
* [[Connector:Stereo sound|Stereo sound]]&lt;br /&gt;
&lt;br /&gt;
== Emulator file format specifications ==&lt;br /&gt;
&lt;br /&gt;
* [[Format:CDT tape image file format|CDT - tape image file format]]&lt;br /&gt;
* [[Format:CPR CPC Plus cartridge file format|CPR - CPC Plus cartridge file format]]&lt;br /&gt;
* [[Format:DSC disk image file format|DSC - disk image file format]] (hardly used anymore)&lt;br /&gt;
* [[Format:DSK disk image file format|DSK - disk image file format]]&lt;br /&gt;
* [[Format:SNA snapshot file format| SNA - snapshot file format]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Hardware extensions ==&lt;br /&gt;
&lt;br /&gt;
* [[M4_Board|M4-Wifi]]&lt;br /&gt;
* [[Programming:CPC Booster|CPC Booster]]&lt;br /&gt;
* [[Programming:SYMBiFACE II|SYMBiFACE II]]&lt;br /&gt;
* [[Peripherals]] (includes tech info, as far as known)&lt;br /&gt;
&lt;br /&gt;
== Internal Components ==&lt;br /&gt;
&lt;br /&gt;
* [[Default I/O Port Summary]] - map of built-in I/O ports of the CPC&lt;br /&gt;
* [[765 FDC]] - Floppy Disc Controller&lt;br /&gt;
* [[8255]] - PIO - I/O controller&lt;br /&gt;
* [[Arnold V Specs Revised]] - Arnold V (CPC+) Technical Specification&lt;br /&gt;
* [[AY-3-8912]] - Sound chip / keyboard controller&lt;br /&gt;
* [[Cassette data information]] - Information about the cassette storage system&lt;br /&gt;
* [[CRTC]] - Video chip&lt;br /&gt;
* [[Gate Array]] - Custom chip (frequency generation, colors, bank switching)&lt;br /&gt;
* [[PAL16L8]] - Controls RAM bank switching (see [[Gate Array]] for programming details)&lt;br /&gt;
* [[Power Supply for CPC and CPC plus]]&lt;br /&gt;
* [[Printer Port]]&lt;br /&gt;
* [[Mainboard Versions]]&lt;br /&gt;
&lt;br /&gt;
== Service Manuals ==&lt;br /&gt;
&lt;br /&gt;
* [[Service Manuals]]&lt;br /&gt;
&lt;br /&gt;
== Protections ==&lt;br /&gt;
&lt;br /&gt;
* [[8k Speedlock]]&lt;br /&gt;
* [[Alkatraz]]&lt;br /&gt;
* [[Speedlock]]&lt;br /&gt;
* [[Lenslok]]&lt;br /&gt;
&lt;br /&gt;
== Specifications  ==&lt;br /&gt;
&lt;br /&gt;
*[[List of file formats|List of file formats]]&lt;br /&gt;
*[[Format:SGX (SymbOS graphic files)|SGX (SymbOS graphic files)]] &lt;br /&gt;
*[[Format:VID (SymbOS video files)|VID (SymbOS video files)]]&lt;br /&gt;
*[[Emulator IDs|List of Emulator IDs]]&lt;br /&gt;
*[[Class]] definitions of CPCs.&lt;br /&gt;
&lt;br /&gt;
= Weblinks =&lt;br /&gt;
&lt;br /&gt;
* https://acpc.me/#ACME/DOCS_TECHNIQUES&lt;br /&gt;
&lt;br /&gt;
[[Category:Hardware|*]] [[Category:Manual|*]][[Category:CPC Internal Components]][[Category:Cpctech.org]][[Category:Software|*]][[Category:DIY| ]]&lt;/div&gt;</summary>
		<author><name>Bread80wiki</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=Technical_documentation&amp;diff=108456</id>
		<title>Technical documentation</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=Technical_documentation&amp;diff=108456"/>
				<updated>2022-03-18T13:40:54Z</updated>
		
		<summary type="html">&lt;p&gt;Bread80wiki: Added link to the PAL&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;border: 1px solid rgb(228, 222, 222); margin: 0px 0px 5px; padding: 0.5em 1em; background-color: rgb(249, 249, 249);&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Ongoing project for additional technical documentation: the [[KevArchive|local mirror]] of Kevin Thackers' archive at [http://www.cpctech.org.uk http://www.cpctech.org.uk].''''' &amp;lt;/center&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== BASIC / Firmware / CP/M ==&lt;br /&gt;
&lt;br /&gt;
* [[BIOS Functions]]&lt;br /&gt;
* [[Locomotive BASIC]] (reference for BASIC commands, functions and error messages)&lt;br /&gt;
* [[Technical information about Locomotive BASIC]] (encoding of BASIC programs in memory)&lt;br /&gt;
&lt;br /&gt;
== DIY Hardware Projects ==&lt;br /&gt;
&lt;br /&gt;
Can now be found under [[DIY|DIY &amp;amp; Repair]]&lt;br /&gt;
&lt;br /&gt;
== Built-in connectors: pinout ==&lt;br /&gt;
&lt;br /&gt;
* [[Connector:2nd disc drive (CPC664, CPC6128, CPC6128+)|2nd disc drive (CPC664, CPC6128, CPC6128+)]]&lt;br /&gt;
* [[Connector:Analogue joystick (CPC Plus only)|Analogue joystick (CPC Plus only)]]&lt;br /&gt;
* [[Connector:Aux socket (CPC Plus only)|Aux socket (CPC Plus only)]] (Lightgun)&lt;br /&gt;
* [[Connector:Cartridge Slot (CPC Plus only)|Cartridge Slot (CPC Plus only)]]&lt;br /&gt;
* [[Connector:Cassette recorder|Cassette recorder]]&lt;br /&gt;
* [[Connector:Digital joystick|Digital joystick]]&lt;br /&gt;
* [[Connector:Expansion port|Expansion port]]&lt;br /&gt;
* [[Connector:Monitor|Monitor]]&lt;br /&gt;
* [[Connector:Printer port|Printer port]]&lt;br /&gt;
* [[Connector:Stereo sound|Stereo sound]]&lt;br /&gt;
&lt;br /&gt;
== Emulator file format specifications ==&lt;br /&gt;
&lt;br /&gt;
* [[Format:CDT tape image file format|CDT - tape image file format]]&lt;br /&gt;
* [[Format:CPR CPC Plus cartridge file format|CPR - CPC Plus cartridge file format]]&lt;br /&gt;
* [[Format:DSC disk image file format|DSC - disk image file format]] (hardly used anymore)&lt;br /&gt;
* [[Format:DSK disk image file format|DSK - disk image file format]]&lt;br /&gt;
* [[Format:SNA snapshot file format| SNA - snapshot file format]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Hardware extensions ==&lt;br /&gt;
&lt;br /&gt;
* [[M4_Board|M4-Wifi]]&lt;br /&gt;
* [[Programming:CPC Booster|CPC Booster]]&lt;br /&gt;
* [[Programming:SYMBiFACE II|SYMBiFACE II]]&lt;br /&gt;
* [[Peripherals]] (includes tech info, as far as known)&lt;br /&gt;
&lt;br /&gt;
== Internal Components ==&lt;br /&gt;
&lt;br /&gt;
* [[Default I/O Port Summary]] - map of built-in I/O ports of the CPC&lt;br /&gt;
* [[765 FDC]] - Floppy Disc Controller&lt;br /&gt;
* [[8255]] - PIO - I/O controller&lt;br /&gt;
* [[Arnold V Specs Revised]] - Arnold V (CPC+) Technical Specification&lt;br /&gt;
* [[AY-3-8912]] - Sound chip / keyboard controller&lt;br /&gt;
* [[Cassette data information]] - Information about the cassette storage system&lt;br /&gt;
* [[CRTC]] - Video chip&lt;br /&gt;
* [[Gate Array]] - Custom chip (frequency generation, colors, bank switching)&lt;br /&gt;
* [[PAL16L8]] - Controls RAM bank switching (see [[Gate Array]] for programming details)&lt;br /&gt;
* [[Power Supply for CPC and CPC plus]]&lt;br /&gt;
* [[Printer Port]]&lt;br /&gt;
* [[Mainboard Versions]]&lt;br /&gt;
&lt;br /&gt;
== Service Manuals ==&lt;br /&gt;
&lt;br /&gt;
* [[Service Manuals]].&lt;br /&gt;
* [[Soft968:_CPC_464/664/6128_Firmware]].&lt;br /&gt;
&lt;br /&gt;
== Protections ==&lt;br /&gt;
&lt;br /&gt;
* [[8k Speedlock]]&lt;br /&gt;
* [[Alkatraz]]&lt;br /&gt;
* [[Speedlock]]&lt;br /&gt;
* [[Lenslok]]&lt;br /&gt;
&lt;br /&gt;
== Specifications  ==&lt;br /&gt;
&lt;br /&gt;
*[[List of file formats|List of file formats]]&lt;br /&gt;
*[[Format:SGX (SymbOS graphic files)|SGX (SymbOS graphic files)]] &lt;br /&gt;
*[[Format:VID (SymbOS video files)|VID (SymbOS video files)]]&lt;br /&gt;
*[[Emulator IDs|List of Emulator IDs]]&lt;br /&gt;
*[[Class]] definitions of CPCs.&lt;br /&gt;
&lt;br /&gt;
= Weblinks =&lt;br /&gt;
&lt;br /&gt;
* https://acpc.me/#ACME/DOCS_TECHNIQUES&lt;br /&gt;
&lt;br /&gt;
[[Category:Hardware|*]] [[Category:Manual|*]][[Category:CPC Internal Components]][[Category:Cpctech.org]][[Category:Software|*]][[Category:DIY| ]]&lt;/div&gt;</summary>
		<author><name>Bread80wiki</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=Gate_Array_and_ASIC_Pin-Outs&amp;diff=108455</id>
		<title>Gate Array and ASIC Pin-Outs</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=Gate_Array_and_ASIC_Pin-Outs&amp;diff=108455"/>
				<updated>2022-03-18T13:25:54Z</updated>
		
		<summary type="html">&lt;p&gt;Bread80wiki: Added links to gate array and PAL pages&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Electronic Component]]&lt;br /&gt;
== 40pin Gate Array 40007 (20RA043) ==&lt;br /&gt;
Old CPC464 version (with cooling plate).&lt;br /&gt;
  1 /CPU ADDR&lt;br /&gt;
  2 READY&lt;br /&gt;
  3 /CAS&lt;br /&gt;
  4 /244EN&lt;br /&gt;
  5 /MWE&lt;br /&gt;
  6 /CAS ADDR&lt;br /&gt;
  7 /RAS&lt;br /&gt;
  8 XTAL&lt;br /&gt;
  9 VCC2&lt;br /&gt;
  10 /INTERRUPT&lt;br /&gt;
  11 /SYNC (video)&lt;br /&gt;
  12 /ROMEN&lt;br /&gt;
  13 /RAMRD&lt;br /&gt;
  14 HSYNC&lt;br /&gt;
  15 VSYNC&lt;br /&gt;
  16 /IORQ&lt;br /&gt;
  17 /M1&lt;br /&gt;
  18 /MREQ&lt;br /&gt;
  19 /RD&lt;br /&gt;
  20 A15&lt;br /&gt;
  21 A14&lt;br /&gt;
  22 VCC1&lt;br /&gt;
  23 DISPEN&lt;br /&gt;
  24 D0&lt;br /&gt;
  25 D1&lt;br /&gt;
  26 D2&lt;br /&gt;
  27 D3&lt;br /&gt;
  28 D4&lt;br /&gt;
  29 D5&lt;br /&gt;
  30 D6&lt;br /&gt;
  31 D7&lt;br /&gt;
  32 VIDEO B (video)&lt;br /&gt;
  33 VCC2&lt;br /&gt;
  34 VIDEO G (video)&lt;br /&gt;
  35 GND&lt;br /&gt;
  36 VIDEO R (video)&lt;br /&gt;
  37 /RESET&lt;br /&gt;
  38 VCC1&lt;br /&gt;
  39 PHI&lt;br /&gt;
  40 MA0/CCLK&lt;br /&gt;
VCC1=+5V (direct), VCC2=+5V (via resistor)&lt;br /&gt;
&lt;br /&gt;
== 40pin Gate Array 40008 ==&lt;br /&gt;
An updated, pin compatible version of the 40007. The 40008 like the 40007 required a heatsink.&lt;br /&gt;
&lt;br /&gt;
== 40pin Gate Array 40010 (HSG3130 or HSG3170) ==&lt;br /&gt;
Newer version of Gate Array with a rearranged pin-out. The 40010 didn't required a cooling plate.&lt;br /&gt;
&lt;br /&gt;
  1 D5&lt;br /&gt;
  2 D6&lt;br /&gt;
  3 D7&lt;br /&gt;
  4 CCLK&lt;br /&gt;
  5 /SYNC (video)&lt;br /&gt;
  6 VCC&lt;br /&gt;
  7 /RESET&lt;br /&gt;
  8 B (video)&lt;br /&gt;
  9 DISPEN&lt;br /&gt;
  10 G (video)&lt;br /&gt;
  11 HSYNC&lt;br /&gt;
  12 R (video)&lt;br /&gt;
  13 VSYNC&lt;br /&gt;
  14 /CPU&lt;br /&gt;
  15 GND&lt;br /&gt;
  16 /CAS&lt;br /&gt;
  17 /MREQ&lt;br /&gt;
  18 /IORQ&lt;br /&gt;
  19 /PHI&lt;br /&gt;
  20 /M1&lt;br /&gt;
  21 /RD&lt;br /&gt;
  22 READY&lt;br /&gt;
  23 /244EN&lt;br /&gt;
  24 CK16&lt;br /&gt;
  25 VCC&lt;br /&gt;
  26 GND&lt;br /&gt;
  27 /ROMEN&lt;br /&gt;
  28 A15&lt;br /&gt;
  29 /RAMRD&lt;br /&gt;
  30 A14&lt;br /&gt;
  31 /CASAD&lt;br /&gt;
  32 /INTERRUPT&lt;br /&gt;
  33 /MWE&lt;br /&gt;
  34 /RAS&lt;br /&gt;
  35 D0&lt;br /&gt;
  36 GND&lt;br /&gt;
  37 D1&lt;br /&gt;
  38 D2&lt;br /&gt;
  39 D3&lt;br /&gt;
  40 D4&lt;br /&gt;
&lt;br /&gt;
== 20pin PAL/HAL PAC 16L8AC AMG40030 ==&lt;br /&gt;
Assists the 40pin Gate Array chip (for 128K RAM banking).&lt;br /&gt;
  1 SELECT (D7 AND D6)&lt;br /&gt;
  2 D0&lt;br /&gt;
  3 /RESET&lt;br /&gt;
  4 RAMDIS&lt;br /&gt;
  5 D1&lt;br /&gt;
  6 D2&lt;br /&gt;
  7 NCAS&lt;br /&gt;
  8 A15&lt;br /&gt;
  9 A14&lt;br /&gt;
  10 GND&lt;br /&gt;
  11 /CPU&lt;br /&gt;
  12 A15OUT&lt;br /&gt;
  13 NC*&lt;br /&gt;
  14 NC*&lt;br /&gt;
  15 NC*&lt;br /&gt;
  16 /CAS1&lt;br /&gt;
  17 /CAS0&lt;br /&gt;
  18 /IOWR&lt;br /&gt;
  19 A14OUT&lt;br /&gt;
  20 VCC&lt;br /&gt;
When PAL not installed: Close LK5,LK6,LK8 for 64K version.&lt;br /&gt;
(* NC but signals exist on those pins)&lt;br /&gt;
&lt;br /&gt;
== 100pin Gate Array AMS40226 (ARN4) ==&lt;br /&gt;
Pre-ASIC (late cost-down models).&lt;br /&gt;
See CPC6128 &amp;quot;ULA/DS&amp;quot; section in Amendment Service Manual.&lt;br /&gt;
Aside from Gate Array, it includes CRTC, probably PAL, FDC select/motor, DRAM&lt;br /&gt;
addr/data bus, RESET signals.&lt;br /&gt;
  1 SCLKI&lt;br /&gt;
  2 VCC&lt;br /&gt;
  3 GND&lt;br /&gt;
  4 /ROM1 (BIOS,BAS)&lt;br /&gt;
  5 /ROM2 (AMSDOS)&lt;br /&gt;
  6 RA7&lt;br /&gt;
  7 RA6&lt;br /&gt;
  8 RA5&lt;br /&gt;
  9 RA4&lt;br /&gt;
  10 RA3&lt;br /&gt;
  11 RA2&lt;br /&gt;
  12 RA1&lt;br /&gt;
  13 RA0&lt;br /&gt;
  14 VCC&lt;br /&gt;
  15 GND&lt;br /&gt;
  16 /CAS0&lt;br /&gt;
  17 /CAS1&lt;br /&gt;
  18 /WE&lt;br /&gt;
  19 /RAS&lt;br /&gt;
  20 RD7&lt;br /&gt;
  21 RD6&lt;br /&gt;
  22 RD5&lt;br /&gt;
  23 RD4&lt;br /&gt;
  24 RD3&lt;br /&gt;
  25 RD2&lt;br /&gt;
  26 RD1&lt;br /&gt;
  27 RD0&lt;br /&gt;
  28 /FDC (DISC)&lt;br /&gt;
  29 RESET&lt;br /&gt;
  30 WCLK (DISC)&lt;br /&gt;
  31 /MOTOR (DISC)&lt;br /&gt;
  32 CLK8&lt;br /&gt;
  33 PLLCK (CLK8, too?)&lt;br /&gt;
  34 RDTA&lt;br /&gt;
  35 DATA (undocumented optional output to FDC)&lt;br /&gt;
  36 WINDOW (undocumented optional output to FDC)&lt;br /&gt;
  37 RED&lt;br /&gt;
  38 GRE&lt;br /&gt;
  39 BLU&lt;br /&gt;
  40 GND&lt;br /&gt;
  41 VCC&lt;br /&gt;
  42 /SYNC&lt;br /&gt;
  43 CLK4&lt;br /&gt;
  44 /EXP (DISC?)&lt;br /&gt;
  45 LPEN (CRTC)&lt;br /&gt;
  46 CURS (CRTC)&lt;br /&gt;
  47 RAMDIS&lt;br /&gt;
  48 /RAMRD&lt;br /&gt;
  49 ROMDIS&lt;br /&gt;
  50 /ROMEN&lt;br /&gt;
  51 /RESET&lt;br /&gt;
  52 GND&lt;br /&gt;
  53 VCC&lt;br /&gt;
  54 /BRST (BUS RESET)&lt;br /&gt;
  55 READY&lt;br /&gt;
  56 /INT&lt;br /&gt;
  57 /WR&lt;br /&gt;
  58 /RD&lt;br /&gt;
  59 /IORQ&lt;br /&gt;
  60 /M1&lt;br /&gt;
  61 /MREQ&lt;br /&gt;
  62 D0&lt;br /&gt;
  63 D1&lt;br /&gt;
  64 D2&lt;br /&gt;
  65 D3&lt;br /&gt;
  66 GND&lt;br /&gt;
  67 VCC&lt;br /&gt;
  68 D4&lt;br /&gt;
  69 D5&lt;br /&gt;
  70 D6&lt;br /&gt;
  71 D7&lt;br /&gt;
  72 A0&lt;br /&gt;
  73 A1&lt;br /&gt;
  74 A2&lt;br /&gt;
  75 A3&lt;br /&gt;
  76 A4&lt;br /&gt;
  77 A5&lt;br /&gt;
  78 A6&lt;br /&gt;
  79 A7&lt;br /&gt;
  80 A8&lt;br /&gt;
  81 A9&lt;br /&gt;
  82 A10&lt;br /&gt;
  83 A11&lt;br /&gt;
  84 A12&lt;br /&gt;
  85 A13&lt;br /&gt;
  86 A14&lt;br /&gt;
  87 A15&lt;br /&gt;
  88 /IOW&lt;br /&gt;
  89 GND&lt;br /&gt;
  90 VCC&lt;br /&gt;
  91 /IOR&lt;br /&gt;
  92 /PSTB (Printer Select) (Ann OR /IOW) (this is not STROBE)&lt;br /&gt;
  93 MA11&lt;br /&gt;
  94 CLK1 (PSG)&lt;br /&gt;
  95 VSYNC&lt;br /&gt;
  96 /SRST (S RESET)&lt;br /&gt;
  97 L4N6 (GNDed in CPC6128) (maybe VCC in 64K versions?)&lt;br /&gt;
  98 /TST1&lt;br /&gt;
  99 /TST2&lt;br /&gt;
  100 SCLKO&lt;br /&gt;
Printer port 74LS273 chip is replaced by TWO chips: 74LS174 and 74LS175 (the&lt;br /&gt;
latter one includes strobe inversion).&lt;br /&gt;
Pin 35/36 are not documented on schematic, but from PCB layout they can be connected to FDC by links. These are output of internal FDC data separator.&lt;br /&gt;
&lt;br /&gt;
== 160pin ASIC (CPC+/GX4000) ==&lt;br /&gt;
Includes Gate Array, CRTC, PPI, 8bit printer port, FDC select/motor, keyboard&lt;br /&gt;
mux, analog I/O, CLK dividers, new CPC+ features (video, dma), cart rom bank,&lt;br /&gt;
cart ACID counterpart, 128K RAM banking, DRAM addr/data bus, RESET signals.&lt;br /&gt;
Lacks external PB0 and PC0-3 pins. PB/PC are one-directional. PB5 combines&lt;br /&gt;
AMSDOS bank and /EXP input.&lt;br /&gt;
  1 OSCO&lt;br /&gt;
  2 OSCI&lt;br /&gt;
  3 GND&lt;br /&gt;
  4 ADC0&lt;br /&gt;
  5 ADC1&lt;br /&gt;
  6 ADC2&lt;br /&gt;
  7 ADC3&lt;br /&gt;
  8 ADC4&lt;br /&gt;
  9 ADC5&lt;br /&gt;
  10 GND&lt;br /&gt;
  11 AHOLD&lt;br /&gt;
  12 MUX2&lt;br /&gt;
  13 MUX1&lt;br /&gt;
  14 MUX0&lt;br /&gt;
  15 COMP&lt;br /&gt;
  16 CLK1 (PSG.1MHz)&lt;br /&gt;
  17 PA0 (PSG.D0)&lt;br /&gt;
  18 PA1 (PSG.D1)&lt;br /&gt;
  19 PA2 (PSG.D2)&lt;br /&gt;
  20 VCC&lt;br /&gt;
  21 PA3 (PSG.D3)&lt;br /&gt;
  22 PA4 (PSG.D4)&lt;br /&gt;
  23 PA5 (PSG.D5)&lt;br /&gt;
  24 PA6 (PSG.D6)&lt;br /&gt;
  25 PA7 (PSG.D7)&lt;br /&gt;
  26 PC6 (PSG.BC1)&lt;br /&gt;
  27 PC7 (PSG.BDIR)&lt;br /&gt;
  28 GND&lt;br /&gt;
  29 /ROM&lt;br /&gt;
  30 CA18&lt;br /&gt;
  31 CA17&lt;br /&gt;
  32 CA16&lt;br /&gt;
  33 CA15&lt;br /&gt;
  34 CA14&lt;br /&gt;
  35 A15&lt;br /&gt;
  36 A14&lt;br /&gt;
  37 A13&lt;br /&gt;
  38 A12&lt;br /&gt;
  39 A11&lt;br /&gt;
  40 A10&lt;br /&gt;
  41 A9&lt;br /&gt;
  42 A8&lt;br /&gt;
  43 A7&lt;br /&gt;
  44 A6&lt;br /&gt;
  45 A5&lt;br /&gt;
  46 A4&lt;br /&gt;
  47 A3&lt;br /&gt;
  48 A2&lt;br /&gt;
  49 A1&lt;br /&gt;
  50 GND&lt;br /&gt;
  51 A0&lt;br /&gt;
  52 RSET (RESET)&lt;br /&gt;
  53 /IOR&lt;br /&gt;
  54 /IOW&lt;br /&gt;
  55 /FDC (DISC)&lt;br /&gt;
  56 VCC&lt;br /&gt;
  57 /WCLK (DISC)&lt;br /&gt;
  58 D7&lt;br /&gt;
  59 D6&lt;br /&gt;
  60 D5&lt;br /&gt;
  61 D4&lt;br /&gt;
  62 D3&lt;br /&gt;
  63 D2&lt;br /&gt;
  64 D1&lt;br /&gt;
  65 D0&lt;br /&gt;
  66 /M1&lt;br /&gt;
  67 PC4 (CAS.MOTOR)&lt;br /&gt;
  68 PB7 (CAS.IN)&lt;br /&gt;
  69 PC5 (CAS.OUT)&lt;br /&gt;
  70 GND&lt;br /&gt;
  71 KY10&lt;br /&gt;
  72 KY9&lt;br /&gt;
  73 KY8&lt;br /&gt;
  74 KY7&lt;br /&gt;
  75 KY6&lt;br /&gt;
  76 KY5&lt;br /&gt;
  77 KY4&lt;br /&gt;
  78 KY3&lt;br /&gt;
  79 KY2&lt;br /&gt;
  80 KY1&lt;br /&gt;
  81 RA7&lt;br /&gt;
  82 RA3&lt;br /&gt;
  83 RA4&lt;br /&gt;
  84 RA2&lt;br /&gt;
  85 RA5&lt;br /&gt;
  86 RA1&lt;br /&gt;
  87 RA6&lt;br /&gt;
  88 RA0&lt;br /&gt;
  89 GND&lt;br /&gt;
  90 /RAS&lt;br /&gt;
  91 /CAS1&lt;br /&gt;
  92 /WE&lt;br /&gt;
  93 /CAS0&lt;br /&gt;
  94 RD0&lt;br /&gt;
  95 RD1&lt;br /&gt;
  96 RD2&lt;br /&gt;
  97 RD3&lt;br /&gt;
  98 RD4&lt;br /&gt;
  99 RD5&lt;br /&gt;
  100 VCC&lt;br /&gt;
  101 RD6&lt;br /&gt;
  102 RD7&lt;br /&gt;
  103 /MOTOR (DISC)&lt;br /&gt;
  104 BLU0&lt;br /&gt;
  105 BLU1&lt;br /&gt;
  106 BLU2&lt;br /&gt;
  107 BLU3&lt;br /&gt;
  108 GND&lt;br /&gt;
  109 GRN0&lt;br /&gt;
  110 GRN1&lt;br /&gt;
  111 GRN2&lt;br /&gt;
  112 GRN3&lt;br /&gt;
  113 RED0&lt;br /&gt;
  114 RED1&lt;br /&gt;
  115 RED2&lt;br /&gt;
  116 RED3&lt;br /&gt;
  117 CLK16&lt;br /&gt;
  118 /SYNC (video)&lt;br /&gt;
  119 PB5 (LK5) (/EXP)&lt;br /&gt;
  120 PB4 (LK4) (50Hz/60Hz)&lt;br /&gt;
  121 VCC&lt;br /&gt;
  122 PB3 (LK3) (maker)&lt;br /&gt;
  123 PB2 (LK2) (maker)&lt;br /&gt;
  124 PB1 (LK1) (maker)&lt;br /&gt;
  125 CLK4 (4MHz)&lt;br /&gt;
  126 LPEN (CRTC)&lt;br /&gt;
  127 RAMDIS&lt;br /&gt;
  128 CURS (CRTC)&lt;br /&gt;
  129 ROMDIS&lt;br /&gt;
  130 GND&lt;br /&gt;
  131 /ROMRD&lt;br /&gt;
  132 /RESET&lt;br /&gt;
  133 /ROMEN&lt;br /&gt;
  134 READY&lt;br /&gt;
  135 /INT&lt;br /&gt;
  136 /WR&lt;br /&gt;
  137 /IORQ&lt;br /&gt;
  138 /RD&lt;br /&gt;
  139 /MREQ&lt;br /&gt;
  140 GND&lt;br /&gt;
  141 PALCLK (4.4MHz) (GX4000)&lt;br /&gt;
  142 TST1&lt;br /&gt;
  143 TST2&lt;br /&gt;
  144 TST3&lt;br /&gt;
  145 PSTB (STROBE)&lt;br /&gt;
  146 PR0&lt;br /&gt;
  147 PR1&lt;br /&gt;
  148 PR2&lt;br /&gt;
  149 PR3&lt;br /&gt;
  150 GND&lt;br /&gt;
  151 PR4&lt;br /&gt;
  152 PR5&lt;br /&gt;
  153 PR6&lt;br /&gt;
  154 PR7&lt;br /&gt;
  155 PB5 (BUSY)&lt;br /&gt;
  156 /SRST (s reset)&lt;br /&gt;
  157 CCLR (ACID)&lt;br /&gt;
  158 SIN (ACID)&lt;br /&gt;
  159 /BRST (bus reset)&lt;br /&gt;
  160 VCC&lt;br /&gt;
&lt;br /&gt;
== 16pin ACID Amstrad 40908 (1L03P1003) ==&lt;br /&gt;
The ASIC counterpart in CPC+/GX4000 carts.&lt;br /&gt;
  1 GND&lt;br /&gt;
  2 A7&lt;br /&gt;
  3 CLK4&lt;br /&gt;
  4 NC&lt;br /&gt;
  5 CCLR&lt;br /&gt;
  6 SIN&lt;br /&gt;
  7 /CE&lt;br /&gt;
  8 GND&lt;br /&gt;
  9 A0&lt;br /&gt;
  10 A1&lt;br /&gt;
  11 A2&lt;br /&gt;
  12 A3&lt;br /&gt;
  13 A4&lt;br /&gt;
  14 A5&lt;br /&gt;
  15 A6&lt;br /&gt;
  16 VCC&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
*[[Gate Array]]&lt;br /&gt;
&lt;br /&gt;
*[[PAL16L8]]&lt;/div&gt;</summary>
		<author><name>Bread80wiki</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=PAL16L8&amp;diff=108454</id>
		<title>PAL16L8</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=PAL16L8&amp;diff=108454"/>
				<updated>2022-03-18T13:22:59Z</updated>
		
		<summary type="html">&lt;p&gt;Bread80wiki: /* See also */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The CPC6128 second bank of 64K RAM is controlled by a PAL 16L8 chip. It has the Amstrad part number 40031.&lt;br /&gt;
&lt;br /&gt;
On the CPC 6128 schematic, it is top centre: [http://www.cpcwiki.eu/imgs/4/4a/CPC6128_Schematic.png CPC6128 Schematic] however the X inputs aren't distinguished.&lt;br /&gt;
&lt;br /&gt;
== Fixed version (Gerald) ==&lt;br /&gt;
Original version from Porchy suffer from a bad handling of the RAMDIS signal. This cause screen artefact when accessing an external extension RAM like XMEM.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 A14OUT     = !(  !A14&lt;br /&gt;
              #   !A15 &amp;amp; !Q0 &amp;amp; Q2 );&lt;br /&gt;
 &lt;br /&gt;
 A15OUT     = !(  !A15 &amp;amp; !A14&lt;br /&gt;
              #   !A15 &amp;amp; !Q1&lt;br /&gt;
              #   !A15 &amp;amp; !Q0 &amp;amp; !Q2 );&lt;br /&gt;
 &lt;br /&gt;
 Q0     = (  D7ANDD6 &amp;amp; nRESET &amp;amp; D0 &amp;amp; !A15 &amp;amp; !nIOWR&lt;br /&gt;
          #   !D7ANDD6 &amp;amp; nRESET &amp;amp; Q0&lt;br /&gt;
          #   nRESET &amp;amp; A15 &amp;amp; Q0&lt;br /&gt;
          #   nRESET &amp;amp; nIOWR &amp;amp; Q0 );&lt;br /&gt;
 &lt;br /&gt;
 Q1     = (  D7ANDD6 &amp;amp; nRESET &amp;amp; D1 &amp;amp; !A15 &amp;amp; !nIOWR&lt;br /&gt;
          #   !D7ANDD6 &amp;amp; nRESET &amp;amp; Q1&lt;br /&gt;
          #   nRESET &amp;amp; A15 &amp;amp; Q1&lt;br /&gt;
          #   nRESET &amp;amp; nIOWR &amp;amp; Q1 );&lt;br /&gt;
 &lt;br /&gt;
 Q2     = (  D7ANDD6 &amp;amp; nRESET &amp;amp; D2 &amp;amp; !A15 &amp;amp; !nIOWR&lt;br /&gt;
          #   !D7ANDD6 &amp;amp; nRESET &amp;amp; Q2&lt;br /&gt;
          #   nRESET &amp;amp; A15 &amp;amp; Q2&lt;br /&gt;
          #   nRESET &amp;amp; nIOWR &amp;amp; Q2 );&lt;br /&gt;
 &lt;br /&gt;
 nCAS0     = (  nCAS&lt;br /&gt;
             #   RAMDIS &amp;amp; !nCPU &amp;amp; nCAS0&lt;br /&gt;
             #   !A15 &amp;amp; A14 &amp;amp; !nCPU &amp;amp; Q2 &amp;amp; nCAS0&lt;br /&gt;
             #   A15 &amp;amp; A14 &amp;amp; !nCPU &amp;amp; Q0 &amp;amp; !Q2 &amp;amp; nCAS0&lt;br /&gt;
             #   !nCPU &amp;amp; !Q0 &amp;amp; Q1 &amp;amp; !Q2 &amp;amp; nCAS0&lt;br /&gt;
             #   !nCAS1 );&lt;br /&gt;
 &lt;br /&gt;
 nCAS1     = !(  !RAMDIS &amp;amp; !nCAS &amp;amp; !A15 &amp;amp; A14 &amp;amp; !nCPU &amp;amp; Q2 &amp;amp; nCAS0&lt;br /&gt;
             #   !RAMDIS &amp;amp; !nCAS &amp;amp; A15 &amp;amp; A14 &amp;amp; !nCPU &amp;amp; Q0 &amp;amp; !Q2 &amp;amp; nCAS0&lt;br /&gt;
             #   !RAMDIS &amp;amp; !nCAS &amp;amp; !nCPU &amp;amp; !Q0 &amp;amp; Q1 &amp;amp; !Q2 &amp;amp; nCAS0&lt;br /&gt;
             #   !nCAS &amp;amp; !A15 &amp;amp; A14 &amp;amp; Q2 &amp;amp; nCAS0 &amp;amp; !nCAS1&lt;br /&gt;
             #   !nCAS &amp;amp; A15 &amp;amp; A14 &amp;amp; Q0 &amp;amp; !Q2 &amp;amp; nCAS0 &amp;amp; !nCAS1&lt;br /&gt;
             #   !nCAS &amp;amp; !Q0 &amp;amp; Q1 &amp;amp; !Q2 &amp;amp; nCAS0 &amp;amp; !nCAS1 );&lt;br /&gt;
&lt;br /&gt;
[[File:CPC6128.JED]] : Fixed version of  Amstrad 40031 GAL replacement&lt;br /&gt;
&lt;br /&gt;
[[File:CPC6128.hex]] : Fixed version of  Amstrad 40031 GAL replacement, Hex Intel version.&lt;br /&gt;
&lt;br /&gt;
== Initial replacement equation (Porchy) ==&lt;br /&gt;
&lt;br /&gt;
The following equations were worked out by Porchy (member on CPCWiki Forum). These can be used to program replacements:&lt;br /&gt;
&lt;br /&gt;
 A15OUT = (!X2 &amp;amp; !X1 &amp;amp; A14&lt;br /&gt;
      # !X3 &amp;amp; !X2 &amp;amp; A14&lt;br /&gt;
      # A15); &lt;br /&gt;
 &lt;br /&gt;
 !X1 = (!A15 &amp;amp; D7ANDD6 &amp;amp; RESET &amp;amp; !IOWR &amp;amp; D0&lt;br /&gt;
      # !X1 &amp;amp; RESET &amp;amp; IOWR&lt;br /&gt;
      # !X1 &amp;amp; !D7ANDD6 &amp;amp; RESET&lt;br /&gt;
      # !X1 &amp;amp; A15 &amp;amp; RESET);&lt;br /&gt;
 &lt;br /&gt;
 !X2 = (!A15 &amp;amp; D7ANDD6 &amp;amp; RESET &amp;amp; !IOWR &amp;amp; D1&lt;br /&gt;
      # !X2 &amp;amp; RESET &amp;amp; IOWR&lt;br /&gt;
      # !X2 &amp;amp; !D7ANDD6 &amp;amp; RESET&lt;br /&gt;
      # !X2 &amp;amp; A15 &amp;amp; RESET);&lt;br /&gt;
 &lt;br /&gt;
 !X3 = (!A15 &amp;amp; D7ANDD6 &amp;amp; RESET &amp;amp; !IOWR &amp;amp; D2&lt;br /&gt;
      # !X3 &amp;amp; RESET &amp;amp; IOWR&lt;br /&gt;
      # !X3 &amp;amp; !D7ANDD6 &amp;amp; RESET&lt;br /&gt;
      # !X3 &amp;amp; A15 &amp;amp; RESET);&lt;br /&gt;
 &lt;br /&gt;
 !CAS1 = (X3 &amp;amp; !X1 &amp;amp; A15 &amp;amp; A14 &amp;amp; !NCAS &amp;amp; !RAMDIS &amp;amp; !CPU &amp;amp; CAS0&lt;br /&gt;
      # !X3 &amp;amp; !A15 &amp;amp; A14 &amp;amp; !NCAS &amp;amp; !RAMDIS &amp;amp; !CPU &amp;amp; CAS0&lt;br /&gt;
      # X3 &amp;amp; !X2 &amp;amp; X1 &amp;amp; !NCAS &amp;amp; !RAMDIS &amp;amp; !CPU &amp;amp; CAS0&lt;br /&gt;
      # !NCAS &amp;amp; CAS0 &amp;amp; !CAS1);&lt;br /&gt;
 &lt;br /&gt;
 !CAS0 = (X3 &amp;amp; X2 &amp;amp; X1 &amp;amp; !NCAS &amp;amp; !RAMDIS &amp;amp; CAS1&lt;br /&gt;
      # X3 &amp;amp; !X1 &amp;amp; !A15 &amp;amp; !NCAS &amp;amp; !RAMDIS &amp;amp; CAS1&lt;br /&gt;
      # !X3 &amp;amp; A15 &amp;amp; !NCAS &amp;amp; !RAMDIS &amp;amp; CAS1&lt;br /&gt;
      # !X1 &amp;amp; !A14 &amp;amp; !NCAS &amp;amp; !RAMDIS &amp;amp; CAS1&lt;br /&gt;
      # !X3 &amp;amp; !A14 &amp;amp; !NCAS &amp;amp; !RAMDIS &amp;amp; CAS1&lt;br /&gt;
      # !NCAS &amp;amp; !RAMDIS &amp;amp; CPU &amp;amp; CAS1&lt;br /&gt;
      # !NCAS &amp;amp; !CAS0 &amp;amp; CAS1);&lt;br /&gt;
 &lt;br /&gt;
 A14OUT = (A15 &amp;amp; A14&lt;br /&gt;
      # !X1 &amp;amp; A14&lt;br /&gt;
      # X3 &amp;amp; A14);&lt;br /&gt;
&lt;br /&gt;
[[File:Amstrad6128.jed]] Original JED File posted on CPCWiki Forum&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
*For RAM banking settings see Register 3 of the [[Gate Array]] (Note that no settings are stored in the gate array, but the PAL and gate array share an I/O port address).&lt;br /&gt;
&lt;br /&gt;
*[[Gate Array and ASIC Pin-Outs]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Datasheet]]&lt;/div&gt;</summary>
		<author><name>Bread80wiki</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=PAL16L8&amp;diff=108453</id>
		<title>PAL16L8</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=PAL16L8&amp;diff=108453"/>
				<updated>2022-03-18T13:21:14Z</updated>
		
		<summary type="html">&lt;p&gt;Bread80wiki: Added link to pin-out&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The CPC6128 second bank of 64K RAM is controlled by a PAL 16L8 chip. It has the Amstrad part number 40031.&lt;br /&gt;
&lt;br /&gt;
On the CPC 6128 schematic, it is top centre: [http://www.cpcwiki.eu/imgs/4/4a/CPC6128_Schematic.png CPC6128 Schematic] however the X inputs aren't distinguished.&lt;br /&gt;
&lt;br /&gt;
== Fixed version (Gerald) ==&lt;br /&gt;
Original version from Porchy suffer from a bad handling of the RAMDIS signal. This cause screen artefact when accessing an external extension RAM like XMEM.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 A14OUT     = !(  !A14&lt;br /&gt;
              #   !A15 &amp;amp; !Q0 &amp;amp; Q2 );&lt;br /&gt;
 &lt;br /&gt;
 A15OUT     = !(  !A15 &amp;amp; !A14&lt;br /&gt;
              #   !A15 &amp;amp; !Q1&lt;br /&gt;
              #   !A15 &amp;amp; !Q0 &amp;amp; !Q2 );&lt;br /&gt;
 &lt;br /&gt;
 Q0     = (  D7ANDD6 &amp;amp; nRESET &amp;amp; D0 &amp;amp; !A15 &amp;amp; !nIOWR&lt;br /&gt;
          #   !D7ANDD6 &amp;amp; nRESET &amp;amp; Q0&lt;br /&gt;
          #   nRESET &amp;amp; A15 &amp;amp; Q0&lt;br /&gt;
          #   nRESET &amp;amp; nIOWR &amp;amp; Q0 );&lt;br /&gt;
 &lt;br /&gt;
 Q1     = (  D7ANDD6 &amp;amp; nRESET &amp;amp; D1 &amp;amp; !A15 &amp;amp; !nIOWR&lt;br /&gt;
          #   !D7ANDD6 &amp;amp; nRESET &amp;amp; Q1&lt;br /&gt;
          #   nRESET &amp;amp; A15 &amp;amp; Q1&lt;br /&gt;
          #   nRESET &amp;amp; nIOWR &amp;amp; Q1 );&lt;br /&gt;
 &lt;br /&gt;
 Q2     = (  D7ANDD6 &amp;amp; nRESET &amp;amp; D2 &amp;amp; !A15 &amp;amp; !nIOWR&lt;br /&gt;
          #   !D7ANDD6 &amp;amp; nRESET &amp;amp; Q2&lt;br /&gt;
          #   nRESET &amp;amp; A15 &amp;amp; Q2&lt;br /&gt;
          #   nRESET &amp;amp; nIOWR &amp;amp; Q2 );&lt;br /&gt;
 &lt;br /&gt;
 nCAS0     = (  nCAS&lt;br /&gt;
             #   RAMDIS &amp;amp; !nCPU &amp;amp; nCAS0&lt;br /&gt;
             #   !A15 &amp;amp; A14 &amp;amp; !nCPU &amp;amp; Q2 &amp;amp; nCAS0&lt;br /&gt;
             #   A15 &amp;amp; A14 &amp;amp; !nCPU &amp;amp; Q0 &amp;amp; !Q2 &amp;amp; nCAS0&lt;br /&gt;
             #   !nCPU &amp;amp; !Q0 &amp;amp; Q1 &amp;amp; !Q2 &amp;amp; nCAS0&lt;br /&gt;
             #   !nCAS1 );&lt;br /&gt;
 &lt;br /&gt;
 nCAS1     = !(  !RAMDIS &amp;amp; !nCAS &amp;amp; !A15 &amp;amp; A14 &amp;amp; !nCPU &amp;amp; Q2 &amp;amp; nCAS0&lt;br /&gt;
             #   !RAMDIS &amp;amp; !nCAS &amp;amp; A15 &amp;amp; A14 &amp;amp; !nCPU &amp;amp; Q0 &amp;amp; !Q2 &amp;amp; nCAS0&lt;br /&gt;
             #   !RAMDIS &amp;amp; !nCAS &amp;amp; !nCPU &amp;amp; !Q0 &amp;amp; Q1 &amp;amp; !Q2 &amp;amp; nCAS0&lt;br /&gt;
             #   !nCAS &amp;amp; !A15 &amp;amp; A14 &amp;amp; Q2 &amp;amp; nCAS0 &amp;amp; !nCAS1&lt;br /&gt;
             #   !nCAS &amp;amp; A15 &amp;amp; A14 &amp;amp; Q0 &amp;amp; !Q2 &amp;amp; nCAS0 &amp;amp; !nCAS1&lt;br /&gt;
             #   !nCAS &amp;amp; !Q0 &amp;amp; Q1 &amp;amp; !Q2 &amp;amp; nCAS0 &amp;amp; !nCAS1 );&lt;br /&gt;
&lt;br /&gt;
[[File:CPC6128.JED]] : Fixed version of  Amstrad 40031 GAL replacement&lt;br /&gt;
&lt;br /&gt;
[[File:CPC6128.hex]] : Fixed version of  Amstrad 40031 GAL replacement, Hex Intel version.&lt;br /&gt;
&lt;br /&gt;
== Initial replacement equation (Porchy) ==&lt;br /&gt;
&lt;br /&gt;
The following equations were worked out by Porchy (member on CPCWiki Forum). These can be used to program replacements:&lt;br /&gt;
&lt;br /&gt;
 A15OUT = (!X2 &amp;amp; !X1 &amp;amp; A14&lt;br /&gt;
      # !X3 &amp;amp; !X2 &amp;amp; A14&lt;br /&gt;
      # A15); &lt;br /&gt;
 &lt;br /&gt;
 !X1 = (!A15 &amp;amp; D7ANDD6 &amp;amp; RESET &amp;amp; !IOWR &amp;amp; D0&lt;br /&gt;
      # !X1 &amp;amp; RESET &amp;amp; IOWR&lt;br /&gt;
      # !X1 &amp;amp; !D7ANDD6 &amp;amp; RESET&lt;br /&gt;
      # !X1 &amp;amp; A15 &amp;amp; RESET);&lt;br /&gt;
 &lt;br /&gt;
 !X2 = (!A15 &amp;amp; D7ANDD6 &amp;amp; RESET &amp;amp; !IOWR &amp;amp; D1&lt;br /&gt;
      # !X2 &amp;amp; RESET &amp;amp; IOWR&lt;br /&gt;
      # !X2 &amp;amp; !D7ANDD6 &amp;amp; RESET&lt;br /&gt;
      # !X2 &amp;amp; A15 &amp;amp; RESET);&lt;br /&gt;
 &lt;br /&gt;
 !X3 = (!A15 &amp;amp; D7ANDD6 &amp;amp; RESET &amp;amp; !IOWR &amp;amp; D2&lt;br /&gt;
      # !X3 &amp;amp; RESET &amp;amp; IOWR&lt;br /&gt;
      # !X3 &amp;amp; !D7ANDD6 &amp;amp; RESET&lt;br /&gt;
      # !X3 &amp;amp; A15 &amp;amp; RESET);&lt;br /&gt;
 &lt;br /&gt;
 !CAS1 = (X3 &amp;amp; !X1 &amp;amp; A15 &amp;amp; A14 &amp;amp; !NCAS &amp;amp; !RAMDIS &amp;amp; !CPU &amp;amp; CAS0&lt;br /&gt;
      # !X3 &amp;amp; !A15 &amp;amp; A14 &amp;amp; !NCAS &amp;amp; !RAMDIS &amp;amp; !CPU &amp;amp; CAS0&lt;br /&gt;
      # X3 &amp;amp; !X2 &amp;amp; X1 &amp;amp; !NCAS &amp;amp; !RAMDIS &amp;amp; !CPU &amp;amp; CAS0&lt;br /&gt;
      # !NCAS &amp;amp; CAS0 &amp;amp; !CAS1);&lt;br /&gt;
 &lt;br /&gt;
 !CAS0 = (X3 &amp;amp; X2 &amp;amp; X1 &amp;amp; !NCAS &amp;amp; !RAMDIS &amp;amp; CAS1&lt;br /&gt;
      # X3 &amp;amp; !X1 &amp;amp; !A15 &amp;amp; !NCAS &amp;amp; !RAMDIS &amp;amp; CAS1&lt;br /&gt;
      # !X3 &amp;amp; A15 &amp;amp; !NCAS &amp;amp; !RAMDIS &amp;amp; CAS1&lt;br /&gt;
      # !X1 &amp;amp; !A14 &amp;amp; !NCAS &amp;amp; !RAMDIS &amp;amp; CAS1&lt;br /&gt;
      # !X3 &amp;amp; !A14 &amp;amp; !NCAS &amp;amp; !RAMDIS &amp;amp; CAS1&lt;br /&gt;
      # !NCAS &amp;amp; !RAMDIS &amp;amp; CPU &amp;amp; CAS1&lt;br /&gt;
      # !NCAS &amp;amp; !CAS0 &amp;amp; CAS1);&lt;br /&gt;
 &lt;br /&gt;
 A14OUT = (A15 &amp;amp; A14&lt;br /&gt;
      # !X1 &amp;amp; A14&lt;br /&gt;
      # X3 &amp;amp; A14);&lt;br /&gt;
&lt;br /&gt;
[[File:Amstrad6128.jed]] Original JED File posted on CPCWiki Forum&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
For RAM banking settings see Register 3 of the [[Gate Array]] (Note that no settings are stored in the gate array, but the PAL and gate array share an I/O port address).&lt;br /&gt;
&lt;br /&gt;
[[Gate Array and ASIC Pin-Outs]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Datasheet]]&lt;/div&gt;</summary>
		<author><name>Bread80wiki</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=PAL16L8&amp;diff=108452</id>
		<title>PAL16L8</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=PAL16L8&amp;diff=108452"/>
				<updated>2022-03-18T13:06:15Z</updated>
		
		<summary type="html">&lt;p&gt;Bread80wiki: Added link to gate array page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The CPC6128 second bank of 64K RAM is controlled by a PAL 16L8 chip. It has the Amstrad part number 40031.&lt;br /&gt;
&lt;br /&gt;
On the CPC 6128 schematic, it is top centre: [http://www.cpcwiki.eu/imgs/4/4a/CPC6128_Schematic.png CPC6128 Schematic] however the X inputs aren't distinguished.&lt;br /&gt;
&lt;br /&gt;
== Fixed version (Gerald) ==&lt;br /&gt;
Original version from Porchy suffer from a bad handling of the RAMDIS signal. This cause screen artefact when accessing an external extension RAM like XMEM.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 A14OUT     = !(  !A14&lt;br /&gt;
              #   !A15 &amp;amp; !Q0 &amp;amp; Q2 );&lt;br /&gt;
 &lt;br /&gt;
 A15OUT     = !(  !A15 &amp;amp; !A14&lt;br /&gt;
              #   !A15 &amp;amp; !Q1&lt;br /&gt;
              #   !A15 &amp;amp; !Q0 &amp;amp; !Q2 );&lt;br /&gt;
 &lt;br /&gt;
 Q0     = (  D7ANDD6 &amp;amp; nRESET &amp;amp; D0 &amp;amp; !A15 &amp;amp; !nIOWR&lt;br /&gt;
          #   !D7ANDD6 &amp;amp; nRESET &amp;amp; Q0&lt;br /&gt;
          #   nRESET &amp;amp; A15 &amp;amp; Q0&lt;br /&gt;
          #   nRESET &amp;amp; nIOWR &amp;amp; Q0 );&lt;br /&gt;
 &lt;br /&gt;
 Q1     = (  D7ANDD6 &amp;amp; nRESET &amp;amp; D1 &amp;amp; !A15 &amp;amp; !nIOWR&lt;br /&gt;
          #   !D7ANDD6 &amp;amp; nRESET &amp;amp; Q1&lt;br /&gt;
          #   nRESET &amp;amp; A15 &amp;amp; Q1&lt;br /&gt;
          #   nRESET &amp;amp; nIOWR &amp;amp; Q1 );&lt;br /&gt;
 &lt;br /&gt;
 Q2     = (  D7ANDD6 &amp;amp; nRESET &amp;amp; D2 &amp;amp; !A15 &amp;amp; !nIOWR&lt;br /&gt;
          #   !D7ANDD6 &amp;amp; nRESET &amp;amp; Q2&lt;br /&gt;
          #   nRESET &amp;amp; A15 &amp;amp; Q2&lt;br /&gt;
          #   nRESET &amp;amp; nIOWR &amp;amp; Q2 );&lt;br /&gt;
 &lt;br /&gt;
 nCAS0     = (  nCAS&lt;br /&gt;
             #   RAMDIS &amp;amp; !nCPU &amp;amp; nCAS0&lt;br /&gt;
             #   !A15 &amp;amp; A14 &amp;amp; !nCPU &amp;amp; Q2 &amp;amp; nCAS0&lt;br /&gt;
             #   A15 &amp;amp; A14 &amp;amp; !nCPU &amp;amp; Q0 &amp;amp; !Q2 &amp;amp; nCAS0&lt;br /&gt;
             #   !nCPU &amp;amp; !Q0 &amp;amp; Q1 &amp;amp; !Q2 &amp;amp; nCAS0&lt;br /&gt;
             #   !nCAS1 );&lt;br /&gt;
 &lt;br /&gt;
 nCAS1     = !(  !RAMDIS &amp;amp; !nCAS &amp;amp; !A15 &amp;amp; A14 &amp;amp; !nCPU &amp;amp; Q2 &amp;amp; nCAS0&lt;br /&gt;
             #   !RAMDIS &amp;amp; !nCAS &amp;amp; A15 &amp;amp; A14 &amp;amp; !nCPU &amp;amp; Q0 &amp;amp; !Q2 &amp;amp; nCAS0&lt;br /&gt;
             #   !RAMDIS &amp;amp; !nCAS &amp;amp; !nCPU &amp;amp; !Q0 &amp;amp; Q1 &amp;amp; !Q2 &amp;amp; nCAS0&lt;br /&gt;
             #   !nCAS &amp;amp; !A15 &amp;amp; A14 &amp;amp; Q2 &amp;amp; nCAS0 &amp;amp; !nCAS1&lt;br /&gt;
             #   !nCAS &amp;amp; A15 &amp;amp; A14 &amp;amp; Q0 &amp;amp; !Q2 &amp;amp; nCAS0 &amp;amp; !nCAS1&lt;br /&gt;
             #   !nCAS &amp;amp; !Q0 &amp;amp; Q1 &amp;amp; !Q2 &amp;amp; nCAS0 &amp;amp; !nCAS1 );&lt;br /&gt;
&lt;br /&gt;
[[File:CPC6128.JED]] : Fixed version of  Amstrad 40031 GAL replacement&lt;br /&gt;
&lt;br /&gt;
[[File:CPC6128.hex]] : Fixed version of  Amstrad 40031 GAL replacement, Hex Intel version.&lt;br /&gt;
&lt;br /&gt;
== Initial replacement equation (Porchy) ==&lt;br /&gt;
&lt;br /&gt;
The following equations were worked out by Porchy (member on CPCWiki Forum). These can be used to program replacements:&lt;br /&gt;
&lt;br /&gt;
 A15OUT = (!X2 &amp;amp; !X1 &amp;amp; A14&lt;br /&gt;
      # !X3 &amp;amp; !X2 &amp;amp; A14&lt;br /&gt;
      # A15); &lt;br /&gt;
 &lt;br /&gt;
 !X1 = (!A15 &amp;amp; D7ANDD6 &amp;amp; RESET &amp;amp; !IOWR &amp;amp; D0&lt;br /&gt;
      # !X1 &amp;amp; RESET &amp;amp; IOWR&lt;br /&gt;
      # !X1 &amp;amp; !D7ANDD6 &amp;amp; RESET&lt;br /&gt;
      # !X1 &amp;amp; A15 &amp;amp; RESET);&lt;br /&gt;
 &lt;br /&gt;
 !X2 = (!A15 &amp;amp; D7ANDD6 &amp;amp; RESET &amp;amp; !IOWR &amp;amp; D1&lt;br /&gt;
      # !X2 &amp;amp; RESET &amp;amp; IOWR&lt;br /&gt;
      # !X2 &amp;amp; !D7ANDD6 &amp;amp; RESET&lt;br /&gt;
      # !X2 &amp;amp; A15 &amp;amp; RESET);&lt;br /&gt;
 &lt;br /&gt;
 !X3 = (!A15 &amp;amp; D7ANDD6 &amp;amp; RESET &amp;amp; !IOWR &amp;amp; D2&lt;br /&gt;
      # !X3 &amp;amp; RESET &amp;amp; IOWR&lt;br /&gt;
      # !X3 &amp;amp; !D7ANDD6 &amp;amp; RESET&lt;br /&gt;
      # !X3 &amp;amp; A15 &amp;amp; RESET);&lt;br /&gt;
 &lt;br /&gt;
 !CAS1 = (X3 &amp;amp; !X1 &amp;amp; A15 &amp;amp; A14 &amp;amp; !NCAS &amp;amp; !RAMDIS &amp;amp; !CPU &amp;amp; CAS0&lt;br /&gt;
      # !X3 &amp;amp; !A15 &amp;amp; A14 &amp;amp; !NCAS &amp;amp; !RAMDIS &amp;amp; !CPU &amp;amp; CAS0&lt;br /&gt;
      # X3 &amp;amp; !X2 &amp;amp; X1 &amp;amp; !NCAS &amp;amp; !RAMDIS &amp;amp; !CPU &amp;amp; CAS0&lt;br /&gt;
      # !NCAS &amp;amp; CAS0 &amp;amp; !CAS1);&lt;br /&gt;
 &lt;br /&gt;
 !CAS0 = (X3 &amp;amp; X2 &amp;amp; X1 &amp;amp; !NCAS &amp;amp; !RAMDIS &amp;amp; CAS1&lt;br /&gt;
      # X3 &amp;amp; !X1 &amp;amp; !A15 &amp;amp; !NCAS &amp;amp; !RAMDIS &amp;amp; CAS1&lt;br /&gt;
      # !X3 &amp;amp; A15 &amp;amp; !NCAS &amp;amp; !RAMDIS &amp;amp; CAS1&lt;br /&gt;
      # !X1 &amp;amp; !A14 &amp;amp; !NCAS &amp;amp; !RAMDIS &amp;amp; CAS1&lt;br /&gt;
      # !X3 &amp;amp; !A14 &amp;amp; !NCAS &amp;amp; !RAMDIS &amp;amp; CAS1&lt;br /&gt;
      # !NCAS &amp;amp; !RAMDIS &amp;amp; CPU &amp;amp; CAS1&lt;br /&gt;
      # !NCAS &amp;amp; !CAS0 &amp;amp; CAS1);&lt;br /&gt;
 &lt;br /&gt;
 A14OUT = (A15 &amp;amp; A14&lt;br /&gt;
      # !X1 &amp;amp; A14&lt;br /&gt;
      # X3 &amp;amp; A14);&lt;br /&gt;
&lt;br /&gt;
[[File:Amstrad6128.jed]] Original JED File posted on CPCWiki Forum&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
For RAM banking settings see Register 3 of the [[Gate_Array|Gate Array]] (Note that no settings are stored in the gate array, but the PAL and gate array share an I/O port address).&lt;br /&gt;
&lt;br /&gt;
[[Category:Datasheet]]&lt;/div&gt;</summary>
		<author><name>Bread80wiki</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=Gate_Array&amp;diff=108451</id>
		<title>Gate Array</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=Gate_Array&amp;diff=108451"/>
				<updated>2022-03-18T12:57:27Z</updated>
		
		<summary type="html">&lt;p&gt;Bread80wiki: /* Register 3 - RAM Banking */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Gate Array &lt;br /&gt;
&lt;br /&gt;
Also designated as Video gate Array (VGA, not to be confused with IBM PC compatible graphic card spec).&lt;br /&gt;
&lt;br /&gt;
== Introduction  ==&lt;br /&gt;
&lt;br /&gt;
The gate array is a specially designed chip exclusively for use in the Amstrad CPC and was designed by Amstrad plc. &lt;br /&gt;
&lt;br /&gt;
In the CPC+ system, the functions of the Gate-Array are integrated into a single [[ASIC|ASIC]]. When the ASIC is &amp;quot;locked&amp;quot;, the extra features are not available and the ASIC operates the same as the Gate-Array in the CPC allowing programs written for the CPC to work on the Plus without modification. The ASIC must be &amp;quot;un-locked&amp;quot; to access the new features. &lt;br /&gt;
&lt;br /&gt;
In the [[KC Compact]] system, the functions of the Gate-Array are &amp;quot;emulated&amp;quot; in TTL chips, [[CIO Overview|CIO]], and its color translation EPROM.&lt;br /&gt;
&lt;br /&gt;
In the &amp;quot;cost-down&amp;quot; version of the CPC6128, the functions of the Gate-Array are integrated into a ASIC. &lt;br /&gt;
&lt;br /&gt;
The Gate Array is described here is the one found in a standard CPC.&lt;br /&gt;
&lt;br /&gt;
== What does it do? ==&lt;br /&gt;
&lt;br /&gt;
The Gate Array is responsible for the display (colour palette, resolution, horizontal and vertical sync), interrupt generation and memory arrangement. &lt;br /&gt;
&lt;br /&gt;
== Controlling the Gate Array  ==&lt;br /&gt;
&lt;br /&gt;
The gate array is controlled by I/O. The gate array is selected when bit 15 of the I/O port address is set to &amp;quot;0&amp;quot; and bit 14 of the I/O port address is set to &amp;quot;1&amp;quot;. The values of the other bits are ignored. However, to avoid conflict with other devices in the system, these bits should be set to &amp;quot;1&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
The recommended I/O port address is &amp;amp;amp;7Fxx. &lt;br /&gt;
&lt;br /&gt;
The function to be performed is selected by writing data to the Gate-Array, bit 7 and 6 of the data define the function selected (see table below). It is not possible to read from the Gate-Array. &lt;br /&gt;
&lt;br /&gt;
{|{{Prettytable|width: 700px; font-size: 2em;}}&lt;br /&gt;
|-&lt;br /&gt;
|''Data Bit 7''||''Data Bit 6''||''Function''&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 0 || Select pen&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 1 || Select colour for selected pen&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 0 || Select screen mode, ROM configuration and interrupt control&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 1 || RAM Memory Management (note 1)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Note  =====&lt;br /&gt;
&lt;br /&gt;
This function is not available in the Gate-Array, but is performed by a device at the same I/O port address location. In the CPC464, CPC664 and KC compact, this function is performed in a memory-expansion (e.g. Dk'Tronics 64K RAM Expansion), if this expansion is not present then the function is not available. In the CPC6128, this function is performed by a [[PAL16L8|PAL]] located on the main PCB, or a memory-expansion. In the 464+ and 6128+ this function is performed by the ASIC or a memory expansion. Please read the document on RAM management for more information.&lt;br /&gt;
&lt;br /&gt;
== Register 0 - Palette Index (Pen selection) ==&lt;br /&gt;
&lt;br /&gt;
When bit 7 and bit 6 are set to &amp;quot;0&amp;quot;, the remaining bits determine which pen is to have its colour changed. When bit 4 is set to &amp;quot;0&amp;quot;, bits 3 to 0 define which pen is to be selected. When bit 4 is set to &amp;quot;1&amp;quot;, the value contained in bits 3-0 is ignored and the border is selected. &lt;br /&gt;
&lt;br /&gt;
The pen remains selected until another is chosen. &lt;br /&gt;
&lt;br /&gt;
Each mode has a fixed number of pens. Mode 0 has 16 pens, mode 1 has 4 pens and mode 2 has 2 pens. &lt;br /&gt;
&lt;br /&gt;
=== Summary  ===&lt;br /&gt;
&lt;br /&gt;
{|{{Prettytable|width: 700px; font-size: 2em;}}&lt;br /&gt;
|-&lt;br /&gt;
| ''Bit'' || ''Value'' || ''Function''&lt;br /&gt;
|-&lt;br /&gt;
| 7 || 0 || rowspan=&amp;quot;2&amp;quot; | Gate Array function &amp;quot;Pen Selection&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 6 || 0 &lt;br /&gt;
|-&lt;br /&gt;
| 5 || - || not used&lt;br /&gt;
|-&lt;br /&gt;
| 4 || 1 || Select border&lt;br /&gt;
|-&lt;br /&gt;
| 3 || x || rowspan=&amp;quot;4&amp;quot; | Ignored&lt;br /&gt;
|-&lt;br /&gt;
| 2 || x&lt;br /&gt;
|-&lt;br /&gt;
| 1 || x&lt;br /&gt;
|-&lt;br /&gt;
| 0 || x&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{|{{Prettytable|width: 700px; font-size: 2em;}}&lt;br /&gt;
|-&lt;br /&gt;
| ''Bit'' || ''Value'' || ''Function''&lt;br /&gt;
|-&lt;br /&gt;
| 7 || 0 || rowspan=&amp;quot;2&amp;quot; | Gate Array function &amp;quot;Pen Selection&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 6 || 0&lt;br /&gt;
|-&lt;br /&gt;
| 5 || - || not used&lt;br /&gt;
|-&lt;br /&gt;
| 4 || 0 || Select pen&lt;br /&gt;
|-&lt;br /&gt;
| 3 || x || rowspan=&amp;quot;4&amp;quot; | Pen number&lt;br /&gt;
|-&lt;br /&gt;
| 2 || x&lt;br /&gt;
|-&lt;br /&gt;
| 1 || x&lt;br /&gt;
|-&lt;br /&gt;
| 0 || x&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Register 1 - Palette Data (Colour selection) ==&lt;br /&gt;
&lt;br /&gt;
Once the pen has been selected its colour can then be changed. Bits 4 to 0 specify the hardware colour number from the hardware colour palette. &lt;br /&gt;
&lt;br /&gt;
Even though there is provision for 32 colours, only 27 are possible. The remaining colours are duplicates of those already in the colour palette. &lt;br /&gt;
&lt;br /&gt;
=== Summary  ===&lt;br /&gt;
&lt;br /&gt;
{|{{Prettytable|width: 700px; font-size: 2em;}}&lt;br /&gt;
|-&lt;br /&gt;
| ''Bit'' || ''Value'' || ''Function''&lt;br /&gt;
|-&lt;br /&gt;
| 7 || 0 || rowspan=&amp;quot;2&amp;quot; | Gate Array function &amp;quot;Colour selection&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 6 || 1&lt;br /&gt;
|-&lt;br /&gt;
| 5 || - || not used&lt;br /&gt;
|-&lt;br /&gt;
| 4 || x || rowspan=&amp;quot;5&amp;quot; | Colour number x&lt;br /&gt;
|-&lt;br /&gt;
| 3 || x &lt;br /&gt;
|-&lt;br /&gt;
| 2 || x &lt;br /&gt;
|-&lt;br /&gt;
| 1 || x&lt;br /&gt;
|-&lt;br /&gt;
| 0 || x&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Register 2 - Select screen mode and ROM configuration ==&lt;br /&gt;
&lt;br /&gt;
This is a general purpose register responsible for the [[Video modes|screen mode]] and the ROM configuration. &lt;br /&gt;
&lt;br /&gt;
=== Screen mode selection  ===&lt;br /&gt;
&lt;br /&gt;
The function of bits 1 and 0 is to define the screen mode. The settings for bits 1 and 0 and the corresponding screen mode are given in the table below. &lt;br /&gt;
&lt;br /&gt;
{|{{Prettytable|width: 700px; font-size: 2em;}}&lt;br /&gt;
|-&lt;br /&gt;
| ''Bit 1'' || ''Bit 0'' || ''Screen mode''&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 0 || Mode 0, 160x200 resolution, 16 colours&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 1 || Mode 1, 320x200 resolution, 4 colours&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 0 || Mode 2, 640x200 resolution, 2 colours&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 1 || Mode 3, 160x200 resolution, 4 colours (undocumented)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Mode 3 is not official. From the combinations possible, we can see that 4 modes can be defined, although the Amstrad only has 3. Mode 3 is similar to mode 0, because it has the same resolution, but it is limited to only 4 colours. Mode 3 is not supported by the [[KC Compact]] (which outputs black in Mode 3).&lt;br /&gt;
&lt;br /&gt;
Mode changing is synchronised with HSYNC. If the mode is changed, it will take effect from the next HSYNC.&lt;br /&gt;
&lt;br /&gt;
=== ROM configuration selection  ===&lt;br /&gt;
&lt;br /&gt;
Bit 2 is used to enable or disable the lower ROM area. The lower ROM area occupies memory addresses &amp;amp;amp;0000-&amp;amp;amp;3fff and is used to access the operating system ROM. When the lower ROM area is is enabled, reading from &amp;amp;amp;0000-&amp;amp;amp;3FFF will return data in the ROM. When a value is written to &amp;amp;amp;0000-&amp;amp;amp;3FFF, it will be written to the RAM underneath the RAM. When it is disabled, data read from &amp;amp;amp;0000-&amp;amp;amp;3FFF will return the data in the RAM. &lt;br /&gt;
&lt;br /&gt;
Similarly, bit 3 controls enabling or disabling of the upper ROM area. The upper ROM area occupies memory addressess &amp;amp;amp;C000-&amp;amp;amp;FFFF and is BASIC or any expansion ROMs which may be plugged into a ROM board/box. See the document on [[Upper ROM Bank Number|upper rom selection]] for more details. When the upper ROM area enabled, reading from &amp;amp;amp;c000-&amp;amp;amp;ffff, will return data in the ROM. When data is written to &amp;amp;amp;c000-&amp;amp;amp;FFFF, it will be written to the RAM at the same address as the ROM. When the upper ROM area is disabled, and data is read from &amp;amp;amp;c000-&amp;amp;amp;ffff it will be the data in the RAM. &lt;br /&gt;
&lt;br /&gt;
Bit 4 controls the interrupt generation. It can be used to delay interrupts. See the document on interrupt generation for more information. &lt;br /&gt;
&lt;br /&gt;
=== Summary  ===&lt;br /&gt;
&lt;br /&gt;
{|{{Prettytable|width: 700px; font-size: 2em;}}&lt;br /&gt;
|-&lt;br /&gt;
| ''Bit'' || ''Value'' || ''Function''&lt;br /&gt;
|-&lt;br /&gt;
| 7 || 1 || rowspan=&amp;quot;2&amp;quot; | Gate Array function&lt;br /&gt;
|-&lt;br /&gt;
| 6 || 0 &lt;br /&gt;
|-&lt;br /&gt;
| 5 || - || not used&lt;br /&gt;
|-&lt;br /&gt;
| 4 || x || Interrupt generation control&lt;br /&gt;
|-&lt;br /&gt;
| 3 || x || 1=Upper ROM area disable, 0=Upper ROM area enable&lt;br /&gt;
|-&lt;br /&gt;
| 2 || x || 1=Lower ROM area disable, 0=Lower ROM area enable&lt;br /&gt;
|-&lt;br /&gt;
| 1 || x || rowspan=&amp;quot;2&amp;quot; | Screen Mode slection&lt;br /&gt;
|-&lt;br /&gt;
| 0 || x&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Register 3 - RAM Banking ==&lt;br /&gt;
&lt;br /&gt;
This register exists only in CPCs with 128K RAM (like the CPC 6128, or CPCs with [[Standard Memory Expansions]]). Note: In the CPC 6128, the register is a separate [[PAL16L8|PAL]] that assists the Gate Array chip.&lt;br /&gt;
&lt;br /&gt;
{|{{Prettytable|width: 700px; font-size: 2em;}}&lt;br /&gt;
|-&lt;br /&gt;
| ''Bit'' || ''Value'' || ''Function''&lt;br /&gt;
|-&lt;br /&gt;
| 7 || 1 || rowspan=&amp;quot;2&amp;quot; | Gate Array function 3&lt;br /&gt;
|-&lt;br /&gt;
| 6 || 1 &lt;br /&gt;
|-&lt;br /&gt;
| 5 || b || rowspan=&amp;quot;3&amp;quot; |64K bank number (0..7); always 0 on an unexpanded CPC6128, 0-7 on [[Standard Memory Expansions]]&lt;br /&gt;
|-&lt;br /&gt;
| 4 || b&lt;br /&gt;
|-&lt;br /&gt;
| 3 || b&lt;br /&gt;
|-&lt;br /&gt;
| 2 || x || rowspan=&amp;quot;3&amp;quot; | RAM Config (0..7)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || x&lt;br /&gt;
|-&lt;br /&gt;
| 0 || x&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The 3bit RAM Config value is used to access the second 64K of the total 128K RAM that is built into the CPC 6128 or the additional 64K-512K of standard memory expansions. These contain up to eight 64K ram banks, which are selected with bit 3-5. A standard CPC 6128 only contains bank 0. Normally the register is set to 0, so that only the first 64K RAM are used (identical to the CPC 464 and 664 models). The register can be used to select between the following eight predefined configurations only:&lt;br /&gt;
&lt;br /&gt;
  -Address-     0      1      2      3      4      5      6      7&lt;br /&gt;
  0000-3FFF   RAM_0  RAM_0  RAM_4  RAM_0  RAM_0  RAM_0  RAM_0  RAM_0&lt;br /&gt;
  4000-7FFF   RAM_1  RAM_1  RAM_5  RAM_3  RAM_4  RAM_5  RAM_6  RAM_7&lt;br /&gt;
  8000-BFFF   RAM_2  RAM_2  RAM_6  RAM_2  RAM_2  RAM_2  RAM_2  RAM_2&lt;br /&gt;
  C000-FFFF   RAM_3  RAM_7  RAM_7  RAM_7  RAM_3  RAM_3  RAM_3  RAM_3&lt;br /&gt;
&lt;br /&gt;
The Video RAM is always located in the first 64K, VRAM is in no way affected by this register.&lt;br /&gt;
&lt;br /&gt;
== Programming the Gate Array - Examples  ==&lt;br /&gt;
&lt;br /&gt;
Defining the colours, &amp;lt;br&amp;gt;Setting pen 0 to Bright White. &lt;br /&gt;
&amp;lt;pre&amp;gt;LD BC,7F00&amp;amp;nbsp;;Gate Array port&lt;br /&gt;
LD A,%00000000+0&amp;amp;nbsp;;Pen number (and Gate Array function)&lt;br /&gt;
OUT (C),A&amp;amp;nbsp;;Send pen number&lt;br /&gt;
LD A,%01000000+11&amp;amp;nbsp;;Pen colour (and Gate Array function)&lt;br /&gt;
OUT (C),A&amp;amp;nbsp;;Send it&lt;br /&gt;
RET&lt;br /&gt;
&lt;br /&gt;
Setting the mode and ROM configuration, &lt;br /&gt;
Mode 2, upper and lower ROM disabled.&lt;br /&gt;
&lt;br /&gt;
LD BC,7F00&amp;amp;nbsp;;Gate array port&lt;br /&gt;
LD A,%10000000+%00001110&amp;amp;nbsp;;Mode and ROM selection (and Gate Array function)&lt;br /&gt;
OUT (C),A&amp;amp;nbsp;;Send it&lt;br /&gt;
RET&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Misc ===&lt;br /&gt;
&lt;br /&gt;
The hardware colour number is different to the colour range used by the firmware, so a conversion chart is provided for the corresponding firmware/hardware colour values and the corresponding colour name. &lt;br /&gt;
&lt;br /&gt;
=== Note ===&lt;br /&gt;
&lt;br /&gt;
The firmware keeps track of the colours it is using. Every VSYNC (assuming interrupts are enabled) the firmware sets the colours. This enables the user to have flashing colours. If the user selects a new colour using the gate array, the new colour will flash temporarily and then return to its original colour. This is due to the firmware resetting the colour. When using the firmware, use its routines to select the colour, and the colour will remain.&lt;br /&gt;
&lt;br /&gt;
Example: [For whatever reason, this example does NOT refer to the above firmware stuff]&lt;br /&gt;
&amp;lt;pre&amp;gt;ld bc,7f00+1&amp;amp;nbsp;;Gate array function (set pen)&lt;br /&gt;
;and pen number&lt;br /&gt;
out (c),c&lt;br /&gt;
ld bc,7f00&amp;amp;nbsp;;41 &lt;br /&gt;
;Gate array function (set colour)&lt;br /&gt;
;and colour number&lt;br /&gt;
out (c),c&lt;br /&gt;
ret&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Palette R,G,B definitions ==&lt;br /&gt;
&lt;br /&gt;
There are 27 colours which are generated from red, green and blue mixed in different quantities. There are 3 levels of red, 3 levels of green and 3 levels of blue, and these can be thought of as off/no colour, half-on/half-colour, and on/full-colour. &lt;br /&gt;
&lt;br /&gt;
To display a CPC image you will need to use a analogue monitor with a composite sync. &lt;br /&gt;
&lt;br /&gt;
=== Palette sorted by Hardware Colour Numbers ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;FCK__ShowTableBorders&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| ''Hardware Number||Firmware Number|| ''Colour Name'' &lt;br /&gt;
| ''R&amp;amp;nbsp;%'' || ''G&amp;amp;nbsp;%'' || ''B&amp;amp;nbsp;%'' || ''Colour''&lt;br /&gt;
|-&lt;br /&gt;
|  0 (40h) || 13   || White         || 50|| 50|| 50|| bgcolor=&amp;quot;#808080&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
|  1 (41h) || (13) || White         || 50|| 50|| 50|| bgcolor=&amp;quot;#808080&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
|  2 (42h) || 19   || Sea Green     ||  0||100|| 50|| bgcolor=&amp;quot;#00ff80&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
|  3 (43h) || 25   || Pastel Yellow ||100||100|| 50|| bgcolor=&amp;quot;#ffff80&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
|  4 (44h) || 1    || Blue          ||  0||  0|| 50|| bgcolor=&amp;quot;#000080&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
|  5 (45h) || 7    || Purple        ||100||  0|| 50|| bgcolor=&amp;quot;#ff0080&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
|  6 (46h) || 10   || Cyan          ||  0|| 50|| 50|| bgcolor=&amp;quot;#008080&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
|  7 (47h) || 16   || Pink          ||100|| 50|| 50|| bgcolor=&amp;quot;#ff8080&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
|  8 (48h) || (7)  || Purple        ||100||  0|| 50|| bgcolor=&amp;quot;#ff0080&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
|  9 (49h) || (25) || Pastel Yellow ||100||100|| 50|| bgcolor=&amp;quot;#ffff80&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 10 (4Ah) || 24   || Bright Yellow ||100||100||  0|| bgcolor=&amp;quot;#ffff00&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 11 (4Bh) || 26   || Bright White  ||100||100||100|| bgcolor=&amp;quot;#ffffff&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 12 (4Ch) || 6    || Bright Red    ||100||  0||  0|| bgcolor=&amp;quot;#ff0000&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 13 (4Dh) || 8    || Bright Magenta||100||  0||100|| bgcolor=&amp;quot;#ff00ff&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 14 (4Eh) || 15   || Orange        ||100|| 50||  0|| bgcolor=&amp;quot;#ff8000&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 15 (4Fh) || 17   || Pastel Magenta||100|| 50||100|| bgcolor=&amp;quot;#ff80ff&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 16 (50h) || (1)  || Blue          ||  0||  0|| 50|| bgcolor=&amp;quot;#000080&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 17 (51h) || (19) || Sea Green     ||  0||100|| 50|| bgcolor=&amp;quot;#00ff80&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 18 (52h) || 18   || Bright Green  ||  0||100||  0|| bgcolor=&amp;quot;#00ff00&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 19 (53h) || 20   || Bright Cyan   ||  0||100||100|| bgcolor=&amp;quot;#00ffff&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 20 (54h) || 0    || Black         ||  0||  0||  0|| bgcolor=&amp;quot;#000000&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| 21 (55h) || 2    || Bright Blue   ||  0||  0||100|| bgcolor=&amp;quot;#0000ff&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 22 (56h) || 9    || Green         ||  0|| 50||  0|| bgcolor=&amp;quot;#008000&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 23 (57h) || 11   || Sky Blue      ||  0|| 50||100|| bgcolor=&amp;quot;#0080ff&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 24 (58h) || 4    || Magenta       || 50||  0|| 50|| bgcolor=&amp;quot;#800080&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 25 (59h) || 22   || Pastel Green  || 50||100|| 50|| bgcolor=&amp;quot;#80ff80&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 26 (5Ah) || 21   || Lime          || 50||100||  0|| bgcolor=&amp;quot;#80ff00&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 27 (5Bh) || 23   || Pastel Cyan   || 50||100||100|| bgcolor=&amp;quot;#80ffff&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 28 (5Ch) || 3    || Red           || 50||  0||  0|| bgcolor=&amp;quot;#800000&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 29 (5Dh) || 5    || Mauve         || 50||  0||100|| bgcolor=&amp;quot;#8000ff&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 30 (5Eh) || 12   || Yellow        || 50|| 50||  0|| bgcolor=&amp;quot;#808000&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 31 (5Fh) || 14   || Pastel Blue   || 50|| 50||100|| bgcolor=&amp;quot;#8080ff&amp;quot; | &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Palette sorted by Firmware Colour Numbers ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;FCK__ShowTableBorders&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| ''Firmware Number'' || ''Hardware Number'' || ''Colour Name'' &lt;br /&gt;
| ''R&amp;amp;nbsp;%'' || ''G&amp;amp;nbsp;%'' || ''B&amp;amp;nbsp;%'' || ''Colour''&lt;br /&gt;
|-&lt;br /&gt;
| 0|| 54h          ||Black          ||  0||  0||  0||bgcolor=&amp;quot;#000000&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
| 1|| 44h (or 50h) ||Blue           ||  0||  0|| 50||bgcolor=&amp;quot;#000080&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
| 2|| 55h          ||Bright Blue    ||  0||  0||100||bgcolor=&amp;quot;#0000ff&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
| 3|| 5Ch          ||Red            || 50||  0||  0||bgcolor=&amp;quot;#800000&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
| 4|| 58h          ||Magenta        || 50||  0|| 50||bgcolor=&amp;quot;#800080&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
| 5|| 5Dh          ||Mauve          || 50||  0||100||bgcolor=&amp;quot;#8000ff&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
| 6|| 4Ch          ||Bright Red     ||100||  0||  0||bgcolor=&amp;quot;#ff0000&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
| 7|| 45h (or 48h) ||Purple         ||100||  0|| 50||bgcolor=&amp;quot;#ff0080&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
| 8|| 4Dh          ||Bright Magenta ||100||  0||100||bgcolor=&amp;quot;#ff00ff&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
| 9|| 56h          ||Green          ||  0|| 50||  0||bgcolor=&amp;quot;#008000&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|10|| 46h          ||Cyan           ||  0|| 50|| 50||bgcolor=&amp;quot;#008080&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|11|| 57h          ||Sky Blue       ||  0|| 50||100||bgcolor=&amp;quot;#0080ff&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|12|| 5Eh          ||Yellow         || 50|| 50||  0||bgcolor=&amp;quot;#808000&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|13|| 40h (or 41h) ||White          || 50|| 50|| 50||bgcolor=&amp;quot;#808080&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|14|| 5Fh          ||Pastel Blue    || 50|| 50||100||bgcolor=&amp;quot;#8080ff&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|15|| 4Eh          ||Orange         ||100|| 50||  0||bgcolor=&amp;quot;#ff8000&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|16|| 47h          ||Pink           ||100|| 50|| 50||bgcolor=&amp;quot;#ff8080&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|17|| 4Fh          ||Pastel Magenta ||100|| 50||100||bgcolor=&amp;quot;#ff80ff&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|18|| 52h          ||Bright Green   ||  0||100||  0||bgcolor=&amp;quot;#00ff00&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|19|| 42h (or 51h) ||Sea Green      ||  0||100|| 50||bgcolor=&amp;quot;#00ff80&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|20|| 53h          ||Bright Cyan    ||  0||100||100||bgcolor=&amp;quot;#00ffff&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|21|| 5Ah          ||Lime           || 50||100||  0||bgcolor=&amp;quot;#80ff00&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|22|| 59h          ||Pastel Green   || 50||100|| 50||bgcolor=&amp;quot;#80ff80&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|23|| 5Bh          ||Pastel Cyan    || 50||100||100||bgcolor=&amp;quot;#80ffff&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|24|| 4Ah          ||Bright Yellow  ||100||100||  0||bgcolor=&amp;quot;#ffff00&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|25|| 43h (or 49h) ||Pastel Yellow  ||100||100|| 50||bgcolor=&amp;quot;#ffff80&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|26|| 4Bh          ||Bright White   ||100||100||100||bgcolor=&amp;quot;#ffffff&amp;quot;|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Intensities ===&lt;br /&gt;
&lt;br /&gt;
The 0%, 50%, and 100% values in the above tables are &amp;quot;should-be&amp;quot; values. However, the real hardware doesn't exactly match that intensities. The actual intensities depend on the luminance mixing (R,G,B tied together via resistors), on chipset (classic CPC, or newer ASIC ones), and on the load applied by external hardware (Monitor, or TV set).&lt;br /&gt;
* [[CPC Palette]] - some more details&lt;br /&gt;
&lt;br /&gt;
=== To calculate the colour value ===&lt;br /&gt;
&lt;br /&gt;
'''Red''' &lt;br /&gt;
&lt;br /&gt;
0% =&amp;amp;gt; do not add anything &lt;br /&gt;
&lt;br /&gt;
50% =&amp;amp;gt; add 3 &lt;br /&gt;
&lt;br /&gt;
100% =&amp;amp;gt; add 6 &lt;br /&gt;
&lt;br /&gt;
'''Green''' &lt;br /&gt;
&lt;br /&gt;
0% =&amp;amp;gt; do not add anything &lt;br /&gt;
&lt;br /&gt;
50% =&amp;amp;gt; add 9 &lt;br /&gt;
&lt;br /&gt;
100% =&amp;amp;gt; add 18 &lt;br /&gt;
&lt;br /&gt;
'''Blue''' &lt;br /&gt;
&lt;br /&gt;
0% =&amp;amp;gt; do not add anything &lt;br /&gt;
&lt;br /&gt;
50% =&amp;amp;gt; add 1 &lt;br /&gt;
&lt;br /&gt;
100% =&amp;amp;gt; add 2 &lt;br /&gt;
&lt;br /&gt;
=== Green Screen Colours ===&lt;br /&gt;
&lt;br /&gt;
On a green screen (where all colours are shades of green), the colours (in the software/firmware colours), are in order of increasing intensity. Black is very dark, and white is bright green, and colour 13 is a medium green. (Thanks to [[Mark Rison|Mark Rison]] for this information)&lt;br /&gt;
&lt;br /&gt;
== Pictures ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:40010_am2_metal.jpg|40010 GA Metal Layer&lt;br /&gt;
Image:40010_am2_acid.jpg|40010 GA with Metal Layer removed&lt;br /&gt;
Image:40226_am4_metal.jpg|40226 PreASIC Metal Layer&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[[Gate Array and ASIC Pin-Outs]]&lt;br /&gt;
&lt;br /&gt;
*[[Video modes]] : for other informations on colours and pixels.&lt;br /&gt;
&lt;br /&gt;
*[[CRTC]] : the other video stuff.&lt;br /&gt;
*[[ASIC]] : for Plus users&lt;br /&gt;
&lt;br /&gt;
*[[Synchronising with the CRTC and display]] : technical details on the relationship between Gate Array and CRTC.&lt;br /&gt;
&lt;br /&gt;
[[Category:Hardware]][[Category:Programming]][[Category:Datasheet]][[Category:Graphic]][[Category:CPC Internal Components]][[Category:Electronic Component]]&lt;/div&gt;</summary>
		<author><name>Bread80wiki</name></author>	</entry>

	</feed>