{"id":13229,"date":"2022-09-10T20:30:11","date_gmt":"2022-09-10T20:30:11","guid":{"rendered":"https:\/\/bryceautomation.com\/?p=13229"},"modified":"2022-09-10T20:30:17","modified_gmt":"2022-09-10T20:30:17","slug":"kenbak-1-indirect-indexed-addressing","status":"publish","type":"post","link":"https:\/\/bryceautomation.com\/index.php\/2022\/09\/10\/kenbak-1-indirect-indexed-addressing\/","title":{"rendered":"Kenbak-1 Indirect Indexed Addressing"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Introduction to the Kenbak-1 Indirect Indexed Addressing<\/h2>\n\n\n\n<p>The Kenbak-1 Indirect Indexed Addressing may seem a bit intimidating at first.  However the concept is simple.  Let&#8217;s say we have two different &#8220;sequencers&#8221; with different bit patterns.  One bit pattern resides at memory cell 107-100.  Another set of patterns reside at address 157-150.  We want operator input to decide which of these sets of bit patterns to run.  We&#8217;ll default to 157 to 150<\/p><div id=\"bryce-670180590\" class=\"bryce-afterfirst bryce-entity-placement\"><script async src=\"\/\/pagead2.googlesyndication.com\/pagead\/js\/adsbygoogle.js?client=ca-pub-8316758073402323\" crossorigin=\"anonymous\"><\/script><ins class=\"adsbygoogle\" style=\"display:block;\" data-ad-client=\"ca-pub-8316758073402323\" \ndata-ad-slot=\"7728240895\" \ndata-ad-format=\"auto\"><\/ins>\n<script> \n(adsbygoogle = window.adsbygoogle || []).push({}); \n<\/script>\n<\/div>\n\n\n\n<p>The simplest way to display this data would be to work backwards ie: 107 to 100, and 157 to 150.  We&#8217;ll use this method to keep our logic as simple as we can.  The goal here is to understand the basic principal.  After that you can try to modify the logic on your own to make the sequencer run forward.<\/p>\n\n\n\n<p>Obviously, we&#8217;ll use X as our Index register.  Our B register will store the array,&#8217;s starting point, which will either be 100 or 150.  We&#8217;ll base this on the user&#8217;s input, but initially, without any operator input, we&#8217;ll default to the array at memory cell 100 to 107.<\/p>\n\n\n\n<p>It&#8217;s important to realize there are other ways to do this, but the point of this exercise is to understand Indirect, Indexed addressing.<\/p>\n\n\n\n<p>Before we begin, print a few copies of the <a href=\"https:\/\/adwaterandstir.com\/wp-content\/uploads\/2018\/10\/KENBAK-Programming_Worksheets.pdf\">Kenbak-1 Programming worksheet.<\/a>  Since this is somewhat of an advanced topic, I would also recommend reading the post on <a href=\"https:\/\/bryceautomation.com\/index.php\/2022\/04\/13\/programming-the-kenbak-1-kenbakuino\/\">programming the Kenbak-1 <\/a>if you are not familiar with how to use the programming sheet.  Compare each command in that post with your worksheet.  Additionally, you will want to read up on <a href=\"https:\/\/bryceautomation.com\/index.php\/2022\/07\/16\/kenbak-1-basic-commands-opcodes\/\">developing the basic OPCODES <\/a>to program the Kenbak-1.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Initialize the Registers<\/h2>\n\n\n\n<p>We&#8217;ll start by initializing the registers.  This will be address 000 to 011.  Really, it doesn&#8217;t matter at this point what we put in memory cells 000 to 002.  Our program will re-initialize these variables anyway.  In memory cell 003, we need to set the program counter to 004 though.  The Load instructions will load initial values into cells A, B, and X.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"367\" height=\"189\" data-src=\"https:\/\/bryceautomation.com\/wp-content\/uploads\/2022\/09\/image-61.png\" alt=\"\" class=\"wp-image-13236 lazyload\" data-srcset=\"https:\/\/bryceautomation.com\/wp-content\/uploads\/2022\/09\/image-61.png 367w, https:\/\/bryceautomation.com\/wp-content\/uploads\/2022\/09\/image-61-300x154.png 300w\" data-sizes=\"(max-width: 367px) 100vw, 367px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 367px; --smush-placeholder-aspect-ratio: 367\/189;\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Test for User Input<\/h2>\n\n\n\n<p>At this point, we want to check for user input.  If the user hits button 0, we want to run the array from 107 to 100.  On the other hand, if the user hits button 1, we will start executing the sequence from 157 to 150.  The change will take effect once the current sequence is complete.<\/p>\n\n\n\n<p>We can simply subtract 1 from the buttons to get the three states we need for the jumps.  After we subtract 1, we know that if the value is negative, then our buttons were 0.  If the result is equal to 0, then we know the user is pressing button #0 to run the first sequence at 107 to 100.  Likewise, the number is greater than 0, then we know the user selected a different button.  In this case, we will run the sequence of values from 157 to 150.<\/p>\n\n\n\n<p>Let&#8217;s write our user input detection logic.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"377\" height=\"136\" data-src=\"https:\/\/bryceautomation.com\/wp-content\/uploads\/2022\/09\/image-62.png\" alt=\"\" class=\"wp-image-13237 lazyload\" data-srcset=\"https:\/\/bryceautomation.com\/wp-content\/uploads\/2022\/09\/image-62.png 377w, https:\/\/bryceautomation.com\/wp-content\/uploads\/2022\/09\/image-62-300x108.png 300w\" data-sizes=\"(max-width: 377px) 100vw, 377px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 377px; --smush-placeholder-aspect-ratio: 377\/136;\" \/><\/figure>\n\n\n\n<p>First, we are loading the buttons into the A register.  Next, we subtract 1 from the A register.  If the result is equal to zero, we jump to an area of memory (040) that sets the B register to 100.  Likewise, if the result is greater than zero, then we&#8217;ll jump to another area of the program that loads 150 into the B register.  We&#8217;ll discuss those routines later.  For now, let&#8217;s keep going in sequence.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Load and Display the Values in our Data Arrays with Kenbak-1 Indirect Indexed Addressing<\/h2>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"377\" height=\"170\" data-src=\"https:\/\/bryceautomation.com\/wp-content\/uploads\/2022\/09\/image-64.png\" alt=\"\" class=\"wp-image-13239 lazyload\" data-srcset=\"https:\/\/bryceautomation.com\/wp-content\/uploads\/2022\/09\/image-64.png 377w, https:\/\/bryceautomation.com\/wp-content\/uploads\/2022\/09\/image-64-300x135.png 300w\" data-sizes=\"(max-width: 377px) 100vw, 377px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 377px; --smush-placeholder-aspect-ratio: 377\/170;\" \/><\/figure>\n\n\n\n<p>This code is the heart of our post.  In cell 022, we load A from an indirect, indexed address.  Cell 013 contains the value of 001.  This means that we use the B register as the starting point.  Remember, the B register starts at the value 150.  Since this is also indexed, we add the contents of the B register to this address.  This gives us the memory location containing the data we want to load into the accumulator.  Our X register starts at 7.  Therefore, the first memory address we get information from will be memory location 157.  We then store this to our display in cells 024 and 025.  At this point, we decrement the X register.  As long as the X register remains positive (0 or above), we will continue to cycle through this loop.  <\/p>\n\n\n\n<p>One at a time, we get data from cells 157 to 150, and store this to the display.  Once the X register drops below 0, we set the program counter to restart at line 10.<\/p>\n\n\n\n<p>At this point, we go up and test for user input again.  If the user happened to press button 0 at any time, then we change our reference point to address 100 once this sequence is complete.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Setting the &#8220;B&#8221; Register<\/h2>\n\n\n\n<p>Recall that in cells 016 and 020, we tested for user input.  here are the subroutines we execute to reload the B register with a new reference point.  We base this on the button the user pressed.  If the user pressed button 0, we execute cells 040 to 047.  On the other hand, if the user pressed button #1, we execute cells 050 to 057.  Basically, this code loads a new value into the B register as our reference point.  After that, we load the A register with 0, and clear cell 377.  This clears the previous user input. <\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"262\" height=\"272\" data-src=\"https:\/\/bryceautomation.com\/wp-content\/uploads\/2022\/09\/image-65.png\" alt=\"\" class=\"wp-image-13240 lazyload\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 262px; --smush-placeholder-aspect-ratio: 262\/272;\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Enter Data into the Arrays<\/h2>\n\n\n\n<p>Don&#8217;t forget to put your own bit patterns into locations 107 to 100, and 157 to 000.  To demonstrate, these should be  different bit patterns to prove that your logic is working.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Octal Dump for the Kenbak-1 Indirect Indexed Addressing<\/h2>\n\n\n\n<p>I&#8217;m using the Kenbakuino emulator, which is a hardware emulator.  You can <a href=\"https:\/\/adwaterandstir.com\/kenbak\/\">purchase one<\/a>, or <a href=\"https:\/\/www.instructables.com\/25-Scale-KENBAK-1-Personal-Computer-Reproduction\/\">build one on your own!<\/a><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>000,100,000,004,023,000,123,100,223,007,024,377,013,001,044,040,047,050,027,001,034,200,213,001,246,022,344,010,000,000,000,000,123,100,023,000,034,377,344,022,123,150,023,000,034,377,344,022,s<\/code><\/pre>\n\n\n\n<p>For more information, check out the <a href=\"https:\/\/bryceautomation.com\/index.php\/category\/kenbak-1\/\">Kenbak-1 category page!<\/a><\/p>\n\n\n\n<p>&#8212; Ricky Bryce<\/p>\n<div id=\"bryce-2128189489\" class=\"bryce-after-content bryce-entity-placement\"><script async src=\"\/\/pagead2.googlesyndication.com\/pagead\/js\/adsbygoogle.js?client=ca-pub-8316758073402323\" crossorigin=\"anonymous\"><\/script><ins class=\"adsbygoogle\" style=\"display:block;\" data-ad-client=\"ca-pub-8316758073402323\" \ndata-ad-slot=\"4667596182\" \ndata-ad-format=\"auto\"><\/ins>\n<script> \n(adsbygoogle = window.adsbygoogle || []).push({}); \n<\/script>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>Introduction to the Kenbak-1 Indirect Indexed Addressing The Kenbak-1 Indirect Indexed Addressing may seem a bit intimidating at first. However the concept is simple. Let&#8217;s say we have two different &#8220;sequencers&#8221; with different bit patterns. One bit pattern resides at memory cell 107-100. Another set of patterns reside at address 157-150. We want operator input <a class=\"moretag btn btn-primary\" href=\"https:\/\/bryceautomation.com\/index.php\/2022\/09\/10\/kenbak-1-indirect-indexed-addressing\/\">Read More \u00bb<\/a><\/p>\n","protected":false},"author":1,"featured_media":13239,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[762,727],"tags":[796],"class_list":{"0":"post-13229","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-kenbak-1","8":"category-vintage-computers","9":"tag-indirect-indexed-addressing","10":"czr-hentry"},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Kenbak-1 Indirect Indexed Addressing - Bryce Automation<\/title>\n<meta name=\"description\" content=\"Using Kenbak-1 Indirect, Indexed Addressing to index through 2 different arrays based on user input from the front panel.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/bryceautomation.com\/index.php\/2022\/09\/10\/kenbak-1-indirect-indexed-addressing\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Kenbak-1 Indirect Indexed Addressing - Bryce Automation\" \/>\n<meta property=\"og:description\" content=\"Using Kenbak-1 Indirect, Indexed Addressing to index through 2 different arrays based on user input from the front panel.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/bryceautomation.com\/index.php\/2022\/09\/10\/kenbak-1-indirect-indexed-addressing\/\" \/>\n<meta property=\"og:site_name\" content=\"Bryce Automation\" \/>\n<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/ricky.bryce.7\" \/>\n<meta property=\"article:published_time\" content=\"2022-09-10T20:30:11+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-09-10T20:30:17+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/bryceautomation.com\/wp-content\/uploads\/2022\/09\/image-64.png\" \/>\n\t<meta property=\"og:image:width\" content=\"377\" \/>\n\t<meta property=\"og:image:height\" content=\"170\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Ricky\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2022\\\/09\\\/10\\\/kenbak-1-indirect-indexed-addressing\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2022\\\/09\\\/10\\\/kenbak-1-indirect-indexed-addressing\\\/\"},\"author\":{\"name\":\"Ricky\",\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/#\\\/schema\\\/person\\\/5d5b0f6f6ad768f1ee52968338e63af7\"},\"headline\":\"Kenbak-1 Indirect Indexed Addressing\",\"datePublished\":\"2022-09-10T20:30:11+00:00\",\"dateModified\":\"2022-09-10T20:30:17+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2022\\\/09\\\/10\\\/kenbak-1-indirect-indexed-addressing\\\/\"},\"wordCount\":931,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2022\\\/09\\\/10\\\/kenbak-1-indirect-indexed-addressing\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/bryceautomation.com\\\/wp-content\\\/uploads\\\/2022\\\/09\\\/image-64.png\",\"keywords\":[\"Indirect Indexed addressing\"],\"articleSection\":[\"Kenbak-1\",\"Vintage Computers\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2022\\\/09\\\/10\\\/kenbak-1-indirect-indexed-addressing\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2022\\\/09\\\/10\\\/kenbak-1-indirect-indexed-addressing\\\/\",\"url\":\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2022\\\/09\\\/10\\\/kenbak-1-indirect-indexed-addressing\\\/\",\"name\":\"Kenbak-1 Indirect Indexed Addressing - Bryce Automation\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2022\\\/09\\\/10\\\/kenbak-1-indirect-indexed-addressing\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2022\\\/09\\\/10\\\/kenbak-1-indirect-indexed-addressing\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/bryceautomation.com\\\/wp-content\\\/uploads\\\/2022\\\/09\\\/image-64.png\",\"datePublished\":\"2022-09-10T20:30:11+00:00\",\"dateModified\":\"2022-09-10T20:30:17+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/#\\\/schema\\\/person\\\/5d5b0f6f6ad768f1ee52968338e63af7\"},\"description\":\"Using Kenbak-1 Indirect, Indexed Addressing to index through 2 different arrays based on user input from the front panel.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2022\\\/09\\\/10\\\/kenbak-1-indirect-indexed-addressing\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2022\\\/09\\\/10\\\/kenbak-1-indirect-indexed-addressing\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2022\\\/09\\\/10\\\/kenbak-1-indirect-indexed-addressing\\\/#primaryimage\",\"url\":\"https:\\\/\\\/bryceautomation.com\\\/wp-content\\\/uploads\\\/2022\\\/09\\\/image-64.png\",\"contentUrl\":\"https:\\\/\\\/bryceautomation.com\\\/wp-content\\\/uploads\\\/2022\\\/09\\\/image-64.png\",\"width\":377,\"height\":170,\"caption\":\"Indirect Indexed Addressing in the Kenbak-1\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2022\\\/09\\\/10\\\/kenbak-1-indirect-indexed-addressing\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/bryceautomation.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Kenbak-1 Indirect Indexed Addressing\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/#website\",\"url\":\"https:\\\/\\\/bryceautomation.com\\\/\",\"name\":\"Bryce Automation\",\"description\":\"Automating Home and Industry...\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/bryceautomation.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/#\\\/schema\\\/person\\\/5d5b0f6f6ad768f1ee52968338e63af7\",\"name\":\"Ricky\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/wp-content\\\/wphb-cache\\\/gravatar\\\/a8f\\\/a8fe6bf79d292b388ffee281ccb12488x96.jpg\",\"url\":\"https:\\\/\\\/bryceautomation.com\\\/wp-content\\\/wphb-cache\\\/gravatar\\\/a8f\\\/a8fe6bf79d292b388ffee281ccb12488x96.jpg\",\"contentUrl\":\"https:\\\/\\\/bryceautomation.com\\\/wp-content\\\/wphb-cache\\\/gravatar\\\/a8f\\\/a8fe6bf79d292b388ffee281ccb12488x96.jpg\",\"caption\":\"Ricky\"},\"sameAs\":[\"http:\\\/\\\/bryceautomation.com\",\"https:\\\/\\\/www.facebook.com\\\/ricky.bryce.7\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/ricky-bryce-4367a416\\\/\"],\"url\":\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/author\\\/ricky\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Kenbak-1 Indirect Indexed Addressing - Bryce Automation","description":"Using Kenbak-1 Indirect, Indexed Addressing to index through 2 different arrays based on user input from the front panel.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/bryceautomation.com\/index.php\/2022\/09\/10\/kenbak-1-indirect-indexed-addressing\/","og_locale":"en_US","og_type":"article","og_title":"Kenbak-1 Indirect Indexed Addressing - Bryce Automation","og_description":"Using Kenbak-1 Indirect, Indexed Addressing to index through 2 different arrays based on user input from the front panel.","og_url":"https:\/\/bryceautomation.com\/index.php\/2022\/09\/10\/kenbak-1-indirect-indexed-addressing\/","og_site_name":"Bryce Automation","article_author":"https:\/\/www.facebook.com\/ricky.bryce.7","article_published_time":"2022-09-10T20:30:11+00:00","article_modified_time":"2022-09-10T20:30:17+00:00","og_image":[{"width":377,"height":170,"url":"https:\/\/bryceautomation.com\/wp-content\/uploads\/2022\/09\/image-64.png","type":"image\/png"}],"author":"Ricky","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/bryceautomation.com\/index.php\/2022\/09\/10\/kenbak-1-indirect-indexed-addressing\/#article","isPartOf":{"@id":"https:\/\/bryceautomation.com\/index.php\/2022\/09\/10\/kenbak-1-indirect-indexed-addressing\/"},"author":{"name":"Ricky","@id":"https:\/\/bryceautomation.com\/#\/schema\/person\/5d5b0f6f6ad768f1ee52968338e63af7"},"headline":"Kenbak-1 Indirect Indexed Addressing","datePublished":"2022-09-10T20:30:11+00:00","dateModified":"2022-09-10T20:30:17+00:00","mainEntityOfPage":{"@id":"https:\/\/bryceautomation.com\/index.php\/2022\/09\/10\/kenbak-1-indirect-indexed-addressing\/"},"wordCount":931,"commentCount":0,"image":{"@id":"https:\/\/bryceautomation.com\/index.php\/2022\/09\/10\/kenbak-1-indirect-indexed-addressing\/#primaryimage"},"thumbnailUrl":"https:\/\/bryceautomation.com\/wp-content\/uploads\/2022\/09\/image-64.png","keywords":["Indirect Indexed addressing"],"articleSection":["Kenbak-1","Vintage Computers"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/bryceautomation.com\/index.php\/2022\/09\/10\/kenbak-1-indirect-indexed-addressing\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/bryceautomation.com\/index.php\/2022\/09\/10\/kenbak-1-indirect-indexed-addressing\/","url":"https:\/\/bryceautomation.com\/index.php\/2022\/09\/10\/kenbak-1-indirect-indexed-addressing\/","name":"Kenbak-1 Indirect Indexed Addressing - Bryce Automation","isPartOf":{"@id":"https:\/\/bryceautomation.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/bryceautomation.com\/index.php\/2022\/09\/10\/kenbak-1-indirect-indexed-addressing\/#primaryimage"},"image":{"@id":"https:\/\/bryceautomation.com\/index.php\/2022\/09\/10\/kenbak-1-indirect-indexed-addressing\/#primaryimage"},"thumbnailUrl":"https:\/\/bryceautomation.com\/wp-content\/uploads\/2022\/09\/image-64.png","datePublished":"2022-09-10T20:30:11+00:00","dateModified":"2022-09-10T20:30:17+00:00","author":{"@id":"https:\/\/bryceautomation.com\/#\/schema\/person\/5d5b0f6f6ad768f1ee52968338e63af7"},"description":"Using Kenbak-1 Indirect, Indexed Addressing to index through 2 different arrays based on user input from the front panel.","breadcrumb":{"@id":"https:\/\/bryceautomation.com\/index.php\/2022\/09\/10\/kenbak-1-indirect-indexed-addressing\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/bryceautomation.com\/index.php\/2022\/09\/10\/kenbak-1-indirect-indexed-addressing\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/bryceautomation.com\/index.php\/2022\/09\/10\/kenbak-1-indirect-indexed-addressing\/#primaryimage","url":"https:\/\/bryceautomation.com\/wp-content\/uploads\/2022\/09\/image-64.png","contentUrl":"https:\/\/bryceautomation.com\/wp-content\/uploads\/2022\/09\/image-64.png","width":377,"height":170,"caption":"Indirect Indexed Addressing in the Kenbak-1"},{"@type":"BreadcrumbList","@id":"https:\/\/bryceautomation.com\/index.php\/2022\/09\/10\/kenbak-1-indirect-indexed-addressing\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/bryceautomation.com\/"},{"@type":"ListItem","position":2,"name":"Kenbak-1 Indirect Indexed Addressing"}]},{"@type":"WebSite","@id":"https:\/\/bryceautomation.com\/#website","url":"https:\/\/bryceautomation.com\/","name":"Bryce Automation","description":"Automating Home and Industry...","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/bryceautomation.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/bryceautomation.com\/#\/schema\/person\/5d5b0f6f6ad768f1ee52968338e63af7","name":"Ricky","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/bryceautomation.com\/wp-content\/wphb-cache\/gravatar\/a8f\/a8fe6bf79d292b388ffee281ccb12488x96.jpg","url":"https:\/\/bryceautomation.com\/wp-content\/wphb-cache\/gravatar\/a8f\/a8fe6bf79d292b388ffee281ccb12488x96.jpg","contentUrl":"https:\/\/bryceautomation.com\/wp-content\/wphb-cache\/gravatar\/a8f\/a8fe6bf79d292b388ffee281ccb12488x96.jpg","caption":"Ricky"},"sameAs":["http:\/\/bryceautomation.com","https:\/\/www.facebook.com\/ricky.bryce.7","https:\/\/www.linkedin.com\/in\/ricky-bryce-4367a416\/"],"url":"https:\/\/bryceautomation.com\/index.php\/author\/ricky\/"}]}},"_links":{"self":[{"href":"https:\/\/bryceautomation.com\/index.php\/wp-json\/wp\/v2\/posts\/13229","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bryceautomation.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/bryceautomation.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/bryceautomation.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/bryceautomation.com\/index.php\/wp-json\/wp\/v2\/comments?post=13229"}],"version-history":[{"count":0,"href":"https:\/\/bryceautomation.com\/index.php\/wp-json\/wp\/v2\/posts\/13229\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/bryceautomation.com\/index.php\/wp-json\/wp\/v2\/media\/13239"}],"wp:attachment":[{"href":"https:\/\/bryceautomation.com\/index.php\/wp-json\/wp\/v2\/media?parent=13229"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/bryceautomation.com\/index.php\/wp-json\/wp\/v2\/categories?post=13229"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/bryceautomation.com\/index.php\/wp-json\/wp\/v2\/tags?post=13229"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}