{"id":413,"date":"2016-07-07T22:01:44","date_gmt":"2016-07-08T05:01:44","guid":{"rendered":"http:\/\/tubetime.us\/?p=413"},"modified":"2016-07-07T22:01:44","modified_gmt":"2016-07-08T05:01:44","slug":"a-monster-mystery-solved","status":"publish","type":"post","link":"https:\/\/tubetime.us\/index.php\/2016\/07\/07\/a-monster-mystery-solved\/","title":{"rendered":"A MOnSter Mystery, Solved"},"content":{"rendered":"<p>I brought up an additional MOnSter6502 board today. At first it failed my basic validation routines, tripping up on the LDA nn,Y instruction ($B9).<\/p>\n<p>The bus diagnostic output showed that LDA nn,Y was trying to read nn+Y+1 instead of nn+Y (in my test, it accessed $0211 instead of $0210). The LEDs showed that the Y register contained the expected value, so I thought the ALU carry in signal may have been loading a &#8216;1&#8217; instead of a &#8216;0&#8217;, thus causing the incremented value. I scoped it out and it was fine.<\/p>\n<p>Then I noticed that LDA nn,<strong>X<\/strong> worked fine which is totally weird because those instructions are just about identical! So I <em>physically<\/em> inspected the Y register and saw this tomfoolery:<br \/>\n<a href=\"http:\/\/tubetime.us\/wp-content\/uploads\/2016\/07\/IMG_20160707_123730.jpg\"><img loading=\"lazy\" class=\"alignnone  wp-image-414\" src=\"http:\/\/tubetime.us\/wp-content\/uploads\/2016\/07\/IMG_20160707_123730.jpg\" alt=\"IMG_20160707_123730\" width=\"450\" height=\"254\" \/><\/a><br \/>\nThose transistors are in bit zero of the Y register. The one on the left prevents anything but a &#8216;1&#8217; from being in the LSB. The one on the right was supposed to drive the LED on so that I could tell the bit was stuck, but it decided to cover for its dead buddy. I don&#8217;t even know how this happened. It could have been shipping damage, or maybe I fat fingered a screwdriver.<\/p>\n<p>After fixing it, the board worked fine. Two dead transistors and a lying LED. Gotta love transistor level debugging.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I brought up an additional MOnSter6502 board today. At first it failed my basic validation routines, tripping up on the LDA nn,Y instruction ($B9). The bus diagnostic output showed that LDA nn,Y was trying to read nn+Y+1 instead of nn+Y (in my test, it accessed $0211 instead of $0210). The LEDs showed that the Y [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"jetpack_publicize_message":"","jetpack_is_tweetstorm":false,"jetpack_publicize_feature_enabled":true},"categories":[4],"tags":[],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p80Z1r-6F","_links":{"self":[{"href":"https:\/\/tubetime.us\/index.php\/wp-json\/wp\/v2\/posts\/413"}],"collection":[{"href":"https:\/\/tubetime.us\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/tubetime.us\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/tubetime.us\/index.php\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/tubetime.us\/index.php\/wp-json\/wp\/v2\/comments?post=413"}],"version-history":[{"count":0,"href":"https:\/\/tubetime.us\/index.php\/wp-json\/wp\/v2\/posts\/413\/revisions"}],"wp:attachment":[{"href":"https:\/\/tubetime.us\/index.php\/wp-json\/wp\/v2\/media?parent=413"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/tubetime.us\/index.php\/wp-json\/wp\/v2\/categories?post=413"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/tubetime.us\/index.php\/wp-json\/wp\/v2\/tags?post=413"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}