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

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=Emulator_IDs&amp;diff=126930</id>
		<title>Emulator IDs</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=Emulator_IDs&amp;diff=126930"/>
				<updated>2025-10-25T05:00:42Z</updated>
		
		<summary type="html">&lt;p&gt;FindYWay: Fix markup&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Some CPC emulators use Port &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 effects which will not work on an emulator or using special emulator-specific features). Reading from this port returns the Emulator-ID or &amp;amp;FF on the real CPC and on emulators which do not provide this feature. &lt;br /&gt;
&lt;br /&gt;
== Showing the Emulator-ID ==&lt;br /&gt;
In Locomotive BASIC, type the following command:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PRINT HEX$(INP(&amp;amp;FEFE))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== List of known Emulator-IDs  ==&lt;br /&gt;
&lt;br /&gt;
* #78: Amspirit&lt;br /&gt;
* #88: VirtualCPC&lt;br /&gt;
* #99: WinCPC&lt;br /&gt;
* #A0: JavaCPC&lt;br /&gt;
* #AA: PC-CPC&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, CPCEC([https://github.com/cpcitor/cpcec/blob/e1a8ea4a076de661f03c78058ca8c3adf41bde14/cpcec.c#L2047 source])&lt;br /&gt;
* #FF: Caprice, WinApe, MAME or a real CPC&lt;br /&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;
&lt;br /&gt;
On a healthy and bare Amstrad CPC, &amp;amp;FF is the value you can usually read on the DATA bus in high impedance state. On a healthy and bare Amstrad Plus, this is usually &amp;amp;78. This property has been used to detect the Plus machines in several productions (and failed on several occasions as this is not a reliable technique). [https://www.grimware.org/doku.php/documentations/devices/io.devices#blind.test Source]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;You should never do anything relying on the value of the DATA bus in High impedance state and expect it to work the same on all machines. It won't!&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Emulator]] [[Category:Programming]]&lt;/div&gt;</summary>
		<author><name>FindYWay</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=Emulator_IDs&amp;diff=126929</id>
		<title>Emulator IDs</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=Emulator_IDs&amp;diff=126929"/>
				<updated>2025-10-25T04:44:19Z</updated>
		
		<summary type="html">&lt;p&gt;FindYWay: CPCEC returns 0xCE like CPCE&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Some CPC emulators use Port &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 effects which will not work on an emulator or using special emulator-specific features). Reading from this port returns the Emulator-ID or &amp;amp;FF on the real CPC and on emulators which do not provide this feature. &lt;br /&gt;
&lt;br /&gt;
== Showing the Emulator-ID ==&lt;br /&gt;
In Locomotive BASIC, type the following command:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PRINT HEX$(INP(&amp;amp;FEFE))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== List of known Emulator-IDs  ==&lt;br /&gt;
&lt;br /&gt;
* #78: Amspirit&lt;br /&gt;
* #88: VirtualCPC&lt;br /&gt;
* #99: WinCPC&lt;br /&gt;
* #A0: JavaCPC&lt;br /&gt;
* #AA: PC-CPC&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, CPCEC&amp;lt;ref&amp;gt;[https://github.com/cpcitor/cpcec/blob/e1a8ea4a076de661f03c78058ca8c3adf41bde14/cpcec.c#L2047 source code]&amp;lt;/ref&amp;gt;&lt;br /&gt;
* #FF: Caprice, WinApe, MAME or a real CPC&lt;br /&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;
&lt;br /&gt;
On a healthy and bare Amstrad CPC, &amp;amp;FF is the value you can usually read on the DATA bus in high impedance state. On a healthy and bare Amstrad Plus, this is usually &amp;amp;78. This property has been used to detect the Plus machines in several productions (and failed on several occasions as this is not a reliable technique). [https://www.grimware.org/doku.php/documentations/devices/io.devices#blind.test Source]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;You should never do anything relying on the value of the DATA bus in High impedance state and expect it to work the same on all machines. It won't!&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Emulator]] [[Category:Programming]]&lt;/div&gt;</summary>
		<author><name>FindYWay</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=Emulators&amp;diff=126910</id>
		<title>Emulators</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=Emulators&amp;diff=126910"/>
				<updated>2025-10-19T07:12:29Z</updated>
		
		<summary type="html">&lt;p&gt;FindYWay: /* Desktop */ CPCEC runs on Linux (it is a SDL app)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[https://www.cpcwiki.eu/forum/emulators/which-emulator-s-do-you-use/ Vote for your favorite emulator] Poll on CPCWiki forum&lt;br /&gt;
&lt;br /&gt;
[[Emulator evaluation tools]] Software list for evaluating CPC emulator accuracy&lt;br /&gt;
&lt;br /&gt;
[[Emulator tooling]] UI screenshots of tooling in CPC emulators&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Software Platforms (Full OS independance) =&lt;br /&gt;
&lt;br /&gt;
=== Java Platform  ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Emulator name&lt;br /&gt;
! External link&lt;br /&gt;
! Current version&lt;br /&gt;
! Latest release&lt;br /&gt;
! Developer tools&lt;br /&gt;
! Amstrad Plus&lt;br /&gt;
! Also emulates&lt;br /&gt;
! License&lt;br /&gt;
|-&lt;br /&gt;
| [[Arnold Jnr|Arnold Jnr]]&lt;br /&gt;
| [https://web.archive.org/web/20160727011826/http://www.arnoldemu.freeserve.co.uk/]&lt;br /&gt;
| &lt;br /&gt;
| Aug 27, 2001&lt;br /&gt;
| ❌&lt;br /&gt;
| ❌&lt;br /&gt;
| -&lt;br /&gt;
| Open source&lt;br /&gt;
|-&lt;br /&gt;
| [[JavaCPC|JavaCPC Desktop]]&lt;br /&gt;
| [https://sourceforge.net/projects/javacpc/] [http://sourceforge.net/projects/javagx4000/ JavaGX4000] [http://sourceforge.net/projects/cpcinajar/ CPCInAJar]&lt;br /&gt;
| 3.0.2&lt;br /&gt;
| Apr 8, 2022&lt;br /&gt;
| ✅&lt;br /&gt;
| ✅&lt;br /&gt;
| [[KC Compact]]&lt;br /&gt;
| Donationware &amp;amp; Open source&lt;br /&gt;
|-&lt;br /&gt;
| [[JEMU|JEMU]]&lt;br /&gt;
| [http://jemu.winape.net/]&lt;br /&gt;
| &lt;br /&gt;
| Feb 19, 2007&lt;br /&gt;
| ❌&lt;br /&gt;
| ❌&lt;br /&gt;
| [[ZX Spectrum]], [[ZX80/81]], [[BBC Micro]], [[VZ-300]]&lt;br /&gt;
| Open source&lt;br /&gt;
|-&lt;br /&gt;
| [[WebCPC|WebCPC]]&lt;br /&gt;
| [http://sourceforge.net/projects/webcpc/] [https://web.archive.org/web/20110903132520/http://java.cpc-live.com/ JavaCPC Applet]&lt;br /&gt;
| r15&lt;br /&gt;
| Dec 31, 2010&lt;br /&gt;
| ❌&lt;br /&gt;
| ❌&lt;br /&gt;
| -&lt;br /&gt;
| Open source&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note: Java applets have been discontinued and removed in all major web browsers. So JEMU and WebCPC could belong to the &amp;quot;Discontinued OS&amp;quot; part of this article. But with [https://libgdx.com/ libGDX] and a bit of work, they could make their Java emulators work on browsers again.&lt;br /&gt;
&lt;br /&gt;
=== JS / Wasm / Web Platform ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Emulator name&lt;br /&gt;
! External link&lt;br /&gt;
! Current version&lt;br /&gt;
! Latest release&lt;br /&gt;
! Developer tools&lt;br /&gt;
! Amstrad Plus&lt;br /&gt;
! Also emulates&lt;br /&gt;
! License&lt;br /&gt;
|-&lt;br /&gt;
| [[CPCBox|CPCBox]] &lt;br /&gt;
| [https://www.retroshowcase.gr/cpcbox-master/] [https://web.archive.org/web/20190702084943/http://www.cpcbox.com/] [https://bzhgames.xyz/index.php BZH Games]&lt;br /&gt;
| beta &lt;br /&gt;
| Dec 28, 2013&lt;br /&gt;
| ❌&lt;br /&gt;
| ❌&lt;br /&gt;
| -&lt;br /&gt;
| Freeware&lt;br /&gt;
|-&lt;br /&gt;
| [[CrocoDS|CrocoDS]] &lt;br /&gt;
| [https://crocods.org/web/] [https://github.com/redbug26/crocods Repo]&lt;br /&gt;
| &lt;br /&gt;
| Jun 9, 2020&lt;br /&gt;
| ⚠️&lt;br /&gt;
| ❌&lt;br /&gt;
| -&lt;br /&gt;
| Open source&lt;br /&gt;
|-&lt;br /&gt;
| [[MAME|Emularity (MAME)]] &lt;br /&gt;
| [https://github.com/db48x/emularity] [http://jsmess.textfiles.com/ JSMESS] [https://classicreload.com/platform/amstrad%20cpc Classic Reload]&lt;br /&gt;
[https://archive.org/details/softwarelibrary_cpc Internet Archive CPC Software Library]&lt;br /&gt;
| &lt;br /&gt;
| Jan 27, 2024&lt;br /&gt;
| ❌&lt;br /&gt;
| ✅&lt;br /&gt;
| Tons of vintage computers, game consoles and arcade systems&lt;br /&gt;
| Open source&lt;br /&gt;
|-&lt;br /&gt;
| [[Roland javascript emulator|Roland]] &lt;br /&gt;
| [https://web.archive.org/web/20190308142014/http://roland.retrolandia.net/] [https://www.juegotk.com/emulador-online/2/amstrad-cpc464.html JuegoTk]&lt;br /&gt;
| &lt;br /&gt;
| Sep 24, 2011&lt;br /&gt;
| ❌&lt;br /&gt;
| ❌&lt;br /&gt;
| -&lt;br /&gt;
| Open source&lt;br /&gt;
|-&lt;br /&gt;
| [[Ronald|Ronald]] &lt;br /&gt;
| [https://ronald.int82.dev] [https://github.com/mdm/ronald Repo]&lt;br /&gt;
| &lt;br /&gt;
| Apr 1, 2024&lt;br /&gt;
| ⚠️&lt;br /&gt;
| ❌&lt;br /&gt;
| -&lt;br /&gt;
| Open source&lt;br /&gt;
|-&lt;br /&gt;
| [[RVMplayer|RVMplayer]] &lt;br /&gt;
| [https://www.retrovirtualmachine.org/rvmplayer/] [https://www.amstradcpc.es/doku.php?id=emus Amstrad ESP] [https://amstradpower.es/juega-online/ Juega Online]&lt;br /&gt;
| 0.1.1&lt;br /&gt;
| May 6, 2023&lt;br /&gt;
| ❌&lt;br /&gt;
| ❌&lt;br /&gt;
| [[ZX Spectrum]]&lt;br /&gt;
| Freeware&lt;br /&gt;
|-&lt;br /&gt;
| [[Tiny Emus]]&lt;br /&gt;
| [https://floooh.github.io/tiny8bit/] [https://floooh.github.io/tiny8bit/cpc-ui.html CPC UI] [http://floooh.github.io/virtualkc/ yakc] [http://cpc.novidee.com/ zpz] [https://devilmarkus.de/ WebGL 3d 8-bit] [https://youfiles.herokuapp.com/pcemulator/ PC Classic Games]&lt;br /&gt;
[https://www.sean.co.uk/books/amstrad/index.shtm Sean's CPC Games] [https://online.oldgames.sk/play/cpc Online OldGames] [https://bzhgames.xyz/amstrad.php BZH Games]&lt;br /&gt;
&lt;br /&gt;
[https://acpc.me/index.php?language=eng Arcade Room acpc.me] [https://www.amstradcpcgames.eu/ Amstrad CPC Games]&lt;br /&gt;
| &lt;br /&gt;
| Jan 6, 2025&lt;br /&gt;
| ✅&lt;br /&gt;
| ❌&lt;br /&gt;
| [[KC Compact]], [[ZX Spectrum]], [[VIC-20]], [[Commodore 64]], [[Acorn Atom]], [[KC 85]], [[KC 87]], [[Z9001]], [[Z1013]], [[LC80]]&lt;br /&gt;
| Open source&lt;br /&gt;
|-&lt;br /&gt;
| [[Griffin CPC emulator|Xiragon]]&lt;br /&gt;
| [https://web.archive.org/web/20191027200008/http://xiragon.com/]&lt;br /&gt;
| &lt;br /&gt;
| Nov 28, 2012&lt;br /&gt;
| ❌&lt;br /&gt;
| ❌&lt;br /&gt;
| -&lt;br /&gt;
| Open source&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== [https://docs.libretro.com/start/understanding/ Libretro] (API for emulators) ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Core name&lt;br /&gt;
! External link&lt;br /&gt;
! Current version&lt;br /&gt;
! Latest release&lt;br /&gt;
! Developer tools&lt;br /&gt;
! Amstrad Plus&lt;br /&gt;
! Also emulates&lt;br /&gt;
! License&lt;br /&gt;
|-&lt;br /&gt;
| [[CaPriCe|libretro-cap32]]&lt;br /&gt;
| [https://github.com/libretro/libretro-cap32]&lt;br /&gt;
| 4.5.4&lt;br /&gt;
| Dec 18, 2023&lt;br /&gt;
| -&lt;br /&gt;
| ✅&lt;br /&gt;
| -&lt;br /&gt;
| Open source&lt;br /&gt;
|-&lt;br /&gt;
| [[CrocoDS|libretro-crocods]]&lt;br /&gt;
| [https://github.com/libretro/libretro-crocods]&lt;br /&gt;
| &lt;br /&gt;
| Oct 16, 2024&lt;br /&gt;
| -&lt;br /&gt;
| ❌&lt;br /&gt;
| -&lt;br /&gt;
| Open source&lt;br /&gt;
|-&lt;br /&gt;
| [[MAME|LRMAME]]&lt;br /&gt;
| [https://github.com/libretro/mame]&lt;br /&gt;
| 0.277&lt;br /&gt;
| Apr 30, 2025&lt;br /&gt;
| -&lt;br /&gt;
| ✅&lt;br /&gt;
| Tons of vintage computers, game consoles and arcade systems&lt;br /&gt;
| Open source&lt;br /&gt;
|-&lt;br /&gt;
| [[SugarBox|SugarLibRetro]]&lt;br /&gt;
| [https://github.com/Tom1975/SugarLibRetro] (wraps independent lib [https://github.com/Tom1975/CPCCore CPCCore])&lt;br /&gt;
| git&lt;br /&gt;
| Jan 10, 2020&lt;br /&gt;
| -&lt;br /&gt;
| ✅&lt;br /&gt;
| -&lt;br /&gt;
| Open source&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Several frontends exist for Libretro: [https://www.emuvr.net/ EmuVR], [https://github.com/leiradel/hackable-console Hackable Console], [https://ludo.libretro.com/ Ludo], [https://github.com/shauninman/MinUI MinUI], [https://www.retroarch.com/ RetroArch], etc...&lt;br /&gt;
&lt;br /&gt;
And several distributions exist based on RetroArch: [https://www.retrobat.org/ RetroBat], [https://www.lakka.tv/ Lakka], [https://retropie.org.uk/ RetroPie], [https://batocera.org/ Batocera], [https://www.recalbox.com/ Recalbox], etc...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Operating Systems =&lt;br /&gt;
&lt;br /&gt;
=== Desktop ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Emulator name&lt;br /&gt;
! External link&lt;br /&gt;
! Windows&lt;br /&gt;
! macOS&lt;br /&gt;
! Linux&lt;br /&gt;
! Current version&lt;br /&gt;
! Latest release&lt;br /&gt;
! Developer tools&lt;br /&gt;
! Amstrad Plus&lt;br /&gt;
! Also emulates&lt;br /&gt;
! License&lt;br /&gt;
|-&lt;br /&gt;
| [[ACE_(Emulator)|ACE]]&lt;br /&gt;
| [http://ace.cpcscene.net MorphOS and Haiku] [https://web.libera.chat/#cpc-fr IRC chan] [https://framagit.org/search?search=acepansion Repo]&lt;br /&gt;
| ❌&lt;br /&gt;
| ❌&lt;br /&gt;
| ❌&lt;br /&gt;
| 1.26&lt;br /&gt;
| Jan 1, 2024&lt;br /&gt;
| ✅&lt;br /&gt;
| ✅&lt;br /&gt;
| Dozens of CPC hardware expansions thru plugins&lt;br /&gt;
| Freeware (plugins are Open Source)&lt;br /&gt;
|-&lt;br /&gt;
| [[ACE-DL]]&lt;br /&gt;
| [http://www.roudoudou.com/ACE-DL] [https://discord.gg/rKxFPndHPw Discord] [http://ace.cpcscene.net Based on ACE]&lt;br /&gt;
| ✅&lt;br /&gt;
| ✅&lt;br /&gt;
| ❗&lt;br /&gt;
| MayLeven&lt;br /&gt;
| May 11, 2025&lt;br /&gt;
| ✅&lt;br /&gt;
| ✅&lt;br /&gt;
| -&lt;br /&gt;
| Freeware&lt;br /&gt;
|-&lt;br /&gt;
| [[Amspirit|AMSpiriT]]&lt;br /&gt;
| [https://www.amspirit.fr/] [https://discord.com/invite/g37me8WMW6 Discord] [https://forum.system-cfg.com/viewtopic.php?f=24&amp;amp;t=11535 Forum]&lt;br /&gt;
| ✅&lt;br /&gt;
| ❌&lt;br /&gt;
| ❌&lt;br /&gt;
| v2 rc1&lt;br /&gt;
| Jul 3, 2025&lt;br /&gt;
| ❌&lt;br /&gt;
| ✅&lt;br /&gt;
| -&lt;br /&gt;
| Freeware&lt;br /&gt;
|-&lt;br /&gt;
| [[Arnimedes|Arnimedes]] &lt;br /&gt;
| [http://www.arnimedes.de/]&lt;br /&gt;
| ✅&lt;br /&gt;
| ❌&lt;br /&gt;
| ❌&lt;br /&gt;
| 1.02&lt;br /&gt;
| Jul 7, 2012&lt;br /&gt;
| ❌&lt;br /&gt;
| ❌&lt;br /&gt;
| -&lt;br /&gt;
| Freeware&lt;br /&gt;
|-&lt;br /&gt;
| [[Arnold_(Emulator)|Arnold]] &lt;br /&gt;
| [https://cpcrulez.fr/emulateurs_download-WIN-arnold.htm] [https://www.cpcwiki.eu/forum/emulators/another-version-of-arnold-emulator/ Aeliss fork] [http://www.yasara.org/cpc/ Arnold TNG]&lt;br /&gt;
[https://web.archive.org/web/20191023094109/https://www.bannister.org/software/arnold.htm macOS] [http://hirudov.com/amiga/Arnold.php AmigaOS PPC]&lt;br /&gt;
| ✅&lt;br /&gt;
| ✅&lt;br /&gt;
| 🛠️&lt;br /&gt;
|&lt;br /&gt;
| May 13, 2017&lt;br /&gt;
| ⚠️&lt;br /&gt;
| ✅&lt;br /&gt;
| [[KC Compact]], [[Aleste 520EX]]&lt;br /&gt;
| Open source&lt;br /&gt;
|-&lt;br /&gt;
| [[Caprice Forever]] &lt;br /&gt;
| [http://www.cpc-power.com/cpcarchives/index.php?page=articles&amp;amp;num=73]&lt;br /&gt;
| ✅&lt;br /&gt;
| ❌&lt;br /&gt;
| ❌&lt;br /&gt;
| 25.5&lt;br /&gt;
| May 4, 2025&lt;br /&gt;
| ✅&lt;br /&gt;
| ✅&lt;br /&gt;
| -&lt;br /&gt;
| Open source&lt;br /&gt;
|-&lt;br /&gt;
| [[CaPriCe|Caprice32]] &lt;br /&gt;
| [https://github.com/ColinPitrat/caprice32/releases] [http://sourceforge.net/projects/caprice32/ Old repo] [https://snapcraft.io/caprice32 Linux] [https://code.google.com/archive/p/cpcsdk/ Reloaded]&lt;br /&gt;
[https://github.com/kletellier/cpc4rpi Cpc4Rpi] [https://github.com/KaosOverride/CapriceRPI CapriceRPI] [https://www.arananet.net/cpc-pi/ CPC-PI]&lt;br /&gt;
| ✅&lt;br /&gt;
| ✅&lt;br /&gt;
| ✅&lt;br /&gt;
| 4.6.0&lt;br /&gt;
| Feb 14, 2025&lt;br /&gt;
| ⚠️&lt;br /&gt;
| ✅&lt;br /&gt;
| [http://aleste520.narod.ru/caprice.html Aleste 520EX]&lt;br /&gt;
| Donationware &amp;amp; Open source&lt;br /&gt;
|-&lt;br /&gt;
| [[Clock Signal|Clock Signal]] &lt;br /&gt;
| [https://github.com/TomHarte/CLK/releases] [https://snapcraft.io/clock-signal Linux] [https://snapcraft.io/install/clock-signal/raspbian Raspberry Pi]&lt;br /&gt;
| ❌&lt;br /&gt;
| ✅&lt;br /&gt;
| ✅&lt;br /&gt;
| &lt;br /&gt;
| Mar 20, 2025&lt;br /&gt;
| ❌&lt;br /&gt;
| ❌&lt;br /&gt;
| [[ZX Spectrum]], [[ZX80/81]], [[Enterprise]], [[MSX|MSX 1&amp;amp;2]], [[Oric 1/Atmos|Oric]], [[ColecoVision]], [[Apple II]], [[VIC-20]], [[Atari 2600]], [[Atari ST]], [[Acorn Electron|Electron]], [[Archimedes]], [[Macintosh]], [[Master System]]&lt;br /&gt;
| Donationware &amp;amp; Open source&lt;br /&gt;
|-&lt;br /&gt;
| [[CoPaCabana|CoPaCabana]]&lt;br /&gt;
| [http://copacabana.emuunlim.com/]&lt;br /&gt;
| ✅&lt;br /&gt;
| ❌&lt;br /&gt;
| ❌&lt;br /&gt;
| 0.74&lt;br /&gt;
| Apr 12, 2006&lt;br /&gt;
| ⚠️&lt;br /&gt;
| ❌&lt;br /&gt;
| -&lt;br /&gt;
| Donationware&lt;br /&gt;
|-&lt;br /&gt;
| [[CPC++|CPC++]] &lt;br /&gt;
| [http://bricerive.free.fr/cpc/cpcpp.html]&lt;br /&gt;
| ✅&lt;br /&gt;
| ✅&lt;br /&gt;
| ❗&lt;br /&gt;
| b700&lt;br /&gt;
| May 31, 2015&lt;br /&gt;
| ❌&lt;br /&gt;
| ❌&lt;br /&gt;
| -&lt;br /&gt;
| Freeware&lt;br /&gt;
|-&lt;br /&gt;
| [[cpc4x|cpc4x]] &lt;br /&gt;
| [http://www.ulrich-cordes.de/cpc/english/cpcemu.htm]&lt;br /&gt;
| ❌&lt;br /&gt;
| ❌&lt;br /&gt;
| 🛠️&lt;br /&gt;
| 0.26&lt;br /&gt;
| Dec 11, 2004&lt;br /&gt;
| ❌&lt;br /&gt;
| ❌&lt;br /&gt;
| -&lt;br /&gt;
| Open source&lt;br /&gt;
|-&lt;br /&gt;
| [[CPCEC|CPCEC]] &lt;br /&gt;
| [http://cngsoft.no-ip.org/cpcec.htm] [https://github.com/cpcitor/cpcec Repo] [http://cngsoft.no-ip.org/ CPCE] [https://github.com/AmatCoder/CPCEG CPCEG]&lt;br /&gt;
| ✅&lt;br /&gt;
| 🛠️&lt;br /&gt;
| ✅&lt;br /&gt;
| &lt;br /&gt;
| Apr 27, 2025&lt;br /&gt;
| ⚠️&lt;br /&gt;
| ✅&lt;br /&gt;
| [[ZX Spectrum]], [[Commodore 64]], [[MSX|MSX 1&amp;amp;2]]&lt;br /&gt;
| Open source&lt;br /&gt;
|-&lt;br /&gt;
| [[CPCEC|cpcec-gtk]] &lt;br /&gt;
| [https://bitbucket.org/norecess464/cpcec-gtk/]&lt;br /&gt;
| ❌&lt;br /&gt;
| ❌&lt;br /&gt;
| 🛠️&lt;br /&gt;
| &lt;br /&gt;
| Feb 4, 2023&lt;br /&gt;
| ✅&lt;br /&gt;
| ✅&lt;br /&gt;
| -&lt;br /&gt;
| Open source&lt;br /&gt;
|-&lt;br /&gt;
| [[CPCemu|CPCemu]] &lt;br /&gt;
| [http://www.cpc-emu.org/]&lt;br /&gt;
| ✅&lt;br /&gt;
| ✅&lt;br /&gt;
| ✅&lt;br /&gt;
| 3.0.2&lt;br /&gt;
| Apr 24, 2025&lt;br /&gt;
| ✅&lt;br /&gt;
| ❌&lt;br /&gt;
| -&lt;br /&gt;
| Freeware&lt;br /&gt;
|-&lt;br /&gt;
| [[CPCEPower|CPCEPower]] &lt;br /&gt;
| [https://www.cpc-power.com/cpcarchives/index.php?page=articles&amp;amp;num=73]&lt;br /&gt;
| ✅&lt;br /&gt;
| ✅&lt;br /&gt;
| ✅&lt;br /&gt;
| 2105&lt;br /&gt;
| Jun 4, 2021&lt;br /&gt;
| ❌&lt;br /&gt;
| ✅&lt;br /&gt;
| -&lt;br /&gt;
| Donationware&lt;br /&gt;
|-&lt;br /&gt;
| [[CPCSharp|CPCSharp]] &lt;br /&gt;
| [https://github.com/dolbz/CPCSharp/releases/]&lt;br /&gt;
| ✅&lt;br /&gt;
| ✅&lt;br /&gt;
| ❌&lt;br /&gt;
| 1.0.0-beta1&lt;br /&gt;
| Apr 7, 2021&lt;br /&gt;
| ⚠️&lt;br /&gt;
| ❌&lt;br /&gt;
| -&lt;br /&gt;
| Open source&lt;br /&gt;
|-&lt;br /&gt;
| [[CPvC|CPvC]]&lt;br /&gt;
| [https://github.com/alybaek2/cpvc]&lt;br /&gt;
| ✅&lt;br /&gt;
| ❌&lt;br /&gt;
| ❌&lt;br /&gt;
| &lt;br /&gt;
| Sep 30, 2022&lt;br /&gt;
| ❌&lt;br /&gt;
| ❌&lt;br /&gt;
| -&lt;br /&gt;
| Open source&lt;br /&gt;
|-&lt;br /&gt;
| [[CrocoDS|CrocoDS]]&lt;br /&gt;
| [https://crazypiri.eu/crocods/] [https://github.com/redbug26/crocods Repo]&lt;br /&gt;
| ✅&lt;br /&gt;
| ✅&lt;br /&gt;
| ❌&lt;br /&gt;
| 4.0 beta3&lt;br /&gt;
| Dec 10, 2023&lt;br /&gt;
| ⚠️&lt;br /&gt;
| ❌&lt;br /&gt;
| -&lt;br /&gt;
| Open source&lt;br /&gt;
|-&lt;br /&gt;
| [[DSP|DSP]]&lt;br /&gt;
| [https://github.com/leniad/dsp-emulator/]&lt;br /&gt;
| ✅&lt;br /&gt;
| ✅&lt;br /&gt;
| 🛠️&lt;br /&gt;
| 0.24wip1&lt;br /&gt;
| Apr 30, 2025&lt;br /&gt;
| ❌&lt;br /&gt;
| ❌&lt;br /&gt;
| [[ZX Spectrum]], [[Commodore 64]], [[Oric 1/Atmos|Oric]], [[ColecoVision]], [[Game Boy]], [[NES]], [[SG-1000]], [[Master System]], [[Game Gear]], [[Super Cassette Vision]], [[PV-1000]], [[PV-2000]], [[Arcade]]&lt;br /&gt;
| Open source&lt;br /&gt;
|-&lt;br /&gt;
| [[ep128emu|ep128emu]]&lt;br /&gt;
| [https://github.com/istvan-v/ep128emu]&lt;br /&gt;
| ✅&lt;br /&gt;
| 🛠️&lt;br /&gt;
| 🛠️&lt;br /&gt;
| 2.0.11.2&lt;br /&gt;
| Apr 19, 2019&lt;br /&gt;
| ⚠️&lt;br /&gt;
| ❌&lt;br /&gt;
| [[ZX Spectrum]], [[Enterprise]]&lt;br /&gt;
| Donationware &amp;amp; Open source&lt;br /&gt;
|-&lt;br /&gt;
| [[Gemux|Gemux]] &lt;br /&gt;
| [https://www.cpcwiki.eu/forum/emulators/gemux-cpc/]&lt;br /&gt;
| ✅&lt;br /&gt;
| ❌&lt;br /&gt;
| ❗&lt;br /&gt;
| &lt;br /&gt;
| Nov 5, 2024&lt;br /&gt;
| ❌&lt;br /&gt;
| ❌&lt;br /&gt;
| -&lt;br /&gt;
| Freeware&lt;br /&gt;
|-&lt;br /&gt;
| [[MESS|MAME]]&lt;br /&gt;
| [http://mamedev.org] [http://se.os4depot.net/index.php?function=showfile&amp;amp;file=emulation/computer/sdl_mess.lha AmigaOS PPC] [http://fabportnawak.free.fr/mame/ MorphOS] [https://depot.haiku-os.org/#!/pkg/mame Haiku]&lt;br /&gt;
[https://github.com/AntoPISA/MAME_SupportFiles Support Files] [https://auamstrad.es/software/mame-emulador-de-amstrad-cpc/ Tutorial (ES)]&lt;br /&gt;
| ✅&lt;br /&gt;
| ✅&lt;br /&gt;
| ✅&lt;br /&gt;
| 0.277&lt;br /&gt;
| Apr 30, 2025&lt;br /&gt;
| ⚠️&lt;br /&gt;
| ✅&lt;br /&gt;
| Tons of vintage computers, game consoles and arcade systems&lt;br /&gt;
| Open source&lt;br /&gt;
|-&lt;br /&gt;
| [[NO$CPC|NO$CPC]]&lt;br /&gt;
| [http://problemkaputt.de/cpc.htm]&lt;br /&gt;
| ✅&lt;br /&gt;
| ❌&lt;br /&gt;
| ❌&lt;br /&gt;
| 1.8&lt;br /&gt;
| Nov 2, 2000&lt;br /&gt;
| ⚠️&lt;br /&gt;
| ✅&lt;br /&gt;
| -&lt;br /&gt;
| Donationware&lt;br /&gt;
|-&lt;br /&gt;
| [[PC-CPC|PC-CPC]] &lt;br /&gt;
| [http://cpcrulez.fr/emulateurs_download-WIN-PC-CPC.htm] [https://github.com/DemoniakLudo/PC-CPC Repo]&lt;br /&gt;
| ✅&lt;br /&gt;
| ❌&lt;br /&gt;
| ❌&lt;br /&gt;
| 0.1at b29&lt;br /&gt;
| Nov 17, 2011&lt;br /&gt;
| ⚠️&lt;br /&gt;
| ❌&lt;br /&gt;
| -&lt;br /&gt;
| Open source&lt;br /&gt;
|-&lt;br /&gt;
| [[Retro Virtual Machine|Retro Virtual Machine]]&lt;br /&gt;
| [https://www.retrovirtualmachine.org]&lt;br /&gt;
| ✅&lt;br /&gt;
| ✅&lt;br /&gt;
| ✅&lt;br /&gt;
| 2.1.19&lt;br /&gt;
| Dec 9, 2024&lt;br /&gt;
| ❌ Removed&lt;br /&gt;
| ✅&lt;br /&gt;
| [[ZX Spectrum]], [[MSX|MSX 1]], [[ColecoVision]], [[SG-1000]], [[Master System]]&lt;br /&gt;
| Donationware&lt;br /&gt;
|-&lt;br /&gt;
| [[Roland Emulator|Roland]] &lt;br /&gt;
| [https://www.rolandemu.de/en/downloads.html] [https://github.com/raldus/roland Repo]&lt;br /&gt;
| ✅&lt;br /&gt;
| ❌&lt;br /&gt;
| 🛠️&lt;br /&gt;
| 0.70&lt;br /&gt;
| Apr 20, 2017&lt;br /&gt;
| ❌&lt;br /&gt;
| ❌&lt;br /&gt;
| -&lt;br /&gt;
| Open source&lt;br /&gt;
|-&lt;br /&gt;
| [[Ronald|Ronald]] &lt;br /&gt;
| [https://github.com/mdm/ronald]&lt;br /&gt;
| ❌&lt;br /&gt;
| ❌&lt;br /&gt;
| 🛠️&lt;br /&gt;
| &lt;br /&gt;
| Apr 1, 2024&lt;br /&gt;
| ⚠️&lt;br /&gt;
| ❌&lt;br /&gt;
| -&lt;br /&gt;
| Open source&lt;br /&gt;
|-&lt;br /&gt;
| [[SugarBox|SugarBox]]&lt;br /&gt;
| [https://github.com/Tom1975/SugarboxV2] [http://sugarbox.free.fr/ Old site] [https://github.com/Tom1975/SugarPi SugarPi]&lt;br /&gt;
| ✅&lt;br /&gt;
| ✅&lt;br /&gt;
| ✅&lt;br /&gt;
| 2.0.4&lt;br /&gt;
| Nov 24, 2024&lt;br /&gt;
| ⚠️&lt;br /&gt;
| ✅&lt;br /&gt;
| -&lt;br /&gt;
| Open source&lt;br /&gt;
|-&lt;br /&gt;
| [[VirtualCPC|Virtual CPC]] &lt;br /&gt;
| [https://cpcrulez.fr/emulateurs_download-WIN-virtual_cpc.htm] [https://web.archive.org/web/20200112094913/http://users.otenet.gr/~sulfonic/cpc/ Archive] &lt;br /&gt;
| ✅&lt;br /&gt;
| ❌&lt;br /&gt;
| ❌&lt;br /&gt;
| 1.1&lt;br /&gt;
| Aug 8, 2011&lt;br /&gt;
| ⚠️&lt;br /&gt;
| ❌&lt;br /&gt;
| -&lt;br /&gt;
| Freeware&lt;br /&gt;
|-&lt;br /&gt;
| [[WinApe|WinAPE]] &lt;br /&gt;
| [http://www.winape.net/] [https://www-ftp.lip6.fr/pub/amstrad/emulator/CPCWIN10.ZIP CPCwin]&lt;br /&gt;
| ✅&lt;br /&gt;
| ❌&lt;br /&gt;
| ❌&lt;br /&gt;
| 2.0b2&lt;br /&gt;
| Jan 5, 2016&lt;br /&gt;
| ✅&lt;br /&gt;
| ✅&lt;br /&gt;
| -&lt;br /&gt;
| Donationware&lt;br /&gt;
|-&lt;br /&gt;
| [[WinCPC|WinCPC]] / [[MacCPC|MacCPC]]&lt;br /&gt;
| [http://www.wincpc.ch/index.php?topic=projects] [https://web.archive.org/web/20050409133618/http://www.easypoint.ch/vbcpc/ vbCPC]&lt;br /&gt;
| ✅&lt;br /&gt;
| ✅&lt;br /&gt;
| ❌&lt;br /&gt;
| 0.9.2&lt;br /&gt;
| Jan 22, 2010&lt;br /&gt;
| ✅&lt;br /&gt;
| ❌&lt;br /&gt;
| -&lt;br /&gt;
| Freeware&lt;br /&gt;
|-&lt;br /&gt;
| [[XCPC|Xcpc]]&lt;br /&gt;
| [https://www.xcpc-emulator.net/] [https://github.com/ponceto/xcpc-emulator Repo]&lt;br /&gt;
| ❌&lt;br /&gt;
| ❌&lt;br /&gt;
| ✅&lt;br /&gt;
| 0.52.1&lt;br /&gt;
| Sep 8, 2024&lt;br /&gt;
| ❌&lt;br /&gt;
| ❌&lt;br /&gt;
| -&lt;br /&gt;
| Open source&lt;br /&gt;
|-&lt;br /&gt;
| [[XNACPC|XNACPC]]&lt;br /&gt;
| [http://www.gavpugh.com/2011/11/11/xnacpc-xbox-360-amstrad-cpc-emulator-released/] [https://www.gavpugh.com/old-code/ CPC3D]&lt;br /&gt;
| ✅&lt;br /&gt;
| ❌&lt;br /&gt;
| ❌&lt;br /&gt;
| 1.0&lt;br /&gt;
| Nov 11, 2011&lt;br /&gt;
| ❌&lt;br /&gt;
| ❌&lt;br /&gt;
| -&lt;br /&gt;
| Open source&lt;br /&gt;
|-&lt;br /&gt;
| [[ZEsarUX|ZEsarUX]]&lt;br /&gt;
| [https://github.com/chernandezba/zesarux] [https://depot.haiku-os.org/#!/pkg/zesarux Haiku]&lt;br /&gt;
| ✅&lt;br /&gt;
| ✅&lt;br /&gt;
| ✅&lt;br /&gt;
| 12.0&lt;br /&gt;
| Jan 16, 2025&lt;br /&gt;
| ⚠️&lt;br /&gt;
| ❌&lt;br /&gt;
| [[PCW]], [[ZX Spectrum]], [[ZX80/81]], [[MSX|MSX 1]], [[ColecoVision]], [[Spectravideo]], [[Jupiter ACE]], [[Sam Coupe]], [[SG-1000]], [[Master System]], [[Sinclair QL]], [[MK14]], [[Z88]]&lt;br /&gt;
| Donationware &amp;amp; Open source&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Legend: ❗= No Raspberry Pi / ARM build ; 🛠️ = Build it yourself ; ⚠️ = Incomplete tooling&lt;br /&gt;
&lt;br /&gt;
=== Mobile ===&lt;br /&gt;
&lt;br /&gt;
You can use [https://www.retroarch.com/index.php?page=platforms RetroArch] for Amstrad CPC emulation on '''Android and iOS'''. Or you can use these stand-alone CPC emulators:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Host system&lt;br /&gt;
! Emulator name&lt;br /&gt;
! External link&lt;br /&gt;
! Current version&lt;br /&gt;
! Latest release&lt;br /&gt;
! Amstrad Plus&lt;br /&gt;
! Also emulates&lt;br /&gt;
! License&lt;br /&gt;
|-&lt;br /&gt;
| Android&lt;br /&gt;
| [[andcpc]]&lt;br /&gt;
| [http://code.google.com/p/andcpc/]&lt;br /&gt;
| 1.5.1&lt;br /&gt;
| Apr 4, 2011&lt;br /&gt;
| ❌&lt;br /&gt;
| -&lt;br /&gt;
| Open source&lt;br /&gt;
|-&lt;br /&gt;
| Android&lt;br /&gt;
| [[Azimuth]]&lt;br /&gt;
| [https://play.google.com/store/apps/details?id=johnidis.azimuth]&lt;br /&gt;
| 1.20&lt;br /&gt;
| Feb 7, 2025&lt;br /&gt;
| ❌&lt;br /&gt;
| -&lt;br /&gt;
| Adware and in-app purchases💲&lt;br /&gt;
|-&lt;br /&gt;
| Android&lt;br /&gt;
| [[CPCDroid]]&lt;br /&gt;
| [https://fmsdevel.wisecoding.es/cpcdroid-amstrad-cpc-on-android-phone-2/]&lt;br /&gt;
| 1.5.1&lt;br /&gt;
| Mar 2, 2011&lt;br /&gt;
| ❌&lt;br /&gt;
| -&lt;br /&gt;
| Open source&lt;br /&gt;
|-&lt;br /&gt;
| Android&lt;br /&gt;
| [[CPCemu|CPCemu]] &lt;br /&gt;
| [https://cpc-emu.org/]&lt;br /&gt;
| 3.0.2&lt;br /&gt;
| Apr 24, 2025&lt;br /&gt;
| ❌&lt;br /&gt;
| -&lt;br /&gt;
| Freeware&lt;br /&gt;
|-&lt;br /&gt;
| Android&lt;br /&gt;
| [[Droid-CPC]]&lt;br /&gt;
| [http://play.google.com/store/apps/details?id=com.kokak.droidcpc]&lt;br /&gt;
| 1.1.01&lt;br /&gt;
| Dec 15, 2016&lt;br /&gt;
| ❌&lt;br /&gt;
| -&lt;br /&gt;
| Commercial💲&lt;br /&gt;
|-&lt;br /&gt;
| Android&lt;br /&gt;
| [[MAME4droid Current]]&lt;br /&gt;
| [http://play.google.com/store/apps/details?id=com.seleuco.mame4d2024] [https://github.com/seleuco/MAME4droid-2024 Repo]&lt;br /&gt;
| 1.24 (0.277)&lt;br /&gt;
| May 2, 2025&lt;br /&gt;
| ✅&lt;br /&gt;
| Tons of vintage computers, game consoles and arcade systems&lt;br /&gt;
| Open source&lt;br /&gt;
|-&lt;br /&gt;
| iOS&lt;br /&gt;
| [[CPCemu|CPCemu]]&lt;br /&gt;
| [http://www.cpc-emu.org/]&lt;br /&gt;
| 3.0.2&lt;br /&gt;
| May 11, 2025&lt;br /&gt;
| ❌&lt;br /&gt;
| -&lt;br /&gt;
| Freeware&lt;br /&gt;
|-&lt;br /&gt;
| iOS&lt;br /&gt;
| [[CrocoDS]]&lt;br /&gt;
| [https://crazypiri.eu/crocods/] [https://github.com/redbug26/crocods-ios Repo]&lt;br /&gt;
| 2.1&lt;br /&gt;
| Jun 21, 2013&lt;br /&gt;
| ❌&lt;br /&gt;
| -&lt;br /&gt;
| Open source&lt;br /&gt;
|-&lt;br /&gt;
| iOS&lt;br /&gt;
| [[MAME4iOS]]&lt;br /&gt;
| [https://github.com/yoshisuga/MAME4iOS]&lt;br /&gt;
| 2022.5&lt;br /&gt;
| Dec 12, 2022&lt;br /&gt;
| ✅&lt;br /&gt;
| Tons of vintage computers, game consoles and arcade systems&lt;br /&gt;
| Open source&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Discontinued OS ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Host system&lt;br /&gt;
! Emulator name&lt;br /&gt;
! External link&lt;br /&gt;
! Current version&lt;br /&gt;
! Latest release&lt;br /&gt;
! Amstrad Plus&lt;br /&gt;
! Also emulates&lt;br /&gt;
! License&lt;br /&gt;
|-&lt;br /&gt;
| Acorn RISC OS&lt;br /&gt;
| [[!CPC|!CPC]]&lt;br /&gt;
| [https://www-ftp.lip6.fr/pub/amstrad/emulator/CPC0728.ZIP] [http://ftp2.fr.openbsd.org/ftp/pub/amstrad/emulator/CPCS1124.ZIP]&lt;br /&gt;
| &lt;br /&gt;
| Jul 28, 1996&lt;br /&gt;
| ❌&lt;br /&gt;
| -&lt;br /&gt;
| Open source&lt;br /&gt;
|-&lt;br /&gt;
| Acorn RISC OS&lt;br /&gt;
| [[!CPCemu|!CPCemu]]&lt;br /&gt;
| [http://huggers-world.de/mops.html]&lt;br /&gt;
| 1.21&lt;br /&gt;
| Mar 22, 2016&lt;br /&gt;
| ❌&lt;br /&gt;
| -&lt;br /&gt;
| Open source&lt;br /&gt;
|-&lt;br /&gt;
| AmigaOS m68k&lt;br /&gt;
| [[A-CPC|A-CPC]]&lt;br /&gt;
| [https://cpctech.cpcwiki.de/download/a-cpc.lha]&lt;br /&gt;
| 2.0&lt;br /&gt;
| Mar 30, 2002&lt;br /&gt;
| ✅&lt;br /&gt;
| -&lt;br /&gt;
| Open source&lt;br /&gt;
|-&lt;br /&gt;
| AmigaOS m68k&lt;br /&gt;
| [[Ami-cpc|Ami-cpc]]&lt;br /&gt;
| [http://deplanque.chez.com/] [http://deplanque.chez.com/download_fr.html Ami-cpc2]&lt;br /&gt;
| 0.46&lt;br /&gt;
| Jan 21, 1998&lt;br /&gt;
| ❌&lt;br /&gt;
| -&lt;br /&gt;
| Open source&lt;br /&gt;
|-&lt;br /&gt;
| AmigaOS m68k&lt;br /&gt;
| [[CPE|CPE]]&lt;br /&gt;
| [https://cpcrulez.fr/emulateurs_download-AMIGA-CPE.htm]&lt;br /&gt;
| &lt;br /&gt;
| Feb 24, 1995&lt;br /&gt;
| ❌&lt;br /&gt;
| -&lt;br /&gt;
| Open source&lt;br /&gt;
|-&lt;br /&gt;
| AmigaOS m68k&lt;br /&gt;
| [[Emu-CPC|EmuCPC]]&lt;br /&gt;
| [https://cpcrulez.fr/emulateurs_download-AMIGA-emucpc.htm]&lt;br /&gt;
| 0.7&lt;br /&gt;
| Sep 15, 1996&lt;br /&gt;
| ❌&lt;br /&gt;
| -&lt;br /&gt;
| Open source&lt;br /&gt;
|-&lt;br /&gt;
| AROS&lt;br /&gt;
| [[Arnold]] &lt;br /&gt;
| [http://archives.aros-exec.org/?function=showfile&amp;amp;file=emulation/computer/arnold-aros-i386.lha]&lt;br /&gt;
| &lt;br /&gt;
| Oct 24, 2010&lt;br /&gt;
| ✅&lt;br /&gt;
| -&lt;br /&gt;
| Open source&lt;br /&gt;
|-&lt;br /&gt;
| AROS&lt;br /&gt;
| [[Caprice32]] &lt;br /&gt;
| [http://archives.aros-exec.org/?function=showfile&amp;amp;file=emulation/computer/caprice-aros-i386.lha]&lt;br /&gt;
| 4.2.0&lt;br /&gt;
| Oct 23, 2010&lt;br /&gt;
| ❌&lt;br /&gt;
| -&lt;br /&gt;
| Open source&lt;br /&gt;
|-&lt;br /&gt;
| BlackBerry OS&lt;br /&gt;
| [[BB-CPC|BB-CPC]]&lt;br /&gt;
| [http://appworld.blackberry.com/webstore/content/30963891/] (dead link)&lt;br /&gt;
| 1.0.1.3&lt;br /&gt;
| Jul 15, 2013&lt;br /&gt;
| ❌&lt;br /&gt;
| -&lt;br /&gt;
| Commercial💲&lt;br /&gt;
|-&lt;br /&gt;
| Classic Mac OS&lt;br /&gt;
| [[CPCplusplus|CPC++]]&lt;br /&gt;
| [http://bricerive.free.fr/cpc/cpcpp.html]&lt;br /&gt;
| 1.3.2&lt;br /&gt;
| Oct 6, 1997&lt;br /&gt;
| ❌&lt;br /&gt;
| -&lt;br /&gt;
| Shareware💲&lt;br /&gt;
|-&lt;br /&gt;
| DOS&lt;br /&gt;
| [[AdvanceMESS|AdvanceMESS]]&lt;br /&gt;
| [https://www.advancemame.it/readme]&lt;br /&gt;
| 3.9&lt;br /&gt;
| Sep 8, 2018&lt;br /&gt;
| ✅&lt;br /&gt;
| Tons of vintage computers and game consoles&lt;br /&gt;
| Open source&lt;br /&gt;
|-&lt;br /&gt;
| DOS&lt;br /&gt;
| [[Arnimedes|Arnimedes]]&lt;br /&gt;
| [http://www.arnimedes.de/]&lt;br /&gt;
| 0.8a&lt;br /&gt;
| Apr 15, 2000&lt;br /&gt;
| ❌&lt;br /&gt;
| -&lt;br /&gt;
| Freeware&lt;br /&gt;
|-&lt;br /&gt;
| DOS&lt;br /&gt;
| [[Caprice32]] &lt;br /&gt;
| [https://ftp.nvg.ntnu.no/pub/cpc/emulator/msdos/capriced.zip]&lt;br /&gt;
| 1.11&lt;br /&gt;
| Sep 20, 1999&lt;br /&gt;
| ❌&lt;br /&gt;
| -&lt;br /&gt;
| Open source&lt;br /&gt;
|-&lt;br /&gt;
| DOS&lt;br /&gt;
| [[CPC]] &lt;br /&gt;
| [https://www-ftp.lip6.fr/pub/amstrad/emulator/CPC055B.ZIP]&lt;br /&gt;
| 0.55b&lt;br /&gt;
| May 16, 1997&lt;br /&gt;
| ❌&lt;br /&gt;
| -&lt;br /&gt;
| Freeware&lt;br /&gt;
|-&lt;br /&gt;
| DOS&lt;br /&gt;
| [[CPC-em|CPC-em]] &lt;br /&gt;
| [http://cpc-em.emuunlim.com/]&lt;br /&gt;
| 0.4&lt;br /&gt;
| Jul 7, 2004&lt;br /&gt;
| ❌&lt;br /&gt;
| -&lt;br /&gt;
| Open source&lt;br /&gt;
|-&lt;br /&gt;
| DOS&lt;br /&gt;
| [[CPCE|CPCE]]&lt;br /&gt;
| [http://cngsoft.no-ip.org/cpce/]&lt;br /&gt;
| 1.94&lt;br /&gt;
| Jun 2, 2011&lt;br /&gt;
| ❌&lt;br /&gt;
| -&lt;br /&gt;
| Freeware&lt;br /&gt;
|-&lt;br /&gt;
| DOS&lt;br /&gt;
| [[CPCemu|CPCemu]]&lt;br /&gt;
| [http://www.cpc-emu.org/]&lt;br /&gt;
| 1.5&lt;br /&gt;
| Jul 7, 1998&lt;br /&gt;
| ❌&lt;br /&gt;
| -&lt;br /&gt;
| Freeware&lt;br /&gt;
|-&lt;br /&gt;
| DOS&lt;br /&gt;
| [[CPE|CPE]]&lt;br /&gt;
| [https://cpcrulez.fr/emulateurs_download-DOS-CPE.htm]&lt;br /&gt;
| 5.2&lt;br /&gt;
| Apr 21, 1997&lt;br /&gt;
| ❌&lt;br /&gt;
| -&lt;br /&gt;
| Open source&lt;br /&gt;
|-&lt;br /&gt;
| DOS&lt;br /&gt;
| [[NO$CPC|NO$CPC]]&lt;br /&gt;
| [http://problemkaputt.de/cpc.htm]&lt;br /&gt;
| 1.8&lt;br /&gt;
| Nov 2, 2000&lt;br /&gt;
| ✅&lt;br /&gt;
| -&lt;br /&gt;
| Freeware&lt;br /&gt;
|-&lt;br /&gt;
| DOS&lt;br /&gt;
| [[PC-CPC|PC-CPC]] &lt;br /&gt;
| [http://deplanque.chez.com/download_fr.html]&lt;br /&gt;
| &lt;br /&gt;
| Feb 3, 1998&lt;br /&gt;
| ❌&lt;br /&gt;
| -&lt;br /&gt;
| Open source&lt;br /&gt;
|-&lt;br /&gt;
| DOS&lt;br /&gt;
| [[CPCEMU (RWCPC)|RWCPC]]&lt;br /&gt;
| [https://www-ftp.lip6.fr/pub/amstrad/emulator/RWCPC.ZIP]&lt;br /&gt;
| &lt;br /&gt;
| Mar 23, 1995&lt;br /&gt;
| ❌&lt;br /&gt;
| -&lt;br /&gt;
| Freeware&lt;br /&gt;
|-&lt;br /&gt;
| DOS&lt;br /&gt;
| [[SIMCPC|SIMCPC]]&lt;br /&gt;
| [https://www-ftp.lip6.fr/pub/amstrad/emulator/SIMCPC.ZIP]&lt;br /&gt;
| &lt;br /&gt;
| Dec 10, 1989&lt;br /&gt;
| ❌&lt;br /&gt;
| -&lt;br /&gt;
| Shareware💲&lt;br /&gt;
|-&lt;br /&gt;
| DOS&lt;br /&gt;
| [[YAGE|YAGE]]&lt;br /&gt;
| [https://www.zophar.net/cpc/yage.html]&lt;br /&gt;
| 0.91&lt;br /&gt;
| Oct 24, 1998&lt;br /&gt;
| ❌&lt;br /&gt;
| -&lt;br /&gt;
| Freeware&lt;br /&gt;
|-&lt;br /&gt;
| EXOS&lt;br /&gt;
| [[Software CPC Emulator|Software CPC Emulator]]&lt;br /&gt;
| [http://www.ep128.hu/Ep_Util/Prg/Amstrad_CPC_Emulator_13.rar] [http://www.ep128.hu/Ep_Util/Amstrad_CPC_emu.htm]&lt;br /&gt;
| 1.3&lt;br /&gt;
| Jan 11, 2013&lt;br /&gt;
| ❌&lt;br /&gt;
| -&lt;br /&gt;
| Open source&lt;br /&gt;
|-&lt;br /&gt;
| Maemo&lt;br /&gt;
| [[CPCm]]&lt;br /&gt;
| [http://maemo.org/downloads/product/Maemo5/cpcm/]&lt;br /&gt;
| 1.20-1&lt;br /&gt;
| Apr 27, 2010&lt;br /&gt;
| ❌&lt;br /&gt;
| -&lt;br /&gt;
| Open source&lt;br /&gt;
|-&lt;br /&gt;
| MSX-DOS&lt;br /&gt;
| [[EMU6CPC|EMU6CPC]]&lt;br /&gt;
| [http://romu6.blogspot.com/2018/12/emu6cpc-emulador-de-amstrad-cpc-6128.html]&lt;br /&gt;
| &lt;br /&gt;
| Dec 17, 2018&lt;br /&gt;
| ❌&lt;br /&gt;
| -&lt;br /&gt;
| Freeware&lt;br /&gt;
|-&lt;br /&gt;
| OS/2&lt;br /&gt;
| [[SDLMAME|SDLMAME]]&lt;br /&gt;
| [https://ecsoft2.org/sdlmame]&lt;br /&gt;
| 0.170&lt;br /&gt;
| Jan 30, 2016&lt;br /&gt;
| ✅&lt;br /&gt;
| Tons of vintage computers, game consoles and arcade systems&lt;br /&gt;
| Open source&lt;br /&gt;
|-&lt;br /&gt;
| Palm OS&lt;br /&gt;
| [[CaPriCe for Palm OS|CaPriCe for Palm OS]]&lt;br /&gt;
| [http://coste.frederic.free.fr/cpc/cpc_en.htm]&lt;br /&gt;
| 2.8&lt;br /&gt;
| Jun 28, 2011&lt;br /&gt;
| ❌&lt;br /&gt;
| -&lt;br /&gt;
| Open source&lt;br /&gt;
|-&lt;br /&gt;
| Palm OS&lt;br /&gt;
| [[CoPaCabana|CoPaCabana]]&lt;br /&gt;
| [http://copacabana.emuunlim.com/]&lt;br /&gt;
| 0.75&lt;br /&gt;
| Dec 4, 2007&lt;br /&gt;
| ❌&lt;br /&gt;
| -&lt;br /&gt;
| Freeware&lt;br /&gt;
|-&lt;br /&gt;
| Pocket PC&lt;br /&gt;
| [[CaPriCe|PocketCaprice]]&lt;br /&gt;
| [https://web.archive.org/web/20160506010209/http://www.clubic.com/telecharger-fiche44888-pocketcaprice.html]&lt;br /&gt;
| 0.9&lt;br /&gt;
| Aug 19, 2007&lt;br /&gt;
| ❌&lt;br /&gt;
| -&lt;br /&gt;
| Freeware&lt;br /&gt;
|-&lt;br /&gt;
| SunOS&lt;br /&gt;
| [[CPCplusplus|CPC++]]&lt;br /&gt;
| [http://bricerive.free.fr/cpc/cpcpp.html]&lt;br /&gt;
| 1.3.0&lt;br /&gt;
| Feb 22, 1997&lt;br /&gt;
| ❌&lt;br /&gt;
| -&lt;br /&gt;
| Shareware💲&lt;br /&gt;
|-&lt;br /&gt;
| Symbian&lt;br /&gt;
| [[S60-CPC|S60-CPC]]&lt;br /&gt;
| [http://kokak.free.fr/s60cpc.htm]&lt;br /&gt;
| 0.74&lt;br /&gt;
| Feb 21, 2006&lt;br /&gt;
| ❌&lt;br /&gt;
| -&lt;br /&gt;
| Open source&lt;br /&gt;
|-&lt;br /&gt;
| Windows 9x&lt;br /&gt;
| [[CPC-em|CPC-em]] &lt;br /&gt;
| [http://cpc-em.emuunlim.com/]&lt;br /&gt;
| 0.3&lt;br /&gt;
| Jan 22, 2004&lt;br /&gt;
| ❌&lt;br /&gt;
| -&lt;br /&gt;
| Open source&lt;br /&gt;
|-&lt;br /&gt;
| Windows 9x&lt;br /&gt;
| [[MTMW|MTMW]]&lt;br /&gt;
| [https://cpcrulez.fr/emulateurs_download-WIN-MTMW.htm]&lt;br /&gt;
| 1.30B&lt;br /&gt;
| Jan 11, 2000&lt;br /&gt;
| ✅&lt;br /&gt;
| [[ZX Spectrum]], [[ZX80/81]], [[Enterprise]], [[Jupiter ACE]]&lt;br /&gt;
| Freeware&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Other Platforms =&lt;br /&gt;
&lt;br /&gt;
=== Home Consoles ===&lt;br /&gt;
&lt;br /&gt;
You can use [https://www.retroarch.com/index.php?page=platforms RetroArch] for Amstrad CPC emulation on '''Apple TV, Android TV, Nvidia Shield, Steam Link, Xbox One, Xbox Series, PS2, PS Vita TV, GameCube, Wii, Wii U and Switch'''. Or you can use these stand-alone CPC emulators:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Host system&lt;br /&gt;
! Emulator name&lt;br /&gt;
! External link&lt;br /&gt;
! Current version&lt;br /&gt;
! Latest release&lt;br /&gt;
! Amstrad Plus&lt;br /&gt;
! Also emulates&lt;br /&gt;
! License&lt;br /&gt;
|-&lt;br /&gt;
| Microsoft XBOX&lt;br /&gt;
| [[Arnold|ArnoldX]]&lt;br /&gt;
| [https://web.archive.org/web/20120705163939/http://forums.xbox-scene.com/index.php?showtopic=711667] [https://cpcrulez.fr/emulateurs_download-XBOX-ARNOLDX.htm]&lt;br /&gt;
| v5&lt;br /&gt;
| Apr 20, 2010&lt;br /&gt;
| ✅&lt;br /&gt;
| -&lt;br /&gt;
| Freeware&lt;br /&gt;
|-&lt;br /&gt;
| Microsoft XBOX&lt;br /&gt;
| [[CoinOPS|CoinOPS (RetroFE)]]&lt;br /&gt;
| [https://web.archive.org/web/20160518183115/https://coinopsproject.freeforums.org/viewtopic.php?f=0&amp;amp;t=1213]&lt;br /&gt;
| 5&lt;br /&gt;
| Oct 18, 2012&lt;br /&gt;
| ❌&lt;br /&gt;
| Tons of vintage computers, game consoles and arcade systems&lt;br /&gt;
| Freeware&lt;br /&gt;
|-&lt;br /&gt;
| Microsoft Xbox 360&lt;br /&gt;
| [[XNACPC|XNACPC]]&lt;br /&gt;
| [http://www.gavpugh.com/2011/11/11/xnacpc-xbox-360-amstrad-cpc-emulator-released/]&lt;br /&gt;
| 1.0&lt;br /&gt;
| Nov 11, 2011&lt;br /&gt;
| ❌&lt;br /&gt;
| -&lt;br /&gt;
| Open source&lt;br /&gt;
|-&lt;br /&gt;
| Nintendo Wii&lt;br /&gt;
| [[Wiituka|Wiituka]]&lt;br /&gt;
| [http://wiituka.dantoine.org/]&lt;br /&gt;
| 0.98.8&lt;br /&gt;
| May 15, 2009&lt;br /&gt;
| ❌&lt;br /&gt;
| -&lt;br /&gt;
| Open source&lt;br /&gt;
|-&lt;br /&gt;
| Sega Dreamcast&lt;br /&gt;
| [[CPCast|CPCast]]&lt;br /&gt;
| [http://www.dcemu.co.uk/vbulletin/showthread.php?t=24100]&lt;br /&gt;
| &lt;br /&gt;
| May 6, 2006&lt;br /&gt;
| ❌&lt;br /&gt;
| -&lt;br /&gt;
| Freeware&lt;br /&gt;
|-&lt;br /&gt;
| Sega Dreamcast&lt;br /&gt;
| [[DreamCPC|DreamCPC]]&lt;br /&gt;
| [https://www.jm1200.fr/index.php?r=2]&lt;br /&gt;
| Alpha 3&lt;br /&gt;
| Oct 16, 2005&lt;br /&gt;
| ❌&lt;br /&gt;
| -&lt;br /&gt;
| Freeware&lt;br /&gt;
|-&lt;br /&gt;
| Sony PS2&lt;br /&gt;
| [[CPC-em|CPC-em]]&lt;br /&gt;
| [https://cpcrulez.fr/emulateurs_download-ps2-CPC-EM.htm]&lt;br /&gt;
| 0.4&lt;br /&gt;
| Dec 22, 2004&lt;br /&gt;
| ❌&lt;br /&gt;
| -&lt;br /&gt;
| Freeware&lt;br /&gt;
|-&lt;br /&gt;
| Sony PS3&lt;br /&gt;
| [[Caprice32|Caprice32]]&lt;br /&gt;
| [https://web.archive.org/web/20171003153204/http://psx-scene.com/forums/content/caprice32-4-1-0-dbg-emulator-ps3-2119/]&lt;br /&gt;
| 4.1.0 DBG&lt;br /&gt;
| Apr 9, 2012&lt;br /&gt;
| ❌&lt;br /&gt;
| -&lt;br /&gt;
| Open source&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Handheld Consoles ===&lt;br /&gt;
&lt;br /&gt;
Note: For Android handheld consoles (Razer Edge, Ayn Odin Pro, Retroid Pocket Flip, GPD XP, ...), see the Mobile/Android section.&lt;br /&gt;
&lt;br /&gt;
You can use [https://www.retroarch.com/index.php?page=platforms RetroArch] for Amstrad CPC emulation on '''PSP, PS Vita, DS, 3DS, Switch, Steam Deck, RetroFW, Miyoo, OpenDingux, [https://muos.dev/systems/computer muOS] and [https://github.com/christianhaitian/arkos/wiki/ArkOS-Emulators-and-Ports-information ArkOS]'''. Or you can use these stand-alone CPC emulators:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Host system&lt;br /&gt;
! Emulator name&lt;br /&gt;
! External link&lt;br /&gt;
! Current version&lt;br /&gt;
! Latest release&lt;br /&gt;
! Amstrad Plus&lt;br /&gt;
! Also emulates&lt;br /&gt;
! License&lt;br /&gt;
|-&lt;br /&gt;
| Dingoo A320 / A330&lt;br /&gt;
| [[Pituka|Pituka Dingux]]&lt;br /&gt;
| [http://david.dantoine.org/proyecto/4/]&lt;br /&gt;
| 0.8pre&lt;br /&gt;
| Aug 19, 2010&lt;br /&gt;
| ❌&lt;br /&gt;
| -&lt;br /&gt;
| Open source&lt;br /&gt;
|-&lt;br /&gt;
| Dingoo A320 / A330&lt;br /&gt;
| [[Caprice|Dingux-CAP32]]&lt;br /&gt;
| [http://zx81.zx81.free.fr/serendipity/index.php?/categories/105-Amstrad/]&lt;br /&gt;
| 1.1.2&lt;br /&gt;
| Oct 17, 2009&lt;br /&gt;
| ❌&lt;br /&gt;
| -&lt;br /&gt;
| Open source&lt;br /&gt;
|-&lt;br /&gt;
| GamePark Caanoo&lt;br /&gt;
| [[Caprice|Caanoo-CAP32]]&lt;br /&gt;
| [http://zx81.zx81.free.fr/serendipity/index.php?/categories/165-Amstrad/]&lt;br /&gt;
| 1.1.3&lt;br /&gt;
| Apr 24, 2011&lt;br /&gt;
| ❌&lt;br /&gt;
| -&lt;br /&gt;
| Open source&lt;br /&gt;
|-&lt;br /&gt;
| GamePark GP2x&lt;br /&gt;
| [[Caprice|CapriceGP2x]]&lt;br /&gt;
| [https://web.archive.org/web/20130315195529/http://wiki.gp2x.org/wiki/CapriceGP2x]&lt;br /&gt;
| 0.5&lt;br /&gt;
| Feb 22, 2006&lt;br /&gt;
| ❌&lt;br /&gt;
| -&lt;br /&gt;
| Open source&lt;br /&gt;
|-&lt;br /&gt;
| GamePark GP2x&lt;br /&gt;
| [[Caprice|GP2X-CAP32]]&lt;br /&gt;
| [http://zx81.zx81.free.fr/serendipity/index.php?/categories/42-Amstrad/]&lt;br /&gt;
| 1.5.1&lt;br /&gt;
| Aug 29, 2009&lt;br /&gt;
| ❌&lt;br /&gt;
| -&lt;br /&gt;
| Open source&lt;br /&gt;
|-&lt;br /&gt;
| GamePark GP32&lt;br /&gt;
| [[Pituka|Pituka GP32]]&lt;br /&gt;
| [http://david.dantoine.org/proyecto/4/]&lt;br /&gt;
| 1d&lt;br /&gt;
| May 15, 2010&lt;br /&gt;
| ❌&lt;br /&gt;
| -&lt;br /&gt;
| Open source&lt;br /&gt;
|-&lt;br /&gt;
| GamePark Wiz&lt;br /&gt;
| [[Caprice|Wiz-CAP32]]&lt;br /&gt;
| [http://zx81.zx81.free.fr/serendipity/index.php?/categories/89-Amstrad/]&lt;br /&gt;
| 1.1.0&lt;br /&gt;
| Aug 29, 2009&lt;br /&gt;
| ❌&lt;br /&gt;
| -&lt;br /&gt;
| Open source&lt;br /&gt;
|-&lt;br /&gt;
| GCW Zero&lt;br /&gt;
| [[Caprice|Dingux-CAP32]]&lt;br /&gt;
| [https://github.com/kerheol/dingux-cap32]&lt;br /&gt;
| 1.1.2&lt;br /&gt;
| May 25, 2014&lt;br /&gt;
| ❌&lt;br /&gt;
| -&lt;br /&gt;
| Open source&lt;br /&gt;
|-&lt;br /&gt;
| JXD S5110 / S601 &amp;amp; Yinlips G18&lt;br /&gt;
| [[Caprice|JXD-CAP32]]&lt;br /&gt;
| [http://zx81.zx81.free.fr/serendipity/index.php?/categories/206-Amstrad/]&lt;br /&gt;
| 1.1.1&lt;br /&gt;
| Oct 27, 2012&lt;br /&gt;
| ❌&lt;br /&gt;
| -&lt;br /&gt;
| Open source&lt;br /&gt;
|-&lt;br /&gt;
| Nintendo DS&lt;br /&gt;
| [[AmeDS|AmeDS]] &lt;br /&gt;
| [https://web.archive.org/web/20131021073302/http://www.portabledev.com/pages/ds/jeuxdev.-perso/ameds.php]&lt;br /&gt;
| 4.0&lt;br /&gt;
| Apr 25, 2010&lt;br /&gt;
| ❌&lt;br /&gt;
| -&lt;br /&gt;
| Freeware&lt;br /&gt;
|-&lt;br /&gt;
| Nintendo DS&lt;br /&gt;
| [[CrocoDS|CrocoDS]]&lt;br /&gt;
| [http://www.kyuran.be/blog/2007/11/09/crocods-20-2/] [https://github.com/redbug26/crocods-nds Repo]&lt;br /&gt;
| 2.0&lt;br /&gt;
| Nov 9, 2007&lt;br /&gt;
| ❌&lt;br /&gt;
| -&lt;br /&gt;
| Open source&lt;br /&gt;
|-&lt;br /&gt;
| Nintendo GameBoy Advance&lt;br /&gt;
| [[Mini Amstrad Emulator|Mini Amstrad Emulator]] &lt;br /&gt;
| [https://playeradvance.org/forum/showthread.php?t=765]&lt;br /&gt;
| &lt;br /&gt;
| Dec 26, 2005&lt;br /&gt;
| ❌&lt;br /&gt;
| -&lt;br /&gt;
| Open source&lt;br /&gt;
|-&lt;br /&gt;
| Odroid GO&lt;br /&gt;
| [[CapriceESP32|CapriceESP32]] &lt;br /&gt;
| [https://github.com/grantrismo/CapriceESP32]&lt;br /&gt;
| &lt;br /&gt;
| Dec 3, 2020&lt;br /&gt;
| ❌&lt;br /&gt;
| -&lt;br /&gt;
| Open source&lt;br /&gt;
|-&lt;br /&gt;
| OpenDingux&lt;br /&gt;
| [[CrocoDS|CrocoDS]]&lt;br /&gt;
| [https://crazypiri.eu/crocods/] [https://github.com/redbug26/crocods Repo]&lt;br /&gt;
| &lt;br /&gt;
| Jan 15, 2020&lt;br /&gt;
| ❌&lt;br /&gt;
| -&lt;br /&gt;
| Open source&lt;br /&gt;
|-&lt;br /&gt;
| Pandora&lt;br /&gt;
| [[Caprice|Pandora-CAP32]]&lt;br /&gt;
| [http://zx81.zx81.free.fr/serendipity/index.php?/categories/131-Amstrad/]&lt;br /&gt;
| 1.1.0&lt;br /&gt;
| Jun 27, 2010&lt;br /&gt;
| ❌&lt;br /&gt;
| -&lt;br /&gt;
| Open source&lt;br /&gt;
|-&lt;br /&gt;
| Sony PSP&lt;br /&gt;
| [[Caprice32 PSP]]&lt;br /&gt;
| [http://psp.akop.org/caprice32]&lt;br /&gt;
| 4.2.0.2&lt;br /&gt;
| Nov 28, 2007&lt;br /&gt;
| ❌&lt;br /&gt;
| -&lt;br /&gt;
| Open source&lt;br /&gt;
|-&lt;br /&gt;
| Sony PSP&lt;br /&gt;
| [[CPCPSP|CPCPSP]]&lt;br /&gt;
| [https://web.archive.org/web/20130325143915/http://dl.qj.net/psp/emulators/cpcpsp-v01.html]&lt;br /&gt;
| 0.1&lt;br /&gt;
| Dec 24, 2005&lt;br /&gt;
| ❌&lt;br /&gt;
| -&lt;br /&gt;
| Freeware&lt;br /&gt;
|-&lt;br /&gt;
| Sony PSP&lt;br /&gt;
| [[PSPCAP32|PSPCAP32]]&lt;br /&gt;
| [http://zx81.zx81.free.fr/serendipity/index.php?/categories/3-Amstrad/]&lt;br /&gt;
| 1.5.1&lt;br /&gt;
| Aug 21, 2009&lt;br /&gt;
| ❌&lt;br /&gt;
| -&lt;br /&gt;
| Open source&lt;br /&gt;
|-&lt;br /&gt;
| Trimui Model S&lt;br /&gt;
| [[Arnold|Arnold Trimui]]&lt;br /&gt;
| [https://github.com/liartes/arnold_gcw0]&lt;br /&gt;
| &lt;br /&gt;
| Oct 19, 2021&lt;br /&gt;
| ✅&lt;br /&gt;
| -&lt;br /&gt;
| Open source&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== FPGA ===&lt;br /&gt;
&lt;br /&gt;
*[[CPC TREX|CPC TREX]] [[C-ONE|CPC-One]] TurboCPC core by TobiFlex running on different FPGA boards&lt;br /&gt;
*[http://ralferoo.blogspot.fr/ CPC FPGA] CPC emulation by Ranulf (Ralferoo) Doswell, running on a custom made FPGA board&lt;br /&gt;
*[[FPGAmstrad|FPGAmstrad]] [https://github.com/renaudhelias/CoreAmstrad CoreAmstrad] [https://github.com/mist-devel/mist-board/wiki/CoreDocAmstrad CoreDocAmstrad] Translation by Renaud (Freemac) Hélias of JavaCPC from Java into VHDL for MiST board&lt;br /&gt;
*[https://github.com/sorgelig/Amstrad_MiST CPC for MiST and MiSTer] Started by Alexey (Sorgelig) Melnikov as a port of CoreAmstrad, but every module has been either rewritten or replaced&lt;br /&gt;
*[https://web.archive.org/web/20230330082645/https://intelligenttoasters.blog/cpc2-project-index/ CPC2 Project] CPC emulation running on a Cyclone V FPGA board&lt;br /&gt;
*[https://github.com/ZXMicroJack/amstrad-cpc AmstradCPC core] Based on McLeod's core and running on a ZXTres FPGA board&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Upcoming =&lt;br /&gt;
&lt;br /&gt;
Amstrad CPC support is in the works for [https://github.com/TASEmulators/BizHawk BizHawk] and [https://bostjan-grandovec.si/Content/Pantheon.htm Pantheon].&lt;br /&gt;
&lt;br /&gt;
Pure speculation but it would make sense that [https://web.libretro.com/ RetroArch Online] and [https://ares-emu.net/ Ares] add Amstrad CPC support.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Hardware Replacements =&lt;br /&gt;
&lt;br /&gt;
*[https://youtu.be/DykFhtNbgGk Just CPC4ATX] [https://www.sellmyretro.com/offer/details/60734] [https://memoryfull.net/party.php?id=240 CPC-ITX triple CRTC] CPC clones made from NOS chips&lt;br /&gt;
*[https://github.com/Bread80/CPCModular CPC Modular] Modular Amstrad CPC compatible computer&lt;br /&gt;
*[https://makerworld.com/fr/models/821842#profileId-765034 Amstrad CPC464 mini] [https://github.com/Board-Folk/CPC464-2MINI CPC464-2mini] Miniaturised CPCs&lt;br /&gt;
*[https://hackaday.io/project/187051-the-amstrad-cpc-portable Amstrad CPC Portable] World's first battery-powered portable Amstrad CPC &lt;br /&gt;
*[https://www.tindie.com/search/?q=amstrad+replica+pcb CPC 464/6128 replica PCBs] To be used as a direct replacement to the original PCBs&lt;br /&gt;
*[https://github.com/EremusOne/CPCESP_alpha CPCESP] [https://github.com/rpsubc8/ESP32TinyCPC/ ESP32 TinyCPC] CPC emulators for ESP32 SoC board&lt;br /&gt;
*[https://www.symbos.org/symbosvm.htm SymbOSVM] SymbOS for modern 32/64bit hardware&lt;br /&gt;
&lt;br /&gt;
=== Chips ===&lt;br /&gt;
&lt;br /&gt;
*[https://github.com/MicroCoreLabs/Projects MCLZ8] [https://github.com/rejunity/z80-open-silicon z80-open-silicon] Z80 emulators to be used as drop-in replacement&lt;br /&gt;
*[https://github.com/nukeykt/Nuked-MD-FPGA/blob/main/z80.v Nuked-MD-FPGA] [https://github.com/gdevic/A-Z80 A-Z80] Verilog Z80 implementations reverse engineered from decapped chip&lt;br /&gt;
*[https://github.com/floooh/v6502r Visual Z80 Remix] [https://github.com/gdevic/Z80Explorer Z80 Explorer] Netlist-level ultra accurate Z80 simulators&lt;br /&gt;
*[https://www.cpcwiki.eu/forum/amstrad-cpc-hardware/gate-array-decapped! Forum thread] Reverse engineered Gate Array by Gerald from decapped chips [https://pastebin.com/ZQyL68Hv Ash Evans] [https://github.com/MiSTer-devel/Amstrad_MiSTer/tree/master/rtl/GA40010 Gyorgy Szombathelyi] [https://github.com/codedchip/AMSGateArray AMSGateArray] Subsequent Verilog/VHDL implementations [https://bread80.com/2021/06/03/understanding-the-amstrad-cpc-video-ram-and-gate-array-subsystem/ Signals analysis by Bread80]&lt;br /&gt;
*[https://www.sintech-shop.de/en/retro-commodore-sinclair-atari-etc/amstrad/cpc/hardware Sintech hardware replacements] Gate Array emulator chips and keyboard membranes&lt;br /&gt;
*[https://lotharek.pl/productdetail.php?id=408 AY_FPGA] AY-3-8912 FPGA replacement with few extra features&lt;br /&gt;
*[https://k3pi.chickenkiller.com/dzi/ ASIC and Pre-ASIC] [https://www.cpcwiki.eu/forum/amstrad-cpc-hardware/gate-array-decapped!/msg133264/#msg133264 Gate Array] [https://siliconpr0n.org/map/zilog/z0840008psc-z80cpu/ Z80 CPU] [https://www.seanriddle.com/6845/ HD6845SP CRTC] [http://seanriddledecap.blogspot.com/2023/12/blog-post_31.html AY-3-8912 PSG] [http://seanriddledecap.blogspot.com/2017/01/blog-post_42.html NEC D765 FDC] [https://www.pastraiser.com/pictures/8255/layers/Total.png 8255 PPI] Die shots of decapped CPC chips&lt;br /&gt;
*[https://github.com/veniamin-ilmer/decoding_rom Optically decode the ROM of a decapped chip] [https://github.com/travisgoodspeed/gbrom-tutorial Automate ROM decoding] [https://c128.se/posts/silicon-adventures/ Decap, image and reverse engineer the C128 PLA chip] [https://youtu.be/r8Vq5NV4Ens How I reverse engineer a chip] [https://youtu.be/KohIewYHHMY Looking at silicon] Tutorials&lt;br /&gt;
*[https://thecheshirec.at/2023/11/21/5-multi-crtcs-a-vendre/ Multi-CRTC Board] [https://www.pcbway.com/project/shareproject/multi_crtc_selector_for_amstrad_cpc_464_664_6128_2ca49a09.html Multi-CRTC Selector] Host and select between multiple CRTC chip types in one CPC&lt;br /&gt;
&lt;br /&gt;
=== Floppy drives ===&lt;br /&gt;
&lt;br /&gt;
*[[SDiskEmul]] Floppy-drive emulator released in 2007. Abandoned now. Supports DSK, EDSK disk-images&lt;br /&gt;
*[https://hxc2001.com/floppy_drive_emulator/ HxC Floppy Emulator] Commercial floppy-drive emulator. Supports directly DSK, EDSK, HFE disk-images. IPF, CTRAW, SCP disk-images supported through conversion to HFE disk-image [https://hxc2001.com/docs/gotek-floppy-emulator-hxc-firmware/pages/emulation-from-images.html]&lt;br /&gt;
*[https://github.com/keirf/flashfloppy/ FlashFloppy] Open source floppy-drive emulator for the ubiquitous Gotek hardware. Supports DSK, EDSK, HFE disk-images. Can also be bought already built: [https://www.sellmyretro.com/offer/details/zax-drive-sd-63195 Zax Drive SD] [https://www.micomputer.es/en/gotek/390-3856-emulador-usb-gotek.html Micomputer floppy emulator] [https://pixel.rodrik.ch/gotekcpc Gotek CPC 664/6128] [https://pixel.rodrik.ch/gotekcpcplus Gotek 6128 Plus]&lt;br /&gt;
*[https://github.com/keirf/greaseweazle GreaseWeazle] Open source USB floppy adapter Flux reader/writer&lt;br /&gt;
*[https://www.cbmstuff.com/index.php?route=product/product&amp;amp;product_id=52 SuperCard Pro] Claims to be the most advanced flux level copier/imager/converter system&lt;br /&gt;
*[https://kryoflux.com/ KryoFlux] Proprietary floppy adapter Flux reader/writer&lt;br /&gt;
*[https://cpcrulez.fr/forum/viewtopic.php?f=5&amp;amp;t=100&amp;amp;start=690#p55437 Pauline] FPGA-based floppy-drive dumper and emulator&lt;br /&gt;
*[https://lotharek.pl/productdetail.php?id=376 DriveRDY] Emulates the Ready signal necessary for floppy drives on Amstrad machines&lt;br /&gt;
*[https://cpcrulez.fr/hardware-lecteurs_externe-interface_ddi3_usb_floppy_emulator.htm DDI-3] USB floppy-drive emulator including a real FDC chip, floppy data separator and AMSDOS ROM for CPC464. Current evolution [https://www.sellmyretro.com/offer/details/64558 DDI-6] has also integrated a RAM/ROM box&lt;br /&gt;
*[[M4 Board]] Supports DSK, EDSK images in a limited fashion. Protected disks are not supported&lt;br /&gt;
*[[USIFAC]] [[ULIfAC]] Supports DSK, EDSK images in a limited fashion. Protected disks are not supported&lt;br /&gt;
&lt;br /&gt;
=== Tapes ===&lt;br /&gt;
&lt;br /&gt;
*[https://hobbyretro.com/en/retro/tzxduino TZXduino] [https://ultimatemister.com/product/ultimate-maxduino-pro/ MAXduino] [https://www.cpcwiki.eu/forum/amstrad-cpc-hardware/abatape-my-contribution-to-tape-lovers/ Abatape] Arduino-based tape deck emulator. Supports many formats of tape-images including CDT and TZX&lt;br /&gt;
*[https://youtu.be/j4__v6ojPt0 SVI-CAS] Digital Tape Drive for Playback &amp;amp; Recording. Supports many formats of tape-images including CDT and TZX&lt;br /&gt;
*[https://retrowiki.es/viewtopic.php?t=200032717 TapeRider] TZX/CDT tape-images player for Android&lt;br /&gt;
*[https://chrome.google.com/webstore/detail/tapdancer/fcibbcbgbeioacfcnfgjianglchlcokh tapDancer] [https://web.archive.org/web/20160110003844/http://tapdancer.info/] Chrome and Android app that plays back many formats of tape-images including CDT and TZX&lt;br /&gt;
*[https://pelrun.github.io/PlayUEF/ PlayUEF] [https://pelrun.github.io/PlayUEF/PlayUEF.html Online version including Pelrun's CDT collection] Web-browser based tape deck emulator, supporting CDT/TZX/UEF tape-images&lt;br /&gt;
*[https://cdtplayer.hypha.ws/ Hypha's CDT collection and player] Web-browser based cdt/wav/flac/mp3 player&lt;br /&gt;
&lt;br /&gt;
=== Cartridges ===&lt;br /&gt;
&lt;br /&gt;
*[https://github.com/f1ac0/CPC-plus-cartridge CPC-plus-cartridge] Different PCB designs and code to make a CPC-plus cartridge&lt;br /&gt;
*[https://github.com/zeus074/Amstrad_Multicart Amstrad Multicart] 16-in-1 cartridge for the GX4000 or Amstrad Plus computer&lt;br /&gt;
*[https://cpcrulez.fr/hardware-interface_ROM-gx4000_homebrew_player.htm GX4000 Homebrew Player] [https://cpcrulez.fr/hardware-interface_ROM-gx4000_homebrew_player-32_in_one.htm CPC+ 32-in-one multigames] by Retroelectronik&lt;br /&gt;
*[[CPC_GX4000-Multi_EPROM_Cartridge|Multi-EPROM cartridge]] for CPC+/GX4000&lt;br /&gt;
*[[Multi Cartridge 8 ROMs]] by ETO, for GX4000 / Amstrad Plus&lt;br /&gt;
*[[C4CPC]] Cartridge replacement for the Amstrad Plus range and the GX4000&lt;br /&gt;
*[https://overange.weebly.com/amstrad-gx4000-cpc-464-6128-plus-reflashable-flash-cartridge.html Flash+ cartridge] [https://youtu.be/UDaw-nd4L9c Youtube] Amstrad CPC+ GX4000 reflashable cartridge&lt;br /&gt;
*[https://store.backbit.io/product/backbit-pro/ BackBit Pro] [https://youtu.be/tI2wkelVzyw Tutorial] Universal instant loading cartridge&lt;br /&gt;
*[[Cartridge Emulator]] Part of the [[Amsteam]] online service&lt;br /&gt;
*[[M4 Board]] Supports CPR cartridges, among many other features&lt;br /&gt;
&lt;br /&gt;
=== Printers ===&lt;br /&gt;
&lt;br /&gt;
*[https://www.cpcwiki.eu/forum/amstrad-cpc-hardware/acpcpe-amstrad-cpc-printer-emulator-(diy)/ Amstrad CPC Printer Emulator] [https://github.com/lgv2018/ACPCPE] Arduino-based CPC printer emulator that can output text, markdown or HTML&lt;br /&gt;
*[https://www.retroprinter.com/ Retro-Printer] Plugin module for the Raspberry Pi that makes it possible to connect retro computers to modern USB or network printers&lt;br /&gt;
*[https://github.com/nzeemin/escparser ESCParser] Command-line utility, ESC/P printer emulator that can output PostScript, SVG or PDF&lt;br /&gt;
&lt;br /&gt;
=== Other ===&lt;br /&gt;
&lt;br /&gt;
*[https://simonowen.com/spectrum/lenskey/ LensKey] LensLok copy-protection decoder for Windows&lt;br /&gt;
*[https://github.com/ArcherEG/CPCPS2Firmware CPCPS2 Keyboard Firmware] Emulates the keyboard matrix of Amstrad CPC using modern hardware&lt;br /&gt;
*[https://sindenlightgun.com/ Sinden Lightgun] LCD-compatible lightgun&lt;br /&gt;
*[https://github.com/grzegorz-gr/vga4cpc vga4cpc] VGA output for Amstrad CPC based on Raspberry Pi Pico&lt;br /&gt;
*[https://pixel.rodrik.ch/mp2fj MP2F-J] [https://pixel.rodrik.ch/mp2p MP-2 Plus] Evolution of the [[Amstrad MP1/MP2 modulator|Amstrad MP-2F]] modulator&lt;br /&gt;
*[https://xn--multipli-i1a.fr/minimit/ Minimit] To connect your [[Minitel]] to servers as the PSTN has been retired&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Peripherals supported in emulators =&lt;br /&gt;
&lt;br /&gt;
Note: The [[RSF3]] is mentioned in multiple places in the following list as, besides its native functionalities, it also emulates the [[M4 Board]], the [[Symbiface II]], etc...&lt;br /&gt;
&lt;br /&gt;
=== Mass storage devices ===&lt;br /&gt;
&lt;br /&gt;
*[[Dobbertin Harddisc]] or compatible ([[RSF3]]) is emulated by MAME and CPCemu.&lt;br /&gt;
*[[UIDE Universal IDE adapter cards for Z-80 computers|uIDE]] is emulated by Arnold&lt;br /&gt;
*[[Symbiface II]] IDE/PATA interface or compatible ([[X-Mass]], [https://github.com/salafek/cyboard-for-cpc Cyboard], [[RSF3]]) is emulated by ACE, ACE-DL, Caprice Forever, MAME, WinAPE, WinCPC, Arnold, Virtual CPC&lt;br /&gt;
*[[Albireo]] is partially emulated (mass storage only and no direct sector) by ACE, ACE-DL, Caprice Forever&lt;br /&gt;
*[[M4 Board]] or compatible ([[RSF3]]) is emulated by CPCemu&lt;br /&gt;
*[[Vortex Winchester Drive]], [[IDE8255|Yarek's IDE8255]], [[IDE/8255|RPalmer's IDE/8255]], [[ULIfAC]], [[RSF3|RSF3 native]], [https://hxc2001.com/download/floppy_drive_emulator/SDCard_HxC_Floppy_Emulator_Direct_Access_mode.pdf Gotek direct access mode] are not supported&lt;br /&gt;
&lt;br /&gt;
=== Real Time Clock ===&lt;br /&gt;
&lt;br /&gt;
*[[Dobbertin Smart Watch]] or compatible ([[Dobbertin Smart Watch|DXS RTC]]) is emulated by MAME, WinAPE&lt;br /&gt;
*[[Symbiface II]] RTC or compatible ([https://github.com/salafek/cyboard-for-cpc Cyboard], [[RSF3]]) is emulated by ACE-DL, MAME, WinAPE, WinCPC&lt;br /&gt;
*[[Nova]] is emulated by ACE, ACE-DL&lt;br /&gt;
*[[M4 Board]] NTP is emulated by CPCemu&lt;br /&gt;
*[[Dk'tronics Real Time Clock]], [[RSF3|RSF3 native]], [https://github.com/lambdamikel/LambdaSpeak3 LambdaSpeak RTC] and [[URTC-8 Universal RTC for Z80 computers|uRTC-8]] are not supported&lt;br /&gt;
&lt;br /&gt;
=== Network devices ===&lt;br /&gt;
&lt;br /&gt;
There is a plethora of serial communication devices (using [[RS232]], USB, Modem, Minitel, [[CB radio]], [[Virtual Net 96]], etc...) on Amstrad CPC:&lt;br /&gt;
* [[Amstrad Serial Interface|Amstrad/Pace RS232 Serial Port]] is emulated by MAME&lt;br /&gt;
* Other devices are not supported&lt;br /&gt;
&lt;br /&gt;
Higher-level Ethernet or TCP/IP network devices are less common:&lt;br /&gt;
* [[M4 Board]] Wifi or compatible ([[RSF3]]) is emulated by CPCemu&lt;br /&gt;
* [[CPC-ENet]], [https://github.com/salafek/Net4CPC/ Net4CPC], [[RSF3|RSF3 native]], [https://cpcrulez.fr/forum/viewtopic.php?t=6886 TMTNET], [[FujiNet]] are not supported&lt;br /&gt;
&lt;br /&gt;
=== Audio devices ===&lt;br /&gt;
&lt;br /&gt;
*[[Amstrad SSA-1 Speech Synthesizer|SSA-1 speech synthesizer]] is emulated by ACE, ACE-DL, Caprice Forever, JavaCPC, MAME&lt;br /&gt;
*[[Dk'tronics Speech Synthesizer|Dk'Tronics speech synthesizer]] is emulated by ACE, ACE-DL, Caprice Forever, JavaCPC, MAME&lt;br /&gt;
*[[TMPI speech synthesizer|Techni-Musique speech synthesizer]] is emulated by ACE, ACE-DL, Caprice Forever&lt;br /&gt;
*[[Amdrum]] is emulated by ACE, ACE-DL, JavaCPC, MAME, WinAPE&lt;br /&gt;
*[[Digiblaster]] is emulated by ACE, ACE-DL, Caprice Forever, JavaCPC, MAME, WinAPE, WinCPC, CPCEC, CPCEPower, Virtual CPC&lt;br /&gt;
*[[PlayCity]] is fully emulated by ACE, ACE-DL, MAME, Arnold, SugarBox. It is partially emulated (no CTC) by Caprice Forever, JavaCPC, CPCEC&lt;br /&gt;
*[[Play2CPC]] is partially emulated (no FM and no digidrums) by ACE, ACE-DL&lt;br /&gt;
*[[Willy|Willy OPL3]] is emulated by ACE, ACE-DL&lt;br /&gt;
*[[Willy|Willy MIDI]] is emulated by ACE (software synth emulation on Haiku, MIDI OUT support on MorphOS)&lt;br /&gt;
*[[Music Machine]], [[EMR MIDI Interface]], [https://github.com/lambdamikel/BluePillCPC Ultimate MIDI Board], [[Symbiface 3|Symbiface 3 buzzer]], [[RSF3|RSF3 SID]], [https://github.com/lambdamikel/Speak-SID Speak&amp;amp;SID], [https://github.com/lambdamikel/LambdaSpeak3 LambdaSpeak], [https://youtu.be/kahDREIaOog Amsdap MoonSound], Amsdap SE-One ([https://youtu.be/3xEyNQA6Weg MP3 player] / [https://youtu.be/vvlGBS3nNiY FM radio]), [https://www.amibay.com/threads/cpcradio-fm-radio-receiver-module.2446509/ CPC Radio], [https://www.gitlab.com/doragasu/romba/ Romba], [[CPC Booster]] are not supported&lt;br /&gt;
&lt;br /&gt;
Note: the [[RSF3]] is actually the best soundcard available for Amstrad CPC, supporting Digiblaster [https://youtu.be/rXqbQp9WKJc Source], Amdrum [https://youtu.be/Ken5KxYXv5c Source], EMR MIDI Interface [https://youtu.be/YOjV9AaIVKM Source1] [https://youtu.be/WQdV7UmeuPk Source2], Speech synthesis [https://youtu.be/vb-v98m_g0g Source], SID soundchip [https://youtu.be/_LWbnjvXN4g Source], a lot of music file formats (AAC, MP3, MP4, M4A, WMA, WAV, MID, OGG) [https://youtu.be/4f5lvXV_vWM Source] and even Webradios [https://youtu.be/PeVsdNtsOW4 Source].&lt;br /&gt;
&lt;br /&gt;
=== Graphics devices ===&lt;br /&gt;
&lt;br /&gt;
[https://youtu.be/plQf9_7zPSA AMSDAP V9990] graphics card is supported by CPCemu.&lt;br /&gt;
&lt;br /&gt;
[https://thecheshirec.at/category/8bits/amstrad-cpc/crtc/crtc5/ CRTC Type 5] is not supported.&lt;br /&gt;
&lt;br /&gt;
CPC graphics acquisition devices ([[Dart Scanner for DMP-Printers|Dart Scanner]], [[VIDI digitizer]], [[ARA Video Digitizer|Digitaliseur Ara]]) are not supported.&lt;br /&gt;
&lt;br /&gt;
CPC printers are poorly supported. The only emulators that at least do some print rendering emulation are JavaCPC and Caprice Forever.&lt;br /&gt;
&lt;br /&gt;
=== Input devices ===&lt;br /&gt;
&lt;br /&gt;
Some lightguns / lightpens are emulated by ACE, ACE-DL, Caprice Forever, JavaCPC, CPCEC, CPCEPower, Virtual CPC, PC-CPC, Wiituka.&lt;br /&gt;
&lt;br /&gt;
CPC mouse support is as follows:&lt;br /&gt;
*[[AMX Mouse|AMX mouse (1-bit axis, 3 buttons (CPC) / 2 buttons (CPC+))]] or compatible ([https://imperium.spinpoint.org/ Imperium Solo], [https://github.com/f1ac0/Dual-USB-Controller-adapter-CPC Dual USB Controller], [[Dk'tronics Mouse Interface|Dk'Tronics Genius adapter]], [https://cpcrulez.fr/hardware_montage_8x-geos-mouse_am_joystick-port.htm DIY GEOS adapter], [[Atari-ST mouse adapter]], [[PS2Mouse]], [[Marconi|Marconi Trackerball]]) is emulated by ACE, ACE-DL, Caprice Forever, WinAPE, Arnold, Virtual CPC, CPCemu, Retro Virtual Machine&lt;br /&gt;
*[[Kempston Mouse|Kempston mouse (8-bit axis, 2 buttons)]] is emulated by ACE, ACE-DL, Arnold&lt;br /&gt;
*[[CPC-Mousepack 2.0|Reisware mouse (8-bit axis, 2 buttons)]] is emulated by CPCemu&lt;br /&gt;
*[[Symbiface II|Symbiface II PS/2 mouse (6-bit axis, 5 buttons, scroll wheel)]] or compatible ([https://github.com/salafek/cyboard-for-cpc Cyboard], [[RSF3]]) is emulated by ACE-DL, Caprice Forever, MAME, WinAPE, Arnold, CPCemu&lt;br /&gt;
*[[MultiPlay|MultiPlay Amiga mouse (4-bit axis, 3 buttons)]] is emulated by ACE, ACE-DL, Caprice Forever, JavaCPC, Arnold, Retro Virtual Machine&lt;br /&gt;
*[[Albireo|Albireo USB mouse (8-bit axis, 3 buttons)]], [[RSF3|RSF3 USB native (8-bit axis, 5 buttons, scroll wheel)]], [https://youtu.be/4Rm1psdePbg Imperium Solo USB custom mode (6-bit axis, 3 buttons)] are not supported&lt;br /&gt;
&lt;br /&gt;
=== Hacking devices ===&lt;br /&gt;
&lt;br /&gt;
*[[Multiface II]] is emulated by ACE, ACE-DL, Caprice Forever, JavaCPC, MAME, WinAPE, Arnold&lt;br /&gt;
*[[Hackit|HackIt]] or compatible ([[RSF3]]) is emulated by ACE-DL, Arnold&lt;br /&gt;
*[[Mirage Imager]] is emulated by ACE&lt;br /&gt;
*[[Transtape]] is emulated by MAME&lt;br /&gt;
*[[PDS development system|Programmers Development System]] is emulated by MAME&lt;br /&gt;
*[[Demon Development Cartridge]], [[Action Replay AMX]], [[Disc Wizard]] are not supported&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Rewind feature =&lt;br /&gt;
&lt;br /&gt;
The RetroArch CPC emulator has the most convenient rewind feature: [https://youtu.be/YwilYlSe5LQ Demonstration]. To reverse the game, the user press and hold the rewind button. And at any point, releasing the button makes time goes forward again.&lt;br /&gt;
&lt;br /&gt;
ACE-DL also has a rewind feature, but it is not as good as it could be: [https://youtu.be/wIKGvpnJLUo Demonstration].&lt;br /&gt;
&lt;br /&gt;
One 128KB snapshot per frame allows 10 seconds of rewind with 64MB (128KB * 50 frames * 10 seconds) of memory for the rewind feature. A more efficient method saves only the previous RAM values that are changed between 2 frames, allowing much longer rewinds (even if the CPC is equipped with 4MB RAM expansion) while using less memory, as shown by the GBA emulator [https://youtu.be/Sfc_1NKbiKg SkyEmu].&lt;br /&gt;
&lt;br /&gt;
For step-back debugging, the emulator just needs to store the time when the previous instruction was executed so that he can go back to that instruction. In the same way, emulators can provide access to the previous HBL, IRQ, VBL, etc.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= File format specifications =&lt;br /&gt;
&lt;br /&gt;
*[https://www.cpcwiki.eu/index.php/Format:DSK_disk_image_file_format DSK / EDSK] [https://hxc2001.com/download/floppy_drive_emulator/SDCard_HxC_Floppy_Emulator_HFE_file_format.pdf HFE] [http://info-coach.fr/atari/documents/_mydoc/IPF-Documentation.pdf IPF] [https://www.cpc-power.com/cpcarchives/index.php?page=articles&amp;amp;num=386 CTRAW] [https://www.cbmstuff.com/downloads/scp/scp_image_specs.txt SCP] File formats of disk-image&lt;br /&gt;
*[https://www.cpcwiki.eu/index.php/Format:CDT_tape_image_file_format CDT / TZX] [http://zxds.raxoft.cz/pzx.html PZX] [https://acorn.huininga.nl/pub/unsorted/software/pc/CSW/csw.html CSW] [https://xiph.org/flac/format.html FLAC] [http://soundfile.sapp.org/doc/WaveFormat/ WAV] [http://fileformats.archiveteam.org/wiki/MP3 MP3] File formats of tape-image&lt;br /&gt;
*[https://www.cpcwiki.eu/index.php/Format:CPR_CPC_Plus_cartridge_file_format CPR cartridge] [https://www.cpcwiki.eu/index.php/Format:SNA_snapshot_file_format SNA snapshot] Other file formats used in CPC emulators&lt;br /&gt;
*[https://www.cpcwiki.eu/forum/emulators/javacpc-desktop-available-as-beta!/100/ Official SNR session spec] [https://www.cpcwiki.eu/forum/emulators/playback-format-for-scenes/ Discussion about SNR format] [https://www.cpc-power.com/cpcarchives/index.php?page=articles&amp;amp;num=10 Archive of SNR sessions]&lt;br /&gt;
*[http://leonard.oxg.free.fr/ymformat.html YM] [https://www.cpcwiki.eu/index.php/AYC AYC] [https://www.cpcwiki.eu/index.php/MYM MYM] [https://vgmrips.net/wiki/VGM_Specification VGM] Soundchip logging file formats&lt;br /&gt;
*[https://shaker.logonsystem.eu/sslcsl CSL] Cpc Scripting Language, a macro/scripting system to automate emulators&lt;br /&gt;
*[https://github.com/redbug26/crocods-core/wiki/kcr KCR] Game launching configuration&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Emulation Tools  =&lt;br /&gt;
&lt;br /&gt;
*[http://www.cpcmania.com/news.htm CPCDiskXP] [https://web.archive.org/web/20230602152816/https://cpc-live.com/data/index.php?dir=-tools DiskUtil] [https://github.com/Tom1975/SugarConvDsk SugarConvDsk] [https://github.com/jeromelesaux/dsk DSK] [https://github.com/cpcsdk/idsk iDSK] [https://www.seasip.info/Unix/LibDsk/ Diskette Tools] [https://github.com/cpcitor/dsktools dsktools] [https://github.com/EdouardBERGE/edsktool edsktool] [[ManageDSK|ManageDSK]] [[WriteDSK|WriteDSK]] [https://simonowen.com/samdisk/ SAMdisk] [https://github.com/damieng/DiskImageManager Disk Image Manager] [https://github.com/neuro-sys/sector-cpc sector-cpc] [https://hxc2001.com/download/floppy_drive_emulator/ HxCFloppyEmulator software] [https://github.com/keirf/disk-utilities/ Disk Utilities] [https://github.com/ClaireCheshireCat/dsk-lua dsk-lua] [https://github.com/karmic64/upd765pro upd765pro] [https://github.com/muckypaws/AmstradDSKExplorer Amstrad DSK Explorer] [http://www.shlock.co.uk/Utils/OmniFlop/OmniFlop.htm OmniFlop] [https://github.com/tomas-nestorovic/RIDE RIDE] [https://github.com/cpcsdk/hideur_maikeur Hideur Maikeur] Set of tools about disk-images&lt;br /&gt;
*[http://www.cpcmania.com/news.htm CPCTapeXP] [https://web.archive.org/web/20230602152816/https://cpc-live.com/data/index.php?dir=-tools TapeUtil] [https://github.com/Tom1975/SugarConvTape SugarConvTape] [https://sourceforge.net/projects/cdtmaster/ CDTMaster] [https://cpcrulez.fr/emulateurs_UTIL-CDT-samp2cdt.htm 2CDT/Samp2CDT] [http://cngsoft.no-ip.org/csw2cdt.htm CSW2CDT] [https://cpcrulez.fr/emulateurs_UTIL-CDT-CDT2WAV.htm CDT2WAV] [https://github.com/stripwax/wav2tzx wav2tzx] [https://github.com/raxoft/pzxtools PZXtools] [https://monocrun.com/cpc-tape-to-cdt/ Online Tape to CDT] Set of tools about tape-images&lt;br /&gt;
*[http://www.cpcmania.com/news.htm CPRTools] [https://github.com/reidrac/cpr-tools cpr-tools] [https://github.com/renaudguerin/cpr2bin cpr2bin] [https://problemkaputt.de/no$cart.htm No$cart] [http://amsnet.chez.com/ UniDOS Cartridge Creator] Set of tools about CPR cartridge-images&lt;br /&gt;
*[https://bochs.sourceforge.io/doc/docbook/user/winimage.html WinImage, DiskExplorer, Ultimate Imager] [https://github.com/ProgrammingHobby/CPM_Image-File_Explorer CP/M Image File Explorer] Access and edit hard-drive images&lt;br /&gt;
*[https://colourclash.co.uk/cpc-analyser/ CPC Analyser] [https://imhex.werwolv.net/ ImHex] [https://github.com/cormacj/AmstradCPCRomHacks CPCRomHacks] [https://bitbucket.org/zzarko/runemu/src/main/ RunEmu] Other tools&lt;br /&gt;
*[[WinApe|WinAPE]] [[WinCPC]] [[JavaCPC]] [https://code.google.com/archive/p/cpcsdk/ Caprice Reloaded] [http://www.cpc-power.com/cpcarchives/index.php?page=articles&amp;amp;num=73 Caprice Forever] [[CPCemu]] Emulators with an integrated Z80 Assembler&lt;br /&gt;
&lt;br /&gt;
=== Cross-Platform Development ===&lt;br /&gt;
&lt;br /&gt;
*[https://cpcrulez.fr/coding-crossdev_coding-Java-Z80Assembler.htm Java Z80Assembler] [https://grauw.nl/projects/glass/ Glass] [https://pasmo.speccy.org/ Pasmo] [http://cngsoft.no-ip.org/uz80.htm UZ80] [https://github.com/EdouardBERGE/rasm Rasm] [https://cpcsdk.github.io/rust.cpclib/basm/ BASM] [https://github.com/fragarco/abasm/ ABASM] [https://k1.spdns.de/Develop/Projects/zasm/Distributions/ zasm] [http://www.compilers.de/vasm.html vasm] [https://github.com/z00m128/sjasmplus SjASMPlus] [https://github.com/cpcsdk/cpctools cpctools] [https://github.com/cpcsdk/rust.cpclib cpclib] [https://github.com/cpcsdk/rust.cpclib/tree/master/cpclib-bndbuild bndbuild] [http://julien-nevo.com/disark/ Disark] [https://github.com/santiontanon/mdlz80optimizer MDL] [https://marketplace.visualstudio.com/items?itemName=maziac.asm-code-lens ASM Code Lens] [https://marketplace.visualstudio.com/items?itemName=floooh.vscode-kcide KC IDE] Tools for CPC cross-development in Z80 Assembler&lt;br /&gt;
*[https://sdcc.sourceforge.net SDCC] [https://www.cpcwiki.eu/forum/programming/phrozen-c/msg180715/#msg180715 SDCC vs PhrozenC] [http://www.cpcmania.com/Docs/Programming/SDCC_vs_z88dk_Comparing_size_and_speed.htm  SDCC vs z88dk] [https://z88dk.org/site/ z88dk can be used with SDCC and provides a huge library] [https://ccz80.webcindario.com/ccz80en.html ccz80] [http://norecess.cpcscene.net/phactory.html Phactory] [https://github.com/cpcitor/cpc-dev-tool-chain cpc-dev-tool-chain] [https://lronaldo.github.io/cpctelera/ CPCtelera] [https://github.com/Arnaud6128/wincpctelera WinCPCtelera] Cross-platform CPC development in C&lt;br /&gt;
*[https://github.com/Bread80/Quiche Quiche] [https://lemonspawn.com/turbo-rascal-syntax-error-expected-but-begin/ Turbo Rascal Syntax Error] [https://www.youtube.com/watch?v=NTfnE4kXqt8 CPC demo made with TRSE] [https://www.youtube.com/watch?v=XjnqXiUHekY TRSE CPC tutorial] CPC cross-development in Pascal&lt;br /&gt;
*[https://github.com/KarolS/millfork Millfork] [https://github.com/wiz-lang/wiz Wiz] [https://github.com/davidgiven/cowgol Cowgol] [https://www.mikekohn.net/micro/java_grinder.php Java Grinder] CPC cross-development with other programming languages&lt;br /&gt;
*[https://jonathan-cauldwell.itch.io/multi-platform-arcade-game-designer Multi-Platform Arcade Game Designer] [https://xavisan.itch.io/mpagdgen2 MPAGD Gen2] The most user-friendly Windows tool for creating CPC games&lt;br /&gt;
*[https://vitno.org/2023/09/17/punyinform-a-new-library-for-writing-text-adventures-for-old-computers/ PunyInform] [https://github.com/Utodev/DRC/ DAAD Reborn Compiler] for developing adventure games&lt;br /&gt;
*[https://github.com/danielgaskell/scc SymbOS C Compiler] [http://www.symbos.de/quigs.htm Quigs IDE] SymbOS application development&lt;br /&gt;
*[https://cpcbasic.webcindario.com/CPCBasicEn.html CPC Basic cross-compiler] [https://github.com/benchmarko/CPCBasic CPCBasic Unchained] [https://github.com/benchmarko/LocoBasic LocoBasic] [https://marketplace.visualstudio.com/items?itemName=cebe74.amstrad-basic-helper-vscode Amstrad Basic Helper] [https://github.com/destroyer-dcf/sdkcpc SDKCPC] [https://auamstrad.es/taller/herramientas/ide8bp-portable-para-windows/ IDE 8BP] [https://www.cpcalive.com/cpcalive_en.html CpcAlive] [https://ugbasic.iwashere.eu/ ugBASIC] [https://spotlessmind1975.itch.io/ugbasic-ide ugBASIC IDE] Cross-platform CPC development in BASIC&lt;br /&gt;
*[https://github.com/einar-saukas/ZX0 ZX0] [https://github.com/emmanuel-marty/salvador Salvador] [https://github.com/ClaireCheshireCat/amstrad-cpc-dzx0 ZX0 decompressor in BASIC] [https://www.cpcwiki.eu/forum/programming/new-cruncher-zx0/msg197727/ Comparative study] Compression tools&lt;br /&gt;
&lt;br /&gt;
=== Cross-Platform Art ===&lt;br /&gt;
&lt;br /&gt;
*[https://github.com/EdouardBERGE/convgeneric ConvGeneric] [http://ldeplanque.free.fr/ConvImgCpc/new/ ConvImgCPC] [https://anto80.itch.io/image-to-amstrad-cpc-converter ImgToCpc] [https://github.com/AugustoRuiz/Img2CPC img2cpc] [https://github.com/cpcsdk/rust.cpclib/tree/master/cpclib-imgconverter cpclib-img2cpc] [https://github.com/bignaux/Magick2CPC Magick2CPC] [https://github.com/cpcsdk/gfx2crtc gfx2crtc] [https://www.dadither.com/ DaDither] [https://8bitworkshop.com/dithertron/#sys=cpc.mode0 Online Dithertron] [https://pixsaur.netlify.app/ Pixsaur] [https://github.com/jeromelesaux/martine Martine] [https://www.cpcwiki.eu/forum/applications/splitraster-v3/ Splitraster+] [https://www.pouet.net/prod.php?which=88808 UniPixelViewer] [https://www.youtube.com/watch?v=KBcxPWGmr6Q UniPixelViewer tutorial] Image converters from PC to CPC&lt;br /&gt;
*[http://grafx2.chez.com/ GrafX2] [http://multipaint.kameli.net/ Multipaint] [https://github.com/xmessner/RePAINT RePAINT!] [https://www.octoate.de/2010/09/06/cpcpaint/ CPCPaint] [https://cpcrulez.fr/coding-crossdev_coding-amstrad_cpc_tools_kit.htm Amstrad CPC Tools Kit] [[Retro Game Asset Studio]] [https://cpcrulez.fr/emulateurs_UTIL-GRA-akusprite_editor.htm AkuSprite Editor] [https://github.com/GameDevCodeur/z80Editor Z80Editor] [http://gcajdev.epizy.com/sprite_creator.php Online Sprite Creator] [https://www.aseprite.org/ Aseprite] [https://libresprite.github.io/ LibreSprite] [https://www.mapeditor.org/ Tiled] [https://github.com/Cwiiis/maped/ Maped] [https://logiker.itch.io/amstrad-ascii-exporter Amstrad ASCII Exporter] [https://recoil.sourceforge.net/ RECOIL] Cross-platform CPC graphics art editors and viewers&lt;br /&gt;
*[https://github.com/digital-sound-antiques/vgm-conv vgm-conv] [https://github.com/QuinnPainter/YMtoVGM YMtoVGM] [https://cpcrulez.fr/emulateurs_UTIL-MUSIC-YMCruncher.htm YMcruncher] [https://osdk.org/index.php?page=documentation&amp;amp;subpage=ym2mym Ym2Mym] [https://github.com/EdouardBERGE/wav2ay wav2ay] [https://kichiki.github.io/waon/ WaoN (wav2midi)] [https://cpcrulez.fr/coding-crossdev-music-ym_to_midi.htm YMtoMIDI] Music converters&lt;br /&gt;
*[http://cngsoft.no-ip.org/chipnsfx.htm CHIPNSFX] [https://grimware.org/doku.php/sources/pt3 Vortex Tracker II] [https://github.com/AugustoRuiz/WYZTracker WYZTracker] [https://www.julien-nevo.com/arkostracker/ Arkos Tracker] [https://tildearrow.org/furnace/ Furnace] [https://drsnuggles.github.io/AYSir/ AYSir] [https://aym-js.emaxilde.net AYM.JS] [https://norbertkehrer.github.io/st_player.html Soundtrakker Player in JS] Cross-platform CPC music suites&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Emulators running on the Amstrad CPC =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Emulator name&lt;br /&gt;
! External link&lt;br /&gt;
! Current version&lt;br /&gt;
! Latest release&lt;br /&gt;
! License&lt;br /&gt;
! Emulates&lt;br /&gt;
|-&lt;br /&gt;
| [[Amstrad BBC BASIC]]&lt;br /&gt;
| [https://www.cpc-power.com/index.php?page=detail&amp;amp;num=9862]&lt;br /&gt;
| 2.30&lt;br /&gt;
| Apr 2, 1986&lt;br /&gt;
| Commercial💲&lt;br /&gt;
| [[BBC BASIC]]&lt;br /&gt;
|-&lt;br /&gt;
| [[BASIC 1.1 Fuer CPC464]]&lt;br /&gt;
| [https://www.cpc-power.com/index.php?page=detail&amp;amp;num=4403]&lt;br /&gt;
| &lt;br /&gt;
| Oct 1986&lt;br /&gt;
| Open source&lt;br /&gt;
| [[Locomotive BASIC 1.1]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Brainfuck]]&lt;br /&gt;
| [http://www.symbos.de/appinfo.htm?00067] &lt;br /&gt;
| 1.0&lt;br /&gt;
| Aug 12, 2020&lt;br /&gt;
| Freeware&lt;br /&gt;
| [[Brainfuck]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Chip8 CPC]]&lt;br /&gt;
| [https://www.cpcwiki.eu/forum/games/chip8-emulator-for-amstrad-cpc/] [https://github.com/ajcasado/Chip8_CPC Repo]&lt;br /&gt;
| &lt;br /&gt;
| Nov 12, 2024&lt;br /&gt;
| Open source&lt;br /&gt;
| [[CHIP-8]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CPCZVM]]&lt;br /&gt;
| [https://www.cpcwiki.eu/index.php/Z-Machine]&lt;br /&gt;
| &lt;br /&gt;
| Jul 6, 2019&lt;br /&gt;
| Open source&lt;br /&gt;
| [[Z-Machine]]&lt;br /&gt;
|-&lt;br /&gt;
| [[CPvM]]&lt;br /&gt;
| [http://www.symbos.org/cpvm.htm] [https://github.com/danielgaskell/CPvM Repo]&lt;br /&gt;
| 1.0&lt;br /&gt;
| Apr 17, 2024&lt;br /&gt;
| Open source&lt;br /&gt;
| [[CP/M]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Fuzix OS]]&lt;br /&gt;
| [https://www.cpcwiki.eu/forum/applications/port-of-fuzix-for-the-cpc6128/] [https://github.com/ajcasado/FUZIX Repo]&lt;br /&gt;
| 0.5.1&lt;br /&gt;
| Apr 11, 2025&lt;br /&gt;
| Open source&lt;br /&gt;
| [[POSIX]] (UNIX)&lt;br /&gt;
|-&lt;br /&gt;
| [[Kersten PC Emulator]]&lt;br /&gt;
| [https://cpcrulez.fr/hardware-autres-PC_Emulator.htm]&lt;br /&gt;
| &lt;br /&gt;
| Sep 1986&lt;br /&gt;
| Hardware💲&lt;br /&gt;
| [[IBM PC]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Pac-Man]]&lt;br /&gt;
| [https://www.cpc-power.com/index.php?page=detail&amp;amp;num=7270]&lt;br /&gt;
| 1.1&lt;br /&gt;
| Jun 5, 2014&lt;br /&gt;
| Open source&lt;br /&gt;
| [[Pac-Man arcade|Pac-Man arcade]]&lt;br /&gt;
|-&lt;br /&gt;
| [[PDP-8 Emulator]]&lt;br /&gt;
| [http://www.symbos.org/appinfo.htm?00063]&lt;br /&gt;
| 1.0&lt;br /&gt;
| Jan 14, 2025&lt;br /&gt;
| Open source&lt;br /&gt;
| [[DEC PDP-8]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Phoenix]]&lt;br /&gt;
| [https://norbertkehrer.github.io/phoenix_cpc.html]&lt;br /&gt;
| &lt;br /&gt;
| Jan 6, 2019&lt;br /&gt;
| Freeware&lt;br /&gt;
| [[Phoenix arcade|Phoenix arcade]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Space Invaders|Space Invaders]]&lt;br /&gt;
| [https://www.cpc-power.com/index.php?page=detail&amp;amp;num=13098]&lt;br /&gt;
| 1.02&lt;br /&gt;
| Mar 18, 2017&lt;br /&gt;
| Freeware&lt;br /&gt;
| [[Space Invaders arcade|Space Invaders arcade]]&lt;br /&gt;
|-&lt;br /&gt;
| [[SymbOS Basic]]&lt;br /&gt;
| [http://www.symbos.de/appinfo.htm?00070]&lt;br /&gt;
| 0.1&lt;br /&gt;
| Oct 19, 2021&lt;br /&gt;
| Freeware&lt;br /&gt;
| [[MSX-Basic]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Vezza]]&lt;br /&gt;
| [https://sijnstra.itch.io/vezza] [https://gitlab.com/sijnstra1/vezza Repo]&lt;br /&gt;
| &lt;br /&gt;
| Feb 9, 2025&lt;br /&gt;
| Open source&lt;br /&gt;
| [[Z-Machine]]&lt;br /&gt;
|-&lt;br /&gt;
| [[ZXM]]&lt;br /&gt;
| [https://www.cpc-power.com/index.php?page=detail&amp;amp;num=14208]&lt;br /&gt;
| &lt;br /&gt;
| 1993&lt;br /&gt;
| Freeware&lt;br /&gt;
| [[ZX Spectrum|ZX Spectrum]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Zym]]&lt;br /&gt;
| [http://www.symbos.org/appinfo.htm?00054]&lt;br /&gt;
| 0.9&lt;br /&gt;
| Feb 19, 2022&lt;br /&gt;
| Open source&lt;br /&gt;
| [[Z-Machine]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Emulator]] [[Category:CrossDev]] [[Category:Emulation Tools]]&lt;/div&gt;</summary>
		<author><name>FindYWay</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=Creating_Tape_Image_files_(CDT)&amp;diff=126861</id>
		<title>Creating Tape Image files (CDT)</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=Creating_Tape_Image_files_(CDT)&amp;diff=126861"/>
				<updated>2025-09-08T20:41:08Z</updated>
		
		<summary type="html">&lt;p&gt;FindYWay: Mention wav2tzx&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:DATA Storage|*]][[Category:Cpctech.org]]&lt;br /&gt;
&lt;br /&gt;
== wav2tzx ==&lt;br /&gt;
&lt;br /&gt;
Consider https://github.com/stripwax/wav2tzx&lt;br /&gt;
&lt;br /&gt;
It can work with audio from fully standard, some semi-standard and maybe some protected tape.&lt;br /&gt;
&lt;br /&gt;
Written with ZX Spectrum in mind but specifically capable of CDT format.&lt;br /&gt;
&lt;br /&gt;
Very terse indications below.&lt;br /&gt;
&lt;br /&gt;
Get and compile:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/stripwax/wav2tzx&lt;br /&gt;
cd wav2tzx/src&lt;br /&gt;
gcc -o wav2tzx wav2tzx.c&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./wav2tzx -cpc /some/path/to/my.wav my.cdt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CSW ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid rgb(228, 222, 222); margin: 0px 0px 5px; padding: 0.5em 1em; background-color: rgb(249, 249, 249);&amp;quot;&amp;gt;&amp;lt;center&amp;gt;'''''This article originally came from Kevin Thackers' archive at [http://www.cpctech.org.uk http://www.cpctech.org.uk].'''''&amp;lt;/center&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 CSW -r -s45454 -k tape&lt;br /&gt;
&lt;br /&gt;
(.csw is automatically appended) &lt;br /&gt;
&lt;br /&gt;
Set volume so that the green VU meter is half way across the screen and make sure there is no clipping, which is displayed on the second red VU meter. &lt;br /&gt;
&lt;br /&gt;
Now that you've established your volume settings, you need to rewind the tape to the beginning. Press a key so that sampling begins. Wait until the end of the tape and press a key to stop sampling. A CSW &amp;amp; WAV file will have been created. &lt;br /&gt;
&lt;br /&gt;
Decompress the CSW to a VOC file and try to decode it, using the command: &lt;br /&gt;
&lt;br /&gt;
 CSW -d filename&lt;br /&gt;
&lt;br /&gt;
(file extension is not required as CSW assumes .csw) ,P.Try and decode the VOC with the following command line syntax: &lt;br /&gt;
&lt;br /&gt;
 VOC2TZX /cpc /pilot 1024 /maxp 20 filename.voc&lt;br /&gt;
&lt;br /&gt;
See if you get all the blocks to decode; on standard tapes you will get a header followed by a data block, so you should get pairs displayed. This is not always the case with tapes that use non-standard loading schemes. &lt;br /&gt;
&lt;br /&gt;
If you don't get this and there are a number of blocks but no pattern try altering the values for /pilot (1024 - 2048) and /maxp (20 - 35). With luck this proceedure should yeild better results and you will become a master of decoding. &lt;br /&gt;
&lt;br /&gt;
Once you get the tape to decode and the blocks look good, you can omit the /cpc switch to get a TZX. Rename this .TZX to .CDT. I'm not sure why it's bad to use /cpc, but I think it's something to do with assumptions which are untrue (timings etc). &lt;br /&gt;
&lt;br /&gt;
If you have no luck than you can try the proceedure again using the WAV file. As VOC2TZX currently doesn't handle CSW or WAV you have to convert it, but this could be to our advantage. I've found that many of my troublesome tapes convert if you apply a filter to the WAV-&amp;gt;CSW-&amp;gt;VOC. To do this just use the following: &amp;quot;CSW -fr1 filename.wav&amp;quot;, you could also use other filter like -fl600. There are other filters available but I've not used them so far. &lt;br /&gt;
&lt;br /&gt;
If all else fails then send the tape to me and I'll have a go at them :-)&lt;/div&gt;</summary>
		<author><name>FindYWay</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=Creating_Tape_Image_files_(CDT)&amp;diff=126860</id>
		<title>Creating Tape Image files (CDT)</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=Creating_Tape_Image_files_(CDT)&amp;diff=126860"/>
				<updated>2025-09-08T20:38:42Z</updated>
		
		<summary type="html">&lt;p&gt;FindYWay: Mention wav2tzx.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:DATA Storage|*]][[Category:Cpctech.org]]&lt;br /&gt;
&lt;br /&gt;
== wav2tzx ==&lt;br /&gt;
&lt;br /&gt;
Consider https://github.com/stripwax/wav2tzx&lt;br /&gt;
&lt;br /&gt;
Very tersely.&lt;br /&gt;
&lt;br /&gt;
Get and compile:&lt;br /&gt;
&lt;br /&gt;
git clone https://github.com/stripwax/wav2tzx&lt;br /&gt;
cd wav2tzx/src&lt;br /&gt;
gcc -o wav2tzx wav2tzx.c&lt;br /&gt;
&lt;br /&gt;
Use:&lt;br /&gt;
&lt;br /&gt;
./wav2tzx -cpc /some/path/to/my.wav my.cdt&lt;br /&gt;
&lt;br /&gt;
== CSW ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid rgb(228, 222, 222); margin: 0px 0px 5px; padding: 0.5em 1em; background-color: rgb(249, 249, 249);&amp;quot;&amp;gt;&amp;lt;center&amp;gt;'''''This article originally came from Kevin Thackers' archive at [http://www.cpctech.org.uk http://www.cpctech.org.uk].'''''&amp;lt;/center&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 CSW -r -s45454 -k tape&lt;br /&gt;
&lt;br /&gt;
(.csw is automatically appended) &lt;br /&gt;
&lt;br /&gt;
Set volume so that the green VU meter is half way across the screen and make sure there is no clipping, which is displayed on the second red VU meter. &lt;br /&gt;
&lt;br /&gt;
Now that you've established your volume settings, you need to rewind the tape to the beginning. Press a key so that sampling begins. Wait until the end of the tape and press a key to stop sampling. A CSW &amp;amp; WAV file will have been created. &lt;br /&gt;
&lt;br /&gt;
Decompress the CSW to a VOC file and try to decode it, using the command: &lt;br /&gt;
&lt;br /&gt;
 CSW -d filename&lt;br /&gt;
&lt;br /&gt;
(file extension is not required as CSW assumes .csw) ,P.Try and decode the VOC with the following command line syntax: &lt;br /&gt;
&lt;br /&gt;
 VOC2TZX /cpc /pilot 1024 /maxp 20 filename.voc&lt;br /&gt;
&lt;br /&gt;
See if you get all the blocks to decode; on standard tapes you will get a header followed by a data block, so you should get pairs displayed. This is not always the case with tapes that use non-standard loading schemes. &lt;br /&gt;
&lt;br /&gt;
If you don't get this and there are a number of blocks but no pattern try altering the values for /pilot (1024 - 2048) and /maxp (20 - 35). With luck this proceedure should yeild better results and you will become a master of decoding. &lt;br /&gt;
&lt;br /&gt;
Once you get the tape to decode and the blocks look good, you can omit the /cpc switch to get a TZX. Rename this .TZX to .CDT. I'm not sure why it's bad to use /cpc, but I think it's something to do with assumptions which are untrue (timings etc). &lt;br /&gt;
&lt;br /&gt;
If you have no luck than you can try the proceedure again using the WAV file. As VOC2TZX currently doesn't handle CSW or WAV you have to convert it, but this could be to our advantage. I've found that many of my troublesome tapes convert if you apply a filter to the WAV-&amp;gt;CSW-&amp;gt;VOC. To do this just use the following: &amp;quot;CSW -fr1 filename.wav&amp;quot;, you could also use other filter like -fl600. There are other filters available but I've not used them so far. &lt;br /&gt;
&lt;br /&gt;
If all else fails then send the tape to me and I'll have a go at them :-)&lt;/div&gt;</summary>
		<author><name>FindYWay</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=DIY:Floppy_Drives&amp;diff=126798</id>
		<title>DIY:Floppy Drives</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=DIY:Floppy_Drives&amp;diff=126798"/>
				<updated>2025-08-12T06:52:03Z</updated>
		
		<summary type="html">&lt;p&gt;FindYWay: Warned about using HD disks as SD.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Preface  ===&lt;br /&gt;
&lt;br /&gt;
This document shows pinning list, wiring diagrams and signal descriptions found on a CPC6128. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
=== Multi-Adaptor Cable for External Floppies / HxC emulator ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Floppy_Cable.png|800px|centre]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Adaptor Cable for Internal Floppies / HxC emulator ===&lt;br /&gt;
&lt;br /&gt;
This cable assumes that the drive has been set to DS0 / ID0 and provides a ready signal. For the HxC not a problem, just a simple jumper setting, for floppies this may involve making some mods to the drive.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Internal_HxC_Cable.png|800px|centre]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I've shown the cable from several views to highlight the fact that the connectors don't face the same way on the cable.&lt;br /&gt;
&lt;br /&gt;
First crimp the 26way connector as shown in the diagram. Then split the first 6 wires starting from the side of the red wire. These 6 wires need to be shifted 2 cavities further over before being crimped into the 36way connector. Wire 26 goes directly to pin 34 of the floppy connector. Make sure the keyways / orientation slots of both connectors are as shown in the diagram. The cable needs no bridges, switches or anything else. When you are finished, you should have a cable looking something like this:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:HxC Adaptor.jpg|600px|centre]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Signal assignment on connectors&amp;lt;br&amp;gt;  ===&lt;br /&gt;
&lt;br /&gt;
==== Standard floppy connector 34pin&amp;lt;br&amp;gt;  ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Floppy&amp;lt;br&amp;gt;connector !!colspan=&amp;quot;2&amp;quot;| Signal description&lt;br /&gt;
|-&lt;br /&gt;
|  1..33   || GND    || Ground&lt;br /&gt;
|-&lt;br /&gt;
|  2       || /DCD   || Disk Change Detect&lt;br /&gt;
|-&lt;br /&gt;
|  4       || /DS3   || Drive select 3 (Not always supported)&lt;br /&gt;
|-&lt;br /&gt;
|  6       || /INUSE || Open collector LED driver&lt;br /&gt;
|-&lt;br /&gt;
|  8       || /IND   || Index&lt;br /&gt;
|-&lt;br /&gt;
| 10       || /DS0   || Drive select 0&lt;br /&gt;
|-&lt;br /&gt;
| 12       || /DS1   || Drive select 1&lt;br /&gt;
|-&lt;br /&gt;
| 14       || /DS2   || Drive select 2&lt;br /&gt;
|-&lt;br /&gt;
| 16       || /MTRON || Motor enable&lt;br /&gt;
|-&lt;br /&gt;
| 18       || /DIR   || Direction select&lt;br /&gt;
|-&lt;br /&gt;
| 20       || /STEP  || Head step&lt;br /&gt;
|-&lt;br /&gt;
| 22       || /WDAT  || Write data&lt;br /&gt;
|-&lt;br /&gt;
| 24       || /WGAT  || Write gate&lt;br /&gt;
|-&lt;br /&gt;
| 26       || /TRK0  || Track 0&lt;br /&gt;
|-&lt;br /&gt;
| 28       || /WPT   || Write protect&lt;br /&gt;
|-&lt;br /&gt;
| 30       || /RDAT  || Read data&lt;br /&gt;
|-&lt;br /&gt;
| 32       || /S1    || Side select&lt;br /&gt;
|-&lt;br /&gt;
| 34       || /RDY   || Ready/Disk change depending on drive configuration&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== CPC-CD201 (internal floppy 26pin connector)  ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!CPC-CD201  !!colspan=&amp;quot;2&amp;quot;| Signal description&amp;lt;br&amp;gt;(numbering from Amstrads repair manual)&lt;br /&gt;
|-&lt;br /&gt;
|   1..25   || GND   || Ground&lt;br /&gt;
|-&lt;br /&gt;
|   2       || /IND  || Index&lt;br /&gt;
|-&lt;br /&gt;
|   4       || /DRV1 || Drive select 1&lt;br /&gt;
|-&lt;br /&gt;
|   6       || NC&lt;br /&gt;
|-&lt;br /&gt;
|   8       || /MED1 || Motor enable drive 1&lt;br /&gt;
|-&lt;br /&gt;
|  10       || /DIR  || Direction select&lt;br /&gt;
|-&lt;br /&gt;
|  12       || /STEP || Head step&lt;br /&gt;
|-&lt;br /&gt;
|  14       || /WDAT || Write data&lt;br /&gt;
|-&lt;br /&gt;
|  16       || /WGAT || Write gate&lt;br /&gt;
|-&lt;br /&gt;
|  18       || /TRK0 || Track 0&lt;br /&gt;
|-&lt;br /&gt;
|  20       || /WPT  || Write protect&lt;br /&gt;
|-&lt;br /&gt;
|  22       || /RDAT || Read data&lt;br /&gt;
|-&lt;br /&gt;
|  24       || /S1   || Side 1 select&lt;br /&gt;
|-&lt;br /&gt;
|  26       || /RDY  || Ready (or /DSKCHG) depending on model or drive configuration&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
==== CPC-PL-9 (external floppy 34pin centronics connector)  ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! CPC-PL-9  !!colspan=&amp;quot;2&amp;quot;| Signal description external&amp;lt;br&amp;gt;(numbering from Amstrads repair manual)&lt;br /&gt;
|-&lt;br /&gt;
|   2..34   || GND   || Ground&lt;br /&gt;
|-&lt;br /&gt;
|  33       || +5V   ||&lt;br /&gt;
|-&lt;br /&gt;
|  31       || +5V   ||&lt;br /&gt;
|-&lt;br /&gt;
|  29       || +5V   ||&lt;br /&gt;
|-&lt;br /&gt;
|  27       || /IND  || Index&lt;br /&gt;
|-&lt;br /&gt;
|  25       || NC    ||&lt;br /&gt;
|-&lt;br /&gt;
|  23       || /DRV1 || Drive select 1&lt;br /&gt;
|-&lt;br /&gt;
|  21       || +5V &lt;br /&gt;
|-&lt;br /&gt;
|  19       || /MED1 || Motor enable drive 1&lt;br /&gt;
|-&lt;br /&gt;
|  17       || /DIR  || Direction select&lt;br /&gt;
|-&lt;br /&gt;
|  15       || /STEP || Head step&lt;br /&gt;
|-&lt;br /&gt;
|  13       || /WDAT || Write data&lt;br /&gt;
|-&lt;br /&gt;
|  11       || /WGAT || Write gate&lt;br /&gt;
|-&lt;br /&gt;
|   9       || /TRK0 || Track 0&lt;br /&gt;
|-&lt;br /&gt;
|   7       || /WPT  || Write protect&lt;br /&gt;
|-&lt;br /&gt;
|   5       || /RDAT || Read data&lt;br /&gt;
|-&lt;br /&gt;
|   3       || /S1   || Side 1 select&lt;br /&gt;
|-&lt;br /&gt;
|   1       || /RDY  || Ready (or /DSKCHG) depending on model or drive configuration&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Pinning translation between different connectors (CPC-PL-9, Centronics 36pin, Floppy connector 34pin)&amp;lt;br&amp;gt;  ===&lt;br /&gt;
&amp;lt;pre&amp;gt;Translation from CPC-PL-9 via Centronics 36 pin connector to floppy connector 34pin&lt;br /&gt;
===================================================================================&lt;br /&gt;
(flat cable / crimp variant view)&lt;br /&gt;
&lt;br /&gt;
                          +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---- GND&lt;br /&gt;
                          |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |&lt;br /&gt;
Floppy connector 34pin   33  31  29  27  25  23  21  19  17  15  13  11  09  07  05  03  01  NC&lt;br /&gt;
Centronics 36pin         18  17  16  15  14  13  12  11  10  09  08  07  06  05  04  03  02  01 &lt;br /&gt;
Amstard CPC-PL-9         02  04  06  08  10  12  14  16  18  20  22  24  26  28  30  32  34  NC&lt;br /&gt;
                       **++**++**++**++**++**++**++**++**++**++**++**++**++**++**++**++**++**++&lt;br /&gt;
Amstard CPC-PL-9       01  03  05  07  09  11  13  15  17  19  21  23  25  27  29  31  33  NC &lt;br /&gt;
Centronics 36pin       36  35  34  33  32  31  30  29  28  27  26  25  24  23  22  21  20  19 &lt;br /&gt;
Floppy connector 34pin 34  32  30  28  26  24  22  20  18  16  14  12  10  08  06  04  02  NC&lt;br /&gt;
                        |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |&lt;br /&gt;
                        |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   +-- NC&lt;br /&gt;
                        |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   +------ +5V&lt;br /&gt;
                        |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   +---------- +5V&lt;br /&gt;
                        |   |   |   |   |   |   |   |   |   |   |   |   |   |   +-------------- +5V&lt;br /&gt;
                        |   |   |   |   |   |   |   |   |   |   |   |   |   +------------------ /IND&lt;br /&gt;
                        |   |   |   |   |   |   |   |   |   |   |   |   +---------------------- NC&lt;br /&gt;
                        |   |   |   |   |   |   |   |   |   |   |   +-------------------------- /DRV1&lt;br /&gt;
                        |   |   |   |   |   |   |   |   |   |   +------------------------------ +5V&lt;br /&gt;
                        |   |   |   |   |   |   |   |   |   +---------------------------------- /MED1&lt;br /&gt;
                        |   |   |   |   |   |   |   |   +-------------------------------------- /DIR&lt;br /&gt;
                        |   |   |   |   |   |   |   +------------------------------------------ /STEP&lt;br /&gt;
                        |   |   |   |   |   |   +---------------------------------------------- /WDAT&lt;br /&gt;
                        |   |   |   |   |   +-------------------------------------------------- /WGAT&lt;br /&gt;
                        |   |   |   |   +------------------------------------------------------ /TRK0&lt;br /&gt;
                        |   |   |   +---------------------------------------------------------- /WPT&lt;br /&gt;
                        |   |   +-------------------------------------------------------------- /RDAT&lt;br /&gt;
                        |   +------------------------------------------------------------------ /S1&lt;br /&gt;
                        +---------------------------------------------------------------------- /RDY&lt;br /&gt;
&lt;br /&gt;
**/++ Flatcable signal&amp;lt;/pre&amp;gt; &lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
=== Wiring diagrams&amp;lt;br&amp;gt;  ===&lt;br /&gt;
&lt;br /&gt;
==== External floppy connector CPC-PL-9 to standard floppy connector 34pin  ====&lt;br /&gt;
&lt;br /&gt;
(flat cable / crimp variant view)&lt;br /&gt;
&lt;br /&gt;
Note: Disconnect wire 03-35-32 /S1 if you use a side selector switch which is connected to the floppy drive.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;| PL-9 !!width=&amp;quot;25%&amp;quot;| CEN  !!width=&amp;quot;25%&amp;quot;|  PCF !!width=&amp;quot;25%&amp;quot;|  SIGNAL&lt;br /&gt;
|-&lt;br /&gt;
|  01  ||  36  ||  34  ||  /RDY&lt;br /&gt;
|-&lt;br /&gt;
|  02  ||  18  ||  33  ||  GND&lt;br /&gt;
|-&lt;br /&gt;
|  03  ||  35  ||  32  ||  /S1&lt;br /&gt;
|-&lt;br /&gt;
|  04  ||  17  ||  31  ||  GND&lt;br /&gt;
|-&lt;br /&gt;
|  05  ||  34  ||  30  ||  /RDAT&lt;br /&gt;
|-&lt;br /&gt;
|  06  ||  16  ||  29  ||  GND&lt;br /&gt;
|-&lt;br /&gt;
|  07  ||  33  ||  28  ||  /WPT&lt;br /&gt;
|-&lt;br /&gt;
|  08  ||  15  ||  27  ||  GND&lt;br /&gt;
|-&lt;br /&gt;
|  09  ||  32  ||  26  ||  /TRK0&lt;br /&gt;
|-&lt;br /&gt;
|  10  ||  14  ||  25  ||  GND&lt;br /&gt;
|-&lt;br /&gt;
|  11  ||  31  ||  24  ||  /WGAT&lt;br /&gt;
|-&lt;br /&gt;
|  12  ||  13  ||  23  ||  GND&lt;br /&gt;
|-&lt;br /&gt;
|  13  ||  30  ||  22  ||  /WDAT&lt;br /&gt;
|-&lt;br /&gt;
|  14  ||  12  ||  21  ||  GND&lt;br /&gt;
|-&lt;br /&gt;
|  15  ||  29  ||  20  ||  /STEP&lt;br /&gt;
|-&lt;br /&gt;
|  16  ||  10  ||  19  ||  GND&lt;br /&gt;
|-&lt;br /&gt;
|  17  ||  28  ||  18  ||  /DIR&lt;br /&gt;
|-&lt;br /&gt;
|  18  ||  10  ||  17  ||  GND&lt;br /&gt;
|-&lt;br /&gt;
|  19  ||  27  ||  16  ||  /MED1&lt;br /&gt;
|-&lt;br /&gt;
|  20  ||  09  ||  15  ||  GND&lt;br /&gt;
|-&lt;br /&gt;
|  21  ||  26  ||  14  ||  NC&lt;br /&gt;
|-&lt;br /&gt;
|  22  ||  08  ||  13  ||  GND&lt;br /&gt;
|-&lt;br /&gt;
|  23  ||  25  ||  12  ||  /DRV1&lt;br /&gt;
|-&lt;br /&gt;
|  24  ||  07  ||  11  ||  GND&lt;br /&gt;
|-&lt;br /&gt;
|  25  ||  24  ||  10  ||  NC&lt;br /&gt;
|-&lt;br /&gt;
|  26  ||  06  ||  09  ||  GND&lt;br /&gt;
|-&lt;br /&gt;
|  27  ||  23  ||  08  ||  /IND&lt;br /&gt;
|-&lt;br /&gt;
|  28  ||  05  ||  07  ||  GND&lt;br /&gt;
|-&lt;br /&gt;
|  29  ||  22  ||  06  ||  NC&lt;br /&gt;
|-&lt;br /&gt;
|  30  ||  04  ||  05  ||  GND&lt;br /&gt;
|-&lt;br /&gt;
|  31  ||  21  ||  04  ||  NC&lt;br /&gt;
|-&lt;br /&gt;
|  32  ||  03  ||  03  ||  GND&lt;br /&gt;
|-&lt;br /&gt;
|  33  ||  20  ||  02  ||  NC&lt;br /&gt;
|-&lt;br /&gt;
|  34  ||  02  ||  01  ||  GND&lt;br /&gt;
|-&lt;br /&gt;
|      ||  19  ||      ||  NC&lt;br /&gt;
|-&lt;br /&gt;
|      ||  01  ||      ||  NC&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
==== Internal floppy connector CD201 to standard floppy connector 34pin  ====&lt;br /&gt;
&lt;br /&gt;
(flat cable / crimp variant view)&lt;br /&gt;
&lt;br /&gt;
Note: Disconnect wire 24-32 /S1 if you use a side selector switch which is connected to the floppy drive.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!width=&amp;quot;33%&amp;quot;| CD201 !!width=&amp;quot;33%&amp;quot;| PCF  !!width=&amp;quot;33%&amp;quot;| SIGNAL&lt;br /&gt;
|-&lt;br /&gt;
|  26  ||  34  || /RDY&lt;br /&gt;
|-&lt;br /&gt;
|  25  ||  33  || GND&lt;br /&gt;
|-&lt;br /&gt;
|  24  ||  32  || /S1&lt;br /&gt;
|-&lt;br /&gt;
|  23  ||  31  || GND&lt;br /&gt;
|-&lt;br /&gt;
|  22  ||  30  || /RDAT&lt;br /&gt;
|-&lt;br /&gt;
|  21  ||  29  || GND&lt;br /&gt;
|-&lt;br /&gt;
|  20  ||  28  || /WPT&lt;br /&gt;
|-&lt;br /&gt;
|  19  ||  27  || GND&lt;br /&gt;
|-&lt;br /&gt;
|  18  ||  26  || /TRK0&lt;br /&gt;
|-&lt;br /&gt;
|  17  ||  25  || GND&lt;br /&gt;
|-&lt;br /&gt;
|  16  ||  24  || /WGAT&lt;br /&gt;
|-&lt;br /&gt;
|  15  ||  23  || GND&lt;br /&gt;
|-&lt;br /&gt;
|  14  ||  22  || /WDAT&lt;br /&gt;
|-&lt;br /&gt;
|  13  ||  21  || GND&lt;br /&gt;
|-&lt;br /&gt;
|  12  ||  20  || /STEP&lt;br /&gt;
|-&lt;br /&gt;
|  11  ||  19  || GND&lt;br /&gt;
|-&lt;br /&gt;
|  10  ||  18  || /DIR&lt;br /&gt;
|-&lt;br /&gt;
|  09  ||  17  || GND&lt;br /&gt;
|-&lt;br /&gt;
|  08  ||  16  || /MED1&lt;br /&gt;
|-&lt;br /&gt;
|  07  ||  15  || GND&lt;br /&gt;
|-&lt;br /&gt;
|  06  ||  14  || NC&lt;br /&gt;
|-&lt;br /&gt;
|  05  ||  13  || GND&lt;br /&gt;
|-&lt;br /&gt;
|  04  ||  12  || /DRV1&lt;br /&gt;
|-&lt;br /&gt;
|      ||  11  || GND&lt;br /&gt;
|-&lt;br /&gt;
|      ||  10  || NC&lt;br /&gt;
|-&lt;br /&gt;
|  03  ||  09  || GND&lt;br /&gt;
|-&lt;br /&gt;
|  02  ||  08  || /IND&lt;br /&gt;
|-&lt;br /&gt;
|  01  ||  07  || GND&lt;br /&gt;
|-&lt;br /&gt;
|      ||  06  || NC&lt;br /&gt;
|-&lt;br /&gt;
|      ||  05  || NC&lt;br /&gt;
|-&lt;br /&gt;
|      ||  04  || NC&lt;br /&gt;
|-&lt;br /&gt;
|      ||  03  || NC&lt;br /&gt;
|-&lt;br /&gt;
|      ||  02  || NC&lt;br /&gt;
|-&lt;br /&gt;
|      ||  01  || NC&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Issues  ===&lt;br /&gt;
&lt;br /&gt;
==== Floppy drive  ====&lt;br /&gt;
&lt;br /&gt;
* This cables work for drive which are jumpered as drive 1/DS1. This is normally the default selection on drive delivery. &lt;br /&gt;
* Make sure you find a drive which has the possibility to generate a ready signal instead of a disc change signal.&lt;br /&gt;
&lt;br /&gt;
==== Disk issues  ====&lt;br /&gt;
&lt;br /&gt;
If you think about to use a HD drive, make sure to close the HD detection hole on your disk. Still, be aware that the magnetic properties of SD disk and HD disk are different (the HD ones need a stronger magnetic field). When you close the HD detection hole, the drive assumes a SD disk and applies the weaker magnetic field. As a result, HD disks used as SD tend to work but not as reliably as real DD disk (discussed on &lt;br /&gt;
[https://www.lemonamiga.com/forum/viewtopic.php?t=14829 Using 1.44MB HD Disks in the Amiga... &amp;amp;#45; Lemon Amiga]&lt;br /&gt;
[https://groups.google.com/g/comp.sys.apple2/c/9mUL0vZwx6Q?pli=1 HD floppies in a DD drive.]&lt;br /&gt;
[https://www.vogons.org/viewtopic.php?t=46934 High density diskette in low&amp;amp;#45;density drive? \ VOGONS] ).&lt;br /&gt;
&lt;br /&gt;
[[Category:DIY]]&lt;/div&gt;</summary>
		<author><name>FindYWay</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=ULIfAC&amp;diff=126771</id>
		<title>ULIfAC</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=ULIfAC&amp;diff=126771"/>
				<updated>2025-07-31T15:03:42Z</updated>
		
		<summary type="html">&lt;p&gt;FindYWay: Incorporated info from https://www.cpcwiki.eu/forum/index.php?msg=252765&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== News ==&lt;br /&gt;
&lt;br /&gt;
'''[https://www.cpcwiki.eu/forum/index.php?msg=251771&amp;lt;big&amp;gt;&amp;lt;big&amp;gt;&amp;lt;big&amp;gt;Summer offer for ULIfAC board!&amp;lt;/big&amp;gt;&amp;lt;/big&amp;gt;&amp;lt;/big&amp;gt;]'''&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
[[Image:Ulifac_1.jpg|thumb|ULIfAC v2]] [[Image:Ulifac highres.jpg|thumb|ULIfAC v5 with [https://www.thingiverse.com/thing:6035835 3D case]]]&lt;br /&gt;
&lt;br /&gt;
The '''Ul'''timate '''I'''nterface '''f'''or '''A'''mstrad '''C'''PC (a.k.a. ULIfAC), is a modern multi function board that you can plug to a real Amstrad CPC 464 or 6128.&lt;br /&gt;
&lt;br /&gt;
It offers '''the 3 most important functionalities''' (especially for CPC 464):&lt;br /&gt;
&lt;br /&gt;
* Browsing directories and loading from plain files, dsk images, snapshots from a USB stick or a PC via a serial cable or WIFI&lt;br /&gt;
* Ram Expansion&lt;br /&gt;
* Rom board&lt;br /&gt;
&lt;br /&gt;
...'''in a SINGLE board''', something unprecedented before ULIfAC appeared (and if i'm not mistaken still is...), and also in such low price.&lt;br /&gt;
&lt;br /&gt;
== More details ==&lt;br /&gt;
&lt;br /&gt;
The ULIfAC is based around PIC 18F47Q10 Microcontrollers, designed and built by [[ikonsgr]] from the CPCWIKI Forums. ULIfAC is an evolution of [[USIFAC|USiFAC II board]], with which is 100% compatible.&lt;br /&gt;
&lt;br /&gt;
The USIfAC II board offered Mass storage access at a very low price too.&lt;br /&gt;
&lt;br /&gt;
'''ULIfAC''' board expands the functionality of the previous USIfAC II board, by offering many new features on the same board:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| • 512Kb Ram Expansion &lt;br /&gt;
|-&lt;br /&gt;
| • 32X Rom Board&lt;br /&gt;
|-&lt;br /&gt;
| • 256Kb Ram Expansion + 16X ROM board on CPC 664/6128 &lt;br /&gt;
|-&lt;br /&gt;
| • 192Kb Ram Expansion + 16X ROM board on CPC 464 (Supports CP/M Plus, Symbos, Future OS)&lt;br /&gt;
|-&lt;br /&gt;
| • Automatic Rom mounting upon cold boot! &lt;br /&gt;
|-&lt;br /&gt;
| • Convert instantly a CPC 464 to a CPC 6128 using a simple RSX Command&lt;br /&gt;
|-&lt;br /&gt;
| • Run games/programs from a usb stick or PC Hard Drive (through WiFi module or UART serial cable).Save is also supported, as well as full access to ASCII files.    &lt;br /&gt;
|-&lt;br /&gt;
| • Full read/write access of DSK images of  both AMSODS and PARADOS  formats.&lt;br /&gt;
|-&lt;br /&gt;
| • Very fast loading speeds of up to ~30+kb/sec (more than 6-7 times faster ,than a usual speed of a gotek/floppy disk drive).&lt;br /&gt;
|-&lt;br /&gt;
| • Access up to Four DSK images and choose them &amp;quot;on the fly&amp;quot;, to support all multi-image Games.&lt;br /&gt;
|-&lt;br /&gt;
| • Load SNA snapshot files.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
-'''Project's Main Thread''':- https://www.cpcwiki.eu/forum/amstrad-cpc-hardware/ulifacusb-mass-storage-wifi-512kb-ram32xrom-board256k-ram16x-rom-board!/&lt;br /&gt;
&lt;br /&gt;
-'''Latest User's manual:''':- https://www.dropbox.com/scl/fi/x1cad8kzzsugn1razoy74/ULIFAC-User-Guide_v5.pdf?rlkey=x14349neqsmxum5xmhuwyo82f&amp;amp;dl=0&lt;br /&gt;
&lt;br /&gt;
-'''Special thread for technical problems &amp;amp; support:''':- https://www.cpcwiki.eu/forum/index.php?topic=20244.0&lt;br /&gt;
&lt;br /&gt;
-'''Updates, software and manuals are available here:''':- https://www.dropbox.com/scl/fo/8ayveto2x9uyq9a09pn3e/h?rlkey=8jcjqn4qwm0dnrun3kdkyi1ip&amp;amp;dl=0&lt;br /&gt;
&lt;br /&gt;
- '''ULIfAC 3D printer case''': https://www.thingiverse.com/thing:6035835&lt;br /&gt;
&lt;br /&gt;
- '''A Collection of small presentation Videos''': https://www.youtube.com/watch?v=BhCSeLkj9EE&amp;amp;list=PLW3RQ35JxkQc7JT5bXpipQc---Sbsh3LE&lt;br /&gt;
&lt;br /&gt;
- '''LiliCPC, the Largest Game Launcher collection''' ever created: https://www.youtube.com/watch?v=0qvMmoQs0bc Download [https://mega.nz/folder/93pR2KiA#qlkiFakrZhSzmko65EbTWw/folder/pmpEiYBZ '''here''']&lt;br /&gt;
&lt;br /&gt;
- '''Symbos supporting ULIfAC''': https://www.cpcwiki.eu/forum/index.php?msg=225997&lt;br /&gt;
&lt;br /&gt;
- Load '''CPM Plus''' for ULIfAC (mass storage support): https://www.cpcwiki.eu/forum/index.php?topic=18852.0&lt;br /&gt;
&lt;br /&gt;
- A list of ~250 Classic and worth to play games: https://www.cpcwiki.eu/forum/index.php?topic=17446.0&lt;br /&gt;
&lt;br /&gt;
- A small Basic utility for easily mounting dsk images to the 4 image slots: https://www.cpcwiki.eu/forum/index.php?msg=200760&lt;br /&gt;
&lt;br /&gt;
- Some stuff about linux &amp;amp; python: https://www.cpcwiki.eu/forum/index.php?msg=201894&lt;br /&gt;
&lt;br /&gt;
- '''Disable completely &amp;amp; re-enable board''': https://www.cpcwiki.eu/forum/index.php?msg=217889 (useful for troubleshooting problems with multiple boards connected)&lt;br /&gt;
&lt;br /&gt;
- ESP 8266 WiFi module Hints &amp;amp; Tips: https://www.cpcwiki.eu/forum/index.php?msg=221196&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
=== Anyone interested, please contact at: ikonsgr745@hotmail.com ===&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
[[Category:Peripherals]] [[Category:Memory expansions]] [[Category:Expansion ROM]] [[Category:SymbOS]] [[Category:DATA Storage]] [[Category:Input Device]]&lt;/div&gt;</summary>
		<author><name>FindYWay</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=Emulators&amp;diff=108066</id>
		<title>Emulators</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=Emulators&amp;diff=108066"/>
				<updated>2021-05-25T22:01:06Z</updated>
		
		<summary type="html">&lt;p&gt;FindYWay: /* Emulation Core */ add SugarLibRetro.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Operating Systems  =&lt;br /&gt;
&lt;br /&gt;
== Acorn RISC OS  ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Actual version&lt;br /&gt;
! Last release&lt;br /&gt;
! Emulated systems&lt;br /&gt;
! License&lt;br /&gt;
! Link&lt;br /&gt;
|-&lt;br /&gt;
| [[!CPC|!CPC]]&lt;br /&gt;
| &lt;br /&gt;
| Jul 28, 1996&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Freeware&lt;br /&gt;
| [ftp://ftp.lip6.fr/pub/amstrad/emulator/CPC0728.ZIP]&lt;br /&gt;
|-&lt;br /&gt;
| [[!CPCemu|!CPCemu]]&lt;br /&gt;
| 1.21&lt;br /&gt;
| Mar 22, 2016&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Freeware&lt;br /&gt;
| [http://www.huggers-world.de/files/cpcemu121.zip]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== AmigaOS  ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Actual version&lt;br /&gt;
! Last release&lt;br /&gt;
! Emulated systems&lt;br /&gt;
! License&lt;br /&gt;
! Link&lt;br /&gt;
|-&lt;br /&gt;
| [[A-CPC|A-CPC]]&lt;br /&gt;
| 2.0&lt;br /&gt;
| Apr, 2002&lt;br /&gt;
| [[CPC old generation|CPC range]], [[Plus|Plus range]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [http://cpctech.cpc-live.com/download/a-cpc.lha]&lt;br /&gt;
|-&lt;br /&gt;
| [[Ami-CPC|Ami-CPC]]&lt;br /&gt;
| 0.46&lt;br /&gt;
| Jan 21, 1998&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [http://deplanque.chez.com/ami-cpc.lha]&lt;br /&gt;
|-&lt;br /&gt;
| [[Arnold|Arnold]]&lt;br /&gt;
| 1.15&lt;br /&gt;
| Dec 17, 2012&lt;br /&gt;
| [[CPC old generation|CPC range]], [[Plus|Plus range]], [[KC Compact]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [http://hirudov.com/amiga/Arnold.php]&lt;br /&gt;
|-&lt;br /&gt;
| [[CPE|CPE]]&lt;br /&gt;
| &lt;br /&gt;
| Feb 24, 1995&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [ftp://ftp.lip6.fr/pub/amstrad/emulator/ACPE_NEW.LHA]&lt;br /&gt;
|-&lt;br /&gt;
| [[Emu-CPC|Emu-CPC]]&lt;br /&gt;
| 0.7&lt;br /&gt;
| Sep 15, 1996&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Freeware&lt;br /&gt;
| [ftp://ftp.lip6.fr/pub/amstrad/emulator/EMUCPC07.LZX]&lt;br /&gt;
|-&lt;br /&gt;
| [[MESS|SDLMESS]]&lt;br /&gt;
| 0.146u4&lt;br /&gt;
| Aug 19, 2012&lt;br /&gt;
| [[CPC old generation|CPC range]], [[Plus|Plus range]], [[KC Compact]], [[Aleste 520EX]] &amp;amp; lots of other computer systems&lt;br /&gt;
| Open source&lt;br /&gt;
| [http://se.os4depot.net/index.php?function=showfile&amp;amp;file=emulation/computer/sdl_mess.lha]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== AMSDOS ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Actual version&lt;br /&gt;
! Last release&lt;br /&gt;
! Emulated systems&lt;br /&gt;
! License&lt;br /&gt;
! Link&lt;br /&gt;
|-&lt;br /&gt;
| [[Pac-Man|Pac-Man]]&lt;br /&gt;
| 1.1&lt;br /&gt;
| Jun 5, 2014&lt;br /&gt;
| [[Pac-Man arcade|Pac-Man arcade]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [http://www.cpcwiki.eu/forum/games/speed-up-patch-for-pac-man-emulator-for-cpc-by-syx-toto/msg81222/#msg81222]&lt;br /&gt;
|-&lt;br /&gt;
| [[Space Invaders|Space Invaders]]&lt;br /&gt;
| 1.0&lt;br /&gt;
| Jun 11, 2016&lt;br /&gt;
| [[Space Invaders arcade|Space Invaders arcade]]&lt;br /&gt;
| Freeware&lt;br /&gt;
| [http://www.cpcwiki.eu/forum/games/space-invaders-arcade-emulator-for-amstrad-cpc/]&lt;br /&gt;
|-&lt;br /&gt;
| [[ZXM|ZXM]]&lt;br /&gt;
| &lt;br /&gt;
| 1993&lt;br /&gt;
| [[ZX Spectrum|ZX Spectrum]]&lt;br /&gt;
| Freeware&lt;br /&gt;
| [ftp://ftp.nvg.ntnu.no/pub/cpc/misc/zxm.zip]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== DOS  ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Actual version&lt;br /&gt;
! Last release&lt;br /&gt;
! Emulated systems&lt;br /&gt;
! License&lt;br /&gt;
! Link&lt;br /&gt;
|-&lt;br /&gt;
| [[Arnimedes|Arnimedes]] &lt;br /&gt;
| 0.8a&lt;br /&gt;
| Apr 15, 2000&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Freeware&lt;br /&gt;
| [http://www.arnimedes.de/]&lt;br /&gt;
|-&lt;br /&gt;
| [[CPCE|CPCE]] &lt;br /&gt;
| 1.94&lt;br /&gt;
| Jun 2, 2011&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Freeware&lt;br /&gt;
| [http://cngsoft.no-ip.org/cpce/]&lt;br /&gt;
|-&lt;br /&gt;
| [[CPCemu|CPCemu]] &lt;br /&gt;
| 1.5&lt;br /&gt;
| Jul 7, 1998&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Freeware&lt;br /&gt;
| [http://www.cpc-emu.org/]&lt;br /&gt;
|-&lt;br /&gt;
| [[NO$CPC|NO$CPC]]&lt;br /&gt;
| 1.8&lt;br /&gt;
| Nov 2, 2000&lt;br /&gt;
| [[CPC old generation|CPC range]], [[Plus|Plus range]]&lt;br /&gt;
| Freeware&lt;br /&gt;
| [http://problemkaputt.de/cpc.htm]&lt;br /&gt;
|-&lt;br /&gt;
| [[CPCEMU (RWCPC)|RWCPC]]&lt;br /&gt;
| &lt;br /&gt;
| Mar 23, 1995&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Freeware&lt;br /&gt;
| [ftp://ftp.lip6.fr/pub/amstrad/emulator/RWCPC.ZIP]&lt;br /&gt;
|-&lt;br /&gt;
| [[SIMCPC|SIMCPC]]&lt;br /&gt;
| &lt;br /&gt;
| 1990&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Shareware&lt;br /&gt;
| [ftp://ftp.lip6.fr/pub/amstrad/emulator/SIMCPC.ZIP]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== EXOS ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Actual version&lt;br /&gt;
! Last release&lt;br /&gt;
! Emulated systems&lt;br /&gt;
! License&lt;br /&gt;
! Link&lt;br /&gt;
|-&lt;br /&gt;
| [[Software CPC Emulator|Software CPC Emulator]] &lt;br /&gt;
| 1.3&lt;br /&gt;
| Jan 11, 2013&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [http://www.ep128.hu/Ep_Util/Prg/Amstrad_CPC_Emulator_13.rar]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Haiku  ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Actual version&lt;br /&gt;
! Last release&lt;br /&gt;
! Emulated systems&lt;br /&gt;
! License&lt;br /&gt;
! Link&lt;br /&gt;
|-&lt;br /&gt;
| [[ACE_(Emulator)|ACE]]&lt;br /&gt;
| 1.14.0&lt;br /&gt;
| Jun 20, 2020&lt;br /&gt;
| [[CPC old generation|CPC range]], [[Plus|Plus range]]&lt;br /&gt;
| Freeware&lt;br /&gt;
| [http://www.cpcwiki.eu/forum/emulators/ace-for-haiku/] [http://ace.cpcscene.net/]&lt;br /&gt;
|-&lt;br /&gt;
| [[AdvanceMAME|AdvanceMAME]]&lt;br /&gt;
| 3.9-1&lt;br /&gt;
| Feb 3, 2020&lt;br /&gt;
| [[CPC old generation|CPC range]], [[Plus|Plus range]], [[KC Compact]], [[Aleste 520EX]] &amp;amp; lots of other computer systems&lt;br /&gt;
| Open source&lt;br /&gt;
| [https://depot.haiku-os.org/#!/pkg/advancemame_x86]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Java / JVM  ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Actual version&lt;br /&gt;
! Last release&lt;br /&gt;
! Emulated systems&lt;br /&gt;
! License&lt;br /&gt;
! Link&lt;br /&gt;
|-&lt;br /&gt;
| [[Arnold Jnr|Arnold Jnr]]&lt;br /&gt;
| &lt;br /&gt;
| Aug 27, 2001&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [http://www.arnoldemu.freeserve.co.uk/]&lt;br /&gt;
|-&lt;br /&gt;
| [[CPCInAJar|CPCInAJar]]&lt;br /&gt;
|&lt;br /&gt;
| Mar 16, 2011&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [http://sourceforge.net/projects/cpcinajar/]&lt;br /&gt;
|-&lt;br /&gt;
| [[JavaCPC|JavaCPC Desktop]]&lt;br /&gt;
| 2.9.7&lt;br /&gt;
| Sep 21, 2018&lt;br /&gt;
| [[CPC old generation|CPC range]], [[KC Compact]]&lt;br /&gt;
| Donationware&lt;br /&gt;
| [https://sourceforge.net/projects/javacpc/]&lt;br /&gt;
|-&lt;br /&gt;
| [[JavaCPC|JavaCPC Applet]]&lt;br /&gt;
| &lt;br /&gt;
| Jul 10, 2012&lt;br /&gt;
| [[CPC old generation|CPC range]], [[Plus|Plus range]]&lt;br /&gt;
| Donationware&lt;br /&gt;
| [http://java.cpc-live.com/] (dead link)&lt;br /&gt;
|-&lt;br /&gt;
| [[JavaGX4000|JavaGX4000]]&lt;br /&gt;
| &lt;br /&gt;
| Sep 7, 2018&lt;br /&gt;
| [[CPC old generation|CPC range]], [[Plus|Plus range]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [http://sourceforge.net/projects/javagx4000/]&lt;br /&gt;
|-&lt;br /&gt;
| [[JEMU|JEMU]]&lt;br /&gt;
| &lt;br /&gt;
| Feb 19, 2007&lt;br /&gt;
| [[CPC old generation|CPC range]], [[BBC Micro]], [[VZ-300]], [[ZX Spectrum]], [[ZX80/81]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [http://jemu.winape.net/]&lt;br /&gt;
|-&lt;br /&gt;
| [[JKCEMU|JKCEMU]]&lt;br /&gt;
| 0.9.7&lt;br /&gt;
| Mar 30, 2017&lt;br /&gt;
| [[KC Compact]] &amp;amp; other computers from East Germany&lt;br /&gt;
| Open source&lt;br /&gt;
| [http://www.jens-mueller.org/jkcemu/kccompact.html]&lt;br /&gt;
|-&lt;br /&gt;
| [[WebCPC|WebCPC]]&lt;br /&gt;
| r15&lt;br /&gt;
| Dec 31, 2010&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [http://sourceforge.net/projects/webcpc/]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== JavaScript / HTML5  ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name &lt;br /&gt;
! Actual version &lt;br /&gt;
! Last release &lt;br /&gt;
! Emulated systems &lt;br /&gt;
! License &lt;br /&gt;
! Link&lt;br /&gt;
|-&lt;br /&gt;
| [[CPCbox|CPCbox]] &lt;br /&gt;
| beta &lt;br /&gt;
| Dec 28, 2013&lt;br /&gt;
| [[CPC old generation|CPC range]] &lt;br /&gt;
| Freeware &lt;br /&gt;
| [http://www.retrovm.com/] [https://bzhgames.xyz/index.php BZH Games]&lt;br /&gt;
|-&lt;br /&gt;
| [[CrocoDS|CrocoDS]] &lt;br /&gt;
| &lt;br /&gt;
| May 13, 2020&lt;br /&gt;
| [[CPC old generation|CPC range]] &lt;br /&gt;
| Freeware &lt;br /&gt;
| [http://crocods.org/web/]&lt;br /&gt;
|-&lt;br /&gt;
| [[JSMESS]] &lt;br /&gt;
| 0.153&lt;br /&gt;
| Oct 29, 2014&lt;br /&gt;
| [[CPC old generation|CPC range]] &amp;amp; lots of other computer systems&lt;br /&gt;
| Open source&lt;br /&gt;
| [http://jsmess.textfiles.com/]&lt;br /&gt;
|-&lt;br /&gt;
| [[Roland javascript emulator|Roland]] &lt;br /&gt;
| &lt;br /&gt;
| Sep 24, 2011 &lt;br /&gt;
| [[CPC old generation|CPC range]] &lt;br /&gt;
| Open source &lt;br /&gt;
| [http://roland.retrolandia.net/]&lt;br /&gt;
|-&lt;br /&gt;
| [[Tiny Emus]]&lt;br /&gt;
| &lt;br /&gt;
| Dec 31, 2018&lt;br /&gt;
| [[CPC old generation|CPC range]], [[ZX Spectrum]], [[VIC-20]], [[Commodore 64]], [[Acorn Atom]], [[KC Compact]], [[KC 85]], [[KC 87]], [[Z9001]], [[Z1013]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [https://floooh.github.io/tiny8bit/] [http://cpc.devilmarkus.de/ JavaCPC-Games]&lt;br /&gt;
|-&lt;br /&gt;
| [[Griffin CPC emulator|Xiragon]]&lt;br /&gt;
| &lt;br /&gt;
| Nov 28, 2012&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [http://xiragon.com/]&lt;br /&gt;
|-&lt;br /&gt;
| [[YAKC|Yet another KC emulator]]&lt;br /&gt;
| &lt;br /&gt;
| Apr 17, 2017&lt;br /&gt;
| [[CPC old generation|CPC range]], [[ZX Spectrum]], [[Commodore 64]], [[Acorn Atom]], [[KC Compact]], [[KC 85]], [[KC 87]], [[Z9001]], [[Z1013]], [[HC900]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [http://floooh.github.io/virtualkc/]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== macOS ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Actual version&lt;br /&gt;
! Last release&lt;br /&gt;
! Emulated systems&lt;br /&gt;
! License&lt;br /&gt;
! Link&lt;br /&gt;
|-&lt;br /&gt;
| [[Arnold_(Emulator)|Arnold]] &lt;br /&gt;
| 1.7.9&lt;br /&gt;
| Mar 10, 2018&lt;br /&gt;
| [[CPC old generation|CPC range]], [[Plus|Plus range]], [[KC Compact]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [https://www.bannister.org/software/arnold.htm]&lt;br /&gt;
|-&lt;br /&gt;
| [[Clock Signal|Clock Signal]] &lt;br /&gt;
| &lt;br /&gt;
| Aug 2, 2020&lt;br /&gt;
| [[CPC old generation|CPC range]], [[Acorn Electron]], [[Apple II]], [[Oric 1/Atmos]], [[VIC-20]], [[ZX80/81]], [[Atari 2600]], [[Atari ST]], [[Macintosh]], [[MSX|MSX 1]], [[ColecoVision]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [https://github.com/TomHarte/CLK/releases]&lt;br /&gt;
|-&lt;br /&gt;
| [[CPCplusplus|CPC++]]&lt;br /&gt;
| 2.0.0&lt;br /&gt;
| Jan 14, 2003&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Shareware&lt;br /&gt;
| [http://bricerive.free.fr/cpc/cpcpp.html]&lt;br /&gt;
|-&lt;br /&gt;
| [[CPCSharp|CPCSharp]] &lt;br /&gt;
| 1.0.0-beta1&lt;br /&gt;
| Apr 7, 2021&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [https://github.com/dolbz/CPCSharp/releases/]&lt;br /&gt;
|-&lt;br /&gt;
| [[DSP|DSP]]&lt;br /&gt;
| 0.18&lt;br /&gt;
| Dec 31, 2017&lt;br /&gt;
| [[CPC old generation|CPC range]], [[ZX Spectrum]], [[Game Boy]], [[Nintendo NES]], [[Sega Master System]], [[ColecoVision]], [[Arcade]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [https://github.com/leniad/dsp-emulator/]&lt;br /&gt;
|-&lt;br /&gt;
| [[MacCPC|MacCPC]]&lt;br /&gt;
| 0.9.2&lt;br /&gt;
| Jan 22, 2010&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Freeware&lt;br /&gt;
| [http://www.wincpc.ch/index.php?topic=projects-maccpc]&lt;br /&gt;
|-&lt;br /&gt;
| [[Retro Virtual Machine|Retro Virtual Machine]]&lt;br /&gt;
| 2.0 BETA-1 R7&lt;br /&gt;
| Jul 10, 2019&lt;br /&gt;
| [[CPC old generation|CPC range]], [[ZX Spectrum]]&lt;br /&gt;
| Donationware&lt;br /&gt;
| [https://www.retrovirtualmachine.org]&lt;br /&gt;
|-&lt;br /&gt;
| [[MESS|SDLMAME]]&lt;br /&gt;
| 0.201&lt;br /&gt;
| Aug 29, 2018&lt;br /&gt;
| [[CPC old generation|CPC range]], [[Plus|Plus range]], [[KC Compact]], [[Aleste 520EX]] &amp;amp; lots of other computer systems&lt;br /&gt;
| Open source&lt;br /&gt;
| [http://sdlmame.lngn.net/]&lt;br /&gt;
|-&lt;br /&gt;
| [[ZEsarUX|ZEsarUX]]&lt;br /&gt;
| 9.0&lt;br /&gt;
| Aug 19, 2020&lt;br /&gt;
| [[CPC old generation|CPC range]], [[ZX Spectrum]], [[ZX80/81]], [[Jupiter ACE]], [[Sam Coupe]], [[Sinclair QL]], [[MSX 1]], [[ColecoVision]], [[SG-1000]]&lt;br /&gt;
| Donationware &amp;amp; Open source&lt;br /&gt;
| [https://github.com/chernandezba/zesarux]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MorphOS  ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Actual version&lt;br /&gt;
! Last release&lt;br /&gt;
! Emulated systems&lt;br /&gt;
! License&lt;br /&gt;
! Link&lt;br /&gt;
|-&lt;br /&gt;
| [[ACE_(Emulator)|ACE]]&lt;br /&gt;
| 1.23&lt;br /&gt;
| April 25, 2021&lt;br /&gt;
| [[CPC old generation|CPC range]], [[Plus|Plus range]]&lt;br /&gt;
| Freeware&lt;br /&gt;
| [http://ace.cpcscene.net/]&lt;br /&gt;
|-&lt;br /&gt;
| [[MESS|MESS]]&lt;br /&gt;
| 0.113&lt;br /&gt;
| Nov 1, 2007&lt;br /&gt;
| [[CPC old generation|CPC range]], [[Plus|Plus range]], [[KC Compact]], [[Aleste 520EX]] &amp;amp; lots of other computer systems&lt;br /&gt;
| Open source&lt;br /&gt;
| [http://fabportnawak.free.fr/mame/]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MSX2 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Actual version&lt;br /&gt;
! Last release&lt;br /&gt;
! Emulated systems&lt;br /&gt;
! License&lt;br /&gt;
! Link&lt;br /&gt;
|-&lt;br /&gt;
| [[EMU6CPC|EMU6CPC]]&lt;br /&gt;
| &lt;br /&gt;
| Dec 17, 2018&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Freeware&lt;br /&gt;
| [http://romu6.blogspot.com/2018/12/emu6cpc-emulador-de-amstrad-cpc-6128.html]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Unix / Linux  ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Actual version&lt;br /&gt;
! Last release&lt;br /&gt;
! Emulated systems&lt;br /&gt;
! License&lt;br /&gt;
! Link&lt;br /&gt;
|-&lt;br /&gt;
| [[Arnold_(Emulator)|Arnold]] &lt;br /&gt;
| &lt;br /&gt;
| Jan 20, 2016&lt;br /&gt;
| [[CPC old generation|CPC range]], [[Plus|Plus range]], [[KC Compact]], [[Aleste 520EX]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [http://www.cpcwiki.eu/forum/emulators/arnold-wip/msg118124/]&lt;br /&gt;
|-&lt;br /&gt;
| [[CaPriCe|CaPriCe32]] &lt;br /&gt;
| 4.4.0&lt;br /&gt;
| Mar 26, 2017&lt;br /&gt;
| [[CPC old generation|CPC range]], [[Plus|Plus range]]&lt;br /&gt;
| Donationware &amp;amp; Open source&lt;br /&gt;
| [https://github.com/ColinPitrat/caprice32]&lt;br /&gt;
|-&lt;br /&gt;
| [[Caprice Reloaded]]&lt;br /&gt;
| r377&lt;br /&gt;
| Jul 13, 2010&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [http://aur.archlinux.org/packages.php?ID=38856]&lt;br /&gt;
|-&lt;br /&gt;
| [[Clock Signal|Clock Signal]] &lt;br /&gt;
| &lt;br /&gt;
| Aug 2, 2020&lt;br /&gt;
| [[CPC old generation|CPC range]], [[Acorn Electron]], [[Apple II]], [[Oric 1/Atmos]], [[VIC-20]], [[ZX80/81]], [[Atari 2600]], [[Atari ST]], [[Macintosh]], [[MSX|MSX 1]], [[ColecoVision]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [https://github.com/TomHarte/CLK/releases]&lt;br /&gt;
|-&lt;br /&gt;
| [[CPCplusplus|CPC++]]&lt;br /&gt;
| 1.5.0&lt;br /&gt;
| &lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Shareware&lt;br /&gt;
| [http://bricerive.free.fr/cpc/cpcpp.html]&lt;br /&gt;
|-&lt;br /&gt;
| [[cpc4x|cpc4x]] &lt;br /&gt;
| 0.26&lt;br /&gt;
| Dec 11, 2004&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [http://www.ulrich-cordes.de/cpc/english/cpcemu.htm]&lt;br /&gt;
|-&lt;br /&gt;
| [[CPCemu|CPCemu]] &lt;br /&gt;
| 2.0&lt;br /&gt;
| Jan 7, 2021&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Freeware&lt;br /&gt;
| [http://www.cpc-emu.org/]&lt;br /&gt;
|-&lt;br /&gt;
| [[DSP|DSP]]&lt;br /&gt;
| 0.18&lt;br /&gt;
| Dec 31, 2017&lt;br /&gt;
| [[CPC old generation|CPC range]], [[ZX Spectrum]], [[Game Boy]], [[Nintendo NES]], [[Sega Master System]], [[ColecoVision]], [[Arcade]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [https://github.com/leniad/dsp-emulator/]&lt;br /&gt;
|-&lt;br /&gt;
| [[ep128emu|ep128emu]]&lt;br /&gt;
| 2.0.11&lt;br /&gt;
| Jan 20, 2017&lt;br /&gt;
| [[CPC old generation|CPC range]], [[ZX Spectrum]], [[Enterprise]]&lt;br /&gt;
| Donationware &amp;amp; Open source&lt;br /&gt;
| [http://sourceforge.net/projects/ep128emu/]&lt;br /&gt;
|-&lt;br /&gt;
| [[MESS|MAME]]&lt;br /&gt;
| 0.227&lt;br /&gt;
| Dec 30, 2020&lt;br /&gt;
| [[CPC old generation|CPC range]], [[Plus|Plus range]], [[KC Compact]], [[Aleste 520EX]] &amp;amp; lots of other computer systems&lt;br /&gt;
| Open source&lt;br /&gt;
| [http://wiki.mamedev.org/index.php/SDL_Supported_Platforms]&lt;br /&gt;
|-&lt;br /&gt;
| [[Retro Virtual Machine|Retro Virtual Machine]]&lt;br /&gt;
| 2.0 BETA-1 R7&lt;br /&gt;
| Jul 10, 2019&lt;br /&gt;
| [[CPC old generation|CPC range]], [[ZX Spectrum]]&lt;br /&gt;
| Donationware&lt;br /&gt;
| [https://www.retrovirtualmachine.org]&lt;br /&gt;
|-&lt;br /&gt;
| [[Roland Emulator|Roland]] &lt;br /&gt;
| 0.70&lt;br /&gt;
| Apr 20, 2017&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [https://www.rolandemu.de/index.html]&lt;br /&gt;
|-&lt;br /&gt;
| [[SugarBox|SugarBox]]&lt;br /&gt;
| 0.29&lt;br /&gt;
| Jan 22, 2018&lt;br /&gt;
| [[CPC old generation|CPC range]], [[Plus|Plus range]]&lt;br /&gt;
| Open-Source&lt;br /&gt;
| [http://sugarbox.free.fr/] [https://github.com/Tom1975/SugarboxV2]&lt;br /&gt;
|-&lt;br /&gt;
| [[XCPC|Xcpc]]&lt;br /&gt;
| 0.37.0&lt;br /&gt;
| May 2, 2021&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [https://www.xcpc-emulator.net/]&lt;br /&gt;
|-&lt;br /&gt;
| [[YACE|YACE]]&lt;br /&gt;
| Unreleased?&lt;br /&gt;
| Nov 12, 2014&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Unreleased?&lt;br /&gt;
| [http://www.youtube.com/watch?v=uxQkljwc0i4]&lt;br /&gt;
|-&lt;br /&gt;
| [[ZEsarUX|ZEsarUX]]&lt;br /&gt;
| 9.1&lt;br /&gt;
| Nov 26, 2020&lt;br /&gt;
| [[CPC old generation|CPC range]], [[ZX Spectrum]], [[ZX80/81]], [[Jupiter ACE]], [[Sam Coupe]], [[Sinclair QL]], [[MSX 1]], [[ColecoVision]], [[SG-1000]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [https://github.com/chernandezba/zesarux]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Windows  ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Actual version&lt;br /&gt;
! Last release&lt;br /&gt;
! Emulated systems&lt;br /&gt;
! License&lt;br /&gt;
! Link&lt;br /&gt;
|-&lt;br /&gt;
| [[Arnimedes|Arnimedes]] &lt;br /&gt;
| 1.02&lt;br /&gt;
| Jul 7, 2012&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Freeware&lt;br /&gt;
| [http://www.arnimedes.de/]&lt;br /&gt;
|-&lt;br /&gt;
| [[Arnold_(Emulator)|Arnold]] &lt;br /&gt;
| [http://www.cpcwiki.eu/imgs/d/dd/Arnoldwip_src.tar.bz2 WIP]&lt;br /&gt;
| May 13, 2017&lt;br /&gt;
| [[CPC old generation|CPC range]], [[Plus|Plus range]], [[KC Compact]], [[Aleste 520EX]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [http://www.cpcwiki.eu/forum/emulators/arnold-wip/msg144749/#msg144749] [https://www.cpcwiki.eu/forum/emulators/another-version-of-arnold-emulator/ Aeliss fork]&lt;br /&gt;
|-&lt;br /&gt;
| [[CaPriCe|CaPriCe]] &lt;br /&gt;
| 4.2.0&lt;br /&gt;
| May 14, 2005&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [http://sourceforge.net/projects/caprice32/]&lt;br /&gt;
|-&lt;br /&gt;
| [[CaPriCe|CaPriCe 32]] &lt;br /&gt;
| 4.5.0&lt;br /&gt;
| Dec 27, 2018&lt;br /&gt;
| [[CPC old generation|CPC range]], [[Plus|Plus range]]&lt;br /&gt;
| Donationware &amp;amp; Open source&lt;br /&gt;
| [https://github.com/ColinPitrat/caprice32]&lt;br /&gt;
|-&lt;br /&gt;
| [[Caprice Forever]] &lt;br /&gt;
| 20.10&lt;br /&gt;
| Jul 14, 2020&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Freeware&lt;br /&gt;
| [http://www.cpc-power.com/cpcarchives/index.php?page=articles&amp;amp;num=73]&lt;br /&gt;
|-&lt;br /&gt;
| [[Caprice Reloaded]]&lt;br /&gt;
| r533&lt;br /&gt;
| Sep 25, 2011&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [http://code.google.com/p/cpcsdk/]&lt;br /&gt;
|-&lt;br /&gt;
| [[Caprice32-Aleste|Caprice32-Aleste]] &lt;br /&gt;
| 4.1.0&lt;br /&gt;
| Nov 14, 2007&lt;br /&gt;
| [[Aleste 520EX|Aleste 520EX]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [http://aleste520.narod.ru/caprice.html]&lt;br /&gt;
|-&lt;br /&gt;
| [[CoPaCabana|CoPaCabana]]&lt;br /&gt;
| 0.74&lt;br /&gt;
| Apr 12, 2006&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Freeware&lt;br /&gt;
| [http://copacabana.emuunlim.com/]&lt;br /&gt;
|-&lt;br /&gt;
| [[CPC-em|CPC-em]] &lt;br /&gt;
| 0.4&lt;br /&gt;
| Jul 7, 2004&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [http://cpc-em.emuunlim.com/]&lt;br /&gt;
|-&lt;br /&gt;
| [[CPC++|CPC++]] &lt;br /&gt;
| b700&lt;br /&gt;
| Mar 26, 2014&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Freeware&lt;br /&gt;
| [http://cpcrulez.fr/emulateurs_download-WIN-CPC_plus_plus.htm]&lt;br /&gt;
|-&lt;br /&gt;
| [[CPC3D/CPC32]] &lt;br /&gt;
| 0.3&lt;br /&gt;
| Feb 8, 2003&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Freeware&lt;br /&gt;
| [http://www.angelfire.com/retro2/cpc3d/]&lt;br /&gt;
|-&lt;br /&gt;
| [[CPCE|CPCE]] &lt;br /&gt;
| 1.94&lt;br /&gt;
| Jun 2, 2011&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Freeware&lt;br /&gt;
| [http://cngsoft.no-ip.org/cpce/]&lt;br /&gt;
|-&lt;br /&gt;
| [[CPCEC|CPCEC]] &lt;br /&gt;
| 20200622&lt;br /&gt;
| Jun 6, 2020&lt;br /&gt;
| [[CPC old generation|CPC range]], [[Plus|Plus range]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [http://cngsoft.no-ip.org/cpcec.htm]&lt;br /&gt;
|-&lt;br /&gt;
| [[CPCemu|CPCemu]] &lt;br /&gt;
| 2.0&lt;br /&gt;
| Jan 7, 2021&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Freeware&lt;br /&gt;
| [http://www.cpc-emu.org/]&lt;br /&gt;
|-&lt;br /&gt;
| [[CPCEmuPower|CPCEmuPower]] &lt;br /&gt;
| 2005&lt;br /&gt;
| May 31, 2020&lt;br /&gt;
| [[CPC old generation|CPC range]], [[Plus|Plus range]]&lt;br /&gt;
| Freeware&lt;br /&gt;
| [https://www.cpcwiki.eu/forum/emulators/cpcepower-v2005/]&lt;br /&gt;
|-&lt;br /&gt;
| [[CPCSharp|CPCSharp]] &lt;br /&gt;
| 1.0.0-beta1&lt;br /&gt;
| Apr 7, 2021&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [https://github.com/dolbz/CPCSharp/releases/]&lt;br /&gt;
|-&lt;br /&gt;
| [[CPCwin|CPCwin]] &lt;br /&gt;
| 1.0&lt;br /&gt;
| Dec 4, 1997&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Freeware&lt;br /&gt;
| [ftp://ftp.lip6.fr/pub/amstrad/emulator/CPCWIN10.ZIP]&lt;br /&gt;
|-&lt;br /&gt;
| [[CPE|CPE]]&lt;br /&gt;
| 5.2&lt;br /&gt;
| Apr 21, 1997&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Freeware&lt;br /&gt;
| [ftp://ftp.lip6.fr/pub/amstrad/emulator/CPE52.ZIP]&lt;br /&gt;
|-&lt;br /&gt;
| [[CPvC|CPvC]]&lt;br /&gt;
| &lt;br /&gt;
| Oct 7, 2020&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [https://github.com/alybaek2/cpvc]&lt;br /&gt;
|-&lt;br /&gt;
| [[DSP|DSP]]&lt;br /&gt;
| 0.18&lt;br /&gt;
| Dec 31, 2017&lt;br /&gt;
| [[CPC old generation|CPC range]], [[ZX Spectrum]], [[Game Boy]], [[Nintendo NES]], [[Sega Master System]], [[ColecoVision]], [[Arcade]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [https://github.com/leniad/dsp-emulator/]&lt;br /&gt;
|-&lt;br /&gt;
| [[ep128emu|ep128emu]]&lt;br /&gt;
| 2.0.11&lt;br /&gt;
| Jan 20, 2017&lt;br /&gt;
| [[CPC old generation|CPC range]], [[ZX Spectrum]], [[Enterprise]]&lt;br /&gt;
| Donationware &amp;amp; Open source&lt;br /&gt;
| [http://sourceforge.net/projects/ep128emu/]&lt;br /&gt;
|-&lt;br /&gt;
| [[MESS|MAME]]&lt;br /&gt;
| 0.201&lt;br /&gt;
| Aug 30, 2018&lt;br /&gt;
| [[CPC old generation|CPC range]], [[Plus|Plus range]], [[KC Compact]], [[Aleste 520EX]] &amp;amp; lots of other computer systems&lt;br /&gt;
| Open source&lt;br /&gt;
| [http://mamedev.org/release.html]&lt;br /&gt;
|-&lt;br /&gt;
| [[MTMW|MTMW]]&lt;br /&gt;
| 1.30B&lt;br /&gt;
| Jan 11, 2000&lt;br /&gt;
| [[CPC old generation|CPC range]], [[Plus|Plus range]], [[ZX Spectrum]], [[ZX80/81]], [[Jupiter ACE]], [[Enterprise]]&lt;br /&gt;
| Freeware&lt;br /&gt;
| [ftp://ftp.lip6.fr/pub/amstrad/emulator/MTMW130B.ZIP]&lt;br /&gt;
|-&lt;br /&gt;
| [[NO$CPC|NO$CPC]]&lt;br /&gt;
| 1.8&lt;br /&gt;
| Nov 2, 2000&lt;br /&gt;
| [[CPC old generation|CPC range]], [[Plus|Plus range]]&lt;br /&gt;
| Freeware&lt;br /&gt;
| [http://problemkaputt.de/cpc.htm]&lt;br /&gt;
|-&lt;br /&gt;
| [[PC-CPC|PC-CPC]] &lt;br /&gt;
| 0.1at b29&lt;br /&gt;
| Nov 17, 2011&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Freeware&lt;br /&gt;
| [http://cpcrulez.fr/emulateurs_download-WIN-PC-CPC.htm]&lt;br /&gt;
|-&lt;br /&gt;
| [[Retro Virtual Machine|Retro Virtual Machine]]&lt;br /&gt;
| 2.0 BETA-1 R7&lt;br /&gt;
| Jul 10, 2019&lt;br /&gt;
| [[CPC old generation|CPC range]], [[ZX Spectrum]]&lt;br /&gt;
| Donationware&lt;br /&gt;
| [https://www.retrovirtualmachine.org]&lt;br /&gt;
|-&lt;br /&gt;
| [[Roland Emulator|Roland]] &lt;br /&gt;
| 0.70&lt;br /&gt;
| Apr 20, 2017&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [https://www.rolandemu.de/en/downloads.html]/[https://github.com/raldus/roland GitHub]&lt;br /&gt;
|-&lt;br /&gt;
| [[SugarBox|SugarBox]]&lt;br /&gt;
| 0.29&lt;br /&gt;
| Jan 22, 2018&lt;br /&gt;
| [[CPC old generation|CPC range]], [[Plus|Plus range]]&lt;br /&gt;
| Open-Source&lt;br /&gt;
| [http://sugarbox.free.fr/] [https://github.com/Tom1975/SugarboxV2]&lt;br /&gt;
|-&lt;br /&gt;
| [[vbCPC|vbCPC]] &lt;br /&gt;
| 1.06&lt;br /&gt;
| Apr 7, 2005&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Freeware&lt;br /&gt;
| [http://www.emu-france.com/news/9609-ordi-vbcpc-v1-0-6/]&lt;br /&gt;
|-&lt;br /&gt;
| [[VirtualCPC|Virtual CPC]] &lt;br /&gt;
| 1.1&lt;br /&gt;
| Aug 8, 2011&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Freeware&lt;br /&gt;
| [http://users.otenet.gr/~sulfonic/cpc/]&lt;br /&gt;
|-&lt;br /&gt;
| [[WinApe|WinAPE]] &lt;br /&gt;
| 2.0b2&lt;br /&gt;
| Jan 5, 2016&lt;br /&gt;
| [[CPC old generation|CPC range]], [[Plus|Plus range]]&lt;br /&gt;
| Donationware&lt;br /&gt;
| [http://www.winape.net/]&lt;br /&gt;
|-&lt;br /&gt;
| [[WinCPC|WinCPC]] &lt;br /&gt;
| 0.9.26&lt;br /&gt;
| Feb 1, 2007&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Freeware&lt;br /&gt;
| [http://www.wincpc.ch/index.php?topic=projects-wincpc]&lt;br /&gt;
|-&lt;br /&gt;
| [[XNACPC|XNACPC]]&lt;br /&gt;
| 1.0&lt;br /&gt;
| Nov 11, 2011&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [http://www.gavpugh.com/2011/11/11/xnacpc-xbox-360-amstrad-cpc-emulator-released/]&lt;br /&gt;
|-&lt;br /&gt;
| [[Yage|Yage]]&lt;br /&gt;
| 0.91&lt;br /&gt;
| Oct 24, 1998&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Freeware&lt;br /&gt;
| [ftp://ftp.lip6.fr/pub/amstrad/emulator/YAGE091.ZIP]&lt;br /&gt;
|-&lt;br /&gt;
| [[ZEsarUX|ZEsarUX]]&lt;br /&gt;
| 9.0&lt;br /&gt;
| Aug 19, 2020&lt;br /&gt;
| [[CPC old generation|CPC range]], [[ZX Spectrum]], [[ZX80/81]], [[Jupiter ACE]], [[Sam Coupe]], [[Sinclair QL]], [[MSX 1]], [[ColecoVision]], [[SG-1000]]&lt;br /&gt;
| Donationware &amp;amp; Open source&lt;br /&gt;
| [https://github.com/chernandezba/zesarux]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Emulation Core ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Actual version&lt;br /&gt;
! Last release&lt;br /&gt;
! Emulated systems&lt;br /&gt;
! License&lt;br /&gt;
! Link&lt;br /&gt;
|-&lt;br /&gt;
| libretro-cap32 (for RetroArch)&lt;br /&gt;
| 1.2.2&lt;br /&gt;
| Jul 19, 2015&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [https://github.com/libretro/libretro-cap32]&lt;br /&gt;
|-&lt;br /&gt;
| libretro-crocods (for RetroArch)&lt;br /&gt;
| 0.1&lt;br /&gt;
| Feb 28, 2017&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [https://github.com/libretro/libretro-crocods]&lt;br /&gt;
|-&lt;br /&gt;
| SugarLibRetro (for RetroArch)&lt;br /&gt;
| git&lt;br /&gt;
| -&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [https://github.com/Tom1975/SugarLibRetro] (wraps independent lib https://github.com/Tom1975/CPCCore)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Home Consoles =&lt;br /&gt;
&lt;br /&gt;
== Microsoft XBOX  ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Actual version&lt;br /&gt;
! Last release&lt;br /&gt;
! Emulated systems&lt;br /&gt;
! License&lt;br /&gt;
! Link&lt;br /&gt;
|-&lt;br /&gt;
| [[Arnold|ArnoldX]]&lt;br /&gt;
| v5&lt;br /&gt;
| Apr 20, 2010&lt;br /&gt;
| [[CPC old generation|CPC range]], [[Plus|Plus range]]&lt;br /&gt;
| &lt;br /&gt;
| [http://forums.xbox-scene.com/index.php?showtopic=711667]&lt;br /&gt;
|-&lt;br /&gt;
| [[CoinOPS|CoinOPS]]&lt;br /&gt;
| 5&lt;br /&gt;
| Oct 18, 2012&lt;br /&gt;
| [[CPC old generation|CPC range]] &amp;amp; lots of other computer systems&lt;br /&gt;
| &lt;br /&gt;
| [http://coinopsproject.freeforums.org/viewtopic.php?f=0&amp;amp;t=1213]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Microsoft Xbox 360  ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Actual version&lt;br /&gt;
! Last release&lt;br /&gt;
! Emulated systems&lt;br /&gt;
! License&lt;br /&gt;
! Link&lt;br /&gt;
|-&lt;br /&gt;
| [[XNACPC|XNACPC]]&lt;br /&gt;
| 1.0&lt;br /&gt;
| Nov 11, 2011&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [http://www.gavpugh.com/2011/11/11/xnacpc-xbox-360-amstrad-cpc-emulator-released/]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Nintendo Wii ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Actual version&lt;br /&gt;
! Last release&lt;br /&gt;
! Emulated systems&lt;br /&gt;
! License&lt;br /&gt;
! Link&lt;br /&gt;
|-&lt;br /&gt;
| [[Wiituka|Wiituka]]&lt;br /&gt;
| 0.98.8&lt;br /&gt;
| May 15, 2009&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [http://wiituka.dantoine.org/]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Sega Dreamcast  ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Actual version&lt;br /&gt;
! Last release&lt;br /&gt;
! Emulated systems&lt;br /&gt;
! License&lt;br /&gt;
! Link&lt;br /&gt;
|-&lt;br /&gt;
| [[CPCast|CPCast]]&lt;br /&gt;
| &lt;br /&gt;
| May 6, 2006&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Freeware&lt;br /&gt;
| [http://www.dcemu.co.uk/vbulletin/showthread.php?t=24100]&lt;br /&gt;
|-&lt;br /&gt;
| [[DreamCPC|DreamCPC]]&lt;br /&gt;
| Alpha 3&lt;br /&gt;
| Oct 16, 2005&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Freeware&lt;br /&gt;
| [http://jm1200.free.fr/index.php?r=2]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Sony PS2 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Actual version&lt;br /&gt;
! Last release&lt;br /&gt;
! Emulated systems&lt;br /&gt;
! License&lt;br /&gt;
! Link&lt;br /&gt;
|-&lt;br /&gt;
| [[PCPC|PCPC]]&lt;br /&gt;
| &lt;br /&gt;
| Dec 22, 2004&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [http://ps2emu.dcemu.co.uk/pcpc.shtml]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Sony PS3 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Actual version&lt;br /&gt;
! Last release&lt;br /&gt;
! Emulated systems&lt;br /&gt;
! License&lt;br /&gt;
! Link&lt;br /&gt;
|-&lt;br /&gt;
| [[Caprice32|Caprice32]]&lt;br /&gt;
| 4.1.0 DBG&lt;br /&gt;
| Apr 9, 2012&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [http://psx-scene.com/forums/content/caprice32-4-1-0-dbg-emulator-ps3-2119/]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Handheld Consoles  =&lt;br /&gt;
&lt;br /&gt;
== Dingoo A320 / A330 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Actual version&lt;br /&gt;
! Last release&lt;br /&gt;
! Emulated systems&lt;br /&gt;
! License&lt;br /&gt;
! Link&lt;br /&gt;
|-&lt;br /&gt;
| [[Pituka|Pituka (Dingux)]]&lt;br /&gt;
| 0.8pre&lt;br /&gt;
| Aug 19, 2010&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [http://david.dantoine.org/proyecto/4/]&lt;br /&gt;
|-&lt;br /&gt;
| [[Caprice|Dingux-CAP32]]&lt;br /&gt;
| 1.1.2&lt;br /&gt;
| Oct 17, 2009&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [http://zx81.zx81.free.fr/serendipity/index.php?/categories/105-Amstrad/]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== GamePark GP32 / GP2X / Wiz / Caanoo ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Actual version&lt;br /&gt;
! Last release&lt;br /&gt;
! Emulated systems&lt;br /&gt;
! License&lt;br /&gt;
! Link&lt;br /&gt;
|-&lt;br /&gt;
| [[Pituka|Pituka (GP32)]]&lt;br /&gt;
| 1d&lt;br /&gt;
| May 15, 2010&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [http://david.dantoine.org/proyecto/4/]&lt;br /&gt;
|-&lt;br /&gt;
| [[Caprice|CapriceGP2x]]&lt;br /&gt;
| 0.5&lt;br /&gt;
| Feb 22, 2006&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [http://wiki.gp2x.org/wiki/CapriceGP2x]&lt;br /&gt;
|-&lt;br /&gt;
| [[Caprice|GP2X-CAP32]]&lt;br /&gt;
| 1.5.1&lt;br /&gt;
| Aug 29, 2009&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [http://zx81.zx81.free.fr/serendipity/index.php?/categories/42-Amstrad/]&lt;br /&gt;
|-&lt;br /&gt;
| [[Caprice|Wiz-CAP32]]&lt;br /&gt;
| 1.1.0&lt;br /&gt;
| Aug 29, 2009&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [http://zx81.zx81.free.fr/serendipity/index.php?/categories/89-Amstrad/]&lt;br /&gt;
|-&lt;br /&gt;
| [[Caprice|Caanoo-CAP32]]&lt;br /&gt;
| 1.1.3&lt;br /&gt;
| Apr 24, 2011&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [http://zx81.zx81.free.fr/serendipity/index.php?/categories/165-Amstrad/]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== GCW Zero ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Actual version&lt;br /&gt;
! Last release&lt;br /&gt;
! Emulated systems&lt;br /&gt;
! License&lt;br /&gt;
! Link&lt;br /&gt;
|-&lt;br /&gt;
| [[Caprice|Dingux-CAP32]]&lt;br /&gt;
| 1.1.2&lt;br /&gt;
| May 25, 2014&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [http://boards.dingoonity.org/gcw-releases/caprice32-%28amstrad-cpc%29/]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== JXD S5110 / S601 &amp;amp; Yinlips G18 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Actual version&lt;br /&gt;
! Last release&lt;br /&gt;
! Emulated systems&lt;br /&gt;
! License&lt;br /&gt;
! Link&lt;br /&gt;
|-&lt;br /&gt;
| [[Caprice|JXD-CAP32]]&lt;br /&gt;
| 1.1.1&lt;br /&gt;
| Oct 27, 2012&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [http://zx81.zx81.free.fr/serendipity/index.php?/categories/206-Amstrad/]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Nintendo DS  ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Actual version&lt;br /&gt;
! Last release&lt;br /&gt;
! Emulated systems&lt;br /&gt;
! License&lt;br /&gt;
! Link&lt;br /&gt;
|-&lt;br /&gt;
| [[AmeDS|AmeDS]] &lt;br /&gt;
| 4.0&lt;br /&gt;
| Apr 25, 2010&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Freeware&lt;br /&gt;
| [http://www.portabledev.com/pages/ds/jeuxdev.-perso/ameds.php]&lt;br /&gt;
|-&lt;br /&gt;
| [[CrocoDS|CrocoDS]]&lt;br /&gt;
| 2.0&lt;br /&gt;
| Nov 9, 2007&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Freeware&lt;br /&gt;
| [http://www.kyuran.be/blog/2007/11/09/crocods-20-2/]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Odroid GO  ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Actual version&lt;br /&gt;
! Last release&lt;br /&gt;
! Emulated systems&lt;br /&gt;
! License&lt;br /&gt;
! Link&lt;br /&gt;
|-&lt;br /&gt;
| [[CapriceESP32|CapriceESP32]] &lt;br /&gt;
| &lt;br /&gt;
| Dec 3, 2020&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [https://github.com/grantrismo/CapriceESP32]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Pandora ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Actual version&lt;br /&gt;
! Last release&lt;br /&gt;
! Emulated systems&lt;br /&gt;
! License&lt;br /&gt;
! Link&lt;br /&gt;
|-&lt;br /&gt;
| [[Caprice|Pandora-CAP32]]&lt;br /&gt;
| 1.1.0&lt;br /&gt;
| Jun 27, 2010&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [http://zx81.zx81.free.fr/serendipity/index.php?/categories/131-Amstrad/]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Sony PSP  ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Actual version&lt;br /&gt;
! Last release&lt;br /&gt;
! Emulated systems&lt;br /&gt;
! License&lt;br /&gt;
! Link&lt;br /&gt;
|-&lt;br /&gt;
| [[Caprice32 PSP]]&lt;br /&gt;
| 4.2.0.2&lt;br /&gt;
| Nov 28, 2007&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [http://psp.akop.org/caprice32]&lt;br /&gt;
|-&lt;br /&gt;
| [[CPCPSP|CPCPSP]]&lt;br /&gt;
| 0.1&lt;br /&gt;
| Dec 24, 2005&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Freeware&lt;br /&gt;
| [http://dl.qj.net/psp/emulators/cpcpsp-v01.html]&lt;br /&gt;
|-&lt;br /&gt;
| [[PSPCAP32|PSPCAP32]]&lt;br /&gt;
| 1.5.1&lt;br /&gt;
| Aug 21, 2009&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [http://zx81.zx81.free.fr/serendipity/index.php?/categories/3-Amstrad/]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Smartphones / PDA / SoC =&lt;br /&gt;
&lt;br /&gt;
== Android  ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Actual version&lt;br /&gt;
! Last release&lt;br /&gt;
! Emulated systems&lt;br /&gt;
! License&lt;br /&gt;
! Link&lt;br /&gt;
|-&lt;br /&gt;
| [[andcpc]]&lt;br /&gt;
| 1.5.1&lt;br /&gt;
| Apr 4, 2011&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [http://code.google.com/p/andcpc/]&lt;br /&gt;
|-&lt;br /&gt;
| [[CPCDroid]]&lt;br /&gt;
| 1.5.1&lt;br /&gt;
| Mar 2, 2011&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [http://fmsdevel.wisecoding.es/blog/cpcdroid---2011-03-02]&lt;br /&gt;
|-&lt;br /&gt;
| [[CPCemu|CPCemu]] &lt;br /&gt;
| 2.0&lt;br /&gt;
| Jan 7, 2021&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Freeware&lt;br /&gt;
| [http://www.cpc-emu.org/]&lt;br /&gt;
|-&lt;br /&gt;
| [[Droid-CPC]]&lt;br /&gt;
| 1.1.01&lt;br /&gt;
| Dec 15, 2016&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Commercial&lt;br /&gt;
| [http://play.google.com/store/apps/details?id=com.kokak.droidcpc]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== BlackBerry  ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Actual version&lt;br /&gt;
! Last release&lt;br /&gt;
! Emulated systems&lt;br /&gt;
! License&lt;br /&gt;
! Link&lt;br /&gt;
|-&lt;br /&gt;
| [[BB-CPC|BB-CPC]]&lt;br /&gt;
| 1.0.1.3&lt;br /&gt;
| Jul 15, 2013&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Commercial&lt;br /&gt;
| [http://appworld.blackberry.com/webstore/content/30963891/]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== iOS  ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Actual version&lt;br /&gt;
! Last release&lt;br /&gt;
! Emulated systems&lt;br /&gt;
! License&lt;br /&gt;
! Link&lt;br /&gt;
|-&lt;br /&gt;
| [[CrocoDS]]&lt;br /&gt;
| 2.1&lt;br /&gt;
| Jun 21, 2013&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [http://github.com/redbug26/crocods]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Maemo  ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Actual version&lt;br /&gt;
! Last release&lt;br /&gt;
! Emulated systems&lt;br /&gt;
! License&lt;br /&gt;
! Link&lt;br /&gt;
|-&lt;br /&gt;
| [[CPCm]]&lt;br /&gt;
| 1.20-1&lt;br /&gt;
| Apr 27, 2010&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [http://maemo.org/downloads/product/Maemo5/cpcm/]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Palm OS  ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Actual version&lt;br /&gt;
! Last release&lt;br /&gt;
! Emulated systems&lt;br /&gt;
! License&lt;br /&gt;
! Link&lt;br /&gt;
|-&lt;br /&gt;
| [[CaPriCe for Palm OS|CaPriCe for Palm OS]]&lt;br /&gt;
| 2.8&lt;br /&gt;
| Jun 28, 2011&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [http://frederic.coste.pagesperso-orange.fr/cpc/cpc_en.htm]&lt;br /&gt;
|-&lt;br /&gt;
| [[CoPaCabana|CoPaCabana]]&lt;br /&gt;
| 0.75&lt;br /&gt;
| Dec 4, 2007&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Freeware&lt;br /&gt;
| [http://copacabana.emuunlim.com/]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Pocket PC  ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Actual version&lt;br /&gt;
! Last release&lt;br /&gt;
! Emulated systems&lt;br /&gt;
! License&lt;br /&gt;
! Link&lt;br /&gt;
|-&lt;br /&gt;
| [[CaPriCe|PocketCaprice]]&lt;br /&gt;
| 0.9&lt;br /&gt;
| Aug 19, 2007&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Freeware&lt;br /&gt;
| [http://www.clubic.com/telecharger-fiche44888-pocketcaprice.html]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Raspberry Pi ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Actual version&lt;br /&gt;
! Last release&lt;br /&gt;
! Emulated systems&lt;br /&gt;
! License&lt;br /&gt;
! Link&lt;br /&gt;
|-&lt;br /&gt;
| [[CPC4Rpi|#CPC4Rpi]]&lt;br /&gt;
| 1.1&lt;br /&gt;
| Dec 19, 2013&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [https://www.raspberrypi.org/forums/viewtopic.php?f=78&amp;amp;t=63820]&lt;br /&gt;
|-&lt;br /&gt;
| [[CapriceRPI|CapriceRPI]]&lt;br /&gt;
| 1.3&lt;br /&gt;
| Feb 28, 2016&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [https://github.com/KaosOverride/CapriceRPI]&lt;br /&gt;
|-&lt;br /&gt;
| [[ZEsarUX|ZEsarUX]]&lt;br /&gt;
| 9.0&lt;br /&gt;
| Aug 19, 2020&lt;br /&gt;
| [[CPC old generation|CPC range]], [[ZX Spectrum]], [[ZX80/81]], [[Jupiter ACE]], [[Sam Coupe]], [[Sinclair QL]], [[MSX 1]], [[ColecoVision]], [[SG-1000]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [https://github.com/chernandezba/zesarux]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Symbian  ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Actual version&lt;br /&gt;
! Last release&lt;br /&gt;
! Emulated systems&lt;br /&gt;
! License&lt;br /&gt;
! Link&lt;br /&gt;
|-&lt;br /&gt;
| [[S60-CPC|S60-CPC]]&lt;br /&gt;
| 0.74&lt;br /&gt;
| Feb 21, 2006&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [http://kokak.free.fr/s60cpc.htm]&lt;br /&gt;
|}&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 FPGA board&lt;br /&gt;
*[[C-ONE|CPC-ONE]] TurboCPC core running on the C-One FPGA board&lt;br /&gt;
*[http://ralferoo.blogspot.fr/ CPC FPGA] CPC emulation running on a custom made FPGA board&lt;br /&gt;
*[[FPGAmstrad|FPGAmstrad]] CPC emulation running on a NEXYS2 FPGA board&lt;br /&gt;
*[http://github.com/mist-devel/mist-board/wiki MIST board] FPGA board implementing Amstrad CPC and various other 8-bit and 16-bit computers&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| ]]&lt;/div&gt;</summary>
		<author><name>FindYWay</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=Emulators&amp;diff=108065</id>
		<title>Emulators</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=Emulators&amp;diff=108065"/>
				<updated>2021-05-25T21:00:00Z</updated>
		
		<summary type="html">&lt;p&gt;FindYWay: Updated SugarBox entry. Copied to Linux table.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Operating Systems  =&lt;br /&gt;
&lt;br /&gt;
== Acorn RISC OS  ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Actual version&lt;br /&gt;
! Last release&lt;br /&gt;
! Emulated systems&lt;br /&gt;
! License&lt;br /&gt;
! Link&lt;br /&gt;
|-&lt;br /&gt;
| [[!CPC|!CPC]]&lt;br /&gt;
| &lt;br /&gt;
| Jul 28, 1996&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Freeware&lt;br /&gt;
| [ftp://ftp.lip6.fr/pub/amstrad/emulator/CPC0728.ZIP]&lt;br /&gt;
|-&lt;br /&gt;
| [[!CPCemu|!CPCemu]]&lt;br /&gt;
| 1.21&lt;br /&gt;
| Mar 22, 2016&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Freeware&lt;br /&gt;
| [http://www.huggers-world.de/files/cpcemu121.zip]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== AmigaOS  ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Actual version&lt;br /&gt;
! Last release&lt;br /&gt;
! Emulated systems&lt;br /&gt;
! License&lt;br /&gt;
! Link&lt;br /&gt;
|-&lt;br /&gt;
| [[A-CPC|A-CPC]]&lt;br /&gt;
| 2.0&lt;br /&gt;
| Apr, 2002&lt;br /&gt;
| [[CPC old generation|CPC range]], [[Plus|Plus range]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [http://cpctech.cpc-live.com/download/a-cpc.lha]&lt;br /&gt;
|-&lt;br /&gt;
| [[Ami-CPC|Ami-CPC]]&lt;br /&gt;
| 0.46&lt;br /&gt;
| Jan 21, 1998&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [http://deplanque.chez.com/ami-cpc.lha]&lt;br /&gt;
|-&lt;br /&gt;
| [[Arnold|Arnold]]&lt;br /&gt;
| 1.15&lt;br /&gt;
| Dec 17, 2012&lt;br /&gt;
| [[CPC old generation|CPC range]], [[Plus|Plus range]], [[KC Compact]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [http://hirudov.com/amiga/Arnold.php]&lt;br /&gt;
|-&lt;br /&gt;
| [[CPE|CPE]]&lt;br /&gt;
| &lt;br /&gt;
| Feb 24, 1995&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [ftp://ftp.lip6.fr/pub/amstrad/emulator/ACPE_NEW.LHA]&lt;br /&gt;
|-&lt;br /&gt;
| [[Emu-CPC|Emu-CPC]]&lt;br /&gt;
| 0.7&lt;br /&gt;
| Sep 15, 1996&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Freeware&lt;br /&gt;
| [ftp://ftp.lip6.fr/pub/amstrad/emulator/EMUCPC07.LZX]&lt;br /&gt;
|-&lt;br /&gt;
| [[MESS|SDLMESS]]&lt;br /&gt;
| 0.146u4&lt;br /&gt;
| Aug 19, 2012&lt;br /&gt;
| [[CPC old generation|CPC range]], [[Plus|Plus range]], [[KC Compact]], [[Aleste 520EX]] &amp;amp; lots of other computer systems&lt;br /&gt;
| Open source&lt;br /&gt;
| [http://se.os4depot.net/index.php?function=showfile&amp;amp;file=emulation/computer/sdl_mess.lha]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== AMSDOS ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Actual version&lt;br /&gt;
! Last release&lt;br /&gt;
! Emulated systems&lt;br /&gt;
! License&lt;br /&gt;
! Link&lt;br /&gt;
|-&lt;br /&gt;
| [[Pac-Man|Pac-Man]]&lt;br /&gt;
| 1.1&lt;br /&gt;
| Jun 5, 2014&lt;br /&gt;
| [[Pac-Man arcade|Pac-Man arcade]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [http://www.cpcwiki.eu/forum/games/speed-up-patch-for-pac-man-emulator-for-cpc-by-syx-toto/msg81222/#msg81222]&lt;br /&gt;
|-&lt;br /&gt;
| [[Space Invaders|Space Invaders]]&lt;br /&gt;
| 1.0&lt;br /&gt;
| Jun 11, 2016&lt;br /&gt;
| [[Space Invaders arcade|Space Invaders arcade]]&lt;br /&gt;
| Freeware&lt;br /&gt;
| [http://www.cpcwiki.eu/forum/games/space-invaders-arcade-emulator-for-amstrad-cpc/]&lt;br /&gt;
|-&lt;br /&gt;
| [[ZXM|ZXM]]&lt;br /&gt;
| &lt;br /&gt;
| 1993&lt;br /&gt;
| [[ZX Spectrum|ZX Spectrum]]&lt;br /&gt;
| Freeware&lt;br /&gt;
| [ftp://ftp.nvg.ntnu.no/pub/cpc/misc/zxm.zip]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== DOS  ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Actual version&lt;br /&gt;
! Last release&lt;br /&gt;
! Emulated systems&lt;br /&gt;
! License&lt;br /&gt;
! Link&lt;br /&gt;
|-&lt;br /&gt;
| [[Arnimedes|Arnimedes]] &lt;br /&gt;
| 0.8a&lt;br /&gt;
| Apr 15, 2000&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Freeware&lt;br /&gt;
| [http://www.arnimedes.de/]&lt;br /&gt;
|-&lt;br /&gt;
| [[CPCE|CPCE]] &lt;br /&gt;
| 1.94&lt;br /&gt;
| Jun 2, 2011&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Freeware&lt;br /&gt;
| [http://cngsoft.no-ip.org/cpce/]&lt;br /&gt;
|-&lt;br /&gt;
| [[CPCemu|CPCemu]] &lt;br /&gt;
| 1.5&lt;br /&gt;
| Jul 7, 1998&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Freeware&lt;br /&gt;
| [http://www.cpc-emu.org/]&lt;br /&gt;
|-&lt;br /&gt;
| [[NO$CPC|NO$CPC]]&lt;br /&gt;
| 1.8&lt;br /&gt;
| Nov 2, 2000&lt;br /&gt;
| [[CPC old generation|CPC range]], [[Plus|Plus range]]&lt;br /&gt;
| Freeware&lt;br /&gt;
| [http://problemkaputt.de/cpc.htm]&lt;br /&gt;
|-&lt;br /&gt;
| [[CPCEMU (RWCPC)|RWCPC]]&lt;br /&gt;
| &lt;br /&gt;
| Mar 23, 1995&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Freeware&lt;br /&gt;
| [ftp://ftp.lip6.fr/pub/amstrad/emulator/RWCPC.ZIP]&lt;br /&gt;
|-&lt;br /&gt;
| [[SIMCPC|SIMCPC]]&lt;br /&gt;
| &lt;br /&gt;
| 1990&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Shareware&lt;br /&gt;
| [ftp://ftp.lip6.fr/pub/amstrad/emulator/SIMCPC.ZIP]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== EXOS ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Actual version&lt;br /&gt;
! Last release&lt;br /&gt;
! Emulated systems&lt;br /&gt;
! License&lt;br /&gt;
! Link&lt;br /&gt;
|-&lt;br /&gt;
| [[Software CPC Emulator|Software CPC Emulator]] &lt;br /&gt;
| 1.3&lt;br /&gt;
| Jan 11, 2013&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [http://www.ep128.hu/Ep_Util/Prg/Amstrad_CPC_Emulator_13.rar]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Haiku  ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Actual version&lt;br /&gt;
! Last release&lt;br /&gt;
! Emulated systems&lt;br /&gt;
! License&lt;br /&gt;
! Link&lt;br /&gt;
|-&lt;br /&gt;
| [[ACE_(Emulator)|ACE]]&lt;br /&gt;
| 1.14.0&lt;br /&gt;
| Jun 20, 2020&lt;br /&gt;
| [[CPC old generation|CPC range]], [[Plus|Plus range]]&lt;br /&gt;
| Freeware&lt;br /&gt;
| [http://www.cpcwiki.eu/forum/emulators/ace-for-haiku/] [http://ace.cpcscene.net/]&lt;br /&gt;
|-&lt;br /&gt;
| [[AdvanceMAME|AdvanceMAME]]&lt;br /&gt;
| 3.9-1&lt;br /&gt;
| Feb 3, 2020&lt;br /&gt;
| [[CPC old generation|CPC range]], [[Plus|Plus range]], [[KC Compact]], [[Aleste 520EX]] &amp;amp; lots of other computer systems&lt;br /&gt;
| Open source&lt;br /&gt;
| [https://depot.haiku-os.org/#!/pkg/advancemame_x86]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Java / JVM  ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Actual version&lt;br /&gt;
! Last release&lt;br /&gt;
! Emulated systems&lt;br /&gt;
! License&lt;br /&gt;
! Link&lt;br /&gt;
|-&lt;br /&gt;
| [[Arnold Jnr|Arnold Jnr]]&lt;br /&gt;
| &lt;br /&gt;
| Aug 27, 2001&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [http://www.arnoldemu.freeserve.co.uk/]&lt;br /&gt;
|-&lt;br /&gt;
| [[CPCInAJar|CPCInAJar]]&lt;br /&gt;
|&lt;br /&gt;
| Mar 16, 2011&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [http://sourceforge.net/projects/cpcinajar/]&lt;br /&gt;
|-&lt;br /&gt;
| [[JavaCPC|JavaCPC Desktop]]&lt;br /&gt;
| 2.9.7&lt;br /&gt;
| Sep 21, 2018&lt;br /&gt;
| [[CPC old generation|CPC range]], [[KC Compact]]&lt;br /&gt;
| Donationware&lt;br /&gt;
| [https://sourceforge.net/projects/javacpc/]&lt;br /&gt;
|-&lt;br /&gt;
| [[JavaCPC|JavaCPC Applet]]&lt;br /&gt;
| &lt;br /&gt;
| Jul 10, 2012&lt;br /&gt;
| [[CPC old generation|CPC range]], [[Plus|Plus range]]&lt;br /&gt;
| Donationware&lt;br /&gt;
| [http://java.cpc-live.com/] (dead link)&lt;br /&gt;
|-&lt;br /&gt;
| [[JavaGX4000|JavaGX4000]]&lt;br /&gt;
| &lt;br /&gt;
| Sep 7, 2018&lt;br /&gt;
| [[CPC old generation|CPC range]], [[Plus|Plus range]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [http://sourceforge.net/projects/javagx4000/]&lt;br /&gt;
|-&lt;br /&gt;
| [[JEMU|JEMU]]&lt;br /&gt;
| &lt;br /&gt;
| Feb 19, 2007&lt;br /&gt;
| [[CPC old generation|CPC range]], [[BBC Micro]], [[VZ-300]], [[ZX Spectrum]], [[ZX80/81]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [http://jemu.winape.net/]&lt;br /&gt;
|-&lt;br /&gt;
| [[JKCEMU|JKCEMU]]&lt;br /&gt;
| 0.9.7&lt;br /&gt;
| Mar 30, 2017&lt;br /&gt;
| [[KC Compact]] &amp;amp; other computers from East Germany&lt;br /&gt;
| Open source&lt;br /&gt;
| [http://www.jens-mueller.org/jkcemu/kccompact.html]&lt;br /&gt;
|-&lt;br /&gt;
| [[WebCPC|WebCPC]]&lt;br /&gt;
| r15&lt;br /&gt;
| Dec 31, 2010&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [http://sourceforge.net/projects/webcpc/]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== JavaScript / HTML5  ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name &lt;br /&gt;
! Actual version &lt;br /&gt;
! Last release &lt;br /&gt;
! Emulated systems &lt;br /&gt;
! License &lt;br /&gt;
! Link&lt;br /&gt;
|-&lt;br /&gt;
| [[CPCbox|CPCbox]] &lt;br /&gt;
| beta &lt;br /&gt;
| Dec 28, 2013&lt;br /&gt;
| [[CPC old generation|CPC range]] &lt;br /&gt;
| Freeware &lt;br /&gt;
| [http://www.retrovm.com/] [https://bzhgames.xyz/index.php BZH Games]&lt;br /&gt;
|-&lt;br /&gt;
| [[CrocoDS|CrocoDS]] &lt;br /&gt;
| &lt;br /&gt;
| May 13, 2020&lt;br /&gt;
| [[CPC old generation|CPC range]] &lt;br /&gt;
| Freeware &lt;br /&gt;
| [http://crocods.org/web/]&lt;br /&gt;
|-&lt;br /&gt;
| [[JSMESS]] &lt;br /&gt;
| 0.153&lt;br /&gt;
| Oct 29, 2014&lt;br /&gt;
| [[CPC old generation|CPC range]] &amp;amp; lots of other computer systems&lt;br /&gt;
| Open source&lt;br /&gt;
| [http://jsmess.textfiles.com/]&lt;br /&gt;
|-&lt;br /&gt;
| [[Roland javascript emulator|Roland]] &lt;br /&gt;
| &lt;br /&gt;
| Sep 24, 2011 &lt;br /&gt;
| [[CPC old generation|CPC range]] &lt;br /&gt;
| Open source &lt;br /&gt;
| [http://roland.retrolandia.net/]&lt;br /&gt;
|-&lt;br /&gt;
| [[Tiny Emus]]&lt;br /&gt;
| &lt;br /&gt;
| Dec 31, 2018&lt;br /&gt;
| [[CPC old generation|CPC range]], [[ZX Spectrum]], [[VIC-20]], [[Commodore 64]], [[Acorn Atom]], [[KC Compact]], [[KC 85]], [[KC 87]], [[Z9001]], [[Z1013]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [https://floooh.github.io/tiny8bit/] [http://cpc.devilmarkus.de/ JavaCPC-Games]&lt;br /&gt;
|-&lt;br /&gt;
| [[Griffin CPC emulator|Xiragon]]&lt;br /&gt;
| &lt;br /&gt;
| Nov 28, 2012&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [http://xiragon.com/]&lt;br /&gt;
|-&lt;br /&gt;
| [[YAKC|Yet another KC emulator]]&lt;br /&gt;
| &lt;br /&gt;
| Apr 17, 2017&lt;br /&gt;
| [[CPC old generation|CPC range]], [[ZX Spectrum]], [[Commodore 64]], [[Acorn Atom]], [[KC Compact]], [[KC 85]], [[KC 87]], [[Z9001]], [[Z1013]], [[HC900]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [http://floooh.github.io/virtualkc/]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== macOS ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Actual version&lt;br /&gt;
! Last release&lt;br /&gt;
! Emulated systems&lt;br /&gt;
! License&lt;br /&gt;
! Link&lt;br /&gt;
|-&lt;br /&gt;
| [[Arnold_(Emulator)|Arnold]] &lt;br /&gt;
| 1.7.9&lt;br /&gt;
| Mar 10, 2018&lt;br /&gt;
| [[CPC old generation|CPC range]], [[Plus|Plus range]], [[KC Compact]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [https://www.bannister.org/software/arnold.htm]&lt;br /&gt;
|-&lt;br /&gt;
| [[Clock Signal|Clock Signal]] &lt;br /&gt;
| &lt;br /&gt;
| Aug 2, 2020&lt;br /&gt;
| [[CPC old generation|CPC range]], [[Acorn Electron]], [[Apple II]], [[Oric 1/Atmos]], [[VIC-20]], [[ZX80/81]], [[Atari 2600]], [[Atari ST]], [[Macintosh]], [[MSX|MSX 1]], [[ColecoVision]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [https://github.com/TomHarte/CLK/releases]&lt;br /&gt;
|-&lt;br /&gt;
| [[CPCplusplus|CPC++]]&lt;br /&gt;
| 2.0.0&lt;br /&gt;
| Jan 14, 2003&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Shareware&lt;br /&gt;
| [http://bricerive.free.fr/cpc/cpcpp.html]&lt;br /&gt;
|-&lt;br /&gt;
| [[CPCSharp|CPCSharp]] &lt;br /&gt;
| 1.0.0-beta1&lt;br /&gt;
| Apr 7, 2021&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [https://github.com/dolbz/CPCSharp/releases/]&lt;br /&gt;
|-&lt;br /&gt;
| [[DSP|DSP]]&lt;br /&gt;
| 0.18&lt;br /&gt;
| Dec 31, 2017&lt;br /&gt;
| [[CPC old generation|CPC range]], [[ZX Spectrum]], [[Game Boy]], [[Nintendo NES]], [[Sega Master System]], [[ColecoVision]], [[Arcade]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [https://github.com/leniad/dsp-emulator/]&lt;br /&gt;
|-&lt;br /&gt;
| [[MacCPC|MacCPC]]&lt;br /&gt;
| 0.9.2&lt;br /&gt;
| Jan 22, 2010&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Freeware&lt;br /&gt;
| [http://www.wincpc.ch/index.php?topic=projects-maccpc]&lt;br /&gt;
|-&lt;br /&gt;
| [[Retro Virtual Machine|Retro Virtual Machine]]&lt;br /&gt;
| 2.0 BETA-1 R7&lt;br /&gt;
| Jul 10, 2019&lt;br /&gt;
| [[CPC old generation|CPC range]], [[ZX Spectrum]]&lt;br /&gt;
| Donationware&lt;br /&gt;
| [https://www.retrovirtualmachine.org]&lt;br /&gt;
|-&lt;br /&gt;
| [[MESS|SDLMAME]]&lt;br /&gt;
| 0.201&lt;br /&gt;
| Aug 29, 2018&lt;br /&gt;
| [[CPC old generation|CPC range]], [[Plus|Plus range]], [[KC Compact]], [[Aleste 520EX]] &amp;amp; lots of other computer systems&lt;br /&gt;
| Open source&lt;br /&gt;
| [http://sdlmame.lngn.net/]&lt;br /&gt;
|-&lt;br /&gt;
| [[ZEsarUX|ZEsarUX]]&lt;br /&gt;
| 9.0&lt;br /&gt;
| Aug 19, 2020&lt;br /&gt;
| [[CPC old generation|CPC range]], [[ZX Spectrum]], [[ZX80/81]], [[Jupiter ACE]], [[Sam Coupe]], [[Sinclair QL]], [[MSX 1]], [[ColecoVision]], [[SG-1000]]&lt;br /&gt;
| Donationware &amp;amp; Open source&lt;br /&gt;
| [https://github.com/chernandezba/zesarux]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MorphOS  ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Actual version&lt;br /&gt;
! Last release&lt;br /&gt;
! Emulated systems&lt;br /&gt;
! License&lt;br /&gt;
! Link&lt;br /&gt;
|-&lt;br /&gt;
| [[ACE_(Emulator)|ACE]]&lt;br /&gt;
| 1.23&lt;br /&gt;
| April 25, 2021&lt;br /&gt;
| [[CPC old generation|CPC range]], [[Plus|Plus range]]&lt;br /&gt;
| Freeware&lt;br /&gt;
| [http://ace.cpcscene.net/]&lt;br /&gt;
|-&lt;br /&gt;
| [[MESS|MESS]]&lt;br /&gt;
| 0.113&lt;br /&gt;
| Nov 1, 2007&lt;br /&gt;
| [[CPC old generation|CPC range]], [[Plus|Plus range]], [[KC Compact]], [[Aleste 520EX]] &amp;amp; lots of other computer systems&lt;br /&gt;
| Open source&lt;br /&gt;
| [http://fabportnawak.free.fr/mame/]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MSX2 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Actual version&lt;br /&gt;
! Last release&lt;br /&gt;
! Emulated systems&lt;br /&gt;
! License&lt;br /&gt;
! Link&lt;br /&gt;
|-&lt;br /&gt;
| [[EMU6CPC|EMU6CPC]]&lt;br /&gt;
| &lt;br /&gt;
| Dec 17, 2018&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Freeware&lt;br /&gt;
| [http://romu6.blogspot.com/2018/12/emu6cpc-emulador-de-amstrad-cpc-6128.html]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Unix / Linux  ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Actual version&lt;br /&gt;
! Last release&lt;br /&gt;
! Emulated systems&lt;br /&gt;
! License&lt;br /&gt;
! Link&lt;br /&gt;
|-&lt;br /&gt;
| [[Arnold_(Emulator)|Arnold]] &lt;br /&gt;
| &lt;br /&gt;
| Jan 20, 2016&lt;br /&gt;
| [[CPC old generation|CPC range]], [[Plus|Plus range]], [[KC Compact]], [[Aleste 520EX]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [http://www.cpcwiki.eu/forum/emulators/arnold-wip/msg118124/]&lt;br /&gt;
|-&lt;br /&gt;
| [[CaPriCe|CaPriCe32]] &lt;br /&gt;
| 4.4.0&lt;br /&gt;
| Mar 26, 2017&lt;br /&gt;
| [[CPC old generation|CPC range]], [[Plus|Plus range]]&lt;br /&gt;
| Donationware &amp;amp; Open source&lt;br /&gt;
| [https://github.com/ColinPitrat/caprice32]&lt;br /&gt;
|-&lt;br /&gt;
| [[Caprice Reloaded]]&lt;br /&gt;
| r377&lt;br /&gt;
| Jul 13, 2010&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [http://aur.archlinux.org/packages.php?ID=38856]&lt;br /&gt;
|-&lt;br /&gt;
| [[Clock Signal|Clock Signal]] &lt;br /&gt;
| &lt;br /&gt;
| Aug 2, 2020&lt;br /&gt;
| [[CPC old generation|CPC range]], [[Acorn Electron]], [[Apple II]], [[Oric 1/Atmos]], [[VIC-20]], [[ZX80/81]], [[Atari 2600]], [[Atari ST]], [[Macintosh]], [[MSX|MSX 1]], [[ColecoVision]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [https://github.com/TomHarte/CLK/releases]&lt;br /&gt;
|-&lt;br /&gt;
| [[CPCplusplus|CPC++]]&lt;br /&gt;
| 1.5.0&lt;br /&gt;
| &lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Shareware&lt;br /&gt;
| [http://bricerive.free.fr/cpc/cpcpp.html]&lt;br /&gt;
|-&lt;br /&gt;
| [[cpc4x|cpc4x]] &lt;br /&gt;
| 0.26&lt;br /&gt;
| Dec 11, 2004&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [http://www.ulrich-cordes.de/cpc/english/cpcemu.htm]&lt;br /&gt;
|-&lt;br /&gt;
| [[CPCemu|CPCemu]] &lt;br /&gt;
| 2.0&lt;br /&gt;
| Jan 7, 2021&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Freeware&lt;br /&gt;
| [http://www.cpc-emu.org/]&lt;br /&gt;
|-&lt;br /&gt;
| [[DSP|DSP]]&lt;br /&gt;
| 0.18&lt;br /&gt;
| Dec 31, 2017&lt;br /&gt;
| [[CPC old generation|CPC range]], [[ZX Spectrum]], [[Game Boy]], [[Nintendo NES]], [[Sega Master System]], [[ColecoVision]], [[Arcade]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [https://github.com/leniad/dsp-emulator/]&lt;br /&gt;
|-&lt;br /&gt;
| [[ep128emu|ep128emu]]&lt;br /&gt;
| 2.0.11&lt;br /&gt;
| Jan 20, 2017&lt;br /&gt;
| [[CPC old generation|CPC range]], [[ZX Spectrum]], [[Enterprise]]&lt;br /&gt;
| Donationware &amp;amp; Open source&lt;br /&gt;
| [http://sourceforge.net/projects/ep128emu/]&lt;br /&gt;
|-&lt;br /&gt;
| [[MESS|MAME]]&lt;br /&gt;
| 0.227&lt;br /&gt;
| Dec 30, 2020&lt;br /&gt;
| [[CPC old generation|CPC range]], [[Plus|Plus range]], [[KC Compact]], [[Aleste 520EX]] &amp;amp; lots of other computer systems&lt;br /&gt;
| Open source&lt;br /&gt;
| [http://wiki.mamedev.org/index.php/SDL_Supported_Platforms]&lt;br /&gt;
|-&lt;br /&gt;
| [[Retro Virtual Machine|Retro Virtual Machine]]&lt;br /&gt;
| 2.0 BETA-1 R7&lt;br /&gt;
| Jul 10, 2019&lt;br /&gt;
| [[CPC old generation|CPC range]], [[ZX Spectrum]]&lt;br /&gt;
| Donationware&lt;br /&gt;
| [https://www.retrovirtualmachine.org]&lt;br /&gt;
|-&lt;br /&gt;
| [[Roland Emulator|Roland]] &lt;br /&gt;
| 0.70&lt;br /&gt;
| Apr 20, 2017&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [https://www.rolandemu.de/index.html]&lt;br /&gt;
|-&lt;br /&gt;
| [[SugarBox|SugarBox]]&lt;br /&gt;
| 0.29&lt;br /&gt;
| Jan 22, 2018&lt;br /&gt;
| [[CPC old generation|CPC range]], [[Plus|Plus range]]&lt;br /&gt;
| Open-Source&lt;br /&gt;
| [http://sugarbox.free.fr/] [https://github.com/Tom1975/SugarboxV2]&lt;br /&gt;
|-&lt;br /&gt;
| [[XCPC|Xcpc]]&lt;br /&gt;
| 0.37.0&lt;br /&gt;
| May 2, 2021&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [https://www.xcpc-emulator.net/]&lt;br /&gt;
|-&lt;br /&gt;
| [[YACE|YACE]]&lt;br /&gt;
| Unreleased?&lt;br /&gt;
| Nov 12, 2014&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Unreleased?&lt;br /&gt;
| [http://www.youtube.com/watch?v=uxQkljwc0i4]&lt;br /&gt;
|-&lt;br /&gt;
| [[ZEsarUX|ZEsarUX]]&lt;br /&gt;
| 9.1&lt;br /&gt;
| Nov 26, 2020&lt;br /&gt;
| [[CPC old generation|CPC range]], [[ZX Spectrum]], [[ZX80/81]], [[Jupiter ACE]], [[Sam Coupe]], [[Sinclair QL]], [[MSX 1]], [[ColecoVision]], [[SG-1000]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [https://github.com/chernandezba/zesarux]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Windows  ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Actual version&lt;br /&gt;
! Last release&lt;br /&gt;
! Emulated systems&lt;br /&gt;
! License&lt;br /&gt;
! Link&lt;br /&gt;
|-&lt;br /&gt;
| [[Arnimedes|Arnimedes]] &lt;br /&gt;
| 1.02&lt;br /&gt;
| Jul 7, 2012&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Freeware&lt;br /&gt;
| [http://www.arnimedes.de/]&lt;br /&gt;
|-&lt;br /&gt;
| [[Arnold_(Emulator)|Arnold]] &lt;br /&gt;
| [http://www.cpcwiki.eu/imgs/d/dd/Arnoldwip_src.tar.bz2 WIP]&lt;br /&gt;
| May 13, 2017&lt;br /&gt;
| [[CPC old generation|CPC range]], [[Plus|Plus range]], [[KC Compact]], [[Aleste 520EX]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [http://www.cpcwiki.eu/forum/emulators/arnold-wip/msg144749/#msg144749] [https://www.cpcwiki.eu/forum/emulators/another-version-of-arnold-emulator/ Aeliss fork]&lt;br /&gt;
|-&lt;br /&gt;
| [[CaPriCe|CaPriCe]] &lt;br /&gt;
| 4.2.0&lt;br /&gt;
| May 14, 2005&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [http://sourceforge.net/projects/caprice32/]&lt;br /&gt;
|-&lt;br /&gt;
| [[CaPriCe|CaPriCe 32]] &lt;br /&gt;
| 4.5.0&lt;br /&gt;
| Dec 27, 2018&lt;br /&gt;
| [[CPC old generation|CPC range]], [[Plus|Plus range]]&lt;br /&gt;
| Donationware &amp;amp; Open source&lt;br /&gt;
| [https://github.com/ColinPitrat/caprice32]&lt;br /&gt;
|-&lt;br /&gt;
| [[Caprice Forever]] &lt;br /&gt;
| 20.10&lt;br /&gt;
| Jul 14, 2020&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Freeware&lt;br /&gt;
| [http://www.cpc-power.com/cpcarchives/index.php?page=articles&amp;amp;num=73]&lt;br /&gt;
|-&lt;br /&gt;
| [[Caprice Reloaded]]&lt;br /&gt;
| r533&lt;br /&gt;
| Sep 25, 2011&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [http://code.google.com/p/cpcsdk/]&lt;br /&gt;
|-&lt;br /&gt;
| [[Caprice32-Aleste|Caprice32-Aleste]] &lt;br /&gt;
| 4.1.0&lt;br /&gt;
| Nov 14, 2007&lt;br /&gt;
| [[Aleste 520EX|Aleste 520EX]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [http://aleste520.narod.ru/caprice.html]&lt;br /&gt;
|-&lt;br /&gt;
| [[CoPaCabana|CoPaCabana]]&lt;br /&gt;
| 0.74&lt;br /&gt;
| Apr 12, 2006&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Freeware&lt;br /&gt;
| [http://copacabana.emuunlim.com/]&lt;br /&gt;
|-&lt;br /&gt;
| [[CPC-em|CPC-em]] &lt;br /&gt;
| 0.4&lt;br /&gt;
| Jul 7, 2004&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [http://cpc-em.emuunlim.com/]&lt;br /&gt;
|-&lt;br /&gt;
| [[CPC++|CPC++]] &lt;br /&gt;
| b700&lt;br /&gt;
| Mar 26, 2014&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Freeware&lt;br /&gt;
| [http://cpcrulez.fr/emulateurs_download-WIN-CPC_plus_plus.htm]&lt;br /&gt;
|-&lt;br /&gt;
| [[CPC3D/CPC32]] &lt;br /&gt;
| 0.3&lt;br /&gt;
| Feb 8, 2003&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Freeware&lt;br /&gt;
| [http://www.angelfire.com/retro2/cpc3d/]&lt;br /&gt;
|-&lt;br /&gt;
| [[CPCE|CPCE]] &lt;br /&gt;
| 1.94&lt;br /&gt;
| Jun 2, 2011&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Freeware&lt;br /&gt;
| [http://cngsoft.no-ip.org/cpce/]&lt;br /&gt;
|-&lt;br /&gt;
| [[CPCEC|CPCEC]] &lt;br /&gt;
| 20200622&lt;br /&gt;
| Jun 6, 2020&lt;br /&gt;
| [[CPC old generation|CPC range]], [[Plus|Plus range]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [http://cngsoft.no-ip.org/cpcec.htm]&lt;br /&gt;
|-&lt;br /&gt;
| [[CPCemu|CPCemu]] &lt;br /&gt;
| 2.0&lt;br /&gt;
| Jan 7, 2021&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Freeware&lt;br /&gt;
| [http://www.cpc-emu.org/]&lt;br /&gt;
|-&lt;br /&gt;
| [[CPCEmuPower|CPCEmuPower]] &lt;br /&gt;
| 2005&lt;br /&gt;
| May 31, 2020&lt;br /&gt;
| [[CPC old generation|CPC range]], [[Plus|Plus range]]&lt;br /&gt;
| Freeware&lt;br /&gt;
| [https://www.cpcwiki.eu/forum/emulators/cpcepower-v2005/]&lt;br /&gt;
|-&lt;br /&gt;
| [[CPCSharp|CPCSharp]] &lt;br /&gt;
| 1.0.0-beta1&lt;br /&gt;
| Apr 7, 2021&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [https://github.com/dolbz/CPCSharp/releases/]&lt;br /&gt;
|-&lt;br /&gt;
| [[CPCwin|CPCwin]] &lt;br /&gt;
| 1.0&lt;br /&gt;
| Dec 4, 1997&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Freeware&lt;br /&gt;
| [ftp://ftp.lip6.fr/pub/amstrad/emulator/CPCWIN10.ZIP]&lt;br /&gt;
|-&lt;br /&gt;
| [[CPE|CPE]]&lt;br /&gt;
| 5.2&lt;br /&gt;
| Apr 21, 1997&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Freeware&lt;br /&gt;
| [ftp://ftp.lip6.fr/pub/amstrad/emulator/CPE52.ZIP]&lt;br /&gt;
|-&lt;br /&gt;
| [[CPvC|CPvC]]&lt;br /&gt;
| &lt;br /&gt;
| Oct 7, 2020&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [https://github.com/alybaek2/cpvc]&lt;br /&gt;
|-&lt;br /&gt;
| [[DSP|DSP]]&lt;br /&gt;
| 0.18&lt;br /&gt;
| Dec 31, 2017&lt;br /&gt;
| [[CPC old generation|CPC range]], [[ZX Spectrum]], [[Game Boy]], [[Nintendo NES]], [[Sega Master System]], [[ColecoVision]], [[Arcade]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [https://github.com/leniad/dsp-emulator/]&lt;br /&gt;
|-&lt;br /&gt;
| [[ep128emu|ep128emu]]&lt;br /&gt;
| 2.0.11&lt;br /&gt;
| Jan 20, 2017&lt;br /&gt;
| [[CPC old generation|CPC range]], [[ZX Spectrum]], [[Enterprise]]&lt;br /&gt;
| Donationware &amp;amp; Open source&lt;br /&gt;
| [http://sourceforge.net/projects/ep128emu/]&lt;br /&gt;
|-&lt;br /&gt;
| [[MESS|MAME]]&lt;br /&gt;
| 0.201&lt;br /&gt;
| Aug 30, 2018&lt;br /&gt;
| [[CPC old generation|CPC range]], [[Plus|Plus range]], [[KC Compact]], [[Aleste 520EX]] &amp;amp; lots of other computer systems&lt;br /&gt;
| Open source&lt;br /&gt;
| [http://mamedev.org/release.html]&lt;br /&gt;
|-&lt;br /&gt;
| [[MTMW|MTMW]]&lt;br /&gt;
| 1.30B&lt;br /&gt;
| Jan 11, 2000&lt;br /&gt;
| [[CPC old generation|CPC range]], [[Plus|Plus range]], [[ZX Spectrum]], [[ZX80/81]], [[Jupiter ACE]], [[Enterprise]]&lt;br /&gt;
| Freeware&lt;br /&gt;
| [ftp://ftp.lip6.fr/pub/amstrad/emulator/MTMW130B.ZIP]&lt;br /&gt;
|-&lt;br /&gt;
| [[NO$CPC|NO$CPC]]&lt;br /&gt;
| 1.8&lt;br /&gt;
| Nov 2, 2000&lt;br /&gt;
| [[CPC old generation|CPC range]], [[Plus|Plus range]]&lt;br /&gt;
| Freeware&lt;br /&gt;
| [http://problemkaputt.de/cpc.htm]&lt;br /&gt;
|-&lt;br /&gt;
| [[PC-CPC|PC-CPC]] &lt;br /&gt;
| 0.1at b29&lt;br /&gt;
| Nov 17, 2011&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Freeware&lt;br /&gt;
| [http://cpcrulez.fr/emulateurs_download-WIN-PC-CPC.htm]&lt;br /&gt;
|-&lt;br /&gt;
| [[Retro Virtual Machine|Retro Virtual Machine]]&lt;br /&gt;
| 2.0 BETA-1 R7&lt;br /&gt;
| Jul 10, 2019&lt;br /&gt;
| [[CPC old generation|CPC range]], [[ZX Spectrum]]&lt;br /&gt;
| Donationware&lt;br /&gt;
| [https://www.retrovirtualmachine.org]&lt;br /&gt;
|-&lt;br /&gt;
| [[Roland Emulator|Roland]] &lt;br /&gt;
| 0.70&lt;br /&gt;
| Apr 20, 2017&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [https://www.rolandemu.de/en/downloads.html]/[https://github.com/raldus/roland GitHub]&lt;br /&gt;
|-&lt;br /&gt;
| [[SugarBox|SugarBox]]&lt;br /&gt;
| 0.29&lt;br /&gt;
| Jan 22, 2018&lt;br /&gt;
| [[CPC old generation|CPC range]], [[Plus|Plus range]]&lt;br /&gt;
| Open-Source&lt;br /&gt;
| [http://sugarbox.free.fr/] [https://github.com/Tom1975/SugarboxV2]&lt;br /&gt;
|-&lt;br /&gt;
| [[vbCPC|vbCPC]] &lt;br /&gt;
| 1.06&lt;br /&gt;
| Apr 7, 2005&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Freeware&lt;br /&gt;
| [http://www.emu-france.com/news/9609-ordi-vbcpc-v1-0-6/]&lt;br /&gt;
|-&lt;br /&gt;
| [[VirtualCPC|Virtual CPC]] &lt;br /&gt;
| 1.1&lt;br /&gt;
| Aug 8, 2011&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Freeware&lt;br /&gt;
| [http://users.otenet.gr/~sulfonic/cpc/]&lt;br /&gt;
|-&lt;br /&gt;
| [[WinApe|WinAPE]] &lt;br /&gt;
| 2.0b2&lt;br /&gt;
| Jan 5, 2016&lt;br /&gt;
| [[CPC old generation|CPC range]], [[Plus|Plus range]]&lt;br /&gt;
| Donationware&lt;br /&gt;
| [http://www.winape.net/]&lt;br /&gt;
|-&lt;br /&gt;
| [[WinCPC|WinCPC]] &lt;br /&gt;
| 0.9.26&lt;br /&gt;
| Feb 1, 2007&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Freeware&lt;br /&gt;
| [http://www.wincpc.ch/index.php?topic=projects-wincpc]&lt;br /&gt;
|-&lt;br /&gt;
| [[XNACPC|XNACPC]]&lt;br /&gt;
| 1.0&lt;br /&gt;
| Nov 11, 2011&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [http://www.gavpugh.com/2011/11/11/xnacpc-xbox-360-amstrad-cpc-emulator-released/]&lt;br /&gt;
|-&lt;br /&gt;
| [[Yage|Yage]]&lt;br /&gt;
| 0.91&lt;br /&gt;
| Oct 24, 1998&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Freeware&lt;br /&gt;
| [ftp://ftp.lip6.fr/pub/amstrad/emulator/YAGE091.ZIP]&lt;br /&gt;
|-&lt;br /&gt;
| [[ZEsarUX|ZEsarUX]]&lt;br /&gt;
| 9.0&lt;br /&gt;
| Aug 19, 2020&lt;br /&gt;
| [[CPC old generation|CPC range]], [[ZX Spectrum]], [[ZX80/81]], [[Jupiter ACE]], [[Sam Coupe]], [[Sinclair QL]], [[MSX 1]], [[ColecoVision]], [[SG-1000]]&lt;br /&gt;
| Donationware &amp;amp; Open source&lt;br /&gt;
| [https://github.com/chernandezba/zesarux]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Emulation Core ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Actual version&lt;br /&gt;
! Last release&lt;br /&gt;
! Emulated systems&lt;br /&gt;
! License&lt;br /&gt;
! Link&lt;br /&gt;
|-&lt;br /&gt;
| libretro-cap32 (for RetroArch)&lt;br /&gt;
| 1.2.2&lt;br /&gt;
| Jul 19, 2015&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [https://github.com/libretro/libretro-cap32]&lt;br /&gt;
|-&lt;br /&gt;
| libretro-crocods (for RetroArch)&lt;br /&gt;
| 0.1&lt;br /&gt;
| Feb 28, 2017&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [https://github.com/libretro/libretro-crocods]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Home Consoles =&lt;br /&gt;
&lt;br /&gt;
== Microsoft XBOX  ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Actual version&lt;br /&gt;
! Last release&lt;br /&gt;
! Emulated systems&lt;br /&gt;
! License&lt;br /&gt;
! Link&lt;br /&gt;
|-&lt;br /&gt;
| [[Arnold|ArnoldX]]&lt;br /&gt;
| v5&lt;br /&gt;
| Apr 20, 2010&lt;br /&gt;
| [[CPC old generation|CPC range]], [[Plus|Plus range]]&lt;br /&gt;
| &lt;br /&gt;
| [http://forums.xbox-scene.com/index.php?showtopic=711667]&lt;br /&gt;
|-&lt;br /&gt;
| [[CoinOPS|CoinOPS]]&lt;br /&gt;
| 5&lt;br /&gt;
| Oct 18, 2012&lt;br /&gt;
| [[CPC old generation|CPC range]] &amp;amp; lots of other computer systems&lt;br /&gt;
| &lt;br /&gt;
| [http://coinopsproject.freeforums.org/viewtopic.php?f=0&amp;amp;t=1213]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Microsoft Xbox 360  ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Actual version&lt;br /&gt;
! Last release&lt;br /&gt;
! Emulated systems&lt;br /&gt;
! License&lt;br /&gt;
! Link&lt;br /&gt;
|-&lt;br /&gt;
| [[XNACPC|XNACPC]]&lt;br /&gt;
| 1.0&lt;br /&gt;
| Nov 11, 2011&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [http://www.gavpugh.com/2011/11/11/xnacpc-xbox-360-amstrad-cpc-emulator-released/]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Nintendo Wii ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Actual version&lt;br /&gt;
! Last release&lt;br /&gt;
! Emulated systems&lt;br /&gt;
! License&lt;br /&gt;
! Link&lt;br /&gt;
|-&lt;br /&gt;
| [[Wiituka|Wiituka]]&lt;br /&gt;
| 0.98.8&lt;br /&gt;
| May 15, 2009&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [http://wiituka.dantoine.org/]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Sega Dreamcast  ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Actual version&lt;br /&gt;
! Last release&lt;br /&gt;
! Emulated systems&lt;br /&gt;
! License&lt;br /&gt;
! Link&lt;br /&gt;
|-&lt;br /&gt;
| [[CPCast|CPCast]]&lt;br /&gt;
| &lt;br /&gt;
| May 6, 2006&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Freeware&lt;br /&gt;
| [http://www.dcemu.co.uk/vbulletin/showthread.php?t=24100]&lt;br /&gt;
|-&lt;br /&gt;
| [[DreamCPC|DreamCPC]]&lt;br /&gt;
| Alpha 3&lt;br /&gt;
| Oct 16, 2005&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Freeware&lt;br /&gt;
| [http://jm1200.free.fr/index.php?r=2]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Sony PS2 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Actual version&lt;br /&gt;
! Last release&lt;br /&gt;
! Emulated systems&lt;br /&gt;
! License&lt;br /&gt;
! Link&lt;br /&gt;
|-&lt;br /&gt;
| [[PCPC|PCPC]]&lt;br /&gt;
| &lt;br /&gt;
| Dec 22, 2004&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [http://ps2emu.dcemu.co.uk/pcpc.shtml]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Sony PS3 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Actual version&lt;br /&gt;
! Last release&lt;br /&gt;
! Emulated systems&lt;br /&gt;
! License&lt;br /&gt;
! Link&lt;br /&gt;
|-&lt;br /&gt;
| [[Caprice32|Caprice32]]&lt;br /&gt;
| 4.1.0 DBG&lt;br /&gt;
| Apr 9, 2012&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [http://psx-scene.com/forums/content/caprice32-4-1-0-dbg-emulator-ps3-2119/]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Handheld Consoles  =&lt;br /&gt;
&lt;br /&gt;
== Dingoo A320 / A330 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Actual version&lt;br /&gt;
! Last release&lt;br /&gt;
! Emulated systems&lt;br /&gt;
! License&lt;br /&gt;
! Link&lt;br /&gt;
|-&lt;br /&gt;
| [[Pituka|Pituka (Dingux)]]&lt;br /&gt;
| 0.8pre&lt;br /&gt;
| Aug 19, 2010&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [http://david.dantoine.org/proyecto/4/]&lt;br /&gt;
|-&lt;br /&gt;
| [[Caprice|Dingux-CAP32]]&lt;br /&gt;
| 1.1.2&lt;br /&gt;
| Oct 17, 2009&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [http://zx81.zx81.free.fr/serendipity/index.php?/categories/105-Amstrad/]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== GamePark GP32 / GP2X / Wiz / Caanoo ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Actual version&lt;br /&gt;
! Last release&lt;br /&gt;
! Emulated systems&lt;br /&gt;
! License&lt;br /&gt;
! Link&lt;br /&gt;
|-&lt;br /&gt;
| [[Pituka|Pituka (GP32)]]&lt;br /&gt;
| 1d&lt;br /&gt;
| May 15, 2010&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [http://david.dantoine.org/proyecto/4/]&lt;br /&gt;
|-&lt;br /&gt;
| [[Caprice|CapriceGP2x]]&lt;br /&gt;
| 0.5&lt;br /&gt;
| Feb 22, 2006&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [http://wiki.gp2x.org/wiki/CapriceGP2x]&lt;br /&gt;
|-&lt;br /&gt;
| [[Caprice|GP2X-CAP32]]&lt;br /&gt;
| 1.5.1&lt;br /&gt;
| Aug 29, 2009&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [http://zx81.zx81.free.fr/serendipity/index.php?/categories/42-Amstrad/]&lt;br /&gt;
|-&lt;br /&gt;
| [[Caprice|Wiz-CAP32]]&lt;br /&gt;
| 1.1.0&lt;br /&gt;
| Aug 29, 2009&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [http://zx81.zx81.free.fr/serendipity/index.php?/categories/89-Amstrad/]&lt;br /&gt;
|-&lt;br /&gt;
| [[Caprice|Caanoo-CAP32]]&lt;br /&gt;
| 1.1.3&lt;br /&gt;
| Apr 24, 2011&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [http://zx81.zx81.free.fr/serendipity/index.php?/categories/165-Amstrad/]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== GCW Zero ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Actual version&lt;br /&gt;
! Last release&lt;br /&gt;
! Emulated systems&lt;br /&gt;
! License&lt;br /&gt;
! Link&lt;br /&gt;
|-&lt;br /&gt;
| [[Caprice|Dingux-CAP32]]&lt;br /&gt;
| 1.1.2&lt;br /&gt;
| May 25, 2014&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [http://boards.dingoonity.org/gcw-releases/caprice32-%28amstrad-cpc%29/]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== JXD S5110 / S601 &amp;amp; Yinlips G18 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Actual version&lt;br /&gt;
! Last release&lt;br /&gt;
! Emulated systems&lt;br /&gt;
! License&lt;br /&gt;
! Link&lt;br /&gt;
|-&lt;br /&gt;
| [[Caprice|JXD-CAP32]]&lt;br /&gt;
| 1.1.1&lt;br /&gt;
| Oct 27, 2012&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [http://zx81.zx81.free.fr/serendipity/index.php?/categories/206-Amstrad/]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Nintendo DS  ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Actual version&lt;br /&gt;
! Last release&lt;br /&gt;
! Emulated systems&lt;br /&gt;
! License&lt;br /&gt;
! Link&lt;br /&gt;
|-&lt;br /&gt;
| [[AmeDS|AmeDS]] &lt;br /&gt;
| 4.0&lt;br /&gt;
| Apr 25, 2010&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Freeware&lt;br /&gt;
| [http://www.portabledev.com/pages/ds/jeuxdev.-perso/ameds.php]&lt;br /&gt;
|-&lt;br /&gt;
| [[CrocoDS|CrocoDS]]&lt;br /&gt;
| 2.0&lt;br /&gt;
| Nov 9, 2007&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Freeware&lt;br /&gt;
| [http://www.kyuran.be/blog/2007/11/09/crocods-20-2/]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Odroid GO  ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Actual version&lt;br /&gt;
! Last release&lt;br /&gt;
! Emulated systems&lt;br /&gt;
! License&lt;br /&gt;
! Link&lt;br /&gt;
|-&lt;br /&gt;
| [[CapriceESP32|CapriceESP32]] &lt;br /&gt;
| &lt;br /&gt;
| Dec 3, 2020&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [https://github.com/grantrismo/CapriceESP32]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Pandora ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Actual version&lt;br /&gt;
! Last release&lt;br /&gt;
! Emulated systems&lt;br /&gt;
! License&lt;br /&gt;
! Link&lt;br /&gt;
|-&lt;br /&gt;
| [[Caprice|Pandora-CAP32]]&lt;br /&gt;
| 1.1.0&lt;br /&gt;
| Jun 27, 2010&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [http://zx81.zx81.free.fr/serendipity/index.php?/categories/131-Amstrad/]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Sony PSP  ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Actual version&lt;br /&gt;
! Last release&lt;br /&gt;
! Emulated systems&lt;br /&gt;
! License&lt;br /&gt;
! Link&lt;br /&gt;
|-&lt;br /&gt;
| [[Caprice32 PSP]]&lt;br /&gt;
| 4.2.0.2&lt;br /&gt;
| Nov 28, 2007&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [http://psp.akop.org/caprice32]&lt;br /&gt;
|-&lt;br /&gt;
| [[CPCPSP|CPCPSP]]&lt;br /&gt;
| 0.1&lt;br /&gt;
| Dec 24, 2005&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Freeware&lt;br /&gt;
| [http://dl.qj.net/psp/emulators/cpcpsp-v01.html]&lt;br /&gt;
|-&lt;br /&gt;
| [[PSPCAP32|PSPCAP32]]&lt;br /&gt;
| 1.5.1&lt;br /&gt;
| Aug 21, 2009&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [http://zx81.zx81.free.fr/serendipity/index.php?/categories/3-Amstrad/]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Smartphones / PDA / SoC =&lt;br /&gt;
&lt;br /&gt;
== Android  ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Actual version&lt;br /&gt;
! Last release&lt;br /&gt;
! Emulated systems&lt;br /&gt;
! License&lt;br /&gt;
! Link&lt;br /&gt;
|-&lt;br /&gt;
| [[andcpc]]&lt;br /&gt;
| 1.5.1&lt;br /&gt;
| Apr 4, 2011&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [http://code.google.com/p/andcpc/]&lt;br /&gt;
|-&lt;br /&gt;
| [[CPCDroid]]&lt;br /&gt;
| 1.5.1&lt;br /&gt;
| Mar 2, 2011&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [http://fmsdevel.wisecoding.es/blog/cpcdroid---2011-03-02]&lt;br /&gt;
|-&lt;br /&gt;
| [[CPCemu|CPCemu]] &lt;br /&gt;
| 2.0&lt;br /&gt;
| Jan 7, 2021&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Freeware&lt;br /&gt;
| [http://www.cpc-emu.org/]&lt;br /&gt;
|-&lt;br /&gt;
| [[Droid-CPC]]&lt;br /&gt;
| 1.1.01&lt;br /&gt;
| Dec 15, 2016&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Commercial&lt;br /&gt;
| [http://play.google.com/store/apps/details?id=com.kokak.droidcpc]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== BlackBerry  ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Actual version&lt;br /&gt;
! Last release&lt;br /&gt;
! Emulated systems&lt;br /&gt;
! License&lt;br /&gt;
! Link&lt;br /&gt;
|-&lt;br /&gt;
| [[BB-CPC|BB-CPC]]&lt;br /&gt;
| 1.0.1.3&lt;br /&gt;
| Jul 15, 2013&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Commercial&lt;br /&gt;
| [http://appworld.blackberry.com/webstore/content/30963891/]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== iOS  ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Actual version&lt;br /&gt;
! Last release&lt;br /&gt;
! Emulated systems&lt;br /&gt;
! License&lt;br /&gt;
! Link&lt;br /&gt;
|-&lt;br /&gt;
| [[CrocoDS]]&lt;br /&gt;
| 2.1&lt;br /&gt;
| Jun 21, 2013&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [http://github.com/redbug26/crocods]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Maemo  ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Actual version&lt;br /&gt;
! Last release&lt;br /&gt;
! Emulated systems&lt;br /&gt;
! License&lt;br /&gt;
! Link&lt;br /&gt;
|-&lt;br /&gt;
| [[CPCm]]&lt;br /&gt;
| 1.20-1&lt;br /&gt;
| Apr 27, 2010&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [http://maemo.org/downloads/product/Maemo5/cpcm/]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Palm OS  ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Actual version&lt;br /&gt;
! Last release&lt;br /&gt;
! Emulated systems&lt;br /&gt;
! License&lt;br /&gt;
! Link&lt;br /&gt;
|-&lt;br /&gt;
| [[CaPriCe for Palm OS|CaPriCe for Palm OS]]&lt;br /&gt;
| 2.8&lt;br /&gt;
| Jun 28, 2011&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [http://frederic.coste.pagesperso-orange.fr/cpc/cpc_en.htm]&lt;br /&gt;
|-&lt;br /&gt;
| [[CoPaCabana|CoPaCabana]]&lt;br /&gt;
| 0.75&lt;br /&gt;
| Dec 4, 2007&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Freeware&lt;br /&gt;
| [http://copacabana.emuunlim.com/]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Pocket PC  ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Actual version&lt;br /&gt;
! Last release&lt;br /&gt;
! Emulated systems&lt;br /&gt;
! License&lt;br /&gt;
! Link&lt;br /&gt;
|-&lt;br /&gt;
| [[CaPriCe|PocketCaprice]]&lt;br /&gt;
| 0.9&lt;br /&gt;
| Aug 19, 2007&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Freeware&lt;br /&gt;
| [http://www.clubic.com/telecharger-fiche44888-pocketcaprice.html]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Raspberry Pi ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Actual version&lt;br /&gt;
! Last release&lt;br /&gt;
! Emulated systems&lt;br /&gt;
! License&lt;br /&gt;
! Link&lt;br /&gt;
|-&lt;br /&gt;
| [[CPC4Rpi|#CPC4Rpi]]&lt;br /&gt;
| 1.1&lt;br /&gt;
| Dec 19, 2013&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [https://www.raspberrypi.org/forums/viewtopic.php?f=78&amp;amp;t=63820]&lt;br /&gt;
|-&lt;br /&gt;
| [[CapriceRPI|CapriceRPI]]&lt;br /&gt;
| 1.3&lt;br /&gt;
| Feb 28, 2016&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [https://github.com/KaosOverride/CapriceRPI]&lt;br /&gt;
|-&lt;br /&gt;
| [[ZEsarUX|ZEsarUX]]&lt;br /&gt;
| 9.0&lt;br /&gt;
| Aug 19, 2020&lt;br /&gt;
| [[CPC old generation|CPC range]], [[ZX Spectrum]], [[ZX80/81]], [[Jupiter ACE]], [[Sam Coupe]], [[Sinclair QL]], [[MSX 1]], [[ColecoVision]], [[SG-1000]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [https://github.com/chernandezba/zesarux]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Symbian  ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Actual version&lt;br /&gt;
! Last release&lt;br /&gt;
! Emulated systems&lt;br /&gt;
! License&lt;br /&gt;
! Link&lt;br /&gt;
|-&lt;br /&gt;
| [[S60-CPC|S60-CPC]]&lt;br /&gt;
| 0.74&lt;br /&gt;
| Feb 21, 2006&lt;br /&gt;
| [[CPC old generation|CPC range]]&lt;br /&gt;
| Open source&lt;br /&gt;
| [http://kokak.free.fr/s60cpc.htm]&lt;br /&gt;
|}&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 FPGA board&lt;br /&gt;
*[[C-ONE|CPC-ONE]] TurboCPC core running on the C-One FPGA board&lt;br /&gt;
*[http://ralferoo.blogspot.fr/ CPC FPGA] CPC emulation running on a custom made FPGA board&lt;br /&gt;
*[[FPGAmstrad|FPGAmstrad]] CPC emulation running on a NEXYS2 FPGA board&lt;br /&gt;
*[http://github.com/mist-devel/mist-board/wiki MIST board] FPGA board implementing Amstrad CPC and various other 8-bit and 16-bit computers&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| ]]&lt;/div&gt;</summary>
		<author><name>FindYWay</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=Demostration_tape_or_disc&amp;diff=107777</id>
		<title>Demostration tape or disc</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=Demostration_tape_or_disc&amp;diff=107777"/>
				<updated>2021-02-10T19:41:22Z</updated>
		
		<summary type="html">&lt;p&gt;FindYWay: FindYWay moved page Demostration tape or disc to Demonstration tape or disc: Fix typo in page name&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Demonstration tape or disc]]&lt;/div&gt;</summary>
		<author><name>FindYWay</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=Demonstration_tape_or_disc&amp;diff=107776</id>
		<title>Demonstration tape or disc</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=Demonstration_tape_or_disc&amp;diff=107776"/>
				<updated>2021-02-10T19:41:21Z</updated>
		
		<summary type="html">&lt;p&gt;FindYWay: FindYWay moved page Demostration tape or disc to Demonstration tape or disc: Fix typo in page name&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;When a user bought a 464 (tape) model of Amstrad/Schneider CPC there was a demo tape in the box.&lt;br /&gt;
&lt;br /&gt;
Same with disk (664/6128) models, there was a demo disc included, that was later changed with games.&lt;br /&gt;
&lt;br /&gt;
The tape offered a short and simplistic demonstration of the CPC's graphical and sound capabilities, promoting the fact that the CPC was a good all-around machine, equally for business and games.&lt;br /&gt;
&lt;br /&gt;
This is that software :&lt;br /&gt;
&lt;br /&gt;
== Tapes ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery caption=&amp;quot;English&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Image:Demostration Tape (English) - side A.jpg|side A&lt;br /&gt;
Image:Demostration Tape (English) - side B.jpg|side B&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery caption=&amp;quot;French&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Image:Demostration Tape (French) - side A.jpg|side A&lt;br /&gt;
Image:Demostration Tape (French) - side B.jpg|side B&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery caption=&amp;quot;German&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Image:Schneider-demotape-front.jpg|side A&lt;br /&gt;
Image:Schneider-demotape-back.jpg|side B&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery caption=&amp;quot;Spanish&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Image:Demostration Tape (Spanish) - side A.jpg|side A&lt;br /&gt;
Image:Demostration Tape (Spanish) - side B.jpg|side B&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Screenshots ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery caption=&amp;quot;English welcome tape&amp;quot;&amp;gt;&lt;br /&gt;
Image:WT screenshot 1.png|&lt;br /&gt;
Image:WT screenshot 2.png|&lt;br /&gt;
Image:WT screenshot 3.png|&lt;br /&gt;
Image:WT screenshot 4.png|&lt;br /&gt;
Image:WT screenshot 5.png|&lt;br /&gt;
Image:WT screenshot 6.png|&lt;br /&gt;
Image:WT screenshot 7.png|&lt;br /&gt;
Image:WT screenshot 8.png|&lt;br /&gt;
Image:WT screenshot 9.png|&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Download ==&lt;br /&gt;
&lt;br /&gt;
* [[Media:Welcome To Amstrad (tape).zip|Welcome To Amstrad (tape).zip]] (CDT for Emulators)&lt;br /&gt;
* [[Media:Welcome To Amsoft (tape).zip|Welcome To Amsoft (tape).zip]] (CDT for Emulators)&lt;br /&gt;
* [[Media:Bienvenue Chez Amsoft (tape).zip|Bienvenue Chez Amsoft (tape).zip]] (CDT for Emulators)&lt;br /&gt;
* [[Media:Schneider Demo Tape (tape).zip|Schneider Demo Tape (tape).zip]] (CDT for Emulators)&lt;br /&gt;
&lt;br /&gt;
[[Category:Applications]][[Category:CPC History]]&lt;/div&gt;</summary>
		<author><name>FindYWay</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=UPD7810/uPD7811&amp;diff=107751</id>
		<title>UPD7810/uPD7811</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=UPD7810/uPD7811&amp;diff=107751"/>
				<updated>2021-01-27T09:12:32Z</updated>
		
		<summary type="html">&lt;p&gt;FindYWay: Introduction: what is the UPD7810?&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:NEC-D7810HG-chip.jpg|thumb|NEC uPD7810 Chip&amp;lt;br&amp;gt;(QUIP-64 package)]]&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
The UPD7810 and UPD7811 are two very similar microcontrollers implemented with NMOS technology.  In the Amstrad world they were used as the driving heart of the [[Amstrad/Schneider DMP2000 Printer|DMP-series printers]] and others.&lt;br /&gt;
&lt;br /&gt;
== Disassembler ==&lt;br /&gt;
&lt;br /&gt;
A uPD7810/uPD7811 disassembler is included in MAME.&lt;br /&gt;
* Download the complete MAME binaries from http://mamedev.org/&lt;br /&gt;
* Run the self-extracting MAME executable file&lt;br /&gt;
* Delete all files except unidasm.exe&lt;br /&gt;
* Copy unicows.dll into same directory as unidasm.exe (unicows.dll is included in the &amp;quot;QMP&amp;quot; MP3-player, for some bizarre reason unidasm.exe requires this dll, but it is unable to find it when it's located in your MP3-players directory)&lt;br /&gt;
* Usage example: To disassemble the CPC printer ROMs, type this at commandline prompt:&lt;br /&gt;
** unidasm dmp2000.rom -arch upd7810 -basepc 2000h &amp;gt;dmp2000.txt&lt;br /&gt;
** unidasm nlq401.rom -arch upd7810 -basepc 0000h &amp;gt;nlq401.txt&lt;br /&gt;
&lt;br /&gt;
== Syntax ==&lt;br /&gt;
&lt;br /&gt;
The assembler syntax is rather confusing.&lt;br /&gt;
* The opcode names are unneccessarily complicated. For example, instead of using &amp;quot;MOV&amp;quot; for all transfers, there are lots of commands; depending on whether the operands are 8bit or 16bit, registers, immediates, internal or external memory locations, etc.&lt;br /&gt;
* Conditionals are pretty unconventional: Unlike as on other CPUs, there are no opcodes like &amp;quot;jump if equal&amp;quot;, instead there are opcodes like &amp;quot;compare and if equal then skip next opcode&amp;quot;.&amp;lt;br&amp;gt;The next opcode becomes conditionally executed, aside from conditional jumps, this can be also used with other opcodes, so one can program conditional MOV, OR, AND, CALL, etc.&amp;lt;br&amp;gt;Altogether it's pretty cool - once when one is familar with it. The &amp;quot;if-then-skip&amp;quot; requires some reverse thinking since humans would tendencially prefer &amp;quot;if-then-execute&amp;quot;.&amp;lt;br&amp;gt;Aside from comparisions there are some other opcodes that set the skip flag, some rotate commands, and decrement commands (where the skip condition is N=-1, not N=0) (to implement a decrement without skip one must put a NOP behind it).&amp;lt;br&amp;gt;There are two other conditional effects: Some opcodes like &amp;quot;LXI HL,imm16&amp;quot; cause any following  &amp;quot;LXI HL,imm16&amp;quot; opcode(s) to be skipped; when used after a compare opcode, this can produce a IF-THEN-ELSE effect; it can be also useful when &amp;quot;in-jumping&amp;quot; into a function. Finally, RETS performs are RET and sets the skip-flag (so the next opcode, at the return address/after the CALL opcode, will be skipped)&lt;br /&gt;
&lt;br /&gt;
== Internal ROM and MODE0/MODE1 Pins ==&lt;br /&gt;
&lt;br /&gt;
The processor exists in two versions: 7810 without internal ROM, and 7811 with 4K internal ROM. Normally, one would obviously use the ROM-less 7810 if one doesn't use the internal ROM. However, for whatever reason, it seems to be quite common to use a 7811 with its internal ROM disabled.&lt;br /&gt;
&lt;br /&gt;
The uPD781x datasheet doesn't contain useful info on how to do this, but the uPD78C1x (CMOS version) datasheet contains at least some fragments on how the MODE0 and MODE1 pins affect internal/external ROM mapping. Judging from that information, the following four combinations seem to be supported:&lt;br /&gt;
&lt;br /&gt;
{|{{Prettytable|width: 700px; font-size: 2em;}}&lt;br /&gt;
|'''MODE1'''||'''MODE0'''||'''Effect'''||'''Example/Usage'''&lt;br /&gt;
|-&lt;br /&gt;
|LOW||LOW||External ROM, 4K at 0000h..0FFFh (only lower 4bit of Port F used for memory access, upper 4bit can be used as I/O signals)||No hardware known to use this&lt;br /&gt;
|-&lt;br /&gt;
|LOW||HIGH||External ROM, 16K at 0000h..3FFFh (only lower 6bit of Port F used for memory access, upper 2bit can be used as I/O signals)||Schneider [[NLQ401]] Printer  (uPD7811 with internal ROM disabled)&lt;br /&gt;
|-&lt;br /&gt;
|HIGH||LOW||'''Internal''' ROM, 4K at 0000h..0FFFh (in this case initialization code in internal ROM can configure Port F for whatever usage by software)||Amstrad [[Amstrad/Schneider DMP2000 Printer|DMP2000]]/[[DMP3000|DMP3000]] Printers (uPD7811 with internal ROM enabled)&lt;br /&gt;
|-&lt;br /&gt;
|HIGH||HIGH||External ROM, 63.75K at 0000h..FEFFh (all 8bit of Port F used as memory address)||Amstrad [[DMP3160]] (with ROM-less uPD7810), Roland TR-909 Drumcomputer (uPD7811 with internal ROM disabled)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Examples for hardware that uses a uPD7811 with its internal ROM disabled: Schneider [[NLQ401]] printer, Roland TR-909 Drumcomputer. Reportedly it can also happen that dealers are shipping uPD7811 chips when one has ordered uPD7810 chips. Unknown why that is happening (possibly the chips might do contain BIOSes that turned out to contain software bugs, or that were produced in too high quantities).&lt;br /&gt;
&lt;br /&gt;
== Datasheets ==&lt;br /&gt;
&lt;br /&gt;
* [[Media:UPD7811G Datasheet.pdf|uPD7811G Datasheet]] (8bit CPU with 4096 byte ROM, 256 byte RAM, 44 I/O lines)&lt;br /&gt;
* [[Media:UPD78C11A Datasheet.pdf|uPD78C11A Datasheet]] (CMOS version of uPD7811, this datasheet version includes some info fragments on MODE0/MODE1 pins)&lt;br /&gt;
&lt;br /&gt;
[[Category:Datasheet]]&lt;/div&gt;</summary>
		<author><name>FindYWay</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=Programming:Cross_Development&amp;diff=105233</id>
		<title>Programming:Cross Development</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=Programming:Cross_Development&amp;diff=105233"/>
				<updated>2020-06-08T20:17:40Z</updated>
		
		<summary type="html">&lt;p&gt;FindYWay: /* Integrated toolchains */ Adjust cpc-dev-tool-chain description and difference with CPCtelera.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
Cross development is a development method where you use another machine (the host) to develop programs for the CPC (target). This is interesting because you can make a big program which sourcecode does not even fit on the CPC ram.&lt;br /&gt;
&lt;br /&gt;
The main drawback is that transferring the compiled code to the CPC can be quite difficult. But there are pretty good emulators which you can use for testing.&lt;br /&gt;
&lt;br /&gt;
Once you have your binary file you have two choices depending on if the game will be for [[Datacorder|cassette]] or [[Disk drives|disc]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Atari|Atari ST]] was a common 16 bit computer actually used in cross development of games on CPC. &lt;br /&gt;
&lt;br /&gt;
Of course nowadays cross development use far more powerful modern computers.&lt;br /&gt;
&lt;br /&gt;
*[[ZX Spectrum]] was also a source of cross development...er... let's better say [[Speccy Port|Gross Development]] indeed.&lt;br /&gt;
&lt;br /&gt;
= Tools needed for cross development =&lt;br /&gt;
&lt;br /&gt;
== Integrated toolchains ==&lt;br /&gt;
&lt;br /&gt;
An integrated cross-development toolchain is a time saver for development as it automates all necessary steps from a full set of source materials (source code, graphics, music, parameters in whatever format is practical for editing, etc) to one or several formats ready to run on the target machines. It also sometimes includes automatically launching or notifying an emulator or target device. See e.g. [http://en.wikipedia.org/wiki/Build_automation#Advantages Build Automation on wikipedia].&lt;br /&gt;
&lt;br /&gt;
Such a design has several advantage:&lt;br /&gt;
* allows the usage of any text/graphic editor of modern platforms&lt;br /&gt;
* you can change anything in one or more source files and you get an updated build quickly without error-prone manual steps&lt;br /&gt;
* allows arbitrary transform or generation of intermediary files (code or data).&lt;br /&gt;
* makes easy to have specific builds (e.g. for automated tests like to check if a different compiler produces correct code, variant build for slightly different targets)&lt;br /&gt;
* since most material are text files or small independent files, it benefits hugely from modern tools for revision control like [http://en.wikipedia.org/wiki/Git_%28software%29 Git] which makes sharing and merging code between developers much easier, increasing the time saved.&lt;br /&gt;
&lt;br /&gt;
An ideal toolchain does not force its user into specific ways of doing things but is flexible enough to let the user adjust for whatever specific needs (use different languages, compilers, linkers, etc).  Along with a properly designed and structured source tree, this makes projects less dependent on specific tools used to build them, and be more resilient to [http://en.wikipedia.org/wiki/Bit_rot bit rot] due to [http://en.wikipedia.org/wiki/Software_rot#Environment_change software build environment change].&lt;br /&gt;
&lt;br /&gt;
Please note that an integrated toolchain has little to do with anything visible on-screen.  A good toolchain can be triggered by most flexible enough graphical environments and generally produces a text log of the work done.  Nevertheless, the concept of toolchains is more natural to Linux/Unix way of thinking/doing things, and those environments are already full of reusable and combinable tools that ease the creation and maintenance of a toolchain. Windows users can generally use tools developed for Unix through the cygwin software adaptation layer but running a Linux distribution in a virtual machine may be more practical.&lt;br /&gt;
&lt;br /&gt;
There are some attempts at creating toolchains targeting the CPC.&lt;br /&gt;
&lt;br /&gt;
Active as of 2017-11:&lt;br /&gt;
&lt;br /&gt;
* '''[[CPCtelera]]''' integrates an out-of-the-box preconfigured build system, along with a game development library and tools and extensive configuration. It is also multiplatform, working on Linux, OSX and Windows. CPCtelera is a fork of [https://github.com/cpcitor/cpc-dev-tool-chain cpc-dev-tool-chain] tuned for 2D-sprite-oriented productions and extensive documentation. ''Recommended for beginners.''&lt;br /&gt;
* '''[https://github.com/cpcitor/cpc-dev-tool-chain cpc-dev-tool-chain]''' integrated C or ASM development toolchain for the Amstrad CPC platform (or emulator). '''Recommended for seasoned C programmers, Linux geeks, advanced users, general productions'''. Includes:&lt;br /&gt;
** Designed for quick start on Linux (or similar) systems : '''get a copy, write a &amp;quot;hello_world.c&amp;quot;, run &amp;quot;make dsk&amp;quot; and get a DSK ready to run into the emulator'''. On linux &amp;quot;make run&amp;quot; even runs the emulator! &lt;br /&gt;
** Automatically downloads and compiles tools as needed, no interference with user account or global system, no administrator permission needed.&lt;br /&gt;
** Tools include:&lt;br /&gt;
*** gfx2crtc (transform PNG into CPC screen data),&lt;br /&gt;
*** png2cpcsprite (turn PNG into binary data formatted as ASM source code ''with metadata including palette'', zero run-time overhead),&lt;br /&gt;
*** SDCC compiler, assembler and linker,&lt;br /&gt;
*** hex2bin, addhead (prepare CPC binaries with AMSDOS header),&lt;br /&gt;
*** cpcxfs and iDSK (prepare DSK disc image),&lt;br /&gt;
*** rasm (Roudoudou's assembler)'''. &lt;br /&gt;
*** 2cdt (transform CPC binary to tape image),&lt;br /&gt;
*** playtzx (transform tape image into audio file to play to your CPC),&lt;br /&gt;
*** caprice32 (emulator),&lt;br /&gt;
*** cpcec (emulator),&lt;br /&gt;
*** exomizer (high performance compressor, PC side),&lt;br /&gt;
*** deexo (Z80 run-time exomizer decompression),&lt;br /&gt;
** Made for Linux, also works with Windows (via cygwin or similar), and probably Mac OS X.  Most project+build-oriented features claims by CPCTelera comes from cpc-dev-tool-chain.&lt;br /&gt;
** Call firmware routines from clean C code! [https://rawgit.com/cpcitor/cpc-dev-tool-chain/master/cpclib/cfwi/coverage.html advanced coverage of the CPC firmware]&lt;br /&gt;
** Extensible projects structure based on GNU make &lt;br /&gt;
&lt;br /&gt;
* Not an integrated toolchain, but a collection of tools that can be strung together to make one, including a DockerFile. Mentioned on [http://www.cpcwiki.eu/forum/off-topic/cpc-sdk-for-linuxunix/ CPC SDK for Linux/Unix]. Appears to have moved to https://github.com/cpcsdk&lt;br /&gt;
&lt;br /&gt;
* 2012-11-12 [http://www.cpcwiki.eu/forum/programming/recommended-linux-cross-dev-tool-chain/ Recommended Linux cross-dev tool chain?] mentions a makefile-based toolchain targeting dsk images or tapes&lt;br /&gt;
* 2009-06-16 [http://www.cpcwiki.eu/forum/emulators/my-new-cross-development-kit/new/#new My new cross-development kit] explain what is basically a toolchain but link is broken as of 2013-01-08&lt;br /&gt;
&lt;br /&gt;
== Linux ==&lt;br /&gt;
&lt;br /&gt;
=== Cartridge management ===&lt;br /&gt;
* [[buildcpr]] [http://www.cepece.info/amstrad/download/buildcpr.zip]&lt;br /&gt;
&lt;br /&gt;
=== Cross assemblers ===&lt;br /&gt;
&lt;br /&gt;
* [[SjasmPlus]]&lt;br /&gt;
* [[Sjasm|sjasm]]&lt;br /&gt;
* [[Zasm]] [http://sourceforge.net/projects/zasm]&lt;br /&gt;
* [[ZMac]]&lt;br /&gt;
* GNU Binutils for z80 (z80-unknown-coff platform)&lt;br /&gt;
* [[Z80asm]] [http://savannah.nongnu.org/projects/z80asm]&lt;br /&gt;
* [[pasmo]]&lt;br /&gt;
* [[naken_asm]] [https://www.mikekohn.net/micro/naken_asm.php]&lt;br /&gt;
&lt;br /&gt;
=== Cross compilers ===&lt;br /&gt;
* [[ZXBasic]]&lt;br /&gt;
&lt;br /&gt;
=== Crunching ===&lt;br /&gt;
* [[Exomizer]]&lt;br /&gt;
* [[pucrunch]] [http://tj.gpa.free.fr/zip/sources/pucrunch.zip]&lt;br /&gt;
&lt;br /&gt;
=== Disassemblers ===&lt;br /&gt;
* [[dzasm]] [http://www.cepece.info/amstrad/download/dzasm.zip]&lt;br /&gt;
&lt;br /&gt;
=== Disc management ===&lt;br /&gt;
&lt;br /&gt;
* [[CPCTools]]&lt;br /&gt;
* [[iDSK]]&lt;br /&gt;
* [[cpcfs]] / [[cpcxfs]]&lt;br /&gt;
* [[dsktools]]&lt;br /&gt;
* [[cpmtools 2]] [http://www.moria.de/~michael/cpmtools/]&lt;br /&gt;
&lt;br /&gt;
=== Editing ===&lt;br /&gt;
&lt;br /&gt;
* scite&lt;br /&gt;
* pico&lt;br /&gt;
* xemacs&lt;br /&gt;
* [[How to use VIM for CrossDev|Vim]]&lt;br /&gt;
* pluma&lt;br /&gt;
* gedit&lt;br /&gt;
&lt;br /&gt;
=== Emulators ===&lt;br /&gt;
* [[Arnold (Emulator)|Arnold]]&lt;br /&gt;
* [[Caprice]] [http://sourceforge.net/projects/caprice32/]&lt;br /&gt;
* [[cpcemu]] [http://www.cpc-emu.org/]&lt;br /&gt;
* [[xcpc]] [http://xcpc.sourceforge.net/]&lt;br /&gt;
&lt;br /&gt;
=== Tape management ===&lt;br /&gt;
&lt;br /&gt;
* [[2cdt]] new version: [http://cpctech.cpc-live.com/download/2cdt.zip] — old version: [http://www.cepece.info/amstrad/download/2cdt.zip] &lt;br /&gt;
* [[cdtcheck]] [http://www.cepece.info/amstrad/download/cdtcheck.zip]&lt;br /&gt;
* [[cdttst]] [http://www.cepece.info/amstrad/download/cdttst.zip] &lt;br /&gt;
* [[samp2]] [http://www.cepece.info/amstrad/download/samp2.zip]&lt;br /&gt;
* [[UberCassette]] [http://www.retroreview.com/iang/UberCassette/]&lt;br /&gt;
&lt;br /&gt;
=== Toolkits ===&lt;br /&gt;
* [[CPCSDK]] toolkit which contains useful tools for cross-development under Linux - [http://code.google.com/p/cpcsdk/]&lt;br /&gt;
&lt;br /&gt;
=== Useful scripts ===&lt;br /&gt;
==== Suppress header information of a file ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat file_with_header | tail -c+129 &amp;gt; file_without_header&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Needed Tools ===&lt;br /&gt;
These tools have to not require a lot of requirement and most of them must work in command line without GUI. This will allow&lt;br /&gt;
to use them with Makefile scripts. They have to be fast too, it will be disappointing to wait more when doing CrossDev than when doing code on a real CPC.&lt;br /&gt;
A good thing (like most of CPCTools) is to have a portable code which compile on most platforms.&lt;br /&gt;
&lt;br /&gt;
* a good emulator which can be integrated in other tools. (Ramlaid first try to change Caprice is a good start)&lt;br /&gt;
* an integration of Ramlaid's tools with Nautilus&lt;br /&gt;
* ameliorations of Caprice in order to have similar functionalities than WinApe (disasm, asm, ...)&lt;br /&gt;
* debug the libdsk which seems to work very bad on actual computers (writting fail a lot)&lt;br /&gt;
* a lot of macros, or libraries for SJASMPlus shared by people in order to share code&lt;br /&gt;
* share a generic Makefile able to be use for build CPC project&lt;br /&gt;
* a lot of little command line utilities (could be add to CPCTools ?) really well done  :&lt;br /&gt;
** graphics tools :&lt;br /&gt;
*** convert images from PC to CPC, or CPC to PC (cf. tools based on ImageMagick or GD)&lt;br /&gt;
*** equivalent of Anoine's FontCatcher&lt;br /&gt;
** 2 tools which work with BASIC :&lt;br /&gt;
*** one for create BASIC AMSDOS files from ASCII or UTF-8 text files&lt;br /&gt;
*** one for create ASCII or UTF-8 text files from BASIC AMSDOS files&lt;br /&gt;
*** (this can already be done with manageDSK for files inside a DSK, maybe extract the code from there)&lt;br /&gt;
** data manipulation tools :&lt;br /&gt;
*** ability to arrange data files for example modify bytes order in a picture file by using Gray code capabilities for changing line with modifying 1 bit&lt;br /&gt;
&lt;br /&gt;
== Windows  ==&lt;br /&gt;
&lt;br /&gt;
=== Cross Assemblers  ===&lt;br /&gt;
&lt;br /&gt;
*[[Tasm|tasm]] &lt;br /&gt;
*[[Pasmo|Pasmo]] &lt;br /&gt;
*[[ZMac|ZMac]] &lt;br /&gt;
*[http://little-bat.de/prog/ zasm] &lt;br /&gt;
*[[WinApe|WinApe]]'s built in assembler&lt;br /&gt;
* [[naken_asm]] [https://www.mikekohn.net/micro/naken_asm.php]&lt;br /&gt;
&lt;br /&gt;
=== Cross compilers (C) ===&lt;br /&gt;
&lt;br /&gt;
Beginner warning: unless you want to rebuild an entire toolchain by hand, you probably don't want to just download a C cross-compiler alone. Most probably, what you're looking for is an [[#Integrated_toolchains|integrated toolchain]] instead.&lt;br /&gt;
&lt;br /&gt;
For a C tutorial, see http://www.cpcmania.com/Docs/Programming/Programming.htm by Mochilote&lt;br /&gt;
&lt;br /&gt;
* [[Z88DK]]&lt;br /&gt;
* [[SDCC]], notably [[SDCC and CPC]] had hints and practical examples about the principles of writing in C for CPC.&lt;br /&gt;
* [[PhrozenC]]&lt;br /&gt;
&lt;br /&gt;
=== Cross compilers (Java) ===&lt;br /&gt;
&lt;br /&gt;
WIP&lt;br /&gt;
&lt;br /&gt;
* [[JavaGrinder]]&lt;br /&gt;
&lt;br /&gt;
=== Graphics  ===&lt;br /&gt;
&lt;br /&gt;
*[[AMSprite|AMSprite]] - Sprite/Loading Screen Editor and graphics conversion tools&lt;br /&gt;
&lt;br /&gt;
=== Sound  ===&lt;br /&gt;
&lt;br /&gt;
*[[WYZTracker|WYZTracker]]&amp;amp;nbsp;- Music tracker / Sound effects editor&lt;br /&gt;
*[[Vortex Tracker]]&lt;br /&gt;
&lt;br /&gt;
== Testing on a real CPC ==&lt;br /&gt;
&lt;br /&gt;
=== For cassette ===&lt;br /&gt;
&lt;br /&gt;
* 2CDT to add the files to a Cassette Image File (CDT)&lt;br /&gt;
* Tape2WAV to convert the Cassette Image file (CDT) into a WAV file.&lt;br /&gt;
* Then you can run the program on the emulator the same way as you would run it on a real CPC, or&lt;br /&gt;
* Connect your CPC (CPC664 and CPC6128 have a cassette input) to the Line-Out output of your PC soundcard&lt;br /&gt;
* On the CPC type:&lt;br /&gt;
&lt;br /&gt;
 |TAPE:RUN&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Start your WAV player&lt;br /&gt;
* Set the volume to maximum&lt;br /&gt;
* play the WAV file&lt;br /&gt;
* Wait for the program to load...&lt;br /&gt;
&lt;br /&gt;
=== For disc ===&lt;br /&gt;
&lt;br /&gt;
* Use CPCFS or CPCXFS to put the binary files into a Disk Image file (DSK)&lt;br /&gt;
* Then you can run the program on the emulator the same way as you would run it on a real CPC&lt;br /&gt;
&lt;br /&gt;
If your CPC has a 3.5&amp;quot; disc drive then the easiest method is to transfer the DSK to a 3.5&amp;quot; disc using a PC with a 3.5&amp;quot; drive (internal, not USB).&lt;br /&gt;
&lt;br /&gt;
* Then write the DSK to a 3.5&amp;quot; disc drive, using dsktools (Linux) or CPCDiskXP (Windows).&lt;br /&gt;
* Put the disc into your CPC's 3.5&amp;quot; disc drive and type - |B: RUN &amp;quot;&amp;amp;lt;gamename&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Snapshots ==&lt;br /&gt;
&lt;br /&gt;
The fastest way of testing your code on an emulator is by creating a snapshot. Use [[CPCSnapshot]] to insert your assembled code into a snapshot file. Then just load the snapshot file into the emulator. Windows users may also try WinAPE's integrated assembler which assembles the code directly into the emulated CPC's memory.&lt;br /&gt;
&lt;br /&gt;
== Web links ==&lt;br /&gt;
&lt;br /&gt;
* [http://ramlaid.free.fr/Amstrad/English/crossDev.htm CPC Cross Development tools by Ramlaid] (Link broken as 2012-01-08. If you can help, please update.)&lt;br /&gt;
&lt;br /&gt;
[[Category:Programming]] [[Category:CrossDev]]&lt;/div&gt;</summary>
		<author><name>FindYWay</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=Programming:Cross_Development&amp;diff=105232</id>
		<title>Programming:Cross Development</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=Programming:Cross_Development&amp;diff=105232"/>
				<updated>2020-06-08T19:48:04Z</updated>
		
		<summary type="html">&lt;p&gt;FindYWay: /* Cross compilers (C) */ warn beginners to avoid them suffering with a C compiler alone when they actually need a toolchain.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
Cross development is a development method where you use another machine (the host) to develop programs for the CPC (target). This is interesting because you can make a big program which sourcecode does not even fit on the CPC ram.&lt;br /&gt;
&lt;br /&gt;
The main drawback is that transferring the compiled code to the CPC can be quite difficult. But there are pretty good emulators which you can use for testing.&lt;br /&gt;
&lt;br /&gt;
Once you have your binary file you have two choices depending on if the game will be for [[Datacorder|cassette]] or [[Disk drives|disc]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Atari|Atari ST]] was a common 16 bit computer actually used in cross development of games on CPC. &lt;br /&gt;
&lt;br /&gt;
Of course nowadays cross development use far more powerful modern computers.&lt;br /&gt;
&lt;br /&gt;
*[[ZX Spectrum]] was also a source of cross development...er... let's better say [[Speccy Port|Gross Development]] indeed.&lt;br /&gt;
&lt;br /&gt;
= Tools needed for cross development =&lt;br /&gt;
&lt;br /&gt;
== Integrated toolchains ==&lt;br /&gt;
&lt;br /&gt;
An integrated cross-development toolchain is a time saver for development as it automates all necessary steps from a full set of source materials (source code, graphics, music, parameters in whatever format is practical for editing, etc) to one or several formats ready to run on the target machines. It also sometimes includes automatically launching or notifying an emulator or target device. See e.g. [http://en.wikipedia.org/wiki/Build_automation#Advantages Build Automation on wikipedia].&lt;br /&gt;
&lt;br /&gt;
Such a design has several advantage:&lt;br /&gt;
* allows the usage of any text/graphic editor of modern platforms&lt;br /&gt;
* you can change anything in one or more source files and you get an updated build quickly without error-prone manual steps&lt;br /&gt;
* allows arbitrary transform or generation of intermediary files (code or data).&lt;br /&gt;
* makes easy to have specific builds (e.g. for automated tests like to check if a different compiler produces correct code, variant build for slightly different targets)&lt;br /&gt;
* since most material are text files or small independent files, it benefits hugely from modern tools for revision control like [http://en.wikipedia.org/wiki/Git_%28software%29 Git] which makes sharing and merging code between developers much easier, increasing the time saved.&lt;br /&gt;
&lt;br /&gt;
An ideal toolchain does not force its user into specific ways of doing things but is flexible enough to let the user adjust for whatever specific needs (use different languages, compilers, linkers, etc).  Along with a properly designed and structured source tree, this makes projects less dependent on specific tools used to build them, and be more resilient to [http://en.wikipedia.org/wiki/Bit_rot bit rot] due to [http://en.wikipedia.org/wiki/Software_rot#Environment_change software build environment change].&lt;br /&gt;
&lt;br /&gt;
Please note that an integrated toolchain has little to do with anything visible on-screen.  A good toolchain can be triggered by most flexible enough graphical environments and generally produces a text log of the work done.  Nevertheless, the concept of toolchains is more natural to Linux/Unix way of thinking/doing things, and those environments are already full of reusable and combinable tools that ease the creation and maintenance of a toolchain. Windows users can generally use tools developed for Unix through the cygwin software adaptation layer but running a Linux distribution in a virtual machine may be more practical.&lt;br /&gt;
&lt;br /&gt;
There are some attempts at creating toolchains targeting the CPC.&lt;br /&gt;
&lt;br /&gt;
Active as of 2017-11:&lt;br /&gt;
&lt;br /&gt;
* '''[[CPCtelera]]''' integrates an out-of-the-box preconfigured build system, along with a game development library and tools. It is also multiplatform, working on Linux, OSX and Windows.&lt;br /&gt;
* [https://github.com/cpcitor/cpc-dev-tool-chain cpc-dev-tool-chain] integrated C or ASM development toolchain for the Amstrad CPC platform (or emulator). Includes compiler, assembler, makefile-based projects, interface between C and firmware. Designed for quick start on Linux (or similar) systems : get a copy, run &amp;quot;make&amp;quot; and get a DSK ready to run into the emulator. It even downloads and compiles tools (the cross-compiler, iDSK) if needed. Made for Linux, also works with Windows (via cygwin or similar), and probably Mac OS X.  Most project+build-oriented features claims by CPCTelera comes from cpc-dev-tool-chain.&lt;br /&gt;
* Not an integrated toolchain, but a collection of tools that can be strung together to make one, including a DockerFile. Mentioned on [http://www.cpcwiki.eu/forum/off-topic/cpc-sdk-for-linuxunix/ CPC SDK for Linux/Unix]. Appears to have moved to https://github.com/cpcsdk&lt;br /&gt;
&lt;br /&gt;
* 2012-11-12 [http://www.cpcwiki.eu/forum/programming/recommended-linux-cross-dev-tool-chain/ Recommended Linux cross-dev tool chain?] mentions a makefile-based toolchain targeting dsk images or tapes&lt;br /&gt;
* 2009-06-16 [http://www.cpcwiki.eu/forum/emulators/my-new-cross-development-kit/new/#new My new cross-development kit] explain what is basically a toolchain but link is broken as of 2013-01-08&lt;br /&gt;
&lt;br /&gt;
== Linux ==&lt;br /&gt;
&lt;br /&gt;
=== Cartridge management ===&lt;br /&gt;
* [[buildcpr]] [http://www.cepece.info/amstrad/download/buildcpr.zip]&lt;br /&gt;
&lt;br /&gt;
=== Cross assemblers ===&lt;br /&gt;
&lt;br /&gt;
* [[SjasmPlus]]&lt;br /&gt;
* [[Sjasm|sjasm]]&lt;br /&gt;
* [[Zasm]] [http://sourceforge.net/projects/zasm]&lt;br /&gt;
* [[ZMac]]&lt;br /&gt;
* GNU Binutils for z80 (z80-unknown-coff platform)&lt;br /&gt;
* [[Z80asm]] [http://savannah.nongnu.org/projects/z80asm]&lt;br /&gt;
* [[pasmo]]&lt;br /&gt;
* [[naken_asm]] [https://www.mikekohn.net/micro/naken_asm.php]&lt;br /&gt;
&lt;br /&gt;
=== Cross compilers ===&lt;br /&gt;
* [[ZXBasic]]&lt;br /&gt;
&lt;br /&gt;
=== Crunching ===&lt;br /&gt;
* [[Exomizer]]&lt;br /&gt;
* [[pucrunch]] [http://tj.gpa.free.fr/zip/sources/pucrunch.zip]&lt;br /&gt;
&lt;br /&gt;
=== Disassemblers ===&lt;br /&gt;
* [[dzasm]] [http://www.cepece.info/amstrad/download/dzasm.zip]&lt;br /&gt;
&lt;br /&gt;
=== Disc management ===&lt;br /&gt;
&lt;br /&gt;
* [[CPCTools]]&lt;br /&gt;
* [[iDSK]]&lt;br /&gt;
* [[cpcfs]] / [[cpcxfs]]&lt;br /&gt;
* [[dsktools]]&lt;br /&gt;
* [[cpmtools 2]] [http://www.moria.de/~michael/cpmtools/]&lt;br /&gt;
&lt;br /&gt;
=== Editing ===&lt;br /&gt;
&lt;br /&gt;
* scite&lt;br /&gt;
* pico&lt;br /&gt;
* xemacs&lt;br /&gt;
* [[How to use VIM for CrossDev|Vim]]&lt;br /&gt;
* pluma&lt;br /&gt;
* gedit&lt;br /&gt;
&lt;br /&gt;
=== Emulators ===&lt;br /&gt;
* [[Arnold (Emulator)|Arnold]]&lt;br /&gt;
* [[Caprice]] [http://sourceforge.net/projects/caprice32/]&lt;br /&gt;
* [[cpcemu]] [http://www.cpc-emu.org/]&lt;br /&gt;
* [[xcpc]] [http://xcpc.sourceforge.net/]&lt;br /&gt;
&lt;br /&gt;
=== Tape management ===&lt;br /&gt;
&lt;br /&gt;
* [[2cdt]] new version: [http://cpctech.cpc-live.com/download/2cdt.zip] — old version: [http://www.cepece.info/amstrad/download/2cdt.zip] &lt;br /&gt;
* [[cdtcheck]] [http://www.cepece.info/amstrad/download/cdtcheck.zip]&lt;br /&gt;
* [[cdttst]] [http://www.cepece.info/amstrad/download/cdttst.zip] &lt;br /&gt;
* [[samp2]] [http://www.cepece.info/amstrad/download/samp2.zip]&lt;br /&gt;
* [[UberCassette]] [http://www.retroreview.com/iang/UberCassette/]&lt;br /&gt;
&lt;br /&gt;
=== Toolkits ===&lt;br /&gt;
* [[CPCSDK]] toolkit which contains useful tools for cross-development under Linux - [http://code.google.com/p/cpcsdk/]&lt;br /&gt;
&lt;br /&gt;
=== Useful scripts ===&lt;br /&gt;
==== Suppress header information of a file ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat file_with_header | tail -c+129 &amp;gt; file_without_header&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Needed Tools ===&lt;br /&gt;
These tools have to not require a lot of requirement and most of them must work in command line without GUI. This will allow&lt;br /&gt;
to use them with Makefile scripts. They have to be fast too, it will be disappointing to wait more when doing CrossDev than when doing code on a real CPC.&lt;br /&gt;
A good thing (like most of CPCTools) is to have a portable code which compile on most platforms.&lt;br /&gt;
&lt;br /&gt;
* a good emulator which can be integrated in other tools. (Ramlaid first try to change Caprice is a good start)&lt;br /&gt;
* an integration of Ramlaid's tools with Nautilus&lt;br /&gt;
* ameliorations of Caprice in order to have similar functionalities than WinApe (disasm, asm, ...)&lt;br /&gt;
* debug the libdsk which seems to work very bad on actual computers (writting fail a lot)&lt;br /&gt;
* a lot of macros, or libraries for SJASMPlus shared by people in order to share code&lt;br /&gt;
* share a generic Makefile able to be use for build CPC project&lt;br /&gt;
* a lot of little command line utilities (could be add to CPCTools ?) really well done  :&lt;br /&gt;
** graphics tools :&lt;br /&gt;
*** convert images from PC to CPC, or CPC to PC (cf. tools based on ImageMagick or GD)&lt;br /&gt;
*** equivalent of Anoine's FontCatcher&lt;br /&gt;
** 2 tools which work with BASIC :&lt;br /&gt;
*** one for create BASIC AMSDOS files from ASCII or UTF-8 text files&lt;br /&gt;
*** one for create ASCII or UTF-8 text files from BASIC AMSDOS files&lt;br /&gt;
*** (this can already be done with manageDSK for files inside a DSK, maybe extract the code from there)&lt;br /&gt;
** data manipulation tools :&lt;br /&gt;
*** ability to arrange data files for example modify bytes order in a picture file by using Gray code capabilities for changing line with modifying 1 bit&lt;br /&gt;
&lt;br /&gt;
== Windows  ==&lt;br /&gt;
&lt;br /&gt;
=== Cross Assemblers  ===&lt;br /&gt;
&lt;br /&gt;
*[[Tasm|tasm]] &lt;br /&gt;
*[[Pasmo|Pasmo]] &lt;br /&gt;
*[[ZMac|ZMac]] &lt;br /&gt;
*[http://little-bat.de/prog/ zasm] &lt;br /&gt;
*[[WinApe|WinApe]]'s built in assembler&lt;br /&gt;
* [[naken_asm]] [https://www.mikekohn.net/micro/naken_asm.php]&lt;br /&gt;
&lt;br /&gt;
=== Cross compilers (C) ===&lt;br /&gt;
&lt;br /&gt;
Beginner warning: unless you want to rebuild an entire toolchain by hand, you probably don't want to just download a C cross-compiler alone. Most probably, what you're looking for is an [[#Integrated_toolchains|integrated toolchain]] instead.&lt;br /&gt;
&lt;br /&gt;
For a C tutorial, see http://www.cpcmania.com/Docs/Programming/Programming.htm by Mochilote&lt;br /&gt;
&lt;br /&gt;
* [[Z88DK]]&lt;br /&gt;
* [[SDCC]], notably [[SDCC and CPC]] had hints and practical examples about the principles of writing in C for CPC.&lt;br /&gt;
* [[PhrozenC]]&lt;br /&gt;
&lt;br /&gt;
=== Cross compilers (Java) ===&lt;br /&gt;
&lt;br /&gt;
WIP&lt;br /&gt;
&lt;br /&gt;
* [[JavaGrinder]]&lt;br /&gt;
&lt;br /&gt;
=== Graphics  ===&lt;br /&gt;
&lt;br /&gt;
*[[AMSprite|AMSprite]] - Sprite/Loading Screen Editor and graphics conversion tools&lt;br /&gt;
&lt;br /&gt;
=== Sound  ===&lt;br /&gt;
&lt;br /&gt;
*[[WYZTracker|WYZTracker]]&amp;amp;nbsp;- Music tracker / Sound effects editor&lt;br /&gt;
*[[Vortex Tracker]]&lt;br /&gt;
&lt;br /&gt;
== Testing on a real CPC ==&lt;br /&gt;
&lt;br /&gt;
=== For cassette ===&lt;br /&gt;
&lt;br /&gt;
* 2CDT to add the files to a Cassette Image File (CDT)&lt;br /&gt;
* Tape2WAV to convert the Cassette Image file (CDT) into a WAV file.&lt;br /&gt;
* Then you can run the program on the emulator the same way as you would run it on a real CPC, or&lt;br /&gt;
* Connect your CPC (CPC664 and CPC6128 have a cassette input) to the Line-Out output of your PC soundcard&lt;br /&gt;
* On the CPC type:&lt;br /&gt;
&lt;br /&gt;
 |TAPE:RUN&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Start your WAV player&lt;br /&gt;
* Set the volume to maximum&lt;br /&gt;
* play the WAV file&lt;br /&gt;
* Wait for the program to load...&lt;br /&gt;
&lt;br /&gt;
=== For disc ===&lt;br /&gt;
&lt;br /&gt;
* Use CPCFS or CPCXFS to put the binary files into a Disk Image file (DSK)&lt;br /&gt;
* Then you can run the program on the emulator the same way as you would run it on a real CPC&lt;br /&gt;
&lt;br /&gt;
If your CPC has a 3.5&amp;quot; disc drive then the easiest method is to transfer the DSK to a 3.5&amp;quot; disc using a PC with a 3.5&amp;quot; drive (internal, not USB).&lt;br /&gt;
&lt;br /&gt;
* Then write the DSK to a 3.5&amp;quot; disc drive, using dsktools (Linux) or CPCDiskXP (Windows).&lt;br /&gt;
* Put the disc into your CPC's 3.5&amp;quot; disc drive and type - |B: RUN &amp;quot;&amp;amp;lt;gamename&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Snapshots ==&lt;br /&gt;
&lt;br /&gt;
The fastest way of testing your code on an emulator is by creating a snapshot. Use [[CPCSnapshot]] to insert your assembled code into a snapshot file. Then just load the snapshot file into the emulator. Windows users may also try WinAPE's integrated assembler which assembles the code directly into the emulated CPC's memory.&lt;br /&gt;
&lt;br /&gt;
== Web links ==&lt;br /&gt;
&lt;br /&gt;
* [http://ramlaid.free.fr/Amstrad/English/crossDev.htm CPC Cross Development tools by Ramlaid] (Link broken as 2012-01-08. If you can help, please update.)&lt;br /&gt;
&lt;br /&gt;
[[Category:Programming]] [[Category:CrossDev]]&lt;/div&gt;</summary>
		<author><name>FindYWay</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=User:FindYWay&amp;diff=104110</id>
		<title>User:FindYWay</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=User:FindYWay&amp;diff=104110"/>
				<updated>2020-01-12T15:39:26Z</updated>
		
		<summary type="html">&lt;p&gt;FindYWay: On most retro-related places, my nickname is cpcitor.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Had a CPC since 1985, currently software dev professional, including embedded systems.&lt;br /&gt;
&lt;br /&gt;
On most retro-related places, my nickname is cpcitor.&lt;/div&gt;</summary>
		<author><name>FindYWay</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=Fitting_a_3.5_drive_inside_a_CPC6128&amp;diff=99675</id>
		<title>Fitting a 3.5 drive inside a CPC6128</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=Fitting_a_3.5_drive_inside_a_CPC6128&amp;diff=99675"/>
				<updated>2017-10-18T09:20:32Z</updated>
		
		<summary type="html">&lt;p&gt;FindYWay: Add useful links, thanks Bryce.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Fitting a 3½&amp;quot; Disk Drive inside your Amstrad CPC 6128 or 664.&lt;br /&gt;
&lt;br /&gt;
This is a little more difficult than fitting an external drive.&lt;br /&gt;
&lt;br /&gt;
Reasons :&lt;br /&gt;
&lt;br /&gt;
* the ribbon connector inside the CPC has to be slightly split because although it's nearly compatible, it's shorter  (less number of pins) and the last few pins of the pinout don't match, they have to be shifted.&lt;br /&gt;
* the power connector has its colour convention reversed, to double/triple check voltage before connecting your drive to it, or you'll connect 12V to the pin expecting 5V and fry your drive.&lt;br /&gt;
* Ready signal issue, maybe?&lt;br /&gt;
&lt;br /&gt;
This is based on content available on:&lt;br /&gt;
&lt;br /&gt;
* Short guide, 664, few photos [http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/retrofitting-a-cpc-664-with-a-3-5'-drive-(parados-recommended-for-full-capacity)/msg11613/#msg11613 Retrofitting a CPC 664 with a 3.5&amp;quot; drive (ParaDOS recommended for full capacity)]&lt;br /&gt;
* Longer guide, 6128, better photos [http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/cpc6128-parados-and-internal-3-5'-floppy-drive-mod/ CPC6128 Parados and Internal 3.5&amp;quot; floppy drive mod]&lt;br /&gt;
&lt;br /&gt;
Extra information :&lt;br /&gt;
&lt;br /&gt;
* [[Modify_PC_floppy_drives]] for best compatibility (depends on the drive details)&lt;br /&gt;
* [[DIY:Floppy_Drives]] pinning list, wiring diagrams and signal descriptions found on a CPC6128. &lt;br /&gt;
* [[Side Select Switch]]&lt;br /&gt;
&lt;br /&gt;
 [[Category:DIY]] [[Category:DATA Storage]]&lt;/div&gt;</summary>
		<author><name>FindYWay</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=Fitting_a_3.5_drive_inside_a_CPC6128&amp;diff=99674</id>
		<title>Fitting a 3.5 drive inside a CPC6128</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=Fitting_a_3.5_drive_inside_a_CPC6128&amp;diff=99674"/>
				<updated>2017-10-18T08:19:10Z</updated>
		
		<summary type="html">&lt;p&gt;FindYWay: Stub page with summary and links to content in forum.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Fitting a 3½&amp;quot; Disk Drive inside your Amstrad CPC 6128 or 664.&lt;br /&gt;
&lt;br /&gt;
This is a little more difficult than fitting an external drive.&lt;br /&gt;
&lt;br /&gt;
Reasons :&lt;br /&gt;
&lt;br /&gt;
* the ribbon connector inside the CPC has to be slightly split because although it's nearly compatible, it's shorter  (less number of pins) and the last few pins of the pinout don't match, they have to be shifted.&lt;br /&gt;
* the power connector has its colour convention reversed, to double/triple check voltage before connecting your drive to it, or you'll connect 12V to the pin expecting 5V and fry your drive.&lt;br /&gt;
* Ready signal issue, maybe?&lt;br /&gt;
&lt;br /&gt;
This is based on content available on:&lt;br /&gt;
&lt;br /&gt;
* Short guide, 664, few photos [http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/retrofitting-a-cpc-664-with-a-3-5'-drive-(parados-recommended-for-full-capacity)/msg11613/#msg11613 Retrofitting a CPC 664 with a 3.5&amp;quot; drive (ParaDOS recommended for full capacity)]&lt;br /&gt;
* Longer guide, 6128, better photos [http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/cpc6128-parados-and-internal-3-5'-floppy-drive-mod/ CPC6128 Parados and Internal 3.5&amp;quot; floppy drive mod]&lt;br /&gt;
&lt;br /&gt;
 [[Category:DIY]] [[Category:DATA Storage]]&lt;/div&gt;</summary>
		<author><name>FindYWay</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=Guide_on_how_to_connect_a_3.5%22_drive_to_a_CPC6128/664&amp;diff=99457</id>
		<title>Guide on how to connect a 3.5&quot; drive to a CPC6128/664</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=Guide_on_how_to_connect_a_3.5%22_drive_to_a_CPC6128/664&amp;diff=99457"/>
				<updated>2017-09-28T03:55:34Z</updated>
		
		<summary type="html">&lt;p&gt;FindYWay: /* Other Errors at this point */ Improve presentation : turn big paragraph into easy-to-read QA thanks to &amp;quot;description list&amp;quot; markup.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Guide to hook up a 3.5&amp;quot; pc drive to your Amstrad CPC 6128 or 664 (For non-techy people like me).'''&amp;lt;br&amp;gt; You can also check out another guide [[Guide on how to connect a 3.5 | here]]&lt;br /&gt;
&lt;br /&gt;
This guide is for people who own CPCs 664/6128 with 34 pin EDGE connector type interfaces (sold e.g. in the UK and DK).&amp;lt;br&amp;gt;&lt;br /&gt;
For another guide, check [[Guide_on_how_to_connect_a_3.5]].&lt;br /&gt;
&lt;br /&gt;
A 36-pin Centronics connector is used by the German CPC 6128 (classic) and with a dangerously different pinout also by the CPC6128plus, each needing different kinds of cables, cf. [[DIY:Floppy_Drives#Multi-Adaptor_Cable_for_External_Floppies_.2F_HxC_emulator|DIY:Floppy Drives: Multi-Adaptor Cable for External Floppies &amp;amp; HxC emulator]].&lt;br /&gt;
&lt;br /&gt;
== What you need (minimum requirements)==&lt;br /&gt;
&lt;br /&gt;
- a pc 3.5&amp;quot; floppy drive: For usable models see [[Drive_Compatibility]], [[Modify_PC_floppy_drives]] and [[Adding_3.5%22_drive_to_CPC464]].&amp;lt;br&amp;gt;&lt;br /&gt;
- a old style pc floppy cable &lt;br /&gt;
- a paperclip or a small piece of wire &lt;br /&gt;
- a powersource for the drive &lt;br /&gt;
- a 3.5&amp;quot; floppy disc &lt;br /&gt;
&lt;br /&gt;
Suggest u also get: &lt;br /&gt;
&lt;br /&gt;
- pins &amp;amp; jumpers or maybe some real switches. &lt;br /&gt;
- tape &lt;br /&gt;
&lt;br /&gt;
== The Cable ==&lt;br /&gt;
&lt;br /&gt;
By some amazing luck the 6128/664 use the exact same floppy-connector as a old 5.25&amp;quot; pc floppy drive. So all you need to connect up is a old style pc floppy cable that has both the old style 5.25&amp;quot; large edge connector and new style 3.5&amp;quot; small pc floppy connector. &lt;br /&gt;
Hardest part is probably to get one of these cables as they havnt really been used in years. If you have a 486 pc or older, try peeking inside to see if it has one of these cables, then you can easily borrow and replace it with a new style cable. &lt;br /&gt;
&lt;br /&gt;
Looks like so: &lt;br /&gt;
&lt;br /&gt;
[[Image:BelkinFloppy1.JPG|400px]]&lt;br /&gt;
 &lt;br /&gt;
But let give you a hand. BELKIN still sells this cable, I got mine locally but this one looks like its the one:&lt;br /&gt;
&lt;br /&gt;
http://www.amazon.co.uk/Belkin-Universa ... 36&amp;amp;sr=8-16&lt;br /&gt;
&lt;br /&gt;
This is the 5 connector one, but a 3 connector one may also work if it has the right &lt;br /&gt;
kind/amount of connectors. &lt;br /&gt;
&lt;br /&gt;
== The pc 3.5&amp;quot; Floppy drive ==&lt;br /&gt;
&lt;br /&gt;
So far all the 3.5&amp;quot; drives ive tested all worked. The question is if you want a drive that is both compatible with 720kb floppies AND 1.44mb floppies. &lt;br /&gt;
All drives SEEM to work flawlessly with 720kb floppies .. but for some reason .. you get a LOT of read errors with SOME drives when you insert a 1.44mb floppy? &lt;br /&gt;
&lt;br /&gt;
Quick fix: Use 720kb floppies only. 720kb floppies are hard to get, so just make some yourself from 1.44 floppies. Tape over the little &amp;quot;High Density&amp;quot; hole in the top left (both sides). That way the drive will think the floppy is 720kb only and act accordingly. Works Great. &lt;br /&gt;
&lt;br /&gt;
[[Image:Floppies1.JPG|600px]]&lt;br /&gt;
&lt;br /&gt;
=== Slow fix ===&lt;br /&gt;
&lt;br /&gt;
find a drive that works with both size of floppies. &lt;br /&gt;
I say: a old TEAC FD-235HF drive works with both size floppies. &lt;br /&gt;
Hearsay from other sites: Alps &amp;amp; Mitsumi drives MAY work fully. &lt;br /&gt;
One way or the other i use the tape mod on all my 1.44mb floppies because it makes them compatible with all the drives i have. &lt;br /&gt;
&lt;br /&gt;
=== Paperclip &amp;amp; more ===&lt;br /&gt;
&lt;br /&gt;
All you really need is one piece of paperclip (the metal kind) to be able to make a single short on the floppy cable, but it would probably be better to get some proper pins and jumpers or some real small wires. Also if you wanna do some really fansy stuff, you might wanna get at least 3 paperclips/wires/pins/jumpers. (se later) &lt;br /&gt;
Motherboard pins are usually sold in long rows where you can break of smaller parts, like a set of 2 pins, then use normal pc jumpers on em to quickly set on/off. &lt;br /&gt;
&lt;br /&gt;
[[Image:PinsJumpers1.JPG|400px]]&lt;br /&gt;
&lt;br /&gt;
== Powersource == &lt;br /&gt;
&lt;br /&gt;
You need to power the 3.5&amp;quot; floppy drive somehow. A normal pc powersupply will do this quite nicely but there are &amp;quot;complications&amp;quot;. A modern powersupply dosnt turn fully on unless it detects a motherboard is present. &lt;br /&gt;
There is 3 possible solutions to this problem:&lt;br /&gt;
&lt;br /&gt;
1. drag a whole pc up next to your amstrad so u can power the floppy that way. &lt;br /&gt;
&lt;br /&gt;
2. use another way to power the floppy. &lt;br /&gt;
&lt;br /&gt;
3. cheat a modern pc powersupply to think a motherboard is present. Fooling a modern powersupply isnt really that hard .. all &lt;br /&gt;
u need is to connect the GREEN wire (ready signal) with one of the BLACK wires (ground). This works with both the 20 pin powersupplys and the newer 24 pin ones. Here is a shot of my 20 pin one: &lt;br /&gt;
&lt;br /&gt;
[[Image:Psu20pin1.JPG|400px]]&lt;br /&gt;
&lt;br /&gt;
Connected the green pin 14 wire with the black pin 13 wire. Note that i used pin 13 just because it was right next to pin 14 .. but any other black wire will work just as well. &lt;br /&gt;
The newer 24 pin powersupply can be fixed just like that, but note that the green wire is pin 16 on the 24 pin one. So a possible setup on the 24 pin setup could be green pin 16 connected with black pin 15.&lt;br /&gt;
&lt;br /&gt;
=== More about powersupply pin layout here ===&lt;br /&gt;
&lt;br /&gt;
20pin: http://www.hardwarebook.info/ATX_Power_Supply &lt;br /&gt;
24pin: http://www.hardwarebook.info/ATX_v2.2_Power_Supply &lt;br /&gt;
&lt;br /&gt;
Note that VERY old powersupplies USED to turn on fully by themselves, so if u have a REALLY old pc u can see if it works. &lt;br /&gt;
&lt;br /&gt;
=== Setting it all up ===&lt;br /&gt;
&lt;br /&gt;
All u do is basicly the same as if you would hook up a FD1 drive to a cpc 6128. No soldering or disassembly required. Just hook up the cable to the DRIVE connetor on the Amstrad and the Floppy drive to the next edge connector on the cable. &lt;br /&gt;
Pretty hard to get it wrong as the edge connector only fits one way and usually the same is said the floppy connector. BUT .. there IS a few floppy drives that have the pins upside down, so u might need to twist the cable around once .. most likely not tho. &lt;br /&gt;
&lt;br /&gt;
[[Image:CableOn1.JPG|600px]]&lt;br /&gt;
&lt;br /&gt;
Note that this type of pc cable usually has some internally twisted cables .. make sure the CPC/PC does NOT have the twisted bit between them.&lt;br /&gt;
&lt;br /&gt;
[[Image:IMGP1639 50%.jpg|600px]]&lt;br /&gt;
&lt;br /&gt;
You can process the same way with only 1 drive 3&amp;quot;5 and 5&amp;quot;1/4 connectors , you can use the 3&amp;quot;5 connector before the edge card connector instead.&lt;br /&gt;
&lt;br /&gt;
=== Setting the READY signal ===&lt;br /&gt;
&lt;br /&gt;
Last thing you need to do is set the ready signal. This is done by connecting pin 33 and 34. Its the last 2 pins on the cable. Use a bend paperclip or a small wire to short the 2 pins like so (Marked in WHITE): &lt;br /&gt;
&lt;br /&gt;
[[Image:CableClose1.JPG|600px]]&lt;br /&gt;
&lt;br /&gt;
Thats it. Now u SHOULD have a fully working 3.5&amp;quot; B drive. &lt;br /&gt;
&lt;br /&gt;
1. Power on the floppy first. &lt;br /&gt;
&lt;br /&gt;
2. Then turn on the cpc.&lt;br /&gt;
&lt;br /&gt;
=== Errors at this point ===&lt;br /&gt;
&lt;br /&gt;
- You turn on the cpc but get a blank/rolling screen? '''Most likely the pc cable connector needs to be flipped over (pins are upside down)'''. &lt;br /&gt;
&lt;br /&gt;
Type &amp;quot;|B&amp;quot; to change to drive B in basic (where ø is the rsx char). A simple CAT will show if the disc/drive works.&lt;br /&gt;
&lt;br /&gt;
=== Other Errors at this point ===&lt;br /&gt;
&lt;br /&gt;
; Bad Command?&lt;br /&gt;
: Floppy drive detected by cpc but is not powered. Recheck your powersupply is connected and working. &lt;br /&gt;
; You turn on the cpc and both drives act-as-one .. and the floppy light is constantly on?&lt;br /&gt;
: Most likely you didnt short pin 33 &amp;amp;amp; 34&lt;br /&gt;
: .. is the paperclip/wire loose?&lt;br /&gt;
: .. or did you accidentally short pin 1 &amp;amp;amp; 2 instead? Try moving the paperclip to the other end of the connector. &lt;br /&gt;
; Read error on drive? Disc hasnt been formatted yet?&lt;br /&gt;
: Use software like Discology to quickly format drive B&lt;br /&gt;
: .. or to quicky copy a disc from A to B&lt;br /&gt;
: .. or make a test floppy on pc (see transfer bit later). &lt;br /&gt;
; Disc is write protected error?&lt;br /&gt;
: Make sure the write tab on the disc is down (move tab down on right side of disc).&lt;br /&gt;
&lt;br /&gt;
== Two heads (OPTIONAL) ==&lt;br /&gt;
&lt;br /&gt;
Ok, everything is working so far? Want to do some more advanced stuff like using 2 sides on your floppy? &lt;br /&gt;
&lt;br /&gt;
Easy enough .. right now your floppy is using head 1 (aka side 1).. if you also connect pin 31 and 32 it will change to side/head 2. Remove the short again to get back to side/head 1. &lt;br /&gt;
I must admit that i myself only use one side/head because i cant be bother with the switching sides/heads. But it might be worth it if you buy one of them fansy on/off switches from a electronics shop. &lt;br /&gt;
Pin 31&amp;amp;32 is marked in RED on picture.&lt;br /&gt;
&lt;br /&gt;
== Making floppy primary drive(OPTIONAL) ==&lt;br /&gt;
&lt;br /&gt;
Donno if you have ever tried running software straight from a B drive, but it usually sucks badly (software freeze up). Wouldnt it be nice to if you could turn drive B into drive A (and A into B)? Connect up pin 11 &amp;amp; 12 while the drive is on to do the drive switcheroo. Marked in BLUE (sixth pair of pins from top). &lt;br /&gt;
Make sure to remove the short after you have turned off the whole thing (or you will get a drives-act-as-one error on next bootup). So you will have to set the 11/12 pin each time you wanna do the drive switching .. This one however seems quite usefull .. off to the shop to get a switch  &lt;br /&gt;
&lt;br /&gt;
Another closeup of all 3 pairs of pins without doodlin: &lt;br /&gt;
&lt;br /&gt;
[[Image:SuperClose1.JPG|400px]]&lt;br /&gt;
&lt;br /&gt;
== And up and running ==&lt;br /&gt;
&lt;br /&gt;
[[Image:AllUpAndRunning1.JPG|400px]]&lt;br /&gt;
&lt;br /&gt;
Transfering software between CPC and PC: &lt;br /&gt;
&lt;br /&gt;
Yup, a pc can read and write those 3.5&amp;quot; Amstrad formatted floppies. There is a handfull of pc utilities that can read/write to the floppies. &lt;br /&gt;
&lt;br /&gt;
I suggest getting CPCDiskXP by Oscar Sanchez from http://www.cpcmania.com/ &lt;br /&gt;
&lt;br /&gt;
It reads a 1 side in about 100 seconds (with verify) .. and writing back 1 side takes about 25 second Runs in Windows XP/Vista using a nice lowlevel driver that you might recognise from Amiga- and Atari ST-discs reading pc tools. &lt;br /&gt;
Note that you can only use floppies from a INTERNAL floppy drive (a usb one wont work). &lt;br /&gt;
Seems to me that only the Amstrad is picky about if u use 1.44mb or 720kb floppies .. the pc has no such troubles, so ANY floppy drive may work on pc (from my experience). Also the tape-down-1.44-to-720-floppy-fix works on pc too. &lt;br /&gt;
&lt;br /&gt;
== Things that pop'ed into my head reading up on all this == &lt;br /&gt;
&lt;br /&gt;
Using a whole pc to power the floppy is getting annoing and uncompfy, so my brain has been thinking in overdrive to come up with a solution. &lt;br /&gt;
&lt;br /&gt;
1. use a normal external-IDE-HDD-USB-enclosure to power the drive .. All you need it the enclosure (with its powersupply) .. then fit a Y-split cable (a IDE-power to Floppy-power one). This is possible if u can find the Y-split cable: &lt;br /&gt;
&lt;br /&gt;
[[Image:Ycable1.JPG|400px]]&lt;br /&gt;
&lt;br /&gt;
2. use a usb-floppy drive .. dissassemble it and hook it up to pc or Wii or xbox 360 or pc or .. Donno if this is possible .. or if you need yet another type of Y-cable or other. Would look nice with one of them slimline usb-drives. &lt;br /&gt;
&lt;br /&gt;
3. Not a tech wizz at all, but all u need to power a floppy is 5V ?? or do you also need the 12V too? Anyways, a couple of batteries on row might do that easy-ish. &lt;br /&gt;
&lt;br /&gt;
== Worries and what not ==&lt;br /&gt;
&lt;br /&gt;
What if i hook something up wrong will my Amstrad break? Nah, dont think so, I mean I did EVERYTHING wrong at least twice and both 6128 &amp;amp;amp; 664 is still alive and running. Also I tried a LOT of things myself before with a FD1 cable and such. Still we are talking about electronics and all that, so do be carefull, and dont forget that everything should fit nicely .. no reason to force anything. OMG OMG my precius 20+ year old gem of a Amstrad just blew up in my face, will you takes full responsibility and buy me a new one? Eh?, sure i will .. not.&lt;br /&gt;
&lt;br /&gt;
== FAQ == &lt;br /&gt;
&lt;br /&gt;
Q: Can I use a FD1 cable to connect a 3.5&amp;quot; floppy drive? &lt;br /&gt;
&lt;br /&gt;
A: In theory yes, but its hard to set the ready signal. Connecting pin 33&amp;amp;34 is probably best done on the drive itself with a small piece of wire/metal. People who can solder will know how to fix the cable itself tho. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Q: Can i hook up a 3.5&amp;quot; to a cpc 464 like this? &lt;br /&gt;
&lt;br /&gt;
A: No. Hooking up a 3.5&amp;quot; isnt possible without some serious soldering and you also need that DDI interface. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Q: Can i use a 3.5&amp;quot; on a 6128+ ? &lt;br /&gt;
&lt;br /&gt;
A: Sure you can, but u need to make a cable that fits the the Centronics connector and since the pins is a bit upside down with the 6128+ its a bit more on the technical side. Look here for more: &lt;br /&gt;
&lt;br /&gt;
http://www.pcwking1.netfirms.com/helpage34.html &lt;br /&gt;
http://genesis8.free.fr/amstrad/faq/ &lt;br /&gt;
http://www.zettweb.com/semiconductors/h ... drive.html &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Q: I got one of those german Schneider 6128 with Centronics connector? &lt;br /&gt;
&lt;br /&gt;
A: Sure, but just like 6128+ its a bit more technical and need a special interface/cable made.&lt;br /&gt;
&lt;br /&gt;
Look here:&lt;br /&gt;
&lt;br /&gt;
http://www.amstrad-cpc.de/ &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Q: The floppy drive isnt registered at all .. not even getting errors? &lt;br /&gt;
&lt;br /&gt;
A: Try cleaning the connector on the Amstrad. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Q: Can I use those odd format discs on the 3.5&amp;quot; ? &lt;br /&gt;
&lt;br /&gt;
A: 41 track &amp;amp; other Amstrad formats works fine. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Q: Can i use the fully 720kb on the floppy? &lt;br /&gt;
&lt;br /&gt;
A: You need a special rom like Parados to replace Amsdos to do that. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Q: Can i use a 3.5&amp;quot; floppy drive internally in my 6128/664? &lt;br /&gt;
&lt;br /&gt;
A: Well, sure but u need to make another special cable bacause the real internal cable is a lot smaller than the usual pc floppy cable. Also you will need a power converter cable if u want to power the floppy from the inside. If you do use it internally you wont have to set the &amp;quot;primary&amp;quot; pin 11 &amp;amp; 12 as it is already primary. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Thanks goes to == &lt;br /&gt;
&lt;br /&gt;
- [[Executioner]], [[UKmarkh]], [[JMD]], [[Wanderer]], [[Zeropolis79]], [[Gryzor]] and [[Ptr]] for great help and contributions to the guide. &lt;br /&gt;
&lt;br /&gt;
- Everybody in the [http://cpczone.net Cpczone.net] forums for putting up with my rantings &lt;br /&gt;
&lt;br /&gt;
- Anyone online who i stole info from&lt;br /&gt;
&lt;br /&gt;
== Sorry About ==&lt;br /&gt;
&lt;br /&gt;
I may have made a few assumtions .. especially about the floppy compatability based on from my own experiences and such. If im wrong let me know  &lt;br /&gt;
&lt;br /&gt;
My eeiiieenglish isnt the most fluid and correct spelled and all that, but is readable I hope. &lt;br /&gt;
&lt;br /&gt;
== Links about 3.5&amp;quot; floppy drive hookup ==&lt;br /&gt;
[[Guide on how to connect a 3.5]] Another local guide&lt;br /&gt;
&lt;br /&gt;
[[Modify PC floppy drives]] How to force certain PC drives to produce RDY signal (used for CPC)&lt;br /&gt;
&lt;br /&gt;
http://www.cpcmania.com/ (Spanish &amp;amp; English) &lt;br /&gt;
&lt;br /&gt;
http://www.phenixinformatique.com/secti ... e&amp;amp;artid=67 (French) &lt;br /&gt;
&lt;br /&gt;
http://www.amstradtoday.com/elements/upgrade/upgrade.htm#nodisk (French) &lt;br /&gt;
&lt;br /&gt;
http://www.terra.es/personal/diegovp/ (Spanish) &lt;br /&gt;
&lt;br /&gt;
http://usuarios.lycos.es/putusoft/emucpc/softwaree.htm (Spanish)&lt;br /&gt;
&lt;br /&gt;
== Great sources about anything CPC (including 3.5&amp;quot; connecting) ==&lt;br /&gt;
&lt;br /&gt;
http://genesis8.free.fr/amstrad/faq/index.php or &lt;br /&gt;
&lt;br /&gt;
http://www.faqs.org/faqs/amstrad8bit-faq/ (English/French/Dutch/German/Spanish) &lt;br /&gt;
&lt;br /&gt;
http://www.amstrad-cpc.de/ (German)&lt;br /&gt;
&lt;br /&gt;
== Tools to read CPC floppies on pc ==&lt;br /&gt;
&lt;br /&gt;
CPCDiskXP: http://www.cpcmania.com/&lt;br /&gt;
 &lt;br /&gt;
ManageDsk: http://amstrad.cpc.free.fr/download.php ... es&amp;amp;sortby= &lt;br /&gt;
&lt;br /&gt;
22DISK: http://www.znode51.de/specials/22disk/ &lt;br /&gt;
&lt;br /&gt;
ReadDSK/WriteDSK: http://www.julien-nevo.com/arkos/tools.html &lt;br /&gt;
&lt;br /&gt;
[[Dsktools]] &amp;quot;dsktools is a set of tools for reading and writing DSK and EDSK images to real floppy disks for use with theAmstrad/Schneider CPC range of home computers. The main target platform for dsktools is GNU/Linux.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
CDPRead/CDPWrite: http://www.caprice32.cybercube.com/downloads.php &lt;br /&gt;
&lt;br /&gt;
'''Cholo'''&lt;br /&gt;
&lt;br /&gt;
 [[Category:DIY]][[Category:DATA Storage]]&lt;/div&gt;</summary>
		<author><name>FindYWay</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=CPCGamesCD-CPCLoader&amp;diff=88499</id>
		<title>CPCGamesCD-CPCLoader</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=CPCGamesCD-CPCLoader&amp;diff=88499"/>
				<updated>2013-11-05T13:51:55Z</updated>
		
		<summary type="html">&lt;p&gt;FindYWay: Fix markup&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''CPC Loader''' is not an emulator exactly. '''CPCGamesCD''' is the main objective of CPC Loader: a CDROM containing a navigable database with all the games of the Amstrad/Schneider CPC, similar to MameUI, including screenshots of the games and information about publisher, year and type of game (sports, action,...).&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But '''CPC Loader''' is not only a frontend. It includes tools for extracting and creating dsk images and creating new games collections. WinApe, JavaCPC, CPCE and the internal emulators (Caprice32 v4 and Arnold 2002) support the autotype feature: if you want to play a game just select and enter it in the Explore window and it will run automatically. This removes the need to type ''run&amp;quot;gamename.bas&amp;quot;'' etc.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''CPC Loader''' is developed by Troels K and '''CPCGamesCD''' and its screenshots are compiled by MiguelSky. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Last '''CPCGamesCD''' update: 08/07/2013:&lt;br /&gt;
*Includes frontend, new CPC Loader 2.8 by Troels K&lt;br /&gt;
*Amstrad PCW is now supported (137 games)&lt;br /&gt;
*Includes NVG games update 30.06.2013&lt;br /&gt;
*Includes NVG maps update 30.06.2013 and more&lt;br /&gt;
*Includes Snap-Pack by MiguelSky (3846 images)&lt;br /&gt;
*Added version 1.94 of CPCE emulator&lt;br /&gt;
*Added version 2.0a of JavaCPC Desktop emulator&lt;br /&gt;
*Added version 2.0a18 of WinAPE emulator&lt;br /&gt;
*Added version 1.6.2 of PCW emulator&lt;br /&gt;
&lt;br /&gt;
== Web Links  ==&lt;br /&gt;
&lt;br /&gt;
*[http://cpcgamescd.amstrad.es CPCGamesCD homepage] &lt;br /&gt;
*CPCGamesCD mirror at [http://www.cpcwiki.eu/forum/index.php?action=dldir;sa=details;lid=3900 CPCWiki forum]&lt;br /&gt;
*[http://cpcgamescd.amstrad.es/cover.zip CPCGamesCD cover] &lt;br /&gt;
*[http://cpcloader.trak.dk CPC Loader homepage] &lt;br /&gt;
*[http://cpcloader.trak.dk/changelog.txt CPC Loader change log]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Emulation_Tools]]&lt;/div&gt;</summary>
		<author><name>FindYWay</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=Amstrad_MP1/MP2_modulator&amp;diff=88493</id>
		<title>Amstrad MP1/MP2 modulator</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=Amstrad_MP1/MP2_modulator&amp;diff=88493"/>
				<updated>2013-11-03T17:13:01Z</updated>
		
		<summary type="html">&lt;p&gt;FindYWay: /* Pictures */ Added pictures of the inside of an Amstrad MP1 French version with SCART connector.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A TV-modulator and power supply by [[Amstrad]] for the [[CPC_old_generation|classic CPC-computers]]&lt;br /&gt;
&lt;br /&gt;
As the Amstrad CPCs always came together with a monitor, normally there was no need for a TV modulator inside the CPC as seen on other home computers (Sinclair Spectrum, Commodore C64/C128 and so on).&lt;br /&gt;
As the power supply was included inside the monitor, there wasn't an external power supply either.&lt;br /&gt;
&lt;br /&gt;
If you bought an Amstrad CPC together with one of the [[Amstrad GT64/GT65 Green Monitor]]s however, you might have wanted the ability to play games on the colour TV-set later, so Amstrad also made the MP-1/MP-2 devices.&lt;br /&gt;
They provided the power needed by the CPCs, so that you didn't have to carry the monitor around just to have power, and a TV-modulator which modulated the monitor signal in a way that it could be seen on a regular TV-set.&lt;br /&gt;
&lt;br /&gt;
Having an MP-1/MP-2 today is more or less just a gimmick, as a self-made [[TV SCART cable]] gives better picture quality (SCART connectors weren't common back in the 80s) and the power can be taken from a PC AT or even ATX power supply as well.&lt;br /&gt;
&lt;br /&gt;
The difference between the MP-1 and MP-2 models is just the additional 12V power supply for the CPC664/CPC6128's disk drive in the later model.&lt;br /&gt;
&lt;br /&gt;
== Technical Specs. ==&lt;br /&gt;
&lt;br /&gt;
* Supply In: ~220V/50Hz, 12W&lt;br /&gt;
* Supply Out: +5V (both MP1 and MP2), +12V (MP2 only)&lt;br /&gt;
* Video In: RGB, Sync (6pin DIN)&lt;br /&gt;
* Video Out: '''Unknown, probably UHF 37 or so (?)''' (2pin)&lt;br /&gt;
&lt;br /&gt;
Note: There has been also french versions with Scart RGB output, of the MP1 (no 12V) and MP2 (with 12V), see [[MP2F]]. As well as a spanish version, the [[Amstrad MPV 001 modulator|MPV 001]] (with '''unknown''' output).&lt;br /&gt;
&lt;br /&gt;
== Pictures ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery caption=&amp;quot;MP1&amp;quot;&amp;gt;&lt;br /&gt;
Image:Amstrad mp-1.jpg|&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery caption=&amp;quot;MP1 French version with SCART connector&amp;quot;&amp;gt;&lt;br /&gt;
Image:Amstrad_MP1_French_SCART.jpg|&lt;br /&gt;
Image:Amstrad_MP1_French_SCART_connectors.jpg|&lt;br /&gt;
Image:Amstrad_MP1_French_SCART_inside.jpg|&lt;br /&gt;
Image:Amstrad_MP1_French_SCART_inside_rgb_passthrough.jpg|&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery caption=&amp;quot;MP2&amp;quot;&amp;gt;&lt;br /&gt;
Image:mp2 1.JPG|&lt;br /&gt;
Image:mp2 2.JPG|&lt;br /&gt;
Image:mp2 3.JPG|&lt;br /&gt;
Image:mp2 4.JPG|&lt;br /&gt;
Image:Amstrad mp-2.jpg|&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
&lt;br /&gt;
== Manual ==&lt;br /&gt;
&lt;br /&gt;
The procedure of setting up the CPC with the MP-1/MP-2 modulators is described in the CPC's user manual.&lt;br /&gt;
&lt;br /&gt;
[[Category:Peripherals]][[Category:CPC Internal Components]][[Category:Amstrad Products]][[Category:Graphic]]&lt;/div&gt;</summary>
		<author><name>FindYWay</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=File:Amstrad_MP1_French_SCART_inside_rgb_passthrough.jpg&amp;diff=88492</id>
		<title>File:Amstrad MP1 French SCART inside rgb passthrough.jpg</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=File:Amstrad_MP1_French_SCART_inside_rgb_passthrough.jpg&amp;diff=88492"/>
				<updated>2013-11-03T17:10:22Z</updated>
		
		<summary type="html">&lt;p&gt;FindYWay: MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MsUpload&lt;/div&gt;</summary>
		<author><name>FindYWay</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=File:Amstrad_MP1_French_SCART_inside.jpg&amp;diff=88491</id>
		<title>File:Amstrad MP1 French SCART inside.jpg</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=File:Amstrad_MP1_French_SCART_inside.jpg&amp;diff=88491"/>
				<updated>2013-11-03T17:09:32Z</updated>
		
		<summary type="html">&lt;p&gt;FindYWay: MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MsUpload&lt;/div&gt;</summary>
		<author><name>FindYWay</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=File:Amstrad_MP1_French_SCART_connectors.jpg&amp;diff=88304</id>
		<title>File:Amstrad MP1 French SCART connectors.jpg</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=File:Amstrad_MP1_French_SCART_connectors.jpg&amp;diff=88304"/>
				<updated>2013-10-23T20:11:01Z</updated>
		
		<summary type="html">&lt;p&gt;FindYWay: Fix markup&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Closeup of the connectors of the Amstrad MP1 French version.From left to right : &lt;br /&gt;
&lt;br /&gt;
* Mains power (220-240V AC).&lt;br /&gt;
&lt;br /&gt;
* SCART output (called Péritélévision in French). You can see that not all pins are physically present.&lt;br /&gt;
&lt;br /&gt;
* RGB input from CPC.&lt;br /&gt;
&lt;br /&gt;
* Power supply to CPC.&lt;/div&gt;</summary>
		<author><name>FindYWay</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=File:Amstrad_MP1_French_SCART_connectors.jpg&amp;diff=88303</id>
		<title>File:Amstrad MP1 French SCART connectors.jpg</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=File:Amstrad_MP1_French_SCART_connectors.jpg&amp;diff=88303"/>
				<updated>2013-10-23T20:10:26Z</updated>
		
		<summary type="html">&lt;p&gt;FindYWay: FindYWay uploaded a new version of &amp;amp;quot;File:Amstrad MP1 French SCART connectors.jpg&amp;amp;quot;: Adjusted brightness.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Closeup of the connectors of the Amstrad MP1 French version.From left to right : * Mains power (220-240V AC).&lt;br /&gt;
&lt;br /&gt;
* SCART output (called Péritélévision in French). You can see that not all pins are physically present.&lt;br /&gt;
&lt;br /&gt;
* RGB input from CPC.&lt;br /&gt;
&lt;br /&gt;
* Power supply to CPC.&lt;/div&gt;</summary>
		<author><name>FindYWay</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=File:Amstrad_MP1_French_SCART_connectors.jpg&amp;diff=88302</id>
		<title>File:Amstrad MP1 French SCART connectors.jpg</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=File:Amstrad_MP1_French_SCART_connectors.jpg&amp;diff=88302"/>
				<updated>2013-10-23T20:07:35Z</updated>
		
		<summary type="html">&lt;p&gt;FindYWay: Describe image with connectors.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Closeup of the connectors of the Amstrad MP1 French version.From left to right : * Mains power (220-240V AC).&lt;br /&gt;
&lt;br /&gt;
* SCART output (called Péritélévision in French). You can see that not all pins are physically present.&lt;br /&gt;
&lt;br /&gt;
* RGB input from CPC.&lt;br /&gt;
&lt;br /&gt;
* Power supply to CPC.&lt;/div&gt;</summary>
		<author><name>FindYWay</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=File:Amstrad_MP1_French_SCART.jpg&amp;diff=88301</id>
		<title>File:Amstrad MP1 French SCART.jpg</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=File:Amstrad_MP1_French_SCART.jpg&amp;diff=88301"/>
				<updated>2013-10-23T20:05:19Z</updated>
		
		<summary type="html">&lt;p&gt;FindYWay: FindYWay uploaded a new version of &amp;amp;quot;File:Amstrad MP1 French SCART.jpg&amp;amp;quot;: Adjusted brightness.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Amstrad MP-1 French version with Scart connector.&lt;br /&gt;
&lt;br /&gt;
Instead of VHF modulation it outputs RGB to the scart.&lt;br /&gt;
&lt;br /&gt;
It did not have a power switch, therefore the white switch visible on the picture was added.&lt;/div&gt;</summary>
		<author><name>FindYWay</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=Amstrad_MP1/MP2_modulator&amp;diff=88300</id>
		<title>Amstrad MP1/MP2 modulator</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=Amstrad_MP1/MP2_modulator&amp;diff=88300"/>
				<updated>2013-10-23T20:03:28Z</updated>
		
		<summary type="html">&lt;p&gt;FindYWay: /* Pictures */ Added Amstrad_MP1_French_SCART_connectors.jpg&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A TV-modulator and power supply by [[Amstrad]] for the [[CPC_old_generation|classic CPC-computers]]&lt;br /&gt;
&lt;br /&gt;
As the Amstrad CPCs always came together with a monitor, normally there was no need for a TV modulator inside the CPC as seen on other home computers (Sinclair Spectrum, Commodore C64/C128 and so on).&lt;br /&gt;
As the power supply was included inside the monitor, there wasn't an external power supply either.&lt;br /&gt;
&lt;br /&gt;
If you bought an Amstrad CPC together with one of the [[Amstrad GT64/GT65 Green Monitor]]s however, you might have wanted the ability to play games on the colour TV-set later, so Amstrad also made the MP-1/MP-2 devices.&lt;br /&gt;
They provided the power needed by the CPCs, so that you didn't have to carry the monitor around just to have power, and a TV-modulator which modulated the monitor signal in a way that it could be seen on a regular TV-set.&lt;br /&gt;
&lt;br /&gt;
Having an MP-1/MP-2 today is more or less just a gimmick, as a self-made [[TV SCART cable]] gives better picture quality (SCART connectors weren't common back in the 80s) and the power can be taken from a PC AT or even ATX power supply as well.&lt;br /&gt;
&lt;br /&gt;
The difference between the MP-1 and MP-2 models is just the additional 12V power supply for the CPC664/CPC6128's disk drive in the later model.&lt;br /&gt;
&lt;br /&gt;
== Technical Specs. ==&lt;br /&gt;
&lt;br /&gt;
* Supply In: ~220V/50Hz, 12W&lt;br /&gt;
* Supply Out: +5V (both MP1 and MP2), +12V (MP2 only)&lt;br /&gt;
* Video In: RGB, Sync (6pin DIN)&lt;br /&gt;
* Video Out: '''Unknown, probably UHF 37 or so (?)''' (2pin)&lt;br /&gt;
&lt;br /&gt;
Note: There has been also french versions with Scart RGB output, of the MP1 (no 12V) and MP2 (with 12V), see [[MP2F]]. As well as a spanish version, the [[Amstrad MPV 001 modulator|MPV 001]] (with '''unknown''' output).&lt;br /&gt;
&lt;br /&gt;
== Pictures ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery caption=&amp;quot;MP1&amp;quot;&amp;gt;&lt;br /&gt;
Image:Amstrad mp-1.jpg|&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery caption=&amp;quot;MP1 French version with SCART connector&amp;quot;&amp;gt;&lt;br /&gt;
Image:Amstrad_MP1_French_SCART.jpg|&lt;br /&gt;
Image:Amstrad_MP1_French_SCART_connectors.jpg|&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery caption=&amp;quot;MP2&amp;quot;&amp;gt;&lt;br /&gt;
Image:mp2 1.JPG|&lt;br /&gt;
Image:mp2 2.JPG|&lt;br /&gt;
Image:mp2 3.JPG|&lt;br /&gt;
Image:mp2 4.JPG|&lt;br /&gt;
Image:Amstrad mp-2.jpg|&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
&lt;br /&gt;
== Manual ==&lt;br /&gt;
&lt;br /&gt;
The procedure of setting up the CPC with the MP-1/MP-2 modulators is described in the CPC's user manual.&lt;br /&gt;
&lt;br /&gt;
[[Category:Peripherals]][[Category:CPC Internal Components]][[Category:Amstrad Products]][[Category:Graphic]]&lt;/div&gt;</summary>
		<author><name>FindYWay</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=File:Amstrad_MP1_French_SCART_connectors.jpg&amp;diff=88299</id>
		<title>File:Amstrad MP1 French SCART connectors.jpg</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=File:Amstrad_MP1_French_SCART_connectors.jpg&amp;diff=88299"/>
				<updated>2013-10-23T20:02:59Z</updated>
		
		<summary type="html">&lt;p&gt;FindYWay: MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MsUpload&lt;/div&gt;</summary>
		<author><name>FindYWay</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=File:Amstrad_MP1_French_SCART.jpg&amp;diff=88298</id>
		<title>File:Amstrad MP1 French SCART.jpg</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=File:Amstrad_MP1_French_SCART.jpg&amp;diff=88298"/>
				<updated>2013-10-23T19:51:41Z</updated>
		
		<summary type="html">&lt;p&gt;FindYWay: Describe image. White power switch was added.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Amstrad MP-1 French version with Scart connector.&lt;br /&gt;
&lt;br /&gt;
Instead of VHF modulation it outputs RGB to the scart.&lt;br /&gt;
&lt;br /&gt;
It did not have a power switch, therefore the white switch visible on the picture was added.&lt;/div&gt;</summary>
		<author><name>FindYWay</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=Amstrad_MP1/MP2_modulator&amp;diff=88297</id>
		<title>Amstrad MP1/MP2 modulator</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=Amstrad_MP1/MP2_modulator&amp;diff=88297"/>
				<updated>2013-10-23T19:48:19Z</updated>
		
		<summary type="html">&lt;p&gt;FindYWay: /* Pictures */ MP1 French version with SCART connector&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A TV-modulator and power supply by [[Amstrad]] for the [[CPC_old_generation|classic CPC-computers]]&lt;br /&gt;
&lt;br /&gt;
As the Amstrad CPCs always came together with a monitor, normally there was no need for a TV modulator inside the CPC as seen on other home computers (Sinclair Spectrum, Commodore C64/C128 and so on).&lt;br /&gt;
As the power supply was included inside the monitor, there wasn't an external power supply either.&lt;br /&gt;
&lt;br /&gt;
If you bought an Amstrad CPC together with one of the [[Amstrad GT64/GT65 Green Monitor]]s however, you might have wanted the ability to play games on the colour TV-set later, so Amstrad also made the MP-1/MP-2 devices.&lt;br /&gt;
They provided the power needed by the CPCs, so that you didn't have to carry the monitor around just to have power, and a TV-modulator which modulated the monitor signal in a way that it could be seen on a regular TV-set.&lt;br /&gt;
&lt;br /&gt;
Having an MP-1/MP-2 today is more or less just a gimmick, as a self-made [[TV SCART cable]] gives better picture quality (SCART connectors weren't common back in the 80s) and the power can be taken from a PC AT or even ATX power supply as well.&lt;br /&gt;
&lt;br /&gt;
The difference between the MP-1 and MP-2 models is just the additional 12V power supply for the CPC664/CPC6128's disk drive in the later model.&lt;br /&gt;
&lt;br /&gt;
== Technical Specs. ==&lt;br /&gt;
&lt;br /&gt;
* Supply In: ~220V/50Hz, 12W&lt;br /&gt;
* Supply Out: +5V (both MP1 and MP2), +12V (MP2 only)&lt;br /&gt;
* Video In: RGB, Sync (6pin DIN)&lt;br /&gt;
* Video Out: '''Unknown, probably UHF 37 or so (?)''' (2pin)&lt;br /&gt;
&lt;br /&gt;
Note: There has been also french versions with Scart RGB output, of the MP1 (no 12V) and MP2 (with 12V), see [[MP2F]]. As well as a spanish version, the [[Amstrad MPV 001 modulator|MPV 001]] (with '''unknown''' output).&lt;br /&gt;
&lt;br /&gt;
== Pictures ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery caption=&amp;quot;MP1&amp;quot;&amp;gt;&lt;br /&gt;
Image:Amstrad mp-1.jpg|&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery caption=&amp;quot;MP1 French version with SCART connector&amp;quot;&amp;gt;&lt;br /&gt;
Image:Amstrad_MP1_French_SCART.jpg|&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery caption=&amp;quot;MP2&amp;quot;&amp;gt;&lt;br /&gt;
Image:mp2 1.JPG|&lt;br /&gt;
Image:mp2 2.JPG|&lt;br /&gt;
Image:mp2 3.JPG|&lt;br /&gt;
Image:mp2 4.JPG|&lt;br /&gt;
Image:Amstrad mp-2.jpg|&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
&lt;br /&gt;
== Manual ==&lt;br /&gt;
&lt;br /&gt;
The procedure of setting up the CPC with the MP-1/MP-2 modulators is described in the CPC's user manual.&lt;br /&gt;
&lt;br /&gt;
[[Category:Peripherals]][[Category:CPC Internal Components]][[Category:Amstrad Products]][[Category:Graphic]]&lt;/div&gt;</summary>
		<author><name>FindYWay</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=File:Amstrad_MP1_French_SCART.jpg&amp;diff=88296</id>
		<title>File:Amstrad MP1 French SCART.jpg</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=File:Amstrad_MP1_French_SCART.jpg&amp;diff=88296"/>
				<updated>2013-10-23T19:46:54Z</updated>
		
		<summary type="html">&lt;p&gt;FindYWay: MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MsUpload&lt;/div&gt;</summary>
		<author><name>FindYWay</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=Guide_on_how_to_connect_a_3.5%22_drive_to_a_CPC6128/664&amp;diff=88278</id>
		<title>Guide on how to connect a 3.5&quot; drive to a CPC6128/664</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=Guide_on_how_to_connect_a_3.5%22_drive_to_a_CPC6128/664&amp;diff=88278"/>
				<updated>2013-10-22T20:57:10Z</updated>
		
		<summary type="html">&lt;p&gt;FindYWay: /* Tools to read CPC floppies on pc */ Add dsktools with summary.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Guide to hook up a 3.5&amp;quot; pc drive to your Amstrad CPC 6128 or 664 (For non-techy people like me).'''&amp;lt;br&amp;gt; You can also check out another guide [[Guide on how to connect a 3.5 | here]]&lt;br /&gt;
&lt;br /&gt;
This guide is for people who own 6128/664 cpc's that has the 34 pin EDGE connector type interfaces. I know that people in the UK and DK has the Edge connectors.&lt;br /&gt;
&lt;br /&gt;
People in Germany use the CENTRONICS type connectors also some of the cpc PLUS range use Centronics. Centronics users need a different kind of cable. &lt;br /&gt;
&lt;br /&gt;
== What you need (minimum requirements)==&lt;br /&gt;
&lt;br /&gt;
- a pc 3.5&amp;quot; floppy drive &lt;br /&gt;
- a old style pc floppy cable &lt;br /&gt;
- a paperclip or a small piece of wire &lt;br /&gt;
- a powersource for the drive &lt;br /&gt;
- a 3.5&amp;quot; floppy disc &lt;br /&gt;
&lt;br /&gt;
Suggest u also get: &lt;br /&gt;
&lt;br /&gt;
- pins &amp;amp; jumpers or maybe some real switches. &lt;br /&gt;
- tape &lt;br /&gt;
&lt;br /&gt;
== The Cable ==&lt;br /&gt;
&lt;br /&gt;
By some amazing luck the 6128/664 use the exact same floppy-connector as a old 5.25&amp;quot; pc floppy drive. So all you need to connect up is a old style pc floppy cable that has both the old style 5.25&amp;quot; large edge connector and new style 3.5&amp;quot; small pc floppy connector. &lt;br /&gt;
Hardest part is probably to get one of these cables as they havnt really been used in years. If you have a 486 pc or older, try peeking inside to see if it has one of these cables, then you can easily borrow and replace it with a new style cable. &lt;br /&gt;
&lt;br /&gt;
Looks like so: &lt;br /&gt;
&lt;br /&gt;
[[Image:BelkinFloppy1.JPG|400px]]&lt;br /&gt;
 &lt;br /&gt;
But let give you a hand. BELKIN still sells this cable, I got mine locally but this one looks like its the one:&lt;br /&gt;
&lt;br /&gt;
http://www.amazon.co.uk/Belkin-Universa ... 36&amp;amp;sr=8-16&lt;br /&gt;
&lt;br /&gt;
This is the 5 connector one, but a 3 connector one may also work if it has the right &lt;br /&gt;
kind/amount of connectors. &lt;br /&gt;
&lt;br /&gt;
== The pc 3.5&amp;quot; Floppy drive ==&lt;br /&gt;
&lt;br /&gt;
So far all the 3.5&amp;quot; drives ive tested all worked. The question is if you want a drive that is both compatible with 720kb floppies AND 1.44mb floppies. &lt;br /&gt;
All drives SEEM to work flawlessly with 720kb floppies .. but for some reason .. you get a LOT of read errors with SOME drives when you insert a 1.44mb floppy? &lt;br /&gt;
&lt;br /&gt;
Quick fix: Use 720kb floppies only. 720kb floppies are hard to get, so just make some yourself from 1.44 floppies. Tape over the little &amp;quot;High Density&amp;quot; hole in the top left (both sides). That way the drive will think the floppy is 720kb only and act accordingly. Works Great. &lt;br /&gt;
&lt;br /&gt;
[[Image:Floppies1.JPG|600px]]&lt;br /&gt;
&lt;br /&gt;
=== Slow fix ===&lt;br /&gt;
&lt;br /&gt;
find a drive that works with both size of floppies. &lt;br /&gt;
I say: a old TEAC FD-235HF drive works with both size floppies. &lt;br /&gt;
Hearsay from other sites: Alps &amp;amp; Mitsumi drives MAY work fully. &lt;br /&gt;
One way or the other i use the tape mod on all my 1.44mb floppies because it makes them compatible with all the drives i have. &lt;br /&gt;
&lt;br /&gt;
=== Paperclip &amp;amp; more ===&lt;br /&gt;
&lt;br /&gt;
All you really need is one piece of paperclip (the metal kind) to be able to make a single short on the floppy cable, but it would probably be better to get some proper pins and jumpers or some real small wires. Also if you wanna do some really fansy stuff, you might wanna get at least 3 paperclips/wires/pins/jumpers. (se later) &lt;br /&gt;
Motherboard pins are usually sold in long rows where you can break of smaller parts, like a set of 2 pins, then use normal pc jumpers on em to quickly set on/off. &lt;br /&gt;
&lt;br /&gt;
[[Image:PinsJumpers1.JPG|400px]]&lt;br /&gt;
&lt;br /&gt;
== Powersource == &lt;br /&gt;
&lt;br /&gt;
You need to power the 3.5&amp;quot; floppy drive somehow. A normal pc powersupply will do this quite nicely but there are &amp;quot;complications&amp;quot;. A modern powersupply dosnt turn fully on unless it detects a motherboard is present. &lt;br /&gt;
There is 3 possible solutions to this problem:&lt;br /&gt;
&lt;br /&gt;
1. drag a whole pc up next to your amstrad so u can power the floppy that way. &lt;br /&gt;
&lt;br /&gt;
2. use another way to power the floppy. &lt;br /&gt;
&lt;br /&gt;
3. cheat a modern pc powersupply to think a motherboard is present. Fooling a modern powersupply isnt really that hard .. all &lt;br /&gt;
u need is to connect the GREEN wire (ready signal) with one of the BLACK wires (ground). This works with both the 20 pin powersupplys and the newer 24 pin ones. Here is a shot of my 20 pin one: &lt;br /&gt;
&lt;br /&gt;
[[Image:Psu20pin1.JPG|400px]]&lt;br /&gt;
&lt;br /&gt;
Connected the green pin 14 wire with the black pin 13 wire. Note that i used pin 13 just because it was right next to pin 14 .. but any other black wire will work just as well. &lt;br /&gt;
The newer 24 pin powersupply can be fixed just like that, but note that the green wire is pin 16 on the 24 pin one. So a possible setup on the 24 pin setup could be green pin 16 connected with black pin 15.&lt;br /&gt;
&lt;br /&gt;
=== More about powersupply pin layout here ===&lt;br /&gt;
&lt;br /&gt;
20pin: http://www.hardwarebook.info/ATX_Power_Supply &lt;br /&gt;
24pin: http://www.hardwarebook.info/ATX_v2.2_Power_Supply &lt;br /&gt;
&lt;br /&gt;
Note that VERY old powersupplies USED to turn on fully by themselves, so if u have a REALLY old pc u can see if it works. &lt;br /&gt;
&lt;br /&gt;
=== Setting it all up ===&lt;br /&gt;
&lt;br /&gt;
All u do is basicly the same as if you would hook up a FD1 drive to a cpc 6128. No soldering or disassembly required. Just hook up the cable to the DRIVE connetor on the Amstrad and the Floppy drive to the next edge connector on the cable. &lt;br /&gt;
Pretty hard to get it wrong as the edge connector only fits one way and usually the same is said the floppy connector. BUT .. there IS a few floppy drives that have the pins upside down, so u might need to twist the cable around once .. most likely not tho. &lt;br /&gt;
&lt;br /&gt;
[[Image:CableOn1.JPG|600px]]&lt;br /&gt;
&lt;br /&gt;
Note that this type of pc cable usually has some internally twisted cables .. make sure the CPC/PC does NOT have the twisted bit between them.&lt;br /&gt;
&lt;br /&gt;
[[Image:IMGP1639 50%.jpg|600px]]&lt;br /&gt;
&lt;br /&gt;
You can process the same way with only 1 drive 3&amp;quot;5 and 5&amp;quot;1/4 connectors , you can use the 3&amp;quot;5 connector before the edge card connector instead.&lt;br /&gt;
&lt;br /&gt;
=== Setting the READY signal ===&lt;br /&gt;
&lt;br /&gt;
Last thing you need to do is set the ready signal. This is done by connecting pin 33 and 34. Its the last 2 pins on the cable. Use a bend paperclip or a small wire to short the 2 pins like so (Marked in WHITE): &lt;br /&gt;
&lt;br /&gt;
[[Image:CableClose1.JPG|600px]]&lt;br /&gt;
&lt;br /&gt;
Thats it. Now u SHOULD have a fully working 3.5&amp;quot; B drive. &lt;br /&gt;
&lt;br /&gt;
1. Power on the floppy first. &lt;br /&gt;
&lt;br /&gt;
2. Then turn on the cpc.&lt;br /&gt;
&lt;br /&gt;
=== Errors at this point ===&lt;br /&gt;
&lt;br /&gt;
- You turn on the cpc but get a blank/rolling screen? '''Most likely the pc cable connector needs to be flipped over (pins are upside down)'''. &lt;br /&gt;
&lt;br /&gt;
Type &amp;quot;|B&amp;quot; to change to drive B in basic (where ø is the rsx char). A simple CAT will show if the disc/drive works.&lt;br /&gt;
&lt;br /&gt;
=== Other Errors at this point ===&lt;br /&gt;
&lt;br /&gt;
- Bad Command? Floppy drive detected by cpc but is not powered. Recheck your powersupply is connected and working. - You turn on the cpc and both drives act-as-one .. and the floppy light is constantly on? Most likely you didnt short pin 33 &amp;amp;amp; 34 .. is the paperclip/wire loose? .. or did you accidentally short pin 1 &amp;amp;amp; 2 instead? Try moving the paperclip to the other end of the connector. - Read error on drive? Disc hasnt been formatted yet? Use software like Discology to quickly format drive B .. or to quicky copy a disc from A to B .. or make a test floppy on pc (see transfer bit later). - Disc is write protected error? Make sure the write tab on the disc is down (move tab down on right side of disc).&lt;br /&gt;
&lt;br /&gt;
== Two heads (OPTIONAL) ==&lt;br /&gt;
&lt;br /&gt;
Ok, everything is working so far? Want to do some more advanced stuff like using 2 sides on your floppy? &lt;br /&gt;
&lt;br /&gt;
Easy enough .. right now your floppy is using head 1 (aka side 1).. if you also connect pin 31 and 32 it will change to side/head 2. Remove the short again to get back to side/head 1. &lt;br /&gt;
I must admit that i myself only use one side/head because i cant be bother with the switching sides/heads. But it might be worth it if you buy one of them fansy on/off switches from a electronics shop. &lt;br /&gt;
Pin 31&amp;amp;32 is marked in RED on picture.&lt;br /&gt;
&lt;br /&gt;
== Making floppy primary drive(OPTIONAL) ==&lt;br /&gt;
&lt;br /&gt;
Donno if you have ever tried running software straight from a B drive, but it usually sucks badly (software freeze up). Wouldnt it be nice to if you could turn drive B into drive A (and A into B)? Connect up pin 11 &amp;amp; 12 while the drive is on to do the drive switcheroo. Marked in BLUE (sixth pair of pins from top). &lt;br /&gt;
Make sure to remove the short after you have turned off the whole thing (or you will get a drives-act-as-one error on next bootup). So you will have to set the 11/12 pin each time you wanna do the drive switching .. This one however seems quite usefull .. off to the shop to get a switch  &lt;br /&gt;
&lt;br /&gt;
Another closeup of all 3 pairs of pins without doodlin: &lt;br /&gt;
&lt;br /&gt;
[[Image:SuperClose1.JPG|400px]]&lt;br /&gt;
&lt;br /&gt;
== And up and running ==&lt;br /&gt;
&lt;br /&gt;
[[Image:AllUpAndRunning1.JPG|400px]]&lt;br /&gt;
&lt;br /&gt;
Transfering software between CPC and PC: &lt;br /&gt;
&lt;br /&gt;
Yup, a pc can read and write those 3.5&amp;quot; Amstrad formatted floppies. There is a handfull of pc utilities that can read/write to the floppies. &lt;br /&gt;
&lt;br /&gt;
I suggest getting CPCDiskXP by Oscar Sanchez from http://www.cpcmania.com/ &lt;br /&gt;
&lt;br /&gt;
It reads a 1 side in about 100 seconds (with verify) .. and writing back 1 side takes about 25 second Runs in Windows XP/Vista using a nice lowlevel driver that you might recognise from Amiga- and Atari ST-discs reading pc tools. &lt;br /&gt;
Note that you can only use floppies from a INTERNAL floppy drive (a usb one wont work). &lt;br /&gt;
Seems to me that only the Amstrad is picky about if u use 1.44mb or 720kb floppies .. the pc has no such troubles, so ANY floppy drive may work on pc (from my experience). Also the tape-down-1.44-to-720-floppy-fix works on pc too. &lt;br /&gt;
&lt;br /&gt;
== Things that pop'ed into my head reading up on all this == &lt;br /&gt;
&lt;br /&gt;
Using a whole pc to power the floppy is getting annoing and uncompfy, so my brain has been thinking in overdrive to come up with a solution. &lt;br /&gt;
&lt;br /&gt;
1. use a normal external-IDE-HDD-USB-enclosure to power the drive .. All you need it the enclosure (with its powersupply) .. then fit a Y-split cable (a IDE-power to Floppy-power one). This is possible if u can find the Y-split cable: &lt;br /&gt;
&lt;br /&gt;
[[Image:Ycable1.JPG|400px]]&lt;br /&gt;
&lt;br /&gt;
2. use a usb-floppy drive .. dissassemble it and hook it up to pc or Wii or xbox 360 or pc or .. Donno if this is possible .. or if you need yet another type of Y-cable or other. Would look nice with one of them slimline usb-drives. &lt;br /&gt;
&lt;br /&gt;
3. Not a tech wizz at all, but all u need to power a floppy is 5V ?? or do you also need the 12V too? Anyways, a couple of batteries on row might do that easy-ish. &lt;br /&gt;
&lt;br /&gt;
== Worries and what not ==&lt;br /&gt;
&lt;br /&gt;
What if i hook something up wrong will my Amstrad break? Nah, dont think so, I mean I did EVERYTHING wrong at least twice and both 6128 &amp;amp;amp; 664 is still alive and running. Also I tried a LOT of things myself before with a FD1 cable and such. Still we are talking about electronics and all that, so do be carefull, and dont forget that everything should fit nicely .. no reason to force anything. OMG OMG my precius 20+ year old gem of a Amstrad just blew up in my face, will you takes full responsibility and buy me a new one? Eh?, sure i will .. not.&lt;br /&gt;
&lt;br /&gt;
== FAQ == &lt;br /&gt;
&lt;br /&gt;
Q: Can I use a FD1 cable to connect a 3.5&amp;quot; floppy drive? &lt;br /&gt;
&lt;br /&gt;
A: In theory yes, but its hard to set the ready signal. Connecting pin 33&amp;amp;34 is probably best done on the drive itself with a small piece of wire/metal. People who can solder will know how to fix the cable itself tho. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Q: Can i hook up a 3.5&amp;quot; to a cpc 464 like this? &lt;br /&gt;
&lt;br /&gt;
A: No. Hooking up a 3.5&amp;quot; isnt possible without some serious soldering and you also need that DDI interface. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Q: Can i use a 3.5&amp;quot; on a 6128+ ? &lt;br /&gt;
&lt;br /&gt;
A: Sure you can, but u need to make a cable that fits the the Centronics connector and since the pins is a bit upside down with the 6128+ its a bit more on the technical side. Look here for more: &lt;br /&gt;
&lt;br /&gt;
http://www.pcwking1.netfirms.com/helpage34.html &lt;br /&gt;
http://genesis8.free.fr/amstrad/faq/ &lt;br /&gt;
http://www.zettweb.com/semiconductors/h ... drive.html &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Q: I got one of those german Schneider 6128 with Centronics connector? &lt;br /&gt;
&lt;br /&gt;
A: Sure, but just like 6128+ its a bit more technical and need a special interface/cable made.&lt;br /&gt;
&lt;br /&gt;
Look here:&lt;br /&gt;
&lt;br /&gt;
http://www.amstrad-cpc.de/ &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Q: The floppy drive isnt registered at all .. not even getting errors? &lt;br /&gt;
&lt;br /&gt;
A: Try cleaning the connector on the Amstrad. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Q: Can I use those odd format discs on the 3.5&amp;quot; ? &lt;br /&gt;
&lt;br /&gt;
A: 41 track &amp;amp; other Amstrad formats works fine. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Q: Can i use the fully 720kb on the floppy? &lt;br /&gt;
&lt;br /&gt;
A: You need a special rom like Parados to replace Amsdos to do that. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Q: Can i use a 3.5&amp;quot; floppy drive internally in my 6128/664? &lt;br /&gt;
&lt;br /&gt;
A: Well, sure but u need to make another special cable bacause the real internal cable is a lot smaller than the usual pc floppy cable. Also you will need a power converter cable if u want to power the floppy from the inside. If you do use it internally you wont have to set the &amp;quot;primary&amp;quot; pin 11 &amp;amp; 12 as it is already primary. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Thanks goes to == &lt;br /&gt;
&lt;br /&gt;
- [[Executioner]], [[UKmarkh]], [[JMD]], [[Wanderer]], [[Zeropolis79]], [[Gryzor]] and [[Ptr]] for great help and contributions to the guide. &lt;br /&gt;
&lt;br /&gt;
- Everybody in the [http://cpczone.net Cpczone.net] forums for putting up with my rantings &lt;br /&gt;
&lt;br /&gt;
- Anyone online who i stole info from&lt;br /&gt;
&lt;br /&gt;
== Sorry About ==&lt;br /&gt;
&lt;br /&gt;
I may have made a few assumtions .. especially about the floppy compatability based on from my own experiences and such. If im wrong let me know  &lt;br /&gt;
&lt;br /&gt;
My eeiiieenglish isnt the most fluid and correct spelled and all that, but is readable I hope. &lt;br /&gt;
&lt;br /&gt;
== Links about 3.5&amp;quot; floppy drive hookup ==&lt;br /&gt;
[[Guide on how to connect a 3.5]] Another local guide&lt;br /&gt;
&lt;br /&gt;
[[Modify PC floppy drives]] How to force certain PC drives to produce RDY signal (used for CPC)&lt;br /&gt;
&lt;br /&gt;
http://www.cpcmania.com/ (Spanish &amp;amp; English) &lt;br /&gt;
&lt;br /&gt;
http://www.phenixinformatique.com/secti ... e&amp;amp;artid=67 (French) &lt;br /&gt;
&lt;br /&gt;
http://www.amstradtoday.com/elements/upgrade/upgrade.htm#nodisk (French) &lt;br /&gt;
&lt;br /&gt;
http://www.terra.es/personal/diegovp/ (Spanish) &lt;br /&gt;
&lt;br /&gt;
http://usuarios.lycos.es/putusoft/emucpc/softwaree.htm (Spanish)&lt;br /&gt;
&lt;br /&gt;
== Great sources about anything CPC (including 3.5&amp;quot; connecting) ==&lt;br /&gt;
&lt;br /&gt;
http://genesis8.free.fr/amstrad/faq/index.php or &lt;br /&gt;
&lt;br /&gt;
http://www.faqs.org/faqs/amstrad8bit-faq/ (English/French/Dutch/German/Spanish) &lt;br /&gt;
&lt;br /&gt;
http://www.amstrad-cpc.de/ (German)&lt;br /&gt;
&lt;br /&gt;
== Tools to read CPC floppies on pc ==&lt;br /&gt;
&lt;br /&gt;
CPCDiskXP: http://www.cpcmania.com/&lt;br /&gt;
 &lt;br /&gt;
ManageDsk: http://amstrad.cpc.free.fr/download.php ... es&amp;amp;sortby= &lt;br /&gt;
&lt;br /&gt;
22DISK: http://www.znode51.de/specials/22disk/ &lt;br /&gt;
&lt;br /&gt;
ReadDSK/WriteDSK: http://www.julien-nevo.com/arkos/tools.html &lt;br /&gt;
&lt;br /&gt;
[[Dsktools]] &amp;quot;dsktools is a set of tools for reading and writing DSK and EDSK images to real floppy disks for use with theAmstrad/Schneider CPC range of home computers. The main target platform for dsktools is GNU/Linux.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
CDPRead/CDPWrite: http://www.caprice32.cybercube.com/downloads.php &lt;br /&gt;
&lt;br /&gt;
'''Cholo'''&lt;br /&gt;
&lt;br /&gt;
 [[Category:DIY]][[Category:DATA Storage]]&lt;/div&gt;</summary>
		<author><name>FindYWay</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=Guide_on_how_to_connect_a_3.5&amp;diff=88277</id>
		<title>Guide on how to connect a 3.5</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=Guide_on_how_to_connect_a_3.5&amp;diff=88277"/>
				<updated>2013-10-22T20:55:56Z</updated>
		
		<summary type="html">&lt;p&gt;FindYWay: /* Tools to read CPC floppies on pc */ typos&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Guide to hook up a [[3½&amp;quot; &amp;amp; 5¼&amp;quot; Disk Drives|3.5&amp;quot; pc drive]] to your Amstrad CPC 6128 or 664 (For non-techy people like me)&lt;br /&gt;
&lt;br /&gt;
This guide is for people who own 6128/664 cpc's that has the 34 pin EDGE connector type interfaces. I know that people in the UK and DK has the Edge connectors.&lt;br /&gt;
People in Germany use the CENTRONICS type connectors also some of the cpc PLUS range use Centronics. Centronics users need a different kind of cable. For another guide, check [[Guide on how to connect a 3.5&amp;quot; drive to a CPC6128/664]]&lt;br /&gt;
&lt;br /&gt;
Example of a final setup: [[Image:quickyp.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
== What you need (minimum requirements) ==&lt;br /&gt;
- a pc 3.5&amp;quot; floppy drive&amp;lt;br&amp;gt;&lt;br /&gt;
- a old style pc floppy cable&amp;lt;br&amp;gt;&lt;br /&gt;
- a paperclip or a small piece of wire&amp;lt;br&amp;gt;&lt;br /&gt;
- a powersource for the drive&amp;lt;br&amp;gt;&lt;br /&gt;
- a 3.5&amp;quot; floppy disc&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Suggest you also get:&amp;lt;br&amp;gt;&lt;br /&gt;
- pins &amp;amp; jumpers or maybe some real switches&amp;lt;br&amp;gt;&lt;br /&gt;
- tape&amp;lt;br&amp;gt;&lt;br /&gt;
- Y-powercable (may be optional)&lt;br /&gt;
&lt;br /&gt;
== The Cable ==&lt;br /&gt;
By some amazing luck the 6128/664 use the exact same floppy-connector as a old 5.25&amp;quot; pc floppy drive. So all you need to connect up is a old style pc floppy cable that has both the old style 5.25&amp;quot; large edge connector and new style 3.5&amp;quot; small pc floppy connector. &amp;lt;br&amp;gt;&lt;br /&gt;
Hardest part is probably to get one of these cables as they havnt really been used in years. You can still buy these cables &amp;quot;brand new&amp;quot; at several shops. If you have a older pc it probably also has one of these cables in it, that you can borrow (and replace with one of the new cables if you need). &lt;br /&gt;
&lt;br /&gt;
Looks like so:&lt;br /&gt;
&lt;br /&gt;
[[Image:BelkinFloppy1.JPG]]&lt;br /&gt;
&lt;br /&gt;
BELKIN still sells this cable, I got mine locally but this one looks like its the one:&lt;br /&gt;
[http://www.amazon.co.uk/Belkin-Universal-Floppy-Ribbon-cable/dp/B000JJN4SC/ref=sr_1_16/202-1047157-5520611?ie=UTF8&amp;amp;s=electronics&amp;amp;qid=1180710236&amp;amp;sr=8-16]&lt;br /&gt;
&lt;br /&gt;
This is the 5 connector one, but a 3 connector one may also work if it has the right&lt;br /&gt;
kind/amount of connectors.&lt;br /&gt;
&lt;br /&gt;
== The pc 3.5&amp;quot; Floppy drive ==&lt;br /&gt;
So far all the 3.5&amp;quot; drives ive tested all worked with 720kb floppies. The question is if you want a drive that is both compatible with 720kb floppies AND 1.44mb floppies. The old 3.5&amp;quot; drives was build differently that the ones you buy today, so most drives today dosnt work well with 1.44mb floppies while connected to a Amstrad. Most importent tho: New 3.5&amp;quot; drives does work really using 720kb floppies while hooked up to Amstrads.&lt;br /&gt;
&lt;br /&gt;
So if you want to avoid troubles, use 720kb floppies only.&lt;br /&gt;
&lt;br /&gt;
720kb floppies are hard to get, so just &amp;quot;make&amp;quot; some yourself from 1.44 floppies. Tape over the little &amp;quot;High Density&amp;quot; hole in the top left (both sides). That way the drive will think the floppy is 720kb only and act accordingly. Usually works ok, but make sure to make extra backups of your importent stuff as these tend to work less reliable.&lt;br /&gt;
&lt;br /&gt;
Tape over this hole picture: [[image:Floppies1.JPG]]&lt;br /&gt;
&lt;br /&gt;
== Paperclip &amp;amp; more ==&lt;br /&gt;
All you really need is one piece of paperclip (the metal kind) to be able to make a single short on the floppy cable, but it would probably be better to get some proper pins and jumpers or some real small wires. Also if you wanna do some really fansy stuff, you might wanna get at least 3 paperclips/wires/pins/jumpers. (se later)&lt;br /&gt;
Motherboard pins are usually sold in long rows where you can break of smaller parts, like a set of 2 pins, then use normal pc jumpers on em to quickly set on/off.&lt;br /&gt;
&lt;br /&gt;
Paperclips and pins picture: &lt;br /&gt;
[[image:PinsJumpers1.JPG]]&lt;br /&gt;
&lt;br /&gt;
== Powersource ==&lt;br /&gt;
You need to power the 3.5&amp;quot; floppy drive somehow. Currently im powering the drive using an external IDE Hdd USB interface box. These are easy and cheap to buy today and you can get them everywhere. They dont dont take up much space and usually have a on/off button too. Easy to use as all you need it the small Y-powercable to hook it up to the drive: [http://pchan.250free.com/Ycable1.JPG]&lt;br /&gt;
&lt;br /&gt;
You can also use a normal PC powersupply of cause, there are &amp;quot;complications&amp;quot;. A modern powersupply dosnt turn fully on unless it detects a motherboard is present. So what I used to do was drag a whole pc box up next to the Amstrad and use that to power the floppy drive. &lt;br /&gt;
&lt;br /&gt;
My current setup: &lt;br /&gt;
&lt;br /&gt;
[[image:Quickyp.jpg]]&lt;br /&gt;
&lt;br /&gt;
== Setting it all up ==&lt;br /&gt;
All you do is basicly the same as if you would hook up a FD1 drive to a cpc 6128. No soldering or disassembly required. Just hook up the cable to the DRIVE connetor on the Amstrad and the Floppy drive to the next edge connector on the cable. &amp;lt;br&amp;gt;&lt;br /&gt;
Pretty hard to get it wrong as the edge connector only fits one way and usually the same is said with the floppy connector. BUT .. there IS a few floppy drives that have the pins upside down, so u might need to twist the cable around once .. most likely not tho.&lt;br /&gt;
&lt;br /&gt;
So far:&lt;br /&gt;
&lt;br /&gt;
[[Image:CableOn1.JPG]]&lt;br /&gt;
&lt;br /&gt;
Note that this type of pc cable usually has some internally twisted cables .. make sure the CPC/PC does NOT have the twisted bit between them.&lt;br /&gt;
&lt;br /&gt;
== Setting the READY signal ==&lt;br /&gt;
Last thing you need to do is set the ready signal. This is done by connecting pin 33 and 34. Its the last 2 pins on the cable. Use a bend paperclip or a small wire to short the 2 pins like so (Marked in WHITE).&lt;br /&gt;
&lt;br /&gt;
Like so: &lt;br /&gt;
&lt;br /&gt;
[[Image:CableClose1.JPG]]&lt;br /&gt;
&lt;br /&gt;
Thats it. Now u SHOULD have a fully working 3.5&amp;quot; B drive !!&lt;br /&gt;
&lt;br /&gt;
== How to use the Drive &amp;amp; error solving ==&lt;br /&gt;
1. Power on the floppy first. &amp;lt;br&amp;gt;&lt;br /&gt;
2. Then turn on the cpc. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Type &amp;quot;|B&amp;quot; to change to drive B in basic (and make sure there is a floppy in the drive). If the drive spins up and you get &amp;quot;Ready&amp;quot; message, then it works. Dont forget that you need to format the floppy to use it like normal. &lt;br /&gt;
&lt;br /&gt;
And up and running (my old setup):&lt;br /&gt;
&lt;br /&gt;
[[Image:AllUpAndRunning1.JPG]]&lt;br /&gt;
&lt;br /&gt;
Errors at this point:&amp;lt;br&amp;gt;&lt;br /&gt;
- You turn on the cpc but get a blank/rolling screen? Most likely the pc cable connector needs to be flipped over (pins are upside down).&amp;lt;br&amp;gt;&lt;br /&gt;
- Bad Command? Floppy drive detected by cpc but is not powered. Recheck your powersupply is connected and working.&amp;lt;br&amp;gt;&lt;br /&gt;
- You turn on the cpc and both drives act-as-one .. and the floppy light is constantly on? Most likely you didnt short pin 33 &amp;amp; 34 .. is the paperclip/wire loose? .. or did you accidentally short pin 1 &amp;amp; 2 instead? Try moving the paperclip to the other end of the connector.&amp;lt;br&amp;gt;&lt;br /&gt;
- Read error on drive? Disc hasnt been formatted yet? Use software like Discology to quickly format drive B .. or to quicky copy a disc from A to B .. or make a test floppy on pc (see transfer bit later).&amp;lt;br&amp;gt;&lt;br /&gt;
- Disc is write protected error? Make sure the write tab on the disc is down (move tab down on right side of disc).&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Two heads (OPTIONAL) ==&lt;br /&gt;
Ok, everything is working so far? Want to do some more advanced stuff like using 2 sides on your floppy? Please note that this is 100% optional and you dont really need it, but i put it here if you you like to solder in a switch and its nice to know that you have this option. Still, probably much easier and less confusing to use 2 floppies instead of doing this mod.&lt;br /&gt;
&lt;br /&gt;
Anyways, right now your drive is using head 1 (aka side 1), but if you connect pin 31 and 32 it will change to side/head 2. Remove the short again to get back to side/head 1.&lt;br /&gt;
Pin 31 &amp;amp; 32 is marked in RED on the picture: &lt;br /&gt;
&lt;br /&gt;
[[Image:CableClose1.JPG]]&lt;br /&gt;
&lt;br /&gt;
== Primary drive setting (OPTIONAL) ==&lt;br /&gt;
Another mod that is 100% optional, and most people will probably never need this. &lt;br /&gt;
If you have ever tried running software straight from a B drive you will probably remember that you can easily get in troubles (like freeze ups) because the software still tries to load from drive A. Wouldnt it be nice to if you could turn drive B into drive A (and A into B)? Connect up pin 11 &amp;amp; 12 while the drive is on to do the drive switcheroo. Marked in BLUE (sixth pair of pins from the top): [http://pchan.250free.com/CableClose1.JPG]&lt;br /&gt;
&lt;br /&gt;
NOTE: Make sure to remove the short after you have turned off the whole thing (or you will get a drives-act-as-one error on next bootup). So you will have to set the 11/12 pin each time you wanna do the drive switching. &lt;br /&gt;
&lt;br /&gt;
If you dont want to do this mod, just always run your software from drive A (and use B as backup).&lt;br /&gt;
&lt;br /&gt;
Another closeup of all 3 pairs of pins without doodlin: &lt;br /&gt;
&lt;br /&gt;
[[Image:SuperClose1.JPG]]&lt;br /&gt;
&lt;br /&gt;
== Transfering software between CPC and PC ==&lt;br /&gt;
Yes, a pc can read and write those 3.5&amp;quot; Amstrad formatted floppies. There is a handfull of pc utilities that can read/write to the floppies. &lt;br /&gt;
&lt;br /&gt;
I suggest getting CPCDiskXP by Oscar Sanchez from http://www.cpcmania.com&lt;br /&gt;
&lt;br /&gt;
It reads a 1 side in about 100 seconds (with verify) .. and writing back 1 side takes about 25 second :) Runs in Windows XP/Vista using a nice lowlevel driver that you might recognise from Amiga- and Atari ST-discs reading pc tools.&amp;lt;br&amp;gt;&lt;br /&gt;
Note that you can only use floppies from a INTERNAL floppy drive (a usb one wont work). &amp;lt;br&amp;gt;&lt;br /&gt;
Seems to me that only the Amstrad is picky about if you use 1.44mb or 720kb floppies .. the pc has no such troubles, so ANY floppy drive may work on pc (from my experience). Also the tape-down-1.44-to-720-floppy-fix works on pc too (even tho its a bit more unstable).&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
Q: Can I use a FD1 cable to connect a 3.5&amp;quot; floppy drive?&amp;lt;br&amp;gt;&lt;br /&gt;
A: In theory yes, but its hard to set the ready signal. Connecting pin 33&amp;amp;34 is probably best done on the drive itself with a small piece of wire/metal. People who can solder will know how to fix the cable itself tho.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Q: Can i hook up a 3.5&amp;quot; to a cpc 464 like this?&amp;lt;br&amp;gt;&lt;br /&gt;
A: No. Hooking up a 3.5&amp;quot; isnt possible without some serious soldering and you also need that DDI interface.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Q: I got one of those german Schneider 6128 with Centronics connector?&amp;lt;br&amp;gt;&lt;br /&gt;
A: Look at the german site below for pins.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Q: The floppy drive isnt registered at all .. not even getting errors?&amp;lt;br&amp;gt;&lt;br /&gt;
A: Try cleaning the connector on the Amstrad.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Q: Can I use those odd format discs on the 3.5&amp;quot; ? &amp;lt;br&amp;gt;&lt;br /&gt;
A: 41 track &amp;amp; other Amstrad formats works fine.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Q: Can i use the fully 720kb on the floppy?&amp;lt;br&amp;gt;&lt;br /&gt;
A: You need a special rom like Parados to replace Amsdos to do that.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Links to other sites about 3.5&amp;quot; floppy drive hookup ==&lt;br /&gt;
[[Guide on how to connect a 3.5&amp;quot; drive to a CPC6128/664]] Another local guide&amp;lt;br&amp;gt;&lt;br /&gt;
http://www.cpcmania.com/  (Spanish &amp;amp; English)&amp;lt;br&amp;gt;&lt;br /&gt;
http://www.phenixinformatique.com/sections.php?op=viewarticle&amp;amp;artid=67 (French) &amp;lt;br&amp;gt;&lt;br /&gt;
http://www.amstradtoday.com/elements/upgrade/lecteur2.htm (French) &amp;lt;br&amp;gt;&lt;br /&gt;
http://www.terra.es/personal/diegovp/ (Spanish) &amp;lt;br&amp;gt;&lt;br /&gt;
http://usuarios.lycos.es/putusoft/emucpc/softwaree.htm (Spanish)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Great sources about anything CPC (including 3.5&amp;quot; connecting) ==&lt;br /&gt;
http://genesis8.free.fr/amstrad/faq/index.php  (English/French/Dutch/German/Spanish)&amp;lt;br&amp;gt;&lt;br /&gt;
http://www.amstrad-cpc.de/ (German) &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Tools to read CPC floppies on pc ==&lt;br /&gt;
[[CPCDiskXP]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[ManageDSK]]&amp;lt;br&amp;gt;&lt;br /&gt;
22DISK: http://www.znode51.de/specials/22disk/ &amp;lt;br&amp;gt;&lt;br /&gt;
ReadDSK/[[WriteDSK]]: http://www.julien-nevo.com/arkos/tools.html &amp;lt;br&amp;gt;&lt;br /&gt;
[[Dsktools]] &amp;quot;dsktools is a set of tools for reading and writing DSK and EDSK images to real floppy disks for use with theAmstrad/Schneider CPC range of home computers. The main target platform for dsktools is GNU/Linux.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Guide by Cholo&lt;br /&gt;
&lt;br /&gt;
 [[Category:DIY]] [[Category:DATA Storage]]&lt;/div&gt;</summary>
		<author><name>FindYWay</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=Guide_on_how_to_connect_a_3.5&amp;diff=88276</id>
		<title>Guide on how to connect a 3.5</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=Guide_on_how_to_connect_a_3.5&amp;diff=88276"/>
				<updated>2013-10-22T20:54:45Z</updated>
		
		<summary type="html">&lt;p&gt;FindYWay: /* Tools to read CPC floppies on pc */ Added dsktools summary.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Guide to hook up a [[3½&amp;quot; &amp;amp; 5¼&amp;quot; Disk Drives|3.5&amp;quot; pc drive]] to your Amstrad CPC 6128 or 664 (For non-techy people like me)&lt;br /&gt;
&lt;br /&gt;
This guide is for people who own 6128/664 cpc's that has the 34 pin EDGE connector type interfaces. I know that people in the UK and DK has the Edge connectors.&lt;br /&gt;
People in Germany use the CENTRONICS type connectors also some of the cpc PLUS range use Centronics. Centronics users need a different kind of cable. For another guide, check [[Guide on how to connect a 3.5&amp;quot; drive to a CPC6128/664]]&lt;br /&gt;
&lt;br /&gt;
Example of a final setup: [[Image:quickyp.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
== What you need (minimum requirements) ==&lt;br /&gt;
- a pc 3.5&amp;quot; floppy drive&amp;lt;br&amp;gt;&lt;br /&gt;
- a old style pc floppy cable&amp;lt;br&amp;gt;&lt;br /&gt;
- a paperclip or a small piece of wire&amp;lt;br&amp;gt;&lt;br /&gt;
- a powersource for the drive&amp;lt;br&amp;gt;&lt;br /&gt;
- a 3.5&amp;quot; floppy disc&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Suggest you also get:&amp;lt;br&amp;gt;&lt;br /&gt;
- pins &amp;amp; jumpers or maybe some real switches&amp;lt;br&amp;gt;&lt;br /&gt;
- tape&amp;lt;br&amp;gt;&lt;br /&gt;
- Y-powercable (may be optional)&lt;br /&gt;
&lt;br /&gt;
== The Cable ==&lt;br /&gt;
By some amazing luck the 6128/664 use the exact same floppy-connector as a old 5.25&amp;quot; pc floppy drive. So all you need to connect up is a old style pc floppy cable that has both the old style 5.25&amp;quot; large edge connector and new style 3.5&amp;quot; small pc floppy connector. &amp;lt;br&amp;gt;&lt;br /&gt;
Hardest part is probably to get one of these cables as they havnt really been used in years. You can still buy these cables &amp;quot;brand new&amp;quot; at several shops. If you have a older pc it probably also has one of these cables in it, that you can borrow (and replace with one of the new cables if you need). &lt;br /&gt;
&lt;br /&gt;
Looks like so:&lt;br /&gt;
&lt;br /&gt;
[[Image:BelkinFloppy1.JPG]]&lt;br /&gt;
&lt;br /&gt;
BELKIN still sells this cable, I got mine locally but this one looks like its the one:&lt;br /&gt;
[http://www.amazon.co.uk/Belkin-Universal-Floppy-Ribbon-cable/dp/B000JJN4SC/ref=sr_1_16/202-1047157-5520611?ie=UTF8&amp;amp;s=electronics&amp;amp;qid=1180710236&amp;amp;sr=8-16]&lt;br /&gt;
&lt;br /&gt;
This is the 5 connector one, but a 3 connector one may also work if it has the right&lt;br /&gt;
kind/amount of connectors.&lt;br /&gt;
&lt;br /&gt;
== The pc 3.5&amp;quot; Floppy drive ==&lt;br /&gt;
So far all the 3.5&amp;quot; drives ive tested all worked with 720kb floppies. The question is if you want a drive that is both compatible with 720kb floppies AND 1.44mb floppies. The old 3.5&amp;quot; drives was build differently that the ones you buy today, so most drives today dosnt work well with 1.44mb floppies while connected to a Amstrad. Most importent tho: New 3.5&amp;quot; drives does work really using 720kb floppies while hooked up to Amstrads.&lt;br /&gt;
&lt;br /&gt;
So if you want to avoid troubles, use 720kb floppies only.&lt;br /&gt;
&lt;br /&gt;
720kb floppies are hard to get, so just &amp;quot;make&amp;quot; some yourself from 1.44 floppies. Tape over the little &amp;quot;High Density&amp;quot; hole in the top left (both sides). That way the drive will think the floppy is 720kb only and act accordingly. Usually works ok, but make sure to make extra backups of your importent stuff as these tend to work less reliable.&lt;br /&gt;
&lt;br /&gt;
Tape over this hole picture: [[image:Floppies1.JPG]]&lt;br /&gt;
&lt;br /&gt;
== Paperclip &amp;amp; more ==&lt;br /&gt;
All you really need is one piece of paperclip (the metal kind) to be able to make a single short on the floppy cable, but it would probably be better to get some proper pins and jumpers or some real small wires. Also if you wanna do some really fansy stuff, you might wanna get at least 3 paperclips/wires/pins/jumpers. (se later)&lt;br /&gt;
Motherboard pins are usually sold in long rows where you can break of smaller parts, like a set of 2 pins, then use normal pc jumpers on em to quickly set on/off.&lt;br /&gt;
&lt;br /&gt;
Paperclips and pins picture: &lt;br /&gt;
[[image:PinsJumpers1.JPG]]&lt;br /&gt;
&lt;br /&gt;
== Powersource ==&lt;br /&gt;
You need to power the 3.5&amp;quot; floppy drive somehow. Currently im powering the drive using an external IDE Hdd USB interface box. These are easy and cheap to buy today and you can get them everywhere. They dont dont take up much space and usually have a on/off button too. Easy to use as all you need it the small Y-powercable to hook it up to the drive: [http://pchan.250free.com/Ycable1.JPG]&lt;br /&gt;
&lt;br /&gt;
You can also use a normal PC powersupply of cause, there are &amp;quot;complications&amp;quot;. A modern powersupply dosnt turn fully on unless it detects a motherboard is present. So what I used to do was drag a whole pc box up next to the Amstrad and use that to power the floppy drive. &lt;br /&gt;
&lt;br /&gt;
My current setup: &lt;br /&gt;
&lt;br /&gt;
[[image:Quickyp.jpg]]&lt;br /&gt;
&lt;br /&gt;
== Setting it all up ==&lt;br /&gt;
All you do is basicly the same as if you would hook up a FD1 drive to a cpc 6128. No soldering or disassembly required. Just hook up the cable to the DRIVE connetor on the Amstrad and the Floppy drive to the next edge connector on the cable. &amp;lt;br&amp;gt;&lt;br /&gt;
Pretty hard to get it wrong as the edge connector only fits one way and usually the same is said with the floppy connector. BUT .. there IS a few floppy drives that have the pins upside down, so u might need to twist the cable around once .. most likely not tho.&lt;br /&gt;
&lt;br /&gt;
So far:&lt;br /&gt;
&lt;br /&gt;
[[Image:CableOn1.JPG]]&lt;br /&gt;
&lt;br /&gt;
Note that this type of pc cable usually has some internally twisted cables .. make sure the CPC/PC does NOT have the twisted bit between them.&lt;br /&gt;
&lt;br /&gt;
== Setting the READY signal ==&lt;br /&gt;
Last thing you need to do is set the ready signal. This is done by connecting pin 33 and 34. Its the last 2 pins on the cable. Use a bend paperclip or a small wire to short the 2 pins like so (Marked in WHITE).&lt;br /&gt;
&lt;br /&gt;
Like so: &lt;br /&gt;
&lt;br /&gt;
[[Image:CableClose1.JPG]]&lt;br /&gt;
&lt;br /&gt;
Thats it. Now u SHOULD have a fully working 3.5&amp;quot; B drive !!&lt;br /&gt;
&lt;br /&gt;
== How to use the Drive &amp;amp; error solving ==&lt;br /&gt;
1. Power on the floppy first. &amp;lt;br&amp;gt;&lt;br /&gt;
2. Then turn on the cpc. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Type &amp;quot;|B&amp;quot; to change to drive B in basic (and make sure there is a floppy in the drive). If the drive spins up and you get &amp;quot;Ready&amp;quot; message, then it works. Dont forget that you need to format the floppy to use it like normal. &lt;br /&gt;
&lt;br /&gt;
And up and running (my old setup):&lt;br /&gt;
&lt;br /&gt;
[[Image:AllUpAndRunning1.JPG]]&lt;br /&gt;
&lt;br /&gt;
Errors at this point:&amp;lt;br&amp;gt;&lt;br /&gt;
- You turn on the cpc but get a blank/rolling screen? Most likely the pc cable connector needs to be flipped over (pins are upside down).&amp;lt;br&amp;gt;&lt;br /&gt;
- Bad Command? Floppy drive detected by cpc but is not powered. Recheck your powersupply is connected and working.&amp;lt;br&amp;gt;&lt;br /&gt;
- You turn on the cpc and both drives act-as-one .. and the floppy light is constantly on? Most likely you didnt short pin 33 &amp;amp; 34 .. is the paperclip/wire loose? .. or did you accidentally short pin 1 &amp;amp; 2 instead? Try moving the paperclip to the other end of the connector.&amp;lt;br&amp;gt;&lt;br /&gt;
- Read error on drive? Disc hasnt been formatted yet? Use software like Discology to quickly format drive B .. or to quicky copy a disc from A to B .. or make a test floppy on pc (see transfer bit later).&amp;lt;br&amp;gt;&lt;br /&gt;
- Disc is write protected error? Make sure the write tab on the disc is down (move tab down on right side of disc).&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Two heads (OPTIONAL) ==&lt;br /&gt;
Ok, everything is working so far? Want to do some more advanced stuff like using 2 sides on your floppy? Please note that this is 100% optional and you dont really need it, but i put it here if you you like to solder in a switch and its nice to know that you have this option. Still, probably much easier and less confusing to use 2 floppies instead of doing this mod.&lt;br /&gt;
&lt;br /&gt;
Anyways, right now your drive is using head 1 (aka side 1), but if you connect pin 31 and 32 it will change to side/head 2. Remove the short again to get back to side/head 1.&lt;br /&gt;
Pin 31 &amp;amp; 32 is marked in RED on the picture: &lt;br /&gt;
&lt;br /&gt;
[[Image:CableClose1.JPG]]&lt;br /&gt;
&lt;br /&gt;
== Primary drive setting (OPTIONAL) ==&lt;br /&gt;
Another mod that is 100% optional, and most people will probably never need this. &lt;br /&gt;
If you have ever tried running software straight from a B drive you will probably remember that you can easily get in troubles (like freeze ups) because the software still tries to load from drive A. Wouldnt it be nice to if you could turn drive B into drive A (and A into B)? Connect up pin 11 &amp;amp; 12 while the drive is on to do the drive switcheroo. Marked in BLUE (sixth pair of pins from the top): [http://pchan.250free.com/CableClose1.JPG]&lt;br /&gt;
&lt;br /&gt;
NOTE: Make sure to remove the short after you have turned off the whole thing (or you will get a drives-act-as-one error on next bootup). So you will have to set the 11/12 pin each time you wanna do the drive switching. &lt;br /&gt;
&lt;br /&gt;
If you dont want to do this mod, just always run your software from drive A (and use B as backup).&lt;br /&gt;
&lt;br /&gt;
Another closeup of all 3 pairs of pins without doodlin: &lt;br /&gt;
&lt;br /&gt;
[[Image:SuperClose1.JPG]]&lt;br /&gt;
&lt;br /&gt;
== Transfering software between CPC and PC ==&lt;br /&gt;
Yes, a pc can read and write those 3.5&amp;quot; Amstrad formatted floppies. There is a handfull of pc utilities that can read/write to the floppies. &lt;br /&gt;
&lt;br /&gt;
I suggest getting CPCDiskXP by Oscar Sanchez from http://www.cpcmania.com&lt;br /&gt;
&lt;br /&gt;
It reads a 1 side in about 100 seconds (with verify) .. and writing back 1 side takes about 25 second :) Runs in Windows XP/Vista using a nice lowlevel driver that you might recognise from Amiga- and Atari ST-discs reading pc tools.&amp;lt;br&amp;gt;&lt;br /&gt;
Note that you can only use floppies from a INTERNAL floppy drive (a usb one wont work). &amp;lt;br&amp;gt;&lt;br /&gt;
Seems to me that only the Amstrad is picky about if you use 1.44mb or 720kb floppies .. the pc has no such troubles, so ANY floppy drive may work on pc (from my experience). Also the tape-down-1.44-to-720-floppy-fix works on pc too (even tho its a bit more unstable).&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
Q: Can I use a FD1 cable to connect a 3.5&amp;quot; floppy drive?&amp;lt;br&amp;gt;&lt;br /&gt;
A: In theory yes, but its hard to set the ready signal. Connecting pin 33&amp;amp;34 is probably best done on the drive itself with a small piece of wire/metal. People who can solder will know how to fix the cable itself tho.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Q: Can i hook up a 3.5&amp;quot; to a cpc 464 like this?&amp;lt;br&amp;gt;&lt;br /&gt;
A: No. Hooking up a 3.5&amp;quot; isnt possible without some serious soldering and you also need that DDI interface.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Q: I got one of those german Schneider 6128 with Centronics connector?&amp;lt;br&amp;gt;&lt;br /&gt;
A: Look at the german site below for pins.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Q: The floppy drive isnt registered at all .. not even getting errors?&amp;lt;br&amp;gt;&lt;br /&gt;
A: Try cleaning the connector on the Amstrad.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Q: Can I use those odd format discs on the 3.5&amp;quot; ? &amp;lt;br&amp;gt;&lt;br /&gt;
A: 41 track &amp;amp; other Amstrad formats works fine.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Q: Can i use the fully 720kb on the floppy?&amp;lt;br&amp;gt;&lt;br /&gt;
A: You need a special rom like Parados to replace Amsdos to do that.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Links to other sites about 3.5&amp;quot; floppy drive hookup ==&lt;br /&gt;
[[Guide on how to connect a 3.5&amp;quot; drive to a CPC6128/664]] Another local guide&amp;lt;br&amp;gt;&lt;br /&gt;
http://www.cpcmania.com/  (Spanish &amp;amp; English)&amp;lt;br&amp;gt;&lt;br /&gt;
http://www.phenixinformatique.com/sections.php?op=viewarticle&amp;amp;artid=67 (French) &amp;lt;br&amp;gt;&lt;br /&gt;
http://www.amstradtoday.com/elements/upgrade/lecteur2.htm (French) &amp;lt;br&amp;gt;&lt;br /&gt;
http://www.terra.es/personal/diegovp/ (Spanish) &amp;lt;br&amp;gt;&lt;br /&gt;
http://usuarios.lycos.es/putusoft/emucpc/softwaree.htm (Spanish)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Great sources about anything CPC (including 3.5&amp;quot; connecting) ==&lt;br /&gt;
http://genesis8.free.fr/amstrad/faq/index.php  (English/French/Dutch/German/Spanish)&amp;lt;br&amp;gt;&lt;br /&gt;
http://www.amstrad-cpc.de/ (German) &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Tools to read CPC floppies on pc ==&lt;br /&gt;
[[CPCDiskXP]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[ManageDSK]]&amp;lt;br&amp;gt;&lt;br /&gt;
22DISK: http://www.znode51.de/specials/22disk/ &amp;lt;br&amp;gt;&lt;br /&gt;
ReadDSK/[[WriteDSK]]: http://www.julien-nevo.com/arkos/tools.html &amp;lt;br&amp;gt;&lt;br /&gt;
[[Dsktools]] &amp;quot;dsktools is a set of tools forreding and writing DSK and EDSK images to real floppy disks for use with theAmstrad/Schneider CPC range of homecomputers. The main traget platform fordsktools is GNU/Linux.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Guide by Cholo&lt;br /&gt;
&lt;br /&gt;
 [[Category:DIY]] [[Category:DATA Storage]]&lt;/div&gt;</summary>
		<author><name>FindYWay</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=Amstrad_MP1/MP2_modulator&amp;diff=88275</id>
		<title>Amstrad MP1/MP2 modulator</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=Amstrad_MP1/MP2_modulator&amp;diff=88275"/>
				<updated>2013-10-22T19:49:09Z</updated>
		
		<summary type="html">&lt;p&gt;FindYWay: /* Technical Specs. */ French MP-1 also exists (I have one).&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A TV-modulator and power supply by [[Amstrad]] for the [[CPC_old_generation|classic CPC-computers]]&lt;br /&gt;
&lt;br /&gt;
As the Amstrad CPCs always came together with a monitor, normally there was no need for a TV modulator inside the CPC as seen on other home computers (Sinclair Spectrum, Commodore C64/C128 and so on).&lt;br /&gt;
As the power supply was included inside the monitor, there wasn't an external power supply either.&lt;br /&gt;
&lt;br /&gt;
If you bought an Amstrad CPC together with one of the [[Amstrad GT64/GT65 Green Monitor]]s however, you might have wanted the ability to play games on the colour TV-set later, so Amstrad also made the MP-1/MP-2 devices.&lt;br /&gt;
They provided the power needed by the CPCs, so that you didn't have to carry the monitor around just to have power, and a TV-modulator which modulated the monitor signal in a way that it could be seen on a regular TV-set.&lt;br /&gt;
&lt;br /&gt;
Having an MP-1/MP-2 today is more or less just a gimmick, as a self-made [[TV SCART cable]] gives better picture quality (SCART connectors weren't common back in the 80s) and the power can be taken from a PC AT or even ATX power supply as well.&lt;br /&gt;
&lt;br /&gt;
The difference between the MP-1 and MP-2 models is just the additional 12V power supply for the CPC664/CPC6128's disk drive in the later model.&lt;br /&gt;
&lt;br /&gt;
== Technical Specs. ==&lt;br /&gt;
&lt;br /&gt;
* Supply In: ~220V/50Hz, 12W&lt;br /&gt;
* Supply Out: +5V (both MP1 and MP2), +12V (MP2 only)&lt;br /&gt;
* Video In: RGB, Sync (6pin DIN)&lt;br /&gt;
* Video Out: '''Unknown, probably UHF 37 or so (?)''' (2pin)&lt;br /&gt;
&lt;br /&gt;
Note: There has been also french versions with Scart RGB output, of the MP1 (no 12V) and MP2 (with 12V), see [[MP2F]]. As well as a spanish version, the [[Amstrad MPV 001 modulator|MPV 001]] (with '''unknown''' output).&lt;br /&gt;
&lt;br /&gt;
== Pictures ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery caption=&amp;quot;MP1&amp;quot;&amp;gt;&lt;br /&gt;
Image:Amstrad mp-1.jpg|&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery caption=&amp;quot;MP2&amp;quot;&amp;gt;&lt;br /&gt;
Image:mp2 1.JPG|&lt;br /&gt;
Image:mp2 2.JPG|&lt;br /&gt;
Image:mp2 3.JPG|&lt;br /&gt;
Image:mp2 4.JPG|&lt;br /&gt;
Image:Amstrad mp-2.jpg|&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
&lt;br /&gt;
== Manual ==&lt;br /&gt;
&lt;br /&gt;
The procedure of setting up the CPC with the MP-1/MP-2 modulators is described in the CPC's user manual.&lt;br /&gt;
&lt;br /&gt;
[[Category:Peripherals]][[Category:CPC Internal Components]][[Category:Amstrad Products]][[Category:Graphic]]&lt;/div&gt;</summary>
		<author><name>FindYWay</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=Power_Supply_for_CPC_and_CPC_plus&amp;diff=88273</id>
		<title>Power Supply for CPC and CPC plus</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=Power_Supply_for_CPC_and_CPC_plus&amp;diff=88273"/>
				<updated>2013-10-22T19:31:57Z</updated>
		
		<summary type="html">&lt;p&gt;FindYWay: Suggest reusing parts.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Background ==&lt;br /&gt;
&lt;br /&gt;
The power supply for the CPC464,664 or 6128 is not in the keyboard unit, it is in the monitor or an external television modulator.&lt;br /&gt;
&lt;br /&gt;
== Monitor models == &lt;br /&gt;
&lt;br /&gt;
* The GT64 is the &amp;quot;Green Screen&amp;quot; monochrome monitor for the CPC464 and has the 5V power supply for the computer.&lt;br /&gt;
* The GT65 is the &amp;quot;Green Screen&amp;quot; monochrome monitor for the CPC664 or CPC6128 and has the 5V power supply for the computer and 12V power supply for the disc drive.&lt;br /&gt;
* The MM14 is the &amp;quot;Grey Scale&amp;quot; monochrome monitor for the CPC464+ and CPC6128+ and has the 5V power supply for the computer and disc drive.&lt;br /&gt;
* The CTM640 is the colour monitor for the CPC464 and has the 5V power supply for the computer.&lt;br /&gt;
* The CTM644 is the colour monitor for the CPC664 or CPC6128 and has the 5V power supply for the computer and 12V power supply for the disc drive.&lt;br /&gt;
* The CM14 is the color monitor for the CPC464+ and CPC6128+ and has the 5V power supply for the computer and disc drive.&lt;br /&gt;
&lt;br /&gt;
== TV Modulator models ==&lt;br /&gt;
&lt;br /&gt;
* MP-1 is the television modulator for the CPC464 and has the 5V power supply for the computer&lt;br /&gt;
* MP-2 is the television modulator for the CPC664 and CPC6128 and has the 5V power supply for the computer and 12V power supply for the disc drive. &lt;br /&gt;
&lt;br /&gt;
The power requirements are (information taken from the underneath of the keyboard unit from real machines):&lt;br /&gt;
&lt;br /&gt;
* CPC464: computer and internal cassette player: 5V DC @ 2A&lt;br /&gt;
* CPC664: {can somebody help here please??}&lt;br /&gt;
::computer: ?&lt;br /&gt;
:: internal disc drive: ? &lt;br /&gt;
* CPC6128:&lt;br /&gt;
::computer: 5V DC @ 1.7A&lt;br /&gt;
::internal disc drive: 12V DC @ 0.4A &lt;br /&gt;
* CPC464+: computer and internal cassette player: 5V DC @ 2.4A&lt;br /&gt;
* CPC6128+: computer and internal disc drive: 5V DC @ 2.4A &lt;br /&gt;
&lt;br /&gt;
NOTES:&lt;br /&gt;
&lt;br /&gt;
* All voltages MUST be smooth, the CPC does not have a internal regulator!&lt;br /&gt;
* If you want to use the computer without the monitor, then you will need to build a television modulator, or a lead to connect to a television with a SCART input. &lt;br /&gt;
&lt;br /&gt;
This project describes a method to make a power pack for the CPC and CPC+.&lt;br /&gt;
What you will need&lt;br /&gt;
&lt;br /&gt;
CPC and CPC+:&lt;br /&gt;
&lt;br /&gt;
* 2.5mm power line plug (note 1)&lt;br /&gt;
* 2.1mm power line socket (note 2)&lt;br /&gt;
* a power supply which can supply 5V DC and 12V DC (note 3)&lt;br /&gt;
* fast acting fuse&lt;br /&gt;
* in-line fuse holder&lt;br /&gt;
* wire &lt;br /&gt;
&lt;br /&gt;
CPC+ only:&lt;br /&gt;
&lt;br /&gt;
* 2.5mm power line plug (note 1)&lt;br /&gt;
* a power supply which can supply 5V DC (note 3)&lt;br /&gt;
* wire &lt;br /&gt;
&lt;br /&gt;
NOTES:&lt;br /&gt;
# The 2.5mm power line plug will connect into the computer and provides the 5V power&lt;br /&gt;
# The lead from the CPC664, CPC6128 will connect into the 2.1mm power line socket to provide the 12V power for the disc drive&lt;br /&gt;
# A PC power supply is ideal. If a PC power supply is used you will also require:&lt;br /&gt;
* 4-pin (0.2&amp;quot;) 5.08mm Spacing Polarised Power Connector (male) -- don't panic, this is the part fitting with the output from the power supply, see for example [http://en.wikipedia.org/wiki/Molex_connector#Disk_drive_connector_.28Molex_8981_Series_Power_Connector.29 Molex connector] or [https://www.google.fr/search?q=Molex+8981+male&amp;amp;tbm=isch google image search]. Other options are possible, use whatever fits the power supply you use, this one will fit virtually every PC power supply. Many PC hackers have some cables lying around, like power supply doubler cable, or old fan, with a suitable connector that can be reused.&lt;br /&gt;
&lt;br /&gt;
{|{{Prettytable|width: 700px; font-size: 2em;}}&lt;br /&gt;
|''Description''||''[http://www.maplin.co.uk/ Maplins] Reference''&lt;br /&gt;
|-&lt;br /&gt;
|2.5mm power line plug||HH62S&lt;br /&gt;
|-&lt;br /&gt;
|2.1mm power line socket||JK11M&lt;br /&gt;
|-&lt;br /&gt;
|PC power supply||VL11M&lt;br /&gt;
|-&lt;br /&gt;
|4-pin 5.08mm Spacing Polarised Power Connector (male)||JW64&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Power to computer:&lt;br /&gt;
&lt;br /&gt;
The plug has one outer and one inner contact. The outer contact is 0V, and the inner contact is 5V.&lt;br /&gt;
&lt;br /&gt;
[[Category:Hardware]]&lt;br /&gt;
[[Category:CPC Internal Components]]&lt;br /&gt;
[[Category:DIY]]&lt;br /&gt;
[[Category:Peripherals]]&lt;/div&gt;</summary>
		<author><name>FindYWay</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=Power_Supply_for_CPC_and_CPC_plus&amp;diff=88272</id>
		<title>Power Supply for CPC and CPC plus</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=Power_Supply_for_CPC_and_CPC_plus&amp;diff=88272"/>
				<updated>2013-10-22T19:29:04Z</updated>
		
		<summary type="html">&lt;p&gt;FindYWay: /* TV Modulator models */ Fix markup. Fix male/female confusion. Clarify what is the &amp;quot;4-pin 5.08mm Spacing Polarised Power Connector&amp;quot;.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Background ==&lt;br /&gt;
&lt;br /&gt;
The power supply for the CPC464,664 or 6128 is not in the keyboard unit, it is in the monitor or an external television modulator.&lt;br /&gt;
&lt;br /&gt;
== Monitor models == &lt;br /&gt;
&lt;br /&gt;
* The GT64 is the &amp;quot;Green Screen&amp;quot; monochrome monitor for the CPC464 and has the 5V power supply for the computer.&lt;br /&gt;
* The GT65 is the &amp;quot;Green Screen&amp;quot; monochrome monitor for the CPC664 or CPC6128 and has the 5V power supply for the computer and 12V power supply for the disc drive.&lt;br /&gt;
* The MM14 is the &amp;quot;Grey Scale&amp;quot; monochrome monitor for the CPC464+ and CPC6128+ and has the 5V power supply for the computer and disc drive.&lt;br /&gt;
* The CTM640 is the colour monitor for the CPC464 and has the 5V power supply for the computer.&lt;br /&gt;
* The CTM644 is the colour monitor for the CPC664 or CPC6128 and has the 5V power supply for the computer and 12V power supply for the disc drive.&lt;br /&gt;
* The CM14 is the color monitor for the CPC464+ and CPC6128+ and has the 5V power supply for the computer and disc drive.&lt;br /&gt;
&lt;br /&gt;
== TV Modulator models ==&lt;br /&gt;
&lt;br /&gt;
* MP-1 is the television modulator for the CPC464 and has the 5V power supply for the computer&lt;br /&gt;
* MP-2 is the television modulator for the CPC664 and CPC6128 and has the 5V power supply for the computer and 12V power supply for the disc drive. &lt;br /&gt;
&lt;br /&gt;
The power requirements are (information taken from the underneath of the keyboard unit from real machines):&lt;br /&gt;
&lt;br /&gt;
* CPC464: computer and internal cassette player: 5V DC @ 2A&lt;br /&gt;
* CPC664: {can somebody help here please??}&lt;br /&gt;
::computer: ?&lt;br /&gt;
:: internal disc drive: ? &lt;br /&gt;
* CPC6128:&lt;br /&gt;
::computer: 5V DC @ 1.7A&lt;br /&gt;
::internal disc drive: 12V DC @ 0.4A &lt;br /&gt;
* CPC464+: computer and internal cassette player: 5V DC @ 2.4A&lt;br /&gt;
* CPC6128+: computer and internal disc drive: 5V DC @ 2.4A &lt;br /&gt;
&lt;br /&gt;
NOTES:&lt;br /&gt;
&lt;br /&gt;
* All voltages MUST be smooth, the CPC does not have a internal regulator!&lt;br /&gt;
* If you want to use the computer without the monitor, then you will need to build a television modulator, or a lead to connect to a television with a SCART input. &lt;br /&gt;
&lt;br /&gt;
This project describes a method to make a power pack for the CPC and CPC+.&lt;br /&gt;
What you will need&lt;br /&gt;
&lt;br /&gt;
CPC and CPC+:&lt;br /&gt;
&lt;br /&gt;
* 2.5mm power line plug (note 1)&lt;br /&gt;
* 2.1mm power line socket (note 2)&lt;br /&gt;
* a power supply which can supply 5V DC and 12V DC (note 3)&lt;br /&gt;
* fast acting fuse&lt;br /&gt;
* in-line fuse holder&lt;br /&gt;
* wire &lt;br /&gt;
&lt;br /&gt;
CPC+ only:&lt;br /&gt;
&lt;br /&gt;
* 2.5mm power line plug (note 1)&lt;br /&gt;
* a power supply which can supply 5V DC (note 3)&lt;br /&gt;
* wire &lt;br /&gt;
&lt;br /&gt;
NOTES:&lt;br /&gt;
# The 2.5mm power line plug will connect into the computer and provides the 5V power&lt;br /&gt;
# The lead from the CPC664, CPC6128 will connect into the 2.1mm power line socket to provide the 12V power for the disc drive&lt;br /&gt;
# A PC power supply is ideal. If a PC power supply is used you will also require:&lt;br /&gt;
* 4-pin (0.2&amp;quot;) 5.08mm Spacing Polarised Power Connector (male) -- don't panic, this is the part fitting with the output from the power supply, see for example [http://en.wikipedia.org/wiki/Molex_connector#Disk_drive_connector_.28Molex_8981_Series_Power_Connector.29 Molex connector] or [https://www.google.fr/search?q=Molex+8981+male&amp;amp;tbm=isch google image search]. Other options are possible, use whatever fits the power supply you use, this one will fit virtually every PC power supply.&lt;br /&gt;
&lt;br /&gt;
{|{{Prettytable|width: 700px; font-size: 2em;}}&lt;br /&gt;
|''Description''||''[http://www.maplin.co.uk/ Maplins] Reference''&lt;br /&gt;
|-&lt;br /&gt;
|2.5mm power line plug||HH62S&lt;br /&gt;
|-&lt;br /&gt;
|2.1mm power line socket||JK11M&lt;br /&gt;
|-&lt;br /&gt;
|PC power supply||VL11M&lt;br /&gt;
|-&lt;br /&gt;
|4-pin 5.08mm Spacing Polarised Power Connector (male)||JW64&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Power to computer:&lt;br /&gt;
&lt;br /&gt;
The plug has one outer and one inner contact. The outer contact is 0V, and the inner contact is 5V.&lt;br /&gt;
&lt;br /&gt;
[[Category:Hardware]]&lt;br /&gt;
[[Category:CPC Internal Components]]&lt;br /&gt;
[[Category:DIY]]&lt;br /&gt;
[[Category:Peripherals]]&lt;/div&gt;</summary>
		<author><name>FindYWay</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=AMSDOS_Header&amp;diff=88102</id>
		<title>AMSDOS Header</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=AMSDOS_Header&amp;diff=88102"/>
				<updated>2013-10-07T16:58:57Z</updated>
		
		<summary type="html">&lt;p&gt;FindYWay: Link to details in Firmware Guide chapter 9, page 4.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In [[AMSDOS]] it is possible to store files in two ways: headerless and with a header. Headerless files are often files which were created with [[OPENOUT]] and ''SAVE&amp;quot;filename&amp;quot;,a''. Programs normally have a file header, which is consists of 128 bytes and contains the following data:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Byte 00: User number&lt;br /&gt;
Byte 01 to 08: filename&lt;br /&gt;
Byte 09 bis 11: Extension&lt;br /&gt;
Byte 18: type-byte&lt;br /&gt;
Byte 21 and 22: loading address&lt;br /&gt;
Byte 24 and 25: file length&lt;br /&gt;
Byte 26 and 27: execution address for machine code programs&lt;br /&gt;
Byte 64 and 65: checksum for byte 00 to byte 66&lt;br /&gt;
Byte 67 and 68: (file length)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To calculate the checksum, just add byte 00 to byte 66 to each other.&lt;br /&gt;
&lt;br /&gt;
This is only a summary. All details are in [[Firmware Guide]] chapter 9, page 4.&lt;br /&gt;
&lt;br /&gt;
[[Category:Programming]] [[Category:Disc Operating System]]&lt;/div&gt;</summary>
		<author><name>FindYWay</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=Firmware_Guide&amp;diff=88101</id>
		<title>Firmware Guide</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=Firmware_Guide&amp;diff=88101"/>
				<updated>2013-10-07T16:54:27Z</updated>
		
		<summary type="html">&lt;p&gt;FindYWay: Adjust destination&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT[[Soft968: CPC 464/664/6128 Firmware]]&lt;/div&gt;</summary>
		<author><name>FindYWay</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=Firmware_Guide&amp;diff=88100</id>
		<title>Firmware Guide</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=Firmware_Guide&amp;diff=88100"/>
				<updated>2013-10-07T16:53:27Z</updated>
		
		<summary type="html">&lt;p&gt;FindYWay: There are pages linking to this nonexistent page, for exampe Firmware. Make that go to the actual place.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT[[SOFT 968]]&lt;/div&gt;</summary>
		<author><name>FindYWay</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=Programming:Cross_Development&amp;diff=88085</id>
		<title>Programming:Cross Development</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=Programming:Cross_Development&amp;diff=88085"/>
				<updated>2013-10-02T15:43:30Z</updated>
		
		<summary type="html">&lt;p&gt;FindYWay: /* Disc management */ remove ManageDsk which is Windows-only. Since many tools are portable, page should be restructured.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
Cross development is a development method where you use another machine (the host) to develop programs for the CPC (target). This is interesting because you can make a big program which sourcecode does not even fit on the CPC ram.&lt;br /&gt;
&lt;br /&gt;
The main drawback is that transferring the compiled code to the CPC can be quite difficult. But there are pretty good emulators which you can use for testing.&lt;br /&gt;
&lt;br /&gt;
Once you have your binary file you have two choices depending on if the game will be for [[Datacorder|cassette]] or [[Disk drives|disc]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Atari|Atari ST]] was a common 16 bit computer actually used in cross development of games on CPC. &lt;br /&gt;
&lt;br /&gt;
Of course nowadays cross development use far more powerful modern computers.&lt;br /&gt;
&lt;br /&gt;
*[[ZX Spectrum]] was also a source of cross development...er... let's better say [[Speccy Port|Gross Development]] indeed.&lt;br /&gt;
&lt;br /&gt;
= Tools needed for cross development =&lt;br /&gt;
&lt;br /&gt;
== Integrated toolchains ==&lt;br /&gt;
&lt;br /&gt;
An integrated cross-development toolchain is a time saver for development as it automates all necessary steps from a full set of source materials (source code, graphics, music, parameters in whatever format is practical for editing, etc) to one or several formats ready to run on the target machines. It also sometimes includes automatically launching or notifying an emulator or target device. See e.g. [http://en.wikipedia.org/wiki/Build_automation#Advantages Build Automation on wikipedia].&lt;br /&gt;
&lt;br /&gt;
Such a design has several advantage:&lt;br /&gt;
* allows the usage of any text/graphic editor of modern platforms&lt;br /&gt;
* you can change anything in one or more source files and you get an updated build quickly without error-prone manual steps&lt;br /&gt;
* allows arbitrary transform or generation of intermediary files (code or data).&lt;br /&gt;
* makes easy to have specific builds (e.g. for automated tests like to check if a different compiler produces correct code, variant build for slightly different targets)&lt;br /&gt;
* since most material are text files or small independent files, it benefits hugely from modern tools for revision control like [http://en.wikipedia.org/wiki/Git_%28software%29 Git] which makes sharing and merging code between developers much easier, increasing the time saved.&lt;br /&gt;
&lt;br /&gt;
An ideal toolchain does not force its user into specific ways of doing things but is flexible enough to let the user adjust for whatever specific needs (use different languages, compilers, linkers, etc).  Along with a properly designed and structured source tree, this makes projects less dependent on specific tools used to build them, and be more resilient to [http://en.wikipedia.org/wiki/Bit_rot bit rot] due to [http://en.wikipedia.org/wiki/Software_rot#Environment_change software build environment change].&lt;br /&gt;
&lt;br /&gt;
Please note that an integrated toolchain has little to do with anything visible on-screen.  A good toolchain can be triggered by most flexible enough graphical environments and generally produces a text log of the work done.  Nevertheless, the concept of toolchains is more natural to Linux/Unix way of thinking/doing things, and those environments are already full of reusable and combinable tools that ease the creation and maintenance of a toolchain. Windows users can generally use tools developed for Unix through the cygwin software adaptation layer but running a Linux distribution in a virtual machine may be more practical.&lt;br /&gt;
&lt;br /&gt;
There are some attempts at creating toolchains targeting the CPC:&lt;br /&gt;
&lt;br /&gt;
* Not an integrated toolchain, but a collection of tools that can be strung together to make one. Currently active (as of end of 2012): on [http://www.cpcwiki.eu/forum/off-topic/cpc-sdk-for-linuxunix/ CPC SDK for Linux/Unix] PlukoMandy mentions http://code.google.com/p/cpcsdk&lt;br /&gt;
* 2012-11-12 [http://www.cpcwiki.eu/forum/programming/recommended-linux-cross-dev-tool-chain/ Recommended Linux cross-dev tool chain?] mentions a makefile-based toolchain targeting dsk images or tapes&lt;br /&gt;
* 2011-11-18 [https://github.com/cpcitor/cpc-dev-tool-chain cpc-dev-tool-chain] an embryo of an integrated C or ASM development toolchain for the Amstrad CPC platform (or emulator). Designed for quick start on Linux (or similar) systems : get a copy, run &amp;quot;make&amp;quot; and get a DSK ready to run into the emulator. It even downloads and compiles tools (the cross-compiler, iDSK) if needed.&lt;br /&gt;
* 2009-06-16 [http://www.cpcwiki.eu/forum/emulators/my-new-cross-development-kit/new/#new My new cross-development kit] explain what is basically a toolchain but link is broken as of 2013-01-08&lt;br /&gt;
&lt;br /&gt;
== Linux ==&lt;br /&gt;
&lt;br /&gt;
=== Cartridge management ===&lt;br /&gt;
* [[buildcpr]] [http://www.cepece.info/amstrad/download/buildcpr.zip]&lt;br /&gt;
&lt;br /&gt;
=== Cross assemblers ===&lt;br /&gt;
&lt;br /&gt;
* [[SjasmPlus]]&lt;br /&gt;
* [[Sjasm|sjasm]]&lt;br /&gt;
* [[Zasm]] [http://sourceforge.net/projects/zasm]&lt;br /&gt;
* [[ZMac]]&lt;br /&gt;
* GNU Binutils for z80 (z80-unknown-coff platform)&lt;br /&gt;
* [[Z80asm]] [http://savannah.nongnu.org/projects/z80asm]&lt;br /&gt;
* [[pasmo]]&lt;br /&gt;
&lt;br /&gt;
=== Crunching ===&lt;br /&gt;
* [[Exomizer]]&lt;br /&gt;
* [[pucrunch]] [http://tj.gpa.free.fr/zip/sources/pucrunch.zip]&lt;br /&gt;
&lt;br /&gt;
=== Disassemblers ===&lt;br /&gt;
* [[dzasm]] [http://www.cepece.info/amstrad/download/dzasm.zip]&lt;br /&gt;
&lt;br /&gt;
=== Disc management ===&lt;br /&gt;
&lt;br /&gt;
* [[CPCTools]]&lt;br /&gt;
* [[iDSK]]&lt;br /&gt;
* [[cpcfs]] / [[cpcxfs]]&lt;br /&gt;
* [[dsktools]]&lt;br /&gt;
* [[cpmtools 2]] [http://www.moria.de/~michael/cpmtools/]&lt;br /&gt;
&lt;br /&gt;
=== Editing ===&lt;br /&gt;
&lt;br /&gt;
* scite&lt;br /&gt;
* pico&lt;br /&gt;
* xemacs&lt;br /&gt;
* [[How to use VIM for CrossDev|Vim]]&lt;br /&gt;
&lt;br /&gt;
=== Emulators ===&lt;br /&gt;
* [[Arnold (Emulator)|Arnold]]&lt;br /&gt;
* [[Caprice]] [http://sourceforge.net/projects/caprice32/]&lt;br /&gt;
* [[cpcemu]] [http://www.cpc-emu.org/]&lt;br /&gt;
* [[xcpc]] [http://xcpc.sourceforge.net/]&lt;br /&gt;
&lt;br /&gt;
=== Tape management ===&lt;br /&gt;
&lt;br /&gt;
* [[2cdt]] new version: [http://cpctech.cpc-live.com/download/2cdt.zip] — old version: [http://www.cepece.info/amstrad/download/2cdt.zip] &lt;br /&gt;
* [[cdtcheck]] [http://www.cepece.info/amstrad/download/cdtcheck.zip]&lt;br /&gt;
* [[cdttst]] [http://www.cepece.info/amstrad/download/cdttst.zip] &lt;br /&gt;
* [[samp2]] [http://www.cepece.info/amstrad/download/samp2.zip]&lt;br /&gt;
* [[UberCassette]] [http://www.retroreview.com/iang/UberCassette/]&lt;br /&gt;
&lt;br /&gt;
=== Toolkits ===&lt;br /&gt;
* [[CPCSDK]] toolkit which contains useful tools for cross-development under Linux - [http://code.google.com/p/cpcsdk/]&lt;br /&gt;
&lt;br /&gt;
=== Useful scripts ===&lt;br /&gt;
==== Suppress header information of a file ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat file_with_header | tail -c+129 &amp;gt; file_without_header&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Needed Tools ===&lt;br /&gt;
These tools have to not require a lot of requirement and most of them must work in command line without GUI. This will allow&lt;br /&gt;
to use them with Makefile scripts. They have to be fast too, it will be disappointing to wait more when doing CrossDev than when doing code on a real CPC.&lt;br /&gt;
A good thing (like most of CPCTools) is to have a portable code which compile on most platforms.&lt;br /&gt;
&lt;br /&gt;
* a good emulator which can be integrated in other tools. (Ramlaid first try to change Caprice is a good start)&lt;br /&gt;
* an integration of Ramlaid's tools with Nautilus&lt;br /&gt;
* ameliorations of Caprice in order to have similar functionalities than WinApe (disasm, asm, ...)&lt;br /&gt;
* debug the libdsk which seems to work very bad on actual computers (writting fail a lot)&lt;br /&gt;
* a lot of macros, or libraries for SJASMPlus shared by people in order to share code&lt;br /&gt;
* share a generic Makefile able to be use for build CPC project&lt;br /&gt;
* a lot of little command line utilities (could be add to CPCTools ?) really well done  :&lt;br /&gt;
** graphics tools :&lt;br /&gt;
*** convert images from PC to CPC, or CPC to PC (cf. tools based on ImageMagick or GD)&lt;br /&gt;
*** equivalent of Anoine's FontCatcher&lt;br /&gt;
** 2 tools which work with BASIC :&lt;br /&gt;
*** one for create BASIC AMSDOS files from ASCII or UTF-8 text files&lt;br /&gt;
*** one for create ASCII or UTF-8 text files from BASIC AMSDOS files&lt;br /&gt;
*** (this can already be done with manageDSK for files inside a DSK, maybe extract the code from there)&lt;br /&gt;
** data manipulation tools :&lt;br /&gt;
*** ability to arrange data files for example modify bytes order in a picture file by using Gray code capabilities for changing line with modifying 1 bit&lt;br /&gt;
&lt;br /&gt;
== Windows  ==&lt;br /&gt;
&lt;br /&gt;
=== Cross Assemblers  ===&lt;br /&gt;
&lt;br /&gt;
*[[Tasm|tasm]] &lt;br /&gt;
*[[Pasmo|Pasmo]] &lt;br /&gt;
*[[ZMac|ZMac]] &lt;br /&gt;
*[http://little-bat.de/prog/ zasm] &lt;br /&gt;
*[[WinApe|WinApe]]'s built in assembler&lt;br /&gt;
&lt;br /&gt;
=== Cross compilers (C) ===&lt;br /&gt;
&lt;br /&gt;
For tutorial, see http://www.cpcmania.com/Docs/Programming/Programming.htm by Mochilote&lt;br /&gt;
&lt;br /&gt;
* [[Z88DK]]&lt;br /&gt;
* [[SDCC]], notably [[SDCC and CPC]] had hints and practical examples about the principles of writing in C for CPC.&lt;br /&gt;
* [[PhrozenC]]&lt;br /&gt;
&lt;br /&gt;
=== Graphics  ===&lt;br /&gt;
&lt;br /&gt;
*[[AMSprite|AMSprite]] - Sprite/Loading Screen Editor and graphics conversion tools&lt;br /&gt;
&lt;br /&gt;
=== Sound  ===&lt;br /&gt;
&lt;br /&gt;
*[[WYZTracker|WYZTracker]]&amp;amp;nbsp;- Music tracker / Sound effects editor&lt;br /&gt;
*[[Vortex Tracker]]&lt;br /&gt;
&lt;br /&gt;
== Testing on a real CPC ==&lt;br /&gt;
&lt;br /&gt;
=== For cassette ===&lt;br /&gt;
&lt;br /&gt;
* 2CDT to add the files to a Cassette Image File (CDT)&lt;br /&gt;
* Tape2WAV to convert the Cassette Image file (CDT) into a WAV file.&lt;br /&gt;
* Then you can run the program on the emulator the same way as you would run it on a real CPC, or&lt;br /&gt;
* Connect your CPC (CPC664 and CPC6128 have a cassette input) to the Line-Out output of your PC soundcard&lt;br /&gt;
* On the CPC type:&lt;br /&gt;
&lt;br /&gt;
 |TAPE:RUN&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Start your WAV player&lt;br /&gt;
* Set the volume to maximum&lt;br /&gt;
* play the WAV file&lt;br /&gt;
* Wait for the program to load...&lt;br /&gt;
&lt;br /&gt;
=== For disc ===&lt;br /&gt;
&lt;br /&gt;
* Use CPCFS or CPCXFS to put the binary files into a Disk Image file (DSK)&lt;br /&gt;
* Then you can run the program on the emulator the same way as you would run it on a real CPC&lt;br /&gt;
&lt;br /&gt;
If your CPC has a 3.5&amp;quot; disc drive then the easiest method is to transfer the DSK to a 3.5&amp;quot; disc using the PC.&lt;br /&gt;
&lt;br /&gt;
- Then use CPCDiskXP to write the DSK to a 3.5&amp;quot; disc drive - Put the disc into your CPC's 3.5&amp;quot; disc drive and type - |B: RUN &amp;quot;&amp;amp;lt;gamename&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Snapshots ==&lt;br /&gt;
&lt;br /&gt;
The fastest way of testing your code on an emulator is by creating a snapshot. Use [[CPCSnapshot]] to insert your assembled code into a snapshot file. Then just load the snapshot file into the emulator. Windows users may also try WinAPE's integrated assembler which assembles the code directly into the emulated CPC's memory.&lt;br /&gt;
&lt;br /&gt;
== Web links ==&lt;br /&gt;
&lt;br /&gt;
* [http://ramlaid.free.fr/Amstrad/English/crossDev.htm CPC Cross Development tools by Ramlaid] (Link broken as 2012-01-08. If you can help, please update.)&lt;br /&gt;
&lt;br /&gt;
[[Category:Programming]] [[Category:CrossDev]]&lt;/div&gt;</summary>
		<author><name>FindYWay</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=IDSK&amp;diff=88084</id>
		<title>IDSK</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=IDSK&amp;diff=88084"/>
				<updated>2013-10-02T15:40:51Z</updated>
		
		<summary type="html">&lt;p&gt;FindYWay: Moved iDsk into its own page.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Idsk osx.png|thumb|upright=1.5|iDSK on OS X]]&lt;br /&gt;
&lt;br /&gt;
iDSK is a port of [[ManageDSK]] to Linux, Mac OS X and other UNIX OS made by Sid. This port is command-line only but features all the important functionality needed to manage DSK files:&lt;br /&gt;
&lt;br /&gt;
* Create a empty .DSK file (in DATA format),&lt;br /&gt;
* Add some files in an existing .DSK file,&lt;br /&gt;
* Extract some files from an existing .DSK file,&lt;br /&gt;
* Rename some files contained in a .DSK file,&lt;br /&gt;
* Delete some files contained in a .DSK file,&lt;br /&gt;
&lt;br /&gt;
You can download its source at [http://koaks.amstrad.free.fr/amstrad/projets/ Sid's homepage]. &lt;br /&gt;
&lt;br /&gt;
This tool works on all unix platforms, unlike cpcfs/cpcxfs which suffers from many endianness problems and can't work on powerPC, for example. The command line interface is designed for easy integration in a makefile, making it more efficient for cross-development.&lt;br /&gt;
&lt;br /&gt;
You will probably want to use [[dsktools]] to write the dsk image to a real floppy.&lt;br /&gt;
&lt;br /&gt;
[[Category:Emulation Tools]][[Category:CrossDev]]&lt;/div&gt;</summary>
		<author><name>FindYWay</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=ManageDsk&amp;diff=88083</id>
		<title>ManageDsk</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=ManageDsk&amp;diff=88083"/>
				<updated>2013-10-02T15:40:23Z</updated>
		
		<summary type="html">&lt;p&gt;FindYWay: Moved iDsk into its own page.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:ManageDsk.gif|thumb|ManageDsk]]&lt;br /&gt;
ManageDsk is a small tool which allows :&lt;br /&gt;
* Create a empty .DSK file (in DATA format),&lt;br /&gt;
* Add some files in an existing .DSK file,&lt;br /&gt;
* Extract some files from an existing .DSK file,&lt;br /&gt;
* Rename some files contained in a .DSK file,&lt;br /&gt;
* Delete some files contained in a .DSK file,&lt;br /&gt;
* And since version 0.15, Read/Write DSK files from/to a 3,5&amp;quot; floppy&lt;br /&gt;
&lt;br /&gt;
You can find it here : [http://amstrad.cpc.free.fr Amstradeus]&lt;br /&gt;
&lt;br /&gt;
In the download section : [http://amstrad.cpc.free.fr/download.php?dcategory=Utilitaires&amp;amp;sortby= Download]&lt;br /&gt;
&lt;br /&gt;
Direct link for version 0.20h (Build Feb 6 2012): [http://ldeplanque.free.fr/ManageDsk/ManageDsk_v0.20h.zip Here]&lt;br /&gt;
&lt;br /&gt;
== Sequel: iDSK ==&lt;br /&gt;
&lt;br /&gt;
ManageDsk was used as a basis to make [[iDSK]], a portable variant that runs on Linux, Mac OS X.&lt;br /&gt;
[[Category:Emulation Tools]][[Category:CrossDev]]&lt;/div&gt;</summary>
		<author><name>FindYWay</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=Contiki&amp;diff=88078</id>
		<title>Contiki</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=Contiki&amp;diff=88078"/>
				<updated>2013-10-02T10:01:54Z</updated>
		
		<summary type="html">&lt;p&gt;FindYWay: Fix markup from wrong &amp;quot;preformatted&amp;quot; to correct &amp;quot;numbered list&amp;quot;.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== What is Contiki? ==&lt;br /&gt;
&lt;br /&gt;
(Text copied from the official Contiki website.)&lt;br /&gt;
&lt;br /&gt;
[[Image:contikic64.jpg|right|thumb|250px|Contiki running on the Commodore 64]]&lt;br /&gt;
&lt;br /&gt;
The Contiki operating system is a highly portable, minimalistic operating system for a variety of constrained systems ranging from modern 8-bit microcontrollers for embedded systems to old 8-bit homecomputers. Contiki provides a simple event driven kernel with optional preemptive multithreading, interprocess communication using message passing signals, a dynamic process structure and support for loading and unloading programs, native TCP/IP support using the uIP TCP/IP stack, and a graphical subsystem with either direct graphic support for directly connected terminals or networked virtual display with VNC or Telnet.&lt;br /&gt;
&lt;br /&gt;
Contiki was designed with very low hardware requirements. And can run on a unexpanded Commodore 64.&lt;br /&gt;
The portability is ensured by the core being written entirely in ANSI [[C]].&lt;br /&gt;
&lt;br /&gt;
== Efforts in porting Contiki to Amstrad CPC ==&lt;br /&gt;
&lt;br /&gt;
[[Image:contikicpc.jpg|right|thumb|250px|Contiki running on the Amstrad CPC]]&lt;br /&gt;
&lt;br /&gt;
Previously there have been attempts to port Contiki to the CPC. The most successful port was done by [[Kevin Thacker]]. &lt;br /&gt;
&lt;br /&gt;
This was accomplished by:&lt;br /&gt;
# Modifying the linker so that it could generate binary files with relocation data&lt;br /&gt;
# Modifying the optimiser rules to reduce the program size.&lt;br /&gt;
# Modifying the source so it produced smaller and better code for the [[SDCC]] compiler to work with.&lt;br /&gt;
&lt;br /&gt;
The nature of Contiki (written almost entirely in C) and the poor Z80 optimisation by the SDCC compiler makes Contiki slow compared to other operating systems. &lt;br /&gt;
The desktop routines in the Amstrad port relies on the slow [[firmware]] routines because it was quicker to make the port this way. &lt;br /&gt;
&lt;br /&gt;
The Amstrad port runs in 64k. It doesn't make use of any extra RAM, this choice was taken so that a quick port could be done to proove it was possible.&lt;br /&gt;
&lt;br /&gt;
A key feature of Contiki is its ability to access networks.&lt;br /&gt;
&lt;br /&gt;
Two reasons prevented this in the Amstrad port:&lt;br /&gt;
# The compiled binaries for the webserver and other network programs were large, meaning that at runtime, both the binaries and contiki OS code could not fit into the 64K ram at the  same time&lt;br /&gt;
# The networking hardware was not at a sufficiently developed stage.&lt;br /&gt;
&lt;br /&gt;
The original plan was to implement CPC Booster support in Contiki.&lt;br /&gt;
The CPC would be connected to the PC via a serial cable.&lt;br /&gt;
On the PC would be Linux running Slip or PPP.&lt;br /&gt;
The PC would be connected to the internet through a Broadband connection, with port 8080 opened for incomming connections.&lt;br /&gt;
&lt;br /&gt;
The linux machine would effectively become a gateway and would pass information to/from the CPC through the serial connection.&lt;br /&gt;
&lt;br /&gt;
However, because the Contiki programs could not all fit into ram, this plan was shelved.&lt;br /&gt;
&lt;br /&gt;
The Amstrad version is based on Contiki v1.0.&lt;br /&gt;
&lt;br /&gt;
== Other Operating Systems for the CPC ==&lt;br /&gt;
&lt;br /&gt;
* [[CP/M]]&lt;br /&gt;
&lt;br /&gt;
* [[FutureOS]]&lt;br /&gt;
&lt;br /&gt;
* [[SymbOS]]&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.sics.se/contiki/about-contiki.html Official site of Contiki]&lt;br /&gt;
* [http://www.cpctech.org.uk/download/contiki12.zip Contiki source code for CPC version]&lt;br /&gt;
&lt;br /&gt;
[[Category:Operating System]][[Category:CPC GUI]]&lt;/div&gt;</summary>
		<author><name>FindYWay</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=Where_to_learn%3F&amp;diff=86312</id>
		<title>Where to learn?</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=Where_to_learn%3F&amp;diff=86312"/>
				<updated>2013-02-01T09:47:09Z</updated>
		
		<summary type="html">&lt;p&gt;FindYWay: /* CPC memory layout and usage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Note: This article was originally [http://www.cpczone.net/boards/viewtopic.php?t=1102 a post at the CPC Zone forums]''&lt;br /&gt;
&lt;br /&gt;
Well, here's some info that I hope will be useful to both you and others. I know very little about the MSX though, this is mostly about the CPC, although the Z80 assembler is the same for all computers; read on.&lt;br /&gt;
&lt;br /&gt;
First you need to make up your mind on what programme/game you are going to make. BASIC offers easiness and stability and quick development. Assembly code runs fast, but takes a while (so to speak) to write.&lt;br /&gt;
&lt;br /&gt;
On the CPC there's a choice of writing your program in assembler only, in a combination of assembler and BASIC, or in BASIC only (or of course in some other language(s)). You can use a BASIC compiler for speeding up BASIC code. FABACOM compiler speeds up a BASIC program by about a factor of 8. However there are no BASIC sprite routines; these have to be written in assembly anyway or use some ready-made routines.&lt;br /&gt;
&lt;br /&gt;
== Assembly ==&lt;br /&gt;
&lt;br /&gt;
=== What assembly is ===&lt;br /&gt;
&lt;br /&gt;
I think you could divide the problem of low level coding into three distinct parts.&lt;br /&gt;
&lt;br /&gt;
# Z80 assembly language &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Assembler syntax &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# CPC specifics (memory map, firmware (i.e. OS) and hardware)&lt;br /&gt;
&lt;br /&gt;
By saying &amp;quot;assembly&amp;quot;, &amp;quot;assembler&amp;quot; or &amp;quot;asm&amp;quot; (for short) 1. and 2. get intermixed and sometimes confuse people. By saying &amp;quot;assembly&amp;quot; the connotations point more to the z80 assembly language (it's commands, a.k.a. &amp;quot;mnemonics&amp;quot;. This is source code.); this is a mirror of the z80 architecture as every mnemonic has a direct machine code equivalent (i.e. object code). &amp;quot;Assembler&amp;quot; is a term more properly used for a full-blown program that gets the work done of converting source code into machine code and adds its own made-up commands (which are words that look like z80 mnemonics, but are actually only offered for convenience by the assembler) or directives (words that set up and take care of various things) in the syntax for ease of programming. &amp;quot;asm&amp;quot; may mean both.&lt;br /&gt;
&lt;br /&gt;
Also how a CPC does something, like printing a character on the screen depends on its firmware and hardware and how its memory is organized and used by the firmware, hardware and user-programs. The MSX has totally different hardware so here's where your code starts to differentiate. Since most of the asm code is general purpose, this is why Spectrum ports were so easy to make; just use different screen, sound and keyboard drivers and voila... Of course code that is specifically written for the CPC will take more advantage of its hardware (it will be less portable/general-purpose but the programme/game has the potential to run faster and have more features).&lt;br /&gt;
&lt;br /&gt;
=== Z80 assembly language reference documentation (not a tutorial) ===&lt;br /&gt;
&lt;br /&gt;
For general info on the Z80, your best bet I think is Sean Young's (an MSX emulator author) pdf's. These are not tutorials, but contain a list of every z80 mnemonic and how it works (i.e. what parameters it takes and where it stores the result, if there is one.) You should use these mostly for reference, rather for learning.&lt;br /&gt;
&lt;br /&gt;
Pretty complete documentation on the z80, but not a tutorial: &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://www.myquest.nl/z80undocumented/z80-documented-v0.91.pdf The Undocumented Z80 Documented v0.91 (pdf)]&lt;br /&gt;
&lt;br /&gt;
An older version of this file may be found here: &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://www.cpctech.org.uk/docs/z80.pdf Z80 documentation by Sean Young] (basically chapters 8 &amp;amp; 9 from the above document). [http://www.myquest.nl/z80undocumented/ Official source]&lt;br /&gt;
&lt;br /&gt;
A couple short documents that's more of the same thing: &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://www.ticalc.org/archives/files/fileinfo/128/12883.html The Complete Z80 Instruction Reference] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://www.ticalc.org/archives/files/fileinfo/1/109.html Z80 Microprocessor Instruction Set Summary]&lt;br /&gt;
&lt;br /&gt;
If you have a look in the latter files, you'll see that there are Z80 commands for moving things around (mostly LD, LDI, PUSH and POP), adding &amp;amp; subtracting &amp;amp; increment &amp;amp; decrement, logical operations, bit operations (bit tests, shifts, rotates), comparing two values &amp;amp; jumps (goto's) &amp;amp; calls ... basically that's all.&lt;br /&gt;
&lt;br /&gt;
What instruction to use depends on two things:&lt;br /&gt;
&lt;br /&gt;
# What you need to do. e.g. You need to add two 8-bit numbers, you use 8-bit addition. You need to add 1 to an 8-bit number, then you increment it by 1. You can do these two things (addition and increment) for 16-bit numbers too.&lt;br /&gt;
&lt;br /&gt;
# What the Z80 is able to do. It just can't do some things, for example it can't multiply two numbers. You'll need to use a multiplication routine for that. You can add a 16-bit value to the HL register pair, but you can't add a 16-bit value to any other register pair (like BC or DE). In order to get around this you'll have to move data around like exchanging the values of registers or saving data into other registers or on the stack or in a memory location. All CISC processors are full of such quirks (they are not &amp;quot;orthogonal&amp;quot;, which means you can't combine every command with every possible parameter type(s). Some commands only take specific parameters and you have to live with that).&lt;br /&gt;
&lt;br /&gt;
Assembler is in a class of languages considered error-prone, so you need to take care that your program is stable. Also, by learning z80 assembler you make a step forward for learning x86 assembler since this is a related family of processors.&lt;br /&gt;
&lt;br /&gt;
=== Z80 Assembly tutorial ===&lt;br /&gt;
&lt;br /&gt;
So there's the Z80 general stuff that you can learn in any Z80 tutorial. A good tutorial I know of is the [http://www.ticalc.org/pub/text/z80/z80asmg.zip Independent Z80 Assembly Guide]. Available online at [http://cobb.host.sk/z80guide/index.htm http://cobb.host.sk/z80guide/index.htm]. It &amp;quot;was written in a way that it can be used for ANY Z80 calculator or computer&amp;quot;. You can use all of this code with a CPC or CPC emulator and it will work. No graphics, sound, file or input routines are included of course; all this is CPC specific, but once you've learnt some of the general z80 stuff, then you'll be able to access the CPC's specific features. I'd recommend using WinAPE's built-in assembler, assemble everything in CPC's memory and then check the results with WinAPE's debugger (or in BASIC with peeks and pokes and/or short BASIC programs). Just put a&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;.org #4000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
in front of each example, and a&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ret&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
if necessary at the end, assemble and then use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;call #4000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
from BASIC to run the machine code.&lt;br /&gt;
&lt;br /&gt;
You don't need to know everything in the above tutorial to get you started. I'd say &amp;quot;The Basics&amp;quot; and &amp;quot;Simple Structures&amp;quot; chapters, the &amp;quot;Moving Data Blocks&amp;quot; paragraph and then the multiplication stuff (or skip that and just use a ready-made multiplication routine for now).&lt;br /&gt;
&lt;br /&gt;
Some useful Z80 links:&lt;br /&gt;
&lt;br /&gt;
* [http://www.ticalc.org/pub/text/z80/ Z80 Documentation]&lt;br /&gt;
&lt;br /&gt;
* [http://icarus.ticalc.org/articles/z80_faq.html z80 faq]&lt;br /&gt;
&lt;br /&gt;
* [http://www.cpctech.org.uk/docs/z80.html Some features of the Z80 (the Flags and LDIR are the more important)]&lt;br /&gt;
&lt;br /&gt;
* [http://www.cpctech.org.uk/docs/mult.html Multiplication with the Z80]&lt;br /&gt;
&lt;br /&gt;
Really &amp;quot;heavy&amp;quot; official Zilog documentation:&lt;br /&gt;
&lt;br /&gt;
* [http://www.myquest.nl/z80undocumented/z80cpu_um.pdf]Z80 Family CPU User Manual]&lt;br /&gt;
&lt;br /&gt;
=== Assembler syntax ===&lt;br /&gt;
&lt;br /&gt;
That tutorial teaches everything about Z80 assembly, but not much in the way of what is not actually a z80 mnemonic (e.g. LD) but an assembler command (e.g. DEFB). I think most directives don't even get a mention, like how to tell the assembler where to put the object code.&lt;br /&gt;
&lt;br /&gt;
Assembly on the CPC is usually MAXAM compatible (like WinAPE's assembler) since that assembler (MAXAM) set a standard on the CPC. (I personally use the WinAPE built-in assembler. You might also like Pasmo which has a feature similar to using local variables in high level language subroutines. In most assemblers all variables are global.) So in CPC assembly, directives like ORG, LIMIT, INCLUDE, EQU, END, BYTE - TEXT - DEFB - DB, WORD - DEFW - DW, RMEM - DEFS - DS, etc. usually depend on how MAXAM defines them. These commands are not actual Z80 commands, but assembler commands/directives. Assembler commands/directives define where to put the compiled code, they define constants, they tell the assembler to include other source files or header files, where and how to reserve space for and how to name variables, etc. Same goes for macros; some assemblers offer the possibility to define and use these for convenience, but they are not part of the z80 mnemonics. Thus macros may result in a little slower code than hand-optimized code.&lt;br /&gt;
&lt;br /&gt;
* [http://www.cpctech.org.uk/docs/maxam.pdf Maxam Documentation by Arnor Ltd]&lt;br /&gt;
&lt;br /&gt;
* [http://www.cpctech.org.uk/docs/maxam15.pdf Maxam 1.5 Supplementary Documentation by Arnor Ltd]&lt;br /&gt;
&lt;br /&gt;
== The CPC ==&lt;br /&gt;
&lt;br /&gt;
=== CPC memory layout and usage ===&lt;br /&gt;
&lt;br /&gt;
Only 64K is directly accessible by the Z80. On the CPC architecture the last 16K is by default used as the screen data (addresses &amp;amp;C000 to &amp;amp;FFFF). Addresses 0 to &amp;amp;170 and HIMEM+1 to &amp;amp;BFFF is used by the Firmware, BASIC and AMSDOS ROM's. Himem is a Locomotive BASIC variable that reports the highest available free memory location when the CPC boots up. By lowering this value, you assign less space for the BASIC part of your program and it's BASIC data (strings, variables, arrays). The rest (from the new HIMEM's value up to the initial HIMEM value when the computer boots up) can be used by your machine code and its data. You alter the HIMEM value by e.g.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;MEMORY &amp;amp;2000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
from BASIC. Obviously it shouldn't be lower than &amp;amp;170 or higher than HIMEM's initial value. (Sometimes I personally don't use this at all. If I compile something at &amp;amp;4000 and my BASIC program is small, then I just don't bother with MEMORY and HIMEM because usually nothing gets overwritten.)&lt;br /&gt;
&lt;br /&gt;
[http://cpcrulez.fr/firmware.txt The CPCEMU Amstrad CPC Firmware Guide] has, among other things, detailed information about the RAM layout on 464 and 6128. Yet it's not good practice to just POKE there as it may be incompatible with other models (e.g. the Plus range) or make your program crash whenever the system is not exactly like yours (e.g. expansion boards, which are now a substantial fraction of the remaining CPC users).&lt;br /&gt;
&lt;br /&gt;
=== CPC Hardware &amp;amp; Firmware ===&lt;br /&gt;
&lt;br /&gt;
Once you're through learning the z80 features and z80 assembly syntax, you'll have to learn a little (or a lot) about the CPC Hardware and how it works. You may also like to use some of the ready made routines offered by the CPC OS (the &amp;quot;Firmware&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
For the CPC specifics I believe your number one source of information should be [http://www.cpctech.org.uk/ The Unofficial Amstrad WWW Resource], especially the documents and source code sections.&lt;br /&gt;
&lt;br /&gt;
If you'd like to put some graphics (like tiles and sprites) on the screen you'll need some ready-made routines or start learning on how the CPC's screen works and write your own ones.&lt;br /&gt;
&lt;br /&gt;
The firmware documentation:&lt;br /&gt;
&lt;br /&gt;
[ftp://ftp.nvg.ntnu.no/pub/cpc/docs/firmware.zip The Amstrad CPC Firmware Guide] (in .dsk, text and pdf - you have to be a little patient with this link) which describes the ROM routines for loading files, printing characters on the screen, reading keyboard input, drawing lines, using floats/reals and more. It also describes how and what memory is used by the OS. Also online at: [http://www.cantrell.org.uk/david/tech/cpc/cpc-firmware/ http://www.cantrell.org.uk/david/tech/cpc/cpc-firmware/]&lt;br /&gt;
&lt;br /&gt;
== BASIC ==&lt;br /&gt;
&lt;br /&gt;
=== BASIC and BASIC compilers ===&lt;br /&gt;
&lt;br /&gt;
[http://www.amstradcg.nl/cpcbib.html CPC 664 user's manual]. In case you know some Locomotive BASIC (or you'd wish to learn) it contains general info on the computer along with some short Locomotive BASIC tutorials and full BASIC reference. (There's also a 464 OCR'd .pdf if anyone can upload it somewhere.)&lt;br /&gt;
&lt;br /&gt;
Here's an ok BASIC compiler: &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[ftp://ftp.nvg.ntnu.no/pub/cpc/utils/cpc/fabacom.zip FABACOM/FAST BASIC COMPILER], it compiles Locomotive BASIC source. It seems to not like some commands or parameters of commands. You'll know if your program crashes.&lt;br /&gt;
&lt;br /&gt;
There's at least another two Compilers that are supposed to compile Locomotive BASIC code, but I haven't tried them: &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Laser BASIC Compiler]] and a french BASIC compiler called Typhon. Both can be found at planetemu.net [http://www.planetemu.net/?section=recherche&amp;amp;recherche=Laser%20BASIC%20Typhon&amp;amp;type=Tous%20les%20mots&amp;amp;rubrique=roms here].&lt;br /&gt;
&lt;br /&gt;
Sean McManus has a nice BASIC tutorial including some assembler routines at: &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://www.sean.co.uk/books/amstrad/index.shtm Sean's Amstrad CPC homepage]&lt;br /&gt;
&lt;br /&gt;
== Other languages ==&lt;br /&gt;
&lt;br /&gt;
A VB-style compiler is supposedly coming soon for SymbOS.&lt;br /&gt;
&lt;br /&gt;
A list of languages available on the CPC: &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Programming software]]&lt;br /&gt;
&lt;br /&gt;
== A somewhat advanced example: How to use Locomotive BASIC &amp;amp; your own pipe commands ==&lt;br /&gt;
&lt;br /&gt;
You can use this for all asm source you have available, like for the tutorial source code.&lt;br /&gt;
&lt;br /&gt;
When calling some asm code from BASIC, you would use something like: &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;10 CLS &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
20 MEMORY &amp;amp;3FFF &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
30 CALL &amp;amp;4000 &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
40 END&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The Call command calls a machine code routine. If there's nothing at address &amp;amp;4000 then the computer will probably crash.&lt;br /&gt;
&lt;br /&gt;
When you assemble a z80 program it's important to instruct the assembler as to where it should put the resultant machine code. You do this by using the ORG assembler directive, like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;org #4000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
for the BASIC code above. If you have several machine code routines that you would like to call from BASIC then where to call depends on where the routine you want to call starts in memory. However calculating or copying and typing in specific addresses is cumbersome because each time you reassemble your program these memory locations may also change.&lt;br /&gt;
&lt;br /&gt;
The easiest way for calling machine code routines from BASIC is to set up a pipe-commands table. These are similar to the |DIR, |B, |CPM, etc. AMSDOS commands. How to do this is described in official Amstrad documentation: [http://www.cpctech.org.uk/docs/manual/s968se10.pdf SOFT 968 Section 10 (Expansion ROMs, Resident System Extensions and RAM Programs)]&lt;br /&gt;
&lt;br /&gt;
For example, start up WinAPE, press F6, create a New File from the assembler's File menu and copy and paste this code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
KL_LOG_EXT equ &amp;amp;bcd1&lt;br /&gt;
&lt;br /&gt;
org #4000&lt;br /&gt;
&lt;br /&gt;
INITIALIZE: LD HL,WORK_SPACE ;RSX power-up Routine&lt;br /&gt;
&lt;br /&gt;
LD BC,RSX_TABLE&lt;br /&gt;
&lt;br /&gt;
JP KL_LOG_EXT&lt;br /&gt;
&lt;br /&gt;
WORK_SPACE: DEFS 4 ;Area for Kernel to use&lt;br /&gt;
&lt;br /&gt;
RSX_TABLE: DEFW NAME_TABLE&lt;br /&gt;
&lt;br /&gt;
jp print&lt;br /&gt;
&lt;br /&gt;
jp multiply&lt;br /&gt;
&lt;br /&gt;
jp mem_move&lt;br /&gt;
&lt;br /&gt;
NAME_TABLE:&lt;br /&gt;
&lt;br /&gt;
defb 'PRIN','T'+#80&lt;br /&gt;
&lt;br /&gt;
defb 'MULTIPL','Y'+#80&lt;br /&gt;
&lt;br /&gt;
defb 'MEMMOV','E'+#80&lt;br /&gt;
&lt;br /&gt;
DEFB #00&lt;br /&gt;
&lt;br /&gt;
.print&lt;br /&gt;
&lt;br /&gt;
ret&lt;br /&gt;
&lt;br /&gt;
.multiply&lt;br /&gt;
&lt;br /&gt;
ret&lt;br /&gt;
&lt;br /&gt;
.mem_move&lt;br /&gt;
&lt;br /&gt;
ret&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assemble and type&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Call &amp;amp;4000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
from BASIC. Then you can call each of these routines from BASIC by name, like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;|PRINT&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that there's no code for all three commands (|PRINT, |MULTIPLY, |MEMMOVE) in this example, they just ret-urn to BASIC. You'll have to write the code for each command between each label and it's RET mnemonic or paste some existent code and rename accordingly the command names (below the NAME_TABLE label) and the jump table (the jp commands). Every jp corresponds one-to-one with an entry in the NAME_TABLE; the order is significant. NAME_TABLE entries must be all upper case with no underscores or spaces.&lt;br /&gt;
&lt;br /&gt;
Also you'd probably need to supply a number of parameters to each of the routines like you would in a high-level language function call. In this case A contains the number of parameters and (IX+offset) points to each parameter (each parameter has a word width so offset increases by 2).&lt;br /&gt;
&lt;br /&gt;
If your code is 100% assembler you don't need all of this. Just Call to some memory location and never RET-urn to BASIC.&lt;br /&gt;
&lt;br /&gt;
[[Category: Programming| ]]&lt;/div&gt;</summary>
		<author><name>FindYWay</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=Locomotive_BASIC&amp;diff=86311</id>
		<title>Locomotive BASIC</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=Locomotive_BASIC&amp;diff=86311"/>
				<updated>2013-02-01T09:42:30Z</updated>
		
		<summary type="html">&lt;p&gt;FindYWay: /* Web links */ [http://cpctech.cpc-live.com/docs/basic.asm Disassembly of Locomotive BASIC v1.1]&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;For other BASIC language versions see the [[:Category:BASIC]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Screenshots-CPC_Start_screen.jpg|thumb|CPC Start Screen showing Locomotive copyright and BASIC version]]&lt;br /&gt;
&lt;br /&gt;
Locomotive BASIC was a [http://en.wikipedia.org/wiki/BASIC_programming_language BASIC] interpreter for the Amstrad CPC range of computers.&lt;br /&gt;
&lt;br /&gt;
It was availlable directly from in-built ROMs on [[CPC old generation]] and on the [[Plus System Cartridge]] for the [[Plus]] range.&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
Locomotive BASIC, was one of the best and fastest BASIC implementations of the era. The language benefited both from a clean, well-thought out implementation of the core language by Locomotive, and by the excellent [[firmware]] of the CPC, which lent most of its advanced features to the BASIC.&lt;br /&gt;
&lt;br /&gt;
Unlike the competing Commodore 64, it featured a comprehensive graphic capabilities with its PLOT, DRAW, PAPER, INK, PEN, BORDER and (in BASIC 1.1) FILL commands. It had extensive sound commands, granting control of the [[AY-3-8912]] via the firmware's volume and tone envelope system. With the SOUND command, you could select channels, set envelopes, pitch, noise and volume. That was something unmatched by other computers of that era.&lt;br /&gt;
&lt;br /&gt;
Also there was simple interface for memory management, with MEMORY and LOAD commands. The latter allowed for loading of raw screen data, thus providing easy picture showing. Both through this (combined with CALL, PEEK and POKE) and the firmware's [[RSX]] system, it was easy to mix BASIC and assembly code, thereby speeding up programs by coding the slowest parts directly in machine code. Many successful programs, including games such as [[Radzone]] and applications such as [[PowerPage]], made use of this technique.&lt;br /&gt;
&lt;br /&gt;
With DEF FN, ON variable GOTO and ON variable GOSUB, Locomotive BASIC provided the rudiments of &amp;quot;structured programming&amp;quot;, though nowhere near the extent of the PROCedures of [[BBC Basic]].&lt;br /&gt;
&lt;br /&gt;
All in all, if you compare BASIC interpreters of that era, the Locomotive's seems to be the best 'all-rounder' regarding the combination of speed and complexity, and still some of its features were unmatched by others.&lt;br /&gt;
&lt;br /&gt;
If you are interested in more information about the different versions of the CPC's BASIC and the technical details, you can have a look at the article &amp;quot;[[Technical information about Locomotive BASIC]]&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Another helpful and further resource of information about BASIC and a similar comprehension to this is Grimware's Website about the CPC http://www.grimware.org/doku.php/documentations/software/locomotive.basic/start&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
&lt;br /&gt;
The CPC implementation of Locomotive BASIC was developed directly from [[Locomotive Software]]'s existing Z80 BASIC. The existence of this is cited as one of the reasons Locomotive requested that [[Amstrad]] change the CPC's processor from a 6502 to a [[Z80]].&lt;br /&gt;
&lt;br /&gt;
The 464 shipped with BASIC 1.0 on ROM.&lt;br /&gt;
&lt;br /&gt;
The language was revised and debugged for the 664, 6128 and Plus machines to become BASIC 1.1. Changes were minor but significant for the programmer, and included:&lt;br /&gt;
&lt;br /&gt;
* DEC$ bug removed (in BASIC 1.0, it required two opening brackets and was undocumented)&lt;br /&gt;
* Better handling of string arguments to RSXs (|DIR,&amp;quot;*.BAS&amp;quot; rather than a$=&amp;quot;*.BAS&amp;quot;:|DIR,@a$)&lt;br /&gt;
* DATA statements can appear anywhere within a line; in BASIC 1.0, they had to be at the end of a line&lt;br /&gt;
* FILL command (fill area with solid colour)&lt;br /&gt;
* COPYCHR$ function (fetch character from screen)&lt;br /&gt;
* Better garbage collection&lt;br /&gt;
* Some number-handling bugs removed (e.g. in FOR loops with negative start/end values)&lt;br /&gt;
* FRAME (CALL &amp;amp;BD19)&lt;br /&gt;
* Extra, optional 'plotting mode' parameter for DRAW/PLOT commands (supported only through control codes on BASIC 1.0)&lt;br /&gt;
* GRAPHICS PAPER, GRAPHICS PEN commands&lt;br /&gt;
* ON BREAK CONT (disable ESCape)&lt;br /&gt;
* CLEAR INPUT (flush keyboard buffer)&lt;br /&gt;
* The AUTO command show the whole line if it exist, it only printed a * on the 464&lt;br /&gt;
&lt;br /&gt;
Some parts of 'BASIC' were actually housed in the firmware ROM, but were not officially accessible to other programs. This included the line editor.&lt;br /&gt;
&lt;br /&gt;
The 'pure BASIC' parts of Locomotive BASIC - i.e. those not concerned with CPC-specific firmware and hardware features - were upgraded to become Mallard BASIC, the CP/M language shipped with the [[PCW]]. This also featured exceptionally advanced random-access file handling, a feature missing from the CPC.&lt;br /&gt;
&lt;br /&gt;
== Command list ==&lt;br /&gt;
&lt;br /&gt;
=== Commands and operators ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;AFTER ‹time delay›[,‹timer number›] GOSUB ‹line number› &amp;lt;/code&amp;gt;====&lt;br /&gt;
: Waits for ‹time delay›/50 seconds and then jumps NON-RECURRING to the subroutine at ‹line number› (see also &amp;lt;code&amp;gt;&amp;quot;EVERY i[,t] GOSUB line&amp;quot;&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;AUTO [‹line number›][,‹increment›] &amp;lt;/code&amp;gt;====&lt;br /&gt;
: Automatically generates line numbers starting at ‹line number› with ‹increment› after each entered line number. Use '''[ESC]''' to leave AUTO mode. Default values for ‹line number› and ‹increment› are 10.&lt;br /&gt;
&lt;br /&gt;
: Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;AUTO 100,5 :REM generates line numbers 100, 105, 110...&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;BORDER ‹colour›[,‹colour›] &amp;lt;/code&amp;gt;====&lt;br /&gt;
: Changes the colour of the border. If the second argument is supplied the border flashes between the two colours.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;CALL ‹address expression›[,‹list of: parameter›] &amp;lt;/code&amp;gt;====&lt;br /&gt;
: Allows a machine code routine to be called by BASIC. Variables, string values and constants can be passed to the routine. Values of any supported type can be passed back by supplying a variable with &amp;lt;code&amp;gt;@&amp;lt;/code&amp;gt; in front of it. This passes the address of the variable to the routine although it doesn't implicitly know the data type.&lt;br /&gt;
: Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;CALL 0 :REM resets the computer completely&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;CAT&amp;lt;/code&amp;gt; ====&lt;br /&gt;
: Displays the names of the files on the tape or disc. Tape files are displayed in the order they are encountered. Disc files are sorted alphabetically by ACSII code. Only files matching the current user are displayed. Files marked as system are not displayed.&lt;br /&gt;
: Examples:&lt;br /&gt;
&amp;lt;pre&amp;gt;CAT :REM lists all disc files in alpha-numeric (ASCII) order&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;|TAPE :CAT :REM lists names of all tape files in their storage order&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;CHAIN ‹file name›[,‹line number expression›] &amp;lt;/code&amp;gt;====&lt;br /&gt;
&lt;br /&gt;
:Enables the specified program to be loaded and RUN automatically. If the optional parameter ‹line number expression› is specified, the program execution will commence from that line.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;CHAIN MERGE ‹file name›[,‹line number expression› | [,[‹line number expression›],DELETE ‹line number range›]] &amp;lt;/code&amp;gt;====&lt;br /&gt;
&lt;br /&gt;
:Loads the specified program from tape or disc, merges it into the program in memory, and starts execution of the merged program. The parameter &amp;lt;code&amp;gt;DELETE&amp;lt;/code&amp;gt; ‹line number range› is used to delete part of the original program before running it, if required.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;CLEAR&amp;lt;/code&amp;gt; ====&lt;br /&gt;
: Clears all variables from memory, leaving the program in memory unchanged. All open files are abandoned.&lt;br /&gt;
: The command clear inside a subroutine (&amp;lt;code&amp;gt;GOSUB&amp;lt;/code&amp;gt;... &amp;lt;code&amp;gt;RETURN&amp;lt;/code&amp;gt;) will also clear the &amp;quot;stack pointer&amp;quot; address of the gosub heap. That means that a RETURN won't work and a GOTO has to be used instead.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;CLG [‹masked ink›] &amp;lt;/code&amp;gt;====&lt;br /&gt;
: Clears the graphics screen to colour specified by &amp;lt;code&amp;gt;‹masked ink›&amp;lt;/code&amp;gt;. If parameter &amp;lt;code&amp;gt;‹masked ink›&amp;lt;/code&amp;gt; is not specified then the graphics screen is cleared to the colour specified by the GRAPHICS PAPER statement.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;CLOSEIN&amp;lt;/code&amp;gt; ====&lt;br /&gt;
: Closes any input file (tape or disc).&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;CLOSEOUT&amp;lt;/code&amp;gt; ====&lt;br /&gt;
: Closes any output file (tape or disc).&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;CLS [#‹stream expression›]&amp;lt;/code&amp;gt;====&lt;br /&gt;
: Clears the window specified by ‹stream expression›. If ‹stream expression› is omitted it defaults to #0 (usually the whole screen). The text cursor of the stream is moved to the upper left corner.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;CONT&amp;lt;/code&amp;gt; ====&lt;br /&gt;
: CONTinues program execution interrupted either by [ESC] [ESC] or as a result of STOP within a program. A program cannot be continued after being modified.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;CURSOR ‹expression› &amp;lt;/code&amp;gt;====&lt;br /&gt;
: &amp;lt;code&amp;gt;‹expression›&amp;lt;/code&amp;gt; must be either 0 or 1.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;DATA x1[,x2,x3...]&amp;lt;/code&amp;gt; ====&lt;br /&gt;
: Defines a data ''section'' to be used by &amp;lt;tt&amp;gt;READ&amp;lt;/tt&amp;gt; calls.&lt;br /&gt;
: Data values can be of any type (integer, real or string) as long as the corresponding &amp;lt;tt&amp;gt;READ&amp;lt;/tt&amp;gt; calls use a variable of the right type.&lt;br /&gt;
&lt;br /&gt;
:Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
10 DATA &amp;quot;Hello, world!&amp;quot;, 42&lt;br /&gt;
20 READ message$:PRINT message$&lt;br /&gt;
30 READ answer:PRINT &amp;quot;The answer is:&amp;quot;;answer&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:''See also:'' &amp;lt;tt&amp;gt;READ&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;RESTORE&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;DEF&amp;lt;/code&amp;gt; ====&lt;br /&gt;
: DEF means &amp;quot;define&amp;quot; and comes along with defining a function in case of DEF FN or defining variables in case of DEFREAL, DEFINT or DEFSTR.&lt;br /&gt;
: DEF FN must come before using the statement FN.&lt;br /&gt;
: DEF with a variable declaration should come before using a variable.&lt;br /&gt;
: (see also FN)&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;DEFINT ‹letter range›&amp;lt;/code&amp;gt; ====&lt;br /&gt;
:Forces all variables(s) starting with the specified letter(s) to be integer variables. Singular letters could be defined or a range by a minus symbol between two letters.&lt;br /&gt;
&lt;br /&gt;
:Examples:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
20 DEFINT a-z:' sets all variables starting with an A until Z as integer.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
10 DEFINT F,S ..... (or 10 DEFINT A-Z)&lt;br /&gt;
20 FIRST=111.11:SECOND=22.2&lt;br /&gt;
30 PRINT FIRST,SECOND:' prints out 111      22&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;DEFREAL ‹letter range›&amp;lt;/code&amp;gt; ====&lt;br /&gt;
: Sets the default for variable(s) with the specified first letter(s) to a floating point figure.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;DEFSTR ‹letter range›&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
: Sets the default for variable(s) with the specified first letter(s) to string(s) variables.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;DEG&amp;lt;/code&amp;gt; ====&lt;br /&gt;
: Switch to degrees mode for trigonometric functions (&amp;lt;tt&amp;gt;SIN&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;COS&amp;lt;/tt&amp;gt;...).&lt;br /&gt;
: ''See also:'' &amp;lt;tt&amp;gt;RAD&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;DELETE [first line][-[last line]]&amp;lt;/code&amp;gt; ====&lt;br /&gt;
: Deletes the current program completely (without arguments) or only the given line or line range. Even&lt;br /&gt;
: &amp;lt;code&amp;gt;DELETE -&amp;lt;/code&amp;gt;&lt;br /&gt;
: is legal, it has the same effect as&lt;br /&gt;
: &amp;lt;code&amp;gt;DELETE&amp;lt;/code&amp;gt;&lt;br /&gt;
: The lines specified do not have to exist, all lines matching the range will be deleted and having no matches does not cause an error.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;DI&amp;lt;/code&amp;gt; ====&lt;br /&gt;
: Disables interrupts (but not[ESC]) until re-enabled by EI command or by RETURN at end of an interrupts service routine.&lt;br /&gt;
: This means that DI (if it's activated in a subroutine) is useful helping a low-priority-interrupt not to be stopped by a higher-priority-interrupt. RETURN then re-enable the interrupt without EI.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;DIM a[%|!|$](d1[,d2[,...]])&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
: Creates array &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; with single or multiple dimensions. You may optionally specify integer (&amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt;), real (&amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt;) or string (&amp;lt;code&amp;gt;$&amp;lt;/code&amp;gt;) type otherwise it defaults to the current type set for the first letter of the array name. &amp;lt;code&amp;gt;d1&amp;lt;/code&amp;gt; is size of first dimension-1, &amp;lt;code&amp;gt;d2&amp;lt;/code&amp;gt; is size of second dimension-1 and so on. &amp;lt;code&amp;gt;DIM x(10)&amp;lt;/code&amp;gt; will create an array with 11 elements, &amp;lt;code&amp;gt;x(0)&amp;lt;/code&amp;gt; is the first element, &amp;lt;code&amp;gt;x(10)&amp;lt;/code&amp;gt; is the eleventh and last. You can specify as many dimensions as will fit on one 255 character line, which is a maximum of 125. Trying to create an array that already exists will generate an &amp;lt;code&amp;gt;Array already dimensioned&amp;lt;/code&amp;gt; error. If an array is not specified by &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt; before being accessed, each dimension value defaults to 10. The maximum dimensions that can be created this way is three.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;DRAW x,y[,[i1][,i2]]&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
: Draws a line from the current cursor position to position x,y. i1 specifies colour, i2 is the drawing style.&lt;br /&gt;
&lt;br /&gt;
: 4 drawing styles:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
i2 = 0 normal colour&lt;br /&gt;
i2 = 1 XOR colour&lt;br /&gt;
i2 = 2 AND colour&lt;br /&gt;
i2 = 3 OR colour&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
: Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CLG 2&lt;br /&gt;
DRAW 500,400,0 :REM draws a line from 0,0 to 500,400&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;DRAWR xr,yr[,[i1][,i2]]&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
: Draws a line from current graphics cursor position to current cursor x position + xr, current cursor y position + yr. i1 and i2 as DRAW.&lt;br /&gt;
:Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Move 200,200&lt;br /&gt;
DRAWR 100,100,0 - draws a line from 200,200 to 300,300&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;EDIT ‹line›&amp;lt;/code&amp;gt; ====&lt;br /&gt;
: Copies one program line to screen in edition mode.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;EI&amp;lt;/code&amp;gt; ====&lt;br /&gt;
: Enable interrupts which have been disabled by DI&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;END&amp;lt;/code&amp;gt; ====&lt;br /&gt;
: Indicates end of program&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;ENT ‹tone envelope number›[,‹tone env. section›][,‹tone env. section›][,‹tone env. section›][,‹tone env. section›][,‹tone env. section›]&amp;lt;/code&amp;gt; ====&lt;br /&gt;
:The ENT command define the TONE shape of a sound which means manipulating the frequency in a certain range.&lt;br /&gt;
:The command could looks like:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ENT NUMBER,STEPS?,VERTICAL?,HORIZONTAL?&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:It is possible to define 15 different envelope shapes. So '''NUMBER''' could be 1-15.&lt;br /&gt;
&lt;br /&gt;
:Each '''?''' stands for up to five sections (1-5), where each STEP&amp;lt;&amp;gt;VERTICAL&amp;lt;&amp;gt;HORIZONTAL with the same '''?''' are belong together.&lt;br /&gt;
&lt;br /&gt;
:'''STEP:''' means how many steps in each section (0-127) &amp;gt; one step is 1/100 of a second!&lt;br /&gt;
:'''VERTICAL''': means how big is the step size from bottom to top (-128 to 127)&lt;br /&gt;
:'''HORIZONTAL''': means how big is the step size from left to right (0-255)&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;ENV ‹volume envelope number›[,‹volume env. section›][,‹volume env. section›][,‹volume env. section›][,‹volume env. section›][,‹volume env. section›]&amp;lt;/code&amp;gt; ====&lt;br /&gt;
:The ENV command define the VOLUME shape of a sound which means manipulating the loudness in a certain range.&lt;br /&gt;
:The command could looks like:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ENV NUMBER,STEPS?,VERTICAL?,HORIZONTAL?&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:It is possible to define 15 different envelope shapes. So '''NUMBER''' could be 1-15.&lt;br /&gt;
&lt;br /&gt;
:Each '''?''' stands for up to five sections (1-5), where each STEP&amp;lt;&amp;gt;VERTICAL&amp;lt;&amp;gt;HORIZONTAL with the same '''?''' are belong together.&lt;br /&gt;
&lt;br /&gt;
:'''STEP:''' means how many steps in each section (0-127) &amp;gt; one step is 1/100 of a second!&lt;br /&gt;
:'''VERTICAL''': means how big is the step size from bottom to top (-128 to 127)&lt;br /&gt;
:'''HORIZONTAL''': means how big is the step size from left to right (0-255)&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;ERASE v1[% | ! | $][,v2[% | ! | $][,...]]&amp;lt;/code&amp;gt; ====&lt;br /&gt;
: Erases the specified array(s) and frees the memory used. Must specify existing array(s) or an &amp;lt;code&amp;gt;Improper argument&amp;lt;/code&amp;gt; error will be generated.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;ERL&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
: Returns the line number of the last error encountered.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;ERROR i&amp;lt;/code&amp;gt; ====&lt;br /&gt;
: Returns the error message whose error code number is i.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;EVERY i[,t] GOSUB ln&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
: BASIC branches to the subroutine at line ln EVERY (reccuring) i/50 seconds. (see also &amp;quot;AFTER i[,t] GOSUB line&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
: There are 4 delay timers from 0 to 3 which can be specified with ‹timer number›. If omitted ‹timer number› defaults to 0.&lt;br /&gt;
: In the case of parallel task has 3 the highest and 0 the lowest priority.&lt;br /&gt;
: With DI or EI you can disable or enable the timing interrupt. With REMAIN &amp;lt;timer number&amp;gt; you can also disable an AFTER or EVERY construct and stores the &amp;quot;remaining&amp;quot; time (&amp;gt; REMAIN)&lt;br /&gt;
: Interrupts run as long as the main loop / program runs, even the main programm is paused &amp;gt; press ESC only '''once''' not twice for a break.&lt;br /&gt;
: It is important to know or realise that low-priority-interrupts which occurs simultanously to higher-priority-interrupts are not lost. Their task remains or handled again after finishing the higher-prio interrupt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
10 REM &amp;gt; interrupts&lt;br /&gt;
20 EVERY 50,0 GOSUB 100: REM &amp;gt; lowest priority&lt;br /&gt;
30 EVERY 100,1 GOSUB 200&lt;br /&gt;
40 EVERY 200,2 GOSUB 300:&lt;br /&gt;
50 AFTER 1000,3 GOSUB 400: REM &amp;gt; highest priority&lt;br /&gt;
60 WHILE flag=0&lt;br /&gt;
70 a=a+1:print a&lt;br /&gt;
80 WEND&lt;br /&gt;
90 END&lt;br /&gt;
100 REM #0&lt;br /&gt;
110 PEN 2:PRINT &amp;quot;timer 0&amp;quot;:PEN 1&lt;br /&gt;
120 RETURN&lt;br /&gt;
200 REM #1&lt;br /&gt;
210 PEN 2:PRINT &amp;quot;timer 1&amp;quot;:PEN 1&lt;br /&gt;
220 RETURN&lt;br /&gt;
300 REM #2&lt;br /&gt;
310 PEN 2:PRINT &amp;quot;timer 2&amp;quot;:PEN 1&lt;br /&gt;
320 RETURN&lt;br /&gt;
400 REM #3&lt;br /&gt;
410 flag=1:PEN 2:PRINT &amp;quot;no more interrupts...&amp;quot;&lt;br /&gt;
420 RETURN&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: Hint: Timing with interrupts is important, especially if more than one interrupts run. If the interval of a subroutine driven by an interrupt is too long than the processor can never get back to deal the main program again. Work out timing by measuring the subroutine or by trial and error.&lt;br /&gt;
: There are system internal interrupts (highest level) which cannot be influenced by BASIC interrupts (e.g. keyboard scan &amp;gt; BREAK key.)&lt;br /&gt;
: The next level of sytem internal interrupts CAN be influenced by BASIC interrupts. For example the sound queue which will be created by &amp;quot;ON SQ &amp;lt;chanel&amp;gt; GOSUB &amp;lt;line&amp;gt;&amp;quot;. Those sound interrupts have an independent time tricker but their priority is parallel to the second priority times of BASICs interrupts. Therefore interrupts with timer 3 could &amp;quot;interrupt&amp;quot; them.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;FILL i&amp;lt;/code&amp;gt; ====&lt;br /&gt;
: Fills an area of a graphics screen i colour i (0-15). Default value of i is the current graphics pen colour. Only available in Basic 1.1.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;FN&amp;lt;/code&amp;gt; ====&lt;br /&gt;
:BASIC allows the program to define and use simple value returning functions. DEF FuNction is the definition part of this mechanism and creates program-specific function which works within the&lt;br /&gt;
:program in the same way as a function such a COS operates as a built-in function of BASIC. It may be invoked throughout the program. Variable types must be consistent and the DEF FN&lt;br /&gt;
:command should be written in part of the program outside the execution loop.&lt;br /&gt;
&lt;br /&gt;
:Syntax : &amp;lt;code&amp;gt;DEF FN&amp;lt;name&amp;gt;[(&amp;lt;formal parameters&amp;gt;)]=&amp;lt;general expression&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Example: ''&amp;quot;with the definition of...&amp;quot;''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
10 gn=9.80665&lt;br /&gt;
20 DEF FNgrv=s0+v0*t+0.5*gn*t^2&lt;br /&gt;
30 s0=0:v0=0:t=5&lt;br /&gt;
40 PRINT &amp;quot;...after&amp;quot;;t;&amp;quot;seconds your dropped stone falls&amp;quot;;FNgrv;&amp;quot;metres&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:''&amp;quot;the results are...&amp;quot;''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
:...after 5 seconds your dropped stone falls 122.58315 metres&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;FOR TO STEP NEXT&amp;lt;/code&amp;gt; ====&lt;br /&gt;
: Creating a counting loop (control strucutre) with a starting condition. Inside the counting loop one or more commands will be executed.&lt;br /&gt;
: The loop consists of of following specifications:&lt;br /&gt;
&lt;br /&gt;
: 1. FOR&lt;br /&gt;
: 2. ''a control variable''&lt;br /&gt;
: 3. =&lt;br /&gt;
: 4. ''starting value''&lt;br /&gt;
: 5. TO&lt;br /&gt;
: 6. ''target value''&lt;br /&gt;
: 7. STEP [optional]&lt;br /&gt;
: 8. ''increment / step size''&lt;br /&gt;
: ''... instructions between''&lt;br /&gt;
: 9. NEXT&lt;br /&gt;
: 10. ''control variable'' [optional]&lt;br /&gt;
&lt;br /&gt;
: You have to use the command STEP if you wish to count backwards. It's good to name the ''control variable'' after NEXT for readability and better program style.&lt;br /&gt;
: After each loop the computer checks internaly if the ''target value'' has been reached (like an IF ... THEN ... ELSE instruction). If the target value is reached NEXT closes the loop and calculates another step, so the ''control variable'' will be changed last time.&lt;br /&gt;
: The default STEP value - if not specified - is one (1).&lt;br /&gt;
&lt;br /&gt;
: Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
10 FOR I=1 TO 10&lt;br /&gt;
20 PRINT I;&lt;br /&gt;
30 NEXT I&lt;br /&gt;
40 PRINT I&lt;br /&gt;
RUN&lt;br /&gt;
1   2   3   4   5   6   7   8   9   10   11&lt;br /&gt;
READY&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;FRAME&amp;lt;/code&amp;gt; ====&lt;br /&gt;
: Smooths character and graphics movement and reduces flicker (waits for a VSYNC signal). Only available in Basic 1.1. On a CPC 464 you can use CALL &amp;amp;BD19 instead.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;GOSUB i&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
: Jumps to subroutine which is given as argument.&lt;br /&gt;
: ''Example:''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
10 PRINT &amp;quot;Calling subroutine&amp;quot;&lt;br /&gt;
20 GOSUB 100&lt;br /&gt;
30 PRINT &amp;quot;Back from subroutine&amp;quot;&lt;br /&gt;
40 END&lt;br /&gt;
100 REM Begin of the subroutine&lt;br /&gt;
110 PRINT &amp;quot;Subroutine started&amp;quot;&lt;br /&gt;
120 RETURN&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;GOTO i&amp;lt;/code&amp;gt; ====&lt;br /&gt;
: Jumps to the line number which is given as argument.&lt;br /&gt;
: ''Example:''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
10 GOTO 100&lt;br /&gt;
20 REM not executed&lt;br /&gt;
30 REM not executed&lt;br /&gt;
100 PRINT &amp;quot;Hello World!&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
: GOTO is the simplest form of a jump or creating a loop '''without''' condition controll.&lt;br /&gt;
: ''Example: (unconditional and endless loop)''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
10 PRINT &amp;quot;#&amp;quot;;&lt;br /&gt;
20 GOTO 10&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
: Combine the GOTO command with an IF...THEN...ELSE instruction for creating a condition-controlled loop with the '''test at the end'''. Helpful because the Locomotive Basic has no practical DO...WHILE... loop.&lt;br /&gt;
: ''Example: (condition at the end)''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
10 I=1&lt;br /&gt;
20 PRINT I&lt;br /&gt;
30 I=I+1&lt;br /&gt;
40 IF I&amp;lt;25 THEN GOTO 10&lt;br /&gt;
50 END&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;GRAPHICS&amp;lt;/code&amp;gt; ====&lt;br /&gt;
: ...works only in combination with the command &amp;lt;code&amp;gt;PEN&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;PAPER&amp;lt;/code&amp;gt; to set the plotting/drawing pen or background colour.&lt;br /&gt;
: If the &amp;lt;code&amp;gt;TAG&amp;lt;/code&amp;gt; command is used to set text at the graphics cursor &amp;lt;code&amp;gt;GRAPHICS PEN&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;GRAPHICS PAPER&amp;lt;/code&amp;gt; instead of the regular &amp;lt;code&amp;gt;PEN&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;PAPER&amp;lt;/code&amp;gt;is necessary to colour the text.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;IF THEN ELSE&amp;lt;/code&amp;gt; ====&lt;br /&gt;
: Asks for a choice with the '''IF...THEN...ELSE''' statement.&lt;br /&gt;
: '''IF''' compares the entry condition in a logical way&lt;br /&gt;
: '''THEN''' contains instruction if the comparison is true&lt;br /&gt;
: '''ELSE''' contains instruction if it's false.&lt;br /&gt;
: '''Example:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
10 INPUT &amp;quot;guess a figure:&amp;quot;,f&lt;br /&gt;
20 IF f=10 THEN PRINT &amp;quot;right&amp;quot;: END: ELSE GOTO 10&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
: In case of nested choices there's a possibility to that with an IF...THEN instruction but not very recommended:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
10 INPUT &amp;quot;guess a figure:&amp;quot;,f&lt;br /&gt;
20 IF f=10 THEN PRINT &amp;quot;right&amp;quot;: END: ELSE IF f&amp;lt;10 THEN PRINT &amp;quot;too small&amp;quot; ELSE PRINT &amp;quot;too big&amp;quot;&lt;br /&gt;
30 GOTO 10&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:Other nested structures like IF...THEN...'''ELSE...ELSE''' won't work first because the Locomotive Basic only looks after the first ELSE instruction found and can't execute more single commands as a block for a certain condition in comparision to e.g. &amp;quot;PASCAL&amp;quot; &amp;gt; begin...end-block, &amp;quot;C&amp;quot; &amp;gt; {...}-block.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;INK&amp;lt;/code&amp;gt; ====&lt;br /&gt;
: [...]&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;INPUT[#‹stream expression›][,]&amp;lt;/code&amp;gt; ====&lt;br /&gt;
: [...]&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;KEY&amp;lt;/code&amp;gt; ====&lt;br /&gt;
: [...]&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;LET&amp;lt;/code&amp;gt; ====&lt;br /&gt;
: Used to define variables. You don't need to use the ''LET'' command because it is just a command which was added for compatibility reasons.&lt;br /&gt;
: ''Example:''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
10 LET a$ = &amp;quot;hello world&amp;quot;&lt;br /&gt;
20 PRINT a$&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;LINE INPUT [#‹stream expression›][,]‹variable›[,‹variable›] &amp;lt;/code&amp;gt;====&lt;br /&gt;
: [...]&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;LIST [‹line number›][-[‹line number›]], [#‹stream expression›]&amp;lt;/code&amp;gt;====&lt;br /&gt;
: A command for listing the Basic program code.&lt;br /&gt;
: Possibility for manipulating display is using line numbers with a minus symbol.&lt;br /&gt;
: Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LIST 100-&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
: List every line after line number 100.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LIST -100&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
: List every line until line number 100 has reached.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LIST 100-200&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
: List every line between line number 100 and 200 included&lt;br /&gt;
&lt;br /&gt;
: With the help of seperate window definitions it is possible to print out long listings, better differents parts / slices of it into different window predefined&lt;br /&gt;
: Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LIST 1000-1100,#1&lt;br /&gt;
LIST 3000-3100,#2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
: ...prints out two parts of one program out into two windows (if they are defined well)&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;LOAD ‹file name›[,‹address›] &amp;lt;/code&amp;gt;====&lt;br /&gt;
: [...]&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;LOCATE[#‹stream expression›][,] x,y&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
: Moves the text cursor to the x,y location. &lt;br /&gt;
&lt;br /&gt;
: x starts at 1 on the left and goes up to 20 (in mode 0), 40 (in mode 1) or 80 (in mode 2).&lt;br /&gt;
&lt;br /&gt;
: y starts at 1 at the top and ends at 25 at the bottom.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;MASK [i1][,i2]&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
: Sets bits in each adjacent group of 8 pixel on (1) or off (0) according to binary value of i1 (0-255). i2 determines whether the first point of the line is to plotted (1) or not (0).&lt;br /&gt;
&lt;br /&gt;
:Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
10 CLG 2:MASK 1:MOVE 0,0:DRAW 500,400&lt;br /&gt;
20 MASK 15:MOVE 0,0:DRAW 500,400&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;MEMORY ‹memory address›&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
: Allocates the amount of memory to be used by BASIC by setting the address of the highest byte it may use.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;MERGE&amp;lt;/code&amp;gt; ====&lt;br /&gt;
: [...]&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;MID$ (‹string›,‹start position›[,‹length of substring›])&amp;lt;/code&amp;gt; ====&lt;br /&gt;
: With the MID$ command there are two applications possible:&lt;br /&gt;
&lt;br /&gt;
: 1. MID$ creates a new substring out of the give ‹string› and starts at the defined position ‹start position› and print the number of given characters by ‹length of substring›.&lt;br /&gt;
: If no length is defined every character from ‹start position› will be printed out.&lt;br /&gt;
: If a higher value of ‹start position› or ‹length of substring› than the real length of the initial string is defined a blank string will be printed.&lt;br /&gt;
: The range of ‹start position› or ‹length of substring› is from 0 up to 255 characters.&lt;br /&gt;
&lt;br /&gt;
: 2. With MID$ you're able to manipulates given strings by inserting a new string.&lt;br /&gt;
: Take care of the two different applications and using in BASIC.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: Example for the 1. application:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
10 a$=&amp;quot;Hello&amp;quot;&lt;br /&gt;
20 PRINT MID$(a$,2,2)&lt;br /&gt;
run&lt;br /&gt;
el&lt;br /&gt;
Ready&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:&lt;br /&gt;
: Example for the 2. application&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
10 a$=&amp;quot;Hello&amp;quot;&lt;br /&gt;
20 MID$(a$,2,3)=&amp;quot;ipp&amp;quot;&lt;br /&gt;
30 PRINT a$&lt;br /&gt;
run&lt;br /&gt;
Hippo&lt;br /&gt;
Ready&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;MODE&amp;lt;/code&amp;gt; ====&lt;br /&gt;
: Changes the screen mode: MODE 0 is 160x200 in 16 colors, MODE 1 is 320x200 4 colors, MODE 2 is 640x200 2 colors and MODE 3 is 160x200 in 4 colors.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;MOVE x,y [[,i1][,i2]]&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
: Moves the graphic cursor to position x,y. The parameter i1 may be used to change the pen (drawing) colour. The parameter i2 specifies the logical colour, as in DRAW.&lt;br /&gt;
&lt;br /&gt;
: 4 drawing styles: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
i2 = 0 normal colour&lt;br /&gt;
i2 = 1 XOR colour&lt;br /&gt;
i2 = 2 AND colour&lt;br /&gt;
i2 = 3 OR colour&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;MOVER xr,yr[,[i1][,i2]]&amp;lt;/code&amp;gt; ====&lt;br /&gt;
: moves the graphic cursor (relative) from current position to current cursor x position + xr, current cursor y position + yr. i1 and i2 as in MOVE.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;NEW&amp;lt;/code&amp;gt; ====&lt;br /&gt;
: Clears BASIC RAM which means program and variables. Keeps symbol defintion (if defined) and screen mode without clearing.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;ON BREAK CONT&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
: Prevents the interruption of program execution by the ESC key.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;ON BREAK GOSUB ln&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
: Passes control to subroutine at line ln when ESC ESC pressed.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;ON BREAK STOP&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
: Restores normal function of ESC key during program execution.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;ON ERROR GOTO ln&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
: Passes the control to line ln if an error is detected in the program.&lt;br /&gt;
&lt;br /&gt;
: ON ERROR GOTO 0, Turns of the error trap, and restores normal error processing.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;ON variable GOTO ln x1, x2, x3, x4, ...&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
: In case of passing more choices '''ON variable GOTO ln x1, x2, x3, x4, ...''' points to a table with the jumping target.&lt;br /&gt;
: '''Example:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
10 PRINT &amp;quot;1. LOAD - 2. SAVE - 3. EXIT&amp;quot;&lt;br /&gt;
20 INPUT choice&lt;br /&gt;
30 ON choice GOTO 1000, 2000, 3000&lt;br /&gt;
40 CLS: GOTO 10&lt;br /&gt;
1000 PRINT &amp;quot;1. LOAD&amp;quot;:END&lt;br /&gt;
2000 PRINT &amp;quot;2. SAVE&amp;quot;:END&lt;br /&gt;
3000 END&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:In case that the variable ''choice'' won't fullfil the condition (in a range between line 0 and 65535) the next instruction will be executed (here: Line 40). If &amp;quot;choice&amp;quot; is smaller than 0 an error will occur.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;ON variable GOSUB ln x1, x2, x3, x4, ...&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
: In case of passing more choices targeting to SUBROUTINES '''ON variable GOSUB ln x1, x2, x3, x4, ...''' points to a jumping table.&lt;br /&gt;
: '''Example:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
10 PRINT &amp;quot;1. LOAD - 2. SAVE - 3. EXIT&amp;quot;&lt;br /&gt;
20 INPUT choice&lt;br /&gt;
30 ON choice GOSUB 1000, 2000, 3000&lt;br /&gt;
40 CLS: GOTO 10&lt;br /&gt;
1000 PRINT &amp;quot;1. LOAD&amp;quot;:RETURN&lt;br /&gt;
2000 PRINT &amp;quot;2. SAVE&amp;quot;:RETURN&lt;br /&gt;
3000 END&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:In case that the variable ''choice'' won't fullfil the condition (in a range between line 0 and 65535) the next instruction will be executed (here: Line 40). If &amp;quot;choice&amp;quot; is smaller than 0 an error will occur.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;ON SQ(x) GOSUB ln x1, x2, x3, x4, ...&amp;lt;/code&amp;gt; ====&lt;br /&gt;
:ON SQ(x) can trigger an interrupt when e.g. a space or free channel in queue.&lt;br /&gt;
:Using that command is a one way interrupt trigger and shouldn't be mixed with EVERY or AFTER commands.&lt;br /&gt;
&lt;br /&gt;
:See also the SQ(x) command for more details.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;OPENIN ‹filename›&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
: Opens the specified data file for reading. It have to be an ASCII file. ( The command closein closes reading data file. )&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;OPENOUT ‹filename›&amp;lt;/code&amp;gt; ====&lt;br /&gt;
: Opens the specified data file for writing. It writes an ASCII file. (To close writing use the command closein.)&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;ORIGIN x,y[,l,r,t,b]&amp;lt;/code&amp;gt; ====&lt;br /&gt;
: The command defines the origin ('world reference point') for the graphics coordinate system. Normally the reference origin is in the left, bottom corner of the default screen and has 0,0. So the most left coordinate value could be by default 639 and the most top value 399. Independent from the actual modus (2, 1 or 0) the range for the x coordinate are always 640 points and for the y coordinate 400 points. In theory you are able to address 256,000 pixel but only 128,000 are visible due to the maximal resolution of the hardware.&lt;br /&gt;
: &amp;lt;code&amp;gt;x,y&amp;lt;/code&amp;gt; are the the new coordinates for the 'world reference '.&lt;br /&gt;
: &amp;lt;code&amp;gt;l,r,t,b&amp;lt;/code&amp;gt; are optional and set the borders for the new graphical window (works in the same way like the &amp;lt;code&amp;gt;WINDOW&amp;lt;/code&amp;gt; command for a text window). l,r,t,b means left, right, tob and bottom coordinates.&lt;br /&gt;
: If a new graphical window (borders) is defined every point or drawn line won't be plotted (clipped internally).  &lt;br /&gt;
&lt;br /&gt;
: Example (the line drawn will be cutted):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ORIGIN 320,200,250,450,100,300&lt;br /&gt;
DRAW 0,200&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;OUT ‹address›,‹value›&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
: Outputs a value (range of 0-255) to a specific I/O address.&lt;br /&gt;
: Watch out http://cpcwiki.eu/index.php/I/O_Port_Summary&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;PAPER[#‹stream expression›][,]&amp;lt;/code&amp;gt; ====&lt;br /&gt;
: [...]&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;PEN[#‹stream expression›][,]&amp;lt;/code&amp;gt; ====&lt;br /&gt;
: [...]&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;PLOT&amp;lt;/code&amp;gt; ====&lt;br /&gt;
: [...]&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;PLOTR&amp;lt;/code&amp;gt; ====&lt;br /&gt;
: [...]&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;POKE add&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
: Alters contents of memory location add to value i (0-255)&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;PRINT[#‹stream expression›][,]&amp;lt;/code&amp;gt; ====&lt;br /&gt;
: [...]&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;RAD&amp;lt;/code&amp;gt; ====&lt;br /&gt;
: Switch to radians mode for trigonometric functions (&amp;lt;code&amp;gt;SIN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;COS&amp;lt;/code&amp;gt;...).&lt;br /&gt;
&lt;br /&gt;
: ''See also:'' &amp;lt;code&amp;gt;DEG&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;RANDOMIZE [seed]&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
: Resets the pseudo-random generator to the given seed (starting value of the 'random' series). What is strange is that if no seed is given, one is interactively prompted for.&lt;br /&gt;
&lt;br /&gt;
: A common idiom to have a ''random'' random seed is to do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
RANDOMIZE TIME&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;code&amp;gt;RANDOMIZE TIME&amp;lt;/code&amp;gt; isn't still a 'real' random number but to hit the same series again is pretty hard due to the time elapsed.&lt;br /&gt;
: The algorithm used for randomizing is the following: the generator starts with the seed, adds 1, multiplies by 75 (fiddle factor), divides by 65537 and then uses the remainder -1.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;READ variable&amp;lt;/code&amp;gt; ====&lt;br /&gt;
: Gets the next data item (from &amp;lt;tt&amp;gt;DATA&amp;lt;/tt&amp;gt; commands), stores it in the given variable and moves to the next item.&lt;br /&gt;
The variable must be of the correct type.&lt;br /&gt;
&lt;br /&gt;
''See also:'' &amp;lt;tt&amp;gt;DATA&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;RESTORE&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;RELEASE chanel&amp;lt;/code&amp;gt; ====&lt;br /&gt;
: Releases a sound which was hold on (by a SOUND command) before. It uses the same bit matrix like the SOUND command for the first parameter&lt;br /&gt;
# (&amp;amp;x00000001) releases chanel A&lt;br /&gt;
# (&amp;amp;x00000010) releases chanel B&lt;br /&gt;
# (&amp;amp;x00000011) releases chanel A and B&lt;br /&gt;
# (&amp;amp;x00000100) releases chanel C&lt;br /&gt;
# (&amp;amp;x00000101) releases chanel A and C&lt;br /&gt;
# (&amp;amp;x00000110) releases chanel B and C&lt;br /&gt;
# (&amp;amp;x00000111) releases chanel A, B and C&lt;br /&gt;
&lt;br /&gt;
:Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
10 SOUND 65,1000,100&lt;br /&gt;
20 PRINT&amp;quot;PRESS R TO LET IT SOUND&amp;quot;&lt;br /&gt;
30 IF INKEY(50)=-1 THEN 30&lt;br /&gt;
40 RELEASE 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;REM [any text]&amp;lt;/code&amp;gt; ====&lt;br /&gt;
: Introduces a comment.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;RENUM [‹newLine›][,‹oldLine› | ,[‹oldLine›],‹step›] &amp;lt;/code&amp;gt;====&lt;br /&gt;
: Renumbers the lines of the current program.&lt;br /&gt;
&lt;br /&gt;
: By default, the whole program is renumbered starting at line 10 with multiples of ten. Any parameter that is left out defaults to 10. It is important to note that ''jumps'' (&amp;lt;code&amp;gt;GOTO&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;GOSUB&amp;lt;/code&amp;gt; and the like) are automatically converted to the new line numbers.&lt;br /&gt;
&lt;br /&gt;
: The whole set of parameters can be used to renumber only the last part of a program.&lt;br /&gt;
&lt;br /&gt;
: Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
10 GOTO 20&lt;br /&gt;
20 GOTO 30&lt;br /&gt;
30 GOTO 10&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: becomes, after calling &amp;lt;code&amp;gt;RENUM 100,20,5&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
10 GOTO 100&lt;br /&gt;
100 GOTO 105&lt;br /&gt;
105 GOTO 10&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;RESTORE [line]&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
: Resets the data pointer used by &amp;lt;tt&amp;gt;READ&amp;lt;/tt&amp;gt;. When used without parameters, resets the pointer to the first data in the program. Otherwise, resets the pointer to the given line number.&lt;br /&gt;
&lt;br /&gt;
: Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
10 DATA 10,11,12,13,14&lt;br /&gt;
20 DATA 20&lt;br /&gt;
READ i:PRINT i&lt;br /&gt;
 10&lt;br /&gt;
Ready&lt;br /&gt;
READ i:PRINT i&lt;br /&gt;
 11&lt;br /&gt;
Ready&lt;br /&gt;
RESTORE&lt;br /&gt;
Ready&lt;br /&gt;
READ i:PRINT i&lt;br /&gt;
 10&lt;br /&gt;
Ready&lt;br /&gt;
RESTORE 20&lt;br /&gt;
Ready&lt;br /&gt;
READ i:PRINT i&lt;br /&gt;
 20&lt;br /&gt;
Ready&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: ''See also:'' &amp;lt;tt&amp;gt;DATA&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;READ&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;RESUME [line] or NEXT&amp;lt;/code&amp;gt; ====&lt;br /&gt;
: Command causes the program to resume after an error code  and if it is interrupted by an '''ON ERROR GOTO''' jump&lt;br /&gt;
: So it can either resume&lt;br /&gt;
*(if there's no line number stated) at the same line after error code (and if there are more statements in one line)&lt;br /&gt;
or&lt;br /&gt;
* at the line number stated (optional)&lt;br /&gt;
or&lt;br /&gt;
* with the NEXT parameter (optional) ... at the line followed by the error line&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;RETURN&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
: Terminates a subroutine and returns control to the line following the GOSUB call (see GOSUB)&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;RUN [line] or &amp;quot;filename&amp;quot;&amp;lt;/code&amp;gt; ====&lt;br /&gt;
:Runs the current program, optionally starting at a given line. If no line number is given, starts at the first line.&lt;br /&gt;
&lt;br /&gt;
:If a string is used after RUN command a programm will be loaded and executed from storage medium (e.g. Tape, Disc). With that command protected BASIC programs can be executed.&lt;br /&gt;
&lt;br /&gt;
:Exampel:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
RUN&amp;quot;disc&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;SAVE &amp;quot;filename&amp;quot; [,filetype][,paramter1,parameter2,parameter3]&amp;lt;/code&amp;gt; ====&lt;br /&gt;
: Command saves the current BASIC program / content from RAM onto a storage medium (e.g. Tape, Disc)&lt;br /&gt;
&lt;br /&gt;
: Filetype could be:&lt;br /&gt;
* ''',A''' for a ASCII file&lt;br /&gt;
* ''',B''' for a binary file (store RAM content as it is)&lt;br /&gt;
* ''',P''' for a regular, ''protected'' BASIC file&lt;br /&gt;
: without that parameter the content will be stored as a regular BASIC file&lt;br /&gt;
&lt;br /&gt;
:The three parameters after filetype could be used in combination with the binary filetype (,B).&lt;br /&gt;
* '''''parameter1''''' defines the starting address of memory range&lt;br /&gt;
* '''''parameter2''''' defines the length (range of memory)&lt;br /&gt;
* '''''parameter3''''' defines the entry point (optional)&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;SOUND&amp;lt;/code&amp;gt; ====&lt;br /&gt;
: the SOUND command has following shape:&lt;br /&gt;
: SOUND '''C'''hannel,'''P'''eriod,'''D'''uration,'''V'''olume,Volume-'''Env'''elope,'''T'''one-'''En'''velope,'''N'''oise&lt;br /&gt;
&lt;br /&gt;
:'''C:''' Selecting channel is done bitwise (combinations are possible of course):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(Bit 0) &amp;amp;x00000001 = 1 = channel A (middle)&lt;br /&gt;
(Bit 1) &amp;amp;x00000010 = 2 = channel B (left)&lt;br /&gt;
(Bit 2) &amp;amp;x00000100 = 4 = channel C (right)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:more function about channel are&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(Bit 3) &amp;amp;x00001000 = 8 = Rendezvous with channel A&lt;br /&gt;
(Bit 4) &amp;amp;x00010000 = 16 = Rendesvous with channel B&lt;br /&gt;
(Bit 5) &amp;amp;x00100000 = 32 = Rendesvous with channel C&lt;br /&gt;
(Bit 6) &amp;amp;x01000000 = 64 = Hold&lt;br /&gt;
(Bit 7) &amp;amp;x10000000 = 128 = Flush&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:'''P:''' the period number can be a figure between 0 and 4095 (2^12-1... 12 means that we have 12 tones (inclusive half-tones) in nine octaves on the CPC in sum and their distance between is the twelves square root of two), where 8 octaves are available. E.g. Octave 0 starts on middle C with number 478.&lt;br /&gt;
: To calculate the period you can use following formula: '''period=1,000,000/(16*frequency)''' or in short '''period=(65,000/frequency)'''&lt;br /&gt;
: (e.g. the note &amp;quot;A&amp;quot; with the frequency 440 Hz has the period 142 on the CPC)&lt;br /&gt;
&lt;br /&gt;
:'''D:''' the duration of the note is measured in 1/100th of a second and can be any positive number in the range 1-32,767. 0 and negative number are in combination with ENT and ENV commands usefull. A negative number means repititions.&lt;br /&gt;
&lt;br /&gt;
:'''V:''' the volume number range from 0-7 on a CPC 464 (BASIC 1.0) or 0-15 on a CPC664/6128 (BASIC 1.1)&lt;br /&gt;
&lt;br /&gt;
:'''ENV:''' and '''ENT:''' For shaping the sound ENV (Volume) and ENT (Frequency) commands are available. The relation between SOUND and those commands comes with a figure between 1 to 15 for ENV (5th parameter) and 1 to 15 for ENT (6th parameter).&lt;br /&gt;
&lt;br /&gt;
:'''N:''' the seventh parameter can be used for blending in noise between the range of 0-15 (BASIC 1.0) or 0-30 (BASIC 1.1). The higher the number the 'deeper' or 'dirty' is the noise.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;SPC &amp;lt;n&amp;gt;&amp;lt;/code&amp;gt; ====&lt;br /&gt;
: in conjunction with PRINT the SPC command prints out a certain number (n) of spaces.&lt;br /&gt;
: Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PRINT &amp;quot;Hello&amp;quot;;SPC(10);&amp;quot;World&amp;quot;;&lt;br /&gt;
Hello          World&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;SPEED &amp;lt;n1,n2&amp;gt; &amp;lt;/code&amp;gt; ====&lt;br /&gt;
: ...in conjunction with the INK command SPEED defines the frequency of colour changes if a colour change was defined. The duration is calculated by n1=... or n2 =duration/50 seconds.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;SQ (channel)&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
: Returns a bit significant integer showing state of the sound queue for specified channel where channel 1,2,3, = A, B, C&lt;br /&gt;
&lt;br /&gt;
:Bits 0,1 and 2     Number of free entries in the queue&lt;br /&gt;
:Bits 3,4 and 5     Redezvous state at head of the queue&lt;br /&gt;
:Bit 6              Head of the queue is held&lt;br /&gt;
:Bit 7              Channel is currently active&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;STOP&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
: Breaks program execution at line containing the STOP statement. The message '''BREAK in''' is output with the line number.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;SWAP&amp;lt;/code&amp;gt; ====&lt;br /&gt;
: SWAP works only in combination with the window command. Every error or status messages from the operating system will be displayed normaly on WINDOW#0 (=''main'' window). WINDOW SWAP changes the ''main'' window to the desired target window.&lt;br /&gt;
: Example (if a window with number 4 was defined before...):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
WINDOW SWAP 0,4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;SYMBOL n,i1[,i2,i3,i4,i5,i6,i7,i8]&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
: Redefines the appearance of the character at index n.&lt;br /&gt;
: Each of the following eight integers defines the contents of one pixel row, starting at the top of the character.&lt;br /&gt;
: Each character fits in an 8x8 pixel grid.&lt;br /&gt;
: Missing lines are considered as empty.&lt;br /&gt;
&lt;br /&gt;
: Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SYMBOL 255,255,129,129,129,129,129,129,255&lt;br /&gt;
PRINT CHR$(255)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: Defines character 255 to look like an empty square and prints it.&lt;br /&gt;
&lt;br /&gt;
: Initially, only characters with indices ranging from 240 to 255 can be redefined.&lt;br /&gt;
: See also &amp;lt;tt&amp;gt;SYMBOL AFTER&amp;lt;/tt&amp;gt; to allow redefinition of arbitrary characters.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;SYMBOL AFTER n&amp;lt;/code&amp;gt; ====&lt;br /&gt;
: Allows the redefinition of character symbols from index n included. &lt;br /&gt;
&lt;br /&gt;
: Symbol redefinitions are made using the SYMBOL command above.&lt;br /&gt;
: Initially, only symbols from index 240 to 255 can be redefined. This initial situation can be restored with &amp;lt;tt&amp;gt;SYMBOL AFTER 240&amp;lt;/tt&amp;gt;. Symbol previously redefined are restored to their original appearance.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;TAB&amp;lt;/code&amp;gt; ====&lt;br /&gt;
: [...]&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;TAG [#st]&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
: Allows text to print at graphics cursor position.&lt;br /&gt;
: see TAGOFF&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;TAGOFF [#st]&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
: Directs text to stream st printing it at previous text cursor position.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;TROFF&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
: Turns off the program flow trace (see TRON)&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;TRON&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
: Turns on the program flow trace for debugging. Causes the line number of each statement executed to be displayed.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;USING&amp;lt;/code&amp;gt; ====&lt;br /&gt;
: The USING assignement defines the format of the PRINT output. Its appointment happens by characters where each has a certain meaning.&lt;br /&gt;
&lt;br /&gt;
'''Numbers / Figures'''&lt;br /&gt;
: the character: &lt;br /&gt;
:'''#''' stands for a figure between 0 - 9&lt;br /&gt;
:'''.''' stands for a decimal point&lt;br /&gt;
:'''+''' generates a positive sign if the value is positive&lt;br /&gt;
:'''-''' generates a negative sign if the value is nagative&lt;br /&gt;
:'''**''' generates a asterix for each empty &amp;quot;location&amp;quot; before the printed character&lt;br /&gt;
:'''$$''' generates a Dollar characters before the printed character (the same with the pound note)&lt;br /&gt;
:''',''' generates a comma every each three decimals (thousands per figure) and has to be set before the decimal point or at the end if without a decimal point.&lt;br /&gt;
:^ generates a scientific notation (with exponents) and a the end of the format appointment&lt;br /&gt;
&lt;br /&gt;
'''Strings'''&lt;br /&gt;
: the character:&lt;br /&gt;
:'''!''' prints out only the first character&lt;br /&gt;
:'''\xxx\''' prints out only with x-numbers defined length of the string (from left to right). x means a blank sign made with the space bar&lt;br /&gt;
:'''&amp;amp;''' the whole string is printed out as given (unknown function)&lt;br /&gt;
&lt;br /&gt;
: a print output (numbers) with &amp;quot;%&amp;quot; in the beginning shows that not enough positions has to be declared (at all or before the decimal point).&lt;br /&gt;
&lt;br /&gt;
: Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
10 figure=123456789&lt;br /&gt;
20 word$=&amp;quot;Hello&amp;quot;&lt;br /&gt;
30 print using &amp;quot;+**,##########&amp;quot;;figure&lt;br /&gt;
40 print using &amp;quot;\   \&amp;quot;;word$&lt;br /&gt;
&lt;br /&gt;
creates following output:&lt;br /&gt;
&lt;br /&gt;
*****+12,345,679&lt;br /&gt;
Hel&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;WAIT add, i1[,i2]&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
: Waits until the I/O port at add returns a value (0-255). The value returned is XORed with i2 and the ANDed with i1. This is repeated until a non-zero result occurs.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;WHILE WEND&amp;lt;/code&amp;gt; ====&lt;br /&gt;
: [...]&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;WIDTH&amp;lt;/code&amp;gt; ====&lt;br /&gt;
: [...]&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;WINDOW[#‹stream expression›],[L],[R],[T],[B]&amp;lt;/code&amp;gt; ====&lt;br /&gt;
: It is possible to define in BASIC eight (8) independent windows for text output. Overlapping is possible.&lt;br /&gt;
&lt;br /&gt;
: #STREAM: eight window are possible. No. zero (0) is the main window where error or status messages were put out by default.&lt;br /&gt;
: each position is included inside the window&lt;br /&gt;
: L = left column / R = right column (dependent of the mode 0 = 20 / 1 = 40 / 2 = 80)&lt;br /&gt;
: T = top row / B = bottom row (always from 1 to 25)&lt;br /&gt;
&lt;br /&gt;
: Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
MODE 1&lt;br /&gt;
WINDOW#1,1,40,1,6&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
: ...defines the first top quarter of the screen for window No. 1&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;WRITE [#st,] v[$], v[$]&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
: Writes the values of the specified variable to the specified stream.&lt;br /&gt;
&lt;br /&gt;
: Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
10 OPENOUT &amp;quot;DUMMY&amp;quot;&lt;br /&gt;
20 INPUT A$,A&lt;br /&gt;
30 WRITE #9,A$,A&lt;br /&gt;
40 CLOSEOUT&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;ZONE i&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
: Changes the width of the print zone. Default is 13.&lt;br /&gt;
: Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
10 MODE 2&lt;br /&gt;
20 PRINT&amp;quot;normal zone (13)&amp;quot;&lt;br /&gt;
30 PRINT 1,2,3,4&lt;br /&gt;
RUN&lt;br /&gt;
normal zone(13)&lt;br /&gt;
1           2            3            4&lt;br /&gt;
READY&lt;br /&gt;
20 PRINT&amp;quot;now with different zone(5)&amp;quot;&lt;br /&gt;
30 ZONE 5&lt;br /&gt;
40 PRINT 1,2,3,4&lt;br /&gt;
RUN&lt;br /&gt;
now with different zone(5)&lt;br /&gt;
1     2     3     4&lt;br /&gt;
READY&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Operators ===&lt;br /&gt;
: A logical status in Locomotive Basic will be represented by a &amp;quot;-1&amp;quot; for TRUE and by a &amp;quot;0&amp;quot; for FALSE.&lt;br /&gt;
: Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PRINT (1=1)&lt;br /&gt;
-1&lt;br /&gt;
PRINT (1=2)&lt;br /&gt;
0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==== &amp;lt;code&amp;gt;AND&amp;lt;/code&amp;gt; ====&lt;br /&gt;
: Possible combinations with the AND Function:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
NPUT1	INPUT2	OUTPUT&lt;br /&gt;
======================&lt;br /&gt;
TRUE	TRUE	TRUE&lt;br /&gt;
FALSE	FALSE	FALSE&lt;br /&gt;
TRUE	FALSE	FALSE&lt;br /&gt;
FALSE	TRUE	FALSE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
: Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PRINT 128 AND 64&lt;br /&gt;
0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
: looking at the BIT combination for a better understanding:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	10000000&lt;br /&gt;
AND	01000000&lt;br /&gt;
================&lt;br /&gt;
=	00000000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
: even in BASIC it is possible to manipulate single BITs although there are no special commands but AND, OR and XOR.&lt;br /&gt;
: first an example for a loop with an increasing counter WITHOUT an AND:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
10 counter=0&lt;br /&gt;
20 counter=counter+1&lt;br /&gt;
30 IF counter=32 THEN counter=0&lt;br /&gt;
40 GOTO 20&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
: then a shorter example WITH and AND:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
10 counter=0&lt;br /&gt;
20 counter=(counter+1) AND 31&lt;br /&gt;
30 GOTO 20&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
: in the second example all more significant BITs will be deleted (a common method in assembler programming)&lt;br /&gt;
: Beware: it only works here with BIT/number conditions one figure smaller than 1, 3, 7, 15, 31, 63 and 127&lt;br /&gt;
==== &amp;lt;code&amp;gt;MOD&amp;lt;/code&amp;gt; ====&lt;br /&gt;
: [...]&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;NOT&amp;lt;/code&amp;gt; ====&lt;br /&gt;
: '''NOT''' executes a bit for bit '''negation''' of the current value. The output is a 16-Bit-Word.&lt;br /&gt;
:&lt;br /&gt;
:'''Example:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
10 value1=1&lt;br /&gt;
20 value2=NOT value1&lt;br /&gt;
30 PRINT value2&lt;br /&gt;
run&lt;br /&gt;
-2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:for a better understanding...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
10 value1=1&lt;br /&gt;
20 PRINT HEX$(value1):PRINT BIN$(value1,8)&lt;br /&gt;
30 value2=NOT value1&lt;br /&gt;
40 PRINT HEX$(value2):PRINT BIN$(value2,8)&lt;br /&gt;
run&lt;br /&gt;
1&lt;br /&gt;
00000001&lt;br /&gt;
FFFE&lt;br /&gt;
1111111111111110&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;OR&amp;lt;/code&amp;gt; ====&lt;br /&gt;
: Possible combinations with the OR Function:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
NPUT1	INPUT2	OUTPUT&lt;br /&gt;
======================&lt;br /&gt;
TRUE	TRUE	TRUE&lt;br /&gt;
FALSE	TRUE	TRUE&lt;br /&gt;
TRUE	FALSE	TRUE&lt;br /&gt;
FALSE	FALSE	FALSE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==== &amp;lt;code&amp;gt;XOR&amp;lt;/code&amp;gt; ====&lt;br /&gt;
: Possible combinations with the XOR Function:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
NPUT1	INPUT2	OUTPUT&lt;br /&gt;
======================&lt;br /&gt;
TRUE	TRUE	FALSE&lt;br /&gt;
FALSE	TRUE	TRUE&lt;br /&gt;
TRUE	FALSE	TRUE&lt;br /&gt;
FALSE	FALSE	FALSE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Functions ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;ABS (n)&amp;lt;/code&amp;gt; ====&lt;br /&gt;
: Returns the absolute value of n by ignoring the sign value.&lt;br /&gt;
&lt;br /&gt;
: Example&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PRINT ABS(-3.5) - prints 3.5&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;ASC (s)&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
: Returns ASCII code number of first character of string s&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;ATN (n)&amp;lt;/code&amp;gt; ====&lt;br /&gt;
: Returns the arctangent of n.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;BIN$ (i1,[i2])&amp;lt;/code&amp;gt; ====&lt;br /&gt;
: Returns binary representation of i1 between -32768 and 65535. The number of binary digits (0s and 1s) is specified by i2 (0-16)&lt;br /&gt;
: Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PRINT BIN$(66,8) - prints 01000010&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;CHR$ (n)&amp;lt;/code&amp;gt; ====&lt;br /&gt;
: Returns the character for a given index n. For instance CHR$(65) returns the character 'A'. Valid indices range from 0 (zero) to 255.&lt;br /&gt;
&lt;br /&gt;
: As an example, try the following basic program :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;10 print chr$(208+rnd(2));:goto 10&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: It will draw a random maze with characters 208 and 209, which are an horizontal and a vertical bar.&lt;br /&gt;
:&lt;br /&gt;
:The CHR$ code between 0 and 31 will not print out a character but perform a function:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
===============================================================================&lt;br /&gt;
|  VALUE    | NAME   | PARAMETERS   | EFFECT                                  |&lt;br /&gt;
===============================================================================&lt;br /&gt;
| DEC | HEX |        |              |                                         |&lt;br /&gt;
===============================================================================&lt;br /&gt;
| 0   | &amp;amp;00 | NUL    | NONE         | DOES NOTHING                            |&lt;br /&gt;
| 1   | &amp;amp;01 | SOH    | 0-255        | PRINTS CHARACTER TO SCREEN              |&lt;br /&gt;
| 2   | &amp;amp;02 | STX    | NONE         | TURNS TEXT CURSOR OFF                   |&lt;br /&gt;
| 3   | &amp;amp;03 | ETX    | NONE         | TURNS TEXT CURSOR ON IN IMMEDIATE       |&lt;br /&gt;
|     |     |        |              | MODE                                    |&lt;br /&gt;
| 4   | &amp;amp;04 | EOT    | 0-2          | SET SCREEN MODE                         |&lt;br /&gt;
| 5   | &amp;amp;05 | ENQ    | 0-255        | PRINT CHARACTER AT GRAPHICS CURS.       |&lt;br /&gt;
| 6   | &amp;amp;06 | ACK    | NONE         | TURNS ON TEXT SCREEN (SEE ALSO CHR$(21))|&lt;br /&gt;
| 7   | &amp;amp;07 | BEL    | NONE         | MAKE A SHORT BEEP                       |&lt;br /&gt;
| 8   | &amp;amp;08 | BS     | NONE         | MOVES TEXT CURSOR BACK ONE CHARACTER    |&lt;br /&gt;
| 9   | &amp;amp;09 | TAB    | NONE         | MOVES TEXT CURSOR FORWARD ONE CHARACTER |&lt;br /&gt;
| 10  | &amp;amp;0A | LF     | NONE         | MOVES TEXT CURSOR DOWN ONE CHARACTER    |&lt;br /&gt;
| 11  | &amp;amp;0B | VT     | NONE         | MOVES TEXT CURSOR UP ONE CHARACTER      |&lt;br /&gt;
| 12  | &amp;amp;0C | FF     | NONE         | CLEARS SCREEN OR WINDOWS (= CLS)        |&lt;br /&gt;
| 13  | &amp;amp;0D | CR     | NONE         | MOVES CURSOR TO LEFT EDGE OF WINDOW ON  |&lt;br /&gt;
|     |     |        |              | CURRENT LINE                            |&lt;br /&gt;
| 14  | &amp;amp;0E | SO     | 0-15         | SETS PAPER COLOUR                       |&lt;br /&gt;
| 15  | &amp;amp;0F | SI     | 0-15         | SETS PEN COLOUR                         |&lt;br /&gt;
| 16  | &amp;amp;10 | DLE    | NONE         | DELETES CHARACTER UNDER TEXT CURSOR     |&lt;br /&gt;
| 17  | &amp;amp;11 | DC1    | NONE         | CLEARS LINE FROM LEFT OF WINDOW UP TO   |&lt;br /&gt;
|     |     |        |              | AND INCLUDING CURRENT CHARACTER         |&lt;br /&gt;
| 18  | &amp;amp;12 | DC2    | NONE         | CLEARS FROM CURRENT CHARACTER TO RIGHT  |&lt;br /&gt;
|     |     |        |              | EDGE OF THE WINDOW                      |&lt;br /&gt;
| 19  | &amp;amp;13 | DC3    | NONE         | CLEARS FROM START OF WINDOW UP TO AND   |&lt;br /&gt;
|     |     |        |              | INCLUDING CURRENT CHARACTER             |&lt;br /&gt;
| 20  | &amp;amp;14 | DC4    | NONE         | CLEARS FROM CURRENT CHARACTER TO END OF |&lt;br /&gt;
|     |     |        |              | WINDOW                                  |&lt;br /&gt;
| 21  | &amp;amp;15 | NAK    | NONE         | TURNS OFF TEXT SCREEN (SEE ALSO CHR$(6))|&lt;br /&gt;
| 22  | &amp;amp;16 | SYN    | 0 AND 1      | TURNS TRANSPARENT OPTION OFF AND ON     |&lt;br /&gt;
| 23  | &amp;amp;17 | ETB    | 0-3          | SET GRPAHICS PLOTTING MODE              |&lt;br /&gt;
| 24  | &amp;amp;18 | CAN    | NONE         | CHANGE TO INVERSE CHARACTER DISPLAYING  |&lt;br /&gt;
| 25  | &amp;amp;19 | EM     | NINE PARAM.  | DEFINES A CHARACTER (= SAME AS SYMBOL)  |&lt;br /&gt;
|     |     |        | EACH 0-255   |                                         |&lt;br /&gt;
| 26  | &amp;amp;1A | SUB    | FOUR PARAM.  | DEFINES A TEXT WINDOW (=SAME AS WINDOW) |&lt;br /&gt;
|     |     |        | 1-80, 1-80   | FROM LEFT, RIGHT, TOP TO BOTTOM         |&lt;br /&gt;
|     |     |        | 1-25, 1-25   | FROM LEFT, RIGHT, TOP TO BOTTOM         |&lt;br /&gt;
| 27  | &amp;amp;1B | ESC    | NONE         | DOES NOTHING ON SCREEN (PRINTER SIGNAL) |&lt;br /&gt;
| 28  | &amp;amp;1C | FS     | THREE PARAM. | SETS INK COLOUR TO FLASH BETWEEN TWO    |&lt;br /&gt;
|     |     |        | 0-15, 0-32   | INK NO, COLOUR 1, COLOUR 2              |&lt;br /&gt;
|     |     |        | 0-32         |                                         |&lt;br /&gt;
| 29  | &amp;amp;1D | GS     | TWO PARAM.   | SETS BORDER COLOUR TO FLASH BETWEEN TWO |&lt;br /&gt;
|     |     |        | 0-31, 0-31   | COLOURS                                 |&lt;br /&gt;
| 30  | &amp;amp;1E | RS     | NONE         | HOMES CURSOR TO TOP LEFT OF SCREEN      |&lt;br /&gt;
| 31  | &amp;amp;1F | US     | TWO PARAM.   | MOVES CURSOR TO CELL SPECIFIED BY TWO   |&lt;br /&gt;
|     |     |        | 1-80, 1-25   | PARAMETERS (=SAME AS LOCATE)            |&lt;br /&gt;
===============================================================================&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;CINT (n)&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
: Returns rounded up integer value of n between -32768 and 32767.&lt;br /&gt;
&lt;br /&gt;
: Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PRINT CINT(3.8) - print 4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;COPYCHR$ (st)&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
: Copies character from current position in specified stream.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;COS (n)&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
: Returns cosine of n in degrees or radians (se DEG and RAD)&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;CREAL (n)&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
: Converts integer n to real numeric variable.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;DEC$(n, format)&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
: Retruns the decimal string representation of n, according to the specified format (see PRINT USING)&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;DERR&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
: Gives the most recent error code number returned by [[Amsdos]].&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;EOF&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
: Checks to see if end of specified file has been reached during input. Returns 0 (false) until the end of file, then -1 (true)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: This example reads a file from disc and print it out on screen. Like the &amp;quot;TYPE&amp;quot; command in CP/M or &amp;quot;|TYPE,file&amp;quot; of the UTOPIA-ROM.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
10 OPENIN &amp;quot;text.txt&amp;quot;&lt;br /&gt;
20 WHILE NOT EOF&lt;br /&gt;
30 LINE INPUT#9,a$&lt;br /&gt;
40 PRINT a$&lt;br /&gt;
50 WEND&lt;br /&gt;
60 CLOSEIN&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;ERR&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
: Returns the error code number of the last error encountered.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;EXP (i)&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
: Returns the result of calculating e to the power i.&lt;br /&gt;
&lt;br /&gt;
: Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PRINT EXP(1) - prints 2.71828183&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;FIX (n)&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
: Removes the fractional part of n (see INT)&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;FRE (n/se)&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
: Returns the amount of unused memory, irrespective of the nature or value of the dummy argument inside the bracket.&lt;br /&gt;
&lt;br /&gt;
: Examples:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PRINT FRE(o) or PRINT FRE(&amp;quot;hello&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;HEX$ (i1, i2)&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
: Returns a string hexadecimal digit representation of i1 (0-65535). The number of hex digits in the string is given by i2 (0-15)&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;HIMEM&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
: Returns address of the highest memory address used by BASIC.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;INKEY (i)&amp;lt;/code&amp;gt; ====&lt;br /&gt;
: Checks to see if key number i is being pressed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Value returned          [SHIFT]        [CTRL]       Specified key&lt;br /&gt;
-1                      ignored        ignored      up&lt;br /&gt;
0                       up             up           down&lt;br /&gt;
32                      down           up           down&lt;br /&gt;
128                     up             down         down&lt;br /&gt;
160                     down           down         down&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;INKEY$&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
: Checkts the keyboard and returns the string character of the key pressed. The string character returned is normally assigned to a string variable. If no key pressed, a null string is returned.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;INP (‹address›)&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
: Returns a value read from the defined I/O address&lt;br /&gt;
: Watch out http://cpcwiki.eu/index.php/I/O_Port_Summary&lt;br /&gt;
&lt;br /&gt;
: Example&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PRINT INP(&amp;amp;FF00)&lt;br /&gt;
255&lt;br /&gt;
Ready&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;INSTR ([‹startposition›,]‹explored string›,‹seeking string›)&amp;lt;/code&amp;gt;  ====&lt;br /&gt;
&lt;br /&gt;
: This function looks inside &amp;quot;explored string&amp;quot; after &amp;quot;seeking string&amp;quot; and return a number where the found string appear for the first time.&lt;br /&gt;
: Returns zero if not successfull.&lt;br /&gt;
: Startposition could be a figure between 1 and 255.&lt;br /&gt;
&lt;br /&gt;
: Example&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a$=&amp;quot;ABCD&amp;quot;:PRINT INSTR(a$,&amp;quot;C&amp;quot;) &lt;br /&gt;
3&lt;br /&gt;
Ready&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
: 2. Example&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a$=&amp;quot;Hello&amp;quot;:IF INSTR(a$,&amp;quot;i&amp;quot;)&amp;lt;&amp;gt;0 THEN PRINT &amp;quot;no&amp;quot; else a$&lt;br /&gt;
no&lt;br /&gt;
Ready&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;INT (n)&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
: As in FIX if n is positive; if n is negative, it rounds it down.&lt;br /&gt;
&lt;br /&gt;
: Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PRINT INT(3.99), INT(-3.99) - prints 3                      -4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;JOY (i)&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
: Returns bit-significant value from specified joystick. i = 0 or 1.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Bit             Value returned&lt;br /&gt;
0(up)                  1&lt;br /&gt;
1(down)                2&lt;br /&gt;
2(left)                4&lt;br /&gt;
3(right)               8&lt;br /&gt;
4(fire 2)              16&lt;br /&gt;
5(fire 1)              32&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;LEFT$ (se, i)&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
: Returns a substring of se. The substring begins at the left-most character of se and contains i characters.&lt;br /&gt;
&lt;br /&gt;
: Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
A$=&amp;quot;ABCDEFG&amp;quot;:PRINT LEFT$(A$,3) - prints ABC&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;LEN (se)&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
: Returns the number of characters in se (0 - 255)&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;LOG (n)&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
: Returns the natural logarithm (to base e) of n.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;LOG10 (n)&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
: Returns the logarithm to base 10 of n.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;LOWER$ (se)&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
: Returns a copy of se in which all alphabetical characters are converted to lower case (see also UPPER)&lt;br /&gt;
&lt;br /&gt;
: Example&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PRINT LOWER$(&amp;quot;A1B2c3&amp;quot;) - print a1b2c3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;MAX (list of n)&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
: Returns the maximum value from the given list.&lt;br /&gt;
&lt;br /&gt;
: Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PRINT MAX(3,8,25,1,2,9) - prints 25&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;MIN (list of n)&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
: Returns the minimum value from the given list (see MAX)&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;PEEK (add)&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
: Returns the contents of the specified memory location (0-65535)&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;PI&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
: Returns value of PI (3.14159265)&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;POS (#st)&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
: Returns column number of print position relative to left edge of text window on stream st. st must be  specified.&lt;br /&gt;
&lt;br /&gt;
: Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PRINT POS(#0) - prints 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;REMAIN (i)&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
: Returns count remaining in delay timer i (0-3) then disables it.&lt;br /&gt;
: For the reason that REMAIN is no normal command but a &amp;quot;function&amp;quot; it is necessary in case of a proper functionality to link the command.&lt;br /&gt;
: a example in combination with an interrupt delay timer 1:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PRINT REMAIN(1)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
or to stop several/all interrupts at the same time...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
A=REMAIN(0)=REMAIN(1)=REMAIN(2)=REMAIN(3)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
: Hint: Take care of interrupts due to parallel working (the same cycle time) or if they are stopped with the BREAK key. Interrupts which were disabled for a certain time will be stored in buffer (for a maximum of 128 entries) and made up their task afterwards in the priorisation as declared.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;RIGHT$ (se,i)&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
: Returns a substring of length i (0-255) characters from se, ending at the rightmost character of se.&lt;br /&gt;
&lt;br /&gt;
: Example&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PRINT RIGHT$(&amp;quot;ABCDEFG&amp;quot;,3) - prints EFG&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;RND [(n)]&amp;lt;/code&amp;gt; ====&lt;br /&gt;
: Generates the next random number between 0 and 1 (exklusiv) in the current squence if n is positive or omitted.&lt;br /&gt;
&lt;br /&gt;
: If n = 0, the random number generated will be the same as the last random number generated.&lt;br /&gt;
: Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PRINT RND(0)&lt;br /&gt;
 0.536703827&lt;br /&gt;
Ready&lt;br /&gt;
PRINT RND(1)&lt;br /&gt;
 0.271940658&lt;br /&gt;
Ready&lt;br /&gt;
PRINT RND(0)&lt;br /&gt;
 0.271940658&lt;br /&gt;
Ready&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: Exampel for generating an integer random number between 1 and 1000&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
10 A=INT((RND(1)*1000)+1)&lt;br /&gt;
20 PRINT A&lt;br /&gt;
30 GOTO 10&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: Exampel for generating a random number between a lower and higher border&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
10 INPUT &amp;quot;Low border&amp;quot;,low&lt;br /&gt;
20 INPUT &amp;quot;High border&amp;quot;,high&lt;br /&gt;
30 A=INT(RND(1)*(high-low))+low&lt;br /&gt;
40 PRINT A&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;ROUND (n[,i1])&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
: Rounds n to a number of decimal places or to the power of ten specified by i. If i is negative, the n is rounded to give an absolute integer with i zeros before the decimal point.&lt;br /&gt;
: Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PRINT ROUND(1562.357,2):PRINT ROUND(1562.375,-2) - prints 1562.36 1600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;SGN (n)&amp;lt;/code&amp;gt; ====&lt;br /&gt;
: Returns 1 if n is positive, 0 if n = 0, -1 if n is negative.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;SIN (n)&amp;lt;/code&amp;gt; ====&lt;br /&gt;
: Returns sine of n in degree or radian mode (see DEG and RAD)&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;SPACE$(i)&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
: Creates a string containing i spaces (0-255)&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;SQ (channel)&amp;lt;/code&amp;gt; ====&lt;br /&gt;
: Returns a bit significant integer showing state of the sound queue for specified channel where channel 1, 2, 3 = A, B, C.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Bits 0,1 and 2     number of free entries in the queue&lt;br /&gt;
Bits 3,4 and 5     redezvous state at head of the queue&lt;br /&gt;
Bit 6              head of the queue is held&lt;br /&gt;
Bit 7              channel is currently active&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;SQR (n)&amp;lt;/code&amp;gt; ====&lt;br /&gt;
: Returns the square root of n.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;STR$(n)&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
: Returns the string representation of number n.&lt;br /&gt;
: Useful for converting a number to a string in case of string manipulation. E.g. after converting a figure to a string then the most left character holds the sign: a minus in case the figure is negative and a space in case the figure is positiv.&lt;br /&gt;
: Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
10 FIGURE=-1599&lt;br /&gt;
20 FIGURE$=STR$(FIGURE)&lt;br /&gt;
30 PRINT FIGURE$&lt;br /&gt;
-1599&lt;br /&gt;
&lt;br /&gt;
10 FIGURE=1769&lt;br /&gt;
20 FIGURE$=STR$(FIGURE)&lt;br /&gt;
30 PRINT FIGURE$&lt;br /&gt;
 1769&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
: (there's a blank on the left-hand of the number &amp;quot;1769&amp;quot;)&lt;br /&gt;
: If you want to add e.g. zero before the figure in case of a high score with fix digit-number then you're able to add zero(s) in front of a string instead of a figure.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;STRING$&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
: Returns i copies of the string character specified by s.&lt;br /&gt;
&lt;br /&gt;
: Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PRINT STRING$(3,&amp;quot;*&amp;quot;) - prints ***&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;TAN (n)&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
: Returns the tangent of n. The DEG and RAD commands can be used to force the result to either mode.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;TEST (x,y)&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
: Moves the graphics cursor by x and y and returns the value of the ink at that position.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;TESTR (x,y)&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
: Moves the graphics cursor by x and y relative to its current position and returns the value of ink at that position.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;TIME&amp;lt;/code&amp;gt; ====&lt;br /&gt;
: Returns time elapsed since the computer was switched on or reset.&lt;br /&gt;
: One second = TIME/300.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;UNT (add)&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
: Returns an integer(-32768 to 32767) which is the two's complement of add.&lt;br /&gt;
&lt;br /&gt;
: Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PRINT UNT(&amp;amp;FF66) - prints -154&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;UPPER$(se)&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
: Gives copy of se with all alphabetic characters in upper case.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;VAL(se)&amp;lt;/code&amp;gt;  ====&lt;br /&gt;
&lt;br /&gt;
:Returns the numeric value (including signs) of first numeric character(s) in se. Returns 0 if se starts with a non-number. &lt;br /&gt;
:Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;PRINT VAL(&amp;quot;-12.34x&amp;quot;),VAL(&amp;quot;A-12&amp;quot;) - prints -12.34     0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:Exception: if &amp;lt;se&amp;gt; starts with &amp;quot;&amp;amp;amp;&amp;quot; + character (and it's between &amp;quot;A&amp;quot; and &amp;quot;F&amp;quot;) the whole character will be handled like a hexadezimal numeric character (...often used in DATA Loaders). The returning numeric value is a &amp;amp;nbsp;signed&amp;amp;nbsp;integer (16-Bit Word). &lt;br /&gt;
&amp;lt;pre&amp;gt;PRINT&amp;amp;nbsp;VAL(&amp;quot;&amp;amp;amp;A&amp;quot;) - returns a 10&lt;br /&gt;
&lt;br /&gt;
PRINT&amp;amp;nbsp;VAL(&amp;quot;&amp;amp;amp;7FFF&amp;quot;) - returns a 32767&lt;br /&gt;
&lt;br /&gt;
PRINT&amp;amp;nbsp;VAL(&amp;quot;&amp;amp;amp;8000&amp;quot;) - returns a -32768&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;VPOS (#st)&amp;lt;/code&amp;gt; ====&lt;br /&gt;
: Reports the current row (line) position of the text cursor relative to the top of the text windows of the specified stream.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;XPOS&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
: Returns the current horizontal (x) position of the graphics cursor.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;YPOS&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
: Returns the current vertical (y) position of the graphics cursor. &lt;br /&gt;
&lt;br /&gt;
''(Please, fill in. Looks like a lot of work ;-) ...)''&lt;br /&gt;
&lt;br /&gt;
== Error codes ==&lt;br /&gt;
&lt;br /&gt;
* 1 '''Unexpected NEXT''' - &amp;lt;code&amp;gt;NEXT&amp;lt;/code&amp;gt; encountered without matching &amp;lt;code&amp;gt;FOR&amp;lt;/code&amp;gt;.&lt;br /&gt;
* 2 '''Syntax Error''' - Typing error or incorrect punctuation.&lt;br /&gt;
* 3 '''Unexpected RETURN''' - &amp;lt;code&amp;gt;RETURN&amp;lt;/code&amp;gt; encountered when there was no active &amp;lt;code&amp;gt;GOSUB&amp;lt;/code&amp;gt;.&lt;br /&gt;
* 4 '''DATA exhaused''' - Trying to &amp;lt;code&amp;gt;READ&amp;lt;/code&amp;gt; data when data pointer has reached end of data.&lt;br /&gt;
* 5 '''Improper argument''' - The argument for a function is not legal (e.g. &amp;lt;code&amp;gt;PRINT SQR(-10)&amp;lt;/code&amp;gt;).&lt;br /&gt;
* 6 '''Overflow''' - The computer cannot handle integers smaller than -32768 (signed) or larger than 65535 (unsigned) or floating point numbers greater than &amp;amp;plusmn;1.7E38.&lt;br /&gt;
* 7 '''Memory full''' - Not enough free RAM available to complete the operation. Program too big or control structures too deeply nested.&lt;br /&gt;
* 8 '''Line does not exist''' - Attempt to &amp;lt;code&amp;gt;RUN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;GOTO&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;GOSUB&amp;lt;/code&amp;gt; a non-existent line number.&lt;br /&gt;
* 9 '''Subscript out of range''' - Value of a subscript in an array is outside of range specified by &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt; declaration or wrong number of dimensions supplied.&lt;br /&gt;
* 10 '''Array already dimensioned''' - Arrays can only be &amp;lt;code&amp;gt;DIM&amp;lt;/code&amp;gt;ensioned once within a program.&lt;br /&gt;
* 11 '''Division by zero''' - Trying to divide a number by zero.&lt;br /&gt;
* 12 '''Invalid direct command''' - Using a statement as a direct command which is not allowed outside a program, e.g. &amp;lt;code&amp;gt;DEF FN&amp;lt;/code&amp;gt;.&lt;br /&gt;
* 13 '''Type mismatch''' - Wrong data type encountered, string data instead of numeric value or vice versa.&lt;br /&gt;
* 14 '''String space full''' - String memory area is full.&lt;br /&gt;
* 15 '''String too long''' - String may not exceed 256 characters.&lt;br /&gt;
* 16 '''String expression too complex''' - A string expression needs to be broken down into smaller expressions.&lt;br /&gt;
* 17 '''Cannot CONTinue''' - &amp;lt;code&amp;gt;CONT&amp;lt;/code&amp;gt; can only be used if program was stopped by [ESC] or a &amp;lt;code&amp;gt;STOP&amp;lt;/code&amp;gt; in program - not after END. If the program is modified before issuing &amp;lt;code&amp;gt;CONT&amp;lt;/code&amp;gt; you will also get this error.&lt;br /&gt;
* 18 '''Unknown user function''' - A &amp;lt;code&amp;gt;DEF FN&amp;lt;/code&amp;gt; must be executed before calling an &amp;lt;code&amp;gt;FN&amp;lt;/code&amp;gt; function.&lt;br /&gt;
* 19 '''RESUME missing''' - End of program has been reached while in error processing mode. Use &amp;lt;code&amp;gt;ON ERROR GOTO&amp;lt;/code&amp;gt; before &amp;lt;code&amp;gt;RESUME&amp;lt;/code&amp;gt;.&lt;br /&gt;
* 20 '''Unexpected RESUME''' - &amp;lt;code&amp;gt;RESUME&amp;lt;/code&amp;gt; is only used in error processing mode, &amp;lt;code&amp;gt;ON ERROR GOTO&amp;lt;/code&amp;gt; statement must be used first.&lt;br /&gt;
* 21 '''Direct Command found''' - A line without a line number has found while loading a file.&lt;br /&gt;
* 22 '''Operand missing''' - An incomplete expression has been found.&lt;br /&gt;
* 23 '''Line too long''' - The line contains too many statements.&lt;br /&gt;
* 24 '''EOF met''' - Trying to input data beyond end of data file.&lt;br /&gt;
* 25 '''FILE type error''' - Using a program file instead of a data file to read or write (or vice versa).&lt;br /&gt;
* 26 '''NEXT missing''' - The &amp;lt;code&amp;gt;NEXT&amp;lt;/code&amp;gt; of a &amp;lt;code&amp;gt;FOR&amp;lt;/code&amp;gt; ... &amp;lt;code&amp;gt;NEXT&amp;lt;/code&amp;gt; loop is missing.&lt;br /&gt;
* 27 '''File already open''' - Trying to open an open file. Use &amp;lt;code&amp;gt;CLOSEIN&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;CLOSEOUT&amp;lt;/code&amp;gt; first.&lt;br /&gt;
* 28 '''Unknown command''' - Given when an unknown command follows a &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt;. e.g. &amp;lt;code&amp;gt;|DISC&amp;lt;/code&amp;gt; on a CPC464 without AMSDOS installed.&lt;br /&gt;
* 29 '''WEND missing''' - The &amp;lt;code&amp;gt;WEND&amp;lt;/code&amp;gt; part of the &amp;lt;code&amp;gt;WHILE&amp;lt;/code&amp;gt; ... &amp;lt;code&amp;gt;WEND&amp;lt;/code&amp;gt; loop is missing.&lt;br /&gt;
* 30 '''Unexpected WEND''' - &amp;lt;code&amp;gt;WEND&amp;lt;/code&amp;gt; encountered without a corresponding active &amp;lt;code&amp;gt;WHILE&amp;lt;/code&amp;gt;.&lt;br /&gt;
* 31 '''File not open''' - Attempting to read from or write to a file without &amp;lt;code&amp;gt;OPEN&amp;lt;/code&amp;gt;ing it first.&lt;br /&gt;
* '''Unknown error''' - Executing &amp;lt;code&amp;gt;ERROR&amp;lt;/code&amp;gt; command with any other legal error code number (up to 255).&lt;br /&gt;
== Other Basic Dialects available for the CPC ==&lt;br /&gt;
&lt;br /&gt;
*[[BBC Basic]]&lt;br /&gt;
*[[C BASIC Compiler|CBASIC]]&lt;br /&gt;
*[[BASIC-E]]&lt;br /&gt;
&lt;br /&gt;
== Web links ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.cpctech.org.uk/docs/bastech.html Technical information at the Unofficial Amstrad WWW Resource]&lt;br /&gt;
* [http://www.sean.co.uk/books/amstrad/bforbasic.shtm Locomotive Basic Tutorial by Sean McManus]&lt;br /&gt;
* [http://rosettacode.org/wiki/Category:Locomotive_Basic Code examples at Rosetta Code]&lt;br /&gt;
&lt;br /&gt;
*  [http://cpctech.cpc-live.com/docs/basic.asm Disassembly of Locomotive BASIC v1.1]&lt;br /&gt;
&lt;br /&gt;
[[Category:Programming]]&lt;br /&gt;
[[Category:BASIC| ]]&lt;br /&gt;
[[Category:CPC Internal Components]]&lt;br /&gt;
[[Category:Operating System| ]]&lt;br /&gt;
[[Category:Software]]&lt;br /&gt;
[[Category:Programming software| ]]&lt;/div&gt;</summary>
		<author><name>FindYWay</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=Where_to_learn%3F&amp;diff=86261</id>
		<title>Where to learn?</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=Where_to_learn%3F&amp;diff=86261"/>
				<updated>2013-01-16T14:10:29Z</updated>
		
		<summary type="html">&lt;p&gt;FindYWay: Fix broken links (K Thacker site changed address long ago.)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Note: This article was originally [http://www.cpczone.net/boards/viewtopic.php?t=1102 a post at the CPC Zone forums]''&lt;br /&gt;
&lt;br /&gt;
Well, here's some info that I hope will be useful to both you and others. I know very little about the MSX though, this is mostly about the CPC, although the Z80 assembler is the same for all computers; read on.&lt;br /&gt;
&lt;br /&gt;
First you need to make up your mind on what programme/game you are going to make. BASIC offers easiness and stability and quick development. Assembly code runs fast, but takes a while (so to speak) to write.&lt;br /&gt;
&lt;br /&gt;
On the CPC there's a choice of writing your program in assembler only, in a combination of assembler and BASIC, or in BASIC only (or of course in some other language(s)). You can use a BASIC compiler for speeding up BASIC code. FABACOM compiler speeds up a BASIC program by about a factor of 8. However there are no BASIC sprite routines; these have to be written in assembly anyway or use some ready-made routines.&lt;br /&gt;
&lt;br /&gt;
== Assembly ==&lt;br /&gt;
&lt;br /&gt;
=== What assembly is ===&lt;br /&gt;
&lt;br /&gt;
I think you could divide the problem of low level coding into three distinct parts.&lt;br /&gt;
&lt;br /&gt;
# Z80 assembly language &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Assembler syntax &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# CPC specifics (memory map, firmware (i.e. OS) and hardware)&lt;br /&gt;
&lt;br /&gt;
By saying &amp;quot;assembly&amp;quot;, &amp;quot;assembler&amp;quot; or &amp;quot;asm&amp;quot; (for short) 1. and 2. get intermixed and sometimes confuse people. By saying &amp;quot;assembly&amp;quot; the connotations point more to the z80 assembly language (it's commands, a.k.a. &amp;quot;mnemonics&amp;quot;. This is source code.); this is a mirror of the z80 architecture as every mnemonic has a direct machine code equivalent (i.e. object code). &amp;quot;Assembler&amp;quot; is a term more properly used for a full-blown program that gets the work done of converting source code into machine code and adds its own made-up commands (which are words that look like z80 mnemonics, but are actually only offered for convenience by the assembler) or directives (words that set up and take care of various things) in the syntax for ease of programming. &amp;quot;asm&amp;quot; may mean both.&lt;br /&gt;
&lt;br /&gt;
Also how a CPC does something, like printing a character on the screen depends on its firmware and hardware and how its memory is organized and used by the firmware, hardware and user-programs. The MSX has totally different hardware so here's where your code starts to differentiate. Since most of the asm code is general purpose, this is why Spectrum ports were so easy to make; just use different screen, sound and keyboard drivers and voila... Of course code that is specifically written for the CPC will take more advantage of its hardware (it will be less portable/general-purpose but the programme/game has the potential to run faster and have more features).&lt;br /&gt;
&lt;br /&gt;
=== Z80 assembly language reference documentation (not a tutorial) ===&lt;br /&gt;
&lt;br /&gt;
For general info on the Z80, your best bet I think is Sean Young's (an MSX emulator author) pdf's. These are not tutorials, but contain a list of every z80 mnemonic and how it works (i.e. what parameters it takes and where it stores the result, if there is one.) You should use these mostly for reference, rather for learning.&lt;br /&gt;
&lt;br /&gt;
Pretty complete documentation on the z80, but not a tutorial: &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://www.myquest.nl/z80undocumented/z80-documented-v0.91.pdf The Undocumented Z80 Documented v0.91 (pdf)]&lt;br /&gt;
&lt;br /&gt;
An older version of this file may be found here: &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://www.cpctech.org.uk/docs/z80.pdf Z80 documentation by Sean Young] (basically chapters 8 &amp;amp; 9 from the above document). [http://www.myquest.nl/z80undocumented/ Official source]&lt;br /&gt;
&lt;br /&gt;
A couple short documents that's more of the same thing: &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://www.ticalc.org/archives/files/fileinfo/128/12883.html The Complete Z80 Instruction Reference] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://www.ticalc.org/archives/files/fileinfo/1/109.html Z80 Microprocessor Instruction Set Summary]&lt;br /&gt;
&lt;br /&gt;
If you have a look in the latter files, you'll see that there are Z80 commands for moving things around (mostly LD, LDI, PUSH and POP), adding &amp;amp; subtracting &amp;amp; increment &amp;amp; decrement, logical operations, bit operations (bit tests, shifts, rotates), comparing two values &amp;amp; jumps (goto's) &amp;amp; calls ... basically that's all.&lt;br /&gt;
&lt;br /&gt;
What instruction to use depends on two things:&lt;br /&gt;
&lt;br /&gt;
# What you need to do. e.g. You need to add two 8-bit numbers, you use 8-bit addition. You need to add 1 to an 8-bit number, then you increment it by 1. You can do these two things (addition and increment) for 16-bit numbers too.&lt;br /&gt;
&lt;br /&gt;
# What the Z80 is able to do. It just can't do some things, for example it can't multiply two numbers. You'll need to use a multiplication routine for that. You can add a 16-bit value to the HL register pair, but you can't add a 16-bit value to any other register pair (like BC or DE). In order to get around this you'll have to move data around like exchanging the values of registers or saving data into other registers or on the stack or in a memory location. All CISC processors are full of such quirks (they are not &amp;quot;orthogonal&amp;quot;, which means you can't combine every command with every possible parameter type(s). Some commands only take specific parameters and you have to live with that).&lt;br /&gt;
&lt;br /&gt;
Assembler is in a class of languages considered error-prone, so you need to take care that your program is stable. Also, by learning z80 assembler you make a step forward for learning x86 assembler since this is a related family of processors.&lt;br /&gt;
&lt;br /&gt;
=== Z80 Assembly tutorial ===&lt;br /&gt;
&lt;br /&gt;
So there's the Z80 general stuff that you can learn in any Z80 tutorial. A good tutorial I know of is the [http://www.ticalc.org/pub/text/z80/z80asmg.zip Independent Z80 Assembly Guide]. Available online at [http://cobb.host.sk/z80guide/index.htm http://cobb.host.sk/z80guide/index.htm]. It &amp;quot;was written in a way that it can be used for ANY Z80 calculator or computer&amp;quot;. You can use all of this code with a CPC or CPC emulator and it will work. No graphics, sound, file or input routines are included of course; all this is CPC specific, but once you've learnt some of the general z80 stuff, then you'll be able to access the CPC's specific features. I'd recommend using WinAPE's built-in assembler, assemble everything in CPC's memory and then check the results with WinAPE's debugger (or in BASIC with peeks and pokes and/or short BASIC programs). Just put a&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;.org #4000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
in front of each example, and a&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ret&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
if necessary at the end, assemble and then use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;call #4000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
from BASIC to run the machine code.&lt;br /&gt;
&lt;br /&gt;
You don't need to know everything in the above tutorial to get you started. I'd say &amp;quot;The Basics&amp;quot; and &amp;quot;Simple Structures&amp;quot; chapters, the &amp;quot;Moving Data Blocks&amp;quot; paragraph and then the multiplication stuff (or skip that and just use a ready-made multiplication routine for now).&lt;br /&gt;
&lt;br /&gt;
Some useful Z80 links:&lt;br /&gt;
&lt;br /&gt;
* [http://www.ticalc.org/pub/text/z80/ Z80 Documentation]&lt;br /&gt;
&lt;br /&gt;
* [http://icarus.ticalc.org/articles/z80_faq.html z80 faq]&lt;br /&gt;
&lt;br /&gt;
* [http://www.cpctech.org.uk/docs/z80.html Some features of the Z80 (the Flags and LDIR are the more important)]&lt;br /&gt;
&lt;br /&gt;
* [http://www.cpctech.org.uk/docs/mult.html Multiplication with the Z80]&lt;br /&gt;
&lt;br /&gt;
Really &amp;quot;heavy&amp;quot; official Zilog documentation:&lt;br /&gt;
&lt;br /&gt;
* [http://www.myquest.nl/z80undocumented/z80cpu_um.pdf]Z80 Family CPU User Manual]&lt;br /&gt;
&lt;br /&gt;
=== Assembler syntax ===&lt;br /&gt;
&lt;br /&gt;
That tutorial teaches everything about Z80 assembly, but not much in the way of what is not actually a z80 mnemonic (e.g. LD) but an assembler command (e.g. DEFB). I think most directives don't even get a mention, like how to tell the assembler where to put the object code.&lt;br /&gt;
&lt;br /&gt;
Assembly on the CPC is usually MAXAM compatible (like WinAPE's assembler) since that assembler (MAXAM) set a standard on the CPC. (I personally use the WinAPE built-in assembler. You might also like Pasmo which has a feature similar to using local variables in high level language subroutines. In most assemblers all variables are global.) So in CPC assembly, directives like ORG, LIMIT, INCLUDE, EQU, END, BYTE - TEXT - DEFB - DB, WORD - DEFW - DW, RMEM - DEFS - DS, etc. usually depend on how MAXAM defines them. These commands are not actual Z80 commands, but assembler commands/directives. Assembler commands/directives define where to put the compiled code, they define constants, they tell the assembler to include other source files or header files, where and how to reserve space for and how to name variables, etc. Same goes for macros; some assemblers offer the possibility to define and use these for convenience, but they are not part of the z80 mnemonics. Thus macros may result in a little slower code than hand-optimized code.&lt;br /&gt;
&lt;br /&gt;
* [http://www.cpctech.org.uk/docs/maxam.pdf Maxam Documentation by Arnor Ltd]&lt;br /&gt;
&lt;br /&gt;
* [http://www.cpctech.org.uk/docs/maxam15.pdf Maxam 1.5 Supplementary Documentation by Arnor Ltd]&lt;br /&gt;
&lt;br /&gt;
== The CPC ==&lt;br /&gt;
&lt;br /&gt;
=== CPC memory layout and usage ===&lt;br /&gt;
&lt;br /&gt;
Only 64K is directly accessible by the Z80. On the CPC architecture the last 16K is by default used as the screen data (addresses &amp;amp;C000 to &amp;amp;FFFF). Addresses 0 to &amp;amp;170 and HIMEM+1 to &amp;amp;BFFF is used by the Firmware, BASIC and AMSDOS ROM's. Himem is a Locomotive BASIC variable that reports the highest available free memory location when the CPC boots up. By lowering this value, you assign less space for the BASIC part of your program and it's BASIC data (strings, variables, arrays). The rest (from the new HIMEM's value up to the initial HIMEM value when the computer boots up) can be used by your machine code and its data. You alter the HIMEM value by e.g.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;MEMORY &amp;amp;2000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
from BASIC. Obviously it shouldn't be lower than &amp;amp;170 or higher than HIMEM's initial value. (Sometimes I personally don't use this at all. If I compile something at &amp;amp;4000 and my BASIC program is small, then I just don't bother with MEMORY and HIMEM because usually nothing gets overwritten.)&lt;br /&gt;
&lt;br /&gt;
=== CPC Hardware &amp;amp; Firmware ===&lt;br /&gt;
&lt;br /&gt;
Once you're through learning the z80 features and z80 assembly syntax, you'll have to learn a little (or a lot) about the CPC Hardware and how it works. You may also like to use some of the ready made routines offered by the CPC OS (the &amp;quot;Firmware&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
For the CPC specifics I believe your number one source of information should be [http://www.cpctech.org.uk/ The Unofficial Amstrad WWW Resource], especially the documents and source code sections.&lt;br /&gt;
&lt;br /&gt;
If you'd like to put some graphics (like tiles and sprites) on the screen you'll need some ready-made routines or start learning on how the CPC's screen works and write your own ones.&lt;br /&gt;
&lt;br /&gt;
The firmware documentation:&lt;br /&gt;
&lt;br /&gt;
[ftp://ftp.nvg.ntnu.no/pub/cpc/docs/firmware.zip The Amstrad CPC Firmware Guide] (in .dsk, text and pdf - you have to be a little patient with this link) which describes the ROM routines for loading files, printing characters on the screen, reading keyboard input, drawing lines, using floats/reals and more. It also describes how and what memory is used by the OS. Also online at: [http://www.cantrell.org.uk/david/tech/cpc/cpc-firmware/ http://www.cantrell.org.uk/david/tech/cpc/cpc-firmware/]&lt;br /&gt;
&lt;br /&gt;
== BASIC ==&lt;br /&gt;
&lt;br /&gt;
=== BASIC and BASIC compilers ===&lt;br /&gt;
&lt;br /&gt;
[http://www.amstradcg.nl/cpcbib.html CPC 664 user's manual]. In case you know some Locomotive BASIC (or you'd wish to learn) it contains general info on the computer along with some short Locomotive BASIC tutorials and full BASIC reference. (There's also a 464 OCR'd .pdf if anyone can upload it somewhere.)&lt;br /&gt;
&lt;br /&gt;
Here's an ok BASIC compiler: &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[ftp://ftp.nvg.ntnu.no/pub/cpc/utils/cpc/fabacom.zip FABACOM/FAST BASIC COMPILER], it compiles Locomotive BASIC source. It seems to not like some commands or parameters of commands. You'll know if your program crashes.&lt;br /&gt;
&lt;br /&gt;
There's at least another two Compilers that are supposed to compile Locomotive BASIC code, but I haven't tried them: &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Laser BASIC Compiler]] and a french BASIC compiler called Typhon. Both can be found at planetemu.net [http://www.planetemu.net/?section=recherche&amp;amp;recherche=Laser%20BASIC%20Typhon&amp;amp;type=Tous%20les%20mots&amp;amp;rubrique=roms here].&lt;br /&gt;
&lt;br /&gt;
Sean McManus has a nice BASIC tutorial including some assembler routines at: &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://www.sean.co.uk/books/amstrad/index.shtm Sean's Amstrad CPC homepage]&lt;br /&gt;
&lt;br /&gt;
== Other languages ==&lt;br /&gt;
&lt;br /&gt;
A VB-style compiler is supposedly coming soon for SymbOS.&lt;br /&gt;
&lt;br /&gt;
A list of languages available on the CPC: &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Programming software]]&lt;br /&gt;
&lt;br /&gt;
== A somewhat advanced example: How to use Locomotive BASIC &amp;amp; your own pipe commands ==&lt;br /&gt;
&lt;br /&gt;
You can use this for all asm source you have available, like for the tutorial source code.&lt;br /&gt;
&lt;br /&gt;
When calling some asm code from BASIC, you would use something like: &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;10 CLS &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
20 MEMORY &amp;amp;3FFF &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
30 CALL &amp;amp;4000 &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
40 END&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The Call command calls a machine code routine. If there's nothing at address &amp;amp;4000 then the computer will probably crash.&lt;br /&gt;
&lt;br /&gt;
When you assemble a z80 program it's important to instruct the assembler as to where it should put the resultant machine code. You do this by using the ORG assembler directive, like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;org #4000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
for the BASIC code above. If you have several machine code routines that you would like to call from BASIC then where to call depends on where the routine you want to call starts in memory. However calculating or copying and typing in specific addresses is cumbersome because each time you reassemble your program these memory locations may also change.&lt;br /&gt;
&lt;br /&gt;
The easiest way for calling machine code routines from BASIC is to set up a pipe-commands table. These are similar to the |DIR, |B, |CPM, etc. AMSDOS commands. How to do this is described in official Amstrad documentation: [http://www.cpctech.org.uk/docs/manual/s968se10.pdf SOFT 968 Section 10 (Expansion ROMs, Resident System Extensions and RAM Programs)]&lt;br /&gt;
&lt;br /&gt;
For example, start up WinAPE, press F6, create a New File from the assembler's File menu and copy and paste this code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
KL_LOG_EXT equ &amp;amp;bcd1&lt;br /&gt;
&lt;br /&gt;
org #4000&lt;br /&gt;
&lt;br /&gt;
INITIALIZE: LD HL,WORK_SPACE ;RSX power-up Routine&lt;br /&gt;
&lt;br /&gt;
LD BC,RSX_TABLE&lt;br /&gt;
&lt;br /&gt;
JP KL_LOG_EXT&lt;br /&gt;
&lt;br /&gt;
WORK_SPACE: DEFS 4 ;Area for Kernel to use&lt;br /&gt;
&lt;br /&gt;
RSX_TABLE: DEFW NAME_TABLE&lt;br /&gt;
&lt;br /&gt;
jp print&lt;br /&gt;
&lt;br /&gt;
jp multiply&lt;br /&gt;
&lt;br /&gt;
jp mem_move&lt;br /&gt;
&lt;br /&gt;
NAME_TABLE:&lt;br /&gt;
&lt;br /&gt;
defb 'PRIN','T'+#80&lt;br /&gt;
&lt;br /&gt;
defb 'MULTIPL','Y'+#80&lt;br /&gt;
&lt;br /&gt;
defb 'MEMMOV','E'+#80&lt;br /&gt;
&lt;br /&gt;
DEFB #00&lt;br /&gt;
&lt;br /&gt;
.print&lt;br /&gt;
&lt;br /&gt;
ret&lt;br /&gt;
&lt;br /&gt;
.multiply&lt;br /&gt;
&lt;br /&gt;
ret&lt;br /&gt;
&lt;br /&gt;
.mem_move&lt;br /&gt;
&lt;br /&gt;
ret&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assemble and type&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Call &amp;amp;4000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
from BASIC. Then you can call each of these routines from BASIC by name, like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;|PRINT&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that there's no code for all three commands (|PRINT, |MULTIPLY, |MEMMOVE) in this example, they just ret-urn to BASIC. You'll have to write the code for each command between each label and it's RET mnemonic or paste some existent code and rename accordingly the command names (below the NAME_TABLE label) and the jump table (the jp commands). Every jp corresponds one-to-one with an entry in the NAME_TABLE; the order is significant. NAME_TABLE entries must be all upper case with no underscores or spaces.&lt;br /&gt;
&lt;br /&gt;
Also you'd probably need to supply a number of parameters to each of the routines like you would in a high-level language function call. In this case A contains the number of parameters and (IX+offset) points to each parameter (each parameter has a word width so offset increases by 2).&lt;br /&gt;
&lt;br /&gt;
If your code is 100% assembler you don't need all of this. Just Call to some memory location and never RET-urn to BASIC.&lt;br /&gt;
&lt;br /&gt;
[[Category: Programming| ]]&lt;/div&gt;</summary>
		<author><name>FindYWay</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=CRTC&amp;diff=86175</id>
		<title>CRTC</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=CRTC&amp;diff=86175"/>
				<updated>2013-01-14T11:06:44Z</updated>
		
		<summary type="html">&lt;p&gt;FindYWay: Timings and relating with Z80 instructions count&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* ''This is an article about the &amp;quot;Cathode Ray Tube Controller&amp;quot; hardware unit of the Amstrad CPC. For the cpc scene member see [[ChaRleyTroniC]]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The '''CRTC''' (Cathode Ray Tube Controller) generates the video signal of the Amstrad CPC.&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The 6845 Cathode Ray Tube Controller (CRTC) is a programmable IC used to generate video displays. This IC is used in a variety of computers including the Amstrad CPC, Amstrad CPC+ and KC Compact. &lt;br /&gt;
&lt;br /&gt;
The CRTC was a common part available from many different manufacturers. During the life of the CPC, Amstrad sourced the CRTC from various manufacturers. &lt;br /&gt;
&lt;br /&gt;
All ICs used were based on the same design but have a different implementation. As a result they do not operate identically in all situations. This document highlights these differences. &lt;br /&gt;
&lt;br /&gt;
This table lists the known ICs used, with their part number, manufacturer and type number. &lt;br /&gt;
&lt;br /&gt;
{|{{Prettytable|width: 700px; font-size: 2em;}}&lt;br /&gt;
|''Part number''||''Manufacturer''||''Type number (note 3)''&lt;br /&gt;
|-&lt;br /&gt;
|HD6845S||Hitachi||0&lt;br /&gt;
|-&lt;br /&gt;
|UM6845||UMC||0&lt;br /&gt;
|-&lt;br /&gt;
|UM6845R||UMC||1&lt;br /&gt;
|-&lt;br /&gt;
|MC6845||Motorola||2&lt;br /&gt;
|-&lt;br /&gt;
|AMS40489||Amstrad||3 (note 1)&lt;br /&gt;
|-&lt;br /&gt;
|40226||Amstrad||4 (note 2)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''NOTES''' &lt;br /&gt;
&lt;br /&gt;
1. The CRTC functionality is integrated into the CPC+ ASIC. This type exists only in the CPC464+,CPC6128+ and GX4000. &lt;br /&gt;
&lt;br /&gt;
2. This type exists in &amp;quot;cost-down&amp;quot; CPC464 and CPC6128 systems. In the &amp;quot;cost-down&amp;quot; the CRTC functionality is integrated into a single ASIC IC. This ASIC is often refered to as the &amp;quot;Pre-ASIC&amp;quot; because it preceeded the CPC+ ASIC.&lt;br /&gt;
 &lt;br /&gt;
3. In the Amstrad community each 6845 implementation has been assigned a type number. This type identifies a group of implementations which operate in exactly the same way. &lt;br /&gt;
&lt;br /&gt;
As far as I know, the type number system was originally used by demo programmers. &lt;br /&gt;
&lt;br /&gt;
It is possible to detect the 6845 present using software methods, and this is done to: &lt;br /&gt;
&lt;br /&gt;
* warn that the software was not designed for the detected 6845 and may function incorrectly, &lt;br /&gt;
* to adapt the software so that it will run with the detected 6845 &lt;br /&gt;
* In most cases, the type of the detected 6845 is reported. &lt;br /&gt;
&lt;br /&gt;
4. As far as I know, the KC compact used HD6845S only.&lt;br /&gt;
&lt;br /&gt;
== Timings and relating with Z80 instructions count ==&lt;br /&gt;
&lt;br /&gt;
Some informations like : how many Z80 instructions can I fit within a scan line ? Within a screen ? Etc... See http://www.cpcwiki.eu/forum/programming/frame-flyback-and-interrupts/msg25106/#msg25106&lt;br /&gt;
(To be extracted/edited to conform to wiki good practices).&lt;br /&gt;
&lt;br /&gt;
==Programming==&lt;br /&gt;
&lt;br /&gt;
The 6845 is selected when bit 14 of the I/O port address is set to &amp;quot;0&amp;quot;. Bit 1 and 0 of the I/O port address define the function to access. The remaining bits can be any value, but it is adviseable to set these to &amp;quot;1&amp;quot; to avoid conflict with other devices in the system.&lt;br /&gt;
&lt;br /&gt;
The recommended I/O port addresses are&lt;br /&gt;
&lt;br /&gt;
{|{{Prettytable|width: 700px; font-size: 2em;}}&lt;br /&gt;
|''I/O port address''||''Function''||''Read/Write''&lt;br /&gt;
|-&lt;br /&gt;
|&amp;amp;BCxx||Select 6845 register||Write only&lt;br /&gt;
|-&lt;br /&gt;
|&amp;amp;BDxx||Write 6845 register data||Write only&lt;br /&gt;
|-&lt;br /&gt;
|&amp;amp;BExx||(note 1)||Read only&lt;br /&gt;
|-&lt;br /&gt;
|&amp;amp;BFxx||(note 1)||Read only&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''NOTE'''&lt;br /&gt;
&lt;br /&gt;
1. The function of these I/O ports is dependant on the CRTC type&lt;br /&gt;
 &lt;br /&gt;
2. If you perform an IN instruction to the select or write functions it will write data to the CRTC from the current data on the bus.&lt;br /&gt;
&lt;br /&gt;
==Addressing==&lt;br /&gt;
&lt;br /&gt;
The following table defines the generated memory address from the CRTC and Gate-Array signals. &lt;br /&gt;
&lt;br /&gt;
{|{{Prettytable|width: 700px; font-size: 2em;}}&lt;br /&gt;
|''Memory Address Signal''||''Signal source''||''Signal name''&lt;br /&gt;
|-&lt;br /&gt;
|A15||6845||MA12 &lt;br /&gt;
|-&lt;br /&gt;
|A14||6845||MA11 &lt;br /&gt;
|-&lt;br /&gt;
|A13||6845||RA2 &lt;br /&gt;
|-&lt;br /&gt;
|A12||6845||RA1 &lt;br /&gt;
|-&lt;br /&gt;
|A11||6845||RA0 &lt;br /&gt;
|-&lt;br /&gt;
|A10||6845||MA9 &lt;br /&gt;
|-&lt;br /&gt;
|A9||6845||MA8 &lt;br /&gt;
|-&lt;br /&gt;
|A8||6845||MA7 &lt;br /&gt;
|-&lt;br /&gt;
|A7||6845||MA6 &lt;br /&gt;
|-&lt;br /&gt;
|A6||6845||MA5 &lt;br /&gt;
|-&lt;br /&gt;
|A5||6845||MA4 &lt;br /&gt;
|-&lt;br /&gt;
|A4||6845||MA3 &lt;br /&gt;
|-&lt;br /&gt;
|A3||6845||MA2 &lt;br /&gt;
|-&lt;br /&gt;
|A2||6845||MA1 &lt;br /&gt;
|-&lt;br /&gt;
|A1||6845||MA0&lt;br /&gt;
|-&lt;br /&gt;
|A0||Gate-Array||CCLK&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
CRTC generates the address, Gate-Array reads the data and converts it to pixels based on the current mode.&lt;br /&gt;
&lt;br /&gt;
== DISPTMG ==&lt;br /&gt;
&lt;br /&gt;
DISPTMG signal defines the border. When DISPTMG is &amp;quot;1&amp;quot; the border colour is output to the display. &lt;br /&gt;
&lt;br /&gt;
== HSYNC and VSYNC ==&lt;br /&gt;
&lt;br /&gt;
HSYNC and VSYNC from the CRTC are passed into the Gate-Array. The Gate-Array modifies the signals and then mixes these to form the Composite-Sync which is output to the display &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== The 6845 Registers ==&lt;br /&gt;
&lt;br /&gt;
The Internal registers of the 6845 are:&lt;br /&gt;
&lt;br /&gt;
{|{{Prettytable|width: 700px; font-size: 2em;}}&lt;br /&gt;
|''Register Index''||''Register Name''||''Range''||''CPC Setting''||''Notes''&lt;br /&gt;
|-&lt;br /&gt;
|0||Horizontal Total||00000000||63||Width of the screen, in characters. Should always be 63 (64 characters). 1 character == 1μs.&lt;br /&gt;
|-&lt;br /&gt;
|1||Horizontal Displayed||00000000||40||Number of characters displayed. Once horizontal character count (HCC) matches this value, DISPTMG is set to 1.&lt;br /&gt;
|-&lt;br /&gt;
|2||Horizontal Sync Position||00000000||46||When to start the HSync signal.&lt;br /&gt;
|-&lt;br /&gt;
|3||Horizontal and Vertical Sync Widths||VVVVHHHH||128+14||HSync pulse width in characters (0 means 16 on some CRTC), should always be more than 8; VSync width in scan-lines. (0 means 16 on some CRTC. Not present on all CRTCs, fixed to 16 lines on these)&lt;br /&gt;
|-&lt;br /&gt;
|4||Vertical Total||x0000000||38||Height of the screen, in characters.&lt;br /&gt;
|-&lt;br /&gt;
|5||Vertical Total Adjust||xxx00000||0||Measured in scanlines, can be used for smooth vertical scrolling on CPC.&lt;br /&gt;
|-&lt;br /&gt;
|6||Vertical Displayed||x0000000||25||Height of displayed screen in characters. Once vertical character count (VCC) matches this value, DISPTMG is set to 1.&lt;br /&gt;
|-&lt;br /&gt;
|7||Vertical Sync position||x0000000||30||When to start the VSync signal, in characters.&lt;br /&gt;
|-&lt;br /&gt;
|8||Interlace and Skew||xxxxxx00||0||00: No interlace; 01: Interlace Sync Raster Scan Mode; 10: No Interlace; 11: Interlace Sync and Video Raster Scan Mode&lt;br /&gt;
|-&lt;br /&gt;
|9||Maximum Raster Address||xxx00000||7||Maximum scan line address on CPC can hold between 0 and 7, higher values' upper bits are ignored&lt;br /&gt;
|-&lt;br /&gt;
|10||Cursor Start Raster||xBP00000||0||Cursor not used on CPC. B = Blink On/Off; P = Blink Period Control (Slow/Fast). Sets first raster row of character that cursor is on to invert.&lt;br /&gt;
|-&lt;br /&gt;
|11||Cursor End Raster||xxx00000||0||Sets last raster row of character that cursor is on to invert&lt;br /&gt;
|-&lt;br /&gt;
|12||Display Start Address (High)||xx000000||32&lt;br /&gt;
|-&lt;br /&gt;
|13||Display Start Address (Low)||00000000||0||Allows you to offset the start of screen memory, useful when using memory from address &amp;amp;0000.&lt;br /&gt;
|-&lt;br /&gt;
|14||Cursor Address (High)||xx000000||0&lt;br /&gt;
|-&lt;br /&gt;
|15||Cursor Address (High)||00000000||0&lt;br /&gt;
|-&lt;br /&gt;
|16||Light Pen Address (High)||xx000000||||Read Only&lt;br /&gt;
|-&lt;br /&gt;
|17||Light Pen Address (High)||00000000||||Read Only&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== CRTC Differences ==&lt;br /&gt;
&lt;br /&gt;
In this section I will attempt to identify all the differences between each CRTC. &lt;br /&gt;
&lt;br /&gt;
The following tables list the functions that can be accessed for each type: &lt;br /&gt;
&lt;br /&gt;
Type 0&lt;br /&gt;
&lt;br /&gt;
{|{{Prettytable|width: 700px; font-size: 2em;}}&lt;br /&gt;
|''b1''||''b0''||''Function''||''Read/Write'' &lt;br /&gt;
|-&lt;br /&gt;
|0||0||Select internal 6845 register||Write Only &lt;br /&gt;
|-&lt;br /&gt;
|0||1||Write to selected internal 6845 register||Write Only &lt;br /&gt;
|-&lt;br /&gt;
|1||0||-||- &lt;br /&gt;
|-&lt;br /&gt;
|1||1||Read from selected internal 6845 register||Read only &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Type 1&lt;br /&gt;
&lt;br /&gt;
{|{{Prettytable|width: 700px; font-size: 2em;}}&lt;br /&gt;
|''b1''||''b0''||''Function''||''Read/Write'' &lt;br /&gt;
|-&lt;br /&gt;
|0||0||Select internal 6845 register||Write Only &lt;br /&gt;
|-&lt;br /&gt;
|0||1||Write to selected internal 6845 register||Write Only &lt;br /&gt;
|-&lt;br /&gt;
|1||0||Read Status Register||Read Only &lt;br /&gt;
|-&lt;br /&gt;
|1||1||Read from selected internal 6845 register||Read only &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Type 2&lt;br /&gt;
&lt;br /&gt;
{|{{Prettytable|width: 700px; font-size: 2em;}}&lt;br /&gt;
|''b1''||''b0''||''Function''||''Read/Write'' &lt;br /&gt;
|-&lt;br /&gt;
|0||0||Select internal 6845 register||Write Only &lt;br /&gt;
|-&lt;br /&gt;
|0||1||Write to selected internal 6845 register||Write Only &lt;br /&gt;
|-&lt;br /&gt;
|1||0||-||- &lt;br /&gt;
|-&lt;br /&gt;
|1||1||Read from selected internal 6845 register||Read only &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Type 3 and 4&lt;br /&gt;
&lt;br /&gt;
{|{{Prettytable|width: 700px; font-size: 2em;}}&lt;br /&gt;
|''b1''||''b0''||''Function''||''Read/Write'' &lt;br /&gt;
|-&lt;br /&gt;
|0||0||Select internal 6845 register||Write Only &lt;br /&gt;
|-&lt;br /&gt;
|0||1||Write to selected internal 6845 register||Write Only &lt;br /&gt;
|-&lt;br /&gt;
|1||0||Read from selected internal 6845 register||Read Only &lt;br /&gt;
|-&lt;br /&gt;
|1||1||Read from selected internal 6845 register||Read only &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
It is not possible to read from all the internal registers, this table shows the read/write status of each register for each type: &lt;br /&gt;
&lt;br /&gt;
{|{{Prettytable|width: 700px; font-size: 2em;}}&lt;br /&gt;
|rowspan=2|''Register Index''||rowspan=2|''Register Name''||colspan=4|''Type'' &lt;br /&gt;
|-&lt;br /&gt;
|0||1||2||3||4&lt;br /&gt;
|-&lt;br /&gt;
|0||Horizontal Total||Write Only||Write Only||Write Only||(note 2)||(note 3) &lt;br /&gt;
|-&lt;br /&gt;
|1||Horizontal Displayed||Write Only||Write Only||Write Only||(note 2)||(note 3)&lt;br /&gt;
|-&lt;br /&gt;
|2||Horizontal Sync Position||Write Only||Write Only||Write Only||(note 2)||(note 3) &lt;br /&gt;
|-&lt;br /&gt;
|3||Horizontal and Vertical Sync Widths||Write Only||Write Only||Write Only||(note 2)||(note 3) &lt;br /&gt;
|-&lt;br /&gt;
|4||Vertical Total||Write Only||Write Only||Write Only||(note 2)||(note 3) &lt;br /&gt;
|-&lt;br /&gt;
|5||Vertical Total Adjust||Write Only||Write Only||Write Only||(note 2)||(note 3) &lt;br /&gt;
|-&lt;br /&gt;
|6||Vertical Displayed||Write Only||Write Only||Write Only||(note 2)||(note 3)&lt;br /&gt;
|-&lt;br /&gt;
|7||Vertical Sync position||Write Only||Write Only||Write Only||(note 2)||(note 3) &lt;br /&gt;
|-&lt;br /&gt;
|8||Interlace and Skew||Write Only||Write Only||Write Only||(note 2)||(note 3) &lt;br /&gt;
|-&lt;br /&gt;
|9||Maximum Raster Address||Write Only||Write Only||Write Only||(note 2)||(note 3) &lt;br /&gt;
|-&lt;br /&gt;
|10||Cursor Start Raster||Write Only||Write Only||Write Only||(note 2)||(note 3) &lt;br /&gt;
|-&lt;br /&gt;
|11||Cursor End Raster||Write Only||Write Only||Write Only||(note 2)||(note 3) &lt;br /&gt;
|-&lt;br /&gt;
|12||Display Start Address (High)||Read/Write||Write Only||Write Only||Read/Write (note 2)||(note 3) &lt;br /&gt;
|-&lt;br /&gt;
|13||Display Start Address (Low)||Read/Write||Write Only||Write Only||Read/Write (note 2)||(note 3) &lt;br /&gt;
|-&lt;br /&gt;
|14||Cursor Address (High)||Read/Write||Read/Write||Read/Write||Read/Write (note 2)||(note 3)&lt;br /&gt;
|-&lt;br /&gt;
|15||Cursor Address (Low)||Read/Write||Read/Write||Read/Write||Read/Write (note 2)||(note 3)&lt;br /&gt;
|-&lt;br /&gt;
|16||Light Pen Address (High)||Read Only||Read Only||Read Only||Read Only (note 2)||(note 3)&lt;br /&gt;
|-&lt;br /&gt;
|17||Light Pen Address (High)||Read Only||Read Only||Read Only||Read Only (note 2)||(note 3)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Notes'''&lt;br /&gt;
&lt;br /&gt;
1. On type 0 and 1, if a Write Only register is read from, &amp;quot;0&amp;quot; is returned. &lt;br /&gt;
&lt;br /&gt;
2. See the document &amp;quot;Extra CPC Plus Hardware Information&amp;quot; for more details.&lt;br /&gt;
&lt;br /&gt;
3. CRTC type 4 is the same as CRTC type 3. The registers also repeat as they do on the type 3.&lt;br /&gt;
&lt;br /&gt;
== Datasheets ==&lt;br /&gt;
&lt;br /&gt;
* [[Media:hd6845.hitachi.pdf|HD6845 (Hitachi) (aka type 0)]]&lt;br /&gt;
* [[Media:Um6845.umc.pdf|UM6845 (UMC)  (aka type 0)]]&lt;br /&gt;
* [[Media:Um6845r.umc.pdf|UM6845R (UMC)  (aka type 1)]]&lt;br /&gt;
* [[Media:Mc6845.motorola.pdf|MC6845 (Motorola) (aka type 2)]]&lt;br /&gt;
&lt;br /&gt;
* [[VHDL implementation of the 6845]]&lt;br /&gt;
&lt;br /&gt;
== Clones ==&lt;br /&gt;
* [CM607P   a Bulgarian clone made in Pravetz factory]&lt;br /&gt;
* [EF6845P  by Thomson Semiconductors]&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
* [http://en.wikipedia.org/wiki/6845 Wikipedia on the CRTC]&lt;br /&gt;
* [http://www.grimware.org/doku.php/documentations/devices/crtc CRTCs on grimware]&lt;br /&gt;
&lt;br /&gt;
==Related pages==&lt;br /&gt;
&lt;br /&gt;
*[[Gate Array]]&lt;br /&gt;
&lt;br /&gt;
*[[ASIC]]&lt;br /&gt;
&lt;br /&gt;
*[[Video modes]]&lt;br /&gt;
&lt;br /&gt;
*[[Synchronising with the CRTC and display]] : technic and details on the relationship between Gate Array and CRTC.&lt;br /&gt;
&lt;br /&gt;
[[Category:Hardware]] [[Category:CPC Internal Components]] [[Category:Programming]] [[Category:Datasheet]] [[Category:Graphic]]&lt;/div&gt;</summary>
		<author><name>FindYWay</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=CPC_old_generation&amp;diff=86174</id>
		<title>CPC old generation</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=CPC_old_generation&amp;diff=86174"/>
				<updated>2013-01-14T10:27:51Z</updated>
		
		<summary type="html">&lt;p&gt;FindYWay: /* Hardware description */ Link to grimware for detailed Z80 instructions with titmings (number of cycles).&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Hardware|*]][[Category:CPC Internal Components| ]][[Category:CPC History|*]][[Category:Amstrad Products| ]]&lt;br /&gt;
&lt;br /&gt;
[[Image:464.png|thumb|CPC 464 with Colour monitor]]&lt;br /&gt;
[[Image:Schneider 664 en.jpg|thumb|German CPC 664]]&lt;br /&gt;
&lt;br /&gt;
''The following text was copied in part from the [http://en.wikipedia.org/wiki/Amstrad_CPC English Wikipedia article].''&lt;br /&gt;
&lt;br /&gt;
==Hardware description==&lt;br /&gt;
All CPC models were based on a Zilog Z80 processor clocked at 4 MHz. Because a common pool of RAM is shared with the video circuits, the Z80 may only make a memory access once every four cycles, which has the effect of rounding all instruction cycle lengths up to the next multiple of four. For details, see [http://www.grimware.org/doku.php/documentations/devices/z80 a nearly complete list of instructions with timings (number of cycles) for each.]&lt;br /&gt;
&lt;br /&gt;
The system came with 64 KB or 128 KB of RAM depending on the model (capable of being expanded to 576k). The machines also featured a standard 9-pin Atari-style joystick socket which was able to take two joysticks via a splitter.&lt;br /&gt;
&lt;br /&gt;
The machines' dimensions are:&lt;br /&gt;
*'''CPC464''' : 17 x 57.5 x 7.5&lt;br /&gt;
*'''CPC6128''' : 17.5 x 51.1 x 5&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Video (graphics): modes, outputs===&lt;br /&gt;
Underlying the CPC's video output was the [[CRTC|Motorola 6845]] address generator. This chip was connected to a pixel generator that supported 4 bpp, 2 bpp and 1 bpp output (bits per pixel). The address generator was clocked at a constant rate so the 4 bpp display generated half as many pixels as the 2 bpp and a quarter as many as the 1 bpp.&lt;br /&gt;
&lt;br /&gt;
The ROM featured three built-in display resolutions but many others could be achieved by reprogramming the 6845.&lt;br /&gt;
&lt;br /&gt;
The standard [[video modes]] were:&lt;br /&gt;
*'''Mode 0''': '''160×200''' pixels with 16 colours (4 bpp)&lt;br /&gt;
*'''Mode 1''': '''320×200''' pixels with 4 colours (2 bpp)&lt;br /&gt;
*'''Mode 2''': '''640×200''' pixels with 2 colours (1 bpp)&lt;br /&gt;
*'''Mode 3''': '''160×200''' pixels with 4 colours (2 bpp) (this is not an official mode, but rather a side-effect of the hardware)&lt;br /&gt;
&lt;br /&gt;
A colour palette of 27 colours was supported, derived from RGB colour space with each component assigned as either off, half on or on. The later '''Plus''' models extended this to 4096 colours and added support for hardware sprites.&lt;br /&gt;
&lt;br /&gt;
This hardware compares well with the other 8-bit computers. In particular the CPC lacks the colour clash of the ZX Spectrum, and clever programming of the 6845 could produce overscan, different resolutions (although with the same pixel density) and smooth pixel scrolling.&lt;br /&gt;
&lt;br /&gt;
The machine lacked either a RF TV or composite video output and instead shipped with a proprietary 5-pin DIN connector intended for use solely with the supplied Amstrad monitor. An external adapter for RF TV was available to be bought separately.&lt;br /&gt;
&lt;br /&gt;
The five-pin DIN connector is capable of driving a television with a correctly wired SCART lead.&lt;br /&gt;
&lt;br /&gt;
===Audio (sound)===&lt;br /&gt;
The CPC used the General Instrument AY-3-8912 sound chip, providing three channels, each configurable to generate square waves, white noise or both. A small array of hardware volume envelopes are available.&lt;br /&gt;
&lt;br /&gt;
Output was provided in mono by a small (4 cm) built-in loudspeaker with volume control, driven by an unusually powerful amplifier. Stereo output was provided through a 3.5mm headphone jack, not present on some early CPC464 models. In those models, what looked like a standard 3.5&amp;quot; headphone jack was actually used for connecting an external tape recorder, although later models used a five-pin DIN connector for the same purpose.&lt;br /&gt;
&lt;br /&gt;
Playback of digital sound samples at a resolution of a little better than 5-bit, as heard on the title screen of the game ''RoboCop'', was possible through clever programming of the sound chip. This trick was very processor intensive and hard to combine with any other processing.&lt;br /&gt;
&lt;br /&gt;
===The 3&amp;quot; floppy disk drives===&lt;br /&gt;
Amstrad's idiosyncratic choice of Hitachi's 3&amp;quot; floppy disk drive, when the rest of the PC industry was moving to Sony's 3.5&amp;quot; format, is often claimed to be due to Amstrad bulk-buying a large consignment of 3&amp;quot; drive units in Asia. The cheapest drive (built-in in later models) was a single-sided 40-track unit that required the user to physically remove and flip the disk to access both sides. Each side had its own independent write-protect switch. The sides were termed &amp;quot;A&amp;quot; and &amp;quot;B&amp;quot;, with each one holding 180KB (178KB in AMSDOS format) for a total of 360KB per disc.  &lt;br /&gt;
&lt;br /&gt;
The disk drive interface was a NEC 765 FDC, used for the same purpose in the IBM PC/XT, PC/AT and PS/2 machines. Many of its features were unused in order to cut costs, namely DMA transfers and support for single density disks. Disks were formatted as double density using Modified Frequency Modulation. &lt;br /&gt;
&lt;br /&gt;
Disks were shipped in a paper sleeve or a hard plastic case resembling a compact disc &amp;quot;jewel&amp;quot; case. The casing is thicker and more rigid than that of 3.5&amp;quot; diskettes and the sliding metal cover to protect the media surface is internal to the casing and latched, unlike the simple external sliding cover of Sony's version (some reviews at the time reported driving over them with no problems). Because of this they were significantly more expensive than both the 5.25&amp;quot; and 3.5&amp;quot; alternatives. This, combined with their low nominal capacities and their essentially proprietary nature, lead to the format being discontinued when the CPC itself was discontinued.&lt;br /&gt;
&lt;br /&gt;
Apart from Amstrad's other 3&amp;quot; machine, the PCW, and the ZX Spectrum +3 (produced by Sinclair), the only other computer systems to use them were the Sega SF-7000 and mostly obscure and exotic CP/M systems such as the Tatung Einstein and Osborne machines. It should be noted that some of these machines used drives with different pinouts and care should be taken when replacing drives.&lt;br /&gt;
&lt;br /&gt;
The data formatting of 3&amp;quot; disks was very similar to that of 5&amp;amp;frac14;&amp;quot; disks, and the Amstrad CPC machines were able to use 5&amp;amp;frac14;&amp;quot; drives through their &amp;quot;external drive&amp;quot; port - either one specially designed for use by the CPC or an adapted IBM-PC drive.&lt;br /&gt;
&lt;br /&gt;
A more popular alternative was to attach an adapted IBM-PC 3&amp;amp;frac12;&amp;quot; drive for operation in either single-sided 180 KB or double-sided 360 KB mode, although with the later availability of the PARADOS Disc Operating System, 720k per disc became available. (It was possible to patch CP/M Plus so that it recognised 80 track double sided disk formats, too.)&lt;br /&gt;
&lt;br /&gt;
===Serial port adaptor===&lt;br /&gt;
An official RS-232-C D25 serial port adaptor was produced that attached to the expansion connector at the rear of the machine, and had a through-connector for the CPC464 disk drive or other peripherals. The adaptor came with a &amp;quot;''Book of Spells''&amp;quot; for facilitating data transfer between other systems using a proprietary protocol in the device's own ROM, as well as terminal software to connect to British Telecom's Prestel service. A separate version of the ROM was created for the U.S. market due to the use of the commands &amp;quot;SUCK&amp;quot; and &amp;quot;BLOW&amp;quot;, which were considered unacceptable there.&lt;br /&gt;
&lt;br /&gt;
===Similarities to the BBC Micro===&lt;br /&gt;
The CPC has been termed an &amp;quot;improved Z80 implementation of the (earlier) BBC Micro&amp;quot; due to similarities in firmware and hardware. Both used the Motorola 6845 video address generator and the two have very similar sound output chips - the General Instrument AY-3-8912 in the CPC provided three tone channels each optionally with added noise and the Texas Instruments SN76489 in the BBC offered three tone channels and one exclusive noise channel.&lt;br /&gt;
&lt;br /&gt;
The BBC Micro used an Intel 8271 floppy disc controller. The CPC used the Intel 8272, which is similar to the 8271 but contains the addition of a double density (MFM) mode.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;two cursor&amp;quot; BASIC editing system seen on the Amstrad CPC (whereby holding Shift and using the cursor keys moves a shadow text cursor allowing text to be copied from another area of the screen to the normal cursor) was a lift from BBC BASIC, albeit substantially improved by allowing free movement of the normal cursor.&lt;br /&gt;
&lt;br /&gt;
Both systems provided similar systems of full hardware abstraction through Operating System calls. This saves programs which don't require time critical hardware access from having to touch the underlying machine and provides a level of machine portability for those programs.&lt;br /&gt;
&lt;br /&gt;
As the CPC had its own dialect of [[BASIC]], namely [[Locomotive BASIC]], so the BBC Micro has its own version named [[BBC BASIC]]. BBC BASIC evolved with subsequent models of BBC computers and with Acorn's next system, the Archimedes. Both had their own sets of advantages: Locomotive BASIC was faster in many contexts, had native support for text windows, had more comprehensive commands for manipulating sound, ''etc.''; BBC BASIC had support for procedures (rather than just arithmetic functions), an inline assembler, and others. Of note is the fact that among the numerous [http://www.bbcbasic.co.uk/bbcbasic.html ports of BBC Basic] produced by the company [http://www.rtrussell.co.uk/ R.T. Russell] is a version especially adapted for the Amstrad CPC, including support for its specific graphics and sound capabilities; there is also a generic version for [[CP/M]].&lt;br /&gt;
&lt;br /&gt;
==Software==&lt;br /&gt;
===Built-in BASIC and operating system===&lt;br /&gt;
Like most home computers at the time, the CPC had its OS and a BASIC interpreter built in as ROM. It used Locomotive BASIC - a variant specifically written for the CPC hardware which as a result was faster, more comfortable and more powerful than the generic but common Microsoft BASIC used by the Commodore 64 and MSX amongst others. It was particularly notable for providing easy access to the machine's video and audio resources in contrast to the arcane POKE commands required on some Microsoft implementations (the MSX implementation of Microsoft Basic being an exception, which even allowed for hardware sprite manipulation and collision detection).&lt;br /&gt;
&lt;br /&gt;
===Other languages===&lt;br /&gt;
Although it was possible to obtain compilers for Locomotive BASIC, BCPL, C, Forth, and Turbo Pascal the majority of the CPC's software was written in native Z80 assembly language.&lt;br /&gt;
&lt;br /&gt;
An interpreter for the educational language LOGO was also supplied with the 664 and 6128 (and available for the 464 with purchase of an external disc drive).&lt;br /&gt;
&lt;br /&gt;
==What was in the box?==&lt;br /&gt;
&lt;br /&gt;
=== CPC464 ===&lt;br /&gt;
&lt;br /&gt;
* The computer itself, including built-in [[Datacorder]]&lt;br /&gt;
* [[Demostration tape or disc|Demonstration tape]] in local language (UK, Germany, France, Spain)&lt;br /&gt;
* [[User Manual]]&lt;br /&gt;
* Either an [[Amstrad GT64/GT65 Green Monitor|Amstrad GT64 (Later: GT65) green monitor]] or an [[Amstrad CTM640/CTM644 Color Monitor|Amstrad CTM640 (Later: CTM644) Colour Monitor]]&lt;br /&gt;
* Optional: [[Amstrad MP1/MP2 modulator|Amstrad MP-1 (Later: MP-2) TV modulator and power supply]]&lt;br /&gt;
* A Gamepack consisting of 12 Amsoft Titles on Tape.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:CPC464_pcb_r1.jpg|CPC464 PCB revision 0 (original)&lt;br /&gt;
Image:CPC464_pcb_r3.jpg|CPC464 PCB revision 3 (costdown)&lt;br /&gt;
Image:CPC464_new_amstrad_logo.jpg|CPC464 (new Amstrad logo - photo from costdown model)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== CPC472 ===&lt;br /&gt;
&lt;br /&gt;
* [[472]]&lt;br /&gt;
&lt;br /&gt;
=== CPC664 ===&lt;br /&gt;
&lt;br /&gt;
* The computer itself, including built-in 3&amp;quot; disk drive&lt;br /&gt;
* [[System Disk]]: CP/M 2.2 disk with demo in local language (UK, Germany, France, Spain)&lt;br /&gt;
* [[User Manual]]&lt;br /&gt;
* Either an [[Amstrad GT64/GT65 Green Monitor|Amstrad GT65 green monitor]] or an [[Amstrad CTM640/CTM644 Color Monitor|Amstrad CTM644 Colour Monitor]]&lt;br /&gt;
* Optional: [[Amstrad MP1/MP2 modulator|Amstrad MP-2 TV modulator and power supply]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:664.jpg|The 664 in high-res&lt;br /&gt;
Image:CPC664_Top.jpg|CPC 664 Top&lt;br /&gt;
Image:CPC664_PCB_Top.jpg|CPC 664 Motherboard Top&lt;br /&gt;
Image:CPC664_PCB_Bottom.jpg|CPC 664 Motherboard Bottom&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Links ====&lt;br /&gt;
&lt;br /&gt;
* http://www.sellmyretro.com/ - Buy new keyboard membranes for CPC664 from RWAP software&lt;br /&gt;
* http://www.rwapsoftware.co.uk/ - RWAP Software, makers of membranes for Sinclair, Enterprise and CPC664&lt;br /&gt;
&lt;br /&gt;
=== CPC6128 ===&lt;br /&gt;
&lt;br /&gt;
* The computer itself, including built-in 3&amp;quot; disk drive&lt;br /&gt;
* [[System Disk]]s with CP/M Plus, CP/M 2.2 and a demo in local language (UK, Germany, France, Spain)&lt;br /&gt;
* [[User Manual]]&lt;br /&gt;
* Either an [[Amstrad GT64/GT65 Green Monitor|Amstrad GT65 green monitor]] or an [[Amstrad CTM640/CTM644 Color Monitor|Amstrad CTM644 Colour Monitor]]&lt;br /&gt;
* Optional: [[Amstrad MP1/MP2 modulator|Amstrad MP-2 TV modulator and power supply]]&lt;br /&gt;
* Later models came with the [[Amstrad PP8 Promotional Pack]] &lt;br /&gt;
 &lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:CPC6128_Top.jpg|CPC 6128 Top&lt;br /&gt;
Image:CPC6128_PCB_Top_(Z70290_MC0020B).jpg|CPC 6128 Motherboard Top&lt;br /&gt;
Image:CPC6128_PCB_Bottom_(Z70290_MC0020B).jpg|CPC 6128 Motherboard Bottom&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== DDI-1 ===&lt;br /&gt;
&lt;br /&gt;
* Controller DDI-1&lt;br /&gt;
* 3&amp;quot; disk drive FD-1&lt;br /&gt;
* [[System Disk]]: CP/M 2.2 disk with demo&lt;br /&gt;
* [[User Manual]]&lt;br /&gt;
&lt;br /&gt;
==Others==&lt;br /&gt;
&lt;br /&gt;
* [[Keyboard Versions]]&lt;br /&gt;
* [[Mainboard Versions]]&lt;br /&gt;
* [[CPC6128_Keyboard_Disassembled]]&lt;br /&gt;
&lt;br /&gt;
==Clones==&lt;br /&gt;
&lt;br /&gt;
See [[Clones]] for a list of classic and modern clones.&lt;/div&gt;</summary>
		<author><name>FindYWay</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=Z80_-_undocumented_opcodes&amp;diff=86173</id>
		<title>Z80 - undocumented opcodes</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=Z80_-_undocumented_opcodes&amp;diff=86173"/>
				<updated>2013-01-14T10:14:34Z</updated>
		
		<summary type="html">&lt;p&gt;FindYWay: /* Web links */ Fixed other broken link. Not 100% sure it's the same document.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The [[Z80|Z80]] CPU contains several undocumented opcodes, which can be quite helpful sometimes. The most useful undocumented opcodes are probably these ones, which split up the 16bit index registers IX and IY in 8bit registers called IXL,IXH,IYL and IYH. &lt;br /&gt;
&lt;br /&gt;
Please note, that many Z80 successors like the Z180 are NOT able to execute some of the following opcodes properly. &lt;br /&gt;
&lt;br /&gt;
This is just an overview. Parts of this article have been copied from the [http://www.myquest.nl/z80undocumented/ &amp;quot;The Undocumented Z80 Documented&amp;quot;] originally by Sean Young and currently maintained by Jan Wilmans, which is one of the most comprehensive descriptions around. &lt;br /&gt;
&lt;br /&gt;
== CB prefix  ==&lt;br /&gt;
&lt;br /&gt;
Of the 247 opcodes that use the prefix &amp;amp;CB, the block &amp;amp;CB &amp;amp;30 to &amp;amp;CB &amp;amp;37 is undocumented officially. These commands shift the operand register left and set its lowest bit to 1.&lt;br /&gt;
&lt;br /&gt;
This is in contrast to SRL (Shift Right Logical), which shifts right and clears the highest bit. Some believe these opcodes were supposed to be Shift Left Logical but that the setting of the lowest bit represents a bug in the Z80, claiming this is why the opcodes are undocumented. Others call the opcodes SLIA, for Shift Left Inverted Arithmetic.&lt;br /&gt;
&lt;br /&gt;
Regardless of the story behind this operation, its effective result is ''register'' = (''register'' * 2) + 1, something that does have its uses and has been employed in various programming contexts for that reason.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;CB30 SLL B&lt;br /&gt;
CB31 SLL C&lt;br /&gt;
CB32 SLL D&lt;br /&gt;
CB33 SLL E&lt;br /&gt;
CB34 SLL H&lt;br /&gt;
CB35 SLL L&lt;br /&gt;
CB36 SLL (HL)&lt;br /&gt;
CB37 SLL A&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== DD and FD prefixes  ==&lt;br /&gt;
&lt;br /&gt;
The &amp;amp;DD or &amp;amp;FD prefixes are documented as causing operations using the 16-bit register HL to instead work with either of the 16-bit indexing registers IX or IY; if the operations access a memory location (''i.e.'' normally LD A,(HL), ''etc.''), the opcodes must additionally include an extra byte that specifies a signed displacement (-128 to +127) from IX/IY.&lt;br /&gt;
&lt;br /&gt;
However, Zilog have not documented the fact that these prefixes also affect opcodes that usually refer to the 8-bit components of HL, ''i.e.'' H and L. Thus, one gains access to the additional registers IXH, IXL, IYH, and IYL, for almost all commands that normally use H or L. It is even possible to do things like LD IXH,IXL (although you cannot combine IX and IY in the same instruction, for obvious reasons). These registers can be useful in routines that must process and/or store a lot of numbers. Thankfully, they are not as slow as their 16-bit counterparts: whereas access to (IX+d) is usually slower by 3 NOPs than the equivalent operation upon (HL), using the 8-bit components is (like PUSH IX, ''etc.'') only 1 NOP slower, and this is only due to the need to parse the prefixing byte.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;DB #DD:LD H,A -&amp;amp;gt; LD IXH,A&lt;br /&gt;
DB #FD:LD B,L -&amp;amp;gt; LD B,IYL&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
Note: These registers are called LX, LY, HX, and HY by [[WinAPE]]'s debugger, although its assembler uses the names given above.&lt;br /&gt;
&lt;br /&gt;
== ED prefix  ==&lt;br /&gt;
&lt;br /&gt;
There are a number of undocumented EDxx instructions, of which most are duplicates of documented instructions. Any instruction not listed has no effect (same behaviour as 2 NOP instructions). &lt;br /&gt;
&lt;br /&gt;
The complete list except for the block instructions: &lt;br /&gt;
&amp;lt;pre&amp;gt;ED40 IN B,(C)       ED60 IN H,(C)&lt;br /&gt;
ED41 OUT (C),B      ED61 OUT (C),H&lt;br /&gt;
ED42 SBC HL,BC      ED62 SBC HL,HL&lt;br /&gt;
ED43 LD (nn),BC     ED63 LD (nn),HL&lt;br /&gt;
ED44 NEG            ED64 NEG *&lt;br /&gt;
ED45 RETN           ED65 RETN *&lt;br /&gt;
ED46 IM 0           ED66 IM 0 *&lt;br /&gt;
ED47 LD I,A         ED67 RRD&lt;br /&gt;
ED48 IN C,(C)       ED68 IN L,(C)&lt;br /&gt;
ED49 OUT (C),C      ED69 OUT (C),L&lt;br /&gt;
ED4A ADC HL,BC      ED6A ADC HL,HL&lt;br /&gt;
ED4B LD BC,(nn)     ED6B LD HL,(nn)&lt;br /&gt;
ED4C NEG *          ED6C NEG *&lt;br /&gt;
ED4D RETI           ED6D RETN *&lt;br /&gt;
ED4E IM 0 *         ED6E IM 0 *&lt;br /&gt;
ED4F LD R,A         ED6F RLD&lt;br /&gt;
ED50 IN D,(C)       ED70 IN (C) / IN F,(C) *&lt;br /&gt;
ED51 OUT (C),D      ED71 OUT (C),0 *&lt;br /&gt;
ED52 SBC HL,DE      ED72 SBC HL,SP&lt;br /&gt;
ED53 LD (nn),DE     ED73 LD (nn),SP&lt;br /&gt;
ED54 NEG *          ED74 NEG *&lt;br /&gt;
ED55 RETN *         ED75 RETN *&lt;br /&gt;
ED56 IM 1           ED76 IM 1 *&lt;br /&gt;
ED57 LD A,I         ED77 NOP *&lt;br /&gt;
ED58 IN E,(C)       ED78 IN A,(C)&lt;br /&gt;
ED59 OUT (C),E      ED79 OUT (C),A&lt;br /&gt;
ED5A ADC HL,DE      ED7A ADC HL,SP&lt;br /&gt;
ED5B LD DE,(nn)     ED7B LD SP,(nn)&lt;br /&gt;
ED5C NEG *          ED7C NEG *&lt;br /&gt;
ED5D RETN *         ED7D RETN *&lt;br /&gt;
ED5E IM 2           ED7E IM 2 *&lt;br /&gt;
ED5F LD A,R         ED7F NOP *&lt;br /&gt;
* = undocumented opcodes&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
== DDCB prefix  ==&lt;br /&gt;
&lt;br /&gt;
The undocumented DDCB instructions store the result (if any) of the operation in one of the seven all-purpose registers, which one depends on the lower 3 bits of the last byte of the opcode (not operand, so not the offset). &lt;br /&gt;
&amp;lt;pre&amp;gt;000 B&lt;br /&gt;
001 C&lt;br /&gt;
010 D&lt;br /&gt;
011 E&lt;br /&gt;
100 H&lt;br /&gt;
101 L&lt;br /&gt;
110 (none: documented opcode)&lt;br /&gt;
111 A&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
The documented DDCB0106 is RLC (IX+01h). So, clear the lower three bits (DDCB0100) and something is done to register B. The result of the RLC (which is stored in (IX+01h)) is now also stored in register B. Effectively, it does the following: &lt;br /&gt;
&amp;lt;pre&amp;gt;LD B,(IX+01h)&lt;br /&gt;
RLC B&lt;br /&gt;
LD (IX+01h),B&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
So you get double value for money. The result is stored in B and (IX+01h). The most common notation is: RLC (IX+01h),B &lt;br /&gt;
&lt;br /&gt;
I’ve once seen this notation: &lt;br /&gt;
&amp;lt;pre&amp;gt;RLC (IX+01h)&lt;br /&gt;
LD B,(IX+01h)&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
That’s not correct: B contains the rotated value, even if (IX+01h) points to ROM. The DDCB SET and RES instructions do the same thing as the shift/rotate instructions: &lt;br /&gt;
&amp;lt;pre&amp;gt;DDCB10C0    SET 0,(IX+10h),B&lt;br /&gt;
DDCB10C1    SET 0,(IX+10h),C&lt;br /&gt;
DDCB10C2    SET 0,(IX+10h),D&lt;br /&gt;
DDCB10C3    SET 0,(IX+10h),E&lt;br /&gt;
DDCB10C4    SET 0,(IX+10h),H&lt;br /&gt;
DDCB10C5    SET 0,(IX+10h),L&lt;br /&gt;
DDCB10C6    SET 0,(IX+10h) - documented instruction&lt;br /&gt;
DDCB10C7    SET 0,(IX+10h),A&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
So for example with the last instruction, the value of (IX+10h) with bit 0 set is also stored in register A. &lt;br /&gt;
&lt;br /&gt;
The DDCB BIT instructions do not store any value; they merely test a bit. That’s why the undocumented DDCB BIT instructions are no different from the official ones: &lt;br /&gt;
&amp;lt;pre&amp;gt;DDCB d 78   BIT 7,(IX+d)&lt;br /&gt;
DDCB d 79   BIT 7,(IX+d)&lt;br /&gt;
DDCB d 7A   BIT 7,(IX+d)&lt;br /&gt;
DDCB d 7B   BIT 7,(IX+d)&lt;br /&gt;
DDCB d 7C   BIT 7,(IX+d)&lt;br /&gt;
DDCB d 7D   BIT 7,(IX+d)&lt;br /&gt;
DDCB d 7E   BIT 7,(IX+d) - documented instruction&lt;br /&gt;
DDCB d 7F   BIT 7,(IX+d)&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
== FDCB prefix  ==&lt;br /&gt;
&lt;br /&gt;
Same as for the DDCB prefix, though IY is used instead of IX. &lt;br /&gt;
&lt;br /&gt;
== Web links  ==&lt;br /&gt;
&lt;br /&gt;
*[http://www.myquest.nl/z80undocumented/z80-documented-v0.91.pdf &amp;quot;The Undocumented Z80 Documented&amp;quot; by Sean Young Version 0.91, 18th September, 2005] at [http://www.myquest.nl/z80undocumented/ Jan Wilmans' Website] &lt;br /&gt;
*[http://www.grimware.org/lib/exe/fetch.php/documentations/devices/z80/z80.memptr.eng.txt Short information about the internal &amp;quot;MEMPTR&amp;quot; 16bit register of the Z80 and its influence on the F-Register]&lt;br /&gt;
&lt;br /&gt;
[[Category:Programming]]&lt;/div&gt;</summary>
		<author><name>FindYWay</name></author>	</entry>

	</feed>