<?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=Apollo</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=Apollo"/>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php/Special:Contributions/Apollo"/>
		<updated>2026-08-28T09:57:00Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.25.1</generator>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=Programming:Sin/Cos_calculation&amp;diff=42034</id>
		<title>Programming:Sin/Cos calculation</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=Programming:Sin/Cos_calculation&amp;diff=42034"/>
				<updated>2010-02-24T14:15:57Z</updated>
		
		<summary type="html">&lt;p&gt;Apollo: Updated dead link to CORDIC algorithm&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Calculation using lookup table ==&lt;br /&gt;
&lt;br /&gt;
The calculation is based on a table from 0-90° and on values which are multiplicated by 32767. If you want to get the correct sinus value, you have to divide them by 32767 (you can use 32768 - not a big precision lost, but you can use bit shifting).&lt;br /&gt;
&lt;br /&gt;
'''Input:''' HL = ''angle in degree (0-360°)''&lt;br /&gt;
&lt;br /&gt;
'''Output:''' HL = ''SIN(HL) * 32767'', A = ''sign flag (0 if positive, &amp;amp;FF if negative)''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
INTSIN:	LD BC, 360&lt;br /&gt;
LOOP1:	BIT 7, H	;angle positive?&lt;br /&gt;
	JR Z, LOOP2	;-&amp;gt; yes, ok&lt;br /&gt;
	ADD HL, BC	;else add 360&lt;br /&gt;
	JR LOOP1	;repeat until H&amp;gt;0&lt;br /&gt;
		&lt;br /&gt;
LOOP2:	OR A		;reset carry&lt;br /&gt;
	SBC HL, BC	;angle - 360&lt;br /&gt;
	JR NC, LOOP2	;-&amp;gt;ok if &amp;gt;=0&lt;br /&gt;
	ADD HL, BC	;else correct value&lt;br /&gt;
		&lt;br /&gt;
	LD E, L		;angle to DE&lt;br /&gt;
	LD D, H&lt;br /&gt;
	LD BC, 90&lt;br /&gt;
	XOR A		;sign flag = 0&lt;br /&gt;
	SBC HL, BC	;angle &amp;lt; 90?&lt;br /&gt;
	JR NC, TEST2	;-&amp;gt; no&lt;br /&gt;
	EX DE, HL	;else HL = angle&lt;br /&gt;
	JR GETTAB	;get table value&lt;br /&gt;
		&lt;br /&gt;
TEST2:	SBC HL, BC	;angle &amp;lt; 180?&lt;br /&gt;
	JR NC, TEST3	;-&amp;gt; no&lt;br /&gt;
	LD HL, 180	;else HL =&lt;br /&gt;
	OR A		;180 - angle&lt;br /&gt;
	SBC HL, DE&lt;br /&gt;
	JR GETTAB	;get table value&lt;br /&gt;
		&lt;br /&gt;
TEST3:	DEC A		;sign flag &amp;amp;FF&lt;br /&gt;
	SBC HL, BC	;angle &amp;lt; 270?&lt;br /&gt;
	JR NC, TEST4	;-&amp;gt; no&lt;br /&gt;
	EX DE, HL	;else HL =&lt;br /&gt;
	OR A		;clear carry&lt;br /&gt;
	SBC HL, BC	;angle - 180&lt;br /&gt;
	SBC HL, BC&lt;br /&gt;
	JR GETTAB	;get table value&lt;br /&gt;
		&lt;br /&gt;
TEST4:	LD HL, 360	;if angle &amp;gt;=270&lt;br /&gt;
	SBC HL, DE	;HL = 360 - angle&lt;br /&gt;
		&lt;br /&gt;
GETTAB:	ADD HL, HL	;angle * 2&lt;br /&gt;
	LD DE, SINTAB	;+ start table&lt;br /&gt;
	ADD HL, DE	;= tableaddress&lt;br /&gt;
	LD E, (HL)	;lowbyte to E&lt;br /&gt;
	INC HL&lt;br /&gt;
	LD D, (HL)	;highbyte to D&lt;br /&gt;
	EX DE, HL	;result to HL&lt;br /&gt;
	RET&lt;br /&gt;
&lt;br /&gt;
;*****&lt;br /&gt;
;Sinustable for angles between 0..90 degrees&lt;br /&gt;
;*****&lt;br /&gt;
;Values*32767&lt;br /&gt;
&lt;br /&gt;
SINTAB:&lt;br /&gt;
DW 0,572,1144,1715,2286&lt;br /&gt;
DW 2856,3425,3993,4560,5126&lt;br /&gt;
DW 5690,6252,6813,7371,7927&lt;br /&gt;
DW 8481,9032,9580,10126,10668&lt;br /&gt;
DW 11207,11743,12275,12803,13328&lt;br /&gt;
DW 13848,14364,14876,15383,15886&lt;br /&gt;
DW 16384,16876,17364,17846,18323&lt;br /&gt;
DW 18794,19260,19720,20173,20621&lt;br /&gt;
DW 21062,21497,21925,22347,22762&lt;br /&gt;
DW 23170,23571,23964,24351,24730&lt;br /&gt;
DW 25101,25465,25821,26169,26509&lt;br /&gt;
DW 26841,27165,27481,27788,28087&lt;br /&gt;
DW 28377,28659,28932,29196,29451&lt;br /&gt;
DW 29697,29934,30162,30381,30591&lt;br /&gt;
DW 30791,30982,31163,31335,31498&lt;br /&gt;
DW 31650,31794,31927,32051,32165&lt;br /&gt;
DW 32269,32364,32448,32523,32587&lt;br /&gt;
DW 32642,32687,32722,32747,32762&lt;br /&gt;
DW 32767&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Calculation using the CORDIC algorithm ==&lt;br /&gt;
&lt;br /&gt;
Andre Adrian wrote a paper about how to implement the calculation of sin/cos on Z80 CPUs. You can read the paper and find the implementation on his homepage http://www.andreadrian.de/oldcpu/Z80_number_cruncher.html .&lt;br /&gt;
[[Category:Programming]]&lt;/div&gt;</summary>
		<author><name>Apollo</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=Emulators&amp;diff=41964</id>
		<title>Emulators</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=Emulators&amp;diff=41964"/>
				<updated>2010-02-23T05:44:26Z</updated>
		
		<summary type="html">&lt;p&gt;Apollo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Operating Systems  =&lt;br /&gt;
