{"id":7026,"date":"2015-07-04T09:18:00","date_gmt":"2015-07-04T13:18:00","guid":{"rendered":"http:\/\/www.willegal.net\/blog\/?p=7026"},"modified":"2015-07-04T09:18:00","modified_gmt":"2015-07-04T13:18:00","slug":"c-language-8008-emulator-debugger-disassembler-source-posted","status":"publish","type":"post","link":"http:\/\/www.willegal.net\/blog\/?p=7026","title":{"rendered":"&#8220;C&#8221; language 8008 emulator, debugger, disassembler source posted"},"content":{"rendered":"<p>Here is <a href=\"http:\/\/www.willegal.net\/scelbi\/8008-disassembler.c\">a link<\/a> to the &#8220;C&#8221; language source for my 8008 debugger\/disassembler.  Though it has been a while since the code diverged, the core 8008 instruction emulator is essentially the same as used in my Macintosh OS\/X app.  Some of the output could be cleaned up a bit and I want to add an emulated cassette interface, but I think it has been pretty useful in creating and debugging 8008 software.<\/p>\n<p>It takes 1 or 2 arguments, an Intel HEX file with the program to debug and an optional starting address (in decimal).<\/p>\n<p>Here is a list of commands.<\/p>\n<li>b &#8211; set break point<\/li>\n<li>d &#8211; dump memory<\/li>\n<li>r &#8211; run &#8211; note that unless you have a break point set, or the program encounters a halt instruction, there is no way to halt the program<\/li>\n<li>s &#8211; step<\/li>\n<li>n &#8211; next &#8211; steps over calls<\/li>\n<li>h &#8211; display numeric values in hexidecimal (except for disassembly)<\/li>\n<li>o &#8211; display values in octal<\/li>\n<li>u &#8211; disassemble range of memory &#8211; use more readable format<\/li>\n<li>a &#8211; disassemble range of memory &#8211; use format compatible with AS8 assembler<\/li>\n<li>x &#8211; exit to shell<\/li>\n<p>Thanks to Cameron Cooper helped me with the initial conversion of the step display to include instruction nmumonics.<\/p>\n<p>Things to do &#8211; add support for emulated SCELBI cassette interface.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Here is a link to the &#8220;C&#8221; language source for my 8008 debugger\/disassembler. Though it has been a while since the code diverged, the core 8008 instruction emulator is essentially the same as used in my Macintosh OS\/X app. Some &hellip; <a href=\"http:\/\/www.willegal.net\/blog\/?p=7026\">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-7026","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\/7026","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=7026"}],"version-history":[{"count":6,"href":"http:\/\/www.willegal.net\/blog\/index.php?rest_route=\/wp\/v2\/posts\/7026\/revisions"}],"predecessor-version":[{"id":7032,"href":"http:\/\/www.willegal.net\/blog\/index.php?rest_route=\/wp\/v2\/posts\/7026\/revisions\/7032"}],"wp:attachment":[{"href":"http:\/\/www.willegal.net\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=7026"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.willegal.net\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=7026"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.willegal.net\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=7026"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}