{"id":13365,"date":"2022-09-19T23:25:58","date_gmt":"2022-09-19T23:25:58","guid":{"rendered":"https:\/\/bryceautomation.com\/?p=13365"},"modified":"2022-09-23T07:50:42","modified_gmt":"2022-09-23T07:50:42","slug":"kenbak-1-relative-jumps","status":"publish","type":"post","link":"https:\/\/bryceautomation.com\/index.php\/2022\/09\/19\/kenbak-1-relative-jumps\/","title":{"rendered":"Kenbak-1 Relative Jumps"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Introduction to Kenbak-1 Relative Jumps<\/h2>\n\n\n\n<p>Kenbak-1 Relative Jumps will jump to a location relative to the program counter.  Really, there is no relative jump instruction.  Therefore, if we require a relative jump we will do this with the JPI (Indirect Jump) instruction.<\/p><div id=\"bryce-188820312\" 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 advantage of relative jumps is that we can jump to a memory location no matter where the user loaded the program into memory.  Really, we can do the same with relative addressing by referencing a memory location.  We have to be careful with memory in the Kenbak-1 though.  If we start writing programs that write programs, then we can run out of memory in the Kenbak-1 very fast.  Additionally, this is confusing.  We can&#8217;t make everything &#8220;dummy-proof&#8221; in the Kenbak-1.  It was 1971.  Users were fine with just following written instructions on what they needed to do to make a program run.<\/p>\n\n\n\n<p>For example, if you want to use the same routine in multiple programs you could use relative addressing.  Then you can just paste the code throughout your programs without having to change the addresses every time.<\/p>\n\n\n\n<p>In this post, we&#8217;ll just do a simple demonstration of how we would create a relative jump.  Once again, I&#8217;ll build this project on the <a href=\"http:\/\/www.neocomputer.org\/kenbak\/kenbak1-JS.html\">Kenbak-1 Web Emulator.<\/a>  You can use it just the same on the <a href=\"https:\/\/adwaterandstir.com\/kenbak\/\">Kenbakuino<\/a>.  I&#8217;ll show the octal dump at the end of this post.  That way, you can just paste it into your terminal.  Another option is to enter the program manually through the front panel buttons.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Initialize Your Registers<\/h2>\n\n\n\n<p>I like to start off every project by initializing the registers.   We&#8217;ll load A, B, and X with zeros, and then we&#8217;ll write a 004 to the program counter.  That way, your program starts at cell #004.<\/p>\n\n\n\n<p>Next, I always set the registers to zero through program code.  The reason for this is that if we ever want to reset the variables to zero, the code is already in place.  Additionally, if someone changed the values while the program was not running, we are sure they are all set to zero.<\/p>\n\n\n\n<p>Let&#8217;s look at our programming worksheet for our load instructions:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"441\" height=\"343\" data-src=\"https:\/\/bryceautomation.com\/wp-content\/uploads\/2022\/09\/image-88.png\" alt=\"\" class=\"wp-image-13369 lazyload\" data-srcset=\"https:\/\/bryceautomation.com\/wp-content\/uploads\/2022\/09\/image-88.png 441w, https:\/\/bryceautomation.com\/wp-content\/uploads\/2022\/09\/image-88-300x233.png 300w\" data-sizes=\"(max-width: 441px) 100vw, 441px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 441px; --smush-placeholder-aspect-ratio: 441\/343;\" \/><\/figure>\n\n\n\n<pre class=\"wp-block-code\"><code>INIT:\n000: 000 000 000 004\n\nRESTART\n004: 023 000 LDA 000\n006: 123 000 LDB 000\n010: 223 000 LDX 000<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Build the Jump Location, and Jump to a Relative Address<\/h2>\n\n\n\n<p>In this logic, we will not be jumping to a memory cell directly.  We will use an indirect jump.  Before we utilize the indirect jump, we must build the address for the cell we wish to jump to.  We&#8217;ll do this through the accumulator.  We&#8217;ll simply load the accumulator with the program counter.  After that, we&#8217;ll add an offset.  The end result should be an address that we desire the program to jump to.<\/p>\n\n\n\n<p>Let&#8217;s take a look at our programming worksheet for the Jumps.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"351\" height=\"242\" data-src=\"https:\/\/bryceautomation.com\/wp-content\/uploads\/2022\/09\/image-87.png\" alt=\"\" class=\"wp-image-13368 lazyload\" data-srcset=\"https:\/\/bryceautomation.com\/wp-content\/uploads\/2022\/09\/image-87.png 351w, https:\/\/bryceautomation.com\/wp-content\/uploads\/2022\/09\/image-87-300x207.png 300w\" data-sizes=\"(max-width: 351px) 100vw, 351px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 351px; --smush-placeholder-aspect-ratio: 351\/242;\" \/><\/figure>\n\n\n\n<pre class=\"wp-block-code\"><code>IADDRESS:\n012: 024 003 LDA PC (LOAD A WITH PROGRAM COUNTER)\n014: 003 016 ADD A 016 (OFFSET FOR JUMP LOCATION)\n016: 354 000 JPI &#91;000] THIS SHOULD JUMP TO CELL (30)\n020: 000 000 000 000 000 000 000 000  Empty Space<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Jump Back using Kenbak-1 Relative Jumps<\/h2>\n\n\n\n<p>At this point, we&#8217;ll create some simple logic for a binary counter.  After that, we&#8217;ll jump back to the routine that we jumped from.  Again, after we run our logic, we have to build the address we need to jump back to.  It&#8217;s important to realize that even though we know we want to jump back to cell 012, we need to base our jump location on the program counter.  This is because if a programmer pasted this logic into different programs, we won&#8217;t know the new addresses where this logic resides.  In other words, in another program this logic might start at address 100.  Another program might use this logic at address 050, and so on.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>INCB:\n030: 103 001 ADD B 001  (B=B+1)\n032: 134 200 STB 200 STORE B TO DISPLAY\n034: 024 003 LDA &#91;003] LOAD A WITH PROGRAM COUNTER\n036: 013 022 SUB A 022 (BACK 22 OCTAL MEMORY CELLS)\n040: 354 000 JPI &#91;000] THIS SHOULD BE CELL 012<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Full Code<\/h2>\n\n\n\n<p>Here is the full code, which you can paste directly into the Kenbak-1 Emulator<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>INIT:\n000: 000 000 000 004\n\nRESTART\n004: 023 000 LDA 000\n006: 123 000 LDB 000\n010: 223 000 LDX 000\n\nIADDRESS:\n012: 024 003 LDA PC (LOAD A WITH PROGRAM COUNTER)\n014: 003 016 ADD A 016 (OFFSET FOR JUMP LOCATION)\n016: 354 000 JPI &#91;000] THIS SHOULD JUMP TO CELL (30)\n020: 000 000 000 000 000 000 000 000  Empty Space\n\nINCB:\n030: 103 001 ADD B 001  (B=B+1)\n032: 134 200 STB 200 STORE B TO DISPLAY\n034: 024 003 LDA &#91;003] LOAD A WITH PROGRAM COUNTER\n036: 013 022 SUB A 022 (BACK 22 OCTAL MEMORY CELLS)\n040: 354 000 JPI &#91;000] THIS SHOULD BE CELL 012<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Octal Dump<\/h2>\n\n\n\n<p>If you use a hardware emulator, you can set it up to receive the data from your terminal, or enter the data manually.  <\/p>\n\n\n\n<p><strong><em>Note:  There seems to be a difference in the way the Kenbak-1 Emulator work, and the Kenbakuino.  There seems to be a difference in the way they are updating the program counter while loading from the program counter.  To make this work on the Kenbakuino, simply change cell 015 to the value of 014 for now.  I&#8217;ll run some more tests later to try to figure out exactly what his happening with that.<\/em><\/strong><\/p>\n\n\n\n<p><em><strong>Update:  As of September 23, 2022, Mark has updated the <a href=\"https:\/\/github.com\/funnypolynomial\/Kenbakuino\">Github Repository<\/a> to fix the program counter for the Kenbakuino.  If you have a version after this date, then you can use the octal value of 016 in memory cell 015 (instead of 14).  Thanks, Mark!<\/strong><\/em><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>000,000,000,004,023,000,123,000,223,000,024,003,003,<mark style=\"background-color:#fcb900\" class=\"has-inline-color has-black-color\">016<\/mark>,354,000,000,000,000,000,000,000,000,000,103,001,134,200,024,003,013,022,354,000,s<\/code><\/pre>\n\n\n\n<p>For more information, 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-1685636440\" 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 Relative Jumps Kenbak-1 Relative Jumps will jump to a location relative to the program counter. Really, there is no relative jump instruction. Therefore, if we require a relative jump we will do this with the JPI (Indirect Jump) instruction. The advantage of relative jumps is that we can jump to a memory <a class=\"moretag btn btn-primary\" href=\"https:\/\/bryceautomation.com\/index.php\/2022\/09\/19\/kenbak-1-relative-jumps\/\">Read More \u00bb<\/a><\/p>\n","protected":false},"author":1,"featured_media":13368,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[762,727],"tags":[752,807],"class_list":{"0":"post-13365","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-jpi","10":"tag-relative-addressing","11":"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 Relative Jumps - Bryce Automation<\/title>\n<meta name=\"description\" content=\"Use Kenbak-1 Relative Jumps to jump to a memory cell relative to the cell that you are executing the program from.\" \/>\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\/19\/kenbak-1-relative-jumps\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Kenbak-1 Relative Jumps - Bryce Automation\" \/>\n<meta property=\"og:description\" content=\"Use Kenbak-1 Relative Jumps to jump to a memory cell relative to the cell that you are executing the program from.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/bryceautomation.com\/index.php\/2022\/09\/19\/kenbak-1-relative-jumps\/\" \/>\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-19T23:25:58+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-09-23T07:50:42+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/bryceautomation.com\/wp-content\/uploads\/2022\/09\/image-87.png\" \/>\n\t<meta property=\"og:image:width\" content=\"351\" \/>\n\t<meta property=\"og:image:height\" content=\"242\" \/>\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\\\/19\\\/kenbak-1-relative-jumps\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2022\\\/09\\\/19\\\/kenbak-1-relative-jumps\\\/\"},\"author\":{\"name\":\"Ricky\",\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/#\\\/schema\\\/person\\\/5d5b0f6f6ad768f1ee52968338e63af7\"},\"headline\":\"Kenbak-1 Relative Jumps\",\"datePublished\":\"2022-09-19T23:25:58+00:00\",\"dateModified\":\"2022-09-23T07:50:42+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2022\\\/09\\\/19\\\/kenbak-1-relative-jumps\\\/\"},\"wordCount\":752,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2022\\\/09\\\/19\\\/kenbak-1-relative-jumps\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/bryceautomation.com\\\/wp-content\\\/uploads\\\/2022\\\/09\\\/image-87.png\",\"keywords\":[\"JPI\",\"relative addressing\"],\"articleSection\":[\"Kenbak-1\",\"Vintage Computers\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2022\\\/09\\\/19\\\/kenbak-1-relative-jumps\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2022\\\/09\\\/19\\\/kenbak-1-relative-jumps\\\/\",\"url\":\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2022\\\/09\\\/19\\\/kenbak-1-relative-jumps\\\/\",\"name\":\"Kenbak-1 Relative Jumps - Bryce Automation\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2022\\\/09\\\/19\\\/kenbak-1-relative-jumps\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2022\\\/09\\\/19\\\/kenbak-1-relative-jumps\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/bryceautomation.com\\\/wp-content\\\/uploads\\\/2022\\\/09\\\/image-87.png\",\"datePublished\":\"2022-09-19T23:25:58+00:00\",\"dateModified\":\"2022-09-23T07:50:42+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/#\\\/schema\\\/person\\\/5d5b0f6f6ad768f1ee52968338e63af7\"},\"description\":\"Use Kenbak-1 Relative Jumps to jump to a memory cell relative to the cell that you are executing the program from.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2022\\\/09\\\/19\\\/kenbak-1-relative-jumps\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2022\\\/09\\\/19\\\/kenbak-1-relative-jumps\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2022\\\/09\\\/19\\\/kenbak-1-relative-jumps\\\/#primaryimage\",\"url\":\"https:\\\/\\\/bryceautomation.com\\\/wp-content\\\/uploads\\\/2022\\\/09\\\/image-87.png\",\"contentUrl\":\"https:\\\/\\\/bryceautomation.com\\\/wp-content\\\/uploads\\\/2022\\\/09\\\/image-87.png\",\"width\":351,\"height\":242,\"caption\":\"Kenbak-1 Relative Jumps\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2022\\\/09\\\/19\\\/kenbak-1-relative-jumps\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/bryceautomation.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Kenbak-1 Relative Jumps\"}]},{\"@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 Relative Jumps - Bryce Automation","description":"Use Kenbak-1 Relative Jumps to jump to a memory cell relative to the cell that you are executing the program from.","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\/19\/kenbak-1-relative-jumps\/","og_locale":"en_US","og_type":"article","og_title":"Kenbak-1 Relative Jumps - Bryce Automation","og_description":"Use Kenbak-1 Relative Jumps to jump to a memory cell relative to the cell that you are executing the program from.","og_url":"https:\/\/bryceautomation.com\/index.php\/2022\/09\/19\/kenbak-1-relative-jumps\/","og_site_name":"Bryce Automation","article_author":"https:\/\/www.facebook.com\/ricky.bryce.7","article_published_time":"2022-09-19T23:25:58+00:00","article_modified_time":"2022-09-23T07:50:42+00:00","og_image":[{"width":351,"height":242,"url":"https:\/\/bryceautomation.com\/wp-content\/uploads\/2022\/09\/image-87.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\/19\/kenbak-1-relative-jumps\/#article","isPartOf":{"@id":"https:\/\/bryceautomation.com\/index.php\/2022\/09\/19\/kenbak-1-relative-jumps\/"},"author":{"name":"Ricky","@id":"https:\/\/bryceautomation.com\/#\/schema\/person\/5d5b0f6f6ad768f1ee52968338e63af7"},"headline":"Kenbak-1 Relative Jumps","datePublished":"2022-09-19T23:25:58+00:00","dateModified":"2022-09-23T07:50:42+00:00","mainEntityOfPage":{"@id":"https:\/\/bryceautomation.com\/index.php\/2022\/09\/19\/kenbak-1-relative-jumps\/"},"wordCount":752,"commentCount":0,"image":{"@id":"https:\/\/bryceautomation.com\/index.php\/2022\/09\/19\/kenbak-1-relative-jumps\/#primaryimage"},"thumbnailUrl":"https:\/\/bryceautomation.com\/wp-content\/uploads\/2022\/09\/image-87.png","keywords":["JPI","relative addressing"],"articleSection":["Kenbak-1","Vintage Computers"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/bryceautomation.com\/index.php\/2022\/09\/19\/kenbak-1-relative-jumps\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/bryceautomation.com\/index.php\/2022\/09\/19\/kenbak-1-relative-jumps\/","url":"https:\/\/bryceautomation.com\/index.php\/2022\/09\/19\/kenbak-1-relative-jumps\/","name":"Kenbak-1 Relative Jumps - Bryce Automation","isPartOf":{"@id":"https:\/\/bryceautomation.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/bryceautomation.com\/index.php\/2022\/09\/19\/kenbak-1-relative-jumps\/#primaryimage"},"image":{"@id":"https:\/\/bryceautomation.com\/index.php\/2022\/09\/19\/kenbak-1-relative-jumps\/#primaryimage"},"thumbnailUrl":"https:\/\/bryceautomation.com\/wp-content\/uploads\/2022\/09\/image-87.png","datePublished":"2022-09-19T23:25:58+00:00","dateModified":"2022-09-23T07:50:42+00:00","author":{"@id":"https:\/\/bryceautomation.com\/#\/schema\/person\/5d5b0f6f6ad768f1ee52968338e63af7"},"description":"Use Kenbak-1 Relative Jumps to jump to a memory cell relative to the cell that you are executing the program from.","breadcrumb":{"@id":"https:\/\/bryceautomation.com\/index.php\/2022\/09\/19\/kenbak-1-relative-jumps\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/bryceautomation.com\/index.php\/2022\/09\/19\/kenbak-1-relative-jumps\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/bryceautomation.com\/index.php\/2022\/09\/19\/kenbak-1-relative-jumps\/#primaryimage","url":"https:\/\/bryceautomation.com\/wp-content\/uploads\/2022\/09\/image-87.png","contentUrl":"https:\/\/bryceautomation.com\/wp-content\/uploads\/2022\/09\/image-87.png","width":351,"height":242,"caption":"Kenbak-1 Relative Jumps"},{"@type":"BreadcrumbList","@id":"https:\/\/bryceautomation.com\/index.php\/2022\/09\/19\/kenbak-1-relative-jumps\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/bryceautomation.com\/"},{"@type":"ListItem","position":2,"name":"Kenbak-1 Relative Jumps"}]},{"@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\/13365","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=13365"}],"version-history":[{"count":0,"href":"https:\/\/bryceautomation.com\/index.php\/wp-json\/wp\/v2\/posts\/13365\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/bryceautomation.com\/index.php\/wp-json\/wp\/v2\/media\/13368"}],"wp:attachment":[{"href":"https:\/\/bryceautomation.com\/index.php\/wp-json\/wp\/v2\/media?parent=13365"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/bryceautomation.com\/index.php\/wp-json\/wp\/v2\/categories?post=13365"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/bryceautomation.com\/index.php\/wp-json\/wp\/v2\/tags?post=13365"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}