{"id":13191,"date":"2022-09-10T12:56:01","date_gmt":"2022-09-10T12:56:01","guid":{"rendered":"https:\/\/bryceautomation.com\/?p=13191"},"modified":"2022-09-11T09:27:37","modified_gmt":"2022-09-11T09:27:37","slug":"kenbak-1-indexed-addressing","status":"publish","type":"post","link":"https:\/\/bryceautomation.com\/index.php\/2022\/09\/10\/kenbak-1-indexed-addressing\/","title":{"rendered":"Kenbak-1 Indexed Addressing"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Introduction to Kenbak-1 Indexed Addressing<\/h2>\n\n\n\n<p>Kenbak-1 Indexed Addressing allows you to have a variable address.  Typically, we use this to move through a series of memory locations to get or store data.  In this example, we&#8217;ll create some crossing lights.  In other words, the lights will start at both ends of the 8 bit display, and move toward the opposite end of the display.  Effectively, they will &#8220;cross&#8221; in the middle.  You can enter any bit pattern to display though.  We are effectively creating a sequencer. <\/p><div id=\"bryce-322392294\" 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>There are several ways to make this happen, but in this post, we&#8217;ll concentrate on how to use indexed addressing.  <\/p>\n\n\n\n<p>In this case, we&#8217;ll use addresses 107 to 100 to store our bit pattern.  Our program will start in memory cell #4.  Just keep in mind that to keep things as simple as possible, we will enter our bit pattern backwards.  In other words, cell 100 will be the last bit pattern, and memory cell 107 will be the first.<\/p>\n\n\n\n<p>I&#8217;ll be using the<a href=\"http:\/\/www.neocomputer.org\/kenbak\/kenbak1-JS.html\"> Kenbak-1 Simulator <\/a>for this post, but you can use any Kenbak-1 replica that you like.  You can <a href=\"https:\/\/www.instructables.com\/25-Scale-KENBAK-1-Personal-Computer-Reproduction\/\">build your own<\/a>, or purchase a kit at<a href=\"https:\/\/adwaterandstir.com\/kenbak\/\"> adwaterandstir.com<\/a>. <\/p>\n\n\n\n<p>Before we begin, please print out some<a href=\"https:\/\/adwaterandstir.com\/wp-content\/uploads\/2018\/10\/KENBAK-Programming_Worksheets.pdf\"> Kenbak-1 worksheets. <\/a> This will help you to understand how we develop the instructions that we will enter.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">House Keeping<\/h2>\n\n\n\n<p>Let&#8217;s start off with some simple house keeping.  Keep in mind that addresses 000 to 002 are the registers.  Also, remember that memory cell 003 is the program counter.  We don&#8217;t really need to do much with the registers because our program will initialize those.  However, we do need to start the program counter at 004.  That way, when we run our program, the Kenbak-1 will start executing code from that memory cell.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"386\" height=\"173\" data-src=\"https:\/\/bryceautomation.com\/wp-content\/uploads\/2022\/09\/image-39.png\" alt=\"\" class=\"wp-image-13197 lazyload\" data-srcset=\"https:\/\/bryceautomation.com\/wp-content\/uploads\/2022\/09\/image-39.png 386w, https:\/\/bryceautomation.com\/wp-content\/uploads\/2022\/09\/image-39-300x134.png 300w\" data-sizes=\"(max-width: 386px) 100vw, 386px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 386px; --smush-placeholder-aspect-ratio: 386\/173;\" \/><\/figure>\n\n\n\n<p>For memory cells 001 to 011 simply initialize our registers.  Look at the programming worksheet, and compare this to memory cell #4.  For the first octal digit, we specify 0 for the &#8220;A&#8221; Register.  The second octal digit is 2, which is a load instruction.  Next, we want to load an immediate value, so the last octal digit is 3.  Therefore, in memory cell 004, we have &#8220;023&#8221;.  Memory cell 005 contains the immediate value that we want to load to the &#8220;A&#8221; Register.  We simply repeat this for the B register, &#8220;123&#8221;.  Additionally, we need to start the X register at a value of 7.  I&#8217;m doing it this way because with the Kenbak-1&#8217;s instruction set, it&#8217;s easier to count down toward 0, than to count up to an arbitrary value.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"338\" height=\"301\" data-src=\"https:\/\/bryceautomation.com\/wp-content\/uploads\/2022\/09\/image-37.png\" alt=\"\" class=\"wp-image-13195 lazyload\" data-srcset=\"https:\/\/bryceautomation.com\/wp-content\/uploads\/2022\/09\/image-37.png 338w, https:\/\/bryceautomation.com\/wp-content\/uploads\/2022\/09\/image-37-300x267.png 300w\" data-sizes=\"(max-width: 338px) 100vw, 338px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 338px; --smush-placeholder-aspect-ratio: 338\/301;\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Send Data to the Display<\/h2>\n\n\n\n<p>Now that our registers have initial values, we can start to send our bit pattern to the display.  As I said before, we will later store our bit patterns in cells 107 to 100.   Recall that we have our X register set to 007.  This is our index register.<\/p>\n\n\n\n<p>When we use Indexed addressing to load the A register, we have a variable address.  In other words, we will specify a specific memory location.  The Kenbak-1 adds the value of the X register to this memory location .  In other words, if we specify address 100 for the instruction, and the X register has the value of 7, then we will get data from memory cell 107.<\/p>\n\n\n\n<p>Let&#8217;s give this a try.  In memory cell 012, load the accumulator using indexed addressing, starting at cell 100.  If you look at our worksheet, the instruction will be 026.  0 for the A register, 2 for a LOAD instruction, and 6 for indexed addressing.  Memory cell 013 will have our reference value of 100.<\/p>\n\n\n\n<p>At this point, we need to store the value of the A register to the display.  Once again, look at your worksheet.  To store the A register to a memory location, we specify 034 for our instruction in cell 014.  Our worksheet tells us that the display is at address 200.  Therefore, we will enter 200 into memory cell 015.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"255\" height=\"34\" data-src=\"https:\/\/bryceautomation.com\/wp-content\/uploads\/2022\/09\/image-40.png\" alt=\"\" class=\"wp-image-13198 lazyload\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 255px; --smush-placeholder-aspect-ratio: 255\/34;\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Decrement the Index Register for Kenbak-1 Indexed Addressing<\/h2>\n\n\n\n<p>At this point, we need to decrement the X register.  We do this because the cell containing the data we want to send to the display next is in cell 106.  <\/p>\n\n\n\n<p>When we look at the worksheet, we can build this command easily.   The command is 213, and this goes into cell 016.  2 for the X register, 1 for a subtract, and 3 for an immediate value.  In cell 017, we specify how much to subtract from the X register.  This will be 1, and this goes into cell 017.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"254\" height=\"33\" data-src=\"https:\/\/bryceautomation.com\/wp-content\/uploads\/2022\/09\/image-41.png\" alt=\"\" class=\"wp-image-13200 lazyload\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 254px; --smush-placeholder-aspect-ratio: 254\/33;\" \/><\/figure>\n\n\n\n<p>We are not finished just yet.  We need to continue to decrement the X register, and update the display each time.  We&#8217;ll continue this until X reaches 0.  Therefore, we will need a conditional jump.  This needs to jump back to cell 012 where we reload the accumulator to display the next byte.<\/p>\n\n\n\n<p>Let&#8217;s look a little further down in our worksheet to develop this jump.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"346\" height=\"236\" data-src=\"https:\/\/bryceautomation.com\/wp-content\/uploads\/2022\/09\/image-43.png\" alt=\"\" class=\"wp-image-13202 lazyload\" data-srcset=\"https:\/\/bryceautomation.com\/wp-content\/uploads\/2022\/09\/image-43.png 346w, https:\/\/bryceautomation.com\/wp-content\/uploads\/2022\/09\/image-43-300x205.png 300w\" data-sizes=\"(max-width: 346px) 100vw, 346px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 346px; --smush-placeholder-aspect-ratio: 346\/236;\" \/><\/figure>\n\n\n\n<p>We want to base the jump on the value of the X register, so our first digit will be 2.  Since this will be a direct jump, our second digit is 4.  We want to continue this process while X is above or equal to 0.  Therefore, our last digit will be 6.  Our command is 246.  This will be in cell 020, and the cell we want to jump back to is 012.<\/p>\n\n\n\n<p><strong><em>Note: Currently, I&#8217;m having a little trouble with the simulator, and trying to get that resolved, but a temporary fix is to change the instruction at 020 to &#8220;247&#8221;.  You will just be missing the data at address 100 for now.  On the Kenbakuino, though, it seems to work as listed here.<\/em><\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"254\" height=\"35\" data-src=\"https:\/\/bryceautomation.com\/wp-content\/uploads\/2022\/09\/image-44.png\" alt=\"\" class=\"wp-image-13203 lazyload\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 254px; --smush-placeholder-aspect-ratio: 254\/35;\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Restart the program<\/h2>\n\n\n\n<p>At this point, we are ready to restart our bit pattern.  We&#8217;ll do an unconditional jump back to cell 004.<\/p>\n\n\n\n<p>We need an unconditional jump, so the first digit will be 3.  Since this is a direct jump, our second digit is 4.  We don&#8217;t really care much about the conditions since this jump is unconditional.  We&#8217;ll just set the last digit at 4.  Therefore our Jump command will be 344, and we jump back to cell #004.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"241\" height=\"34\" data-src=\"https:\/\/bryceautomation.com\/wp-content\/uploads\/2022\/09\/image-45.png\" alt=\"\" class=\"wp-image-13205 lazyload\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 241px; --smush-placeholder-aspect-ratio: 241\/34;\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Entering Data for Kenbak-1 Indexed Addressing<\/h2>\n\n\n\n<p>To set up the data you wish to display, go to address 100.  You can start entering display patterns up to address 107.  Keep in mind this data will display backward for this example.  Therefore 107 will show on your display first, then down to 100.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"756\" height=\"580\" data-src=\"https:\/\/bryceautomation.com\/wp-content\/uploads\/2022\/09\/image-46.png\" alt=\"\" class=\"wp-image-13206 lazyload\" data-srcset=\"https:\/\/bryceautomation.com\/wp-content\/uploads\/2022\/09\/image-46.png 756w, https:\/\/bryceautomation.com\/wp-content\/uploads\/2022\/09\/image-46-300x230.png 300w\" data-sizes=\"(max-width: 756px) 100vw, 756px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 756px; --smush-placeholder-aspect-ratio: 756\/580;\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Program Listings<\/h2>\n\n\n\n<p>If you are using the emulator online, you can load this code:  Just be sure to set your bit pattern in address 100 to 107.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><a href=\"http:\/\/www.neocomputer.org\/kenbak\/kenbak1-JS.html\">000 000 000 004 023 000 123 000 223 007 026 100 \n034 200 213 001 246 012 344 004<\/a><\/code><\/pre>\n\n\n\n<p>If you are using a Kenbakuino, you can load this code:  Again, don&#8217;t forget to set addresses 100 to 107.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>000,000,000,004,023,000,123,000,223,007,026,100,034,200,213,001,246,012,344,004,s<\/code><\/pre>\n\n\n\n<p>For more information on the Kenbak-1, visit 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-868813562\" 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 Kenbak-1 Indexed Addressing Kenbak-1 Indexed Addressing allows you to have a variable address. Typically, we use this to move through a series of memory locations to get or store data. In this example, we&#8217;ll create some crossing lights. In other words, the lights will start at both ends of the 8 bit display, <a class=\"moretag btn btn-primary\" href=\"https:\/\/bryceautomation.com\/index.php\/2022\/09\/10\/kenbak-1-indexed-addressing\/\">Read More \u00bb<\/a><\/p>\n","protected":false},"author":1,"featured_media":13206,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[762,727],"tags":[],"class_list":{"0":"post-13191","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-kenbak-1","8":"category-vintage-computers","9":"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 Indexed Addressing - Bryce Automation<\/title>\n<meta name=\"description\" content=\"Using Kenbak-1 Indexed Addressing to create a sequencer in which we can enter any bit pattern to continuously appear on the display.\" \/>\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-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 Indexed Addressing - Bryce Automation\" \/>\n<meta property=\"og:description\" content=\"Using Kenbak-1 Indexed Addressing to create a sequencer in which we can enter any bit pattern to continuously appear on the display.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/bryceautomation.com\/index.php\/2022\/09\/10\/kenbak-1-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-10T12:56:01+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-09-11T09:27:37+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/bryceautomation.com\/wp-content\/uploads\/2022\/09\/image-46.png\" \/>\n\t<meta property=\"og:image:width\" content=\"756\" \/>\n\t<meta property=\"og:image:height\" content=\"580\" \/>\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-indexed-addressing\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2022\\\/09\\\/10\\\/kenbak-1-indexed-addressing\\\/\"},\"author\":{\"name\":\"Ricky\",\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/#\\\/schema\\\/person\\\/5d5b0f6f6ad768f1ee52968338e63af7\"},\"headline\":\"Kenbak-1 Indexed Addressing\",\"datePublished\":\"2022-09-10T12:56:01+00:00\",\"dateModified\":\"2022-09-11T09:27:37+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2022\\\/09\\\/10\\\/kenbak-1-indexed-addressing\\\/\"},\"wordCount\":1093,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2022\\\/09\\\/10\\\/kenbak-1-indexed-addressing\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/bryceautomation.com\\\/wp-content\\\/uploads\\\/2022\\\/09\\\/image-46.png\",\"articleSection\":[\"Kenbak-1\",\"Vintage Computers\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2022\\\/09\\\/10\\\/kenbak-1-indexed-addressing\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2022\\\/09\\\/10\\\/kenbak-1-indexed-addressing\\\/\",\"url\":\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2022\\\/09\\\/10\\\/kenbak-1-indexed-addressing\\\/\",\"name\":\"Kenbak-1 Indexed Addressing - Bryce Automation\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2022\\\/09\\\/10\\\/kenbak-1-indexed-addressing\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2022\\\/09\\\/10\\\/kenbak-1-indexed-addressing\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/bryceautomation.com\\\/wp-content\\\/uploads\\\/2022\\\/09\\\/image-46.png\",\"datePublished\":\"2022-09-10T12:56:01+00:00\",\"dateModified\":\"2022-09-11T09:27:37+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/#\\\/schema\\\/person\\\/5d5b0f6f6ad768f1ee52968338e63af7\"},\"description\":\"Using Kenbak-1 Indexed Addressing to create a sequencer in which we can enter any bit pattern to continuously appear on the display.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2022\\\/09\\\/10\\\/kenbak-1-indexed-addressing\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2022\\\/09\\\/10\\\/kenbak-1-indexed-addressing\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2022\\\/09\\\/10\\\/kenbak-1-indexed-addressing\\\/#primaryimage\",\"url\":\"https:\\\/\\\/bryceautomation.com\\\/wp-content\\\/uploads\\\/2022\\\/09\\\/image-46.png\",\"contentUrl\":\"https:\\\/\\\/bryceautomation.com\\\/wp-content\\\/uploads\\\/2022\\\/09\\\/image-46.png\",\"width\":756,\"height\":580,\"caption\":\"Kenbak-1 Indexed Addressing\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2022\\\/09\\\/10\\\/kenbak-1-indexed-addressing\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/bryceautomation.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Kenbak-1 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 Indexed Addressing - Bryce Automation","description":"Using Kenbak-1 Indexed Addressing to create a sequencer in which we can enter any bit pattern to continuously appear on the display.","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-indexed-addressing\/","og_locale":"en_US","og_type":"article","og_title":"Kenbak-1 Indexed Addressing - Bryce Automation","og_description":"Using Kenbak-1 Indexed Addressing to create a sequencer in which we can enter any bit pattern to continuously appear on the display.","og_url":"https:\/\/bryceautomation.com\/index.php\/2022\/09\/10\/kenbak-1-indexed-addressing\/","og_site_name":"Bryce Automation","article_author":"https:\/\/www.facebook.com\/ricky.bryce.7","article_published_time":"2022-09-10T12:56:01+00:00","article_modified_time":"2022-09-11T09:27:37+00:00","og_image":[{"width":756,"height":580,"url":"https:\/\/bryceautomation.com\/wp-content\/uploads\/2022\/09\/image-46.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-indexed-addressing\/#article","isPartOf":{"@id":"https:\/\/bryceautomation.com\/index.php\/2022\/09\/10\/kenbak-1-indexed-addressing\/"},"author":{"name":"Ricky","@id":"https:\/\/bryceautomation.com\/#\/schema\/person\/5d5b0f6f6ad768f1ee52968338e63af7"},"headline":"Kenbak-1 Indexed Addressing","datePublished":"2022-09-10T12:56:01+00:00","dateModified":"2022-09-11T09:27:37+00:00","mainEntityOfPage":{"@id":"https:\/\/bryceautomation.com\/index.php\/2022\/09\/10\/kenbak-1-indexed-addressing\/"},"wordCount":1093,"commentCount":0,"image":{"@id":"https:\/\/bryceautomation.com\/index.php\/2022\/09\/10\/kenbak-1-indexed-addressing\/#primaryimage"},"thumbnailUrl":"https:\/\/bryceautomation.com\/wp-content\/uploads\/2022\/09\/image-46.png","articleSection":["Kenbak-1","Vintage Computers"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/bryceautomation.com\/index.php\/2022\/09\/10\/kenbak-1-indexed-addressing\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/bryceautomation.com\/index.php\/2022\/09\/10\/kenbak-1-indexed-addressing\/","url":"https:\/\/bryceautomation.com\/index.php\/2022\/09\/10\/kenbak-1-indexed-addressing\/","name":"Kenbak-1 Indexed Addressing - Bryce Automation","isPartOf":{"@id":"https:\/\/bryceautomation.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/bryceautomation.com\/index.php\/2022\/09\/10\/kenbak-1-indexed-addressing\/#primaryimage"},"image":{"@id":"https:\/\/bryceautomation.com\/index.php\/2022\/09\/10\/kenbak-1-indexed-addressing\/#primaryimage"},"thumbnailUrl":"https:\/\/bryceautomation.com\/wp-content\/uploads\/2022\/09\/image-46.png","datePublished":"2022-09-10T12:56:01+00:00","dateModified":"2022-09-11T09:27:37+00:00","author":{"@id":"https:\/\/bryceautomation.com\/#\/schema\/person\/5d5b0f6f6ad768f1ee52968338e63af7"},"description":"Using Kenbak-1 Indexed Addressing to create a sequencer in which we can enter any bit pattern to continuously appear on the display.","breadcrumb":{"@id":"https:\/\/bryceautomation.com\/index.php\/2022\/09\/10\/kenbak-1-indexed-addressing\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/bryceautomation.com\/index.php\/2022\/09\/10\/kenbak-1-indexed-addressing\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/bryceautomation.com\/index.php\/2022\/09\/10\/kenbak-1-indexed-addressing\/#primaryimage","url":"https:\/\/bryceautomation.com\/wp-content\/uploads\/2022\/09\/image-46.png","contentUrl":"https:\/\/bryceautomation.com\/wp-content\/uploads\/2022\/09\/image-46.png","width":756,"height":580,"caption":"Kenbak-1 Indexed Addressing"},{"@type":"BreadcrumbList","@id":"https:\/\/bryceautomation.com\/index.php\/2022\/09\/10\/kenbak-1-indexed-addressing\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/bryceautomation.com\/"},{"@type":"ListItem","position":2,"name":"Kenbak-1 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\/13191","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=13191"}],"version-history":[{"count":0,"href":"https:\/\/bryceautomation.com\/index.php\/wp-json\/wp\/v2\/posts\/13191\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/bryceautomation.com\/index.php\/wp-json\/wp\/v2\/media\/13206"}],"wp:attachment":[{"href":"https:\/\/bryceautomation.com\/index.php\/wp-json\/wp\/v2\/media?parent=13191"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/bryceautomation.com\/index.php\/wp-json\/wp\/v2\/categories?post=13191"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/bryceautomation.com\/index.php\/wp-json\/wp\/v2\/tags?post=13191"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}