{"id":1581,"date":"2023-07-07T13:28:52","date_gmt":"2023-07-07T18:28:52","guid":{"rendered":"https:\/\/www.computercollection.net\/?p=1581"},"modified":"2023-07-07T15:23:10","modified_gmt":"2023-07-07T20:23:10","slug":"ibm-1410-fpga-diagnostics","status":"publish","type":"post","link":"https:\/\/www.computercollection.net\/index.php\/2023\/07\/07\/ibm-1410-fpga-diagnostics\/","title":{"rendered":"IBM 1410 FPGA: Diagnostics!!!"},"content":{"rendered":"\n<p>With the console typewriter working, and the ability to load core images, I was now ready to try and run some diagnostics.  The first issue I ran into was that the main diagnostics, CU01, was initialized for 80K of core.  That the core image file was larger wasn&#8217;t an issue: the Windows based support program knows to only send the first 40K.  However, there was a flag denoting machine size that needed to be &#8220;patched&#8221; &#8212; which I did using my emulator, and then saved as a new core image.<\/p>\n\n\n\n<p>Loading the diagnostic, it typed out its identifier, but then quickly errored out with an Assembly Channel error on a Subtract instruction where the destination B-field was initially positive, but turned negative during the subtraction.  This was not the first place I expected to see an issue &#8211; figured it would more likely relate to some trigger or other.  But nope, this was a simple issue in the Assembly Channel.<\/p>\n\n\n\n<p>The problem arose because the ALD diagrams I  have are mostly for an IBM 1410 with the Accelerator special feature, however, most of the ALD diagrams for the Assembly channel proper (ALD 15.50.xx.1) are for the non-accelerated version whereas the Assembly channel controls (ALD 15.49.xx.1) are for the accelerated version.  There were several signals that ended up either not being used, or having no source as a result:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>-B B CH MIN+INV PLUS SIGN GATED<\/li>\n\n\n\n<li>-B B CH PLU+IN MIN SIGN GATED<\/li>\n\n\n\n<li>-B B MN +IN PL+PL+INV MN GATED<\/li>\n<\/ul>\n\n\n\n<p>These all relate to cases where the B field ends up with a sign other than its original sign.  I suspect that the idea was that these signals provided earlier gating to the assembly channel rather than just deriving them from the adder with additional gate delays.<\/p>\n\n\n\n<p>After fixing the Subtract issues which involved just the &#8220;B&#8221; bit on page 15.50.06.1, (going from positive to negative) I immediately ran into the same issue on the first pass of the diagnostic during the same test, changing from negative to a positive result.  Fixing this involved pages 15.50.05.1 (mostly).  As a result the pages for the Assembly channel have some gates who&#8217;s note at the top is &#8220;FUDGED&#8221;.  \ud83d\ude09<\/p>\n\n\n\n<p>With that, so long as I didn&#8217;t enable I\/O overlap and Priority Alert (interrupts) during the test, CU01 completed successfully!   Frankly this was something of a surprise:  It tests most of the instructions and ways of moving data and they all just worked.  <\/p>\n\n\n\n<p>Also, the run time of about 3.75 minutes matches very well with the information  in the diagnostic listing for a 1410 with the Accelerated logic feature.<\/p>\n\n\n\n<p>So then, I ran it again, but with overlapped I\/O and priority features turned on in the diagnostic.  It ran fine for about a minute, but then failed during overlapped execution of a multiply instruction.  More on this during the next installment.<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>With the console typewriter working, and the ability to load core images, I was now ready to try and run some diagnostics. The first issue I ran into was that the main diagnostics, CU01, was initialized for 80K of core. That the core image file was larger wasn&#8217;t an issue: the Windows based support program &hellip; <a href=\"https:\/\/www.computercollection.net\/index.php\/2023\/07\/07\/ibm-1410-fpga-diagnostics\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;IBM 1410 FPGA: Diagnostics!!!&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5,9,15],"tags":[16],"post_folder":[],"class_list":["post-1581","post","type-post","status-publish","format-standard","hentry","category-computers","category-hardware","category-ibm1410","tag-ibm1410-2"],"_links":{"self":[{"href":"https:\/\/www.computercollection.net\/index.php\/wp-json\/wp\/v2\/posts\/1581","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.computercollection.net\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.computercollection.net\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.computercollection.net\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.computercollection.net\/index.php\/wp-json\/wp\/v2\/comments?post=1581"}],"version-history":[{"count":4,"href":"https:\/\/www.computercollection.net\/index.php\/wp-json\/wp\/v2\/posts\/1581\/revisions"}],"predecessor-version":[{"id":1586,"href":"https:\/\/www.computercollection.net\/index.php\/wp-json\/wp\/v2\/posts\/1581\/revisions\/1586"}],"wp:attachment":[{"href":"https:\/\/www.computercollection.net\/index.php\/wp-json\/wp\/v2\/media?parent=1581"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.computercollection.net\/index.php\/wp-json\/wp\/v2\/categories?post=1581"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.computercollection.net\/index.php\/wp-json\/wp\/v2\/tags?post=1581"},{"taxonomy":"post_folder","embeddable":true,"href":"https:\/\/www.computercollection.net\/index.php\/wp-json\/wp\/v2\/post_folder?post=1581"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}