&lt;br /&gt;
== Acorn RISC OS  ==&lt;br /&gt;
*[[nottherejusttesting|just a test]]&lt;br /&gt;
*[[!CPC|!CPC]] &lt;br /&gt;
*[[!CPCemu|!CPCemu]]&lt;br /&gt;
&lt;br /&gt;
== Amiga  ==&lt;br /&gt;
*[[A-CPC|A-CPC]] &lt;br /&gt;
*[[Ami-CPC|Ami-CPC]] &lt;br /&gt;
*[[Emu-CPC|Emu-CPC]]&lt;br /&gt;
&lt;br /&gt;
== Amsdos ==&lt;br /&gt;
*[[ZXM|ZXM]]&lt;br /&gt;
&lt;br /&gt;
== Dos  ==&lt;br /&gt;
*[[Archimedes|Archimedes]] &lt;br /&gt;
*[[CPCE|CPCE]] &lt;br /&gt;
*[[CPCEmu|CPCEmu]] &lt;br /&gt;
*[http://nocash.emubase.de/cpc.htm No$Cpc]&lt;br /&gt;
*[[CPCEMU (RWCPC)|RWCPC]]&lt;br /&gt;
&lt;br /&gt;
== Java  ==&lt;br /&gt;
*[[Arnold jr.|Arnold jr.]] &lt;br /&gt;
*[[JEMU|JEMU]]&lt;br /&gt;
*[[Javacpc|Javacpc]]&lt;br /&gt;
*[[Webcpc|Webcpc]]&lt;br /&gt;
&lt;br /&gt;
== MacOS  ==&lt;br /&gt;
*[[Arnold|Arnold]] &lt;br /&gt;
*[[CPCplusplus|CPC++]]&lt;br /&gt;
*[http://www.wincpc.ch/index.php?topic=projects-maccpc MacCPC]&lt;br /&gt;
&lt;br /&gt;
== SunOS / Solaris  ==&lt;br /&gt;
*[[CPCplusplus|CPC++]]&lt;br /&gt;
&lt;br /&gt;
== Unix / Linux  ==&lt;br /&gt;
*[[Arnold|Arnold]] &lt;br /&gt;
*[[CaPriCe|CaPriCe]] &lt;br /&gt;
*[[CPCplusplus|CPC++]] &lt;br /&gt;
*[[CPC4X|CPC4X]] &lt;br /&gt;
*[[CPCemu]]&lt;br /&gt;
*[[Roland Emulator|Roland]] &lt;br /&gt;
*[[XCPC|XCPC]]&lt;br /&gt;
&lt;br /&gt;
== Windows  ==&lt;br /&gt;
*[[Arnimedes|Arnimedes]] &lt;br /&gt;
*[[Arnold|Arnold]] &lt;br /&gt;
*[[CaPriCe|CaPriCe]] &lt;br /&gt;
*[[CoPaCabana|CoPaCabana]]&lt;br /&gt;
*[[CPC-Em|CPC-Em]] &lt;br /&gt;
*[[CPCAlive]]&lt;br /&gt;
*[[CPCE|CPCE]] &lt;br /&gt;
*[[CPCemu]]&lt;br /&gt;
*[[CPE|CPE]] &lt;br /&gt;
*[[No$Cpc]]&lt;br /&gt;
*[[PC-CPC|PC-CPC]] &lt;br /&gt;
*[[Roland Emulator|Roland]]&lt;br /&gt;
*[[VirtualCPC|VirtualCPC]] &lt;br /&gt;
*[[WinApe|WinApe]] &lt;br /&gt;
*[[WinCPC|WinCPC]] &lt;br /&gt;
*[[Yage|Yage]]&lt;br /&gt;
&lt;br /&gt;
= Hardware  =&lt;br /&gt;
&lt;br /&gt;
*[[CPC TREX|CPC TREX]] (TurboCPC core running on a terasIC T-Rex C1) &lt;br /&gt;
*[[C-ONE|C-ONE]] (TurboCPC core running on the C-One reconfigurable computer)&lt;br /&gt;
&lt;br /&gt;
= Consoles / Handhelds  =&lt;br /&gt;
&lt;br /&gt;
== Gamepark GP32 / GP2X  ==&lt;br /&gt;
&lt;br /&gt;
*[[Caprice|CapriceGP2x]] (GP2X) &lt;br /&gt;
*[[Caprice|GP2X-CAP32]] (GP2X) &lt;br /&gt;
*[http://david.dantoine.org/contenido/4/ Pituka (GP32)]&lt;br /&gt;
&lt;br /&gt;
== Dingoo A320 ==&lt;br /&gt;
&lt;br /&gt;
*[http://david.dantoine.org/comentario/noticia/80/ Pituka (Dingoo A320 Linux / Dingux)]&lt;br /&gt;
&lt;br /&gt;
== Microsoft XBOX  ==&lt;br /&gt;
&lt;br /&gt;
*[[Arnold|ArnoldX]]&lt;br /&gt;
&lt;br /&gt;
== Sega Dreamcast  ==&lt;br /&gt;
&lt;br /&gt;
*[[CPCast]]&lt;br /&gt;
*[[DreamCPC|DreamCPC]]&lt;br /&gt;
&lt;br /&gt;
== Sony PSP  ==&lt;br /&gt;
&lt;br /&gt;
*[[PSPCap32|PSPCap32]]&lt;br /&gt;
&lt;br /&gt;
== Nintendo DS  ==&lt;br /&gt;
&lt;br /&gt;
*[[AmeDS|AmeDS]] &lt;br /&gt;
*[[CrocoDS|CrocoDS]]&lt;br /&gt;
&lt;br /&gt;
== Nintendo Wii ==&lt;br /&gt;
&lt;br /&gt;
*[[Wiituka]]&lt;br /&gt;
&lt;br /&gt;
= Mobile phones / PDAs  =&lt;br /&gt;
&lt;br /&gt;
== PalmOS  ==&lt;br /&gt;
&lt;br /&gt;
*[[CoPaCabana|CoPaCabana]]&lt;br /&gt;
&lt;br /&gt;
== Symbian  ==&lt;br /&gt;
&lt;br /&gt;
*[[S60-CPC|S60-CPC]]&lt;br /&gt;
&lt;br /&gt;
== Windows Mobile  ==&lt;br /&gt;
&lt;br /&gt;
*[[CaPriCe|PocketCaprice]] [http://www.pocketcult.com/home.php]&lt;br /&gt;
&lt;br /&gt;
= Emulation Tools  =&lt;br /&gt;
&lt;br /&gt;
*[[ConvImgCPC|ConvImgCPC]] &lt;br /&gt;
*[[CPCDiskXP|CPCDiskXP]] &lt;br /&gt;
*[[CPCGamesCD-CPCLoader|CPCGamesCD-CPCLoader]] &lt;br /&gt;
*[[CPCTapeXP|CPCTapeXP]] &lt;br /&gt;
*[[CPRTools|CPRTools]] &lt;br /&gt;
*[[Dsktools|Dsktools]] &lt;br /&gt;
*[[ManageDSK|ManageDSK]] &lt;br /&gt;
*[[WriteDSK|WriteDSK]]&lt;br /&gt;
&lt;br /&gt;
= Emulator Detection =&lt;br /&gt;
&lt;br /&gt;
*[[Emulator_IDs|Emulator IDs]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Emulator|Emulator]]&lt;/div&gt;</summary>
		<author><name>Apollo</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=Emulators&amp;diff=41963</id>
		<title>Emulators</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=Emulators&amp;diff=41963"/>
				<updated>2010-02-23T05:23:50Z</updated>
		
		<summary type="html">&lt;p&gt;Apollo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Operating Systems  =&lt;br /&gt;
&lt;br /&gt;
== Acorn RISC OS  ==&lt;br /&gt;
*[[nottherejusttesting|just a test]]&lt;br /&gt;
*[[!CPC|!CPC]] &lt;br /&gt;
*[[!CPCemu|!CPCemu]]&lt;br /&gt;
&lt;br /&gt;
== Amiga  ==&lt;br /&gt;
*[[A-CPC|A-CPC]] &lt;br /&gt;
*[[Ami-CPC|Ami-CPC]] &lt;br /&gt;
*[[Emu-CPC|Emu-CPC]]&lt;br /&gt;
&lt;br /&gt;
== Amsdos ==&lt;br /&gt;
*[[ZXM|ZXM]]&lt;br /&gt;
&lt;br /&gt;
== Dos  ==&lt;br /&gt;
*[[Archimedes|Archimedes]] &lt;br /&gt;
*[[CPCE|CPCE]] &lt;br /&gt;
*[[CPCEmu|CPCEmu]] &lt;br /&gt;
*[http://nocash.emubase.de/cpc.htm No$Cpc]&lt;br /&gt;
*[[CPCEMU (RWCPC)|RWCPC]]&lt;br /&gt;
&lt;br /&gt;
== Java  ==&lt;br /&gt;
*[[Arnold jr.|Arnold jr.]] &lt;br /&gt;
*[[JEMU|JEMU]]&lt;br /&gt;
*[[Javacpc|Javacpc]]&lt;br /&gt;
*[[Webcpc|Webcpc]]&lt;br /&gt;
&lt;br /&gt;
== MacOS  ==&lt;br /&gt;
*[[Arnold|Arnold]] &lt;br /&gt;
*[[CPCplusplus|CPC++]]&lt;br /&gt;
*[http://www.wincpc.ch/index.php?topic=projects-maccpc MacCPC]&lt;br /&gt;
&lt;br /&gt;
== SunOS / Solaris  ==&lt;br /&gt;
*[[CPCplusplus|CPC++]]&lt;br /&gt;
&lt;br /&gt;
== Unix / Linux  ==&lt;br /&gt;
*[[Arnold|Arnold]] &lt;br /&gt;
*[[CaPriCe|CaPriCe]] &lt;br /&gt;
*[[CPCplusplus|CPC++]] &lt;br /&gt;
*[[CPC4X|CPC4X]] &lt;br /&gt;
*[[CPCemu]]&lt;br /&gt;
*[[Roland Emulator|Roland]] &lt;br /&gt;
*[[XCPC|XCPC]]&lt;br /&gt;
&lt;br /&gt;
== Windows  ==&lt;br /&gt;
*[[Arnimedes|Arnimedes]] &lt;br /&gt;
*[[Arnold|Arnold]] &lt;br /&gt;
*[[CaPriCe|CaPriCe]] &lt;br /&gt;
*[[CoPaCabana|CoPaCabana]]&lt;br /&gt;
*[[CPC-Em|CPC-Em]] &lt;br /&gt;
*[[CPCAlive]]&lt;br /&gt;
*[[CPCE|CPCE]] &lt;br /&gt;
*[[CPCemu]]&lt;br /&gt;
*[[CPE|CPE]] &lt;br /&gt;
*[[No$Cpc]]&lt;br /&gt;
*[[PC-CPC|PC-CPC]] &lt;br /&gt;
*[[Roland Emulator|Roland]]&lt;br /&gt;
*[[VirtualCPC|VirtualCPC]] &lt;br /&gt;
*[[WinApe|WinApe]] &lt;br /&gt;
*[[WinCPC|WinCPC]] &lt;br /&gt;
*[[Yage|Yage]]&lt;br /&gt;
&lt;br /&gt;
= Hardware  =&lt;br /&gt;
&lt;br /&gt;
*[[CPC TREX|CPC TREX]] (TurboCPC core running on a terasIC T-Rex C1) &lt;br /&gt;
*[[C-ONE|C-ONE]] (TurboCPC core running on the C-One reconfigurable computer)&lt;br /&gt;
&lt;br /&gt;
= Consoles / Handhelds  =&lt;br /&gt;
&lt;br /&gt;
== Gamepark GP32 / GP2X  ==&lt;br /&gt;
&lt;br /&gt;
*[[Caprice|CapriceGP2x]] (GP2X) &lt;br /&gt;
*[[Caprice|GP2X-CAP32]] (GP2X) &lt;br /&gt;
*[http://david.dantoine.org/contenido/4/ Pituka (GP32)]&lt;br /&gt;
&lt;br /&gt;
== Dingoo A320 ==&lt;br /&gt;
&lt;br /&gt;
*[http://david.dantoine.org/comentario/noticia/80/ Pituka (Dingoo A320 Linux / Dingux)]&lt;br /&gt;
&lt;br /&gt;
== Microsoft XBOX  ==&lt;br /&gt;
&lt;br /&gt;
*[[Arnold|ArnoldX]]&lt;br /&gt;
&lt;br /&gt;
== Sega Dreamcast  ==&lt;br /&gt;
&lt;br /&gt;
*[[CPCast]]&lt;br /&gt;
*[[DreamCPC|DreamCPC]]&lt;br /&gt;
&lt;br /&gt;
== Sony PSP  ==&lt;br /&gt;
&lt;br /&gt;
*[[PSPCap32|PSPCap32]]&lt;br /&gt;
&lt;br /&gt;
== Nintendo DS  ==&lt;br /&gt;
&lt;br /&gt;
*[[AmeDS|AmeDS]] &lt;br /&gt;
*[[CrocoDS|CrocoDS]]&lt;br /&gt;
&lt;br /&gt;
== Nintendo Wii ==&lt;br /&gt;
&lt;br /&gt;
*[[Wiituka]]&lt;br /&gt;
&lt;br /&gt;
= Mobile phones / PDAs  =&lt;br /&gt;
&lt;br /&gt;
== PalmOS  ==&lt;br /&gt;
&lt;br /&gt;
*[[CoPaCabana|CoPaCabana]]&lt;br /&gt;
&lt;br /&gt;
== Symbian  ==&lt;br /&gt;
&lt;br /&gt;
*[[S60-CPC|S60-CPC]]&lt;br /&gt;
&lt;br /&gt;
== Windows Mobile  ==&lt;br /&gt;
&lt;br /&gt;
*[[CaPriCe|PocketCaprice]] [http://www.pocketcult.com/home.php]&lt;br /&gt;
&lt;br /&gt;
= Emulation Tools  =&lt;br /&gt;
&lt;br /&gt;
*[[ConvImgCPC|ConvImgCPC]] &lt;br /&gt;
*[[CPCDiskXP|CPCDiskXP]] &lt;br /&gt;
*[[CPCGamesCD-CPCLoader|CPCGamesCD-CPCLoader]] &lt;br /&gt;
*[[CPCTapeXP|CPCTapeXP]] &lt;br /&gt;
*[[CPRTools|CPRTools]] &lt;br /&gt;
*[[Dsktools|Dsktools]] &lt;br /&gt;
*[[ManageDSK|ManageDSK]] &lt;br /&gt;
*[[WriteDSK|WriteDSK]]&lt;br /&gt;
&lt;br /&gt;
= Emulation Detection =&lt;br /&gt;
&lt;br /&gt;
*[[Emulator IDs|Emulator_IDs]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Emulator|Emulator]]&lt;/div&gt;</summary>
		<author><name>Apollo</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=Emulator_IDs&amp;diff=41962</id>
		<title>Emulator IDs</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=Emulator_IDs&amp;diff=41962"/>
				<updated>2010-02-23T05:19:19Z</updated>
		
		<summary type="html">&lt;p&gt;Apollo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Some CPC emulators use Port &amp;amp;amp;FEFE to provide a method to identify a specific CPC emulator. CPC programs could use this ID to detect an emulator and change some of their behaviour (e.g. changing graphic effechts which will not work on an emulator or using special emulator-specific features). Reading from this port returns the Emulator-ID or &amp;amp;amp;FF on the real CPC and on emulators which do not provide this feature. &lt;br /&gt;
&lt;br /&gt;
== List of known Emulator-IDs  ==&lt;br /&gt;
&amp;lt;pre&amp;gt;- #99: WinCPC&lt;br /&gt;
- #A0: JavaCPC&lt;br /&gt;
- #C0: C-One Normal&lt;br /&gt;
- #C1: C-One Turbo&lt;br /&gt;
- #C2: TREX Normal&lt;br /&gt;
- #C3: TREX Turbo&lt;br /&gt;
- #CE: CPCE&lt;br /&gt;
- #FF: Real CPC&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
&amp;lt;b&amp;gt;NOTE: It should be noted that the value #FF is just valid on a bare CPC (not plus!) and any extensions connected can change this!&amp;lt;/b&amp;gt;&lt;br /&gt;
[[Category:Emulator]] [[Category:Programming]]&lt;/div&gt;</summary>
		<author><name>Apollo</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=Gate_Array&amp;diff=29784</id>
		<title>Gate Array</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=Gate_Array&amp;diff=29784"/>
				<updated>2009-02-20T20:51:11Z</updated>
		
		<summary type="html">&lt;p&gt;Apollo: Rollback as undo swallowed all Prettytables &amp;amp; fixed table &amp;quot;Select pen&amp;quot; bit 4=0&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Gate Array&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]]. 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 Computer|KC compact]] system, the functions of the Gate-Array are &amp;quot;emulated&amp;quot; in [[TTL logic]] and by the [[Zilog Z8536 CIO]].&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, as it is 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;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;
|''Bit 7''||''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 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;
==== 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;
&lt;br /&gt;
{|{{Prettytable|width: 700px; font-size: 2em;}}&lt;br /&gt;
|''Bit''||''Value''||''Function'' &lt;br /&gt;
|-&lt;br /&gt;
|7||0||rowspan=2|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=4|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;
&lt;br /&gt;
&lt;br /&gt;
{|{{Prettytable|width: 700px; font-size: 2em;}}&lt;br /&gt;
|''Bit''||''Value''||''Function'' &lt;br /&gt;
|-&lt;br /&gt;
|7||0||rowspan=2|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=4|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;
&lt;br /&gt;
==== Colour selection ====&lt;br /&gt;
&lt;br /&gt;
Once the pen has been selected the 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;
|''Bit''||''Value''||''Function'' &lt;br /&gt;
|-&lt;br /&gt;
|7||0||rowspan=2|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=5|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;
&lt;br /&gt;
==== Hardware colour palette ====&lt;br /&gt;
&lt;br /&gt;
{|{{Prettytable|width: 700px; font-size: 2em;}}&lt;br /&gt;
|''Colour Number''||''Colour Name''||''Color''&lt;br /&gt;
|-&lt;br /&gt;
|0||White||bgcolor=&amp;quot;#808080&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|1||White (note 1)||bgcolor=&amp;quot;#808080&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|2||Sea Green||bgcolor=&amp;quot;#00FF80&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|3||Pastel Yellow||bgcolor=&amp;quot;#FFFF50&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|4||Blue||bgcolor=&amp;quot;#000080&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|5||Purple||bgcolor=&amp;quot;#FF0080&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|6||Cyan||bgcolor=&amp;quot;#008080&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|7||Pink||bgcolor=&amp;quot;#FF8080&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|8||Purple (note 1)||bgcolor=&amp;quot;#FF0080&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|9||Pastel Yellow (note 1)||bgcolor=&amp;quot;#FFFF50&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|10||Bright Yellow||bgcolor=&amp;quot;#FFFF80&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|11||Bright White||bgcolor=&amp;quot;#FFFFFF&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|12||Bright Red||bgcolor=&amp;quot;#FF0000&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|13||Bright Magenta||bgcolor=&amp;quot;#FF00FF&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|14||Orange||bgcolor=&amp;quot;#FF8000&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|15||Pastel Magenta||bgcolor=&amp;quot;#FF80FF&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|16||Blue (note 1)||bgcolor=&amp;quot;#000080&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|17||Sea Green (note 1)||bgcolor=&amp;quot;#00FF80&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|18||Bright Green||bgcolor=&amp;quot;#00FF00&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|19||Bright Cyan||bgcolor=&amp;quot;#00FFFF&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|20||Black||bgcolor=&amp;quot;#000000&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|21||Bright Blue||bgcolor=&amp;quot;#0000FF&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|22||Green||bgcolor=&amp;quot;#008000&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|23||Sky Blue||bgcolor=&amp;quot;#0080FF&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|24||Magenta||bgcolor=&amp;quot;#800080&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|25||Pastel Green||bgcolor=&amp;quot;#80FF80&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|26||Lime||bgcolor=&amp;quot;#80FF00&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|27||Pastel Cyan||bgcolor=&amp;quot;#80FFFF&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|28||Red||bgcolor=&amp;quot;#800000&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|29||Mauve||bgcolor=&amp;quot;#8000FF&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|30||Yellow||bgcolor=&amp;quot;#808000&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|31||Pastel Blue||bgcolor=&amp;quot;#8080FF&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Notes =====&lt;br /&gt;
&lt;br /&gt;
This is not an official colour &lt;br /&gt;
&lt;br /&gt;
Select screen mode and rom configuration&lt;br /&gt;
&lt;br /&gt;
This is a general purpose register responsible for the 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;
|''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 (note 1)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This mode 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.&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 addressess &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 rom. 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 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 the data returned 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;
|''Bit''||''Value''||''Function'' &lt;br /&gt;
|-&lt;br /&gt;
|7||0||rowspan=2|Gate Array function &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||Interrupt generation control&lt;br /&gt;
|-&lt;br /&gt;
|3||x||&lt;br /&gt;
*1 Upper rom area disable&lt;br /&gt;
*0 Upper rom area enable&lt;br /&gt;
|-&lt;br /&gt;
|2||x||&lt;br /&gt;
*1 Lower rom area disable&lt;br /&gt;
*0 Lower rom area enable&lt;br /&gt;
|-&lt;br /&gt;
|1||x||rowspan=2|Mode slection&lt;br /&gt;
|-&lt;br /&gt;
|0||x&lt;br /&gt;
|-&lt;br /&gt;
|}&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;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LD BC,7F00 ;Gate Array port&lt;br /&gt;
LD A,%00000000+0 ;Pen number (and Gate Array function)&lt;br /&gt;
OUT (C),A ;Send pen number&lt;br /&gt;
LD A,%01000000+11 ;Pen colour (and Gate Array function)&lt;br /&gt;
OUT (C),A ;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 ;Gate array port&lt;br /&gt;
LD A,%10000000+%00001110 ;Mode and rom selection (and Gate Array function)&lt;br /&gt;
OUT (C),A ;Send it&lt;br /&gt;
RET&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Conversion chart ====&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 it's original colour. This is due to the firmware re- setting the colour. When using the firmware, use it's routines to select the colour, and the colour will remain.&lt;br /&gt;
&lt;br /&gt;
{|{{Prettytable|width: 700px; font-size: 2em;}}&lt;br /&gt;
|''Firmware Colour Number''||''Colour Name''||''Hardware Number''||''Quick reference colour value''||''Color''&lt;br /&gt;
|-&lt;br /&gt;
|0||Black||20||&amp;amp;54||bgcolor=&amp;quot;#000000&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|1||Blue||4||&amp;amp;44||bgcolor=&amp;quot;#000080&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|2||Bright Blue||21||&amp;amp;55||bgcolor=&amp;quot;#0000FF&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|3||Red||28||&amp;amp;5C||bgcolor=&amp;quot;#800000&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|4||Magenta||24||&amp;amp;58||bgcolor=&amp;quot;#800080&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|5||Mauve|| 29||&amp;amp;5D||bgcolor=&amp;quot;#8000FF&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|6||Bright Red||12||&amp;amp;4C||bgcolor=&amp;quot;#FF0000&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|7||Purple|| 5||&amp;amp;45||bgcolor=&amp;quot;#FF0080&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|8||Bright Magenta||13||&amp;amp;4D||bgcolor=&amp;quot;#FF00FF&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|9||Green||22||&amp;amp;56||bgcolor=&amp;quot;#008000&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|10||Cyan||6||&amp;amp;46||bgcolor=&amp;quot;#008080&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|11||Sky Blue||23||&amp;amp;57||bgcolor=&amp;quot;#0080FF&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|12||Yellow||30||&amp;amp;5E||bgcolor=&amp;quot;#808000&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|13||White||0||&amp;amp;40||bgcolor=&amp;quot;#808080&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|14||Pastel Blue||31||&amp;amp;5F||bgcolor=&amp;quot;#8080FF&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|15||Orange||14||&amp;amp;4E||bgcolor=&amp;quot;#FF8000&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|16||Pink||7||&amp;amp;47||bgcolor=&amp;quot;#FF8080&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|17||Pastel Magenta||15||&amp;amp;4F||bgcolor=&amp;quot;#FF80FF&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|18||Bright Green||18||&amp;amp;52||bgcolor=&amp;quot;#00FF00&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|19||Sea Green||2||&amp;amp;42bgcolor=&amp;quot;#00FF80&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|20||Bright Cyan||19||&amp;amp;53||bgcolor=&amp;quot;#00FFFF&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|21||Lime||26||&amp;amp;5A||bgcolor=&amp;quot;#80FF00&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|22||Pastel Green||25||&amp;amp;59||bgcolor=&amp;quot;#80FF80&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|23||Pastel Cyan||27||&amp;amp;5B||bgcolor=&amp;quot;#80FFFF&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|24||Bright Yellow||10||&amp;amp;4A||bgcolor=&amp;quot;#FFFF80&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|25||Pastel Yellow||3||&amp;amp;43||bgcolor=&amp;quot;#FFFF80&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|26||Bright White||11||&amp;amp;4B||bgcolor=&amp;quot;#FFFFFF&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This chart also gives a quick reference guide for programming the colours. The number is the colour number which can be sent directly, once the pen has been selected, to get the colour wanted.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ld bc,7f00+1 ;Gate array function (set pen)&lt;br /&gt;
;and pen number&lt;br /&gt;
out (c),c&lt;br /&gt;
ld bc,7f00 ;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;
==== Pallette 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;
This table shows the relationship between hardware colour number, colour name and RGB mixing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|{{Prettytable|width: 700px; font-size: 2em;}}&lt;br /&gt;
|''Hardware Colour Index''||''Colour Name''||''R %''||''G %''||''B %''||''Color'' &lt;br /&gt;
|-&lt;br /&gt;
|0||White||align=&amp;quot;right&amp;quot;|50||align=&amp;quot;right&amp;quot;|50||align=&amp;quot;right&amp;quot;|50||bgcolor=&amp;quot;#808080&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|1||White||align=&amp;quot;right&amp;quot;|50||align=&amp;quot;right&amp;quot;|50||align=&amp;quot;right&amp;quot;|50||bgcolor=&amp;quot;#808080&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|2||Sea Green||align=&amp;quot;right&amp;quot;|0||align=&amp;quot;right&amp;quot;|100||align=&amp;quot;right&amp;quot;|50||bgcolor=&amp;quot;#00FF80&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|3||Pastel Yellow||align=&amp;quot;right&amp;quot;|100||align=&amp;quot;right&amp;quot;|100||align=&amp;quot;right&amp;quot;|50||bgcolor=&amp;quot;#FFFF80&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|4||Blue||align=&amp;quot;right&amp;quot;|0||align=&amp;quot;right&amp;quot;|0||align=&amp;quot;right&amp;quot;|50||bgcolor=&amp;quot;#000080&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|5||Purple||align=&amp;quot;right&amp;quot;|100||align=&amp;quot;right&amp;quot;|0||align=&amp;quot;right&amp;quot;|50||bgcolor=&amp;quot;#FF0080&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|6||Cyan||align=&amp;quot;right&amp;quot;|0||align=&amp;quot;right&amp;quot;|50||align=&amp;quot;right&amp;quot;|50||bgcolor=&amp;quot;#008080&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|7||Pink||align=&amp;quot;right&amp;quot;|100||align=&amp;quot;right&amp;quot;|50||align=&amp;quot;right&amp;quot;|50||bgcolor=&amp;quot;#FF8080&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|8||Purple||align=&amp;quot;right&amp;quot;|100||align=&amp;quot;right&amp;quot;|0||align=&amp;quot;right&amp;quot;|50||bgcolor=&amp;quot;#FF0080&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|9||Pastel Yellow||align=&amp;quot;right&amp;quot;|100||align=&amp;quot;right&amp;quot;|100||align=&amp;quot;right&amp;quot;|50||bgcolor=&amp;quot;#FFFF80&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|10||Bright Yellow||align=&amp;quot;right&amp;quot;|100||align=&amp;quot;right&amp;quot;|100||align=&amp;quot;right&amp;quot;|0||bgcolor=&amp;quot;#FFFF00&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|11||Bright White||align=&amp;quot;right&amp;quot;|100||align=&amp;quot;right&amp;quot;|100||align=&amp;quot;right&amp;quot;|100||bgcolor=&amp;quot;#FFFFFF&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|12||Bright Red||align=&amp;quot;right&amp;quot;|100||align=&amp;quot;right&amp;quot;|0||align=&amp;quot;right&amp;quot;|0||bgcolor=&amp;quot;#FF0000&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|13||Bright Magenta||align=&amp;quot;right&amp;quot;|100||align=&amp;quot;right&amp;quot;|0||align=&amp;quot;right&amp;quot;|100||bgcolor=&amp;quot;#FF00FF&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|14||Orange||align=&amp;quot;right&amp;quot;|100||align=&amp;quot;right&amp;quot;|50||align=&amp;quot;right&amp;quot;|0||bgcolor=&amp;quot;#FF8000&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|15||Pastel Magenta||align=&amp;quot;right&amp;quot;|100||align=&amp;quot;right&amp;quot;|50||align=&amp;quot;right&amp;quot;|100||bgcolor=&amp;quot;#FF80FF&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|16||Blue||align=&amp;quot;right&amp;quot;|0||align=&amp;quot;right&amp;quot;|0||align=&amp;quot;right&amp;quot;|50||bgcolor=&amp;quot;#000080&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|17||Sea Green||align=&amp;quot;right&amp;quot;|0||align=&amp;quot;right&amp;quot;|100||align=&amp;quot;right&amp;quot;|50||bgcolor=&amp;quot;#00FF80&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|18||Bright Green||align=&amp;quot;right&amp;quot;|0||align=&amp;quot;right&amp;quot;|100||align=&amp;quot;right&amp;quot;|0||bgcolor=&amp;quot;#00FF00&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|19||Bright Cyan||align=&amp;quot;right&amp;quot;|0||align=&amp;quot;right&amp;quot;|100||align=&amp;quot;right&amp;quot;|100||bgcolor=&amp;quot;#00FFFF&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|20||Black||align=&amp;quot;right&amp;quot;|0||align=&amp;quot;right&amp;quot;|0||align=&amp;quot;right&amp;quot;|0||bgcolor=&amp;quot;#000000&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|21||Bright Blue||align=&amp;quot;right&amp;quot;|0||align=&amp;quot;right&amp;quot;|0||align=&amp;quot;right&amp;quot;|100||bgcolor=&amp;quot;#0000FF&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|22||Green||align=&amp;quot;right&amp;quot;|0||align=&amp;quot;right&amp;quot;|50||align=&amp;quot;right&amp;quot;|0||bgcolor=&amp;quot;#008000&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|23||Sky Blue||align=&amp;quot;right&amp;quot;|0||align=&amp;quot;right&amp;quot;|50||align=&amp;quot;right&amp;quot;|100||bgcolor=&amp;quot;#0080FF&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|24||Magenta||align=&amp;quot;right&amp;quot;|50||align=&amp;quot;right&amp;quot;|0||align=&amp;quot;right&amp;quot;|50||bgcolor=&amp;quot;#800080&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|25||Pastel Green||align=&amp;quot;right&amp;quot;|50||align=&amp;quot;right&amp;quot;|100||align=&amp;quot;right&amp;quot;|50||bgcolor=&amp;quot;#80FF80&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|26||Lime||align=&amp;quot;right&amp;quot;|50||align=&amp;quot;right&amp;quot;|100||align=&amp;quot;right&amp;quot;|0||bgcolor=&amp;quot;#80FF00&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|27||Pastel Cyan||align=&amp;quot;right&amp;quot;|50||align=&amp;quot;right&amp;quot;|100||align=&amp;quot;right&amp;quot;|100||bgcolor=&amp;quot;#80FFFF&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|28||Red||align=&amp;quot;right&amp;quot;|50||align=&amp;quot;right&amp;quot;|0||align=&amp;quot;right&amp;quot;|0||bgcolor=&amp;quot;#800000&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|29||Mauve||align=&amp;quot;right&amp;quot;|50||align=&amp;quot;right&amp;quot;|0||align=&amp;quot;right&amp;quot;|100||bgcolor=&amp;quot;#8000FF&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|30||Yellow||align=&amp;quot;right&amp;quot;|50||align=&amp;quot;right&amp;quot;|50||align=&amp;quot;right&amp;quot;|0||bgcolor=&amp;quot;#808000&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|31||Pastel Blue||align=&amp;quot;right&amp;quot;|50||align=&amp;quot;right&amp;quot;|50||align=&amp;quot;right&amp;quot;|100||bgcolor=&amp;quot;#8080FF&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== RGB assignments for the software colours ====&lt;br /&gt;
&lt;br /&gt;
This is simply a sidenote to illustrate a pattern in the RGB assignments of the software colours and to show how their value is calculated.&lt;br /&gt;
&lt;br /&gt;
{|{{Prettytable|width: 700px; font-size: 2em;}}&lt;br /&gt;
|''Firmware Colour Number''||''Colour Name''||''R %''||''G %''||''B %''||''Color''&lt;br /&gt;
|-&lt;br /&gt;
|0||Black||0||0||0||bgcolor=&amp;quot;#000000&amp;quot;| &lt;br /&gt;
|-&lt;br /&gt;
|1||Blue||0||0||50||bgcolor=&amp;quot;#000080&amp;quot;| &lt;br /&gt;
|-&lt;br /&gt;
|2||Bright Blue||0||0||100||bgcolor=&amp;quot;#0000FF&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|3||Red||50||0||0||bgcolor=&amp;quot;#800000&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|4||Magenta||50||0||50||bgcolor=&amp;quot;#800080&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|5||Mauve||50||0||100||bgcolor=&amp;quot;#8000FF&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|6||Bright Red||100||0||0||bgcolor=&amp;quot;#FF0000&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|7||Purple||100||0||50||bgcolor=&amp;quot;#FF0080&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|8||Bright Magenta||100||0||100||bgcolor=&amp;quot;#FF00FF&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|9||Green||0||50||0||bgcolor=&amp;quot;#008000&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|10||Cyan||0||50||50||bgcolor=&amp;quot;#008080&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|11||Sky Blue||0||50||100||bgcolor=&amp;quot;#0080FF&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|12||Yellow||50||50||0||bgcolor=&amp;quot;#808000&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|13||White||50||50||50||bgcolor=&amp;quot;#808080&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|14||Pastel Blue||50||50||100||bgcolor=&amp;quot;#8080FF&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|15||Orange||100||50||0||bgcolor=&amp;quot;#FF8000&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|16||Pink||100||50||50||bgcolor=&amp;quot;#FF8080&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|17||Pastel Magenta||100||50||100||bgcolor=&amp;quot;#FF80FF&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|18||Bright Green||0||100||0||bgcolor=&amp;quot;#00FF00&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|19||Sea Green||0||100||50||bgcolor=&amp;quot;#00FF80&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|20||Bright Cyan||0||100||100||bgcolor=&amp;quot;#00FFFF&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|21||Lime||50||100||0||bgcolor=&amp;quot;#80FF00&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|22||Pastel Green||50||100||50||bgcolor=&amp;quot;#80FF80&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|23||Pastel Cyan||50||100||100||bgcolor=&amp;quot;#80FFFF&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|24||Bright Yellow||100||100||0||bgcolor=&amp;quot;#FFFF00&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|25||Pastel Yellow||100||100||50||bgcolor=&amp;quot;#FFFF80&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|26||Bright White||100||100||100||bgcolor=&amp;quot;#FFFFFF&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|}&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. So that black is very dark, and white is bright green, and colour 13 is a medium green. (Thanks to [[Mark Rison]] for this information)&lt;br /&gt;
&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>Apollo</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=Gate_Array&amp;diff=29783</id>
		<title>Gate Array</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=Gate_Array&amp;diff=29783"/>
				<updated>2009-02-20T20:37:26Z</updated>
		
		<summary type="html">&lt;p&gt;Apollo: Undo revision 29782 as Prettytables were destroyed&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Gate Array &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 Computer|KC compact]] system, the functions of the Gate-Array are &amp;quot;emulated&amp;quot; in [[TTL logic|TTL logic]] and by the [[Zilog Z8536 CIO|Zilog Z8536 CIO]]. &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, as it is 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;
{|&lt;br /&gt;
|-&lt;br /&gt;
| ''Bit 7''&lt;br /&gt;
| ''Bit 6''&lt;br /&gt;
| ''Function''&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| Select pen&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 1&lt;br /&gt;
| Select colour for selected pen&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| 0&lt;br /&gt;
| Select screen mode, rom configuration and interrupt control&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| Ram Memory Management (note 1)&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 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;
==== 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;
{|&lt;br /&gt;
|-&lt;br /&gt;
| ''Bit''&lt;br /&gt;
| ''Value''&lt;br /&gt;
| ''Function''&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| 0&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | Gate Array function &amp;quot;Pen Selection&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| 0&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| -&lt;br /&gt;
| not used&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| 1&lt;br /&gt;
| Select border&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| x&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; | Ignored&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| x&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| x&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| x&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| ''Bit''&lt;br /&gt;
| ''Value''&lt;br /&gt;
| ''Function''&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| 0&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | Gate Array function &amp;quot;Pen Selection&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| 0&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| -&lt;br /&gt;
| not used&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| 1&lt;br /&gt;
| Select pen&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| x&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; | Pen number&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| x&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| x&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| x&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Colour selection  ====&lt;br /&gt;
&lt;br /&gt;
Once the pen has been selected the 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;
{|&lt;br /&gt;
|-&lt;br /&gt;
| ''Bit''&lt;br /&gt;
| ''Value''&lt;br /&gt;
| ''Function''&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| 0&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | Gate Array function &amp;quot;Colour selection&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| 1&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| -&lt;br /&gt;
| not used&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| x&lt;br /&gt;
| rowspan=&amp;quot;5&amp;quot; | Colour number x&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| x&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| x&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| x&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| x&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Hardware colour palette  ====&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| ''Colour Number''&lt;br /&gt;
| ''Colour Name''&lt;br /&gt;
| ''Color''&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| White&lt;br /&gt;
| bgcolor=&amp;quot;#808080&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| White (note 1)&lt;br /&gt;
| bgcolor=&amp;quot;#808080&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Sea Green&lt;br /&gt;
| bgcolor=&amp;quot;#00ff80&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Pastel Yellow&lt;br /&gt;
| bgcolor=&amp;quot;#ffff50&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Blue&lt;br /&gt;
| bgcolor=&amp;quot;#000080&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Purple&lt;br /&gt;
| bgcolor=&amp;quot;#ff0080&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Cyan&lt;br /&gt;
| bgcolor=&amp;quot;#008080&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Pink&lt;br /&gt;
| bgcolor=&amp;quot;#ff8080&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| Purple (note 1)&lt;br /&gt;
| bgcolor=&amp;quot;#ff0080&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| Pastel Yellow (note 1)&lt;br /&gt;
| bgcolor=&amp;quot;#ffff50&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| Bright Yellow&lt;br /&gt;
| bgcolor=&amp;quot;#ffff80&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| Bright White&lt;br /&gt;
| bgcolor=&amp;quot;#ffffff&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
| Bright Red&lt;br /&gt;
| bgcolor=&amp;quot;#ff0000&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
| Bright Magenta&lt;br /&gt;
| bgcolor=&amp;quot;#ff00ff&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 14&lt;br /&gt;
| Orange&lt;br /&gt;
| bgcolor=&amp;quot;#ff8000&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 15&lt;br /&gt;
| Pastel Magenta&lt;br /&gt;
| bgcolor=&amp;quot;#ff80ff&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 16&lt;br /&gt;
| Blue (note 1)&lt;br /&gt;
| bgcolor=&amp;quot;#000080&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 17&lt;br /&gt;
| Sea Green (note 1)&lt;br /&gt;
| bgcolor=&amp;quot;#00ff80&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 18&lt;br /&gt;
| Bright Green&lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 19&lt;br /&gt;
| Bright Cyan&lt;br /&gt;
| bgcolor=&amp;quot;#00ffff&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 20&lt;br /&gt;
| Black&lt;br /&gt;
| bgcolor=&amp;quot;#000000&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 21&lt;br /&gt;
| Bright Blue&lt;br /&gt;
| bgcolor=&amp;quot;#0000ff&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 22&lt;br /&gt;
| Green&lt;br /&gt;
| bgcolor=&amp;quot;#008000&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 23&lt;br /&gt;
| Sky Blue&lt;br /&gt;
| bgcolor=&amp;quot;#0080ff&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 24&lt;br /&gt;
| Magenta&lt;br /&gt;
| bgcolor=&amp;quot;#800080&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 25&lt;br /&gt;
| Pastel Green&lt;br /&gt;
| bgcolor=&amp;quot;#80ff80&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 26&lt;br /&gt;
| Lime&lt;br /&gt;
| bgcolor=&amp;quot;#80ff00&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 27&lt;br /&gt;
| Pastel Cyan&lt;br /&gt;
| bgcolor=&amp;quot;#80ffff&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 28&lt;br /&gt;
| Red&lt;br /&gt;
| bgcolor=&amp;quot;#800000&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 29&lt;br /&gt;
| Mauve&lt;br /&gt;
| bgcolor=&amp;quot;#8000ff&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 30&lt;br /&gt;
| Yellow&lt;br /&gt;
| bgcolor=&amp;quot;#808000&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 31&lt;br /&gt;
| Pastel Blue&lt;br /&gt;
| bgcolor=&amp;quot;#8080ff&amp;quot; | &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Notes  =====&lt;br /&gt;
&lt;br /&gt;
This is not an official colour &lt;br /&gt;
&lt;br /&gt;
Select screen mode and rom configuration &lt;br /&gt;
&lt;br /&gt;
This is a general purpose register responsible for the 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;
{|&lt;br /&gt;
|-&lt;br /&gt;
| ''Bit 1''&lt;br /&gt;
| ''Bit 0''&lt;br /&gt;
| ''Screen mode''&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| Mode 0, 160x200 resolution, 16 colours&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 1&lt;br /&gt;
| Mode 1, 320x200 resolution, 4 colours&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| 0&lt;br /&gt;
| Mode 2, 640x200 resolution, 2 colours&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| Mode 3, 160x200 resolution, 4 colours (note 1)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This mode 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. &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 addressess &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 rom. 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 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 the data returned 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;
{|&lt;br /&gt;
|-&lt;br /&gt;
| ''Bit''&lt;br /&gt;
| ''Value''&lt;br /&gt;
| ''Function''&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| 0&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | Gate Array function&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| 1&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| -&lt;br /&gt;
| not used&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| x&lt;br /&gt;
| Interrupt generation control&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| x&lt;br /&gt;
| &lt;br /&gt;
*1 Upper rom area disable &lt;br /&gt;
*0 Upper rom area enable&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| x&lt;br /&gt;
| &lt;br /&gt;
*1 Lower rom area disable &lt;br /&gt;
*0 Lower rom area enable&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| x&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | Mode slection&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| x&lt;br /&gt;
|}&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;
==== Conversion chart  ====&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 it's original colour. This is due to the firmware re- setting the colour. When using the firmware, use it's routines to select the colour, and the colour will remain. &lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| ''Firmware Colour Number''&lt;br /&gt;
| ''Colour Name''&lt;br /&gt;
| ''Hardware Number''&lt;br /&gt;
| ''Quick reference colour value''&lt;br /&gt;
| ''Color''&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| Black&lt;br /&gt;
| 20&lt;br /&gt;
| &amp;amp;amp;54&lt;br /&gt;
| bgcolor=&amp;quot;#000000&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Blue&lt;br /&gt;
| 4&lt;br /&gt;
| &amp;amp;amp;44&lt;br /&gt;
| bgcolor=&amp;quot;#000080&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Bright Blue&lt;br /&gt;
| 21&lt;br /&gt;
| &amp;amp;amp;55&lt;br /&gt;
| bgcolor=&amp;quot;#0000ff&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Red&lt;br /&gt;
| 28&lt;br /&gt;
| &amp;amp;amp;5C&lt;br /&gt;
| bgcolor=&amp;quot;#800000&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Magenta&lt;br /&gt;
| 24&lt;br /&gt;
| &amp;amp;amp;58&lt;br /&gt;
| bgcolor=&amp;quot;#800080&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Mauve&lt;br /&gt;
| 29&lt;br /&gt;
| &amp;amp;amp;5D&lt;br /&gt;
| bgcolor=&amp;quot;#8000ff&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Bright Red&lt;br /&gt;
| 12&lt;br /&gt;
| &amp;amp;amp;4C&lt;br /&gt;
| bgcolor=&amp;quot;#ff0000&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Purple&lt;br /&gt;
| 5&lt;br /&gt;
| &amp;amp;amp;45&lt;br /&gt;
| bgcolor=&amp;quot;#ff0080&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| Bright Magenta&lt;br /&gt;
| 13&lt;br /&gt;
| &amp;amp;amp;4D&lt;br /&gt;
| bgcolor=&amp;quot;#ff00ff&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| Green&lt;br /&gt;
| 22&lt;br /&gt;
| &amp;amp;amp;56&lt;br /&gt;
| bgcolor=&amp;quot;#008000&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| Cyan&lt;br /&gt;
| 6&lt;br /&gt;
| &amp;amp;amp;46&lt;br /&gt;
| bgcolor=&amp;quot;#008080&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| Sky Blue&lt;br /&gt;
| 23&lt;br /&gt;
| &amp;amp;amp;57&lt;br /&gt;
| bgcolor=&amp;quot;#0080ff&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
| Yellow&lt;br /&gt;
| 30&lt;br /&gt;
| &amp;amp;amp;5E&lt;br /&gt;
| bgcolor=&amp;quot;#808000&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
| White&lt;br /&gt;
| 0&lt;br /&gt;
| &amp;amp;amp;40&lt;br /&gt;
| bgcolor=&amp;quot;#808080&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 14&lt;br /&gt;
| Pastel Blue&lt;br /&gt;
| 31&lt;br /&gt;
| &amp;amp;amp;5F&lt;br /&gt;
| bgcolor=&amp;quot;#8080ff&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 15&lt;br /&gt;
| Orange&lt;br /&gt;
| 14&lt;br /&gt;
| &amp;amp;amp;4E&lt;br /&gt;
| bgcolor=&amp;quot;#ff8000&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 16&lt;br /&gt;
| Pink&lt;br /&gt;
| 7&lt;br /&gt;
| &amp;amp;amp;47&lt;br /&gt;
| bgcolor=&amp;quot;#ff8080&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 17&lt;br /&gt;
| Pastel Magenta&lt;br /&gt;
| 15&lt;br /&gt;
| &amp;amp;amp;4F&lt;br /&gt;
| bgcolor=&amp;quot;#ff80ff&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 18&lt;br /&gt;
| Bright Green&lt;br /&gt;
| 18&lt;br /&gt;
| &amp;amp;amp;52&lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 19&lt;br /&gt;
| Sea Green&lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 20&lt;br /&gt;
| Bright Cyan&lt;br /&gt;
| 19&lt;br /&gt;
| &amp;amp;amp;53&lt;br /&gt;
| bgcolor=&amp;quot;#00ffff&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 21&lt;br /&gt;
| Lime&lt;br /&gt;
| 26&lt;br /&gt;
| &amp;amp;amp;5A&lt;br /&gt;
| bgcolor=&amp;quot;#80ff00&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 22&lt;br /&gt;
| Pastel Green&lt;br /&gt;
| 25&lt;br /&gt;
| &amp;amp;amp;59&lt;br /&gt;
| bgcolor=&amp;quot;#80ff80&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 23&lt;br /&gt;
| Pastel Cyan&lt;br /&gt;
| 27&lt;br /&gt;
| &amp;amp;amp;5B&lt;br /&gt;
| bgcolor=&amp;quot;#80ffff&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 24&lt;br /&gt;
| Bright Yellow&lt;br /&gt;
| 10&lt;br /&gt;
| &amp;amp;amp;4A&lt;br /&gt;
| bgcolor=&amp;quot;#ffff80&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 25&lt;br /&gt;
| Pastel Yellow&lt;br /&gt;
| 3&lt;br /&gt;
| &amp;amp;amp;43&lt;br /&gt;
| bgcolor=&amp;quot;#ffff80&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 26&lt;br /&gt;
| Bright White&lt;br /&gt;
| 11&lt;br /&gt;
| &amp;amp;amp;4B&lt;br /&gt;
| bgcolor=&amp;quot;#ffffff&amp;quot; | &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This chart also gives a quick reference guide for programming the colours. The number is the colour number which can be sent directly, once the pen has been selected, to get the colour wanted. &lt;br /&gt;
&lt;br /&gt;
Example: &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;
==== Pallette 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;
This table shows the relationship between hardware colour number, colour name and RGB mixing. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| ''Hardware Colour Index''&lt;br /&gt;
| ''Colour Name''&lt;br /&gt;
| ''R&amp;amp;nbsp;%''&lt;br /&gt;
| ''G&amp;amp;nbsp;%''&lt;br /&gt;
| ''B&amp;amp;nbsp;%''&lt;br /&gt;
| ''Color''&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| White&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 50&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 50&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 50&lt;br /&gt;
| bgcolor=&amp;quot;#808080&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| White&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 50&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 50&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 50&lt;br /&gt;
| bgcolor=&amp;quot;#808080&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Sea Green&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 0&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 100&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 50&lt;br /&gt;
| bgcolor=&amp;quot;#00ff80&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Pastel Yellow&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 100&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 100&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 50&lt;br /&gt;
| bgcolor=&amp;quot;#ffff80&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Blue&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 0&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 0&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 50&lt;br /&gt;
| bgcolor=&amp;quot;#000080&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Purple&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 100&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 0&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 50&lt;br /&gt;
| bgcolor=&amp;quot;#ff0080&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Cyan&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 0&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 50&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 50&lt;br /&gt;
| bgcolor=&amp;quot;#008080&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Pink&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 100&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 50&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 50&lt;br /&gt;
| bgcolor=&amp;quot;#ff8080&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| Purple&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 100&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 0&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 50&lt;br /&gt;
| bgcolor=&amp;quot;#ff0080&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| Pastel Yellow&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 100&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 100&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 50&lt;br /&gt;
| bgcolor=&amp;quot;#ffff80&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| Bright Yellow&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 100&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 100&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 0&lt;br /&gt;
| bgcolor=&amp;quot;#ffff00&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| Bright White&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 100&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 100&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 100&lt;br /&gt;
| bgcolor=&amp;quot;#ffffff&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
| Bright Red&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 100&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 0&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 0&lt;br /&gt;
| bgcolor=&amp;quot;#ff0000&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
| Bright Magenta&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 100&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 0&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 100&lt;br /&gt;
| bgcolor=&amp;quot;#ff00ff&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 14&lt;br /&gt;
| Orange&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 100&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 50&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 0&lt;br /&gt;
| bgcolor=&amp;quot;#ff8000&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 15&lt;br /&gt;
| Pastel Magenta&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 100&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 50&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 100&lt;br /&gt;
| bgcolor=&amp;quot;#ff80ff&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 16&lt;br /&gt;
| Blue&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 0&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 0&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 50&lt;br /&gt;
| bgcolor=&amp;quot;#000080&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 17&lt;br /&gt;
| Sea Green&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 0&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 100&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 50&lt;br /&gt;
| bgcolor=&amp;quot;#00ff80&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 18&lt;br /&gt;
| Bright Green&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 0&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 100&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 0&lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 19&lt;br /&gt;
| Bright Cyan&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 0&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 100&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 100&lt;br /&gt;
| bgcolor=&amp;quot;#00ffff&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 20&lt;br /&gt;
| Black&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 0&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 0&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 0&lt;br /&gt;
| bgcolor=&amp;quot;#000000&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 21&lt;br /&gt;
| Bright Blue&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 0&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 0&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 100&lt;br /&gt;
| bgcolor=&amp;quot;#0000ff&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 22&lt;br /&gt;
| Green&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 0&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 50&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 0&lt;br /&gt;
| bgcolor=&amp;quot;#008000&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 23&lt;br /&gt;
| Sky Blue&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 0&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 50&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 100&lt;br /&gt;
| bgcolor=&amp;quot;#0080ff&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 24&lt;br /&gt;
| Magenta&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 50&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 0&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 50&lt;br /&gt;
| bgcolor=&amp;quot;#800080&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 25&lt;br /&gt;
| Pastel Green&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 50&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 100&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 50&lt;br /&gt;
| bgcolor=&amp;quot;#80ff80&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 26&lt;br /&gt;
| Lime&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 50&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 100&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 0&lt;br /&gt;
| bgcolor=&amp;quot;#80ff00&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 27&lt;br /&gt;
| Pastel Cyan&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 50&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 100&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 100&lt;br /&gt;
| bgcolor=&amp;quot;#80ffff&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 28&lt;br /&gt;
| Red&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 50&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 0&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 0&lt;br /&gt;
| bgcolor=&amp;quot;#800000&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 29&lt;br /&gt;
| Mauve&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 50&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 0&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 100&lt;br /&gt;
| bgcolor=&amp;quot;#8000ff&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 30&lt;br /&gt;
| Yellow&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 50&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 50&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 0&lt;br /&gt;
| bgcolor=&amp;quot;#808000&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 31&lt;br /&gt;
| Pastel Blue&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 50&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 50&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 100&lt;br /&gt;
| bgcolor=&amp;quot;#8080ff&amp;quot; | &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== RGB assignments for the software colours  ====&lt;br /&gt;
&lt;br /&gt;
This is simply a sidenote to illustrate a pattern in the RGB assignments of the software colours and to show how their value is calculated. &lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| ''Firmware Colour Number''&lt;br /&gt;
| ''Colour Name''&lt;br /&gt;
| ''R&amp;amp;nbsp;%''&lt;br /&gt;
| ''G&amp;amp;nbsp;%''&lt;br /&gt;
| ''B&amp;amp;nbsp;%''&lt;br /&gt;
| ''Color''&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| Black&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| bgcolor=&amp;quot;#000000&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Blue&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| 50&lt;br /&gt;
| bgcolor=&amp;quot;#000080&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Bright Blue&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| 100&lt;br /&gt;
| bgcolor=&amp;quot;#0000ff&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Red&lt;br /&gt;
| 50&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| bgcolor=&amp;quot;#800000&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Magenta&lt;br /&gt;
| 50&lt;br /&gt;
| 0&lt;br /&gt;
| 50&lt;br /&gt;
| bgcolor=&amp;quot;#800080&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Mauve&lt;br /&gt;
| 50&lt;br /&gt;
| 0&lt;br /&gt;
| 100&lt;br /&gt;
| bgcolor=&amp;quot;#8000ff&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Bright Red&lt;br /&gt;
| 100&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| bgcolor=&amp;quot;#ff0000&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Purple&lt;br /&gt;
| 100&lt;br /&gt;
| 0&lt;br /&gt;
| 50&lt;br /&gt;
| bgcolor=&amp;quot;#ff0080&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| Bright Magenta&lt;br /&gt;
| 100&lt;br /&gt;
| 0&lt;br /&gt;
| 100&lt;br /&gt;
| bgcolor=&amp;quot;#ff00ff&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| Green&lt;br /&gt;
| 0&lt;br /&gt;
| 50&lt;br /&gt;
| 0&lt;br /&gt;
| bgcolor=&amp;quot;#008000&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| Cyan&lt;br /&gt;
| 0&lt;br /&gt;
| 50&lt;br /&gt;
| 50&lt;br /&gt;
| bgcolor=&amp;quot;#008080&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| Sky Blue&lt;br /&gt;
| 0&lt;br /&gt;
| 50&lt;br /&gt;
| 100&lt;br /&gt;
| bgcolor=&amp;quot;#0080ff&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
| Yellow&lt;br /&gt;
| 50&lt;br /&gt;
| 50&lt;br /&gt;
| 0&lt;br /&gt;
| bgcolor=&amp;quot;#808000&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
| White&lt;br /&gt;
| 50&lt;br /&gt;
| 50&lt;br /&gt;
| 50&lt;br /&gt;
| bgcolor=&amp;quot;#808080&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 14&lt;br /&gt;
| Pastel Blue&lt;br /&gt;
| 50&lt;br /&gt;
| 50&lt;br /&gt;
| 100&lt;br /&gt;
| bgcolor=&amp;quot;#8080ff&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 15&lt;br /&gt;
| Orange&lt;br /&gt;
| 100&lt;br /&gt;
| 50&lt;br /&gt;
| 0&lt;br /&gt;
| bgcolor=&amp;quot;#ff8000&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 16&lt;br /&gt;
| Pink&lt;br /&gt;
| 100&lt;br /&gt;
| 50&lt;br /&gt;
| 50&lt;br /&gt;
| bgcolor=&amp;quot;#ff8080&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 17&lt;br /&gt;
| Pastel Magenta&lt;br /&gt;
| 100&lt;br /&gt;
| 50&lt;br /&gt;
| 100&lt;br /&gt;
| bgcolor=&amp;quot;#ff80ff&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 18&lt;br /&gt;
| Bright Green&lt;br /&gt;
| 0&lt;br /&gt;
| 100&lt;br /&gt;
| 0&lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 19&lt;br /&gt;
| Sea Green&lt;br /&gt;
| 0&lt;br /&gt;
| 100&lt;br /&gt;
| 50&lt;br /&gt;
| bgcolor=&amp;quot;#00ff80&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 20&lt;br /&gt;
| Bright Cyan&lt;br /&gt;
| 0&lt;br /&gt;
| 100&lt;br /&gt;
| 100&lt;br /&gt;
| bgcolor=&amp;quot;#00ffff&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 21&lt;br /&gt;
| Lime&lt;br /&gt;
| 50&lt;br /&gt;
| 100&lt;br /&gt;
| 0&lt;br /&gt;
| bgcolor=&amp;quot;#80ff00&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 22&lt;br /&gt;
| Pastel Green&lt;br /&gt;
| 50&lt;br /&gt;
| 100&lt;br /&gt;
| 50&lt;br /&gt;
| bgcolor=&amp;quot;#80ff80&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 23&lt;br /&gt;
| Pastel Cyan&lt;br /&gt;
| 50&lt;br /&gt;
| 100&lt;br /&gt;
| 100&lt;br /&gt;
| bgcolor=&amp;quot;#80ffff&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 24&lt;br /&gt;
| Bright Yellow&lt;br /&gt;
| 100&lt;br /&gt;
| 100&lt;br /&gt;
| 0&lt;br /&gt;
| bgcolor=&amp;quot;#ffff00&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 25&lt;br /&gt;
| Pastel Yellow&lt;br /&gt;
| 100&lt;br /&gt;
| 100&lt;br /&gt;
| 50&lt;br /&gt;
| bgcolor=&amp;quot;#ffff80&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 26&lt;br /&gt;
| Bright White&lt;br /&gt;
| 100&lt;br /&gt;
| 100&lt;br /&gt;
| 100&lt;br /&gt;
| bgcolor=&amp;quot;#ffffff&amp;quot; | &lt;br /&gt;
|}&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. So that 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;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>Apollo</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=Gate_Array&amp;diff=29782</id>
		<title>Gate Array</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=Gate_Array&amp;diff=29782"/>
				<updated>2009-02-20T20:22:08Z</updated>
		
		<summary type="html">&lt;p&gt;Apollo: Fixed error in &amp;quot;Select Pen&amp;quot; table: bit 4 needs to be zero&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Gate Array &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 Computer|KC compact]] system, the functions of the Gate-Array are &amp;quot;emulated&amp;quot; in [[TTL logic|TTL logic]] and by the [[Zilog Z8536 CIO|Zilog Z8536 CIO]]. &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, as it is 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;
{|&lt;br /&gt;
|-&lt;br /&gt;
| ''Bit 7'' &lt;br /&gt;
| ''Bit 6'' &lt;br /&gt;
| ''Function''&lt;br /&gt;
|-&lt;br /&gt;
| 0 &lt;br /&gt;
| 0 &lt;br /&gt;
| Select pen&lt;br /&gt;
|-&lt;br /&gt;
| 0 &lt;br /&gt;
| 1 &lt;br /&gt;
| Select colour for selected pen&lt;br /&gt;
|-&lt;br /&gt;
| 1 &lt;br /&gt;
| 0 &lt;br /&gt;
| Select screen mode, rom configuration and interrupt control&lt;br /&gt;
|-&lt;br /&gt;
| 1 &lt;br /&gt;
| 1 &lt;br /&gt;
| Ram Memory Management (note 1)&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 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;
==== 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;
{|&lt;br /&gt;
|-&lt;br /&gt;
| ''Bit'' &lt;br /&gt;
| ''Value'' &lt;br /&gt;
| ''Function''&lt;br /&gt;
|-&lt;br /&gt;
| 7 &lt;br /&gt;
| 0 &lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | Gate Array function &amp;quot;Pen Selection&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 6 &lt;br /&gt;
| 0&lt;br /&gt;
|-&lt;br /&gt;
| 5 &lt;br /&gt;
| - &lt;br /&gt;
| not used&lt;br /&gt;
|-&lt;br /&gt;
| 4 &lt;br /&gt;
| 1 &lt;br /&gt;
| Select border&lt;br /&gt;
|-&lt;br /&gt;
| 3 &lt;br /&gt;
| x &lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; | Ignored&lt;br /&gt;
|-&lt;br /&gt;
| 2 &lt;br /&gt;
| x&lt;br /&gt;
|-&lt;br /&gt;
| 1 &lt;br /&gt;
| x&lt;br /&gt;
|-&lt;br /&gt;
| 0 &lt;br /&gt;
| x&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| ''Bit'' &lt;br /&gt;
| ''Value'' &lt;br /&gt;
| ''Function''&lt;br /&gt;
|-&lt;br /&gt;
| 7 &lt;br /&gt;
| 0 &lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | Gate Array function &amp;quot;Pen Selection&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 6 &lt;br /&gt;
| 0&lt;br /&gt;
|-&lt;br /&gt;
| 5 &lt;br /&gt;
| - &lt;br /&gt;
| not used&lt;br /&gt;
|-&lt;br /&gt;
| 4 &lt;br /&gt;
| 0 &lt;br /&gt;
| Select pen&lt;br /&gt;
|-&lt;br /&gt;
| 3 &lt;br /&gt;
| x &lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; | Pen number&lt;br /&gt;
|-&lt;br /&gt;
| 2 &lt;br /&gt;
| x&lt;br /&gt;
|-&lt;br /&gt;
| 1 &lt;br /&gt;
| x&lt;br /&gt;
|-&lt;br /&gt;
| 0 &lt;br /&gt;
| x&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Colour selection  ====&lt;br /&gt;
&lt;br /&gt;
Once the pen has been selected the 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;
{|&lt;br /&gt;
|-&lt;br /&gt;
| ''Bit'' &lt;br /&gt;
| ''Value'' &lt;br /&gt;
| ''Function''&lt;br /&gt;
|-&lt;br /&gt;
| 7 &lt;br /&gt;
| 0 &lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | Gate Array function &amp;quot;Colour selection&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 6 &lt;br /&gt;
| 1&lt;br /&gt;
|-&lt;br /&gt;
| 5 &lt;br /&gt;
| - &lt;br /&gt;
| not used&lt;br /&gt;
|-&lt;br /&gt;
| 4 &lt;br /&gt;
| x &lt;br /&gt;
| rowspan=&amp;quot;5&amp;quot; | Colour number x&lt;br /&gt;
|-&lt;br /&gt;
| 3 &lt;br /&gt;
| x&lt;br /&gt;
|-&lt;br /&gt;
| 2 &lt;br /&gt;
| x&lt;br /&gt;
|-&lt;br /&gt;
| 1 &lt;br /&gt;
| x&lt;br /&gt;
|-&lt;br /&gt;
| 0 &lt;br /&gt;
| x&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Hardware colour palette  ====&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| ''Colour Number'' &lt;br /&gt;
| ''Colour Name'' &lt;br /&gt;
| ''Color''&lt;br /&gt;
|-&lt;br /&gt;
| 0 &lt;br /&gt;
| White &lt;br /&gt;
| bgcolor=&amp;quot;#808080&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 1 &lt;br /&gt;
| White (note 1) &lt;br /&gt;
| bgcolor=&amp;quot;#808080&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 2 &lt;br /&gt;
| Sea Green &lt;br /&gt;
| bgcolor=&amp;quot;#00ff80&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 3 &lt;br /&gt;
| Pastel Yellow &lt;br /&gt;
| bgcolor=&amp;quot;#ffff50&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 4 &lt;br /&gt;
| Blue &lt;br /&gt;
| bgcolor=&amp;quot;#000080&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 5 &lt;br /&gt;
| Purple &lt;br /&gt;
| bgcolor=&amp;quot;#ff0080&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 6 &lt;br /&gt;
| Cyan &lt;br /&gt;
| bgcolor=&amp;quot;#008080&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 7 &lt;br /&gt;
| Pink &lt;br /&gt;
| bgcolor=&amp;quot;#ff8080&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 8 &lt;br /&gt;
| Purple (note 1) &lt;br /&gt;
| bgcolor=&amp;quot;#ff0080&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 9 &lt;br /&gt;
| Pastel Yellow (note 1) &lt;br /&gt;
| bgcolor=&amp;quot;#ffff50&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 10 &lt;br /&gt;
| Bright Yellow &lt;br /&gt;
| bgcolor=&amp;quot;#ffff80&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 11 &lt;br /&gt;
| Bright White &lt;br /&gt;
| bgcolor=&amp;quot;#ffffff&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 12 &lt;br /&gt;
| Bright Red &lt;br /&gt;
| bgcolor=&amp;quot;#ff0000&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 13 &lt;br /&gt;
| Bright Magenta &lt;br /&gt;
| bgcolor=&amp;quot;#ff00ff&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 14 &lt;br /&gt;
| Orange &lt;br /&gt;
| bgcolor=&amp;quot;#ff8000&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 15 &lt;br /&gt;
| Pastel Magenta &lt;br /&gt;
| bgcolor=&amp;quot;#ff80ff&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 16 &lt;br /&gt;
| Blue (note 1) &lt;br /&gt;
| bgcolor=&amp;quot;#000080&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 17 &lt;br /&gt;
| Sea Green (note 1) &lt;br /&gt;
| bgcolor=&amp;quot;#00ff80&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 18 &lt;br /&gt;
| Bright Green &lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 19 &lt;br /&gt;
| Bright Cyan &lt;br /&gt;
| bgcolor=&amp;quot;#00ffff&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 20 &lt;br /&gt;
| Black &lt;br /&gt;
| bgcolor=&amp;quot;#000000&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 21 &lt;br /&gt;
| Bright Blue &lt;br /&gt;
| bgcolor=&amp;quot;#0000ff&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 22 &lt;br /&gt;
| Green &lt;br /&gt;
| bgcolor=&amp;quot;#008000&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 23 &lt;br /&gt;
| Sky Blue &lt;br /&gt;
| bgcolor=&amp;quot;#0080ff&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 24 &lt;br /&gt;
| Magenta &lt;br /&gt;
| bgcolor=&amp;quot;#800080&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 25 &lt;br /&gt;
| Pastel Green &lt;br /&gt;
| bgcolor=&amp;quot;#80ff80&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 26 &lt;br /&gt;
| Lime &lt;br /&gt;
| bgcolor=&amp;quot;#80ff00&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 27 &lt;br /&gt;
| Pastel Cyan &lt;br /&gt;
| bgcolor=&amp;quot;#80ffff&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 28 &lt;br /&gt;
| Red &lt;br /&gt;
| bgcolor=&amp;quot;#800000&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 29 &lt;br /&gt;
| Mauve &lt;br /&gt;
| bgcolor=&amp;quot;#8000ff&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 30 &lt;br /&gt;
| Yellow &lt;br /&gt;
| bgcolor=&amp;quot;#808000&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 31 &lt;br /&gt;
| Pastel Blue &lt;br /&gt;
| bgcolor=&amp;quot;#8080ff&amp;quot; | &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Notes  =====&lt;br /&gt;
&lt;br /&gt;
This is not an official colour &lt;br /&gt;
&lt;br /&gt;
Select screen mode and rom configuration &lt;br /&gt;
&lt;br /&gt;
This is a general purpose register responsible for the 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;
{|&lt;br /&gt;
|-&lt;br /&gt;
| ''Bit 1'' &lt;br /&gt;
| ''Bit 0'' &lt;br /&gt;
| ''Screen mode''&lt;br /&gt;
|-&lt;br /&gt;
| 0 &lt;br /&gt;
| 0 &lt;br /&gt;
| Mode 0, 160x200 resolution, 16 colours&lt;br /&gt;
|-&lt;br /&gt;
| 0 &lt;br /&gt;
| 1 &lt;br /&gt;
| Mode 1, 320x200 resolution, 4 colours&lt;br /&gt;
|-&lt;br /&gt;
| 1 &lt;br /&gt;
| 0 &lt;br /&gt;
| Mode 2, 640x200 resolution, 2 colours&lt;br /&gt;
|-&lt;br /&gt;
| 1 &lt;br /&gt;
| 1 &lt;br /&gt;
| Mode 3, 160x200 resolution, 4 colours (note 1)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This mode 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. &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 addressess &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 rom. 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 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 the data returned 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;
{|&lt;br /&gt;
|-&lt;br /&gt;
| ''Bit'' &lt;br /&gt;
| ''Value'' &lt;br /&gt;
| ''Function''&lt;br /&gt;
|-&lt;br /&gt;
| 7 &lt;br /&gt;
| 0 &lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | Gate Array function&lt;br /&gt;
|-&lt;br /&gt;
| 6 &lt;br /&gt;
| 1&lt;br /&gt;
|-&lt;br /&gt;
| 5 &lt;br /&gt;
| - &lt;br /&gt;
| not used&lt;br /&gt;
|-&lt;br /&gt;
| 4 &lt;br /&gt;
| x &lt;br /&gt;
| Interrupt generation control&lt;br /&gt;
|-&lt;br /&gt;
| 3 &lt;br /&gt;
| x &lt;br /&gt;
| &lt;br /&gt;
*1 Upper rom area disable &lt;br /&gt;
*0 Upper rom area enable&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2 &lt;br /&gt;
| x &lt;br /&gt;
| &lt;br /&gt;
*1 Lower rom area disable &lt;br /&gt;
*0 Lower rom area enable&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1 &lt;br /&gt;
| x &lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | Mode slection&lt;br /&gt;
|-&lt;br /&gt;
| 0 &lt;br /&gt;
| x&lt;br /&gt;
|}&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;
==== Conversion chart  ====&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 it's original colour. This is due to the firmware re- setting the colour. When using the firmware, use it's routines to select the colour, and the colour will remain. &lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| ''Firmware Colour Number'' &lt;br /&gt;
| ''Colour Name'' &lt;br /&gt;
| ''Hardware Number'' &lt;br /&gt;
| ''Quick reference colour value'' &lt;br /&gt;
| ''Color''&lt;br /&gt;
|-&lt;br /&gt;
| 0 &lt;br /&gt;
| Black &lt;br /&gt;
| 20 &lt;br /&gt;
| &amp;amp;amp;54 &lt;br /&gt;
| bgcolor=&amp;quot;#000000&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 1 &lt;br /&gt;
| Blue &lt;br /&gt;
| 4 &lt;br /&gt;
| &amp;amp;amp;44 &lt;br /&gt;
| bgcolor=&amp;quot;#000080&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 2 &lt;br /&gt;
| Bright Blue &lt;br /&gt;
| 21 &lt;br /&gt;
| &amp;amp;amp;55 &lt;br /&gt;
| bgcolor=&amp;quot;#0000ff&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 3 &lt;br /&gt;
| Red &lt;br /&gt;
| 28 &lt;br /&gt;
| &amp;amp;amp;5C &lt;br /&gt;
| bgcolor=&amp;quot;#800000&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 4 &lt;br /&gt;
| Magenta &lt;br /&gt;
| 24 &lt;br /&gt;
| &amp;amp;amp;58 &lt;br /&gt;
| bgcolor=&amp;quot;#800080&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 5 &lt;br /&gt;
| Mauve &lt;br /&gt;
| 29 &lt;br /&gt;
| &amp;amp;amp;5D &lt;br /&gt;
| bgcolor=&amp;quot;#8000ff&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 6 &lt;br /&gt;
| Bright Red &lt;br /&gt;
| 12 &lt;br /&gt;
| &amp;amp;amp;4C &lt;br /&gt;
| bgcolor=&amp;quot;#ff0000&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 7 &lt;br /&gt;
| Purple &lt;br /&gt;
| 5 &lt;br /&gt;
| &amp;amp;amp;45 &lt;br /&gt;
| bgcolor=&amp;quot;#ff0080&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 8 &lt;br /&gt;
| Bright Magenta &lt;br /&gt;
| 13 &lt;br /&gt;
| &amp;amp;amp;4D &lt;br /&gt;
| bgcolor=&amp;quot;#ff00ff&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 9 &lt;br /&gt;
| Green &lt;br /&gt;
| 22 &lt;br /&gt;
| &amp;amp;amp;56 &lt;br /&gt;
| bgcolor=&amp;quot;#008000&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 10 &lt;br /&gt;
| Cyan &lt;br /&gt;
| 6 &lt;br /&gt;
| &amp;amp;amp;46 &lt;br /&gt;
| bgcolor=&amp;quot;#008080&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 11 &lt;br /&gt;
| Sky Blue &lt;br /&gt;
| 23 &lt;br /&gt;
| &amp;amp;amp;57 &lt;br /&gt;
| bgcolor=&amp;quot;#0080ff&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 12 &lt;br /&gt;
| Yellow &lt;br /&gt;
| 30 &lt;br /&gt;
| &amp;amp;amp;5E &lt;br /&gt;
| bgcolor=&amp;quot;#808000&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 13 &lt;br /&gt;
| White &lt;br /&gt;
| 0 &lt;br /&gt;
| &amp;amp;amp;40 &lt;br /&gt;
| bgcolor=&amp;quot;#808080&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 14 &lt;br /&gt;
| Pastel Blue &lt;br /&gt;
| 31 &lt;br /&gt;
| &amp;amp;amp;5F &lt;br /&gt;
| bgcolor=&amp;quot;#8080ff&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 15 &lt;br /&gt;
| Orange &lt;br /&gt;
| 14 &lt;br /&gt;
| &amp;amp;amp;4E &lt;br /&gt;
| bgcolor=&amp;quot;#ff8000&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 16 &lt;br /&gt;
| Pink &lt;br /&gt;
| 7 &lt;br /&gt;
| &amp;amp;amp;47 &lt;br /&gt;
| bgcolor=&amp;quot;#ff8080&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 17 &lt;br /&gt;
| Pastel Magenta &lt;br /&gt;
| 15 &lt;br /&gt;
| &amp;amp;amp;4F &lt;br /&gt;
| bgcolor=&amp;quot;#ff80ff&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 18 &lt;br /&gt;
| Bright Green &lt;br /&gt;
| 18 &lt;br /&gt;
| &amp;amp;amp;52 &lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 19 &lt;br /&gt;
| Sea Green &lt;br /&gt;
| 2 &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 20 &lt;br /&gt;
| Bright Cyan &lt;br /&gt;
| 19 &lt;br /&gt;
| &amp;amp;amp;53 &lt;br /&gt;
| bgcolor=&amp;quot;#00ffff&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 21 &lt;br /&gt;
| Lime &lt;br /&gt;
| 26 &lt;br /&gt;
| &amp;amp;amp;5A &lt;br /&gt;
| bgcolor=&amp;quot;#80ff00&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 22 &lt;br /&gt;
| Pastel Green &lt;br /&gt;
| 25 &lt;br /&gt;
| &amp;amp;amp;59 &lt;br /&gt;
| bgcolor=&amp;quot;#80ff80&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 23 &lt;br /&gt;
| Pastel Cyan &lt;br /&gt;
| 27 &lt;br /&gt;
| &amp;amp;amp;5B &lt;br /&gt;
| bgcolor=&amp;quot;#80ffff&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 24 &lt;br /&gt;
| Bright Yellow &lt;br /&gt;
| 10 &lt;br /&gt;
| &amp;amp;amp;4A &lt;br /&gt;
| bgcolor=&amp;quot;#ffff80&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 25 &lt;br /&gt;
| Pastel Yellow &lt;br /&gt;
| 3 &lt;br /&gt;
| &amp;amp;amp;43 &lt;br /&gt;
| bgcolor=&amp;quot;#ffff80&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 26 &lt;br /&gt;
| Bright White &lt;br /&gt;
| 11 &lt;br /&gt;
| &amp;amp;amp;4B &lt;br /&gt;
| bgcolor=&amp;quot;#ffffff&amp;quot; | &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This chart also gives a quick reference guide for programming the colours. The number is the colour number which can be sent directly, once the pen has been selected, to get the colour wanted. &lt;br /&gt;
&lt;br /&gt;
Example: &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;
==== Pallette 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;
This table shows the relationship between hardware colour number, colour name and RGB mixing. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| ''Hardware Colour Index'' &lt;br /&gt;
| ''Colour Name'' &lt;br /&gt;
| ''R&amp;amp;nbsp;%'' &lt;br /&gt;
| ''G&amp;amp;nbsp;%'' &lt;br /&gt;
| ''B&amp;amp;nbsp;%'' &lt;br /&gt;
| ''Color''&lt;br /&gt;
|-&lt;br /&gt;
| 0 &lt;br /&gt;
| White &lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 50 &lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 50 &lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 50 &lt;br /&gt;
| bgcolor=&amp;quot;#808080&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 1 &lt;br /&gt;
| White &lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 50 &lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 50 &lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 50 &lt;br /&gt;
| bgcolor=&amp;quot;#808080&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 2 &lt;br /&gt;
| Sea Green &lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 0 &lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 100 &lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 50 &lt;br /&gt;
| bgcolor=&amp;quot;#00ff80&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 3 &lt;br /&gt;
| Pastel Yellow &lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 100 &lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 100 &lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 50 &lt;br /&gt;
| bgcolor=&amp;quot;#ffff80&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 4 &lt;br /&gt;
| Blue &lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 0 &lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 0 &lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 50 &lt;br /&gt;
| bgcolor=&amp;quot;#000080&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 5 &lt;br /&gt;
| Purple &lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 100 &lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 0 &lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 50 &lt;br /&gt;
| bgcolor=&amp;quot;#ff0080&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 6 &lt;br /&gt;
| Cyan &lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 0 &lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 50 &lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 50 &lt;br /&gt;
| bgcolor=&amp;quot;#008080&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 7 &lt;br /&gt;
| Pink &lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 100 &lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 50 &lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 50 &lt;br /&gt;
| bgcolor=&amp;quot;#ff8080&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 8 &lt;br /&gt;
| Purple &lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 100 &lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 0 &lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 50 &lt;br /&gt;
| bgcolor=&amp;quot;#ff0080&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 9 &lt;br /&gt;
| Pastel Yellow &lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 100 &lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 100 &lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 50 &lt;br /&gt;
| bgcolor=&amp;quot;#ffff80&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 10 &lt;br /&gt;
| Bright Yellow &lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 100 &lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 100 &lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 0 &lt;br /&gt;
| bgcolor=&amp;quot;#ffff00&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 11 &lt;br /&gt;
| Bright White &lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 100 &lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 100 &lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 100 &lt;br /&gt;
| bgcolor=&amp;quot;#ffffff&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 12 &lt;br /&gt;
| Bright Red &lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 100 &lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 0 &lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 0 &lt;br /&gt;
| bgcolor=&amp;quot;#ff0000&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 13 &lt;br /&gt;
| Bright Magenta &lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 100 &lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 0 &lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 100 &lt;br /&gt;
| bgcolor=&amp;quot;#ff00ff&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 14 &lt;br /&gt;
| Orange &lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 100 &lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 50 &lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 0 &lt;br /&gt;
| bgcolor=&amp;quot;#ff8000&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 15 &lt;br /&gt;
| Pastel Magenta &lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 100 &lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 50 &lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 100 &lt;br /&gt;
| bgcolor=&amp;quot;#ff80ff&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 16 &lt;br /&gt;
| Blue &lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 0 &lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 0 &lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 50 &lt;br /&gt;
| bgcolor=&amp;quot;#000080&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 17 &lt;br /&gt;
| Sea Green &lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 0 &lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 100 &lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 50 &lt;br /&gt;
| bgcolor=&amp;quot;#00ff80&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 18 &lt;br /&gt;
| Bright Green &lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 0 &lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 100 &lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 0 &lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 19 &lt;br /&gt;
| Bright Cyan &lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 0 &lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 100 &lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 100 &lt;br /&gt;
| bgcolor=&amp;quot;#00ffff&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 20 &lt;br /&gt;
| Black &lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 0 &lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 0 &lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 0 &lt;br /&gt;
| bgcolor=&amp;quot;#000000&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 21 &lt;br /&gt;
| Bright Blue &lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 0 &lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 0 &lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 100 &lt;br /&gt;
| bgcolor=&amp;quot;#0000ff&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 22 &lt;br /&gt;
| Green &lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 0 &lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 50 &lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 0 &lt;br /&gt;
| bgcolor=&amp;quot;#008000&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 23 &lt;br /&gt;
| Sky Blue &lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 0 &lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 50 &lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 100 &lt;br /&gt;
| bgcolor=&amp;quot;#0080ff&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 24 &lt;br /&gt;
| Magenta &lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 50 &lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 0 &lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 50 &lt;br /&gt;
| bgcolor=&amp;quot;#800080&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 25 &lt;br /&gt;
| Pastel Green &lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 50 &lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 100 &lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 50 &lt;br /&gt;
| bgcolor=&amp;quot;#80ff80&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 26 &lt;br /&gt;
| Lime &lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 50 &lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 100 &lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 0 &lt;br /&gt;
| bgcolor=&amp;quot;#80ff00&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 27 &lt;br /&gt;
| Pastel Cyan &lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 50 &lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 100 &lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 100 &lt;br /&gt;
| bgcolor=&amp;quot;#80ffff&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 28 &lt;br /&gt;
| Red &lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 50 &lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 0 &lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 0 &lt;br /&gt;
| bgcolor=&amp;quot;#800000&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 29 &lt;br /&gt;
| Mauve &lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 50 &lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 0 &lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 100 &lt;br /&gt;
| bgcolor=&amp;quot;#8000ff&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 30 &lt;br /&gt;
| Yellow &lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 50 &lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 50 &lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 0 &lt;br /&gt;
| bgcolor=&amp;quot;#808000&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 31 &lt;br /&gt;
| Pastel Blue &lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 50 &lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 50 &lt;br /&gt;
| align=&amp;quot;right&amp;quot; | 100 &lt;br /&gt;
| bgcolor=&amp;quot;#8080ff&amp;quot; | &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== RGB assignments for the software colours  ====&lt;br /&gt;
&lt;br /&gt;
This is simply a sidenote to illustrate a pattern in the RGB assignments of the software colours and to show how their value is calculated. &lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| ''Firmware Colour Number'' &lt;br /&gt;
| ''Colour Name'' &lt;br /&gt;
| ''R&amp;amp;nbsp;%'' &lt;br /&gt;
| ''G&amp;amp;nbsp;%'' &lt;br /&gt;
| ''B&amp;amp;nbsp;%'' &lt;br /&gt;
| ''Color''&lt;br /&gt;
|-&lt;br /&gt;
| 0 &lt;br /&gt;
| Black &lt;br /&gt;
| 0 &lt;br /&gt;
| 0 &lt;br /&gt;
| 0 &lt;br /&gt;
| bgcolor=&amp;quot;#000000&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 1 &lt;br /&gt;
| Blue &lt;br /&gt;
| 0 &lt;br /&gt;
| 0 &lt;br /&gt;
| 50 &lt;br /&gt;
| bgcolor=&amp;quot;#000080&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 2 &lt;br /&gt;
| Bright Blue &lt;br /&gt;
| 0 &lt;br /&gt;
| 0 &lt;br /&gt;
| 100 &lt;br /&gt;
| bgcolor=&amp;quot;#0000ff&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 3 &lt;br /&gt;
| Red &lt;br /&gt;
| 50 &lt;br /&gt;
| 0 &lt;br /&gt;
| 0 &lt;br /&gt;
| bgcolor=&amp;quot;#800000&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 4 &lt;br /&gt;
| Magenta &lt;br /&gt;
| 50 &lt;br /&gt;
| 0 &lt;br /&gt;
| 50 &lt;br /&gt;
| bgcolor=&amp;quot;#800080&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 5 &lt;br /&gt;
| Mauve &lt;br /&gt;
| 50 &lt;br /&gt;
| 0 &lt;br /&gt;
| 100 &lt;br /&gt;
| bgcolor=&amp;quot;#8000ff&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 6 &lt;br /&gt;
| Bright Red &lt;br /&gt;
| 100 &lt;br /&gt;
| 0 &lt;br /&gt;
| 0 &lt;br /&gt;
| bgcolor=&amp;quot;#ff0000&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 7 &lt;br /&gt;
| Purple &lt;br /&gt;
| 100 &lt;br /&gt;
| 0 &lt;br /&gt;
| 50 &lt;br /&gt;
| bgcolor=&amp;quot;#ff0080&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 8 &lt;br /&gt;
| Bright Magenta &lt;br /&gt;
| 100 &lt;br /&gt;
| 0 &lt;br /&gt;
| 100 &lt;br /&gt;
| bgcolor=&amp;quot;#ff00ff&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 9 &lt;br /&gt;
| Green &lt;br /&gt;
| 0 &lt;br /&gt;
| 50 &lt;br /&gt;
| 0 &lt;br /&gt;
| bgcolor=&amp;quot;#008000&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 10 &lt;br /&gt;
| Cyan &lt;br /&gt;
| 0 &lt;br /&gt;
| 50 &lt;br /&gt;
| 50 &lt;br /&gt;
| bgcolor=&amp;quot;#008080&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 11 &lt;br /&gt;
| Sky Blue &lt;br /&gt;
| 0 &lt;br /&gt;
| 50 &lt;br /&gt;
| 100 &lt;br /&gt;
| bgcolor=&amp;quot;#0080ff&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 12 &lt;br /&gt;
| Yellow &lt;br /&gt;
| 50 &lt;br /&gt;
| 50 &lt;br /&gt;
| 0 &lt;br /&gt;
| bgcolor=&amp;quot;#808000&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 13 &lt;br /&gt;
| White &lt;br /&gt;
| 50 &lt;br /&gt;
| 50 &lt;br /&gt;
| 50 &lt;br /&gt;
| bgcolor=&amp;quot;#808080&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 14 &lt;br /&gt;
| Pastel Blue &lt;br /&gt;
| 50 &lt;br /&gt;
| 50 &lt;br /&gt;
| 100 &lt;br /&gt;
| bgcolor=&amp;quot;#8080ff&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 15 &lt;br /&gt;
| Orange &lt;br /&gt;
| 100 &lt;br /&gt;
| 50 &lt;br /&gt;
| 0 &lt;br /&gt;
| bgcolor=&amp;quot;#ff8000&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 16 &lt;br /&gt;
| Pink &lt;br /&gt;
| 100 &lt;br /&gt;
| 50 &lt;br /&gt;
| 50 &lt;br /&gt;
| bgcolor=&amp;quot;#ff8080&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 17 &lt;br /&gt;
| Pastel Magenta &lt;br /&gt;
| 100 &lt;br /&gt;
| 50 &lt;br /&gt;
| 100 &lt;br /&gt;
| bgcolor=&amp;quot;#ff80ff&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 18 &lt;br /&gt;
| Bright Green &lt;br /&gt;
| 0 &lt;br /&gt;
| 100 &lt;br /&gt;
| 0 &lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 19 &lt;br /&gt;
| Sea Green &lt;br /&gt;
| 0 &lt;br /&gt;
| 100 &lt;br /&gt;
| 50 &lt;br /&gt;
| bgcolor=&amp;quot;#00ff80&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 20 &lt;br /&gt;
| Bright Cyan &lt;br /&gt;
| 0 &lt;br /&gt;
| 100 &lt;br /&gt;
| 100 &lt;br /&gt;
| bgcolor=&amp;quot;#00ffff&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 21 &lt;br /&gt;
| Lime &lt;br /&gt;
| 50 &lt;br /&gt;
| 100 &lt;br /&gt;
| 0 &lt;br /&gt;
| bgcolor=&amp;quot;#80ff00&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 22 &lt;br /&gt;
| Pastel Green &lt;br /&gt;
| 50 &lt;br /&gt;
| 100 &lt;br /&gt;
| 50 &lt;br /&gt;
| bgcolor=&amp;quot;#80ff80&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 23 &lt;br /&gt;
| Pastel Cyan &lt;br /&gt;
| 50 &lt;br /&gt;
| 100 &lt;br /&gt;
| 100 &lt;br /&gt;
| bgcolor=&amp;quot;#80ffff&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 24 &lt;br /&gt;
| Bright Yellow &lt;br /&gt;
| 100 &lt;br /&gt;
| 100 &lt;br /&gt;
| 0 &lt;br /&gt;
| bgcolor=&amp;quot;#ffff00&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 25 &lt;br /&gt;
| Pastel Yellow &lt;br /&gt;
| 100 &lt;br /&gt;
| 100 &lt;br /&gt;
| 50 &lt;br /&gt;
| bgcolor=&amp;quot;#ffff80&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 26 &lt;br /&gt;
| Bright White &lt;br /&gt;
| 100 &lt;br /&gt;
| 100 &lt;br /&gt;
| 100 &lt;br /&gt;
| bgcolor=&amp;quot;#ffffff&amp;quot; | &lt;br /&gt;
|}&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. So that 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;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>Apollo</name></author>	</entry>

	</feed>