

<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.amigaos.net/w/index.php?action=history&amp;feed=atom&amp;title=Writing_apps_for_Xena</id>
	<title>Writing apps for Xena - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.amigaos.net/w/index.php?action=history&amp;feed=atom&amp;title=Writing_apps_for_Xena"/>
	<link rel="alternate" type="text/html" href="https://wiki.amigaos.net/w/index.php?title=Writing_apps_for_Xena&amp;action=history"/>
	<updated>2026-05-15T06:17:47Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>https://wiki.amigaos.net/w/index.php?title=Writing_apps_for_Xena&amp;diff=12527&amp;oldid=prev</id>
		<title>Costel Mincea: Text replacement - &quot;&lt;syntaxhighlight&gt;&quot; to &quot;&lt;syntaxhighlight lang=&quot;C&quot; line&gt;&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.amigaos.net/w/index.php?title=Writing_apps_for_Xena&amp;diff=12527&amp;oldid=prev"/>
		<updated>2025-01-26T19:25:04Z</updated>

		<summary type="html">&lt;p&gt;Text replacement - &amp;quot;&amp;lt;syntaxhighlight&amp;gt;&amp;quot; to &amp;quot;&amp;lt;syntaxhighlight lang=&amp;quot;C&amp;quot; line&amp;gt;&amp;quot;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 19:25, 26 January 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 53:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 53:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;C:\Program FIles\XMOS\DevelopmentTools\11.11.1\targets\A-EON X-1000 Xena Device&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;C:\Program FIles\XMOS\DevelopmentTools\11.11.1\targets\A-EON X-1000 Xena Device&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;and copy the following text into a file in that directory&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;and copy the following text into a file in that directory&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;syntaxhighlight&amp;gt;&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;syntaxhighlight&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; lang=&quot;C&quot; line&lt;/ins&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&amp;gt;&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&amp;gt;&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;Network xmlns=&quot;http://www.xmos.com&quot;&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;Network xmlns=&quot;http://www.xmos.com&quot;&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 110:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 110:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;C:\Program FIles\XMOS\xTIMEcomposer\12.0.0beta\targets\A-EON X-1000 Xena Device&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;C:\Program FIles\XMOS\xTIMEcomposer\12.0.0beta\targets\A-EON X-1000 Xena Device&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;and create a file there with these contents&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;and create a file there with these contents&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;syntaxhighlight&amp;gt;&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;syntaxhighlight&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; lang=&quot;C&quot; line&lt;/ins&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&amp;gt;&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&amp;gt;&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;Network xmlns=&quot;http://www.xmos.com&quot;&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;Network xmlns=&quot;http://www.xmos.com&quot;&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Costel Mincea</name></author>
	</entry>
	<entry>
		<id>https://wiki.amigaos.net/w/index.php?title=Writing_apps_for_Xena&amp;diff=8177&amp;oldid=prev</id>
		<title>Steven Solie: /* Project Description, The Logger */</title>
		<link rel="alternate" type="text/html" href="https://wiki.amigaos.net/w/index.php?title=Writing_apps_for_Xena&amp;diff=8177&amp;oldid=prev"/>
		<updated>2015-10-02T18:53:32Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Project Description, The Logger&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 18:53, 2 October 2015&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 225:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 225:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;====Project Description, The Logger====&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;====Project Description, The Logger====&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The goal is to create a debug logger that will reside entirely on a &lt;/div&gt;&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-added&quot;&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Xorro card. It will connect directly to SER0: of the Nemo board, and will &lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;The goal is to create a debug logger that will reside entirely on a  &lt;/ins&gt;Xorro card. It will connect directly to SER0: of the Nemo board, and will &lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;capture the debug stream and store it on an SD card for later retrieval.&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;capture the debug stream and store it on an SD card for later retrieval.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The BufferExample code is the starting point.&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The BufferExample code is the starting point&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;. Adding the SD_4Bit file system from XCORE.com should provide the thread for managing the SecureDigital card&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Adding the SD_4Bit filesystem from XCORE.com should provide&lt;/div&gt;&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-added&quot;&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;the thread for managing the SecureDigital card.&lt;/div&gt;&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-added&quot;&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Hardware requirements==&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Hardware requirements==&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Steven Solie</name></author>
	</entry>
	<entry>
		<id>https://wiki.amigaos.net/w/index.php?title=Writing_apps_for_Xena&amp;diff=4719&amp;oldid=prev</id>
		<title>Lyle Hazelwood: /* Hardware requirements */</title>
		<link rel="alternate" type="text/html" href="https://wiki.amigaos.net/w/index.php?title=Writing_apps_for_Xena&amp;diff=4719&amp;oldid=prev"/>
		<updated>2012-12-12T05:11:23Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Hardware requirements&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 05:11, 12 December 2012&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 246:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 246:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Fast serial Transmit: from XCORE&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Fast serial Transmit: from XCORE&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;SD card handler(with FAT FS): from XCORE&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;SD card handler(with FAT FS): from XCORE&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Smart buffer: Code &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;HERE&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Smart buffer: Code &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;in the BufferExample&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Localbus, Xena side: code &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;HERE&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Localbus, Xena side: code &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;in the BufferExample&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Localbus, Nemo side: code &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;HERE&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Localbus, Nemo side: code &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;in the BufferExample&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-added&quot;&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;As described earlier, main() in an XC project is limited to&lt;/div&gt;&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-added&quot;&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;launching the threads and the channels that interconnect them.&lt;/div&gt;&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-added&quot;&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;This seems a good time for an example.&lt;/div&gt;&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-added&quot;&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-added&quot;&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The modules used:&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The modules used:&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 306:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 301:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;are supported. Odd addresses will be decremented. So far I am using&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;are supported. Odd addresses will be decremented. So far I am using&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;addresses to select which threads the localbus might exchange data with.&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;addresses to select which threads the localbus might exchange data with.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;More will be provided as I get a chance. The code is up now.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Questions are welcomed.. lylehaze@gmail.com&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Lyle Hazelwood</name></author>
	</entry>
	<entry>
		<id>https://wiki.amigaos.net/w/index.php?title=Writing_apps_for_Xena&amp;diff=4718&amp;oldid=prev</id>
		<title>Lyle Hazelwood: /* Project Description, The Logger */</title>
		<link rel="alternate" type="text/html" href="https://wiki.amigaos.net/w/index.php?title=Writing_apps_for_Xena&amp;diff=4718&amp;oldid=prev"/>
		<updated>2012-12-12T05:07:21Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Project Description, The Logger&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 05:07, 12 December 2012&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 217:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 217:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;back to input when any read is made of that pin (pin :&amp;gt; state).&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;back to input when any read is made of that pin (pin :&amp;gt; state).&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;====Project Description, Buffer Example====&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The buffer demonstration shown at AmiWest is available.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Instructions for Xorro wiring are included.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[File:BufferExample.lha]]&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;====Project Description, The Logger====&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;====Project Description, The Logger====&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 222:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 228:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Xorro card. It will connect directly to SER0: of the Nemo board, and will &lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Xorro card. It will connect directly to SER0: of the Nemo board, and will &lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;capture the debug stream and store it on an SD card for later retrieval.&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;capture the debug stream and store it on an SD card for later retrieval.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The BufferExample code is the starting point.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Adding the SD_4Bit filesystem from XCORE.com should provide&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;the thread for managing the SecureDigital card.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Hardware requirements==&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Hardware requirements==&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Lyle Hazelwood</name></author>
	</entry>
	<entry>
		<id>https://wiki.amigaos.net/w/index.php?title=Writing_apps_for_Xena&amp;diff=4716&amp;oldid=prev</id>
		<title>Lyle Hazelwood: First draft of Xena section, still needs links to code and more editing.</title>
		<link rel="alternate" type="text/html" href="https://wiki.amigaos.net/w/index.php?title=Writing_apps_for_Xena&amp;diff=4716&amp;oldid=prev"/>
		<updated>2012-12-11T21:57:50Z</updated>

		<summary type="html">&lt;p&gt;First draft of Xena section, still needs links to code and more editing.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==Writing apps for Xena==&lt;br /&gt;
