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

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=CPCRSlib&amp;diff=100690</id>
		<title>CPCRSlib</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=CPCRSlib&amp;diff=100690"/>
				<updated>2018-01-23T17:40:48Z</updated>
		
		<summary type="html">&lt;p&gt;Cpcitor: Fix broken links.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''CPCRSlib''' is a [[:Category:C|C library]] containing routines and functions that allow to the handling of sprites and tile-mapping in Amstrad CPC. &lt;br /&gt;
&lt;br /&gt;
The library is written to be used with [[Z88DK|Z88DK]] compiler or with [[SDCC|SDCC]] complier. CPCRSlib also incorporates keyboard routines to redefine and to detect keys, as well as general routines to change to the screen mode or the colours. &lt;br /&gt;
&lt;br /&gt;
It can be found an explanation of each function/routine included in the library in [http://www.amstrad.es/programacion/cpcrslib.html http://www.amstrad.es/programacion/cpcrslib.html] &lt;br /&gt;
&lt;br /&gt;
Last release of the library can be downloaded at:&lt;br /&gt;
[http://sourceforge.net/projects/cpcrslib/ sourceforge/cpcrslib] &lt;br /&gt;
&lt;br /&gt;
[[CPCWYZlib|CPCWYZlib]] is included in the downloadable package of CPCRSlib. CPCWYZlib includes a music player and SFX player coded by WYZ, which can play music created with [[WYZTracker|WYZTracker]]. &lt;br /&gt;
&lt;br /&gt;
== Easy installation == &lt;br /&gt;
&lt;br /&gt;
If starting from scratch:&lt;br /&gt;
&lt;br /&gt;
# Get [https://github.com/cpcitor/cpc-dev-tool-chain cpc&amp;amp;#45;dev&amp;amp;#45;tool&amp;amp;#45;chain] which sets up automatically a C or ASM compiling environment on Linux, Windows, Mac.&lt;br /&gt;
# Create your project. In one of your C source file, just #include &amp;quot;cpcrslib.h&amp;quot;.&lt;br /&gt;
# Compile the project. cpc-dev-tool-chain will notice the dependency and fetch and compile cpcrslib for you.&lt;br /&gt;
&lt;br /&gt;
Need '''sample projects''' to see how how to start? cpc-dev-tool-chain has a cpcrslib-all target that [https://github.com/cpcitor/cpc-dev-tool-chain/blob/master/documentation/how_to_install.md#user-content-build-a-project compiles cpcrslib sample projects].&lt;br /&gt;
&lt;br /&gt;
== installation ==&lt;br /&gt;
&lt;br /&gt;
On Ubuntu Lucid Lynx :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd cpcrslib/&lt;br /&gt;
z80asm -v -xcpcrslib.lib @cpcrslib.lst&lt;br /&gt;
sudo cp cpcrslib.lib /usr/share/z88dk/lib/clibs/&lt;br /&gt;
sudo cp cpcrslib.h /usr/share/z88dk/include&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
now it should work.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
A classic &amp;quot;Hello world&amp;quot; from cpcrslib : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;quot;cpcrslib.h&amp;quot;	// CPC Library&lt;br /&gt;
&lt;br /&gt;
int main(void) {&lt;br /&gt;
	cpc_PrintStr(&amp;quot;Hello World!&amp;quot;);&lt;br /&gt;
	while (!cpc_AnyKeyPressed()) {	}&lt;br /&gt;
	return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should provide a zcc_opt.def in the source directory :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	DEFINE DEFINED_myzorg&lt;br /&gt;
	defc myzorg = 16384&lt;br /&gt;
&lt;br /&gt;
IF !NEED_appstartup&lt;br /&gt;
	DEFINE	NEED_appstartup&lt;br /&gt;
	defc reqpag = 32&lt;br /&gt;
	defc NEED_expanded = 1&lt;br /&gt;
ENDIF&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Compile the contents by running the compiler, pre-processor and linker in one go by typing:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
zcc +cpc -create-app -make-app -O3 -unsigned -o hello.bin hello.c -lcpcrslib -lndos -zorg=16384&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
you'll have a hello.cpc file ready to be run on your CPC.&lt;br /&gt;
&lt;br /&gt;
== Sources of projects using z88dk/SDCC and cpcrslib ==&lt;br /&gt;
&lt;br /&gt;
*[http://espsoft.blogspot.com.es/2015/08/small-games-for-smart-minds.html Small Games for Smart Minds] by ESP Soft.&lt;br /&gt;
*[http://espsoft.blogspot.com.es/2015/08/mariano-dragon-capers-in-cityland.html Mariano The Dragon] by ESP Soft.&lt;br /&gt;
*[[Sort'em]] by LuBlu Entertainment.&lt;br /&gt;
*[http://cpcfreak.cpc-live.com/ Blue Angel 69] by Kevin Thacker.&lt;br /&gt;
*[https://cpcrulez.fr/GamesTest/nanako_descends_to_hell.htm Nanako Descends to Hell] by The Mojon Twins&lt;br /&gt;
*[https://cpcrulez.fr/GamesTest/nanako_in_classic_japanese_monster_castle.htm Nanako in Classic Japanese Monster Castle] by The Mojon Twins&lt;br /&gt;
*[https://cpcrulez.fr/GamesTest/platformer_medley_block_1.htm Mari Stormbringer Plateform Medley #1] by The Mojon Twins&lt;br /&gt;
*[http://www.mojontwins.com/?page_id=171 Phantomas Thales #1: Marsport] by The Mojon Twins.&lt;br /&gt;
*[http://www.mojontwins.com/juegos_mojonos/cheril-of-the-bosque-cpc/ Cheril of the Bosque] by The Mojon Twins.&lt;br /&gt;
*[http://www.mojontwins.com/juegos_mojonos/lala-prologue-cpc/ Lala Prologue] by The Mojon Twins.&lt;br /&gt;
*[http://www.mojontwins.com/juegos_mojonos/sir-ababol-cpc/ Sir Ababol] by The Mojon Twins.&lt;br /&gt;
*[http://www.mojontwins.com/juegos_mojonos/uwol-2-cpc/ Uwol 2]  by The Mojon Twins.&lt;br /&gt;
*[http://espsoft.blogspot.com.es/2015/08/totems-columns-cpc-two.html TOTEMS: Columns CPC Two] by ESP Soft.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
[[CPCtelera]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Programming]] [[Category:C]][[Category:CrossDev]]&lt;/div&gt;</summary>
		<author><name>Cpcitor</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=CPCRSlib&amp;diff=100689</id>
		<title>CPCRSlib</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=CPCRSlib&amp;diff=100689"/>
				<updated>2018-01-23T17:37:27Z</updated>
		
		<summary type="html">&lt;p&gt;Cpcitor: Refine wording.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''CPCRSlib''' is a [[:Category:C|C library]] containing routines and functions that allow to the handling of sprites and tile-mapping in Amstrad CPC. &lt;br /&gt;
