<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Direct &#8211; Zyklus-MPS</title>
	<atom:link href="https://zyklus-mps.com/category/direct/feed/" rel="self" type="application/rss+xml" />
	<link>https://zyklus-mps.com</link>
	<description></description>
	<lastBuildDate>Tue, 23 Dec 2025 20:07:36 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.1</generator>
	<item>
		<title>[DIRECT] Powersupply</title>
		<link>https://zyklus-mps.com/direct-powersupply/</link>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Tue, 23 Dec 2025 20:02:06 +0000</pubDate>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Direct]]></category>
		<category><![CDATA[Hardware]]></category>
		<guid isPermaLink="false">https://zyklus-mps.com/?p=578</guid>

					<description><![CDATA[Direct&#8217;s orignal powersupply was probably something thrown together in haste. No PCB, it had regulators and capactitors soldered together and initially when I was rebuilding the machine, I had to rebuild that as well. It always felt a bit hairy and when I noticed a lose solder joint recently I figured it was time to [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Direct&#8217;s orignal powersupply was probably something thrown together in haste. No PCB, it had regulators and capactitors soldered together and initially when I was rebuilding the machine, I had to rebuild that as well. It always felt a bit hairy and when I noticed a lose solder joint recently I figured it was time to either replace it all or start thinking about creating a PCB.</p>
<p>The original had 3x 5V and 1x 12V out. (still haven&#8217;t taken the time to figure out where the 12v is for but that will come later)</p>
<p>Thankfully I had a Mean Well switching PS around and Paul mentioned to me that it would easilly do so I set out to replace the old PSU with this one. Cleaned up the connectors as well, where originally the lines were directly soldered to the mainboard.</p>
<p>The new PSU is autoswitching, so the voltage selector is now disonnected.</p>
<figure id="attachment_579" aria-describedby="caption-attachment-579" style="width: 715px" class="wp-caption alignnone"><img fetchpriority="high" decoding="async" class="wp-image-579 size-full" src="https://zyklus-mps.com/wp-content/uploads/2025/12/Screenshot-2025-12-22-at-16.27.07.png" alt="" width="715" height="890" srcset="https://zyklus-mps.com/wp-content/uploads/2025/12/Screenshot-2025-12-22-at-16.27.07.png 715w, https://zyklus-mps.com/wp-content/uploads/2025/12/Screenshot-2025-12-22-at-16.27.07-241x300.png 241w" sizes="(max-width: 715px) 100vw, 715px" /><figcaption id="caption-attachment-579" class="wp-caption-text">The old PSU. The connector strips I added when I refurbished the machine initially, to make it easier to remove the mainboard.</figcaption></figure>
<figure id="attachment_580" aria-describedby="caption-attachment-580" style="width: 700px" class="wp-caption alignnone"><img decoding="async" class="wp-image-580 size-full" src="https://zyklus-mps.com/wp-content/uploads/2025/12/Screenshot-2025-12-22-at-16.27.18.png" alt="" width="700" height="650" srcset="https://zyklus-mps.com/wp-content/uploads/2025/12/Screenshot-2025-12-22-at-16.27.18.png 700w, https://zyklus-mps.com/wp-content/uploads/2025/12/Screenshot-2025-12-22-at-16.27.18-300x279.png 300w" sizes="(max-width: 700px) 100vw, 700px" /><figcaption id="caption-attachment-580" class="wp-caption-text">New autoswitching PSU. Puts out 5v, +12v and -12v.</figcaption></figure>
<figure id="attachment_581" aria-describedby="caption-attachment-581" style="width: 698px" class="wp-caption alignnone"><img decoding="async" class="wp-image-581 size-full" src="https://zyklus-mps.com/wp-content/uploads/2025/12/Screenshot-2025-12-22-at-16.27.39.png" alt="" width="698" height="518" srcset="https://zyklus-mps.com/wp-content/uploads/2025/12/Screenshot-2025-12-22-at-16.27.39.png 698w, https://zyklus-mps.com/wp-content/uploads/2025/12/Screenshot-2025-12-22-at-16.27.39-300x223.png 300w" sizes="(max-width: 698px) 100vw, 698px" /><figcaption id="caption-attachment-581" class="wp-caption-text">Testfitting to make the machine run. In the end, I mounted the PSU flat without having to drill additional holes.</figcaption></figure>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>[DIRECT] Development</title>
		<link>https://zyklus-mps.com/direct-development/</link>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Sat, 13 Dec 2025 16:42:16 +0000</pubDate>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Direct]]></category>
		<guid isPermaLink="false">https://zyklus-mps.com/?p=572</guid>

					<description><![CDATA[Now that the machine has been running on a (very slightly modified) version of 1.5, I figured it would be a good time to start thinking about fixing some small bugs or other annoyances and maybe add some features. In order to do so, I need an easy way to upload a new version to [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Now that the machine has been running on a (very slightly modified) version of 1.5, I figured it would be a good time to start thinking about fixing some small bugs or other annoyances and maybe add some features. In order to do so, I need an easy way to upload a new version to the system.<br />
While the original Melcard stuff has been basically reverse engineered and ready to go, I can read these cards on the system, but not yet write to one from my computer.<br />
To originally get the OS loaded, I used an EPROM with a small adapter board that basically mimicked a Melcard.<br />
If I can hook up that thing, but with an EPROM Emulator I can connect to USB, I would be set.</p>
<p>A few caveats came into play.</p>
<p>The original code did a dual check to see if a card presented indeed contained a valid OS.<br />
it looked for an OS string and calculated a checksum. After some poking around and creating a modified bootloader rom, I discovered that the OS label was valid, but it always failed on the checksum part.</p>
<p>I now worked out how that worked and how I can create a full OS EPROM that validates both checks, but it took a lot of back and forth between adjusting the bootloader code, burning EPROMS and re-check. For now I&#8217;ve opted to completely hack out the checksum code &#8211; I&#8217;ll add it back in later as for now I want to focus on a good quick OS improvement workflow.</p>
<p>A few things on my todolist:<br />
Right now I&#8217;m relying on my very old XP pc to run the build, as the compiler is DOS based.<br />
I want to see if I can get that to work on an XP emulation on my mac. XP is already running, but getting a shared folder seems to be more involved than expected. Dosbox-X may be an alternative.</p>
<p>&nbsp;</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-573" src="https://zyklus-mps.com/wp-content/uploads/2025/12/Screenshot-2025-12-13-at-17.38.17.png" alt="" width="696" height="821" srcset="https://zyklus-mps.com/wp-content/uploads/2025/12/Screenshot-2025-12-13-at-17.38.17.png 696w, https://zyklus-mps.com/wp-content/uploads/2025/12/Screenshot-2025-12-13-at-17.38.17-254x300.png 254w" sizes="auto, (max-width: 696px) 100vw, 696px" /></p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-574" src="https://zyklus-mps.com/wp-content/uploads/2025/12/Screenshot-2025-12-13-at-17.40.44.png" alt="" width="621" height="957" srcset="https://zyklus-mps.com/wp-content/uploads/2025/12/Screenshot-2025-12-13-at-17.40.44.png 621w, https://zyklus-mps.com/wp-content/uploads/2025/12/Screenshot-2025-12-13-at-17.40.44-195x300.png 195w" sizes="auto, (max-width: 621px) 100vw, 621px" /></p>
<p>&nbsp;</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>[DIRECT] Memory fix</title>
		<link>https://zyklus-mps.com/direct-3/</link>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Fri, 14 Nov 2025 19:00:10 +0000</pubDate>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Direct]]></category>
		<guid isPermaLink="false">https://zyklus-mps.com/?p=565</guid>

					<description><![CDATA[In my quest to write a manual for Direct, I&#8217;ve been going through the code with a pair of tweezers, along with the machine trying stuff out. A lot of the functionality is pretty straight forward and I got it mapped out, but some pattern / sequence related stuff threw me for a loop. My [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>In my quest to write a manual for Direct, I&#8217;ve been going through the code with a pair of tweezers, along with the machine trying stuff out.</p>
<p>A lot of the functionality is pretty straight forward and I got it mapped out, but some pattern / sequence related stuff threw me for a loop.</p>
<p>My experiments often resulted in weird sounding sequences where I would expect things I had entered in the machine. It dawned on me that maybe the workspace region memory was having issues. So I swapped the old, stacked IC&#8217;s witih a couple of fresh ones in the correct size.</p>
<p>This stacking was done with smaller capacity ICs to create one unit in the correct footprint, presumably back in the late 80&#8217;s, the correct sized IC&#8217;s were not available or extremely expensive. I now have a box full  of &#8216;m for a few bucks, so I swapped them.</p>
<p>And indeed it seemed to fix a lot of issues.  Next up will be replacing the OS memory, but before I do that, I want the melcard stuff working,  so I can dump and load via card (and check the correct content).</p>
<p>Another thing is to extend the programming. This version has a ton of stuff in it, but error handling can be improved. There are a lot of things that don&#8217;t give complete feedback or in some cases, nothing at all. I&#8217;ve made a list of which I want to add. This will all become release 1.8.</p>
<p>&nbsp;</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-566" src="https://zyklus-mps.com/wp-content/uploads/2025/11/Screenshot-2025-11-14-at-19.53.07.png" alt="" width="752" height="483" srcset="https://zyklus-mps.com/wp-content/uploads/2025/11/Screenshot-2025-11-14-at-19.53.07.png 752w, https://zyklus-mps.com/wp-content/uploads/2025/11/Screenshot-2025-11-14-at-19.53.07-300x193.png 300w" sizes="auto, (max-width: 752px) 100vw, 752px" /></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>[DIRECT] Update</title>
		<link>https://zyklus-mps.com/direct-update/</link>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Tue, 28 Oct 2025 14:32:26 +0000</pubDate>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Direct]]></category>
		<guid isPermaLink="false">https://zyklus-mps.com/?p=532</guid>

					<description><![CDATA[The winter is coming, long dark evenings ahead for many a new hobby project. For Direct, I have quite a few things lined up: Replace all tantalum caps Create a better solid power supply Get the MELCARDS working and create a MELCARD writer to connect to USB Write a manual Create a schematic of the [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>The winter is coming, long dark evenings ahead for many a new hobby project. For Direct, I have quite a few things lined up:</p>
<ul>
<li>Replace all tantalum caps</li>
<li>Create a better solid power supply</li>
<li>Get the MELCARDS working and create a MELCARD writer to connect to USB</li>
<li>Write a manual</li>
<li>Create a schematic of the whole hardware</li>
<li>Do some bugfixing and perhaps some feature building</li>
</ul>
<p>I&#8217;m also desperately trying to reseach all I can on the Transposer module that was part of &#8220;Direct&#8221;.  Together with PaulMC we&#8217;re trying to create a new variant of sorts that looks like the original. I have some info on what it was supposed to do. Ultimately, it would be amazing if I ever could analyze and describe one of the originals.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>[DIRECT] Midi breakout box</title>
		<link>https://zyklus-mps.com/direct-midi-breakout-box/</link>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Fri, 17 Jan 2025 14:15:52 +0000</pubDate>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Direct]]></category>
		<guid isPermaLink="false">https://zyklus-mps.com/?p=480</guid>

					<description><![CDATA[The original system had a dedicated MIDI breakout box, connected using an EDAC connector. There was another box for the audio connections. It was hard to find, but I managed to find a picture showing the original box: It uses the same midi and jack connectors as the Zyklus MPS. So I set out to [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>The original system had a dedicated MIDI breakout box, connected using an EDAC connector. There was another box for the audio connections.</p>
<p>It was hard to find, but I managed to find a picture showing the original box:<br />
<img loading="lazy" decoding="async" class="alignnone size-full wp-image-481" src="https://zyklus-mps.com/wp-content/uploads/2025/01/84939729_10221516856261921_7427756741380538368_n.jpg" alt="" width="1192" height="671" srcset="https://zyklus-mps.com/wp-content/uploads/2025/01/84939729_10221516856261921_7427756741380538368_n.jpg 1192w, https://zyklus-mps.com/wp-content/uploads/2025/01/84939729_10221516856261921_7427756741380538368_n-300x169.jpg 300w, https://zyklus-mps.com/wp-content/uploads/2025/01/84939729_10221516856261921_7427756741380538368_n-1024x576.jpg 1024w, https://zyklus-mps.com/wp-content/uploads/2025/01/84939729_10221516856261921_7427756741380538368_n-768x432.jpg 768w" sizes="auto, (max-width: 1192px) 100vw, 1192px" /></p>
<p>It uses the same midi and jack connectors as the Zyklus MPS.</p>
<p>So I set out to create my own box. Got myself an empty enclosure with an ALU frontpanel and started drilling:</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-483" src="https://zyklus-mps.com/wp-content/uploads/2025/01/IMG_8140-1.jpg" alt="" width="1000" height="557" srcset="https://zyklus-mps.com/wp-content/uploads/2025/01/IMG_8140-1.jpg 1000w, https://zyklus-mps.com/wp-content/uploads/2025/01/IMG_8140-1-300x167.jpg 300w, https://zyklus-mps.com/wp-content/uploads/2025/01/IMG_8140-1-768x428.jpg 768w" sizes="auto, (max-width: 1000px) 100vw, 1000px" /></p>
<p>&nbsp;</p>
<p>Didn&#8217;t look particulary neat, so with the help of Paul, started mucking about in KiCad and designed a proper panel.</p>
<p>One week later, this is the result. At some point I will have to create a revision of this, as there is also a MIDI Clock in and out and the panel is slightly too small, but for now it&#8217;s fine.</p>
<figure id="attachment_485" aria-describedby="caption-attachment-485" style="width: 1000px" class="wp-caption alignnone"><img loading="lazy" decoding="async" class="wp-image-485 size-full" src="https://zyklus-mps.com/wp-content/uploads/2025/01/box-1.jpg" alt="" width="1000" height="761" srcset="https://zyklus-mps.com/wp-content/uploads/2025/01/box-1.jpg 1000w, https://zyklus-mps.com/wp-content/uploads/2025/01/box-1-300x228.jpg 300w, https://zyklus-mps.com/wp-content/uploads/2025/01/box-1-768x584.jpg 768w" sizes="auto, (max-width: 1000px) 100vw, 1000px" /><figcaption id="caption-attachment-485" class="wp-caption-text">MIDI breakout box</figcaption></figure>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>[DIRECT] EPROM board</title>
		<link>https://zyklus-mps.com/direct-2/</link>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Tue, 14 Jan 2025 21:00:45 +0000</pubDate>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Direct]]></category>
		<guid isPermaLink="false">https://zyklus-mps.com/?p=461</guid>

					<description><![CDATA[Not a whole lot to update lately. Just a few things: The PCB Paul created for the memory card came in. It&#8217;s again a work of art&#8230;. &#160; I&#8217;m going to arrange for a company to map out the old memory card connections towards the IDC. The pins are too thin to measure by hand, [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Not a whole lot to update lately. Just a few things:</p>
<p>The PCB Paul created for the memory card came in. It&#8217;s again a work of art&#8230;.</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-462" src="https://zyklus-mps.com/wp-content/uploads/2025/01/IMG_8209.jpeg" alt="" width="800" height="757" srcset="https://zyklus-mps.com/wp-content/uploads/2025/01/IMG_8209.jpeg 800w, https://zyklus-mps.com/wp-content/uploads/2025/01/IMG_8209-300x284.jpeg 300w, https://zyklus-mps.com/wp-content/uploads/2025/01/IMG_8209-768x727.jpeg 768w" sizes="auto, (max-width: 800px) 100vw, 800px" /></p>
<p>&nbsp;</p>
<p>I&#8217;m going to arrange for a company to map out the old memory card connections towards the IDC. The pins are too thin to measure by hand, at least for me as I keep touching other pins.</p>
<p>Hopefully I can get them to create a new wire harness for one of the EMU Proteus MPS card slots I got from Syntaur. I want to use the other to create a card programmer.</p>
<p>I&#8217;m waiting for a delivery from JLPCB for a front panel for the MIDI stage box I&#8217;m building, that will hold all the midi ports and some other stuff.</p>
<p>And I *may* have a lead on a more recent software version, but that is a big &#8216;if&#8217; and kinda involved. But here&#8217;s to hoping.</p>
<p>On another note, Bronswerk &#8211; the Zyklus Improviser creator &#8211; came over last weekend for a Direct &amp; Vangelis geek-out. Fun times!</p>
<p>&nbsp;</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>[DIRECT] A reborn historic device from the (way) past</title>
		<link>https://zyklus-mps.com/direct-a-reborn-historic-device-from-the-way-past/</link>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Sat, 04 Jan 2025 18:24:55 +0000</pubDate>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Direct]]></category>
		<guid isPermaLink="false">https://zyklus-mps.com/?p=446</guid>

					<description><![CDATA[Although some details still remain to be done or finished, Direct is now fully running and usable. There were a few issues trying to get it to this point: There was a short on the newly soldered joints for the replacement button panel, which caused Track and Thru switch 4 and 5 to trigger simultaneously. [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Although some details still remain to be done or finished, Direct is now fully running and usable.</p>
<p>There were a few issues trying to get it to this point:</p>
<ul>
<li>There was a short on the newly soldered joints for the replacement button panel, which caused Track and Thru switch 4 and 5 to trigger simultaneously.</li>
<li>The OS loaded, but right after reboot, it reported that there was no OS.</li>
</ul>
<p>The system has a few hidden key combos for various functions. If you hold track key 8 while booting, it will skip the OS checks. The OS checks in this case are twofold: a checksum on the entire OS in memory, and an OS ID that needs to be found at the beginning. I didn&#8217;t know which of the two checks failed, because there is no feedback.</p>
<p>Since I had a working compilation workflow, I decided to rewrite that section of the EPROM slightly and make the beep for the checksum failure higher in pitch so I could tell which check had failed. It turned out to be the checksum.</p>
<p>Another key combo is holding 1, 3, and 5 while starting. This formats the Data Region memory and initializes all the constants and variables there. Without that, the OS can&#8217;t function properly and shows E11. Because of Issue #1 (which I hadn&#8217;t yet discovered—we initially thought it might have been a design flaw in the new board), I decided to change that key combo to just key 1 and recompile the OS, as that part was not in the EPROM but rather in the actual OS code.</p>
<p>After that change, it did format, and the system booted. I then installed an EPROM booter that skips the checks altogether while I figure out what&#8217;s going wrong with the checksum at a later point.</p>
<p>With those changes, the machine ran fully. Yesterday, I set out to figure out what was wrong with the panel. I think I spotted a solder joint touching another, and after some tweaking, the panel behaved as it should. One problem fixed.</p>
<p>I also started working on the breakout box. This proved to be more challenging than I expected, as drilling the holes through the aluminum panel of the little box I bought did not end up very neatly at all. So I&#8217;ll design one in KiCad and have it made by JLCPCB. The second issue was the crimp connectors for the EDAC connector. They were massive and didn&#8217;t fit my tool at all. Using a vise wasn&#8217;t working either. So I placed a new order—this time for connectors with solder eyes. They should arrive next week.</p>
<p>But I still wanted to test Direct, so I jerry-rigged three DIN connectors and soldered them to the crimp connectors. If they&#8217;re not in the connector housing, I can stick them into the other side to make contact. It&#8217;s not very sturdy, but it will do for testing.</p>
<p>My first test was strange. While I could see something happening on the module I connected (specifically, a patch change when I used that function), there were no notes coming in.</p>
<p>After a lot of double-checking, replacing the optocoupler, and hooking up the scope, I finally discovered that one connection was broken on the case-side connector. It was miserable to repair, but I managed, and from that point on, everything worked!</p>
<p>Here is my to-do list for the remainder:</p>
<ol>
<li>Design the breakout box panel and have it printed.</li>
<li>Finish the breakout box<strong>,</strong> including the foot switch connectors, serial port, and leaving room for USB as well.</li>
<li>Find out and fix the OS checksum check failure.</li>
<li>Map out the memory card connector. I got two replacement connectors from Syntaur (removed from an EMU Proteus MPS). Hopefully, I can have a company measure the connections and map out a new flat cable to make the Proteus connector work (it has enough pins; it&#8217;s just a matter of mapping them correctly). The pins in the connector are extremely small—one in the original is already damaged—and I don&#8217;t have the proper tools to handle it myself. I also don&#8217;t have tools to create flat cables, so I&#8217;ll outsource this. I now have two 32kb memory cards and one 128kb card on the way. Maybe I can get a company to create a small board that allows me to write to these cards over USB.</li>
<li>Install the new EPROM/memory card board<strong>,</strong> which should arrive this week. This will replace the hand-wired prototype board I made last week. I can use it together with my EPROM emulator.</li>
<li>Consider creating a PCB for the power supply. It works fine now, but it looks like it was done in haste back then, without a proper PCB.</li>
<li>Create additional hardware documentation. I&#8217;ve learned a lot about what makes this box tick and have collected many replacement ICs, including memory, DUARTs, CPU, etc.</li>
<li>Create a manual. There isn&#8217;t one, so it’s a matter of experimenting with it and reading through the code.</li>
<li>Inventory of bugs. I&#8217;ve already found a few. This was a very early code build, and there was a major rewrite after this version. I can’t reproduce anything done after this version—there’s nothing left of it—but perhaps I can develop some new ideas myself.</li>
<li>Have some fun with it!</li>
</ol>
<p>With that, I’m leaving a standing invitation to the Powers That Be at the Vangelis estate: I&#8217;d be happy to refurbish the other machine as well. It likely wouldn&#8217;t take as much effort as this one.</p>
<p>This unit was deemed unfix-able in 2007, and indeed it probably was at the time. But thanks to the popularity of retro computing—along with sites like the Internet Archive and Bitsavers—it was possible to make it work again. It&#8217;s still not at the latest spec, but if that code ever surfaces, I’m confident it could work again too. Digging through archives, finding obscure data sheets on MELCARDs, and getting a different version of the linker/compiler tool chain to work were some of the more interesting and fun challenges. This box was destined for the scrap heap, but I’m glad it escaped that fate; at least one Direct can be preserved in working condition, a museum piece it deserves to be.</p>
<p>I want to add that I owe a major thanks to PaulMC, who helped me nearly daily on this project. He even found and fixed an original hardware bug in the machine! His help has been amazing, so thank you Paul!!</p>
<p>&nbsp;</p>
<div data-mode="normal" data-oembed="1" data-provider="youtube" id="arve-youtube-lzx0xzoebnm-2" style="max-width:640px;" class="arve">
<div class="arve-inner">
<div style="aspect-ratio:9/16" class="arve-embed arve-embed--has-aspect-ratio">
<div class="arve-ar" style="padding-top:177.777778%"></div>
<p>			<iframe allow="accelerometer &apos;none&apos;;autoplay &apos;none&apos;;bluetooth &apos;none&apos;;browsing-topics &apos;none&apos;;camera &apos;none&apos;;clipboard-read &apos;none&apos;;clipboard-write;display-capture &apos;none&apos;;encrypted-media &apos;none&apos;;gamepad &apos;none&apos;;geolocation &apos;none&apos;;gyroscope &apos;none&apos;;hid &apos;none&apos;;identity-credentials-get &apos;none&apos;;idle-detection &apos;none&apos;;keyboard-map &apos;none&apos;;local-fonts;magnetometer &apos;none&apos;;microphone &apos;none&apos;;midi &apos;none&apos;;otp-credentials &apos;none&apos;;payment &apos;none&apos;;picture-in-picture;publickey-credentials-create &apos;none&apos;;publickey-credentials-get &apos;none&apos;;screen-wake-lock &apos;none&apos;;serial &apos;none&apos;;summarizer &apos;none&apos;;sync-xhr;usb &apos;none&apos;;web-share;window-management &apos;none&apos;;xr-spatial-tracking &apos;none&apos;;" allowfullscreen="" class="arve-iframe fitvidsignore" credentialless data-arve="arve-youtube-lzx0xzoebnm-2" data-lenis-prevent="" data-src-no-ap="https://www.youtube-nocookie.com/embed/LZX0xzoeBNM?feature=oembed&amp;iv_load_policy=3&amp;modestbranding=1&amp;rel=0&amp;autohide=1&amp;playsinline=0&amp;autoplay=0" frameborder="0" height="1137.7777777778" loading="lazy" name="" referrerpolicy="strict-origin-when-cross-origin" sandbox="allow-scripts allow-same-origin allow-presentation allow-popups allow-popups-to-escape-sandbox" scrolling="no" src="https://www.youtube-nocookie.com/embed/LZX0xzoeBNM?feature=oembed&#038;iv_load_policy=3&#038;modestbranding=1&#038;rel=0&#038;autohide=1&#038;playsinline=0&#038;autoplay=0" title="" width="640"></iframe></p></div>
</p></div>
<p>	<script type="application/ld+json">{"##eebAddIdent##context":"http:\/\/schema.org\/","##eebAddIdent##id":"https:\/\/zyklus-mps.com\/direct-a-reborn-historic-device-from-the-way-past\/#arve-youtube-lzx0xzoebnm-2","type":"VideoObject","embedURL":"https:\/\/www.youtube-nocookie.com\/embed\/LZX0xzoeBNM?feature=oembed&iv_load_policy=3&modestbranding=1&rel=0&autohide=1&playsinline=0&autoplay=0"}</script></p>
</div>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>[DIRECT] And here she is&#8230;..</title>
		<link>https://zyklus-mps.com/direct-and-here-she-is/</link>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Thu, 02 Jan 2025 19:15:08 +0000</pubDate>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Direct]]></category>
		<guid isPermaLink="false">https://zyklus-mps.com/?p=438</guid>

					<description><![CDATA[I&#8217;ll elaborate more soon on what the hiccups were, but here she is, running Version 1.7, which is actually 1.5 but slightly modified by me. I can&#8217;t connect it yet to any keyboards as I&#8217;m still working on making the breakout box, but here she is, alive and kicking! &#160; &#160;]]></description>
										<content:encoded><![CDATA[<div data-mode="normal" data-oembed="1" data-provider="youtube" id="arve-youtube-ylxavt-qpfe-2" style="max-width:640px;" class="arve">
<div class="arve-inner">
<div style="aspect-ratio:9/16" class="arve-embed arve-embed--has-aspect-ratio">
<div class="arve-ar" style="padding-top:177.777778%"></div>
<p>			<iframe allow="accelerometer &apos;none&apos;;autoplay &apos;none&apos;;bluetooth &apos;none&apos;;browsing-topics &apos;none&apos;;camera &apos;none&apos;;clipboard-read &apos;none&apos;;clipboard-write;display-capture &apos;none&apos;;encrypted-media &apos;none&apos;;gamepad &apos;none&apos;;geolocation &apos;none&apos;;gyroscope &apos;none&apos;;hid &apos;none&apos;;identity-credentials-get &apos;none&apos;;idle-detection &apos;none&apos;;keyboard-map &apos;none&apos;;local-fonts;magnetometer &apos;none&apos;;microphone &apos;none&apos;;midi &apos;none&apos;;otp-credentials &apos;none&apos;;payment &apos;none&apos;;picture-in-picture;publickey-credentials-create &apos;none&apos;;publickey-credentials-get &apos;none&apos;;screen-wake-lock &apos;none&apos;;serial &apos;none&apos;;summarizer &apos;none&apos;;sync-xhr;usb &apos;none&apos;;web-share;window-management &apos;none&apos;;xr-spatial-tracking &apos;none&apos;;" allowfullscreen="" class="arve-iframe fitvidsignore" credentialless data-arve="arve-youtube-ylxavt-qpfe-2" data-lenis-prevent="" data-src-no-ap="https://www.youtube-nocookie.com/embed/YlxAVT-QpfE?feature=oembed&amp;iv_load_policy=3&amp;modestbranding=1&amp;rel=0&amp;autohide=1&amp;playsinline=0&amp;autoplay=0" frameborder="0" height="1137.7777777778" loading="lazy" name="" referrerpolicy="strict-origin-when-cross-origin" sandbox="allow-scripts allow-same-origin allow-presentation allow-popups allow-popups-to-escape-sandbox" scrolling="no" src="https://www.youtube-nocookie.com/embed/YlxAVT-QpfE?feature=oembed&#038;iv_load_policy=3&#038;modestbranding=1&#038;rel=0&#038;autohide=1&#038;playsinline=0&#038;autoplay=0" title="" width="640"></iframe></p></div>
</p></div>
<p>	<script type="application/ld+json">{"##eebAddIdent##context":"http:\/\/schema.org\/","##eebAddIdent##id":"https:\/\/zyklus-mps.com\/direct-and-here-she-is\/#arve-youtube-ylxavt-qpfe-2","type":"VideoObject","embedURL":"https:\/\/www.youtube-nocookie.com\/embed\/YlxAVT-QpfE?feature=oembed&iv_load_policy=3&modestbranding=1&rel=0&autohide=1&playsinline=0&autoplay=0"}</script></p>
</div>
<p>I&#8217;ll elaborate more soon on what the hiccups were, but here she is, running Version 1.7, which is actually 1.5 but slightly modified by me.</p>
<p>I can&#8217;t connect it yet to any keyboards as I&#8217;m still working on making the breakout box, but here she is, alive and kicking!</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>[DIRECT] About software&#8230;</title>
		<link>https://zyklus-mps.com/direct-about-software/</link>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Wed, 01 Jan 2025 16:22:10 +0000</pubDate>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Direct]]></category>
		<guid isPermaLink="false">https://zyklus-mps.com/?p=433</guid>

					<description><![CDATA[When I first got the original code, I set out to find the correct compilers and linker, as I did for Zyklus as well. Looking at the batch scripts used for compiling as well as some map files that remained, it was quickly discovered that the used tool chain was by Microtec.  Through the &#8216;internet [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>When I first got the original code, I set out to find the correct compilers and linker, as I did for Zyklus as well. Looking at the batch scripts used for compiling as well as some map files that remained, it was quickly discovered that the used tool chain was by Microtec.  Through the &#8216;internet archive&#8217; and some other online resources for old software, I was quickly able to download the correct C compiler and Assembler. Some other tools mentioned were untraceable. lod68k.exe had to be the linker, so I found a slightly more recent version called  lnk68k.exe which did the trick. Another file called &#8216;cvmot&#8217;, probably related to the ICE or the system used to upload to memory cards remained untraceable.</p>
<p>I fired up my old (I mean OLD &#8211; pentium 200 mmx) PC and installed the tool chain.</p>
<p>The compiler worked nicely and with the options found in the batch file, I noticed that it didn&#8217;t compile to OBJ format, but rather to assembly code, which then got compiled by the assembler into obj files.<br />
The linker used a linker command file with memory layout options to then barf out one complete ABS file. The ABS file contains, besides the absolute addressing information, the hex file.</p>
<p>Now I have my own workflow for doing assembly, which I used to create my own &#8216;diag&#8217; eproms. At first I tried to use m68k-elf-as but I kept running into all sorts of weird issues. Eventually, I opted to change to vasm which made life a lot easier. It enabled me, along with some other tools like srec_cat to create the ODD/EVEN eproms.</p>
<p>Today I set out to try to use the splitting and burning part of my tool chain, with the original code and compilers. I wanted to recompile the EPROM code which some OS checksum checks disabled to see if I could get it to boot directly into the OS entry point and hopefully use the predetermined key combo to clean the Data Region, which needs formatting (as the E11 error tells me).</p>
<p>In order to do this, I had to modify the compilation batch files, along with with some command options per line to make it work with the slightly newer version of the linker. In order to build my new EPROM, I needed everything compiled to OBJ files, because of external references in the PROM code that it needs to find.  After some hackery, I managed to compile the whole code base and link it using the memory layout options as detailed in the linker command file. I have two of these command files, one is for doing the EPROM only, the rest is for the whole codebase.</p>
<p>I then moved the resulting ABS file to my mac and pushed it through my split / burn workflow and 2 new EPROMS were born. Stuck in in the machine and the good news is, it booted as I expected, directly into the OS showing the E11 code. However, the startup keys to reformat the WS memory space didn&#8217;t work (reinforcing my believe that those RAM IC&#8217;s are toast, or at least one of them. If I switch them around, other unpredictable stuff happens. New ones are on order, I have to be patient&#8230;..).</p>
<p>I also did a full build on the codebase and compared the resulting HEX part of the ABS file with the HEX file I already have and it looks like it&#8217;s identical. So with that I can now fully build and rebuild the OS and EPROMs.</p>
<p>Paul was kind enough to create a little memory card board based on the prototype we made with a protoboard so it looks neat. These are being printed right now and should be here next week.</p>
<p>And finally, I had to tackle an issue with the metronome / system volume control. This potmeter had a capacitor and resistor soldered to the legs and they kept coming off. I created a tiny board of a piece of protoboard, laid it out on there and this will make it a bit more sturdy.</p>
<p>More to come soon&#8230;</p>
<p>&nbsp;</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>[DIRECT] It&#8217;s alive&#8230;kinda</title>
		<link>https://zyklus-mps.com/its-alive-kinda/</link>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Mon, 30 Dec 2024 11:37:27 +0000</pubDate>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Direct]]></category>
		<guid isPermaLink="false">https://zyklus-mps.com/?p=426</guid>

					<description><![CDATA[A lot has been happening. Since the hardware restoration was pretty much done, it was time to start focusing on getting the OS to work. There were quite a few hurdles to take. These were the options so far: Use the MCL68+ CPU emulator.  This wouldn&#8217;t work out of the box, for the simple reason [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>A lot has been happening. Since the hardware restoration was pretty much done, it was time to start focusing on getting the OS to work. There were quite a few hurdles to take. These were the options so far:</p>
<ul>
<li>Use the MCL68+ CPU emulator.  This wouldn&#8217;t work out of the box, for the simple reason that the original CPU sits on one of those very expensive IC foots with turned connectors. You can&#8217;t stick a header pin in them. So I need to find some kind of (long) header pins that are small enough to fit in there.</li>
<li>Use a memory card, as originally intended. Well, we don&#8217;t know the card, and we don&#8217;t know how to get stuff on there even if we knew.</li>
<li>Use serial. This could work, but serial communication needs some kind of protocol. This would require a custom boot rom etc. Nothing too spectacular, but I&#8217;d consider this if all else fails.</li>
<li>Use custom EPROM&#8217;s with the OS as payload. This was pretty much my first option, but I never got it to work.</li>
</ul>
<p>So I set out to map out all the pins on the memory card&#8217;s IDC connector and trace them to the various endpoints. I also spent some time on google trying to learn more about these 60 pin cards that basically predates the PCMCIA standard. I found out that Hammond used these type of cards (in 32k format) as did EMU in their Proteus MPS. Finding a service manual of a Proteus MPS and having traced most lines from the IDC taught us that the connection is pretty straight forward:  16 Address lines, 8 data lines and some additional stuff. From the little hardware document that exists, we know that:</p>
<pre>Access to the cartridge can only be made byte wise, on even byte
locations ( D8 - D15 ). 

</pre>
<p>With this we figured we could connect an EPROM to this. There were some card sense options that basically describes what kind of card sits in there. The code provided some insight. Thanks to Paul &#8211; who incidentally has been such a huge help in this project, I went on to build something on a protoboard with a header, ic socket, jumpers etc. Attempt 1 failed because I&#8217;m daft, but the second one yielded some interesting results.</p>
<p>&nbsp;</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-427" src="https://zyklus-mps.com/wp-content/uploads/2024/12/IMG_8130.jpeg" alt="" width="1200" height="900" srcset="https://zyklus-mps.com/wp-content/uploads/2024/12/IMG_8130.jpeg 1200w, https://zyklus-mps.com/wp-content/uploads/2024/12/IMG_8130-300x225.jpeg 300w, https://zyklus-mps.com/wp-content/uploads/2024/12/IMG_8130-1024x768.jpeg 1024w, https://zyklus-mps.com/wp-content/uploads/2024/12/IMG_8130-768x576.jpeg 768w" sizes="auto, (max-width: 1200px) 100vw, 1200px" /></p>
<p>Armed with a logic analyzer, when plugged in and using the correct OS Load procedure, I noticed a lot of traffic on the data lines:</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-428" src="https://zyklus-mps.com/wp-content/uploads/2024/12/Screenshot-2024-12-29-at-22.22.55.png" alt="" width="1200" height="701" srcset="https://zyklus-mps.com/wp-content/uploads/2024/12/Screenshot-2024-12-29-at-22.22.55.png 1200w, https://zyklus-mps.com/wp-content/uploads/2024/12/Screenshot-2024-12-29-at-22.22.55-300x175.png 300w, https://zyklus-mps.com/wp-content/uploads/2024/12/Screenshot-2024-12-29-at-22.22.55-1024x598.png 1024w, https://zyklus-mps.com/wp-content/uploads/2024/12/Screenshot-2024-12-29-at-22.22.55-768x449.png 768w" sizes="auto, (max-width: 1200px) 100vw, 1200px" /></p>
<p>This told me a few things, based on the original EPROM code the startup goes something like this:</p>
<ul>
<li> Wait a few ms to settle the voltages</li>
<li>check the RAM for a valid OS, it does this by checking an OS id and a checksum</li>
<li>if either fails, sound the alarm bells (Buzzer ON)</li>
<li>Wait until os load procedure starts</li>
<li>When button pressed, check if there is a card, if that card has an OS ID</li>
<li>If yes? Stop buzzer. Load OS into RAM</li>
<li>Reboot.</li>
</ul>
<p>Well, when I initiated the OS load, the buzzer went off. So it saw the card and recognized is as OS card. But after reboot, the alarm bells were back on.</p>
<p>So while data was being copied to RAM, it seemed that it didn&#8217;t stick in the ram. But that maybe a main board issue, not the cartridge we made!</p>
<p>I then remembered that there was an option to skip the OS check during startup by holding a button while turning on. I did that and to my surprise, the display showed E11:</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-429" src="https://zyklus-mps.com/wp-content/uploads/2024/12/IMG_8136.jpeg" alt="" width="1200" height="900" srcset="https://zyklus-mps.com/wp-content/uploads/2024/12/IMG_8136.jpeg 1200w, https://zyklus-mps.com/wp-content/uploads/2024/12/IMG_8136-300x225.jpeg 300w, https://zyklus-mps.com/wp-content/uploads/2024/12/IMG_8136-1024x768.jpeg 1024w, https://zyklus-mps.com/wp-content/uploads/2024/12/IMG_8136-768x576.jpeg 768w" sizes="auto, (max-width: 1200px) 100vw, 1200px" /></p>
<p>&nbsp;</p>
<p>This was big news. E11 is indeed a predefined Error code. However, that code comes from the OS, not from the boot eprom. Which means the OS is actually in memory! In this case, E11 tells me that the Workspace Data memory region, needs to be formatted. You could do that by holding a few other buttons during startup, but since the OS check fails, this never works.</p>
<p>So why does the OS check fail? That is hard to determine directly, but moving some memory IC&#8217;s around result in unpredictable behavior, so that tells me that quite likely, one or more memory IC&#8217;s are not that healthy anymore. I could write a bit of assembly code that does a bit-for-bit memory test and I might do that, but for now, I sourced a load of new memory chips and wait for them to arrive.</p>
<p>There is also a lot of TTL logic that helps with memory allocation (perhaps because they designed the system for growth, it can use various memory sizes) &#8211; and maybe one of those TTL&#8217;s has gone tits-up.  First I&#8217;ll try new memory when it comes in. The TTL&#8217;s are mostly not socketed, so when we have to come to that part of diagnosing, I&#8217;ll have to see if we can diagnose as much in circuit as possible. It was my original intention to socket all the IC&#8217;s, but the board is very fragile and de-soldering everything isn&#8217;t going to do it any favors, so I opted not to take that route.</p>
<p>So all in all, it looks like our pseudo memory card was a success! While I wait for new memory IC&#8217;s, I&#8217;ll turn my focus on building the MIDI breakout box.</p>
<p>Later on, since I now have a working Assembly workflow and better understanding on how the Odd/Even organization works, I want to recompile the original Bootrom from source, maybe take out some of the checks and see if I can force it to boot into the OS and force a Data Region memory format. Just in case it still goes nuts over the OS checksum.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