&lt;br /&gt;
====Overview====&lt;br /&gt;
An XMOS XS1-L2 paralell processing chip is included in each A-EON X1000 &lt;br /&gt;
computer. Amigas have a history of naming their unique chips, and the &lt;br /&gt;
XMOS chip in the X1000 has been named Xena.&lt;br /&gt;
&lt;br /&gt;
The XS1-L2 is actually two XS1 cores in a single package. In the X1000,&lt;br /&gt;
about 1/3 of the I/O pins are connected back to a &amp;quot;localbus&amp;quot; interface,&lt;br /&gt;
with the rest brought out to a &amp;quot;Xorro&amp;quot; slot for connections to whatever&lt;br /&gt;
the user wants to connect.&lt;br /&gt;
&lt;br /&gt;
The Xena chip has many unique attributes. It can be programmed in &amp;quot;C&amp;quot;,&lt;br /&gt;
or in a variant called &amp;quot;XC&amp;quot; that better embraces the stream oriented&lt;br /&gt;
architecture of the chip.&lt;br /&gt;
&lt;br /&gt;
Each of the two cores in Xena supports up to eight threads. Each thread&lt;br /&gt;
operates at a internal clock of 100,000,000 Hz. When programmed in XC,&lt;br /&gt;
each threads memory is private to that thread. There are no &amp;quot;common&amp;quot; data&lt;br /&gt;
areas between threads, and all inter-thread data is moved through&lt;br /&gt;
Channels. These channels can carry data between threads, cores, and even&lt;br /&gt;
between XMOS chips.&lt;br /&gt;
&lt;br /&gt;
From the software side, each channel is declared, then used from exactly&lt;br /&gt;
two places. Any data written to one end can be read from the other. &lt;br /&gt;
Channels are bi-directional, so data can move in both directions.&lt;br /&gt;
&lt;br /&gt;
Channels are BLOCKING. A read will stall until a matching write is made&lt;br /&gt;
to satisfy it. Likewise a write will stall until a matching read is made&lt;br /&gt;
at the other end of the channel. This will require some organization from&lt;br /&gt;
the programmer.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;streaming&amp;quot; modifier may be added to a channel declaration. This will&lt;br /&gt;
dedicate a hardware channel exclusively to this connection. This may be&lt;br /&gt;
required for higher bandwidth connections.&lt;br /&gt;
&lt;br /&gt;
From the hardware side, channels may be three or five wire types. Cores are&lt;br /&gt;
interconnected by a switching &amp;quot;fabric&amp;quot; that consists of these channels. Part&lt;br /&gt;
of each *.xc file created configures the switches for the particular needs&lt;br /&gt;
of an application.&lt;br /&gt;
&lt;br /&gt;
==Programming the Xena chip==&lt;br /&gt;
We have a set of &amp;quot;XTools&amp;quot; for delivery of the executable to the Xena chip.&lt;br /&gt;
At this time, the compiler suite is available only for X86 platforms.&lt;br /&gt;
So all development is currently done from a Windows or X86 linux platform,&lt;br /&gt;
and the resulting *.xe files are moved over to the X1000 by flash drive&lt;br /&gt;
or network share. The XMOS development tools were recently updated to &lt;br /&gt;
version 12, but since my existing projects were started under version 11,&lt;br /&gt;
I&amp;#039;ll provide platform definition files for both.&lt;br /&gt;
&lt;br /&gt;
At the creation of each new project in the XMOS IDE, the target board must&lt;br /&gt;
be selected. If you are using version 11 of the XDE, create directory&lt;br /&gt;
C:\Program FIles\XMOS\DevelopmentTools\11.11.1\targets\A-EON X-1000 Xena Device&lt;br /&gt;
and copy the following text into a file in that directory&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;Network xmlns=&amp;quot;http://www.xmos.com&amp;quot;&lt;br /&gt;
xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&lt;br /&gt;
xsi:schemaLocation=&amp;quot;http://www.xmos.com http://www.xmos.com&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;Type&amp;gt;Device&amp;lt;/Type&amp;gt;&lt;br /&gt;
  &amp;lt;Name&amp;gt;A-EON X-1000 Xena Device&amp;lt;/Name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;Declarations&amp;gt;&lt;br /&gt;
    &amp;lt;Declaration&amp;gt;core stdcore[2]&amp;lt;/Declaration&amp;gt;&lt;br /&gt;
  &amp;lt;/Declarations&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;Packages&amp;gt;&lt;br /&gt;
    &amp;lt;Package ID=&amp;quot;0&amp;quot; Type=&amp;quot;XS1-L2A-QF124&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;Nodes&amp;gt;&lt;br /&gt;
        &amp;lt;Node Id=&amp;quot;0&amp;quot; InPackageId=&amp;quot;0&amp;quot; Type=&amp;quot;XS1-L1A&amp;quot; Oscillator=&amp;quot;25MHz&amp;quot; SystemFrequency=&amp;quot;500MHz&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;Core Number=&amp;quot;0&amp;quot; Reference=&amp;quot;stdcore[0]&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/Node&amp;gt;&lt;br /&gt;
        &amp;lt;Node Id=&amp;quot;1&amp;quot; InPackageId=&amp;quot;1&amp;quot; Type=&amp;quot;XS1-L1A&amp;quot; Oscillator=&amp;quot;25MHz&amp;quot; SystemFrequency=&amp;quot;500MHz&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;Core Number=&amp;quot;0&amp;quot; Reference=&amp;quot;stdcore[1]&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/Node&amp;gt;&lt;br /&gt;
      &amp;lt;/Nodes&amp;gt;&lt;br /&gt;
    &amp;lt;/Package&amp;gt;&lt;br /&gt;
  &amp;lt;/Packages&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;Links&amp;gt;&lt;br /&gt;
    &amp;lt;Link Encoding=&amp;quot;5wire&amp;quot; Delays=&amp;quot;0,1&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;LinkEndpoint NodeId=&amp;quot;0&amp;quot; Link=&amp;quot;XLG&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;LinkEndpoint NodeId=&amp;quot;1&amp;quot; Link=&amp;quot;XLF&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/Link&amp;gt;&lt;br /&gt;
    &amp;lt;Link Encoding=&amp;quot;5wire&amp;quot; Delays=&amp;quot;0,1&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;LinkEndpoint NodeId=&amp;quot;0&amp;quot; Link=&amp;quot;XLH&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;LinkEndpoint NodeId=&amp;quot;1&amp;quot; Link=&amp;quot;XLE&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/Link&amp;gt;&lt;br /&gt;
    &amp;lt;Link Encoding=&amp;quot;5wire&amp;quot; Delays=&amp;quot;0,1&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;LinkEndpoint NodeId=&amp;quot;0&amp;quot; Link=&amp;quot;XLE&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;LinkEndpoint NodeId=&amp;quot;1&amp;quot; Link=&amp;quot;XLH&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/Link&amp;gt;&lt;br /&gt;
    &amp;lt;Link Encoding=&amp;quot;5wire&amp;quot; Delays=&amp;quot;0,1&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;LinkEndpoint NodeId=&amp;quot;0&amp;quot; Link=&amp;quot;XLF&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;LinkEndpoint NodeId=&amp;quot;1&amp;quot; Link=&amp;quot;XLG&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/Link&amp;gt;&lt;br /&gt;
  &amp;lt;/Links&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;JTAGChain&amp;gt;&lt;br /&gt;
     &amp;lt;JTAGDevice NodeId=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;JTAGDevice NodeId=&amp;quot;1&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/JTAGChain&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;/Network&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to allow selection of Xena projects. There were some&lt;br /&gt;
