<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-4394976507424074413</id><updated>2011-08-01T11:32:36.785-07:00</updated><category term='IRU'/><category term='RTC'/><category term='CPU'/><category term='JIU'/><category term='EE'/><category term='Music'/><category term='ALU'/><category term='Bus Pirate'/><category term='Register Controller'/><category term='Video Controller'/><category term='SD Card'/><category term='Adder'/><category term='Equipment'/><category term='SPI'/><category term='AMU'/><category term='Programming'/><category term='GUR'/><title type='text'>Jeff Hopkins</title><subtitle type='html'>If we hear, we forget; if we see, we remember; if we do, we understand.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://jeffmhopkins.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4394976507424074413/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://jeffmhopkins.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Jeff</name><uri>http://www.blogger.com/profile/04682293375463718583</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>37</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4394976507424074413.post-9105120227021710788</id><published>2010-08-29T18:27:00.001-07:00</published><updated>2010-08-29T18:28:18.191-07:00</updated><title type='text'>Transferring to my local server</title><content type='html'>&lt;a href="http://www.jeffmhopkins.com/blog.php"&gt;http://www.jeffmhopkins.com/blog.php&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4394976507424074413-9105120227021710788?l=jeffmhopkins.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffmhopkins.blogspot.com/feeds/9105120227021710788/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeffmhopkins.blogspot.com/2010/08/transferring-to-my-local-server.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4394976507424074413/posts/default/9105120227021710788'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4394976507424074413/posts/default/9105120227021710788'/><link rel='alternate' type='text/html' href='http://jeffmhopkins.blogspot.com/2010/08/transferring-to-my-local-server.html' title='Transferring to my local server'/><author><name>Jeff</name><uri>http://www.blogger.com/profile/04682293375463718583</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4394976507424074413.post-6110492434270032566</id><published>2010-08-24T22:58:00.000-07:00</published><updated>2010-08-24T22:59:56.890-07:00</updated><title type='text'>Sorry for the delay</title><content type='html'>Sorry in the delay of information, I've been away from home for the past month and was unable to complete and progress on the project. Progress will continue when time permits.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4394976507424074413-6110492434270032566?l=jeffmhopkins.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffmhopkins.blogspot.com/feeds/6110492434270032566/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeffmhopkins.blogspot.com/2010/08/sorry-for-delay.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4394976507424074413/posts/default/6110492434270032566'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4394976507424074413/posts/default/6110492434270032566'/><link rel='alternate' type='text/html' href='http://jeffmhopkins.blogspot.com/2010/08/sorry-for-delay.html' title='Sorry for the delay'/><author><name>Jeff</name><uri>http://www.blogger.com/profile/04682293375463718583</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4394976507424074413.post-5584453026953386944</id><published>2010-07-04T10:27:00.000-07:00</published><updated>2010-07-04T10:28:34.785-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SPI'/><category scheme='http://www.blogger.com/atom/ns#' term='SD Card'/><category scheme='http://www.blogger.com/atom/ns#' term='EE'/><category scheme='http://www.blogger.com/atom/ns#' term='Bus Pirate'/><title type='text'>SD Card interface</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.jeffmhopkins.com/files_media/pictures/fmcg/sd_card_interface.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 720px; height: 540px;" src="http://www.jeffmhopkins.com/files_media/pictures/fmcg/sd_card_interface.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Rigged up an SD Card socket from an IDCC Connector, and used a Bus Pirate to interface via serial commands over SPI. This gave me better understanding of SPI and how my eventual SD Card interface will work on my processor.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4394976507424074413-5584453026953386944?l=jeffmhopkins.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffmhopkins.blogspot.com/feeds/5584453026953386944/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeffmhopkins.blogspot.com/2010/07/sd-card-interface.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4394976507424074413/posts/default/5584453026953386944'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4394976507424074413/posts/default/5584453026953386944'/><link rel='alternate' type='text/html' href='http://jeffmhopkins.blogspot.com/2010/07/sd-card-interface.html' title='SD Card interface'/><author><name>Jeff</name><uri>http://www.blogger.com/profile/04682293375463718583</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4394976507424074413.post-949487399896409803</id><published>2010-06-26T21:37:00.000-07:00</published><updated>2010-06-26T21:44:42.951-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='EE'/><category scheme='http://www.blogger.com/atom/ns#' term='GUR'/><category scheme='http://www.blogger.com/atom/ns#' term='CPU'/><category scheme='http://www.blogger.com/atom/ns#' term='Register Controller'/><title type='text'>GUR  Board Complete</title><content type='html'>Not the prettiest of boards, but here is the GUR board. I used 32 gauge enameled wire instead of the ribbon cable I had been in the past. It seemed to have worked well, and I'm waiting on a couple more chips to populate the board completely, but all the traces are soldered in place.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_ZoFwIvEdS50/TCbWRoEtV-I/AAAAAAAAAew/RFDYn8UP0L0/s1600/001.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://4.bp.blogspot.com/_ZoFwIvEdS50/TCbWRoEtV-I/AAAAAAAAAew/RFDYn8UP0L0/s320/001.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5487308794300815330" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_ZoFwIvEdS50/TCbWXygz3wI/AAAAAAAAAe4/w7kpwDVgNzE/s1600/002.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://3.bp.blogspot.com/_ZoFwIvEdS50/TCbWXygz3wI/AAAAAAAAAe4/w7kpwDVgNzE/s320/002.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5487308900182253314" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4394976507424074413-949487399896409803?l=jeffmhopkins.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffmhopkins.blogspot.com/feeds/949487399896409803/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeffmhopkins.blogspot.com/2010/06/gur-board-complete.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4394976507424074413/posts/default/949487399896409803'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4394976507424074413/posts/default/949487399896409803'/><link rel='alternate' type='text/html' href='http://jeffmhopkins.blogspot.com/2010/06/gur-board-complete.html' title='GUR  Board Complete'/><author><name>Jeff</name><uri>http://www.blogger.com/profile/04682293375463718583</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_ZoFwIvEdS50/TCbWRoEtV-I/AAAAAAAAAew/RFDYn8UP0L0/s72-c/001.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4394976507424074413.post-942127975488732854</id><published>2010-06-25T04:52:00.000-07:00</published><updated>2010-06-25T04:55:09.804-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ALU'/><category scheme='http://www.blogger.com/atom/ns#' term='EE'/><category scheme='http://www.blogger.com/atom/ns#' term='GUR'/><title type='text'>Construction of the GUR</title><content type='html'>Construction of the GUR card has began, I'll post later this weekend with pictures. I've opted to go with 32 gauge coated wire instead of the 22 gauge ribbon cable as the wire on the board to conserve space, so it's a little different. &lt;br /&gt;&lt;br /&gt;I've also opted to remake the ALU with a few improvements including the decoupling capacitors and shift registers.&lt;br /&gt;&lt;br /&gt;Either way, this weekend will supply more pictures of my current progress.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4394976507424074413-942127975488732854?l=jeffmhopkins.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffmhopkins.blogspot.com/feeds/942127975488732854/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeffmhopkins.blogspot.com/2010/06/construction-of-gur.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4394976507424074413/posts/default/942127975488732854'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4394976507424074413/posts/default/942127975488732854'/><link rel='alternate' type='text/html' href='http://jeffmhopkins.blogspot.com/2010/06/construction-of-gur.html' title='Construction of the GUR'/><author><name>Jeff</name><uri>http://www.blogger.com/profile/04682293375463718583</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4394976507424074413.post-4326472962798040181</id><published>2010-06-09T17:47:00.000-07:00</published><updated>2010-06-09T18:25:22.033-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Video Controller'/><category scheme='http://www.blogger.com/atom/ns#' term='EE'/><category scheme='http://www.blogger.com/atom/ns#' term='CPU'/><title type='text'>Video Controller - 8-bit Color</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_ZoFwIvEdS50/TBA7oi8UtVI/AAAAAAAAAeo/SxJasxR_BVI/s1600/VideoCard.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 222px; height: 320px;" src="http://1.bp.blogspot.com/_ZoFwIvEdS50/TBA7oi8UtVI/AAAAAAAAAeo/SxJasxR_BVI/s320/VideoCard.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5480946314270520658" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This is the new diagram for the Video Controller. It is an 8-bit true-color 80x30 character generator, with 256 stored characters in the Text PROM and 256 colors formed from the color memory (each character can have a color, or easily extended to two colors FG and BG by adding an additional Color Memory bank and a NAND from the mux).&lt;br /&gt;&lt;br /&gt;The VGA Screen Resolution is 640x480 with each character being 8x16.&lt;br /&gt;&lt;br /&gt;See &lt;a href="http://jeffmhopkins.blogspot.com/2010/02/register-controller-and-video.html"&gt;the monochrome version&lt;/a&gt; for some more infor about the vsync and how the character prom and such works.&lt;br /&gt;&lt;br /&gt;See &lt;a href="http://faculty.lasierra.edu/~ehwang/public/mypublications/VGA%20Monitor%20Controller.pdf"&gt;this pdf file&lt;/a&gt; for detailed operations of vga timing and simple vga circuits.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4394976507424074413-4326472962798040181?l=jeffmhopkins.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffmhopkins.blogspot.com/feeds/4326472962798040181/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeffmhopkins.blogspot.com/2010/06/video-controller-8-bit-color.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4394976507424074413/posts/default/4326472962798040181'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4394976507424074413/posts/default/4326472962798040181'/><link rel='alternate' type='text/html' href='http://jeffmhopkins.blogspot.com/2010/06/video-controller-8-bit-color.html' title='Video Controller - 8-bit Color'/><author><name>Jeff</name><uri>http://www.blogger.com/profile/04682293375463718583</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_ZoFwIvEdS50/TBA7oi8UtVI/AAAAAAAAAeo/SxJasxR_BVI/s72-c/VideoCard.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4394976507424074413.post-1047128380777982188</id><published>2010-06-05T15:51:00.000-07:00</published><updated>2010-06-05T15:53:56.324-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Equipment'/><category scheme='http://www.blogger.com/atom/ns#' term='EE'/><title type='text'>PLCC to PDIP Converter</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_ZoFwIvEdS50/TArVBRj5T5I/AAAAAAAAAeY/dMUkT2TkVB0/s1600/test.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://3.bp.blogspot.com/_ZoFwIvEdS50/TArVBRj5T5I/AAAAAAAAAeY/dMUkT2TkVB0/s320/test.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5479426114520174482" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_ZoFwIvEdS50/TArVcvk8rEI/AAAAAAAAAeg/oAYT0jGCMBg/s1600/test2.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://3.bp.blogspot.com/_ZoFwIvEdS50/TArVcvk8rEI/AAAAAAAAAeg/oAYT0jGCMBg/s320/test2.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5479426586434120770" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;So I strayed a little and purchased PLCC packaged flashes instead of PDIP, so I wired up a converter for my programmer....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4394976507424074413-1047128380777982188?l=jeffmhopkins.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffmhopkins.blogspot.com/feeds/1047128380777982188/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeffmhopkins.blogspot.com/2010/06/plcc-to-pdip-converter.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4394976507424074413/posts/default/1047128380777982188'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4394976507424074413/posts/default/1047128380777982188'/><link rel='alternate' type='text/html' href='http://jeffmhopkins.blogspot.com/2010/06/plcc-to-pdip-converter.html' title='PLCC to PDIP Converter'/><author><name>Jeff</name><uri>http://www.blogger.com/profile/04682293375463718583</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_ZoFwIvEdS50/TArVBRj5T5I/AAAAAAAAAeY/dMUkT2TkVB0/s72-c/test.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4394976507424074413.post-4172788761737108574</id><published>2010-05-31T18:05:00.000-07:00</published><updated>2010-05-31T18:26:12.928-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JIU'/><category scheme='http://www.blogger.com/atom/ns#' term='EE'/><category scheme='http://www.blogger.com/atom/ns#' term='CPU'/><category scheme='http://www.blogger.com/atom/ns#' term='IRU'/><title type='text'>IRU - Interrupt Request Unit</title><content type='html'>The Interrupt Request Unit is located between the JIU and the actual memory itself. There is a 7-bit interrupt bus, a 1-bit interrupt request signal line, and a 1-bit interrupt complete line. The seven bits allow for a possible 128 interrupts without inherit priority. &lt;br /&gt;&lt;br /&gt;A device would first check and see if the interrupt request signal line is high, if so pulls it low to tell the IRU there is an interrupt while simultaneously placing it's interrupt code on the interrupt bus. At this point the IRU overwrites the JIU's PC location with a $FF00 - $FFFE location. At this point two instructions based off of the 7-bit interrupt code is created.&lt;br /&gt;&lt;br /&gt;If there is no handling code for the interrupt there will be a NOP(IR.C) and JMP(-2) command, placing the PC to the previous location and clearing the interrupt request line. If a subroutine needs to be called, a PUT($23, SUR.JumpHigh) and JMP($00) will jump to $2300 as a subroutine. SUR.E and SUR.F will be clocked with the old PC's location so that it may be JMP'd to at the return of the interrupt. When ending the subroutine a NOP(Int.C) and a JMP($NN) will return it the previous location. The NOP(IR.C) command puts the clear interrupt line into an active state, but delayed one instruction so the JMP command can be performed before another interrupt can be initiated.&lt;br /&gt;&lt;br /&gt;With how the NOP(IR.C) command works it becomes possible to perform Nested interrupts by manually moving around the stored PC locations to a vectored table. This would allow for instance a real time clock to still tick while performing a lengthy subroutine in another interrupt. Generally speaking though, the interrupts should be short: real time clock, keyboard press, etc...&lt;br /&gt;&lt;br /&gt;Schematics will follow later...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4394976507424074413-4172788761737108574?l=jeffmhopkins.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffmhopkins.blogspot.com/feeds/4172788761737108574/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeffmhopkins.blogspot.com/2010/05/iru-interrupt-request-unit.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4394976507424074413/posts/default/4172788761737108574'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4394976507424074413/posts/default/4172788761737108574'/><link rel='alternate' type='text/html' href='http://jeffmhopkins.blogspot.com/2010/05/iru-interrupt-request-unit.html' title='IRU - Interrupt Request Unit'/><author><name>Jeff</name><uri>http://www.blogger.com/profile/04682293375463718583</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4394976507424074413.post-1163710398942158225</id><published>2010-05-22T16:40:00.000-07:00</published><updated>2010-05-22T16:44:46.645-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='EE'/><category scheme='http://www.blogger.com/atom/ns#' term='CPU'/><category scheme='http://www.blogger.com/atom/ns#' term='AMU'/><title type='text'>Addressing Mode Units</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_ZoFwIvEdS50/S_hrnSCppvI/AAAAAAAAAeQ/9v_0hUXyPhA/s1600/AMU.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 245px;" src="http://1.bp.blogspot.com/_ZoFwIvEdS50/S_hrnSCppvI/AAAAAAAAAeQ/9v_0hUXyPhA/s320/AMU.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5474243669670864626" /&gt;&lt;/a&gt;&lt;br /&gt;These units are what control the 24-bit address bus for RAM and the external bus. There are two of these units in the processor, allowing for simultaneous use of two addressing modes, to be used in separate LOD and STO instructions. Provides access to arrays of 512 bytes without the use of additional algorithms.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4394976507424074413-1163710398942158225?l=jeffmhopkins.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffmhopkins.blogspot.com/feeds/1163710398942158225/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeffmhopkins.blogspot.com/2010/05/addressing-mode-units.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4394976507424074413/posts/default/1163710398942158225'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4394976507424074413/posts/default/1163710398942158225'/><link rel='alternate' type='text/html' href='http://jeffmhopkins.blogspot.com/2010/05/addressing-mode-units.html' title='Addressing Mode Units'/><author><name>Jeff</name><uri>http://www.blogger.com/profile/04682293375463718583</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_ZoFwIvEdS50/S_hrnSCppvI/AAAAAAAAAeQ/9v_0hUXyPhA/s72-c/AMU.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4394976507424074413.post-4129584470218662115</id><published>2010-05-14T15:32:00.001-07:00</published><updated>2010-05-14T15:36:29.080-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Equipment'/><category scheme='http://www.blogger.com/atom/ns#' term='EE'/><title type='text'>DC Power Supply and Frequency Generator / Counter</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_ZoFwIvEdS50/S-3Pmhu3DoI/AAAAAAAAAeI/Cgb0VgtCwKk/s1600/table.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://1.bp.blogspot.com/_ZoFwIvEdS50/S-3Pmhu3DoI/AAAAAAAAAeI/Cgb0VgtCwKk/s320/table.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5471257383121915522" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Finally my DC Power Supply and Frequency Generator / Counter arrived. This pretty much completes all of my hobby bench equipment. Soldering / SMD Rework station, Multimeter, Function Generator/Counter, and a USB based Oscilloscope/Spectrum Analyzer/Logic Analyzer.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4394976507424074413-4129584470218662115?l=jeffmhopkins.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffmhopkins.blogspot.com/feeds/4129584470218662115/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeffmhopkins.blogspot.com/2010/05/dc-power-supply-and-frequency-generator.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4394976507424074413/posts/default/4129584470218662115'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4394976507424074413/posts/default/4129584470218662115'/><link rel='alternate' type='text/html' href='http://jeffmhopkins.blogspot.com/2010/05/dc-power-supply-and-frequency-generator.html' title='DC Power Supply and Frequency Generator / Counter'/><author><name>Jeff</name><uri>http://www.blogger.com/profile/04682293375463718583</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_ZoFwIvEdS50/S-3Pmhu3DoI/AAAAAAAAAeI/Cgb0VgtCwKk/s72-c/table.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4394976507424074413.post-1817563075684040794</id><published>2010-05-12T18:39:00.000-07:00</published><updated>2010-05-12T18:41:06.448-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='EE'/><category scheme='http://www.blogger.com/atom/ns#' term='CPU'/><category scheme='http://www.blogger.com/atom/ns#' term='Adder'/><title type='text'>Adder</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_ZoFwIvEdS50/S-tYm4hxaSI/AAAAAAAAAeA/OI-TZel6u1w/s1600/Adder.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 242px;" src="http://2.bp.blogspot.com/_ZoFwIvEdS50/S-tYm4hxaSI/AAAAAAAAAeA/OI-TZel6u1w/s320/Adder.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5470563597403908386" /&gt;&lt;/a&gt;&lt;br /&gt;This is probably the most simple unit of the processor, used for register index and memory offsets or as a general use up counter.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4394976507424074413-1817563075684040794?l=jeffmhopkins.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffmhopkins.blogspot.com/feeds/1817563075684040794/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeffmhopkins.blogspot.com/2010/05/adder.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4394976507424074413/posts/default/1817563075684040794'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4394976507424074413/posts/default/1817563075684040794'/><link rel='alternate' type='text/html' href='http://jeffmhopkins.blogspot.com/2010/05/adder.html' title='Adder'/><author><name>Jeff</name><uri>http://www.blogger.com/profile/04682293375463718583</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_ZoFwIvEdS50/S-tYm4hxaSI/AAAAAAAAAeA/OI-TZel6u1w/s72-c/Adder.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4394976507424074413.post-6762668290766862243</id><published>2010-05-09T15:09:00.000-07:00</published><updated>2010-05-09T15:10:47.776-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JIU'/><category scheme='http://www.blogger.com/atom/ns#' term='EE'/><category scheme='http://www.blogger.com/atom/ns#' term='CPU'/><title type='text'>JIU</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_ZoFwIvEdS50/S-cy1enuP8I/AAAAAAAAAd4/El2TWFQIy9g/s1600/JIU_2.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 245px;" src="http://1.bp.blogspot.com/_ZoFwIvEdS50/S-cy1enuP8I/AAAAAAAAAd4/El2TWFQIy9g/s320/JIU_2.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5469396166798884802" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4394976507424074413-6762668290766862243?l=jeffmhopkins.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffmhopkins.blogspot.com/feeds/6762668290766862243/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeffmhopkins.blogspot.com/2010/05/jiu.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4394976507424074413/posts/default/6762668290766862243'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4394976507424074413/posts/default/6762668290766862243'/><link rel='alternate' type='text/html' href='http://jeffmhopkins.blogspot.com/2010/05/jiu.html' title='JIU'/><author><name>Jeff</name><uri>http://www.blogger.com/profile/04682293375463718583</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_ZoFwIvEdS50/S-cy1enuP8I/AAAAAAAAAd4/El2TWFQIy9g/s72-c/JIU_2.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4394976507424074413.post-2199383047618644297</id><published>2010-04-26T15:13:00.000-07:00</published><updated>2010-05-22T17:17:27.792-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='CPU'/><title type='text'>New Instruction Set Complete</title><content type='html'>There are now six instructions: PUT, MOV, LOD, STO, JMP and NOP.&lt;br /&gt;&lt;code&gt;&lt;br /&gt;PUT 000.T.DDDDDDDD.RRRR&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;T - Register Type (0 = GUR, 1 = SUR)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;D - Data&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;R - Register Number&lt;br /&gt;MOV 001.XXX.S.D.RRRR.RRRR&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;S - Source Register Type&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;D - Destination Register Type&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;R - Source Register Number&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;R - Destination Register Number&lt;br /&gt;LOD 01.M.T.AAAAAAAA.RRRR&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;M - Mode (0 = AM0, 1 = AM1)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;T - Register Type (0 = GUR, 1 = SUR)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;A - Address Low Byte&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;R - Register Number&lt;br /&gt;STO 10.M.T.AAAAAAAA.RRRR&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;M - Mode (0 = AM0, 1 = AM1)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;T - Register Type (0 = GUR, 1 = SUR)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;A - Address Low Byte&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;R - Register Number&lt;br /&gt;JMP 110.M.AAAAAAAA.S.O.CC&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;M - Mode (0 = Absolute, 1 = Relative to PC)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;A - Address Low Byte&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;S - Address Source (0 = Adder.Result, 1 = Operand)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;O - Operation (0 = PC + S, 1 = PC -S)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;C - Condition (00 = Always, 01 = A &gt; B, 10 = A &lt; B, 11 = Equal)&lt;br /&gt;NOP 111.XXXXXXXXXXXXX&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4394976507424074413-2199383047618644297?l=jeffmhopkins.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffmhopkins.blogspot.com/feeds/2199383047618644297/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeffmhopkins.blogspot.com/2010/04/new-instruction-set-complete.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4394976507424074413/posts/default/2199383047618644297'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4394976507424074413/posts/default/2199383047618644297'/><link rel='alternate' type='text/html' href='http://jeffmhopkins.blogspot.com/2010/04/new-instruction-set-complete.html' title='New Instruction Set Complete'/><author><name>Jeff</name><uri>http://www.blogger.com/profile/04682293375463718583</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4394976507424074413.post-1715566515055610471</id><published>2010-04-25T16:41:00.000-07:00</published><updated>2010-04-25T16:45:42.262-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='CPU'/><title type='text'>Example 16-bit math</title><content type='html'>This take two 16-bit numbers from GUR.0/1 and GUR.2/3 and leaves the answer in GUR.4/5. Also gives an example of function calling, making this code reusable anywhere in the program.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;16-bit Addition Algo&lt;br /&gt;&lt;br /&gt;function add([GUR.0, GUR.1], [GUR.2, GUR.3]) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//Return PC Address to [GUR.E, GUR.F]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;GUR.4 = GUR.0 + GUR.2;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if(ALU.CarryOut) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;GUR.5 = GUR.1 + GUR.3 + 1;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} else {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pGUR.5 = GUR.1 + GUR.3;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return [GUR.4, GUR.5];&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;::FROM PROGRAM 0x3AA2 (15,010) + 0x40D1 (16,417), Returns 0x7B73 (31,603)&lt;br /&gt;PUT(3A, GUR.0);&lt;br /&gt;PUT(A2, GUR.1);&lt;br /&gt;PUT(40, GUR.2);&lt;br /&gt;PUT(D1, GUR.3);&lt;br /&gt;MOV(SUR.E, GUR.E);&lt;br /&gt;MOV(SUR.F, GUR.F);&lt;br /&gt;JMP(10, ::ADD);&lt;br /&gt;::ADD SUBROUTINE&lt;br /&gt;MOV(GUR.0, SUR.0);&lt;br /&gt;MOV(GUR.2, SUR.1);&lt;br /&gt;PUT(0, SUR.2);&lt;br /&gt;MOV(SUR.0, GUR.4);&lt;br /&gt;MOV(SUR.1, SUR.C);&lt;br /&gt;PUT(1, SUR.D);&lt;br /&gt;MOV(GUR.1, SUR.0);&lt;br /&gt;MOV(GUR.3, SUR.1);&lt;br /&gt;JMP(6, 2);&lt;br /&gt;PUT(1, SUR.2);&lt;br /&gt;MOV(SUR.0, GUR.5);&lt;br /&gt;MOV(GUR.F, SUR.B);&lt;br /&gt;MOV(GUR.E, SUR.3);&lt;br /&gt;PUT(3, SUR.4);&lt;br /&gt;JMP(8);&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4394976507424074413-1715566515055610471?l=jeffmhopkins.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffmhopkins.blogspot.com/feeds/1715566515055610471/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeffmhopkins.blogspot.com/2010/04/example-16-bit-math.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4394976507424074413/posts/default/1715566515055610471'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4394976507424074413/posts/default/1715566515055610471'/><link rel='alternate' type='text/html' href='http://jeffmhopkins.blogspot.com/2010/04/example-16-bit-math.html' title='Example 16-bit math'/><author><name>Jeff</name><uri>http://www.blogger.com/profile/04682293375463718583</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4394976507424074413.post-4653513088639225487</id><published>2010-04-25T16:36:00.000-07:00</published><updated>2010-04-25T16:40:47.357-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='EE'/><category scheme='http://www.blogger.com/atom/ns#' term='CPU'/><title type='text'>Organized Parts and Mounting Solution</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_ZoFwIvEdS50/S9TSQ6GjL8I/AAAAAAAAAdo/Y0GaGkbeeyc/s1600/16APR2010_001.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://1.bp.blogspot.com/_ZoFwIvEdS50/S9TSQ6GjL8I/AAAAAAAAAdo/Y0GaGkbeeyc/s320/16APR2010_001.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5464223435823722434" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_ZoFwIvEdS50/S9TSkuk2bsI/AAAAAAAAAdw/vvDlfbA6CA4/s1600/DSCF0187.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 240px; height: 320px;" src="http://3.bp.blogspot.com/_ZoFwIvEdS50/S9TSkuk2bsI/AAAAAAAAAdw/vvDlfbA6CA4/s320/DSCF0187.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5464223776326971074" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;A total of about ten PCB cards will be mounted with all-thread and nuts.... making a kind of tower of protoboard, should make the eventual construction of a case easy. All the buses will run along the sides of each board.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4394976507424074413-4653513088639225487?l=jeffmhopkins.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffmhopkins.blogspot.com/feeds/4653513088639225487/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeffmhopkins.blogspot.com/2010/04/organized-parts-and-mounting-solution.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4394976507424074413/posts/default/4653513088639225487'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4394976507424074413/posts/default/4653513088639225487'/><link rel='alternate' type='text/html' href='http://jeffmhopkins.blogspot.com/2010/04/organized-parts-and-mounting-solution.html' title='Organized Parts and Mounting Solution'/><author><name>Jeff</name><uri>http://www.blogger.com/profile/04682293375463718583</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_ZoFwIvEdS50/S9TSQ6GjL8I/AAAAAAAAAdo/Y0GaGkbeeyc/s72-c/16APR2010_001.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4394976507424074413.post-2078121514715935558</id><published>2010-04-16T12:00:00.001-07:00</published><updated>2010-04-16T12:02:31.789-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='EE'/><title type='text'>The Parts</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_ZoFwIvEdS50/S8izz2PXjpI/AAAAAAAAAdg/EEsRMqBrqIE/s1600/DSCF0186.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://1.bp.blogspot.com/_ZoFwIvEdS50/S8izz2PXjpI/AAAAAAAAAdg/EEsRMqBrqIE/s320/DSCF0186.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5460812251501399698" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Almost everything I could ever ask for as far as component parts. Transistors, resistors, diodes, LEDs, linear voltage ICs, sockets, ribbon cable, IDC sockets/connectors, and a good collection of the 74HC/AHC family ICs. Yay!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4394976507424074413-2078121514715935558?l=jeffmhopkins.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffmhopkins.blogspot.com/feeds/2078121514715935558/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeffmhopkins.blogspot.com/2010/04/parts.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4394976507424074413/posts/default/2078121514715935558'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4394976507424074413/posts/default/2078121514715935558'/><link rel='alternate' type='text/html' href='http://jeffmhopkins.blogspot.com/2010/04/parts.html' title='The Parts'/><author><name>Jeff</name><uri>http://www.blogger.com/profile/04682293375463718583</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_ZoFwIvEdS50/S8izz2PXjpI/AAAAAAAAAdg/EEsRMqBrqIE/s72-c/DSCF0186.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4394976507424074413.post-7907452595995244479</id><published>2010-04-11T16:56:00.000-07:00</published><updated>2010-04-12T16:45:00.685-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='EE'/><title type='text'>Update</title><content type='html'>It's been a while since I've posted an update. The reason is that I'm still waiting on some of my component parts. A rather large order from Futurlec has had some things on backorder, but should ship by the 25th. Same with some of my test equipment. It's on backorder till they get their shipment in. I do eagerly await the DC power supply and function generator. I'll pretty much be all set up for any prototyping I want to do.&lt;br /&gt;&lt;br /&gt;All in all I will have a Variable DC Power supply (0-20V, 0-5A), Function Generator (TTL, CMOS, Sine, Triangle, Square, 0-2MHz), Digital Oscilloscope + Logic Analyzer + Pattern Generator, Multimeter (Generic), Capacitance Meter (DIY kit), Soldering Station with hot-air rework, a couple of BS2 micro-controllers, and an Atmega168.&lt;br /&gt;&lt;br /&gt;As far as component parts go I'll have pretty much all the 74HC/AHC series ICs I need (along with a plethora of sockets), various special ICs such as DACs and ROMs, resistors/capacitors/transistors/diodes like crazy, various LEDs, LED Displays, Matrix Displays, lots of ribbon cable and hook-up wire, switches, sockets, a ton of PCB proto boards, and my trusty HP48GX calculator (reverse polish notation fun).&lt;br /&gt;&lt;br /&gt;UPDATE: 12APR2010 - My large order of component parts were just shipped from Hong-Kong... about time.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4394976507424074413-7907452595995244479?l=jeffmhopkins.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffmhopkins.blogspot.com/feeds/7907452595995244479/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeffmhopkins.blogspot.com/2010/04/update.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4394976507424074413/posts/default/7907452595995244479'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4394976507424074413/posts/default/7907452595995244479'/><link rel='alternate' type='text/html' href='http://jeffmhopkins.blogspot.com/2010/04/update.html' title='Update'/><author><name>Jeff</name><uri>http://www.blogger.com/profile/04682293375463718583</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4394976507424074413.post-3256167567563590770</id><published>2010-03-31T15:11:00.000-07:00</published><updated>2010-03-31T15:14:55.475-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ALU'/><category scheme='http://www.blogger.com/atom/ns#' term='EE'/><category scheme='http://www.blogger.com/atom/ns#' term='CPU'/><title type='text'>Testing propagation delay</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_ZoFwIvEdS50/S7PIzVN7YZI/AAAAAAAAAcQ/w13ZwtC4HNs/s1600/26372_1375405952668_1457419766_979841_3814965_n.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://2.bp.blogspot.com/_ZoFwIvEdS50/S7PIzVN7YZI/AAAAAAAAAcQ/w13ZwtC4HNs/s320/26372_1375405952668_1457419766_979841_3814965_n.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5454924357870248338" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_ZoFwIvEdS50/S7PI2RRuZlI/AAAAAAAAAcY/zFu96Lf4QTg/s1600/zxc.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 180px;" src="http://1.bp.blogspot.com/_ZoFwIvEdS50/S7PI2RRuZlI/AAAAAAAAAcY/zFu96Lf4QTg/s320/zxc.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5454924408352040530" /&gt;&lt;/a&gt;Finally received my oscilloscope / logic analyzer. Hooked it up to the ALU, and it has a maximum propagation delay of 65ns, giving it a parallel computation speed of 15.38MHz. Couldn't ask for more!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4394976507424074413-3256167567563590770?l=jeffmhopkins.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffmhopkins.blogspot.com/feeds/3256167567563590770/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeffmhopkins.blogspot.com/2010/03/testing-propagation-delay.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4394976507424074413/posts/default/3256167567563590770'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4394976507424074413/posts/default/3256167567563590770'/><link rel='alternate' type='text/html' href='http://jeffmhopkins.blogspot.com/2010/03/testing-propagation-delay.html' title='Testing propagation delay'/><author><name>Jeff</name><uri>http://www.blogger.com/profile/04682293375463718583</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_ZoFwIvEdS50/S7PIzVN7YZI/AAAAAAAAAcQ/w13ZwtC4HNs/s72-c/26372_1375405952668_1457419766_979841_3814965_n.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4394976507424074413.post-7060525177218145905</id><published>2010-03-24T17:22:00.000-07:00</published><updated>2010-03-26T14:06:22.430-07:00</updated><title type='text'>Oscilloscope and Component Parts</title><content type='html'>Shipping right now is a MSO-19, a 2GSa/s oscilloscope, 200MSa/s logic analyzer, and 100MSa/s pattern generator. Puts me into the realm of a more serious hobbyist. &lt;br /&gt;&lt;br /&gt;On top of that I went and purchased a large supply of component parts, 10-20 of all the common 74HC/AHC series, IC sockets, LEDs, and Proto Boards. This will enable me to complete most projects without ordering more parts and waiting for shipping.&lt;br /&gt;&lt;br /&gt;Now all I need to do is stock up on solder....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4394976507424074413-7060525177218145905?l=jeffmhopkins.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffmhopkins.blogspot.com/feeds/7060525177218145905/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeffmhopkins.blogspot.com/2010/03/oscilloscope-and-component-parts.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4394976507424074413/posts/default/7060525177218145905'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4394976507424074413/posts/default/7060525177218145905'/><link rel='alternate' type='text/html' href='http://jeffmhopkins.blogspot.com/2010/03/oscilloscope-and-component-parts.html' title='Oscilloscope and Component Parts'/><author><name>Jeff</name><uri>http://www.blogger.com/profile/04682293375463718583</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4394976507424074413.post-6437081975433797436</id><published>2010-03-06T10:22:00.000-08:00</published><updated>2010-03-06T19:04:52.801-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CPU'/><category scheme='http://www.blogger.com/atom/ns#' term='RTC'/><title type='text'>Real Time Clock + SRAM</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_ZoFwIvEdS50/S5KhA2kGqwI/AAAAAAAAAbc/koj15B2le8g/s1600-h/M48T02-150PC1.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:left;cursor:pointer; cursor:hand;width: 160px; height: 160px;" src="http://2.bp.blogspot.com/_ZoFwIvEdS50/S5KhA2kGqwI/AAAAAAAAAbc/koj15B2le8g/s320/M48T02-150PC1.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5445591935463369474" /&gt;&lt;/a&gt;&lt;br /&gt;Yesterday I was gifted with two "lithium battery packs" in chip form. I found the datasheet for these M48T59Y-70PC1s and found out that they are real time clocks with 8kb of SRAM built in. My idea is to have this chip hold the clock, and useful system settings. It also has an alarm function built in which I can probably interface to turn the system on when set.&lt;br /&gt;&lt;br /&gt;It will be included into the address space as IO under $0900000 - $090FFFF, and an IRQ of 0.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4394976507424074413-6437081975433797436?l=jeffmhopkins.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffmhopkins.blogspot.com/feeds/6437081975433797436/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeffmhopkins.blogspot.com/2010/03/real-time-clock-sram.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4394976507424074413/posts/default/6437081975433797436'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4394976507424074413/posts/default/6437081975433797436'/><link rel='alternate' type='text/html' href='http://jeffmhopkins.blogspot.com/2010/03/real-time-clock-sram.html' title='Real Time Clock + SRAM'/><author><name>Jeff</name><uri>http://www.blogger.com/profile/04682293375463718583</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_ZoFwIvEdS50/S5KhA2kGqwI/AAAAAAAAAbc/koj15B2le8g/s72-c/M48T02-150PC1.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4394976507424074413.post-7686718474215215771</id><published>2010-03-06T10:15:00.000-08:00</published><updated>2010-03-06T19:01:11.733-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JIU'/><category scheme='http://www.blogger.com/atom/ns#' term='EE'/><category scheme='http://www.blogger.com/atom/ns#' term='CPU'/><title type='text'>Jump / Increment Unit</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_ZoFwIvEdS50/S5MWxgLEsrI/AAAAAAAAAcE/nU0jelG6IPI/s1600-h/JIU.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 245px;" src="http://4.bp.blogspot.com/_ZoFwIvEdS50/S5MWxgLEsrI/AAAAAAAAAcE/nU0jelG6IPI/s320/JIU.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5445721414126842546" /&gt;&lt;/a&gt;&lt;div style="text-align: left;"&gt;Schematic for the JIU. This unit handles the standard plus one to the program counter, and also handles the jump / branch command. Conditional jumps can be handles with greater than, less than, and equal conditions. Forward and backward relative and absolute jumps are also handled in this unit.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4394976507424074413-7686718474215215771?l=jeffmhopkins.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffmhopkins.blogspot.com/feeds/7686718474215215771/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeffmhopkins.blogspot.com/2010/03/jump-increment-unit.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4394976507424074413/posts/default/7686718474215215771'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4394976507424074413/posts/default/7686718474215215771'/><link rel='alternate' type='text/html' href='http://jeffmhopkins.blogspot.com/2010/03/jump-increment-unit.html' title='Jump / Increment Unit'/><author><name>Jeff</name><uri>http://www.blogger.com/profile/04682293375463718583</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_ZoFwIvEdS50/S5MWxgLEsrI/AAAAAAAAAcE/nU0jelG6IPI/s72-c/JIU.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4394976507424074413.post-3530702361732694665</id><published>2010-03-04T07:44:00.001-08:00</published><updated>2010-03-04T07:50:23.653-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='EE'/><category scheme='http://www.blogger.com/atom/ns#' term='GUR'/><category scheme='http://www.blogger.com/atom/ns#' term='CPU'/><title type='text'>Complete GUR Schematic</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_ZoFwIvEdS50/S4_WukUEpLI/AAAAAAAAAa8/WxsHTrK8cPc/s1600-h/GUR.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 245px;" src="http://4.bp.blogspot.com/_ZoFwIvEdS50/S4_WukUEpLI/AAAAAAAAAa8/WxsHTrK8cPc/s320/GUR.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5444806570024412338" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;Pretty nice and simple. There are 16 8-bit general use registers. Databus for in/out, Register Select Bus from CU for register selection, and two control lines with active low inputs.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4394976507424074413-3530702361732694665?l=jeffmhopkins.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffmhopkins.blogspot.com/feeds/3530702361732694665/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeffmhopkins.blogspot.com/2010/03/complete-gur-schematic.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4394976507424074413/posts/default/3530702361732694665'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4394976507424074413/posts/default/3530702361732694665'/><link rel='alternate' type='text/html' href='http://jeffmhopkins.blogspot.com/2010/03/complete-gur-schematic.html' title='Complete GUR Schematic'/><author><name>Jeff</name><uri>http://www.blogger.com/profile/04682293375463718583</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_ZoFwIvEdS50/S4_WukUEpLI/AAAAAAAAAa8/WxsHTrK8cPc/s72-c/GUR.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4394976507424074413.post-6892766563360128309</id><published>2010-02-27T17:50:00.000-08:00</published><updated>2010-02-27T19:34:25.660-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Music'/><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><title type='text'>MIDI Keyboard Download</title><content type='html'>&lt;a href="https://docs.google.com/leaf?id=0ByUEkb0cIAHnZmE4MGQzZmItNDc4ZS00YjVkLWE3MzgtZjQyM2MyZTRkYzE0&amp;hl=en"&gt;Midi Keyboard v3.1 (Unfinished)&lt;/a&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Here's what Midi Keyboard looks like right now. It works, but the event viewer doesn't and some computers have a render bug. To fix the render bug goto preferences and select "Bufferstrategy Render" &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;NOTE: You must have java installed to run. If you do not have the SDK installed you might have to manually load the soundbank. THIS IS NOT THE FINAL VERSION. So if some things don't work right now, they don't work. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Things you should do: Make sure audio is working (keyboard starts at "C" and "Q"). Load a MIDI file into the playlist (Some are included). Enable chord analysis on MIDI playback (make sure all channels are being analyzed). &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If you have any questions or comments let me know, and I might be able to help. But like I said, there is still more work to be done, I just wanted this out there for now.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4394976507424074413-6892766563360128309?l=jeffmhopkins.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffmhopkins.blogspot.com/feeds/6892766563360128309/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeffmhopkins.blogspot.com/2010/02/midi-keyboard-download.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4394976507424074413/posts/default/6892766563360128309'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4394976507424074413/posts/default/6892766563360128309'/><link rel='alternate' type='text/html' href='http://jeffmhopkins.blogspot.com/2010/02/midi-keyboard-download.html' title='MIDI Keyboard Download'/><author><name>Jeff</name><uri>http://www.blogger.com/profile/04682293375463718583</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4394976507424074413.post-7772246704940669609</id><published>2010-02-27T16:14:00.000-08:00</published><updated>2010-02-27T18:15:06.782-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ALU'/><category scheme='http://www.blogger.com/atom/ns#' term='EE'/><category scheme='http://www.blogger.com/atom/ns#' term='CPU'/><title type='text'>Final ALU Schematic</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_ZoFwIvEdS50/S4nRmxdoilI/AAAAAAAAAao/wHZn5WV8XBE/s1600-h/ALU.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 245px;" src="http://3.bp.blogspot.com/_ZoFwIvEdS50/S4nRmxdoilI/AAAAAAAAAao/wHZn5WV8XBE/s320/ALU.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5443112088696818258" /&gt;&lt;/a&gt;Final ALU Schematic. All chips are labeled correctly and added is a magnitude comparator and shift functions.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4394976507424074413-7772246704940669609?l=jeffmhopkins.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffmhopkins.blogspot.com/feeds/7772246704940669609/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeffmhopkins.blogspot.com/2010/02/final-alu-schematic.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4394976507424074413/posts/default/7772246704940669609'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4394976507424074413/posts/default/7772246704940669609'/><link rel='alternate' type='text/html' href='http://jeffmhopkins.blogspot.com/2010/02/final-alu-schematic.html' title='Final ALU Schematic'/><author><name>Jeff</name><uri>http://www.blogger.com/profile/04682293375463718583</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_ZoFwIvEdS50/S4nRmxdoilI/AAAAAAAAAao/wHZn5WV8XBE/s72-c/ALU.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4394976507424074413.post-8040999477908808228</id><published>2010-02-14T21:24:00.000-08:00</published><updated>2010-02-15T00:38:31.920-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='EE'/><category scheme='http://www.blogger.com/atom/ns#' term='CPU'/><title type='text'>PC and Jump Options</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_ZoFwIvEdS50/S3jXbiNcfAI/AAAAAAAAAYs/IjTdqZfnXfc/s1600-h/PC.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 234px;" src="http://1.bp.blogspot.com/_ZoFwIvEdS50/S3jXbiNcfAI/AAAAAAAAAYs/IjTdqZfnXfc/s320/PC.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5438333418089511938" /&gt;&lt;/a&gt;&lt;br /&gt;This is the block diagram for the PC. Should be pretty self explanatory. All the MUXs are controlled via control line for the control unit. The SUM adder can also subtract via the control lines (A+!B+1) for backwards relative jumps.&lt;br /&gt;&lt;br /&gt;PC++, Jump from instruction, relative jump from PC, or goto 0.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4394976507424074413-8040999477908808228?l=jeffmhopkins.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffmhopkins.blogspot.com/feeds/8040999477908808228/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeffmhopkins.blogspot.com/2010/02/pc-and-jump-options.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4394976507424074413/posts/default/8040999477908808228'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4394976507424074413/posts/default/8040999477908808228'/><link rel='alternate' type='text/html' href='http://jeffmhopkins.blogspot.com/2010/02/pc-and-jump-options.html' title='PC and Jump Options'/><author><name>Jeff</name><uri>http://www.blogger.com/profile/04682293375463718583</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_ZoFwIvEdS50/S3jXbiNcfAI/AAAAAAAAAYs/IjTdqZfnXfc/s72-c/PC.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4394976507424074413.post-1274652075134124927</id><published>2010-02-14T15:34:00.000-08:00</published><updated>2010-03-04T07:47:54.383-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Video Controller'/><category scheme='http://www.blogger.com/atom/ns#' term='EE'/><category scheme='http://www.blogger.com/atom/ns#' term='CPU'/><category scheme='http://www.blogger.com/atom/ns#' term='Register Controller'/><title type='text'>Video Controller</title><content type='html'>I've started researching how to output VGA signals, it's not as complicated as I had thought it would be. I found this &lt;a href="http://faculty.lasierra.edu/~ehwang/public/mypublications/VGA%20Monitor%20Controller.pdf"&gt;paper&lt;/a&gt; that explains how simple VGA circuits could be made. I'm currently thinking that a 640x480 monochrome display is what I'll be working with, but perhaps it will be an 8-color display in the end.&lt;br /&gt;&lt;br /&gt;As of right now it will be implementing an 80x30 text mode (8x16 pixel characters). Ram size for the text mode will only be 2,400 bytes, requiring only 12 address lines. This ram will provide the 8-bit character code, which then goes through a prom to provide the render data. Part of the vertical counter goes to the prom which gives the vsync offset to the data. Additional counters need to be added to account for the phantom pixels of the trace portion of the signal. 25.175MHz clock is needed for the 640*480 resolution, giving a 40ns maximum time per pixel.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_ZoFwIvEdS50/S3igp0g5w8I/AAAAAAAAAYc/vA9kM4Uatws/s1600-h/VC.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 286px;" src="http://3.bp.blogspot.com/_ZoFwIvEdS50/S3igp0g5w8I/AAAAAAAAAYc/vA9kM4Uatws/s320/VC.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5438273190381601730" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4394976507424074413-1274652075134124927?l=jeffmhopkins.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffmhopkins.blogspot.com/feeds/1274652075134124927/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeffmhopkins.blogspot.com/2010/02/register-controller-and-video.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4394976507424074413/posts/default/1274652075134124927'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4394976507424074413/posts/default/1274652075134124927'/><link rel='alternate' type='text/html' href='http://jeffmhopkins.blogspot.com/2010/02/register-controller-and-video.html' title='Video Controller'/><author><name>Jeff</name><uri>http://www.blogger.com/profile/04682293375463718583</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_ZoFwIvEdS50/S3igp0g5w8I/AAAAAAAAAYc/vA9kM4Uatws/s72-c/VC.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4394976507424074413.post-1955425351498381887</id><published>2010-02-13T09:10:00.000-08:00</published><updated>2010-02-13T14:27:43.699-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ALU'/><category scheme='http://www.blogger.com/atom/ns#' term='EE'/><category scheme='http://www.blogger.com/atom/ns#' term='CPU'/><title type='text'>ALU Test Board</title><content type='html'>&lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_ZoFwIvEdS50/S3bdDgE2MvI/AAAAAAAAAWo/NKKZUoHHAxQ/s1600-h/DSCF0150.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 289px; height: 320px;" src="http://1.bp.blogspot.com/_ZoFwIvEdS50/S3bdDgE2MvI/AAAAAAAAAWo/NKKZUoHHAxQ/s320/DSCF0150.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5437776652316062450" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_ZoFwIvEdS50/S3cnEa3wuBI/AAAAAAAAAX4/Eza_7OhjJ04/s1600-h/bob.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 214px;" src="http://3.bp.blogspot.com/_ZoFwIvEdS50/S3cnEa3wuBI/AAAAAAAAAX4/Eza_7OhjJ04/s320/bob.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5437858031959324690" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;It's not pretty, but it's done. It's the test-board for the ALU. It provides 3 banks of eight 5 volt high/low inputs to the A, B and Op pins of the ALU, and outputs 8 bits data and the carry flag via LED.&lt;/p&gt;&lt;p&gt;The best news about this is that it proves that the ALU if functioning correctly. I still need to add the decoupling capacitors for high speed switching, but for testing out the logic, it's working perfectly.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4394976507424074413-1955425351498381887?l=jeffmhopkins.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffmhopkins.blogspot.com/feeds/1955425351498381887/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeffmhopkins.blogspot.com/2010/02/alu-test-board.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4394976507424074413/posts/default/1955425351498381887'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4394976507424074413/posts/default/1955425351498381887'/><link rel='alternate' type='text/html' href='http://jeffmhopkins.blogspot.com/2010/02/alu-test-board.html' title='ALU Test Board'/><author><name>Jeff</name><uri>http://www.blogger.com/profile/04682293375463718583</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_ZoFwIvEdS50/S3bdDgE2MvI/AAAAAAAAAWo/NKKZUoHHAxQ/s72-c/DSCF0150.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4394976507424074413.post-9121650484194755822</id><published>2010-02-11T10:40:00.000-08:00</published><updated>2010-02-14T21:17:38.241-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><title type='text'>Example microcoded program</title><content type='html'>&lt;span style="font-family:courier new,monospace;"&gt;&lt;span style="color:#cc6600;"&gt;LARGEST FACTOR&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:courier new,monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;p&gt;&lt;span style="font-family:courier new,monospace;"&gt;This is the same program that the first true computer (the &lt;a href="http://www.computer50.org/mark1/index.html" rel="nofollow"&gt;Manchester Mark I&lt;/a&gt; "The Baby") ran. Altered to run on this instruction set of course.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:courier new,monospace;"&gt;Pseudo Code&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:courier new,monospace;"&gt;Start R0,R1 = DIP1&lt;br /&gt;Loop1 R1=R1-1&lt;br /&gt;      if(R1==0) GOTO: ERROR&lt;br /&gt;      R2=R0&lt;br /&gt;Loop2 R2=R2-R1&lt;br /&gt;      if(R2==0) GOTO: FOUND&lt;br /&gt;      if(R2&amp;lt;0) GOTO: LOOP1&lt;br /&gt;      GOTO: LOOP2&lt;br /&gt;Found LED=R1&lt;br /&gt;      GOTO WAIT&lt;br /&gt;Error LED=0xFF&lt;br /&gt;Wait  WAIT &lt;br /&gt;      GOTO WAIT&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#cc6600;"&gt;0x0000&lt;/span&gt;&lt;span style="color:#009900;"&gt; Start&lt;/span&gt; 4E 10 11 &lt;/span&gt;&lt;span style="font-family:courier new,monospace;"&gt;&lt;span style="color:#339999;"&gt;// Debug DIP.1 to Rx0 and Rx1&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:courier new,monospace;"&gt;&lt;br /&gt;&lt;span style="color:#cc6600;"&gt;0x0003 &lt;/span&gt;&lt;span style="color:#009900;"&gt;Loop1&lt;/span&gt; 21 30     &lt;span style="color:#339999;"&gt;// Rx1 to ALU.A&lt;/span&gt;&lt;br /&gt;             01 31     &lt;span style="color:#339999;"&gt;// 0x01 to ALU.B&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new,monospace;"&gt;             04 03 32 &lt;span style="color:#339999;"&gt;// SUB to ALU.Operation&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new,monospace;"&gt;             &lt;/span&gt;&lt;span style="font-family:courier new,monospace;"&gt;40 11 30 &lt;span style="color:#339999;"&gt;// ALU.Result to Rx1, ALU.A&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new,monospace;"&gt;             &lt;/span&gt;&lt;span style="font-family:courier new,monospace;"&gt;00 31     &lt;span style="color:#339999;"&gt;// 0x00 to ALU.B&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new,monospace;"&gt;             &lt;/span&gt;&lt;span style="font-family:courier new,monospace;"&gt;04 38 32 &lt;span style="color:#339999;"&gt;// XNOR to ALU.Operation&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new,monospace;"&gt;             &lt;/span&gt;&lt;span style="font-family:courier new,monospace;"&gt;40 3C     &lt;span style="color:#339999;"&gt;// ALU.Result to Jump Flag&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new,monospace;"&gt;             &lt;/span&gt;&lt;span style="font-family:courier new,monospace;"&gt;00 3A     &lt;span style="color:#339999;"&gt;//&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new,monospace;"&gt;             &lt;/span&gt;&lt;span style="font-family:courier new,monospace;"&gt;04 4E 3B &lt;span style="color:#339999;"&gt;// 0x004E to Jump address&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new,monospace;"&gt;             &lt;/span&gt;&lt;span style="font-family:courier new,monospace;"&gt;F1        &lt;span style="color:#339999;"&gt;// Conditional Jump to Error&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new,monospace;"&gt;             &lt;/span&gt;&lt;span style="font-family:courier new,monospace;"&gt;10 22     &lt;span style="color:#339999;"&gt;// R0 to R2&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#cc6600;"&gt;0x001C &lt;/span&gt;&lt;span style="color:#009900;"&gt;Loop2&lt;/span&gt; 22 30     &lt;span style="color:#339999;"&gt;// Rx2 to ALU.A&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new,monospace;"&gt;             &lt;/span&gt;&lt;span style="font-family:courier new,monospace;"&gt;01 31     &lt;span style="color:#339999;"&gt;// 0x01 to ALU.B&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new,monospace;"&gt;             &lt;/span&gt;&lt;span style="font-family:courier new,monospace;"&gt;04 03 32 &lt;span style="color:#339999;"&gt;// SUB to ALU.Operation&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new,monospace;"&gt;             &lt;/span&gt;&lt;span style="font-family:courier new,monospace;"&gt;41 13     &lt;span style="color:#339999;"&gt;// ALU.Flags to Rx3&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new,monospace;"&gt;             &lt;/span&gt;&lt;span style="font-family:courier new,monospace;"&gt;40 12 30 &lt;span style="color:#339999;"&gt;// ALU.Result to Rx2, ALU.A&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new,monospace;"&gt;             &lt;/span&gt;&lt;span style="font-family:courier new,monospace;"&gt;00 31     &lt;span style="color:#339999;"&gt;// 0x00 to ALU.B&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new,monospace;"&gt;             &lt;/span&gt;&lt;span style="font-family:courier new,monospace;"&gt;04 38 32 &lt;span style="color:#339999;"&gt;// XNOR to ALU.Operation&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new,monospace;"&gt;             &lt;/span&gt;&lt;span style="font-family:courier new,monospace;"&gt;40 3C     &lt;span style="color:#339999;"&gt;// ALU.Result to Jump Flag&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new,monospace;"&gt;             &lt;/span&gt;&lt;span style="font-family:courier new,monospace;"&gt;00 3A     &lt;span style="color:#339999;"&gt;//&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new,monospace;"&gt;             &lt;/span&gt;&lt;span style="font-family:courier new,monospace;"&gt;04 48 3B&lt;span style="color:#339999;"&gt; // 0x0048 to Jump address&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new,monospace;"&gt;             &lt;/span&gt;&lt;span style="font-family:courier new,monospace;"&gt;F1        &lt;span style="color:#339999;"&gt;// Conditional Jump to Found&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new,monospace;"&gt;             &lt;/span&gt;&lt;span style="font-family:courier new,monospace;"&gt;23 30     &lt;span style="color:#339999;"&gt;// Rx3 to ALU.A (ALU.Flags)&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new,monospace;"&gt;             &lt;/span&gt;&lt;span style="font-family:courier new,monospace;"&gt;02 31     &lt;span style="color:#339999;"&gt;// Negative value bit mask to ALU.B&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new,monospace;"&gt;             &lt;/span&gt;&lt;span style="font-family:courier new,monospace;"&gt;04 20 32 &lt;span style="color:#339999;"&gt;// OR to ALU.Operation&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new,monospace;"&gt;             &lt;/span&gt;&lt;span style="font-family:courier new,monospace;"&gt;40 3C    &lt;span style="color:#339999;"&gt; // ALU.Result to Jump Flag&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new,monospace;"&gt;             &lt;/span&gt;&lt;span style="font-family:courier new,monospace;"&gt;00 3A    &lt;span style="color:#339999;"&gt; //&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new,monospace;"&gt;             &lt;/span&gt;&lt;span style="font-family:courier new,monospace;"&gt;04 03 3B &lt;span style="color:#339999;"&gt;// 0x0003 to Jump address&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new,monospace;"&gt;             &lt;/span&gt;&lt;span style="font-family:courier new,monospace;"&gt;F1        &lt;span style="color:#339999;"&gt;// Conditional Jump to Loop1&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new,monospace;"&gt;             &lt;/span&gt;&lt;span style="font-family:courier new,monospace;"&gt;04 1C 3B &lt;span style="color:#339999;"&gt;// 0x001C to Jump address&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new,monospace;"&gt;             &lt;/span&gt;&lt;span style="font-family:courier new,monospace;"&gt;F0        &lt;span style="color:#339999;"&gt;// Jump Loop2&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#cc6600;"&gt;0x0048 &lt;/span&gt;&lt;span style="color:#009900;"&gt;Found&lt;/span&gt; 21 3E     &lt;span style="color:#339999;"&gt;// Rx2 to Debug LED1&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new,monospace;"&gt;             &lt;/span&gt;&lt;span style="font-family:courier new,monospace;"&gt;04 51 3B &lt;span style="color:#339999;"&gt;// 0x0051 to Jump address&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new,monospace;"&gt;             &lt;/span&gt;&lt;span style="font-family:courier new,monospace;"&gt;F0       &lt;span style="color:#339999;"&gt; // Jump to Wait&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new,monospace;"&gt;&lt;span style="color:#cc6600;"&gt;0x004E &lt;/span&gt;&lt;span style="color:#009900;"&gt;Error&lt;/span&gt; 04 FF 3E &lt;span style="color:#339999;"&gt;// 0xFF to Debug LED1&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#cc6600;"&gt;0x0051&lt;/span&gt;&lt;span style="color:#009900;"&gt; Wait&lt;/span&gt;  00 3A     &lt;span style="color:#339999;"&gt;//&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new,monospace;"&gt;             &lt;/span&gt;&lt;span style="font-family:courier new,monospace;"&gt;04 56 3B &lt;span style="color:#339999;"&gt;// 0x0056 to Jump address&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#cc6600;"&gt;0x0056&lt;/span&gt;        0F       &lt;span style="color:#339999;"&gt; // Wait&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new,monospace;"&gt;             &lt;/span&gt;&lt;span style="font-family:courier new,monospace;"&gt;F0        &lt;span style="color:#339999;"&gt;// Loop Wait&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#ff6666;"&gt;4E 10 11&lt;/span&gt; 21 30 01 31 04 03 32     &lt;span style="color:#ff6666;"&gt;Start&lt;/span&gt;&lt;br /&gt;40 11 30 00 31 04 38 32 40 3C     Loop1&lt;br /&gt;00 3A 04 4E 3B F1 10 22 &lt;/span&gt;&lt;span style="color:#ff9900;"&gt;&lt;span style="font-family:courier new,monospace;"&gt;22 30     Loop2&lt;br /&gt;01 31 04 03 32 41 13 40 12 30&lt;br /&gt;00 31 04 38 32 40 3C 00 3A 04&lt;br /&gt;48 3B F1 23 30 02 31 04 20 32&lt;br /&gt;40 3C 00 3A 04 03 3B F1 04 1C     &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:courier new,monospace;"&gt;&lt;span style="color:#339999;"&gt;Found &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#ff9900;"&gt;&lt;span style="font-family:courier new,monospace;"&gt;&lt;br /&gt;3B&lt;/span&gt;&lt;span style="font-family:courier new,monospace;"&gt; F0 &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:courier new,monospace;"&gt;&lt;span style="color:#339999;"&gt;21 3E 04 51 3B F0 &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#3333ff;"&gt;&lt;span style="font-family:courier new,monospace;"&gt;04 FF     Error&lt;br /&gt;3E&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#009900;"&gt;&lt;span style="font-family:courier new,monospace;"&gt; 00 3A 04 56 3B&lt;/span&gt;&lt;span style="font-family:courier new,monospace;"&gt; 0F F0&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:courier new,monospace;"&gt;&lt;span style="color:#009900;"&gt;           Wait&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:courier new,monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:courier new,monospace;"&gt;01001110 00010000 00010001 00100001 00110000 00000001 00110001 00000100 00000011 00110010 01000000 00010001 00110000 00000000 00110001 00000100 00111000 00110010 01000000 00111100 00000000 00111010 00000100 01001110 00111011 11110001 00010000 00100010 00100010 00110000 00000001 00110001 00000100 00000011 00110010 01000001 00010011 01000000 00010010 00110000 00000000 00110001 00000100 00111000 00110010 01000000 00111100 00000000 00111010 00000100 01001000 00111011 11110001 00100011 00110000 00000010 00110001 00000100 00100000 00110010 01000000 00111100 00000000 00111010 00000100 00000011 00111011 11110001 00000100 00011100 00111011 11110000 00100001 00111110 00000100 01010001 00111011 11110000 00000100 11111111 00111110 00000000 00111010 00000100 01010110 00111011 00001111 11110000&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:courier new,monospace;color:rgb(255, 102, 0)"&gt;&lt;b&gt;Conditional Jump if Zero&lt;/b&gt;&lt;/p&gt;&lt;p  style="margin-left:40px;font-family:courier new,monospace;"&gt;00 3A 00 3B &lt;span style="color:rgb(51, 153, 153)"&gt;// 0x0000 to Jump Address&lt;/span&gt;&lt;br /&gt;20 30 00 31 &lt;span style="color:rgb(51, 153, 153)"&gt;// Rx0 to ALU.A, 0x00 to ALU.B&lt;/span&gt;&lt;br /&gt;04 28 32 &lt;span style="color:rgb(51, 153, 153)"&gt;// NOR to ALU.Operation&lt;/span&gt;&lt;br /&gt;40 3C F1 &lt;span style="color:rgb(51, 153, 153)"&gt;// ALU.Result to Jump Flag, Conditional Jump&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:courier new,monospace;color:rgb(204, 102, 0)"&gt;&lt;b&gt;Conditional Jump if Less Than Zero&lt;/b&gt;&lt;/p&gt;&lt;p  style="margin-left:40px;font-family:courier new,monospace;"&gt;00 3A 00 3B &lt;span style="color:rgb(51, 153, 153)"&gt;// 0x0000 to Jump Address&lt;/span&gt;&lt;br /&gt;20 30 01 31 &lt;span style="color:rgb(51, 153, 153)"&gt;// Rx0 to ALU.A, 0x01 to ALU.B&lt;/span&gt;&lt;br /&gt;04 03 32    &lt;span style="color:rgb(51, 153, 153)"&gt;// SUB to ALU.Operation&lt;/span&gt;&lt;br /&gt;41 30 02 31 &lt;span style="color:rgb(51, 153, 153)"&gt;// ALU.Flags to ALU.A, 0xFE to ALU.B&lt;/span&gt;&lt;br /&gt;04 20 32  &lt;span style="color:rgb(51, 153, 153)"&gt;// OR to ALU.Operation&lt;/span&gt;&lt;br /&gt;40 3C F1  &lt;span style="color:rgb(51, 153, 153)"&gt;// ALU.Result to Jump Flag, Conditional Jump&lt;/span&gt;&lt;span style="color:rgb(51, 153, 153)"&gt;&lt;br /&gt;&lt;/span&gt;&lt;p  style="margin-left:40px;font-family:courier new,monospace;"&gt;&lt;span style="color:rgb(51, 153, 153)"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p  style="margin-left:40px;font-family:courier new,monospace;"&gt;&lt;span style="color:rgb(51, 153, 153)"&gt;&lt;span style="color:#ff0000;"&gt;NOTE: Microcode instuctions may have since changed.&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4394976507424074413-9121650484194755822?l=jeffmhopkins.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffmhopkins.blogspot.com/feeds/9121650484194755822/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeffmhopkins.blogspot.com/2010/02/example-microcoded-program.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4394976507424074413/posts/default/9121650484194755822'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4394976507424074413/posts/default/9121650484194755822'/><link rel='alternate' type='text/html' href='http://jeffmhopkins.blogspot.com/2010/02/example-microcoded-program.html' title='Example microcoded program'/><author><name>Jeff</name><uri>http://www.blogger.com/profile/04682293375463718583</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4394976507424074413.post-8696108953934986166</id><published>2010-02-11T10:32:00.000-08:00</published><updated>2010-02-14T21:18:16.412-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><title type='text'>Instruction Set</title><content type='html'>&lt;p style="font-family:courier new,monospace"&gt;&lt;b&gt;&lt;span style="color:#cc6600;"&gt;The following is the current microcode instruction set for the 8-bit processor.&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p style="font-family:courier new,monospace"&gt;&lt;b&gt;&lt;span style="color:#cc6600;"&gt;Instructions&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;ICU  &lt;span style="color:#009900;"&gt;0x00&lt;/span&gt; Hardwired 0x00 to Bus&lt;br /&gt;     &lt;span style="color:#009900;"&gt;0x01&lt;/span&gt; Hardwired 0x01 to Bus&lt;br /&gt;    &lt;span style="color:#009900;"&gt; 0x02&lt;/span&gt; Hardwired 0xFE to Bus&lt;br /&gt;     &lt;span style="color:#009900;"&gt;0x03&lt;/span&gt; Hardwired 0xFF to Bus&lt;br /&gt;     &lt;span style="color:#009900;"&gt;0x04&lt;/span&gt; Data to Bus from next address&lt;br /&gt;     &lt;span style="color:#009900;"&gt;0x0F&lt;/span&gt; Wait&lt;br /&gt;REG  &lt;span style="color:#009900;"&gt;0x1N&lt;/span&gt; Bus to General Use Register N&lt;br /&gt;     &lt;span style="color:#009900;"&gt;0x2N&lt;/span&gt; General Use Register N to Bus&lt;br /&gt;SREG &lt;span style="color:#009900;"&gt;0x3N&lt;/span&gt; Bus to Special Use Register N&lt;br /&gt;     &lt;span style="color:#009900;"&gt;0x4N&lt;/span&gt; Special Use Register N to Bus&lt;br /&gt;SU   &lt;span style="color:#009900;"&gt;0x50&lt;/span&gt; Shift Left&lt;br /&gt;     &lt;span style="color:#009900;"&gt;0x51&lt;/span&gt; Shift Right&lt;br /&gt;JUMP &lt;span style="color:#009900;"&gt;0xF0&lt;/span&gt; Jump to JP &lt;br /&gt;    &lt;span style="color:#009900;"&gt; 0xF1&lt;/span&gt; Conditional Jump to JP&lt;br /&gt;&lt;span style="color:#cc6600;"&gt;&lt;br /&gt;&lt;b&gt;Special Registers&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#009900;"&gt;0x30&lt;/span&gt; ALU.A  ALU register&lt;br /&gt;&lt;span style="color:#009900;"&gt;0x31&lt;/span&gt; ALU.B  ALU register&lt;br /&gt;&lt;span style="color:#009900;"&gt;0x32&lt;/span&gt; ALU.Operation ALU register&lt;br /&gt;&lt;span style="color:#009900;"&gt;0x33&lt;/span&gt; SRAM.P1 Memory Pointer, the address to select SRAM from&lt;br /&gt;&lt;span style="color:#009900;"&gt;0x34&lt;/span&gt; SRAM.P2 Memory Pointer, the address to select SRAM from&lt;br /&gt;&lt;span style="color:#009900;"&gt;0x35&lt;/span&gt; IR.P1  Interrupt Register, address to return to&lt;br /&gt;&lt;span style="color:#009900;"&gt;0x36&lt;/span&gt; IR.P2  Interrupt Register, address to return to&lt;br /&gt;&lt;span style="color:#009900;"&gt;0x37&lt;/span&gt; ISS  Instruction Source Select, to choose between ROM and SRAM&lt;br /&gt;&lt;span style="color:#009900;"&gt;0x38&lt;/span&gt; IO.P  IO Pointer to select which IO module&lt;br /&gt;&lt;span style="color:#009900;"&gt;0x39&lt;/span&gt; SU.In  Shift Unit Register&lt;br /&gt;&lt;span style="color:#009900;"&gt;0x3A&lt;/span&gt; Jump.P1 Jump Pointer, address to jump to&lt;br /&gt;&lt;span style="color:#009900;"&gt;0x3B &lt;/span&gt;Jump.P2 Jump Pointer, address to jump to&lt;br /&gt;&lt;span style="color:#009900;"&gt;0x3C&lt;/span&gt; JF  Jump Flag, if all 1s then conditional jumps are active&lt;br /&gt;&lt;span style="color:#009900;"&gt;0x3E&lt;/span&gt; LED.1  Debug LED 1&lt;br /&gt;&lt;span style="color:#009900;"&gt;0x3F&lt;/span&gt; LED.2  Debug LED 2&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#009900;"&gt;0x40&lt;/span&gt; ALU.Result ALU register Result&lt;br /&gt;&lt;span style="color:#009900;"&gt;0x41&lt;/span&gt; ALU.Flags ALU register Carry Flag&lt;br /&gt;&lt;span style="color:#009900;"&gt;0x42&lt;/span&gt; SRAM.Out SRAM from MP1 and MP2&lt;br /&gt;&lt;span style="color:#009900;"&gt;0x43&lt;/span&gt; IO.Out  IO register value&lt;br /&gt;&lt;span style="color:#009900;"&gt;0x44&lt;/span&gt; SU.Out  SU Out&lt;br /&gt;&lt;span style="color:#009900;"&gt;0x45&lt;/span&gt; SU.Flags SU Flags (left and right bit values)&lt;br /&gt;&lt;span style="color:#009900;"&gt;0x4E&lt;/span&gt; DDIP.1  Debug DIP Switch 1&lt;br /&gt;&lt;span style="color:#009900;"&gt;0x4F&lt;/span&gt; DDIP.2  Debug DIP Switch 2&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#cc6600;"&gt;ALU Op Codes&lt;/span&gt;&lt;br /&gt;1st Nibble     2nd Nibble&lt;br /&gt;0 0 M1 M2      IO IA IB CI&lt;/p&gt;&lt;p style="font-family:courier new,monospace"&gt;&lt;br /&gt;0x0N ADD&lt;br /&gt;0x1N AND&lt;br /&gt;0x2N OR&lt;br /&gt;0x3N XOR&lt;br /&gt;0xN1 CI&lt;br /&gt;0xN2 Invert B&lt;br /&gt;0xN4 Invert A&lt;br /&gt;0xN8 Invert Output&lt;br /&gt;&lt;br /&gt;0x03 SUB (A+!B+1) A-B&lt;br /&gt;0x05  SUB (!A+B+1) B-A&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4394976507424074413-8696108953934986166?l=jeffmhopkins.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffmhopkins.blogspot.com/feeds/8696108953934986166/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeffmhopkins.blogspot.com/2010/02/instruction-set.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4394976507424074413/posts/default/8696108953934986166'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4394976507424074413/posts/default/8696108953934986166'/><link rel='alternate' type='text/html' href='http://jeffmhopkins.blogspot.com/2010/02/instruction-set.html' title='Instruction Set'/><author><name>Jeff</name><uri>http://www.blogger.com/profile/04682293375463718583</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4394976507424074413.post-6534706081870390541</id><published>2010-01-25T16:32:00.000-08:00</published><updated>2010-01-25T16:57:59.772-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Music'/><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><title type='text'>MIDI Keyboard v3.1 rc1</title><content type='html'>&lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_ZoFwIvEdS50/S147HcObDXI/AAAAAAAAAUg/FgzO4_RTpjc/s1600-h/logo.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://1.bp.blogspot.com/_ZoFwIvEdS50/S147HcObDXI/AAAAAAAAAUg/FgzO4_RTpjc/s320/logo.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5430843199677205874" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_ZoFwIvEdS50/S147H22bD5I/AAAAAAAAAUo/lIw-c0bMDgg/s1600-h/mk_MainWindow_Active.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 38px;" src="http://3.bp.blogspot.com/_ZoFwIvEdS50/S147H22bD5I/AAAAAAAAAUo/lIw-c0bMDgg/s320/mk_MainWindow_Active.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5430843206824300434" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;I've been working on this program for a while, here are some screen shots of it in action. I hope that here soon I'll have the actual RC1 ready for download. There are only a few things left that make this not ready to be released yet, nothing major however, so expect it soon.&lt;/p&gt;&lt;p&gt;Features:&lt;br /&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;MIDI Input/Output and Synthesis&lt;/li&gt;&lt;li&gt;MIDI Routing&lt;/li&gt;&lt;li&gt;Loading and Playing of MIDI files&lt;/li&gt;&lt;li&gt;Real-time MIDI keyboard display&lt;/li&gt;&lt;li&gt;Real-time Chord Analysis&lt;/li&gt;&lt;li&gt;Keyboard to MIDI (Using your actual keyboard as a MIDI input device, including Control Messages such as modulation and pitch-bend)&lt;/li&gt;&lt;li&gt;MIDI Even Log with Filtering&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_ZoFwIvEdS50/S147IdHrNDI/AAAAAAAAAUw/B6mzxvTvHBw/s1600-h/mk_Playlist.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 262px;" src="http://1.bp.blogspot.com/_ZoFwIvEdS50/S147IdHrNDI/AAAAAAAAAUw/B6mzxvTvHBw/s320/mk_Playlist.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5430843217097208882" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_ZoFwIvEdS50/S147IiEN3vI/AAAAAAAAAU4/fKUBLgTPEQ8/s1600-h/mk_Analysis.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 308px;" src="http://4.bp.blogspot.com/_ZoFwIvEdS50/S147IiEN3vI/AAAAAAAAAU4/fKUBLgTPEQ8/s320/mk_Analysis.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5430843218424880882" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_ZoFwIvEdS50/S147IwZbeEI/AAAAAAAAAVA/5F-YiYMjF1g/s1600-h/mk_Log.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 275px;" src="http://3.bp.blogspot.com/_ZoFwIvEdS50/S147IwZbeEI/AAAAAAAAAVA/5F-YiYMjF1g/s320/mk_Log.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5430843222271948866" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4394976507424074413-6534706081870390541?l=jeffmhopkins.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffmhopkins.blogspot.com/feeds/6534706081870390541/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeffmhopkins.blogspot.com/2010/01/midi-keyboard-v31-rc1.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4394976507424074413/posts/default/6534706081870390541'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4394976507424074413/posts/default/6534706081870390541'/><link rel='alternate' type='text/html' href='http://jeffmhopkins.blogspot.com/2010/01/midi-keyboard-v31-rc1.html' title='MIDI Keyboard v3.1 rc1'/><author><name>Jeff</name><uri>http://www.blogger.com/profile/04682293375463718583</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_ZoFwIvEdS50/S147HcObDXI/AAAAAAAAAUg/FgzO4_RTpjc/s72-c/logo.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4394976507424074413.post-452400415478730604</id><published>2010-01-15T12:45:00.000-08:00</published><updated>2010-01-18T22:26:20.746-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Music'/><category scheme='http://www.blogger.com/atom/ns#' term='EE'/><title type='text'>Distortion Box</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_ZoFwIvEdS50/S1D_04joQMI/AAAAAAAAASM/RvvjjzCWQJE/s1600-h/b1.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 142px;" src="http://2.bp.blogspot.com/_ZoFwIvEdS50/S1D_04joQMI/AAAAAAAAASM/RvvjjzCWQJE/s320/b1.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5427118834981552322" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;This is for Pena, who wanted the schematics to one of my distortion boxes. Enjoy&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4394976507424074413-452400415478730604?l=jeffmhopkins.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffmhopkins.blogspot.com/feeds/452400415478730604/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeffmhopkins.blogspot.com/2010/01/this-is-for-pena-who-wanted-schematics.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4394976507424074413/posts/default/452400415478730604'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4394976507424074413/posts/default/452400415478730604'/><link rel='alternate' type='text/html' href='http://jeffmhopkins.blogspot.com/2010/01/this-is-for-pena-who-wanted-schematics.html' title='Distortion Box'/><author><name>Jeff</name><uri>http://www.blogger.com/profile/04682293375463718583</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_ZoFwIvEdS50/S1D_04joQMI/AAAAAAAAASM/RvvjjzCWQJE/s72-c/b1.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4394976507424074413.post-2823471679640333198</id><published>2009-12-08T16:36:00.001-08:00</published><updated>2010-01-25T16:50:04.514-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='EE'/><category scheme='http://www.blogger.com/atom/ns#' term='CPU'/><title type='text'>The HoP - Simulator</title><content type='html'>I've been working on a simulator of The HoP, it is currently working, and I'm testing various programs to prove that the design is sound before final construction of control logic.&lt;br /&gt;&lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_ZoFwIvEdS50/Sx7xIjvhauI/AAAAAAAAAP4/f7u1RGLHTa4/s1600-h/hop_01.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 318px; height: 320px;" src="http://4.bp.blogspot.com/_ZoFwIvEdS50/Sx7xIjvhauI/AAAAAAAAAP4/f7u1RGLHTa4/s320/hop_01.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5413028931481725666" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_ZoFwIvEdS50/Sx7xMgOTMxI/AAAAAAAAAQA/q_zkFbgrE1Y/s1600-h/hop_02.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 318px; height: 320px;" src="http://2.bp.blogspot.com/_ZoFwIvEdS50/Sx7xMgOTMxI/AAAAAAAAAQA/q_zkFbgrE1Y/s320/hop_02.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5413028999256552210" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4394976507424074413-2823471679640333198?l=jeffmhopkins.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffmhopkins.blogspot.com/feeds/2823471679640333198/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeffmhopkins.blogspot.com/2009/12/hop-simulator.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4394976507424074413/posts/default/2823471679640333198'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4394976507424074413/posts/default/2823471679640333198'/><link rel='alternate' type='text/html' href='http://jeffmhopkins.blogspot.com/2009/12/hop-simulator.html' title='The HoP - Simulator'/><author><name>Jeff</name><uri>http://www.blogger.com/profile/04682293375463718583</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_ZoFwIvEdS50/Sx7xIjvhauI/AAAAAAAAAP4/f7u1RGLHTa4/s72-c/hop_01.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4394976507424074413.post-1188103810500228376</id><published>2009-12-06T21:55:00.000-08:00</published><updated>2009-12-06T21:59:46.546-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Music'/><title type='text'>New Audio</title><content type='html'>&lt;a href="http://www.edublogs.tv/play_audio.php?audio=4871"&gt;120609&lt;/a&gt; - Flute and Piano&lt;br /&gt;&lt;p&gt;&lt;embed src="http://www.edublogs.tv/addons/audio/player/player.swf" quality="high" width="290" height="24" name="mp3player" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="width=290&amp;amp;height=24&amp;amp;autostart=no&amp;amp;bg=0x000000&amp;amp;leftbg=0xFFBF00&amp;amp;border=0xFFBF00&amp;amp;text=0x333333&amp;amp;soundFile=http://www.edublogs.tv/uploads/audio/lNZOK2LspnnxUfg5tvni.mp3"&gt;&lt;/embed&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;p&gt;Not quite the finished product, but here you go...&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4394976507424074413-1188103810500228376?l=jeffmhopkins.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffmhopkins.blogspot.com/feeds/1188103810500228376/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeffmhopkins.blogspot.com/2009/12/new-audio.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4394976507424074413/posts/default/1188103810500228376'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4394976507424074413/posts/default/1188103810500228376'/><link rel='alternate' type='text/html' href='http://jeffmhopkins.blogspot.com/2009/12/new-audio.html' title='New Audio'/><author><name>Jeff</name><uri>http://www.blogger.com/profile/04682293375463718583</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4394976507424074413.post-1482616065937083180</id><published>2009-11-24T17:33:00.000-08:00</published><updated>2010-02-11T10:54:34.278-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ALU'/><category scheme='http://www.blogger.com/atom/ns#' term='EE'/><category scheme='http://www.blogger.com/atom/ns#' term='CPU'/><title type='text'>ALU</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_ZoFwIvEdS50/SwyMdZMi15I/AAAAAAAAAPY/tl4-Ok7cpLc/s1600/DSCF0075.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://2.bp.blogspot.com/_ZoFwIvEdS50/SwyMdZMi15I/AAAAAAAAAPY/tl4-Ok7cpLc/s320/DSCF0075.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5407851689172719506" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_ZoFwIvEdS50/SwyMYCUU5hI/AAAAAAAAAPQ/jWWObdhQc90/s1600/DSCF0072.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://3.bp.blogspot.com/_ZoFwIvEdS50/SwyMYCUU5hI/AAAAAAAAAPQ/jWWObdhQc90/s320/DSCF0072.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5407851597131998738" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_ZoFwIvEdS50/SwyJuh04omI/AAAAAAAAAOw/2EIZ25Pg18Y/s1600/DSCF0072.JPG"&gt;&lt;br /&gt;&lt;/a&gt;&lt;p&gt;This is the ALU for my processor. While it might look like just a blob of random wires it can do addition, subtraction, and all logical operations. It's an 8-bit parallel circuit capable at working at speeds up to almost 20MHz. &lt;/p&gt;&lt;p&gt;It can invert A, B, or Output, Carry In, Add, AND, OR and XOR. It does this by going through a XOR gate for the invert, into the adder and logic gates, MUXed into a single 8-bit out, and sent through another XOR for the output invert.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;It's constructed of 74HC series IC chips and soldered.&lt;br /&gt;&lt;/p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_ZoFwIvEdS50/S3RSNmtFcmI/AAAAAAAAAWI/_4ikM_gWJKo/s1600-h/ALU_schematic.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 310px;" src="http://2.bp.blogspot.com/_ZoFwIvEdS50/S3RSNmtFcmI/AAAAAAAAAWI/_4ikM_gWJKo/s320/ALU_schematic.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5437061043824456290" /&gt;&lt;/a&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4394976507424074413-1482616065937083180?l=jeffmhopkins.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffmhopkins.blogspot.com/feeds/1482616065937083180/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeffmhopkins.blogspot.com/2009/11/this-is-alu-for-my-processor.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4394976507424074413/posts/default/1482616065937083180'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4394976507424074413/posts/default/1482616065937083180'/><link rel='alternate' type='text/html' href='http://jeffmhopkins.blogspot.com/2009/11/this-is-alu-for-my-processor.html' title='ALU'/><author><name>Jeff</name><uri>http://www.blogger.com/profile/04682293375463718583</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_ZoFwIvEdS50/SwyMdZMi15I/AAAAAAAAAPY/tl4-Ok7cpLc/s72-c/DSCF0075.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4394976507424074413.post-4841852401086534382</id><published>2009-11-23T09:09:00.000-08:00</published><updated>2009-11-24T17:46:58.952-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Music'/><title type='text'>Music Examples</title><content type='html'>&lt;a href="http://www.edublogs.tv/play_audio.php?audio=4697"&gt;030406&lt;/a&gt; - Piano and Violin&lt;br /&gt;&lt;embed src="http://www.edublogs.tv/addons/audio/player/player.swf" quality="high" width="290" height="24" name="mp3player" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="width=290&amp;amp;height=24&amp;amp;autostart=no&amp;amp;bg=0x000000&amp;amp;leftbg=0xFFBF00&amp;amp;border=0xFFBF00&amp;amp;text=0x333333&amp;amp;soundFile=http://www.edublogs.tv/uploads/audio/cTwzQsDQ5Y1zMQCCfGmN.mp3"&gt;&lt;/embed&gt;&lt;br /&gt;&lt;a href="http://www.edublogs.tv/play_audio.php?audio=4702"&gt;001&lt;/a&gt; - Orchestra and Violin&lt;br /&gt;&lt;embed src="http://www.edublogs.tv/addons/audio/player/player.swf" quality="high" width="290" height="24" name="mp3player" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="width=290&amp;amp;height=24&amp;amp;autostart=no&amp;amp;bg=0x000000&amp;amp;leftbg=0xFFBF00&amp;amp;border=0xFFBF00&amp;amp;text=0x333333&amp;amp;soundFile=http://www.edublogs.tv/uploads/audio/SKsBbCGQMittKO5IKt2j.mp3"&gt;&lt;/embed&gt;&lt;br /&gt;&lt;a href="http://www.edublogs.tv/play_audio.php?audio=4703"&gt;002&lt;/a&gt; - Ostinato in Dm, Piano&lt;br /&gt;&lt;embed src="http://www.edublogs.tv/addons/audio/player/player.swf" quality="high" width="290" height="24" name="mp3player" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="width=290&amp;amp;height=24&amp;amp;autostart=no&amp;amp;bg=0x000000&amp;amp;leftbg=0xFFBF00&amp;amp;border=0xFFBF00&amp;amp;text=0x333333&amp;amp;soundFile=http://www.edublogs.tv/uploads/audio/Hz4emqSSh2Id1kFlGsBd.mp3"&gt;&lt;/embed&gt;&lt;br /&gt;&lt;a href="http://www.edublogs.tv/play_audio.php?audio=4704"&gt;003&lt;/a&gt; - Orchestra, Harmonic Minor study&lt;br /&gt;&lt;embed src="http://www.edublogs.tv/addons/audio/player/player.swf" quality="high" width="290" height="24" name="mp3player" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="width=290&amp;amp;height=24&amp;amp;autostart=no&amp;amp;bg=0x000000&amp;amp;leftbg=0xFFBF00&amp;amp;border=0xFFBF00&amp;amp;text=0x333333&amp;amp;soundFile=http://www.edublogs.tv/uploads/audio/gnPpx1R1hrMwC5BkyrYd.mp3"&gt;&lt;/embed&gt;&lt;br /&gt;&lt;a href="http://www.edublogs.tv/play_audio.php?audio=4705"&gt;004&lt;/a&gt; - Flute, Piano, Guitar, Bass, Drums&lt;br /&gt;&lt;embed src="http://www.edublogs.tv/addons/audio/player/player.swf" quality="high" width="290" height="24" name="mp3player" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="width=290&amp;amp;height=24&amp;amp;autostart=no&amp;amp;bg=0x000000&amp;amp;leftbg=0xFFBF00&amp;amp;border=0xFFBF00&amp;amp;text=0x333333&amp;amp;soundFile=http://www.edublogs.tv/uploads/audio/bUvLft5HIfpDLuYEpexh.mp3"&gt;&lt;/embed&gt;&lt;br /&gt;&lt;a href="http://www.edublogs.tv/play_audio.php?audio=4706"&gt;005&lt;/a&gt; - Polysynth, Piano, Bass&lt;br /&gt;&lt;embed src="http://www.edublogs.tv/addons/audio/player/player.swf" quality="high" width="290" height="24" name="mp3player" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="width=290&amp;amp;height=24&amp;amp;autostart=no&amp;amp;bg=0x000000&amp;amp;leftbg=0xFFBF00&amp;amp;border=0xFFBF00&amp;amp;text=0x333333&amp;amp;soundFile=http://www.edublogs.tv/uploads/audio/PXmtUwVjtpgiFrbOCgNd.mp3"&gt;&lt;/embed&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4394976507424074413-4841852401086534382?l=jeffmhopkins.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffmhopkins.blogspot.com/feeds/4841852401086534382/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeffmhopkins.blogspot.com/2009/11/audio-test.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4394976507424074413/posts/default/4841852401086534382'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4394976507424074413/posts/default/4841852401086534382'/><link rel='alternate' type='text/html' href='http://jeffmhopkins.blogspot.com/2009/11/audio-test.html' title='Music Examples'/><author><name>Jeff</name><uri>http://www.blogger.com/profile/04682293375463718583</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4394976507424074413.post-8806550798934112986</id><published>2009-11-23T08:53:00.000-08:00</published><updated>2009-11-23T09:41:15.328-08:00</updated><title type='text'>Status</title><content type='html'>&lt;p&gt;&lt;span style="font-family:arial;"&gt;I have many interests and hobbies, but mainly I'm currently concerned about the following: Music, Programming and Electronic Engineering. When I get the chance I'll post examples of both onto this site. &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:arial;"&gt;My compositional genre consists of classical and jazz, I've not been to active with this in a while, but mayhap more shall follow. &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:arial;"&gt;Programming wise I've done quite a bit of work, mainly with Java. Many small programs have existed, but they are quite esoteric in design and nature. The major program is something called MIDI Keyboard, which is a fully functional keyboard (music) with an analysis and display suite. I'll add that here when I get the chance as well. &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:arial;"&gt;As far as the Electronic Engineering goes I've created a few projects. Mainly a custom distortion box for my guitar (finished), an 8-bit binary adder/subtracter out of logic gates (finished), and currently in the works is a home-built custom architecture CPU and an overdrive/distortion box (more options) for my guitar. I've done a lot of work with the BS2 and PIC series micro-controllers but really wanted to get gritty with how hardware works, hence the CPU project.&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:arial;"&gt;Anywho, audio, binary, and lots of pictures will follow when I get the chance.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4394976507424074413-8806550798934112986?l=jeffmhopkins.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffmhopkins.blogspot.com/feeds/8806550798934112986/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeffmhopkins.blogspot.com/2009/11/status.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4394976507424074413/posts/default/8806550798934112986'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4394976507424074413/posts/default/8806550798934112986'/><link rel='alternate' type='text/html' href='http://jeffmhopkins.blogspot.com/2009/11/status.html' title='Status'/><author><name>Jeff</name><uri>http://www.blogger.com/profile/04682293375463718583</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4394976507424074413.post-2689965990728843821</id><published>2009-11-22T16:32:00.001-08:00</published><updated>2009-11-22T16:39:56.754-08:00</updated><title type='text'>New Site</title><content type='html'>So since Google Pages is shutting down I thought I'd try and find a new host for some of my projects and such and decided that this indeed might be a good medium. We'll see.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4394976507424074413-2689965990728843821?l=jeffmhopkins.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffmhopkins.blogspot.com/feeds/2689965990728843821/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeffmhopkins.blogspot.com/2009/11/test.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4394976507424074413/posts/default/2689965990728843821'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4394976507424074413/posts/default/2689965990728843821'/><link rel='alternate' type='text/html' href='http://jeffmhopkins.blogspot.com/2009/11/test.html' title='New Site'/><author><name>Jeff</name><uri>http://www.blogger.com/profile/04682293375463718583</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
