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

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=Programming:Cross_Development&amp;diff=25330</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=25330"/>
				<updated>2008-08-17T09:41:40Z</updated>
		
		<summary type="html">&lt;p&gt;Romain: &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 wich 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 wich 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 cassette or disc.&lt;br /&gt;
&lt;br /&gt;
= Tools needed for cross development =&lt;br /&gt;
&lt;br /&gt;
== Linux ==&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;
&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;
* [[Cpcfs|cpcfs]] / [[Cpcxfs|cpcxfs]]&lt;br /&gt;
* [[Dsktools|dsktools]]&lt;br /&gt;
* [[ManageDSK]]&lt;br /&gt;
&lt;br /&gt;
=== Tape management ===&lt;br /&gt;
&lt;br /&gt;
* [[2cdt]] [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;
&lt;br /&gt;
=== Cartidge management ===&lt;br /&gt;
* [[buildcpr]] [http://www.cepece.info/amstrad/download/buildcpr.zip]&lt;br /&gt;
&lt;br /&gt;
=== Editing ===&lt;br /&gt;
&lt;br /&gt;
* [[How to use VIM for CrossDev|Vim]]&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;
=== Emulators ===&lt;br /&gt;
* [[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;
=== Usefull scripts ===&lt;br /&gt;
==== Supress 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 similars fonctionnalities 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]]&lt;br /&gt;
* [[ZMac]]&lt;br /&gt;
* [http://little-bat.de/prog/ zasm]&lt;br /&gt;
* [[WinApe]]'s built in assembler&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]&lt;br /&gt;
&lt;br /&gt;
[[Category:Programming]] [[Category:CrossDev]]&lt;/div&gt;</summary>
		<author><name>Romain</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=User:Romain&amp;diff=23460</id>
		<title>User:Romain</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=User:Romain&amp;diff=23460"/>
				<updated>2008-04-29T18:40:22Z</updated>
		
		<summary type="html">&lt;p&gt;Romain: Redirecting to Krusty&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT[[Krusty]]&lt;/div&gt;</summary>
		<author><name>Romain</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=CpcsceneSpy&amp;diff=23459</id>
		<title>CpcsceneSpy</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=CpcsceneSpy&amp;diff=23459"/>
				<updated>2008-04-29T13:38:40Z</updated>
		
		<summary type="html">&lt;p&gt;Romain: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Aim =&lt;br /&gt;
&lt;br /&gt;
Here is a little [[http://www.greasespot.net/ | Greasmonkey ]] script in order to spy cpcscene trolliner who change there pseudonyme all the time.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= TODO =&lt;br /&gt;
&lt;br /&gt;
* better visual&lt;br /&gt;
* store and restore data every time in order to keep pseudo not in the actual content&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= code =&lt;br /&gt;
&amp;lt;pre&amp;gt;// ==UserScript==&lt;br /&gt;
// @name cpcscenespy&lt;br /&gt;
// @namespace http://krusty.benediction.eu&lt;br /&gt;
// @description Un script vite fait/mal fait permettant d'espionner les troll-liner indelicats&lt;br /&gt;
// @include http://www.cpcscene.com/&lt;br /&gt;
// ==/UserScript==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
* Histoire de gagner du temps au dev mais pas a l'execution ....&lt;br /&gt;
* Recuperation de DOJO&lt;br /&gt;
*/&lt;br /&gt;
var script = document.createElement('script');&lt;br /&gt;
script.src=&amp;quot;http://o.aolcdn.com/dojo/1.1.0/dojo/dojo.xd.js&amp;quot;;&lt;br /&gt;
script.type=&amp;quot;text/javascript&amp;quot;;&lt;br /&gt;
document.getElementsByTagName('head')[0].appendChild(script);&lt;br /&gt;
&lt;br /&gt;
var link = document.createElement('link');&lt;br /&gt;
link.rel = &amp;quot;stylesheet&amp;quot;;&lt;br /&gt;
link.type= &amp;quot;text/css&amp;quot;;&lt;br /&gt;
link.href=&amp;quot;http://o.aolcdn.com/dojo/1.1.0/dijit/themes/tundra/tundra.css&amp;quot;;&lt;br /&gt;
document.getElementsByTagName('head')[0].appendChild(link);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
String.prototype.trim = function(){&lt;br /&gt;
return this.replace(/(?:^\s+|\s+$)/g, &amp;quot;&amp;quot;)&amp;amp;nbsp;;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//Wait until everything is loaded before trying to do anything&lt;br /&gt;
window.addEventListener(&lt;br /&gt;
'load', &lt;br /&gt;
function(event) {&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
var dojo = unsafeWindow[&amp;quot;dojo&amp;quot;];&lt;br /&gt;
var list = dojo.fromJson(GM_getValue('cpcscene_troller', '{}'))&amp;amp;nbsp;;&lt;br /&gt;
list = {}; //TODO debug&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
dojo.query('table tr &amp;amp;gt; td &amp;amp;gt; span.blob').forEach(&lt;br /&gt;
function( troller ){ &lt;br /&gt;
var ip = troller.id.trim()&amp;amp;nbsp;;&lt;br /&gt;
var pseudo = troller.textContent.trim()&amp;amp;nbsp;;&lt;br /&gt;
&lt;br /&gt;
if ( list[ip]&amp;amp;nbsp;!= undefined ){&lt;br /&gt;
if ( list[ip].indexOf(pseudo) == -1) list[ip].push( pseudo)&amp;amp;nbsp;;&lt;br /&gt;
}else{&lt;br /&gt;
list[ip] = new Array( pseudo )&amp;amp;nbsp;;&lt;br /&gt;
}&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
GM_setValue('cpcscene_troller', dojo.toJson(list))&amp;amp;nbsp;;&lt;br /&gt;
&lt;br /&gt;
// a priori dojo met le resultat en cache ...&lt;br /&gt;
dojo.query('table tr &amp;amp;gt; td &amp;amp;gt; span.blob').forEach(&lt;br /&gt;
function( troller ) {&lt;br /&gt;
troller.alt = &amp;quot; &amp;quot;&amp;amp;nbsp;;&lt;br /&gt;
&lt;br /&gt;
list[troller.id].forEach( &lt;br /&gt;
function(pseudo){&lt;br /&gt;
troller.alt += pseudo + &amp;quot; &amp;quot;&amp;amp;nbsp;;&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
troller.textContent = troller.alt&amp;amp;nbsp;;&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
},&lt;br /&gt;
'false'&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Romain</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=CpcsceneSpy&amp;diff=23458</id>
		<title>CpcsceneSpy</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=CpcsceneSpy&amp;diff=23458"/>
				<updated>2008-04-29T13:36:52Z</updated>
		
		<summary type="html">&lt;p&gt;Romain: New page: = Aim =  Here is a little &amp;amp;lt;a href=&amp;quot;Greasmonkey&amp;quot;&amp;amp;gt; http://www.greasespot.net/ &amp;amp;lt;/a&amp;amp;gt; script in order to spy cpcscene trolliner who change there pseudonyme all the time.  &amp;lt;br&amp;gt;  = TO...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Aim =&lt;br /&gt;
&lt;br /&gt;
Here is a little &amp;amp;lt;a href=&amp;quot;Greasmonkey&amp;quot;&amp;amp;gt; http://www.greasespot.net/ &amp;amp;lt;/a&amp;amp;gt; script in order to spy cpcscene trolliner who change there pseudonyme all the time.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= TODO =&lt;br /&gt;
&lt;br /&gt;
* better visual&lt;br /&gt;
* store and restore data every time in order to keep pseudo not in the actual content&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= code =&lt;br /&gt;
&amp;lt;pre&amp;gt;// ==UserScript==&lt;br /&gt;
// @name cpcscenespy&lt;br /&gt;
// @namespace http://krusty.benediction.eu&lt;br /&gt;
// @description Un script vite fait/mal fait permettant d'espionner les troll-liner indelicats&lt;br /&gt;
// @include http://www.cpcscene.com/&lt;br /&gt;
// ==/UserScript==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
* Histoire de gagner du temps au dev mais pas a l'execution ....&lt;br /&gt;
* Recuperation de DOJO&lt;br /&gt;
*/&lt;br /&gt;
var script = document.createElement('script');&lt;br /&gt;
script.src=&amp;quot;http://o.aolcdn.com/dojo/1.1.0/dojo/dojo.xd.js&amp;quot;;&lt;br /&gt;
script.type=&amp;quot;text/javascript&amp;quot;;&lt;br /&gt;
document.getElementsByTagName('head')[0].appendChild(script);&lt;br /&gt;
&lt;br /&gt;
var link = document.createElement('link');&lt;br /&gt;
link.rel = &amp;quot;stylesheet&amp;quot;;&lt;br /&gt;
link.type= &amp;quot;text/css&amp;quot;;&lt;br /&gt;
link.href=&amp;quot;http://o.aolcdn.com/dojo/1.1.0/dijit/themes/tundra/tundra.css&amp;quot;;&lt;br /&gt;
document.getElementsByTagName('head')[0].appendChild(link);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
String.prototype.trim = function(){&lt;br /&gt;
return this.replace(/(?:^\s+|\s+$)/g, &amp;quot;&amp;quot;)&amp;amp;nbsp;;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//Wait until everything is loaded before trying to do anything&lt;br /&gt;
window.addEventListener(&lt;br /&gt;
'load', &lt;br /&gt;
function(event) {&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
var dojo = unsafeWindow[&amp;quot;dojo&amp;quot;];&lt;br /&gt;
var list = dojo.fromJson(GM_getValue('cpcscene_troller', '{}'))&amp;amp;nbsp;;&lt;br /&gt;
list = {}; //TODO debug&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
dojo.query('table tr &amp;amp;gt; td &amp;amp;gt; span.blob').forEach(&lt;br /&gt;
function( troller ){ &lt;br /&gt;
var ip = troller.id.trim()&amp;amp;nbsp;;&lt;br /&gt;
var pseudo = troller.textContent.trim()&amp;amp;nbsp;;&lt;br /&gt;
&lt;br /&gt;
if ( list[ip]&amp;amp;nbsp;!= undefined ){&lt;br /&gt;
if ( list[ip].indexOf(pseudo) == -1) list[ip].push( pseudo)&amp;amp;nbsp;;&lt;br /&gt;
}else{&lt;br /&gt;
list[ip] = new Array( pseudo )&amp;amp;nbsp;;&lt;br /&gt;
}&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
GM_setValue('cpcscene_troller', dojo.toJson(list))&amp;amp;nbsp;;&lt;br /&gt;
&lt;br /&gt;
// a priori dojo met le resultat en cache ...&lt;br /&gt;
dojo.query('table tr &amp;amp;gt; td &amp;amp;gt; span.blob').forEach(&lt;br /&gt;
function( troller ) {&lt;br /&gt;
troller.alt = &amp;quot; &amp;quot;&amp;amp;nbsp;;&lt;br /&gt;
&lt;br /&gt;
list[troller.id].forEach( &lt;br /&gt;
function(pseudo){&lt;br /&gt;
troller.alt += pseudo + &amp;quot; &amp;quot;&amp;amp;nbsp;;&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
troller.textContent = troller.alt&amp;amp;nbsp;;&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
},&lt;br /&gt;
'false'&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Romain</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=CS2&amp;diff=23269</id>
		<title>CS2</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=CS2&amp;diff=23269"/>
				<updated>2008-04-23T09:50:10Z</updated>
		
		<summary type="html">&lt;p&gt;Romain: New page: &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;CS2#2007&amp;lt;/b&amp;gt; is the only demo presented for the contest at  &amp;lt;a href=&amp;quot;Castellum Secretum 2&amp;quot;&amp;gt;Castellum Secretum 2&amp;lt;/a&amp;gt;. &amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt; Release Date: 2007 (during &amp;lt;a href=&amp;quot;Castellum Secre...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p&amp;gt;&amp;lt;b&amp;gt;CS2#2007&amp;lt;/b&amp;gt; is the only demo presented for the contest at  &amp;lt;a href=&amp;quot;Castellum Secretum 2&amp;quot;&amp;gt;Castellum Secretum 2&amp;lt;/a&amp;gt;.&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Release Date: 2007 (during &amp;lt;a href=&amp;quot;Castellum Secretum 2&amp;quot;&amp;gt;Castellum Secretum 2&amp;lt;/a&amp;gt;)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; Credits &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt; Code&amp;amp;nbsp;: &amp;lt;a href=&amp;quot;Krusty&amp;quot;&amp;gt;Krusty&amp;lt;/a&amp;gt;/&amp;lt;a href=&amp;quot;Benediction&amp;quot;&amp;gt;Benediction&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt; SFX&amp;amp;nbsp;: &amp;lt;a href=&amp;quot;Pulkomandy&amp;quot;&amp;gt;Pulkomandy&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; Effects &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt; bump mapping&lt;br /&gt;
&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; Extract &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;span class=&amp;quot;fck_mw_template&amp;quot;&amp;gt;{{#ev:youtube|l-7kK_KLq8g}}&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; Links &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;http://pouet.net/prod.php?which=33037&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;a href=&amp;quot;Category:CPC&amp;quot;&amp;gt;Category:CPC&amp;lt;/a&amp;gt; &amp;lt;a href=&amp;quot;Category:Demos&amp;quot;&amp;gt;Category:Demos&amp;lt;/a&amp;gt; &amp;lt;a href=&amp;quot;Category:Demos_2007&amp;quot;&amp;gt;Category:Demos_2007&amp;lt;/a&amp;gt;&lt;/div&gt;</summary>
		<author><name>Romain</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=BND&amp;diff=23268</id>
		<title>BND</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=BND&amp;diff=23268"/>
				<updated>2008-04-23T09:45:14Z</updated>
		
		<summary type="html">&lt;p&gt;Romain: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''BND#2007''' is a demo which win the 1st place at the demo compo during [[Croco_Chanel_N°4]].&lt;br /&gt;
&lt;br /&gt;
There are only ''new school'' effects on this demo.&lt;br /&gt;
&lt;br /&gt;
Release Date: 2007 (during [[Croco_Chanel_N°4]])&lt;br /&gt;
&lt;br /&gt;
== Credits ==&lt;br /&gt;
&lt;br /&gt;
* Code&amp;amp;nbsp;: [[Krusty]]&lt;br /&gt;
* SFX&amp;amp;nbsp;: LAP (Transfert by [[Morpheus]])&lt;br /&gt;
* GFX&amp;amp;nbsp;: [[Supersly]]&lt;br /&gt;
&lt;br /&gt;
== Effects ==&lt;br /&gt;
&lt;br /&gt;
* fire&lt;br /&gt;
* blur&lt;br /&gt;
* plasma&lt;br /&gt;
* water&lt;br /&gt;
* rain&lt;br /&gt;
* metaballs&lt;br /&gt;
&lt;br /&gt;
== Extract ==&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|kQ7GBum2ezQ}}&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
http://pouet.net/prod.php?which=33784&lt;br /&gt;
&lt;br /&gt;
[[Category:CPC]] [[Category:Demos]] [[Category:Demos_2007]]&lt;/div&gt;</summary>
		<author><name>Romain</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=BND&amp;diff=23267</id>
		<title>BND</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=BND&amp;diff=23267"/>
				<updated>2008-04-23T09:44:04Z</updated>
		
		<summary type="html">&lt;p&gt;Romain: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''BND#2007''' is a demo which win the 1st place at the demo compo during [Croco_Chanel_N°4].&lt;br /&gt;
&lt;br /&gt;
There are only ''new school'' effects on this demo.&lt;br /&gt;
&lt;br /&gt;
Release Date: 2007 (during [Croco_Chanel_N°4])&lt;br /&gt;
&lt;br /&gt;
== Credits ==&lt;br /&gt;
&lt;br /&gt;
* Code&amp;amp;nbsp;: [Krusty]&lt;br /&gt;
* SFX&amp;amp;nbsp;: LAP (Transfert by [Morpheus])&lt;br /&gt;
* GFX&amp;amp;nbsp;: [Supersly]&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;br&amp;gt;&amp;amp;nbsp; Effects ==&lt;br /&gt;
&lt;br /&gt;
* fire&lt;br /&gt;
* blur&lt;br /&gt;
* plasma&lt;br /&gt;
* water&lt;br /&gt;
* rain&lt;br /&gt;
* metaballs&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;br&amp;gt; Extract ==&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|kQ7GBum2ezQ}}&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;br&amp;gt; Links&amp;amp;nbsp; ==&lt;br /&gt;
&lt;br /&gt;
http://pouet.net/prod.php?which=33784&lt;br /&gt;
&lt;br /&gt;
[[Category:CPC|CPC]]&lt;br /&gt;
&lt;br /&gt;
[[Category:CPC]] [[Category:Demos]] [[Category:Demos_2007]]&lt;/div&gt;</summary>
		<author><name>Romain</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=BND&amp;diff=23266</id>
		<title>BND</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=BND&amp;diff=23266"/>
				<updated>2008-04-23T09:35:51Z</updated>
		
		<summary type="html">&lt;p&gt;Romain: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''BND#2007''' is a demo which win the 1st place at the demo compo during [Croco_Chanel_N°4].&lt;br /&gt;
&lt;br /&gt;
There are only ''new school'' effects on this demo.&lt;br /&gt;
&lt;br /&gt;
Release Date: 2007 (during [Croco_Chanel_N°4])&lt;br /&gt;
&lt;br /&gt;
== Credits&lt;br /&gt;
&lt;br /&gt;
* Code&amp;amp;nbsp;: [Krusty]&lt;br /&gt;
* SFX&amp;amp;nbsp;: LAP (Transfert by [Morpheus])&lt;br /&gt;
* GFX&amp;amp;nbsp;: [Supersly]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; == Effects&lt;br /&gt;
&lt;br /&gt;
* fire&lt;br /&gt;
* blur&lt;br /&gt;
* plasma&lt;br /&gt;
* water&lt;br /&gt;
* rain&lt;br /&gt;
* metaballs&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; == Extract {{#ev:youtube|kQ7GBum2ezQ}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; ==Links [http://pouet.net/prod.php?which=33784]&lt;br /&gt;
&lt;br /&gt;
[[Category:CPC]] [[Category:Demos]] [[Category:Demos_2007]]&lt;/div&gt;</summary>
		<author><name>Romain</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=Programming:Cross_Development&amp;diff=23057</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=23057"/>
				<updated>2008-04-16T12:47:10Z</updated>
		
		<summary type="html">&lt;p&gt;Romain: &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 wich 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 wich 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 cassette or disc.&lt;br /&gt;
&lt;br /&gt;
= Tools needed for cross development =&lt;br /&gt;
&lt;br /&gt;
== Linux ==&lt;br /&gt;
&lt;br /&gt;
=== Cross assemblers ===&lt;br /&gt;
&lt;br /&gt;
* [[SjasmPlus]]&lt;br /&gt;
* [[Sjasm|sjasm]]&lt;br /&gt;
* [[ZMac]]&lt;br /&gt;
&lt;br /&gt;
=== Disc management ===&lt;br /&gt;
&lt;br /&gt;
* [[CPCTools]]&lt;br /&gt;
* [[Cpcfs|cpcfs]] / [[Cpcxfs|cpcxfs]]&lt;br /&gt;
* [[Dsktools|dsktools]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Editing ===&lt;br /&gt;
&lt;br /&gt;
* [[How to use VIM for CrossDev|Vim]]&lt;br /&gt;
&lt;br /&gt;
=== Crunching ===&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 similars fonctionnalities 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;
** 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]]&lt;br /&gt;
* [[ZMac]]&lt;br /&gt;
* [http://little-bat.de/prog/ zasm]&lt;br /&gt;
* [[WinApe]]'s built in assembler&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]&lt;br /&gt;
&lt;br /&gt;
[[Category:Programming]] [[Category:CrossDev]]&lt;/div&gt;</summary>
		<author><name>Romain</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=How_to_use_VIM_for_CrossDev&amp;diff=23056</id>
		<title>How to use VIM for CrossDev</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=How_to_use_VIM_for_CrossDev&amp;diff=23056"/>
				<updated>2008-04-16T12:31:01Z</updated>
		
		<summary type="html">&lt;p&gt;Romain: New page:  VIM is a really powerful Unix Text Editor.  In my mind, it is really adapted in order to edit CPC projects on UNIX. The aim of this page is to give some informati...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[http://www.vim.org/ | VIM]] is a really powerful Unix Text Editor.&lt;br /&gt;
&lt;br /&gt;
In my mind, it is really adapted in order to edit CPC projects on UNIX. The aim of this page is to give some informations in order to be really productive with this tool.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= VIM usage =&lt;br /&gt;
&lt;br /&gt;
= VIM configuration =&lt;br /&gt;
&lt;br /&gt;
== Z80 syntax highlight file ==&lt;br /&gt;
&lt;br /&gt;
Here is my Z80 highlight file. I don't rembember where I found the original, but I adapted him in order to be adapted to the [[SJASMPlus]] syntax.&lt;br /&gt;
&amp;lt;pre&amp;gt;syn case ignore&lt;br /&gt;
&lt;br /&gt;
set isk=a-z,A-Z,48-57,',.,_&lt;br /&gt;
&lt;br /&gt;
syn sync fromstart&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Common Z80 Assembly instructions&lt;br /&gt;
syn keyword z80Inst adc add and bit call ccf cp cpd cpdr cpi cpir cpl&lt;br /&gt;
syn keyword z80Inst daa dec di djnz ei ex exx halt im in&lt;br /&gt;
syn keyword z80Inst inc ind ini indr inir jp jr ld ldd lddr ldi ldir&lt;br /&gt;
syn keyword z80Inst neg nop or otdr otir out outd outi push pop&lt;br /&gt;
syn keyword z80Inst res ret reti retn rl rla rlc rlca rld&lt;br /&gt;
syn keyword z80Inst rr rra rrc rrca rrd rst sbc scf set sl1 sla slia sll sra&lt;br /&gt;
syn keyword z80Inst srl sub xor&lt;br /&gt;
&lt;br /&gt;
&amp;quot; sjasmplus inst&lt;br /&gt;
syn keyword z80Inst sli exa &lt;br /&gt;
&lt;br /&gt;
&amp;quot;Grab the condition too&lt;br /&gt;
syn match z80Inst &amp;quot;\s\+jp\s\+n\=[covz]\&amp;amp;gt;&amp;quot; &amp;quot;Match Z C O V NZ NC NO NV&lt;br /&gt;
syn match z80Inst &amp;quot;\s\+jp\s\+p[elo]\=\&amp;amp;gt;&amp;quot; &amp;quot;Match P PE PO PL&lt;br /&gt;
syn match z80Inst &amp;quot;\s\+jp\s\+mi\=\&amp;amp;gt;&amp;quot; &amp;quot;Match M MI&lt;br /&gt;
syn match z80Inst &amp;quot;\s\+jp\s\+eq\&amp;amp;gt;&amp;quot; &amp;quot;Match EQ&lt;br /&gt;
syn match z80Inst &amp;quot;\s\+jp\s\+[gn]e\&amp;amp;gt;&amp;quot; &amp;quot;Match NE GE&lt;br /&gt;
syn match z80Inst &amp;quot;\s\+jp\s\+lt\&amp;amp;gt;&amp;quot; &amp;quot;Match LT&lt;br /&gt;
syn match z80Inst &amp;quot;\s\+jp\s\+sn\=f\&amp;amp;gt;&amp;quot; &amp;quot;Match SF SNF&lt;br /&gt;
&lt;br /&gt;
syn match z80Inst &amp;quot;\s\+jr\s\+n\=[zc]\&amp;amp;gt;&amp;quot; &amp;quot;Match Z C NZ NC&lt;br /&gt;
syn match z80Inst &amp;quot;\s\+jr\s\+eq\&amp;amp;gt;&amp;quot; &amp;quot;Match EQ&lt;br /&gt;
syn match z80Inst &amp;quot;\s\+jr\s\+[gn]e\&amp;amp;gt;&amp;quot; &amp;quot;Match NE GE&lt;br /&gt;
syn match z80Inst &amp;quot;\s\+jr\s\+lt\&amp;amp;gt;&amp;quot; &amp;quot;Match LT&lt;br /&gt;
&lt;br /&gt;
syn match z80Inst &amp;quot;\s\+call\s\+n\=[covz]\&amp;amp;gt;&amp;quot; &amp;quot;Match Z C O V NZ NC NO NV&lt;br /&gt;
syn match z80Inst &amp;quot;\s\+call\s\+p[elo]\=\&amp;amp;gt;&amp;quot; &amp;quot;Match P PE PO PL&lt;br /&gt;
syn match z80Inst &amp;quot;\s\+call\s\+mi\=\&amp;amp;gt;&amp;quot; &amp;quot;Match M MI&lt;br /&gt;
syn match z80Inst &amp;quot;\s\+call\s\+eq\&amp;amp;gt;&amp;quot; &amp;quot;Match EQ&lt;br /&gt;
syn match z80Inst &amp;quot;\s\+call\s\+[gn]e\&amp;amp;gt;&amp;quot; &amp;quot;Match NE GE&lt;br /&gt;
syn match z80Inst &amp;quot;\s\+call\s\+lt\&amp;amp;gt;&amp;quot; &amp;quot;Match LT&lt;br /&gt;
syn match z80Inst &amp;quot;\s\+call\s\+sn\=f\&amp;amp;gt;&amp;quot; &amp;quot;Match SF SNF&lt;br /&gt;
&lt;br /&gt;
syn match z80Inst &amp;quot;\s\+ret\s\+n\=[covz]\&amp;amp;gt;&amp;quot; &amp;quot;Match Z C O V NZ NC NO NV&lt;br /&gt;
syn match z80Inst &amp;quot;\s\+ret\s\+p[elo]\=\&amp;amp;gt;&amp;quot; &amp;quot;Match P PE PO PL&lt;br /&gt;
syn match z80Inst &amp;quot;\s\+ret\s\+mi\=\&amp;amp;gt;&amp;quot; &amp;quot;Match M MI&lt;br /&gt;
syn match z80Inst &amp;quot;\s\+ret\s\+eq\&amp;amp;gt;&amp;quot; &amp;quot;Match EQ&lt;br /&gt;
syn match z80Inst &amp;quot;\s\+ret\s\+[gn]e\&amp;amp;gt;&amp;quot; &amp;quot;Match NE GE&lt;br /&gt;
syn match z80Inst &amp;quot;\s\+ret\s\+lt\&amp;amp;gt;&amp;quot; &amp;quot;Match LT&lt;br /&gt;
syn match z80Inst &amp;quot;\s\+ret\s\+sn\=f\&amp;amp;gt;&amp;quot; &amp;quot;Match SF SNF&lt;br /&gt;
&lt;br /&gt;
&amp;quot; Registers&lt;br /&gt;
syn keyword z80Reg af af' bc de hl ix ixh ixl iy iyh iyl&lt;br /&gt;
syn keyword z80Reg sp a b c d e f h i l r&lt;br /&gt;
&amp;quot;sjasmplus&lt;br /&gt;
syn keyword z80Reg lx xl ly yl xh hx yh hy&lt;br /&gt;
&lt;br /&gt;
&amp;quot; Directives&lt;br /&gt;
syn keyword z80PreProc .emptyfill .export .outname .asc .background .bank&lt;br /&gt;
syn keyword z80PreProc .byt .rombanksize .db .dbcos .dbrnd .dbsin .define .def&lt;br /&gt;
syn keyword z80PreProc .ds .dsb .dstruct .dsw .dw .dwcos .dwrnd .dwsin .else&lt;br /&gt;
syn keyword z80PreProc .ende .endif .endm .endme .endr .endro .ends .endst&lt;br /&gt;
syn keyword z80PreProc .enum .equ .fail .fclose .fopen .fread .fsize .if .ifdef&lt;br /&gt;
syn keyword z80PreProc .ifdefm .ifeq .ifexists .ifgr .ifgreq .ifle .ifleeq .ifndef&lt;br /&gt;
syn keyword z80PreProc .ifndefm .ifneq .incbin .incdir .include .input .macro&lt;br /&gt;
syn keyword z80PreProc .memorymap .org .orga .printt .printv .ramsection .redefine&lt;br /&gt;
syn keyword z80PreProc .redef .repeat .rept .rombankmap .rombanks .seed .section&lt;br /&gt;
syn keyword z80PreProc .slot .struct .unbackground .undefine .undef .word&lt;br /&gt;
syn keyword z80PreProc .shift .sym .symbol&lt;br /&gt;
&lt;br /&gt;
syn keyword z80PreProc align data db ds dsb dsw dw fsize instanceof read skip slot swap&lt;br /&gt;
syn keyword z80PreProc defaultslot slotsize bankstotal banksize banks free force&lt;br /&gt;
syn keyword z80PreProc semifree size superfree&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;quot; sjasmplus directives&lt;br /&gt;
syn keyword z80PreProc DEVICE ABYTE ABYTEC ABYTEZ ALIGN ASSERT BINARY BLOCK BYTE&lt;br /&gt;
syn keyword z80PreProc DB DC DD DEFARRAY DEPHASE DEFB DEFD DEFDEVICE DEFINE&lt;br /&gt;
syn keyword z80PreProc DEFM DEFS DEFW DEVICE DISP DISPLAY DM DS DUP DW DWORD &lt;br /&gt;
syn keyword z80PreProc DZ EMPTYTRD ENCODING END ENDLUA ENDMOD ENDT ENT EQU&lt;br /&gt;
syn keyword z80PreProc ENDMODULE EXPORT FIELD FPOS INCBIN INCHOB INCLUDE INCLUDELUA &lt;br /&gt;
syn keyword z80PreProc INCTRD INSERT LABELSLIST LUA MAP MEMORYMAP MODULE ORG&lt;br /&gt;
syn keyword z80PreProc OUTPUT PAGE PHASE REPT SAVEBIN SAVEHOB SAVESNA SAVETRD SHELLEXEC &lt;br /&gt;
syn keyword z80PreProc SIZE SLOT TEXTAREA UNPHASE WORD IF IFN IFDEF IFNDEF ELSE ENDIF&lt;br /&gt;
syn keyword z80PreProc MACRO ENDM D24 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;quot; Strings&lt;br /&gt;
syn region z80String start=/&amp;quot;/ skip=/\\&amp;quot;/ end=/&amp;quot;/ oneline&lt;br /&gt;
syn region z80String start=/'/ end=/'/ oneline&lt;br /&gt;
&lt;br /&gt;
&amp;quot; Labels&lt;br /&gt;
syn match z80Lbl &amp;quot;[A-Z_.?][A-Z_.?0-9]*:\=&amp;quot;&lt;br /&gt;
syn region z80Lbl2 start=&amp;quot;(&amp;quot; end=&amp;quot;)&amp;quot; oneline contains=z80Number,z80Lbl,z80Lbl2,z80Other&lt;br /&gt;
&lt;br /&gt;
&amp;quot; Operators&lt;br /&gt;
syn match z80Other &amp;quot;[~+\-*/%^&amp;amp;amp;=!&amp;amp;lt;&amp;amp;gt;]&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot; Numbers&lt;br /&gt;
syn match z80Number &amp;quot;\&amp;amp;lt;\$\&amp;amp;gt;&amp;quot;&lt;br /&gt;
syn match z80Number &amp;quot;\&amp;amp;lt;[01]\+b\&amp;amp;gt;&amp;quot;&lt;br /&gt;
syn match z80Number &amp;quot;\&amp;amp;lt;\d\x*h\&amp;amp;gt;&amp;quot;&lt;br /&gt;
syn match z80Number &amp;quot;\&amp;amp;lt;\d\+\&amp;amp;gt;&amp;quot;&lt;br /&gt;
syn match z80Number &amp;quot;\&amp;amp;lt;%[01]\+\&amp;amp;gt;&amp;quot;&lt;br /&gt;
syn match z80Number &amp;quot;\$[0-9a-fA-F]\+&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot; Indirect register access&lt;br /&gt;
syn region z80Reg start=/(ix/ end=/)/ keepend oneline contains=z80Lbl,z80Number,z80Reg,z80Other&lt;br /&gt;
syn region z80Reg start=/(iy/ end=/)/ keepend oneline contains=z80Lbl,z80Number,z80Reg,z80Other&lt;br /&gt;
syn match z80Reg &amp;quot;(b\=c)&amp;quot;&lt;br /&gt;
syn match z80Reg &amp;quot;(de)&amp;quot;&lt;br /&gt;
syn match z80Reg &amp;quot;(hl)&amp;quot;&lt;br /&gt;
syn match z80Reg &amp;quot;(sp)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot; Comments&lt;br /&gt;
syn match z80Comment &amp;quot;;.*$&amp;quot;&lt;br /&gt;
syn match z80Comment &amp;quot;^\*$&amp;quot;&lt;br /&gt;
syn region z80Comment2 start=&amp;quot;\&amp;amp;lt;\.endasm\&amp;amp;gt;&amp;quot; skip=&amp;quot;\n&amp;quot; end=&amp;quot;\&amp;amp;lt;\.asm\&amp;amp;gt;&amp;quot; keepend contains=z80Comment,z80Comment2 &lt;br /&gt;
syn region z80Comment start=&amp;quot;\/\*&amp;quot; end=&amp;quot;\*\/&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot; Define the default highlighting.&lt;br /&gt;
&amp;quot; For version 5.7 and earlier: only when not done already&lt;br /&gt;
&amp;quot; For version 5.8 and later: only when an item doesn't have highlighting yet&lt;br /&gt;
if version &amp;amp;gt;= 508 ||&amp;amp;nbsp;!exists(&amp;quot;did_z80_syntax_inits&amp;quot;)&lt;br /&gt;
if version &amp;amp;lt; 508&lt;br /&gt;
let did_z80_syntax_inits = 1&lt;br /&gt;
command -nargs=+ HiLink hi link &amp;amp;lt;args&amp;amp;gt;&lt;br /&gt;
else&lt;br /&gt;
command -nargs=+ HiLink hi def link &amp;amp;lt;args&amp;amp;gt;&lt;br /&gt;
endif&lt;br /&gt;
&lt;br /&gt;
HiLink z80Reg Constant&lt;br /&gt;
HiLink z80Lbl Identifier&lt;br /&gt;
HiLink z80Lbl2 Identifier&lt;br /&gt;
HiLink z80Comment Comment&lt;br /&gt;
HiLink z80Comment2 Comment&lt;br /&gt;
HiLink z80Inst Statement&lt;br /&gt;
HiLink z80Include Include&lt;br /&gt;
HiLink z80PreProc PreProc&lt;br /&gt;
HiLink z80Number Number&lt;br /&gt;
HiLink z80String String&lt;br /&gt;
HiLink z80Other Normal&lt;br /&gt;
&lt;br /&gt;
delcommand HiLink&lt;br /&gt;
endif&lt;br /&gt;
&lt;br /&gt;
let b:current_syntax = &amp;quot;z80&amp;quot;&lt;br /&gt;
&amp;quot; vim: ts=8&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
[[Category:CrossDev]]&lt;/div&gt;</summary>
		<author><name>Romain</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=Programming:Cross_Development&amp;diff=23055</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=23055"/>
				<updated>2008-04-16T12:24:19Z</updated>
		
		<summary type="html">&lt;p&gt;Romain: &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 wich 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 wich 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 cassette or disc.&lt;br /&gt;
&lt;br /&gt;
= Tools needed for cross development =&lt;br /&gt;
&lt;br /&gt;
== Linux ==&lt;br /&gt;
&lt;br /&gt;
=== Cross assemblers ===&lt;br /&gt;
&lt;br /&gt;
* [[SjasmPlus]]&lt;br /&gt;
* [[Sjasm|sjasm]]&lt;br /&gt;
* [[ZMac]]&lt;br /&gt;
&lt;br /&gt;
=== Disc management ===&lt;br /&gt;
&lt;br /&gt;
* [[CPCTools]]&lt;br /&gt;
* [[Cpcfs|cpcfs]] / [[Cpcxfs|cpcxfs]]&lt;br /&gt;
* [[Dsktools|dsktools]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Editing ===&lt;br /&gt;
&lt;br /&gt;
* [[How to use VIM for CrossDev|Vim]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&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]]&lt;br /&gt;
* [[ZMac]]&lt;br /&gt;
* [http://little-bat.de/prog/ zasm]&lt;br /&gt;
* [[WinApe]]'s built in assembler&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]&lt;br /&gt;
&lt;br /&gt;
[[Category:Programming]] [[Category:CrossDev]]&lt;/div&gt;</summary>
		<author><name>Romain</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=Category:CrossDevAsm&amp;diff=23054</id>
		<title>Category:CrossDevAsm</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=Category:CrossDevAsm&amp;diff=23054"/>
				<updated>2008-04-16T12:17:54Z</updated>
		
		<summary type="html">&lt;p&gt;Romain: New page: Category:CrossDev&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:CrossDev]]&lt;/div&gt;</summary>
		<author><name>Romain</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=SjasmPlus&amp;diff=23053</id>
		<title>SjasmPlus</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=SjasmPlus&amp;diff=23053"/>
				<updated>2008-04-16T12:17:26Z</updated>
		
		<summary type="html">&lt;p&gt;Romain: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:CrossDevAsm]]&lt;br /&gt;
&lt;br /&gt;
Here are the informations presented on the official website&amp;amp;nbsp;:&lt;br /&gt;
&lt;br /&gt;
== About ==&lt;br /&gt;
&lt;br /&gt;
SjASMPlus is Z80 Assembly Language Cross Compiler. It is available for Win32, DOS and FreeBSD(mainly 5.x) systems. It is based on SjASM source code by Sjoerd Mastijn - http://xl2s.tk SJASMPlus is a really powerfull Z80 Cross Compiler.&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
&lt;br /&gt;
* Z80/R800 documented and undocumented opcodes support&lt;br /&gt;
* 3-pass design&lt;br /&gt;
* Built-in Lua scripting engine&lt;br /&gt;
* Very fast compilation: 1 million lines by 2-3 seconds on modern computer&lt;br /&gt;
* Code inlining through colon (LD A,C:INC A:PUSH AF:IFDEF FX:LD A,D:ENDIF…)&lt;br /&gt;
* Structures to define data structures in memory more easily (use STRUCT pseudo-op)&lt;br /&gt;
* Conditional assembly&lt;br /&gt;
* Macro definitions&lt;br /&gt;
* Local labels&lt;br /&gt;
* User’s messages&lt;br /&gt;
* Temporary labels&lt;br /&gt;
* Special modes for 8bit computers:&lt;br /&gt;
* &amp;amp;nbsp; ZX-Spectrum 48/128, Scorpion 256, ATM-Turbo 512&lt;br /&gt;
* &amp;amp;nbsp;Defines and array of defines&lt;br /&gt;
* &amp;amp;nbsp;Fake instructions as LD HL,DE (LD H,D:LD L,E)&lt;br /&gt;
* &amp;amp;nbsp;Source and binary file inclusion&lt;br /&gt;
* &amp;amp;nbsp;Multiline block comments&lt;br /&gt;
* Multi file output and file updating&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
* Official Web site&amp;amp;nbsp;: [http://sjasmplus.sourceforge.net/ sjasmplus.sourceforge.net/]&lt;/div&gt;</summary>
		<author><name>Romain</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=Programming:Cross_Development&amp;diff=23052</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=23052"/>
				<updated>2008-04-16T12:16:39Z</updated>
		
		<summary type="html">&lt;p&gt;Romain: &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 wich 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 wich 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 cassette or disc.&lt;br /&gt;
&lt;br /&gt;
= Tools needed for cross development =&lt;br /&gt;
&lt;br /&gt;
== Linux ==&lt;br /&gt;
&lt;br /&gt;
=== Cross assemblers ===&lt;br /&gt;
&lt;br /&gt;
* [[SjasmPlus]]&lt;br /&gt;
* [[Sjasm|sjasm]]&lt;br /&gt;
* [[ZMac]]&lt;br /&gt;
&lt;br /&gt;
=== Disc management ===&lt;br /&gt;
&lt;br /&gt;
* [[CPCTools]]&lt;br /&gt;
* [[Cpcfs|cpcfs]] / [[Cpcxfs|cpcxfs]]&lt;br /&gt;
* [[Dsktools|dsktools]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&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]]&lt;br /&gt;
* [[ZMac]]&lt;br /&gt;
* [http://little-bat.de/prog/ zasm]&lt;br /&gt;
* [[WinApe]]'s built in assembler&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]&lt;br /&gt;
&lt;br /&gt;
[[Category:Programming]]&lt;br /&gt;
[[Category:CrossDev]]&lt;/div&gt;</summary>
		<author><name>Romain</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=SjasmPlus&amp;diff=23051</id>
		<title>SjasmPlus</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=SjasmPlus&amp;diff=23051"/>
				<updated>2008-04-16T12:15:39Z</updated>
		
		<summary type="html">&lt;p&gt;Romain: New page: Here are the informations presented on the official website&amp;amp;nbsp;:  == About ==  SjASMPlus is Z80 Assembly Language Cross Compiler. It is available for Win32, DOS and FreeBSD(mainly 5.x) s...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here are the informations presented on the official website&amp;amp;nbsp;:&lt;br /&gt;
&lt;br /&gt;
== About ==&lt;br /&gt;
&lt;br /&gt;
SjASMPlus is Z80 Assembly Language Cross Compiler. It is available for Win32, DOS and FreeBSD(mainly 5.x) systems. It is based on SjASM source code by Sjoerd Mastijn - http://xl2s.tk SJASMPlus is a really powerfull Z80 Cross Compiler.&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
&lt;br /&gt;
* Z80/R800 documented and undocumented opcodes support&lt;br /&gt;
* 3-pass design&lt;br /&gt;
* Built-in Lua scripting engine&lt;br /&gt;
* Very fast compilation: 1 million lines by 2-3 seconds on modern computer&lt;br /&gt;
* Code inlining through colon (LD A,C:INC A:PUSH AF:IFDEF FX:LD A,D:ENDIF…)&lt;br /&gt;
* Structures to define data structures in memory more easily (use STRUCT pseudo-op)&lt;br /&gt;
* Conditional assembly&lt;br /&gt;
* Macro definitions&lt;br /&gt;
* Local labels&lt;br /&gt;
* User’s messages&lt;br /&gt;
* Temporary labels&lt;br /&gt;
* Special modes for 8bit computers:&lt;br /&gt;
* &amp;amp;nbsp; ZX-Spectrum 48/128, Scorpion 256, ATM-Turbo 512&lt;br /&gt;
* &amp;amp;nbsp;Defines and array of defines&lt;br /&gt;
* &amp;amp;nbsp;Fake instructions as LD HL,DE (LD H,D:LD L,E)&lt;br /&gt;
* &amp;amp;nbsp;Source and binary file inclusion&lt;br /&gt;
* &amp;amp;nbsp;Multiline block comments&lt;br /&gt;
* Multi file output and file updating&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
* Official Web site&amp;amp;nbsp;: [http://sjasmplus.sourceforge.net/ sjasmplus.sourceforge.net/]&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Romain</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=Programming:Cross_Development&amp;diff=23050</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=23050"/>
				<updated>2008-04-16T12:08:45Z</updated>
		
		<summary type="html">&lt;p&gt;Romain: &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 wich 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 wich 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 cassette or disc.&lt;br /&gt;
&lt;br /&gt;
= Tools needed for cross development =&lt;br /&gt;
&lt;br /&gt;
== Linux ==&lt;br /&gt;
&lt;br /&gt;
=== Cross assemblers ===&lt;br /&gt;
&lt;br /&gt;
* [[SjasmPlus]]&lt;br /&gt;
* [[Sjasm|sjasm]]&lt;br /&gt;
* [[ZMac]]&lt;br /&gt;
&lt;br /&gt;
=== Disc management ===&lt;br /&gt;
&lt;br /&gt;
* [[CPCTools]]&lt;br /&gt;
* [[Cpcfs|cpcfs]] / [[Cpcxfs|cpcxfs]]&lt;br /&gt;
* [[Dsktools|dsktools]]&lt;br /&gt;
&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]]&lt;br /&gt;
* [[ZMac]]&lt;br /&gt;
* [http://little-bat.de/prog/ zasm]&lt;br /&gt;
* [[WinApe]]'s built in assembler&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]&lt;br /&gt;
&lt;br /&gt;
[[Category:Programming]]&lt;/div&gt;</summary>
		<author><name>Romain</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=23,_24,_25_Meeting_Maxidemo&amp;diff=16642</id>
		<title>23, 24, 25 Meeting Maxidemo</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=23,_24,_25_Meeting_Maxidemo&amp;diff=16642"/>
				<updated>2007-05-28T21:29:02Z</updated>
		
		<summary type="html">&lt;p&gt;Romain: Add last part's screenshot&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''23, 24, 25 Meeting Maxidemo''' a demo by [[Benediction]]&lt;br /&gt;
&lt;br /&gt;
Release date: 28-11-2002&lt;br /&gt;
&lt;br /&gt;
A maxidemo released after a week-end between some french sceners : Plissken, Romain, [[Slyder]], Iron, Master and [[Eliot]]. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery caption=&amp;quot;23, 24, 25 Meeting Maxidemo - screenshots&amp;quot;&amp;gt;&lt;br /&gt;
Image:232425 screen shot 1.jpg&lt;br /&gt;
Image:232425 screen shot 2.jpg&lt;br /&gt;
Image:232425 screen shot 3.jpg&lt;br /&gt;
Image:232425 screen shot 4.jpg&lt;br /&gt;
Image:Hot-girl.gif&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Demos]][[Category:Stub]]&lt;/div&gt;</summary>
		<author><name>Romain</name></author>	</entry>

	<entry>
		<id>https://oldwiki.cpcwiki.eu/index.php?title=File:Hot-girl.gif&amp;diff=16641</id>
		<title>File:Hot-girl.gif</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.cpcwiki.eu/index.php?title=File:Hot-girl.gif&amp;diff=16641"/>
				<updated>2007-05-28T21:27:43Z</updated>
		
		<summary type="html">&lt;p&gt;Romain: Last part of the 232425&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Last part of the 232425&lt;/div&gt;</summary>
		<author><name>Romain</name></author>	</entry>

	</feed>