changes when version 12 released, so if you are using&lt;br /&gt;
the new &amp;quot;Tooltips&amp;quot; IDE, create the directory&lt;br /&gt;
C:\Program FIles\XMOS\xTIMEcomposer\12.0.0beta\targets\A-EON X-1000 Xena Device&lt;br /&gt;
and create a file there with these contents&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;Network xmlns=&amp;quot;http://www.xmos.com&amp;quot;&lt;br /&gt;
xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&lt;br /&gt;
xsi:schemaLocation=&amp;quot;http://www.xmos.com http://www.xmos.com&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;Type&amp;gt;Device&amp;lt;/Type&amp;gt;&lt;br /&gt;
  &amp;lt;Name&amp;gt;A-EON X-1000 Xena Device&amp;lt;/Name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;Declarations&amp;gt;&lt;br /&gt;
    &amp;lt;Declaration&amp;gt;tileref tile[2]&amp;lt;/Declaration&amp;gt;&lt;br /&gt;
  &amp;lt;/Declarations&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;Packages&amp;gt;&lt;br /&gt;
    &amp;lt;Package ID=&amp;quot;0&amp;quot; Type=&amp;quot;XS1-L2A-QF124&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;Nodes&amp;gt;&lt;br /&gt;
        &amp;lt;Node Id=&amp;quot;0&amp;quot; InPackageId=&amp;quot;0&amp;quot; Type=&amp;quot;XS1-L1A&amp;quot; Oscillator=&amp;quot;25MHz&amp;quot; SystemFrequency=&amp;quot;500MHz&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;Tile Number=&amp;quot;0&amp;quot; Reference=&amp;quot;tile[0]&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/Node&amp;gt;&lt;br /&gt;
        &amp;lt;Node Id=&amp;quot;1&amp;quot; InPackageId=&amp;quot;1&amp;quot; Type=&amp;quot;XS1-L1A&amp;quot; Oscillator=&amp;quot;25MHz&amp;quot; SystemFrequency=&amp;quot;500MHz&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;Tile Number=&amp;quot;0&amp;quot; Reference=&amp;quot;tile[1]&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/Node&amp;gt;&lt;br /&gt;
      &amp;lt;/Nodes&amp;gt;&lt;br /&gt;
    &amp;lt;/Package&amp;gt;&lt;br /&gt;
  &amp;lt;/Packages&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;Links&amp;gt;&lt;br /&gt;
    &amp;lt;Link Encoding=&amp;quot;5wire&amp;quot; Delays=&amp;quot;0,1&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;LinkEndpoint NodeId=&amp;quot;0&amp;quot; Link=&amp;quot;XLG&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;LinkEndpoint NodeId=&amp;quot;1&amp;quot; Link=&amp;quot;XLF&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/Link&amp;gt;&lt;br /&gt;
    &amp;lt;Link Encoding=&amp;quot;5wire&amp;quot; Delays=&amp;quot;0,1&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;LinkEndpoint NodeId=&amp;quot;0&amp;quot; Link=&amp;quot;XLH&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;LinkEndpoint NodeId=&amp;quot;1&amp;quot; Link=&amp;quot;XLE&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/Link&amp;gt;&lt;br /&gt;
    &amp;lt;Link Encoding=&amp;quot;5wire&amp;quot; Delays=&amp;quot;0,1&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;LinkEndpoint NodeId=&amp;quot;0&amp;quot; Link=&amp;quot;XLE&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;LinkEndpoint NodeId=&amp;quot;1&amp;quot; Link=&amp;quot;XLH&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/Link&amp;gt;&lt;br /&gt;
    &amp;lt;Link Encoding=&amp;quot;5wire&amp;quot; Delays=&amp;quot;0,1&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;LinkEndpoint NodeId=&amp;quot;0&amp;quot; Link=&amp;quot;XLF&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;LinkEndpoint NodeId=&amp;quot;1&amp;quot; Link=&amp;quot;XLG&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/Link&amp;gt;&lt;br /&gt;
  &amp;lt;/Links&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;JTAGChain&amp;gt;&lt;br /&gt;
     &amp;lt;JTAGDevice NodeId=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;JTAGDevice NodeId=&amp;quot;1&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/JTAGChain&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;/Network&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