&lt;br /&gt;
The library is written to be used with [[Z88DK|Z88DK]] compiler or with [[SDCC|SDCC]] complier. CPCRSlib also incorporates keyboard routines to redefine and to detect keys, as well as general routines to change to the screen mode or the colours. &lt;br /&gt;
&lt;br /&gt;
It can be found an explanation of each function/routine included in the library in [http://www.amstrad.es/programacion/cpcrslib.html http://www.amstrad.es/programacion/cpcrslib.html] &lt;br /&gt;
&lt;br /&gt;
Last release of the library can be downloaded at:&lt;br /&gt;
[http://sourceforge.net/projects/cpcrslib/ sourceforge/cpcrslib] &lt;br /&gt;
&lt;br /&gt;
[[CPCWYZlib|CPCWYZlib]] is included in the downloadable package of CPCRSlib. CPCWYZlib includes a music player and SFX player coded by WYZ, which can play music created with [[WYZTracker|WYZTracker]]. &lt;br /&gt;
&lt;br /&gt;
== Easy installation == &lt;br /&gt;
&lt;br /&gt;
If starting from scratch:&lt;br /&gt;
&lt;br /&gt;
# Get [https://github.com/cpcitor/cpc-dev-tool-chain cpc&amp;amp;#45;dev&amp;amp;#45;tool&amp;amp;#45;chain] which sets up automatically a C or ASM compiling environment on Linux, Windows, Mac.&lt;br /&gt;
# Create your project. In one of your C source file, just #include &amp;quot;cpcrslib.h&amp;quot;.&lt;br /&gt;
# Compile the project. cpc-dev-tool-chain will notice the dependency and fetch and compile cpcrslib for you.&lt;br /&gt;
&lt;br /&gt;
Need '''sample projects''' to see how how to start? cpc-dev-tool-chain has a cpcrslib-all target that [https://github.com/cpcitor/cpc-dev-tool-chain/blob/master/documentation/how_to_install.md#user-content-build-a-project compiles cpcrslib sample projects].&lt;br /&gt;
&lt;br /&gt;
== installation ==&lt;br /&gt;
&lt;br /&gt;
On Ubuntu Lucid Lynx :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd cpcrslib/&lt;br /&gt;
z80asm -v -xcpcrslib.lib @cpcrslib.lst&lt;br /&gt;
sudo cp cpcrslib.lib /usr/share/z88dk/lib/clibs/&lt;br /&gt;
sudo cp cpcrslib.h /usr/share/z88dk/include&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
now it should work.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
A classic &amp;quot;Hello world&amp;quot; from cpcrslib : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;quot;cpcrslib.h&amp;quot;	// CPC Library&lt;br /&gt;
&lt;br /&gt;
int main(void) {&lt;br /&gt;
	cpc_PrintStr(&amp;quot;Hello World!&amp;quot;);&lt;br /&gt;
	while (!cpc_AnyKeyPressed()) {	}&lt;br /&gt;
	return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should provide a zcc_opt.def in the source directory :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	DEFINE DEFINED_myzorg&lt;br /&gt;
	defc myzorg = 16384&lt;br /&gt;
&lt;br /&gt;
IF !NEED_appstartup&lt;br /&gt;
	DEFINE	NEED_appstartup&lt;br /&gt;
	defc reqpag = 32&lt;br /&gt;
	defc NEED_expanded = 1&lt;br /&gt;
ENDIF&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Compile the contents by running the compiler, pre-processor and linker in one go by typing:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
zcc +cpc -create-app -make-app -O3 -unsigned -o hello.bin hello.c -lcpcrslib -lndos -zorg=16384&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
you'll have a hello.cpc file ready to be run on your CPC.&lt;br /&gt;
&lt;br /&gt;
== Sources of projects using z88dk/SDCC and cpcrslib ==&lt;br /&gt;
&lt;br /&gt;
*[http://espsoft.blogspot.com.es/2015/08/small-games-for-smart-minds.html Small Games for Smart Minds] by ESP Soft.&lt;br /&gt;
*[http://espsoft.blogspot.com.es/2015/08/mariano-dragon-capers-in-cityland.html Mariano The Dragon] by ESP Soft.&lt;br /&gt;
*[[Sort'em]] by LuBlu Entertainment.&lt;br /&gt;
*[http://cpcfreak.cpc-live.com/ Blue Angel 69] by Kevin Thacker.&lt;br /&gt;
*[http://cpcrulez.fr/zip/index.php?download=nanako-srcs Nanako Descends to Hell] by The Mojon Twins&lt;br /&gt;
*[http://cpcrulez.fr/zip/index.php?download=nanako2-srcs Nanako in Classic Japanese Monster Castle] by The Mojon Twins&lt;br /&gt;
*[http://cpcrulez.fr/zip/index.php?download=coding_src-Platformer_Medley_block_1 Mari Stormbringer Plateform Medley #1] by The Mojon Twins&lt;br /&gt;
*[http://www.mojontwins.com/?page_id=171 Phantomas Thales #1: Marsport] by The Mojon Twins.&lt;br /&gt;
*[http://www.mojontwins.com/juegos_mojonos/cheril-of-the-bosque-cpc/ Cheril of the Bosque] by The Mojon Twins.&lt;br /&gt;
*[http://www.mojontwins.com/juegos_mojonos/lala-prologue-cpc/ Lala Prologue] by The Mojon Twins.&lt;br /&gt;
*[http://www.mojontwins.com/juegos_mojonos/sir-ababol-cpc/ Sir Ababol] by The Mojon Twins.&lt;br /&gt;
*[http://www.mojontwins.com/juegos_mojonos/uwol-2-cpc/ Uwol 2]  by The Mojon Twins.&lt;br /&gt;
*[http://espsoft.blogspot.com.es/2015/08/totems-columns-cpc-two.html TOTEMS: Columns CPC Two] by ESP Soft.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
[[CPCtelera]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Programming]] [[Category:C]][[Category:CrossDev]]&lt;/div&gt;</summary>
		<author><name>Cpcitor</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=CPCRSlib&amp;diff=100688</id>
		<title>CPCRSlib</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=CPCRSlib&amp;diff=100688"/>
				<updated>2018-01-23T17:36:32Z</updated>
		
		<summary type="html">&lt;p&gt;Cpcitor: Using cpcrslib with cpc-dev-tool-chain.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''CPCRSlib''' is a [[:Category:C|C library]] containing routines and functions that allow to the handling of sprites and tile-mapping in Amstrad CPC. &lt;br /&gt;
&lt;br /&gt;
The library is written to be used with [[Z88DK|Z88DK]] compiler or with [[SDCC|SDCC]] complier. CPCRSlib also incorporates keyboard routines to redefine and to detect keys, as well as general routines to change to the screen mode or the colours. &lt;br /&gt;
&lt;br /&gt;
It can be found an explanation of each function/routine included in the library in [http://www.amstrad.es/programacion/cpcrslib.html http://www.amstrad.es/programacion/cpcrslib.html] &lt;br /&gt;
&lt;br /&gt;
Last release of the library can be downloaded at:&lt;br /&gt;
[http://sourceforge.net/projects/cpcrslib/ sourceforge/cpcrslib] &lt;br /&gt;
&lt;br /&gt;
[[CPCWYZlib|CPCWYZlib]] is included in the downloadable package of CPCRSlib. CPCWYZlib includes a music player and SFX player coded by WYZ, which can play music created with [[WYZTracker|WYZTracker]]. &lt;br /&gt;
&lt;br /&gt;
== Easy installation == &lt;br /&gt;
&lt;br /&gt;
# Let [https://github.com/cpcitor/cpc-dev-tool-chain cpc&amp;amp;#45;dev&amp;amp;#45;tool&amp;amp;#45;chain] sets up automatically a C or ASM compiling environment on Linux, Windows, Mac.&lt;br /&gt;
# In one of your C source file, just #include &amp;quot;cpcrslib.h&amp;quot;.&lt;br /&gt;
# Compile the project. cpc-dev-tool-chain will notice the dependency and fetch and compile cpcrslib for you.&lt;br /&gt;
&lt;br /&gt;
Need '''sample projects''' to see how how to start? cpc-dev-tool-chain has a cpcrslib-all target that [https://github.com/cpcitor/cpc-dev-tool-chain/blob/master/documentation/how_to_install.md#user-content-build-a-project compiles cpcrslib sample projects].&lt;br /&gt;
&lt;br /&gt;
== installation ==&lt;br /&gt;
&lt;br /&gt;
On Ubuntu Lucid Lynx :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd cpcrslib/&lt;br /&gt;
z80asm -v -xcpcrslib.lib @cpcrslib.lst&lt;br /&gt;
sudo cp cpcrslib.lib /usr/share/z88dk/lib/clibs/&lt;br /&gt;
sudo cp cpcrslib.h /usr/share/z88dk/include&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
now it should work.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
A classic &amp;quot;Hello world&amp;quot; from cpcrslib : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;quot;cpcrslib.h&amp;quot;	// CPC Library&lt;br /&gt;
&lt;br /&gt;
int main(void) {&lt;br /&gt;
	cpc_PrintStr(&amp;quot;Hello World!&amp;quot;);&lt;br /&gt;
	while (!cpc_AnyKeyPressed()) {	}&lt;br /&gt;
	return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should provide a zcc_opt.def in the source directory :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	DEFINE DEFINED_myzorg&lt;br /&gt;
	defc myzorg = 16384&lt;br /&gt;
&lt;br /&gt;
IF !NEED_appstartup&lt;br /&gt;
	DEFINE	NEED_appstartup&lt;br /&gt;
	defc reqpag = 32&lt;br /&gt;
	defc NEED_expanded = 1&lt;br /&gt;
ENDIF&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Compile the contents by running the compiler, pre-processor and linker in one go by typing:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
zcc +cpc -create-app -make-app -O3 -unsigned -o hello.bin hello.c -lcpcrslib -lndos -zorg=16384&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
you'll have a hello.cpc file ready to be run on your CPC.&lt;br /&gt;
&lt;br /&gt;
== Sources of projects using z88dk/SDCC and cpcrslib ==&lt;br /&gt;
&lt;br /&gt;
*[http://espsoft.blogspot.com.es/2015/08/small-games-for-smart-minds.html Small Games for Smart Minds] by ESP Soft.&lt;br /&gt;
*[http://espsoft.blogspot.com.es/2015/08/mariano-dragon-capers-in-cityland.html Mariano The Dragon] by ESP Soft.&lt;br /&gt;
*[[Sort'em]] by LuBlu Entertainment.&lt;br /&gt;
*[http://cpcfreak.cpc-live.com/ Blue Angel 69] by Kevin Thacker.&lt;br /&gt;
*[http://cpcrulez.fr/zip/index.php?download=nanako-srcs Nanako Descends to Hell] by The Mojon Twins&lt;br /&gt;
*[http://cpcrulez.fr/zip/index.php?download=nanako2-srcs Nanako in Classic Japanese Monster Castle] by The Mojon Twins&lt;br /&gt;
*[http://cpcrulez.fr/zip/index.php?download=coding_src-Platformer_Medley_block_1 Mari Stormbringer Plateform Medley #1] by The Mojon Twins&lt;br /&gt;
*[http://www.mojontwins.com/?page_id=171 Phantomas Thales #1: Marsport] by The Mojon Twins.&lt;br /&gt;
*[http://www.mojontwins.com/juegos_mojonos/cheril-of-the-bosque-cpc/ Cheril of the Bosque] by The Mojon Twins.&lt;br /&gt;
*[http://www.mojontwins.com/juegos_mojonos/lala-prologue-cpc/ Lala Prologue] by The Mojon Twins.&lt;br /&gt;
*[http://www.mojontwins.com/juegos_mojonos/sir-ababol-cpc/ Sir Ababol] by The Mojon Twins.&lt;br /&gt;
*[http://www.mojontwins.com/juegos_mojonos/uwol-2-cpc/ Uwol 2]  by The Mojon Twins.&lt;br /&gt;
*[http://espsoft.blogspot.com.es/2015/08/totems-columns-cpc-two.html TOTEMS: Columns CPC Two] by ESP Soft.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
[[CPCtelera]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Programming]] [[Category:C]][[Category:CrossDev]]&lt;/div&gt;</summary>
		<author><name>Cpcitor</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=RSX&amp;diff=100661</id>
		<title>RSX</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=RSX&amp;diff=100661"/>
				<updated>2018-01-20T18:10:32Z</updated>
		
		<summary type="html">&lt;p&gt;Cpcitor: Reference documentation to write a RSX is supplied in Soft968: CPC 464/664/6128 Firmware section 10.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;RSX&amp;lt;/b&amp;gt; (&amp;lt;b&amp;gt;R&amp;lt;/b&amp;gt;esident &amp;lt;b&amp;gt;S&amp;lt;/b&amp;gt;ystem e&amp;lt;b&amp;gt;X&amp;lt;/b&amp;gt;tensions) were a way to extend the command set of Locomotive BASIC, e.g. for accessing external peripherals like disk drives, light pens, speech synthesizers and so on.&lt;br /&gt;
&lt;br /&gt;
RSX commands can be distinguished from normal commands by the preceding pipe symbol &amp;quot;'''|'''&amp;quot; (also called &amp;quot;RSX bar&amp;quot;, &amp;quot;RSX pipe&amp;quot; or &amp;quot;RSX slash&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
Some of the best known RSX commands are the ones provided by AMSDOS, as they were present on all CPC664, CPC6128, CPC6128+ and CPC464 with DDI-1:&lt;br /&gt;
&lt;br /&gt;
'''|A'''&amp;lt;br /&amp;gt;&lt;br /&gt;
Makes drive A: the current work drive&lt;br /&gt;
&lt;br /&gt;
'''|B'''&amp;lt;br /&amp;gt;&lt;br /&gt;
Makes drive B: the current work drive&lt;br /&gt;
&lt;br /&gt;
'''|CPM'''&amp;lt;br /&amp;gt;&lt;br /&gt;
Starts CP/M (or other systems) from a system disk&lt;br /&gt;
&lt;br /&gt;
'''|DISC'''&amp;lt;br /&amp;gt;&lt;br /&gt;
Switches back to disk drive use after |TAPE&lt;br /&gt;
&lt;br /&gt;
'''|TAPE'''&amp;lt;br /&amp;gt;&lt;br /&gt;
Makes the CPC use the tape recorder for file access&lt;br /&gt;
&lt;br /&gt;
For a full command reference to the AMSDOS RSX commands, see [[AMSDOS]].&lt;br /&gt;
&lt;br /&gt;
RSX command extensions can be implemented through ROMs (like AMSDOS or other disk operating systems) or by programs.&lt;br /&gt;
&lt;br /&gt;
== Reference documentation ==&lt;br /&gt;
&lt;br /&gt;
Reference documentation to write a RSX (assembly-level calls to register one, etc) is supplied in [[Soft968: CPC 464/664/6128 Firmware]] section 10.&lt;br /&gt;
&lt;br /&gt;
[[Category:Stub]] [[Category:Disc Operating_System]] &lt;br /&gt;
[[Category:Programming]]&lt;br /&gt;
[[Category:BASIC| ]]&lt;br /&gt;
[[Category:Operating System| ]]&lt;br /&gt;
[[Category:Software]]&lt;br /&gt;
[[Category:Programming software| ]]&lt;br /&gt;
[[Category:Expansion ROM| ]]&lt;/div&gt;</summary>
		<author><name>Cpcitor</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=Gfx2crtc&amp;diff=99931</id>
		<title>Gfx2crtc</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=Gfx2crtc&amp;diff=99931"/>
				<updated>2017-11-23T16:45:37Z</updated>
		
		<summary type="html">&lt;p&gt;Cpcitor: Describe and provide links to source.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== gfx2crtc ==&lt;br /&gt;
&lt;br /&gt;
=== Introduction ===&lt;br /&gt;
&lt;br /&gt;
From https://github.com/cpcsdk/gfx2crtc :&lt;br /&gt;
&lt;br /&gt;
gfx2crtc - gfx convert tools to amstrad cpc format&lt;br /&gt;
&lt;br /&gt;
gfx2crtc is a tool to convert gfx (linear raw 8bits per pixel or PNG 1,2 or 4 bits) in a compatible format for Amstrad CPC and Plus.&lt;br /&gt;
&lt;br /&gt;
Initial Software written by : CloudStrife/Shinra (Quentin Carlier) cloudstrife@cpcscene.com.&lt;br /&gt;
&lt;br /&gt;
It is spread under the CeCILL Free Software License v2, see LICENSE for more information.&lt;br /&gt;
&lt;br /&gt;
See AUTHORS for the list of contributors.&lt;br /&gt;
&lt;br /&gt;
=== Comparison with other tools ===&lt;br /&gt;
&lt;br /&gt;
* [[ConvImgCPC]] is intended for manual tweaking and saving to CPC format with a manual workflow.&lt;br /&gt;
* On the contrary, gfx2crtc is perfect for automated build workflow: work on your images in some general use format like PNG, and only convert automatically at build time.&lt;br /&gt;
* can convert not only full screens, but also sprites (one sprite per input image, not too big)&lt;br /&gt;
&lt;br /&gt;
== Platforms ==&lt;br /&gt;
&lt;br /&gt;
Written in portable C.  Linux, Mac OS, Windows (code mentions mingw), probably others.&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
&lt;br /&gt;
Project used to be on https://code.google.com/archive/p/cpcsdk/downloads now removed.&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/cpcsdk/gfx2crtc Source code on Github: cpcsdk/gfx2crtc: Convert pictures to CPC screen format, from the command line.]&lt;br /&gt;
* [https://cpcrulez.fr/emulateurs_UTIL-GRA-gfx2crtc.htm gfx2crtc on cpcrulez] mostly text description, no link or source code but links to descriptions of other programs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Emulation Tools]]&lt;/div&gt;</summary>
		<author><name>Cpcitor</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=ConvImgCPC&amp;diff=99930</id>
		<title>ConvImgCPC</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=ConvImgCPC&amp;diff=99930"/>
				<updated>2017-11-23T16:18:51Z</updated>
		
		<summary type="html">&lt;p&gt;Cpcitor: gfx2crtc portable tool intended for automated builds&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Convimgcpc.gif|thumb|ConvImgCpc]]&lt;br /&gt;
&lt;br /&gt;
ConvImgCPC is a small program developped by Demoniak; it allows the conversion of PC images to the CPC.&lt;br /&gt;
&lt;br /&gt;
It will read images in BMP, GIF, JPEG format and of course SCR (the format of [[The Advanced OCP Art Studio|OCP ART STUDIO]] pictures).&lt;br /&gt;
&lt;br /&gt;
For SCR the files must have an [[AMSDOS]] header.&lt;br /&gt;
&lt;br /&gt;
Once the image is read, it is possible to carry out some adjustments on:&lt;br /&gt;
* the position of the image, &lt;br /&gt;
* the size of the image, &lt;br /&gt;
* the intensity of each component R, G, B (useful for adjusting brightness of image).&lt;br /&gt;
&lt;br /&gt;
Then the conversion can be made in the 3 screen modes of the CPC :&lt;br /&gt;
* MODE 0: 160 X 200 points with 16 possible colors from 27, &lt;br /&gt;
* MODE 1: 320 X 200 points with 4 possible colors from 27, &lt;br /&gt;
* MODE 2: 640 X 200 points with 2 possible colors from 27.&lt;br /&gt;
* MODE 3: a special mode wich let you use more than 4 colors in 320 x200 points.&lt;br /&gt;
&lt;br /&gt;
Several modes of dithering are possible for &amp;quot;recreating&amp;quot; the missing colors.&lt;br /&gt;
&lt;br /&gt;
The colors calculated by the program can be modified manually and &amp;quot;locked&amp;quot;, i.e. that they will not be modified by the program during a conversion.&lt;br /&gt;
&lt;br /&gt;
ConvImgCPC has an option to use the 4096 colors of the CPC+.&lt;br /&gt;
&lt;br /&gt;
It is also possible to use non standard resolution (up to 736 x 272 points in mode 2)&lt;br /&gt;
&lt;br /&gt;
You can edit the picture generated inside ConvImgCPC.&lt;br /&gt;
&lt;br /&gt;
The image is saved to SCR format for standard formats, and when you save you can choose if the file is compressed or not.&lt;br /&gt;
The colors can also be saved to a seperate PAL file.&lt;br /&gt;
&lt;br /&gt;
The software also makes it possible to read the palette from another file.&lt;br /&gt;
&lt;br /&gt;
You can save your calculated image under an assembler source file (filled with DEFBs) so that you can include it into your programs.&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 Download]&lt;br /&gt;
&lt;br /&gt;
== Similar tools ==&lt;br /&gt;
&lt;br /&gt;
* [[gfx2crtc]] portable tool intended for automated builds&lt;br /&gt;
&lt;br /&gt;
[[Category:Emulation Tools]]&lt;/div&gt;</summary>
		<author><name>Cpcitor</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=Dsktools&amp;diff=99877</id>
		<title>Dsktools</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=Dsktools&amp;diff=99877"/>
				<updated>2017-11-17T08:55:40Z</updated>
		
		<summary type="html">&lt;p&gt;Cpcitor: mention intermediate location Berlios&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;dsktools is a set of tools for reading and writing [[DSK]] and [[EDSK]] images to real floppy disks for use with the Amstrad/Schneider CPC range of homecomputers. The main target platform for dsktools is GNU/Linux. dsktools is written by [[Nurgle|Andreas Micklei]].&lt;br /&gt;
&lt;br /&gt;
== Web links ==&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/cpcitor/dsktools GitHub - cpcitor/dsktools: Linux tools to read/write Amstrad CPC disk images to real floppy disks.] migrated from Berlios with source code revision history&lt;br /&gt;
* [http://sourceforge.net/projects/dsktools.berlios/ dsktools] (original location from before Berlios, old version 2.3)&lt;br /&gt;
&lt;br /&gt;
[[Category:Emulation Tools]][[Category:CrossDev]]&lt;/div&gt;</summary>
		<author><name>Cpcitor</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=Dsktools&amp;diff=99876</id>
		<title>Dsktools</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=Dsktools&amp;diff=99876"/>
				<updated>2017-11-17T08:54:34Z</updated>
		
		<summary type="html">&lt;p&gt;Cpcitor: Link to migrated project.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;dsktools is a set of tools for reading and writing [[DSK]] and [[EDSK]] images to real floppy disks for use with the Amstrad/Schneider CPC range of homecomputers. The main target platform for dsktools is GNU/Linux. dsktools is written by [[Nurgle|Andreas Micklei]].&lt;br /&gt;
&lt;br /&gt;
== Web links ==&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/cpcitor/dsktools GitHub - cpcitor/dsktools: Linux tools to read/write Amstrad CPC disk images to real floppy disks.] migrated project with source code revision history&lt;br /&gt;
* [http://sourceforge.net/projects/dsktools.berlios/ dsktools] (original location, old version 2.3)&lt;br /&gt;
&lt;br /&gt;
[[Category:Emulation Tools]][[Category:CrossDev]]&lt;/div&gt;</summary>
		<author><name>Cpcitor</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=Programming:Cross_Development&amp;diff=99875</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=99875"/>
				<updated>2017-11-17T08:25:05Z</updated>
		
		<summary type="html">&lt;p&gt;Cpcitor: Where cpcdiskxp is mentioned (Windows-specific), mention dsktools (Linux) too.&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;
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;
=== 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>Cpcitor</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=User:Cpcitor&amp;diff=99840</id>
		<title>User:Cpcitor</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=User:Cpcitor&amp;diff=99840"/>
				<updated>2017-11-12T20:56:30Z</updated>
		
		<summary type="html">&lt;p&gt;Cpcitor: Changed name from FindYWay to 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;
Opened a CPCWiki account on 2013-01-8 as FindYWay (no longer used), then changed name to cpcitor on forum then on CPCWiki.&lt;/div&gt;</summary>
		<author><name>Cpcitor</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=Programming:Cross_Development&amp;diff=99839</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=99839"/>
				<updated>2017-11-12T20:53:02Z</updated>
		
		<summary type="html">&lt;p&gt;Cpcitor: Updated cpc-dev-tool-chain description.&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;
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;
=== 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 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>Cpcitor</name></author>	</entry>

	</feed>