{"id":9142,"date":"2019-11-29T08:34:11","date_gmt":"2019-11-29T13:34:11","guid":{"rendered":"http:\/\/www.willegal.net\/blog\/?p=9142"},"modified":"2019-11-29T08:47:53","modified_gmt":"2019-11-29T13:47:53","slug":"dg-video-progress","status":"publish","type":"post","link":"http:\/\/www.willegal.net\/blog\/?p=9142","title":{"rendered":"DG Video Progress"},"content":{"rendered":"\n<p>I&#8217;m making some progress on the Digital Group video card debug, but it has been a bit more difficult than I expected. First I had to connect it to my SCELBI and write a short program to test it with. Here is the test setup.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1000\" height=\"750\" src=\"http:\/\/www.willegal.net\/blog\/wp-content\/uploads\/2019\/11\/DG-video-test-rig.jpg\" alt=\"DG Video Test Rig\" class=\"wp-image-9140\" srcset=\"http:\/\/www.willegal.net\/blog\/wp-content\/uploads\/2019\/11\/DG-video-test-rig.jpg 1000w, http:\/\/www.willegal.net\/blog\/wp-content\/uploads\/2019\/11\/DG-video-test-rig-300x225.jpg 300w, http:\/\/www.willegal.net\/blog\/wp-content\/uploads\/2019\/11\/DG-video-test-rig-768x576.jpg 768w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><figcaption>DG Video Test Rig<\/figcaption><\/figure>\n\n\n\n<p>I needed to add an 8 bit latch in order to latch the SCELBI output port.  This was easily accomplished with 2 7475 four bit latches and a bread board that I had in my parts bin. If I was thinking ahead, I would have added it to the PCB that contains the +5 volt to + 12 volt converter. Now I&#8217;m going to have to add another board to the final chassis design in order to hold the 8 bit latch.<\/p>\n\n\n\n<p>The 5 volt to 12 volt converter is resulting in 11.96 volts at the MCM6571.  That is nearly spot on, so it looks like that effort has paid off. One other thing to keep in mind when wiring the power for peripherals on the SCELBI, it&#8217;s pretty important to avoid ground loops and run power and ground directly back to the power supply.  It&#8217;s tempting to use the ground wire on the peripheral cable, but it&#8217;s best not to do that.<\/p>\n\n\n\n<p>Debug has been a bit slow, and I found a couple of assembly mistakes on the PCB.  First, I put capacitor C8 in the wrong holes which caused problems with the R\/W output of U-23. The second mistake was forgetting to solder the ground pin of the 6571 character generator. I also had a bad 74193 in the circuit that was used for writing to video memory.  In this build, I used sockets, so testing and replacing the 74193 was pretty easy.<\/p>\n\n\n\n<p>The documentation suggests that a user could use a second output port and directly address video memory, rather than use the counter solution. Given that there usually is no shortage of output ports on the SCELBI, this might make a better solution for the SCELBI. It would be fairly simple to replace the two 74193 counters with 7475 latches in order to achieve this.<\/p>\n\n\n\n<p>During this process I wrote two short programs for debug.  The first one puts the same character in every location in memory. This was helpful when I was having trouble writing to memory.  Putting the same data in every location made it easier to tell whether writes to the 1101 memory were working or not.<\/p>\n\n\n\n<p>000 000                     ORG 002 000<br>\n002 000  016 000      STRT, LBI 000<br>\n002 002  006 301      CONT, LAI 301<br>\n002 004  161                161<br>\n002 005  044 177            NDI 177<br>\n002 007  161                161<br>\n002 010  010                INB<br>\n002 011  301                LAB<br>\n002 012  074 000            CPI 000<br>\n002 014  110 002 002        JFZ CONT<br>\n002 017  000                HLT<br>\n002 020  104 000 002        JMP STRT<br>\n002 023                     END<\/p>\n\n\n\n<p>The second program writes every possible character to the screen memory.<\/p>\n\n\n\n<p>000 000                    ORG 002 000<br> 002 000  016 200      STRT,      LBI 200<br> 002 002  301          CONT, LAB<br> 002 003  161                161<br> 002 004  044 177            NDI 177<br> 002 006  161                161<br> 002 007  010                INB<br> 002 010  301                LAB<br> 002 011  074 177            CPI 177<br> 002 013  110 002 002        JFZ CONT<br> 002 016  000                HLT<br> 002 017  104 000 002        JMP STRT<br> 002 022                     END<\/p>\n\n\n\n<p>These programs were both short enough that I just toggle them in through the front panel, rather than worry about setting up a TTY or scope and run MEA or MCMON.  <\/p>\n\n\n\n<p>The display with the second program loading up memory with a range of characters currently looks like this:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"623\" src=\"http:\/\/www.willegal.net\/blog\/wp-content\/uploads\/2019\/11\/dg-video-output.jpg\" alt=\"DG Video Output\" class=\"wp-image-9141\" srcset=\"http:\/\/www.willegal.net\/blog\/wp-content\/uploads\/2019\/11\/dg-video-output.jpg 800w, http:\/\/www.willegal.net\/blog\/wp-content\/uploads\/2019\/11\/dg-video-output-300x234.jpg 300w, http:\/\/www.willegal.net\/blog\/wp-content\/uploads\/2019\/11\/dg-video-output-768x598.jpg 768w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><figcaption>DG Video Output<\/figcaption><\/figure>\n\n\n\n<p>So the good news is that the horizontal and vertical sync is looking pretty good. In fact, given my concerns about the PCB layout, the video is downright crisp, much better than the Apple 1 or Apple []. I&#8217;m pretty impressed. The bad news is that the characters are all displayed upside down and clipped at the bottom. I&#8217;ll have to figure that out in my next debug session.<\/p>\n\n\n\n<p>UPDATE: I just figured out that my reversed character problem is that I&#8217;m using a MCM6571A part which has a different\/reversed decode when compared to a regular MCM6571.  With character generators, you have to be careful about versions of the part and I guess I didn&#8217;t pay enough attention in this case.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I&#8217;m making some progress on the Digital Group video card debug, but it has been a bit more difficult than I expected. First I had to connect it to my SCELBI and write a short program to test it with. &hellip; <a href=\"http:\/\/www.willegal.net\/blog\/?p=9142\">Continue reading <span class=\"meta-nav\">&rarr;<\/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":[16,7],"tags":[],"class_list":["post-9142","post","type-post","status-publish","format-standard","hentry","category-8008-scelbi","category-apple"],"_links":{"self":[{"href":"http:\/\/www.willegal.net\/blog\/index.php?rest_route=\/wp\/v2\/posts\/9142","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.willegal.net\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.willegal.net\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.willegal.net\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.willegal.net\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=9142"}],"version-history":[{"count":6,"href":"http:\/\/www.willegal.net\/blog\/index.php?rest_route=\/wp\/v2\/posts\/9142\/revisions"}],"predecessor-version":[{"id":9148,"href":"http:\/\/www.willegal.net\/blog\/index.php?rest_route=\/wp\/v2\/posts\/9142\/revisions\/9148"}],"wp:attachment":[{"href":"http:\/\/www.willegal.net\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=9142"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.willegal.net\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=9142"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.willegal.net\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=9142"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}