In both cases, these are just the normal XS1-L2 header files, with the&lt;br /&gt;
addition of &amp;quot;OSCILLATOR=25MHZ&amp;quot; to each core/tile to specify the clock&lt;br /&gt;
used for the X1000 Xena chip.&lt;br /&gt;
&lt;br /&gt;
==Unique to XC:==&lt;br /&gt;
&lt;br /&gt;
XC does not support pointers.&lt;br /&gt;
Any RAM used by a thread may NOT be accessed by any other thread.&lt;br /&gt;
Any I/O pins declared by a thread may not be used by any other thread.&lt;br /&gt;
&lt;br /&gt;
main() in an XC program may only declare channels, and launch other&lt;br /&gt;
threads with par() statement(s)&lt;br /&gt;
&lt;br /&gt;
multiple core projects may only have one par() in main().&lt;br /&gt;
&lt;br /&gt;
This may take some getting used to. Where normal &amp;quot;C&amp;quot; programs may&lt;br /&gt;
gather data into a block of memory, then pass a pointer to it, XC&lt;br /&gt;
threads cannot share access to the memory block, nor pass pointers.&lt;br /&gt;
&lt;br /&gt;
So far, this has made my main() a simple &amp;quot;map&amp;quot; of the threads I am&lt;br /&gt;
using, and the channels that connect them. It also makes code modules&lt;br /&gt;
MUCH more easily re-used, since inter-thread dependencies are much &lt;br /&gt;
better documented.&lt;br /&gt;
&lt;br /&gt;
In some cases, (like the re-use of existing code), we simply MUST have&lt;br /&gt;
pointers. Standard C can be mixed with XC, though you&amp;#039;ll lose some of&lt;br /&gt;
the elegance that XC provides. One example is the FAT file system support&lt;br /&gt;
used in the logger application.&lt;br /&gt;
&lt;br /&gt;
==Connecting to the hardware==&lt;br /&gt;
As delivered, the Xena chip in an X1000 includes the localbus connections,&lt;br /&gt;
a built-in JTAG port for programming and debugging, and an LED from&lt;br /&gt;
each XCORE. To make any connections to the chip, a XORRO card will be&lt;br /&gt;
required. The Xorro card provides access to all the open pins, and to&lt;br /&gt;
the JTAG pins in case you want to add additional XMOS chips.&lt;br /&gt;
&lt;br /&gt;
To get much done, you&amp;#039;ll probably need to add some accessories. The&lt;br /&gt;
logger project adds a serial port, and an SD card interface. &lt;br /&gt;
&lt;br /&gt;
WARNING: wiring your own circuit boards can be fun, but it does require&lt;br /&gt;
certain skills. If you are not comfortable with a soldering iron, or&lt;br /&gt;
familiar with electronics assembly, you might want to find someone who&lt;br /&gt;
IS skilled in these things to assemble your Xorro project for you.&lt;br /&gt;
&lt;br /&gt;
AmigaKit may provide Xorro assembly for pre-compiled projects like the&lt;br /&gt;
Logger if requested to do so. Please contact them for price and &lt;br /&gt;
availability.&lt;br /&gt;
&lt;br /&gt;
The Xorro card provides 3.3, 5, and 12 volts for your projects. The I/O&lt;br /&gt;
voltage of the chips is 3.3 volts. DO NOT apply voltages above 3.3 or&lt;br /&gt;
below 0 volts to any input. DO use output buffers for any outputs coming&lt;br /&gt;
from the XORRO slot. pins that are always INPUT or OUTPUT should be&lt;br /&gt;
declared as such in your code. Bi-Directional pins will switch to output&lt;br /&gt;
when any output statement is executed, (pin &amp;lt;: value) and will switch&lt;br /&gt;
back to input when any read is made of that pin (pin :&amp;gt; state).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Project Description, The Logger====&lt;br /&gt;
The goal is to create a debug logger that will reside entirely on a &lt;br /&gt;
Xorro card. It will connect directly to SER0: of the Nemo board, and will &lt;br /&gt;
capture the debug stream and store it on an SD card for later retrieval.&lt;br /&gt;
&lt;br /&gt;
==Hardware requirements==&lt;br /&gt;
A Xorro card for access to the Xena signals.&lt;br /&gt;
A serial &amp;quot;level shifter&amp;quot; chip, 3.3 volt. (MAX3232)&lt;br /&gt;
An SD card socket will all pins available (4 bit &amp;quot;fast&amp;quot; mode)&lt;br /&gt;
An SD card. Faster is better, I&amp;#039;m using Class 10.&lt;br /&gt;
&lt;br /&gt;
Please note that the MAX3232 and the SD Card are both 3.3 volt devices,&lt;br /&gt;
so voltage translation is not necessary.&lt;br /&gt;
&lt;br /&gt;
Software threads used, and their role.&lt;br /&gt;
Fast serial Receive: from XCORE&lt;br /&gt;
Fast serial Transmit: from XCORE&lt;br /&gt;
SD card handler(with FAT FS): from XCORE&lt;br /&gt;
Smart buffer: Code HERE&lt;br /&gt;
Localbus, Xena side: code HERE&lt;br /&gt;
Localbus, Nemo side: code HERE&lt;br /&gt;
&lt;br /&gt;
As described earlier, main() in an XC project is limited to&lt;br /&gt;
launching the threads and the channels that interconnect them.&lt;br /&gt;
This seems a good time for an example.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The modules used:&lt;br /&gt;
The fast serial routines, TX and RX, each require a single pin to&lt;br /&gt;
be defined as the input or output. Each also requires a streaming&lt;br /&gt;
channel end to supply or sink the data being handled. These &amp;quot;fast&amp;quot;&lt;br /&gt;
serial routines are 8N1, no handshaking, and can use baud rates up&lt;br /&gt;
to about 10 Megabaud, assuming the channels will be serviced &lt;br /&gt;
quickly enough.&lt;br /&gt;
&lt;br /&gt;
The SD Card code supports reading and writing files to a Secure&lt;br /&gt;
Digital card. Either SPI or 4Wire modes may be chosen, and software&lt;br /&gt;
to support FAT file system is included. There are a bunch of options&lt;br /&gt;
that determine support for multiple devices, long file names, and&lt;br /&gt;
other stuff. It should be noted that the FATFS code is written in C,&lt;br /&gt;
not in XC as most other modules are.&lt;br /&gt;
&lt;br /&gt;
The buffer code is my own, and was written to collect incoming&lt;br /&gt;
bytes, until a large enough block is ready to pass on to the SD card&lt;br /&gt;
thread. The code itself is quite simple, with the following design&lt;br /&gt;
goals:&lt;br /&gt;
The highest priority is to receive and buffer incoming bytes from&lt;br /&gt;
the streaming input (from the Serial IN pin, in this case).&lt;br /&gt;
When a block of data is requested, IF there is enough data, it is&lt;br /&gt;
sent out the output streaming channel.&lt;br /&gt;
Finally, one or optionally two control channels are checked for&lt;br /&gt;
commands and handled as needed. There are commands to get the&lt;br /&gt;
current buffer quantity, get the amount if idle time since the&lt;br /&gt;
last received character, get the number of buffer overruns (this&lt;br /&gt;
counter will reset on read), and to request n Bytes of data.&lt;br /&gt;
There is an optional second control channel if requested.&lt;br /&gt;
&lt;br /&gt;
The localbus code is two separate programs. One is a thread in&lt;br /&gt;
CORE1, and the other is an app running on the X1000. This provides&lt;br /&gt;
addressable communication between Xena and Nemo. The code presented&lt;br /&gt;
here is early working code. I hope the community will work together&lt;br /&gt;
to decide what features might be added to this example.&lt;br /&gt;
&lt;br /&gt;
It should be noted that the XMOS localbus thread might block if any&lt;br /&gt;
channel read or write is not ready. If this happens while the Data&lt;br /&gt;
Bus output buffer is enabled, permanent damage can be caused to&lt;br /&gt;
the Xena chip and/or the localbus. For this reason the localbus&lt;br /&gt;
thread will wait on a timer while the bus output is enabled. This &lt;br /&gt;
section of code is clearly marked as &amp;quot;KEEP OUT&amp;quot;, and I suggest that&lt;br /&gt;
you leave it alone unless you are SURE of what you are doing.&lt;br /&gt;
&lt;br /&gt;
The localbus code currently moves uint16 data words at all times.&lt;br /&gt;
It is possible to support 8, 16, and 32 bit values, but I wanted the&lt;br /&gt;
first example to be as simple as possible.&lt;br /&gt;
&lt;br /&gt;
Addresses for the localbus are 16 bits wide, and only even addresses&lt;br /&gt;
are supported. Odd addresses will be decremented. So far I am using&lt;br /&gt;
addresses to select which threads the localbus might exchange data with.&lt;/div&gt;</summary>
		<author><name>Lyle Hazelwood</name></author>
	</entry>
</feed>