<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Comments for mikestirling.co.uk</title>
	<atom:link href="http://mikestirling.co.uk/comments/feed/" rel="self" type="application/rss+xml" />
	<link>http://mikestirling.co.uk</link>
	<description></description>
	<lastBuildDate>Tue, 01 May 2012 20:08:36 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>Comment on ZX Spectrum on an FPGA by Dirk</title>
		<link>http://mikestirling.co.uk/zx-spectrum-on-an-fpga/comment-page-1/#comment-16618</link>
		<dc:creator>Dirk</dc:creator>
		<pubDate>Tue, 01 May 2012 20:08:36 +0000</pubDate>
		<guid isPermaLink="false">http://mikestirling.co.uk/?page_id=173#comment-16618</guid>
		<description>Hi, the Core works really nice.
But how can i get the ZXMMC+ feature into flash rom ?
Dirk</description>
		<content:encoded><![CDATA[<p>Hi, the Core works really nice.<br />
But how can i get the ZXMMC+ feature into flash rom ?<br />
Dirk</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on ZX Spectrum on an FPGA by Mike</title>
		<link>http://mikestirling.co.uk/zx-spectrum-on-an-fpga/comment-page-1/#comment-15258</link>
		<dc:creator>Mike</dc:creator>
		<pubDate>Sun, 01 Apr 2012 22:03:25 +0000</pubDate>
		<guid isPermaLink="false">http://mikestirling.co.uk/?page_id=173#comment-15258</guid>
		<description>Hi Domenico,

I remember having the same problem using more than 2 partitions at once (in ResiDOS I assume?)  I don&#039;t have a solution I&#039;m afraid, but the behaviour should be exactly the same as a real ZXMMC, so if you find a solution for the real Spectrum then it should still work on the DE1.

It would be very easy to make the Minimig joystick interface work with the Spectrum design, but I don&#039;t have time to work on it at the moment.  I remember the Kempston joystick interface was just a latch mapped to IN 31 (in fact I think it was selected whenever A4-A0 = 1).  The VHDL to implement this would be trivial.  If you want to have a go at adding it then you should find it similar to the ULA input latch for the keyboard and tape.

Mike</description>
		<content:encoded><![CDATA[<p>Hi Domenico,</p>
<p>I remember having the same problem using more than 2 partitions at once (in ResiDOS I assume?)  I don&#8217;t have a solution I&#8217;m afraid, but the behaviour should be exactly the same as a real ZXMMC, so if you find a solution for the real Spectrum then it should still work on the DE1.</p>
<p>It would be very easy to make the Minimig joystick interface work with the Spectrum design, but I don&#8217;t have time to work on it at the moment.  I remember the Kempston joystick interface was just a latch mapped to IN 31 (in fact I think it was selected whenever A4-A0 = 1).  The VHDL to implement this would be trivial.  If you want to have a go at adding it then you should find it similar to the ULA input latch for the keyboard and tape.</p>
<p>Mike</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on ZX Spectrum on an FPGA by Domenico-Roma-Ita</title>
		<link>http://mikestirling.co.uk/zx-spectrum-on-an-fpga/comment-page-1/#comment-15248</link>
		<dc:creator>Domenico-Roma-Ita</dc:creator>
		<pubDate>Sun, 01 Apr 2012 14:18:30 +0000</pubDate>
		<guid isPermaLink="false">http://mikestirling.co.uk/?page_id=173#comment-15248</guid>
		<description>Hello Mike ! Thank you for your strong design of the Spectrum for Altera DE1.
I touched the keyboard of the spectrum for many years now and I dusted off my old tapes to try to load them on the memory card.
A small problem, I created 4 partitions on a 512MB SD with the command 
New Data&quot; nnn &quot;, 16
but I can activate only 2 at a time eg.
move &quot;a:&quot; in &quot;games&quot; asn - return the message OK, 0:1
move &quot;B:&quot; in &quot;utils&quot; asn - return the message OK, 0:1
move &quot;c:&quot; in &quot;snap48&quot; asn - return the message &quot;Out of XDPBs, 0:1
so if I use C: I have to remove A: or B:
One other question, there are plans to connect a joystick to GPIO Connector of the DE1? On another site I found the pattern for the Joy of Minimig (amiga 500 on DE1) Very Simple, 14 resistor 2,7Kohm and 2 connectors Canon 9 Male.
Thank You and Happy Easter !!!
Domenico</description>
		<content:encoded><![CDATA[<p>Hello Mike ! Thank you for your strong design of the Spectrum for Altera DE1.<br />
I touched the keyboard of the spectrum for many years now and I dusted off my old tapes to try to load them on the memory card.<br />
A small problem, I created 4 partitions on a 512MB SD with the command<br />
New Data&#8221; nnn &#8220;, 16<br />
but I can activate only 2 at a time eg.<br />
move &#8220;a:&#8221; in &#8220;games&#8221; asn &#8211; return the message OK, 0:1<br />
move &#8220;B:&#8221; in &#8220;utils&#8221; asn &#8211; return the message OK, 0:1<br />
move &#8220;c:&#8221; in &#8220;snap48&#8243; asn &#8211; return the message &#8220;Out of XDPBs, 0:1<br />
so if I use C: I have to remove A: or B:<br />
One other question, there are plans to connect a joystick to GPIO Connector of the DE1? On another site I found the pattern for the Joy of Minimig (amiga 500 on DE1) Very Simple, 14 resistor 2,7Kohm and 2 connectors Canon 9 Male.<br />
Thank You and Happy Easter !!!<br />
Domenico</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on ZX Spectrum on an FPGA by Mike</title>
		<link>http://mikestirling.co.uk/zx-spectrum-on-an-fpga/comment-page-1/#comment-15037</link>
		<dc:creator>Mike</dc:creator>
		<pubDate>Mon, 26 Mar 2012 12:21:01 +0000</pubDate>
		<guid isPermaLink="false">http://mikestirling.co.uk/?page_id=173#comment-15037</guid>
		<description>Hi Ben.  The video output is quite true to the real thing, which was not particularly PAL compliant.  It should work fine with a CRT television in PAL mode, but YMMV with a flat screen because it will depend on how picky the video decoder is.  The VGA mode is simply a double-scanned version of the TV line timings (so each line is scanned out twice in half the time).  This results in a 50 Hz VGA signal that one of my TFT monitors has no problem displaying, but another newer one refuses.  I suspect that any issues your TV might have with PAL mode would be because it is non-interlaced.  Perhaps modifying the vertical sync logic to generate the necessary half line offset on alternate fields would solve that problem.  There shouldn&#039;t really be any change to the display as long as the same video data was output on each field.  To get the VGA mode to work with newer monitors it would be necessary to implement a framebuffer to decouple the ULA video timing from the display.  Someone has implemented such a thing on the BBC project as part of a port to a Xilinx board with only HDMI out.  As a quick hack you could just change the speed of the entire design such that the video refresh rate was 60 Hz, but this will speed up the Spectrum as well, and you might need to tweak the blanking to keep everything in spec.

To answer your previous comment, I guess you need to start with an idea for something you want to implement.  Anything with strict timing requirements or a lot of high-speed parallel operations would often be better suited to FPGA implementation rather than, say, using a microcontroller or even a DSP.  Video processing and high-end software radio are good examples.  An as-yet unreleased project I used the board for was to do a digital capture of a S/PDIF digital audio stream onto SD card as a means for ripping Minidiscs to FLAC.  Some extra logic read the track number from the subcode data and used this to build an index on the SD card for automating the encoding process.  

There are a lot of interesting building-blocks and whole projects on Opencores, and also check out the DE1 port of Minimig if you haven&#039;t already.

I&#039;m afraid family commitments are going to be taking up a lot of my time for the foreseeable future, so further replies are likely to be sparse.  I do still read all the comments, though, and will endeavour to answer anything quick all the same.

Mike</description>
		<content:encoded><![CDATA[<p>Hi Ben.  The video output is quite true to the real thing, which was not particularly PAL compliant.  It should work fine with a CRT television in PAL mode, but YMMV with a flat screen because it will depend on how picky the video decoder is.  The VGA mode is simply a double-scanned version of the TV line timings (so each line is scanned out twice in half the time).  This results in a 50 Hz VGA signal that one of my TFT monitors has no problem displaying, but another newer one refuses.  I suspect that any issues your TV might have with PAL mode would be because it is non-interlaced.  Perhaps modifying the vertical sync logic to generate the necessary half line offset on alternate fields would solve that problem.  There shouldn&#8217;t really be any change to the display as long as the same video data was output on each field.  To get the VGA mode to work with newer monitors it would be necessary to implement a framebuffer to decouple the ULA video timing from the display.  Someone has implemented such a thing on the BBC project as part of a port to a Xilinx board with only HDMI out.  As a quick hack you could just change the speed of the entire design such that the video refresh rate was 60 Hz, but this will speed up the Spectrum as well, and you might need to tweak the blanking to keep everything in spec.</p>
<p>To answer your previous comment, I guess you need to start with an idea for something you want to implement.  Anything with strict timing requirements or a lot of high-speed parallel operations would often be better suited to FPGA implementation rather than, say, using a microcontroller or even a DSP.  Video processing and high-end software radio are good examples.  An as-yet unreleased project I used the board for was to do a digital capture of a S/PDIF digital audio stream onto SD card as a means for ripping Minidiscs to FLAC.  Some extra logic read the track number from the subcode data and used this to build an index on the SD card for automating the encoding process.  </p>
<p>There are a lot of interesting building-blocks and whole projects on Opencores, and also check out the DE1 port of Minimig if you haven&#8217;t already.</p>
<p>I&#8217;m afraid family commitments are going to be taking up a lot of my time for the foreseeable future, so further replies are likely to be sparse.  I do still read all the comments, though, and will endeavour to answer anything quick all the same.</p>
<p>Mike</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on ZX Spectrum on an FPGA by Ben</title>
		<link>http://mikestirling.co.uk/zx-spectrum-on-an-fpga/comment-page-1/#comment-15010</link>
		<dc:creator>Ben</dc:creator>
		<pubDate>Sun, 25 Mar 2012 20:18:03 +0000</pubDate>
		<guid isPermaLink="false">http://mikestirling.co.uk/?page_id=173#comment-15010</guid>
		<description>Hmm, and my TV also refuses the signal. I did try reducing the blanking period although I just managed to make the screen dark..I don&#039;t really know what I&#039;m doing :P</description>
		<content:encoded><![CDATA[<p>Hmm, and my TV also refuses the signal. I did try reducing the blanking period although I just managed to make the screen dark..I don&#8217;t really know what I&#8217;m doing <img src='http://mikestirling.co.uk/wordpress/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on ZX Spectrum on an FPGA by Ben</title>
		<link>http://mikestirling.co.uk/zx-spectrum-on-an-fpga/comment-page-1/#comment-14969</link>
		<dc:creator>Ben</dc:creator>
		<pubDate>Sat, 24 Mar 2012 21:00:57 +0000</pubDate>
		<guid isPermaLink="false">http://mikestirling.co.uk/?page_id=173#comment-14969</guid>
		<description>Heh, having recently got a DE1 board this is quite interesting. The most annoying thing is my monitor happily displays the video output while having a big &quot;Unsupported&quot; box on the screen. My other monitor refuses to output anything. At least it works :)

I wondered, how did you get started with FPGAs, I&#039;ve spent a while messing around with other peoples projects, Zet, your two and some others but don&#039;t know where to start myself.</description>
		<content:encoded><![CDATA[<p>Heh, having recently got a DE1 board this is quite interesting. The most annoying thing is my monitor happily displays the video output while having a big &#8220;Unsupported&#8221; box on the screen. My other monitor refuses to output anything. At least it works <img src='http://mikestirling.co.uk/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>I wondered, how did you get started with FPGAs, I&#8217;ve spent a while messing around with other peoples projects, Zet, your two and some others but don&#8217;t know where to start myself.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on ZX Spectrum on an FPGA by Mike</title>
		<link>http://mikestirling.co.uk/zx-spectrum-on-an-fpga/comment-page-1/#comment-14623</link>
		<dc:creator>Mike</dc:creator>
		<pubDate>Sat, 17 Mar 2012 23:22:47 +0000</pubDate>
		<guid isPermaLink="false">http://mikestirling.co.uk/?page_id=173#comment-14623</guid>
		<description>Glad to hear you made some progress and sorry I never got chance to reply sooner.  Looking forward to seeing a write-up!  Are you loading the tzx images over a tape interface using something like playtzx or did you implement something to load them directly?</description>
		<content:encoded><![CDATA[<p>Glad to hear you made some progress and sorry I never got chance to reply sooner.  Looking forward to seeing a write-up!  Are you loading the tzx images over a tape interface using something like playtzx or did you implement something to load them directly?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on ZX Spectrum on an FPGA by Kamikadze</title>
		<link>http://mikestirling.co.uk/zx-spectrum-on-an-fpga/comment-page-1/#comment-14537</link>
		<dc:creator>Kamikadze</dc:creator>
		<pubDate>Fri, 16 Mar 2012 10:33:32 +0000</pubDate>
		<guid isPermaLink="false">http://mikestirling.co.uk/?page_id=173#comment-14537</guid>
		<description>Hello, 
it seems I&#039;ve successfully dealt with all the problems. I got almost fully working ZX Spectrum 48K emulator on Xilinx Spartan 3 board, yesterday I played Pac-Man (i use TZX tape images). Last thing missing is sound system and decoding for a few TZX ID blocks. Thank you very much for your help with T80 processor.</description>
		<content:encoded><![CDATA[<p>Hello,<br />
it seems I&#8217;ve successfully dealt with all the problems. I got almost fully working ZX Spectrum 48K emulator on Xilinx Spartan 3 board, yesterday I played Pac-Man (i use TZX tape images). Last thing missing is sound system and decoding for a few TZX ID blocks. Thank you very much for your help with T80 processor.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on ZX Spectrum on an FPGA by Kamikadze</title>
		<link>http://mikestirling.co.uk/zx-spectrum-on-an-fpga/comment-page-1/#comment-14255</link>
		<dc:creator>Kamikadze</dc:creator>
		<pubDate>Thu, 08 Mar 2012 16:49:23 +0000</pubDate>
		<guid isPermaLink="false">http://mikestirling.co.uk/?page_id=173#comment-14255</guid>
		<description>Hello,
Let me thank you once more for all your advices, I really appreciate them. I&#039;ve been working on my project for a few hours again and it seems you were right — the simulator isn&#039;t absolutely reliable and the CPU seems to run well. I found a mistake in my VGA block. I read VGA data for printing first sign when pixel_x = 0 but this state lasts for a really long time (because of synchronization). I fixed this issue and now I got to state when the screen is white and there&#039;s a black text 1982 Sinclair Research on the bottom of the screen.
If I&#039;m right the Spectrum is waiting for some key to be pressed and after that I will be able to see flashing cursor and my written text/commands. I tried to import my PS2 keyboard block but it doesn&#039;t seem to work. I have a counter running at same clock as T80 (3,5 MHz) counting to 69888 (~20 ms on 3,5 MHz clock). Then I set INT_n to 0 and wait for 32 T states. Then I raise INT_n back to 1 and count again (these numbers I read in book The ZX Spectrum ULA: How to Design a Microcomputer). So I think INT_n generator is fine and T80 should call keyboard scanning routine. I write data from keyboard to DATA_IN bus of T80 if MREQ_n = &#039;1&#039; and IORQ_n = &#039;0&#039; and RD_n = &#039;0&#039;. I&#039;m not sure if this condition is correct. The memory/PS2 keyboard block is in my opinion fine, solo it runs well both in simulation and hardware (switches = address bus, LEDs = D_IN bus).</description>
		<content:encoded><![CDATA[<p>Hello,<br />
Let me thank you once more for all your advices, I really appreciate them. I&#8217;ve been working on my project for a few hours again and it seems you were right — the simulator isn&#8217;t absolutely reliable and the CPU seems to run well. I found a mistake in my VGA block. I read VGA data for printing first sign when pixel_x = 0 but this state lasts for a really long time (because of synchronization). I fixed this issue and now I got to state when the screen is white and there&#8217;s a black text 1982 Sinclair Research on the bottom of the screen.<br />
If I&#8217;m right the Spectrum is waiting for some key to be pressed and after that I will be able to see flashing cursor and my written text/commands. I tried to import my PS2 keyboard block but it doesn&#8217;t seem to work. I have a counter running at same clock as T80 (3,5 MHz) counting to 69888 (~20 ms on 3,5 MHz clock). Then I set INT_n to 0 and wait for 32 T states. Then I raise INT_n back to 1 and count again (these numbers I read in book The ZX Spectrum ULA: How to Design a Microcomputer). So I think INT_n generator is fine and T80 should call keyboard scanning routine. I write data from keyboard to DATA_IN bus of T80 if MREQ_n = &#8217;1&#8242; and IORQ_n = &#8217;0&#8242; and RD_n = &#8217;0&#8242;. I&#8217;m not sure if this condition is correct. The memory/PS2 keyboard block is in my opinion fine, solo it runs well both in simulation and hardware (switches = address bus, LEDs = D_IN bus).</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on ZX Spectrum on an FPGA by Mike</title>
		<link>http://mikestirling.co.uk/zx-spectrum-on-an-fpga/comment-page-1/#comment-14130</link>
		<dc:creator>Mike</dc:creator>
		<pubDate>Sun, 04 Mar 2012 23:48:16 +0000</pubDate>
		<guid isPermaLink="false">http://mikestirling.co.uk/?page_id=173#comment-14130</guid>
		<description>The crazy colours thing is something I have come across, caused by a problem with the RAM timing in my case.  Are you sharing the RAM between ULA and CPU in the same way that I am (accesses on different clock phases), or do you have a different scheme?

Assuming you are using an external SRAM make sure you re-register all the control signals as well as the address bus.  I had problems where the write strobe would be skewed relative to the address, which would occasionally result in data corruption.  The skew was tiny - almost invisible on a 100 MHz scope - but enough to be a problem.  Of course this re-registration leads to an extra cycle delay, which is why I output the video address during CPU cycles and the CPU address during video cycles.  Search for &quot;Synchronous outputs to SRAM&quot; in spectrum_de1.vhd.</description>
		<content:encoded><![CDATA[<p>The crazy colours thing is something I have come across, caused by a problem with the RAM timing in my case.  Are you sharing the RAM between ULA and CPU in the same way that I am (accesses on different clock phases), or do you have a different scheme?</p>
<p>Assuming you are using an external SRAM make sure you re-register all the control signals as well as the address bus.  I had problems where the write strobe would be skewed relative to the address, which would occasionally result in data corruption.  The skew was tiny &#8211; almost invisible on a 100 MHz scope &#8211; but enough to be a problem.  Of course this re-registration leads to an extra cycle delay, which is why I output the video address during CPU cycles and the CPU address during video cycles.  Search for &#8220;Synchronous outputs to SRAM&#8221; in spectrum_de1.vhd.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

