{"id":14263,"date":"2022-11-06T15:24:51","date_gmt":"2022-11-06T15:24:51","guid":{"rendered":"https:\/\/bryceautomation.com\/?p=14263"},"modified":"2022-11-06T15:24:54","modified_gmt":"2022-11-06T15:24:54","slug":"cosmac-1802-subroutines","status":"publish","type":"post","link":"https:\/\/bryceautomation.com\/index.php\/2022\/11\/06\/cosmac-1802-subroutines\/","title":{"rendered":"COSMAC 1802 Subroutines"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Introduction to COSMAC 1802 Subroutines<\/h2>\n\n\n\n<p>We use COSMAC 1802 Subroutines to execute a specific set of instructions.  For example, we might have a subroutine that causes a delay every time we execute it.  You could also have a subroutine that converts Celsius to Fahrenheit, or vice versa.  We might call this subroutine several times through our code.<\/p><div id=\"bryce-3439871119\" 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>Branching will also jump to another location in memory.  The problem with a simple branch, however, is that we don&#8217;t always know what location to go back to.  When using code as a subroutine, we can always get back to where we left off in your main logic.<\/p>\n\n\n\n<p>The COSMAC does not officially support a JSR, like you would see in other processors.  It does, however, use a program counter to keep track of where it&#8217;s executing code.  We can change the register on the fly that is acting as our program counter.<\/p>\n\n\n\n<p>Your program counter will usually be at R0, but if we load a location into R3, for example, we can just switch the program counter to Register 3.  The COSMAC will jump to that location.<\/p>\n\n\n\n<p>When the subroutine finishes executing, it can just change the program counter back to R0.  It will pick up where it left off.  Before we do that though, we need to restore R3 to the original value.  That way, the next time the program runs, R3 will already be set to the correct address that we need to jump to.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"334\" height=\"305\" data-src=\"https:\/\/bryceautomation.com\/wp-content\/uploads\/2022\/11\/image-5.png\" alt=\"\" class=\"wp-image-14266 lazyload\" data-srcset=\"https:\/\/bryceautomation.com\/wp-content\/uploads\/2022\/11\/image-5.png 334w, https:\/\/bryceautomation.com\/wp-content\/uploads\/2022\/11\/image-5-300x274.png 300w\" data-sizes=\"(max-width: 334px) 100vw, 334px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 334px; --smush-placeholder-aspect-ratio: 334\/305;\" \/><\/figure>\n\n\n\n<p>Let&#8217;s take a look at how we would do this:<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Code Example for COSMAC 1802 Subroutines<\/h2>\n\n\n\n<p>Consider the following code:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>R3\t    EQU\t    3\nR4          EQU     4\n\n            ORG     8000H\n            LOAD    R3, DELAY\n\nSTART:      SEQ                ; TURN ON Q\n            SEP     3          ; EXECUTE DELAY\n            REQ                ; SHUT OFF Q\n            SEP     3          ; EXECUTE DELAY\n            BR      START\n    \n    \nRET_DELAY:  SEP     0\n            \nDELAY:      LDI     FFH\n            PHI     R4\n            PLO     R4\nHIGHLOOP:   GHI     R4\nLOWLOOP:    GLO     R4\n            SMI     01H\n            PLO     R4\n            BNZ     LOWLOOP\n            GHI     R4\n            SMI     01H\n            PHI     R4\n            BNZ     HIGHLOOP\n            BR      RET_DELAY\n            END\n<\/code><\/pre>\n\n\n\n<p>Right after we declare R3 and being equal to 3 (for clarification), we load the address of our delay loop into R3.  After that, we turn on Q with the SEQ instruction.<\/p>\n\n\n\n<p>At this point, we set the program counter to 3.  Keep in mind that R3 now contains the address of our delay loop.  Therefore the COSMAC jumps down and executes a delay.  This loop is 2 levels deep to give us plenty of delay.  After the processor executes the loop, it will run to RET_DELAY.  This advances R3, and now the program counter is back to 0.  The processor resumes where we left off in the main code.<\/p>\n\n\n\n<p>The reason we put the &#8220;SEP 0&#8221; instruction above the loop is so R3 will be reset to the top of our delay loop.  We need to do this before we switch the program counter back to 0.  Basically, this program will turn your Q output on for one second.  Then, it shuts Q off for about a second.  Obviously, for less of a delay, you would lower the values in the delay loop.  A lower value means the processor does not need to loop as many times.  Your program becomes faster.<\/p>\n\n\n\n<p>Remember, the only purpose of the delay loops is to keep the processor busy for a certain amount of time.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Summary of COSMAC 1802 Subroutines<\/h2>\n\n\n\n<p>Although there is no jump to subroutine instruction in the COSMAC, we can emulate this.  We just switch to a different program counter that already contains the starting address of your subroutine.  Common practice is to place the SEP 0 just before the subroutine executes.  When the subroutine finishes, it jumps back to the SEP 0 instruction to reset the subroutine&#8217;s program counter.  We can now call this delay routine from anywhere in the program without forgetting where we left off in the main logic.<\/p>\n\n\n\n<p>For more information, visit the<em><a href=\"https:\/\/bryceautomation.com\/index.php\/category\/vintage-computers\/cosmac\/\"> COSMAC Category Page!<\/a><\/em><\/p>\n\n\n\n<p>&#8212; Ricky Bryce<\/p>\n<div id=\"bryce-2996125811\" 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 COSMAC 1802 Subroutines We use COSMAC 1802 Subroutines to execute a specific set of instructions. For example, we might have a subroutine that causes a delay every time we execute it. You could also have a subroutine that converts Celsius to Fahrenheit, or vice versa. We might call this subroutine several times through <a class=\"moretag btn btn-primary\" href=\"https:\/\/bryceautomation.com\/index.php\/2022\/11\/06\/cosmac-1802-subroutines\/\">Read More \u00bb<\/a><\/p>\n","protected":false},"author":1,"featured_media":14266,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[821,727],"tags":[866,13],"class_list":{"0":"post-14263","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-cosmac","8":"category-vintage-computers","9":"tag-jsr","10":"tag-subroutines","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>COSMAC 1802 Subroutines - Bryce Automation<\/title>\n<meta name=\"description\" content=\"Setting up COSMAC 1802 Subroutines. We just need to change the program counter, execute the subroutine, then switch the program counter back.\" \/>\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\/11\/06\/cosmac-1802-subroutines\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"COSMAC 1802 Subroutines - Bryce Automation\" \/>\n<meta property=\"og:description\" content=\"Setting up COSMAC 1802 Subroutines. We just need to change the program counter, execute the subroutine, then switch the program counter back.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/bryceautomation.com\/index.php\/2022\/11\/06\/cosmac-1802-subroutines\/\" \/>\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-11-06T15:24:51+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-11-06T15:24:54+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/bryceautomation.com\/wp-content\/uploads\/2022\/11\/image-5.png\" \/>\n\t<meta property=\"og:image:width\" content=\"334\" \/>\n\t<meta property=\"og:image:height\" content=\"305\" \/>\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\\\/11\\\/06\\\/cosmac-1802-subroutines\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2022\\\/11\\\/06\\\/cosmac-1802-subroutines\\\/\"},\"author\":{\"name\":\"Ricky\",\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/#\\\/schema\\\/person\\\/5d5b0f6f6ad768f1ee52968338e63af7\"},\"headline\":\"COSMAC 1802 Subroutines\",\"datePublished\":\"2022-11-06T15:24:51+00:00\",\"dateModified\":\"2022-11-06T15:24:54+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2022\\\/11\\\/06\\\/cosmac-1802-subroutines\\\/\"},\"wordCount\":582,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2022\\\/11\\\/06\\\/cosmac-1802-subroutines\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/bryceautomation.com\\\/wp-content\\\/uploads\\\/2022\\\/11\\\/image-5.png\",\"keywords\":[\"jsr\",\"Subroutines\"],\"articleSection\":[\"COSMAC\",\"Vintage Computers\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2022\\\/11\\\/06\\\/cosmac-1802-subroutines\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2022\\\/11\\\/06\\\/cosmac-1802-subroutines\\\/\",\"url\":\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2022\\\/11\\\/06\\\/cosmac-1802-subroutines\\\/\",\"name\":\"COSMAC 1802 Subroutines - Bryce Automation\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2022\\\/11\\\/06\\\/cosmac-1802-subroutines\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2022\\\/11\\\/06\\\/cosmac-1802-subroutines\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/bryceautomation.com\\\/wp-content\\\/uploads\\\/2022\\\/11\\\/image-5.png\",\"datePublished\":\"2022-11-06T15:24:51+00:00\",\"dateModified\":\"2022-11-06T15:24:54+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/#\\\/schema\\\/person\\\/5d5b0f6f6ad768f1ee52968338e63af7\"},\"description\":\"Setting up COSMAC 1802 Subroutines. We just need to change the program counter, execute the subroutine, then switch the program counter back.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2022\\\/11\\\/06\\\/cosmac-1802-subroutines\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2022\\\/11\\\/06\\\/cosmac-1802-subroutines\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2022\\\/11\\\/06\\\/cosmac-1802-subroutines\\\/#primaryimage\",\"url\":\"https:\\\/\\\/bryceautomation.com\\\/wp-content\\\/uploads\\\/2022\\\/11\\\/image-5.png\",\"contentUrl\":\"https:\\\/\\\/bryceautomation.com\\\/wp-content\\\/uploads\\\/2022\\\/11\\\/image-5.png\",\"width\":334,\"height\":305,\"caption\":\"COSMAC 1802 Subroutines\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2022\\\/11\\\/06\\\/cosmac-1802-subroutines\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/bryceautomation.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"COSMAC 1802 Subroutines\"}]},{\"@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":"COSMAC 1802 Subroutines - Bryce Automation","description":"Setting up COSMAC 1802 Subroutines. We just need to change the program counter, execute the subroutine, then switch the program counter back.","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\/11\/06\/cosmac-1802-subroutines\/","og_locale":"en_US","og_type":"article","og_title":"COSMAC 1802 Subroutines - Bryce Automation","og_description":"Setting up COSMAC 1802 Subroutines. We just need to change the program counter, execute the subroutine, then switch the program counter back.","og_url":"https:\/\/bryceautomation.com\/index.php\/2022\/11\/06\/cosmac-1802-subroutines\/","og_site_name":"Bryce Automation","article_author":"https:\/\/www.facebook.com\/ricky.bryce.7","article_published_time":"2022-11-06T15:24:51+00:00","article_modified_time":"2022-11-06T15:24:54+00:00","og_image":[{"width":334,"height":305,"url":"https:\/\/bryceautomation.com\/wp-content\/uploads\/2022\/11\/image-5.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\/11\/06\/cosmac-1802-subroutines\/#article","isPartOf":{"@id":"https:\/\/bryceautomation.com\/index.php\/2022\/11\/06\/cosmac-1802-subroutines\/"},"author":{"name":"Ricky","@id":"https:\/\/bryceautomation.com\/#\/schema\/person\/5d5b0f6f6ad768f1ee52968338e63af7"},"headline":"COSMAC 1802 Subroutines","datePublished":"2022-11-06T15:24:51+00:00","dateModified":"2022-11-06T15:24:54+00:00","mainEntityOfPage":{"@id":"https:\/\/bryceautomation.com\/index.php\/2022\/11\/06\/cosmac-1802-subroutines\/"},"wordCount":582,"commentCount":0,"image":{"@id":"https:\/\/bryceautomation.com\/index.php\/2022\/11\/06\/cosmac-1802-subroutines\/#primaryimage"},"thumbnailUrl":"https:\/\/bryceautomation.com\/wp-content\/uploads\/2022\/11\/image-5.png","keywords":["jsr","Subroutines"],"articleSection":["COSMAC","Vintage Computers"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/bryceautomation.com\/index.php\/2022\/11\/06\/cosmac-1802-subroutines\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/bryceautomation.com\/index.php\/2022\/11\/06\/cosmac-1802-subroutines\/","url":"https:\/\/bryceautomation.com\/index.php\/2022\/11\/06\/cosmac-1802-subroutines\/","name":"COSMAC 1802 Subroutines - Bryce Automation","isPartOf":{"@id":"https:\/\/bryceautomation.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/bryceautomation.com\/index.php\/2022\/11\/06\/cosmac-1802-subroutines\/#primaryimage"},"image":{"@id":"https:\/\/bryceautomation.com\/index.php\/2022\/11\/06\/cosmac-1802-subroutines\/#primaryimage"},"thumbnailUrl":"https:\/\/bryceautomation.com\/wp-content\/uploads\/2022\/11\/image-5.png","datePublished":"2022-11-06T15:24:51+00:00","dateModified":"2022-11-06T15:24:54+00:00","author":{"@id":"https:\/\/bryceautomation.com\/#\/schema\/person\/5d5b0f6f6ad768f1ee52968338e63af7"},"description":"Setting up COSMAC 1802 Subroutines. We just need to change the program counter, execute the subroutine, then switch the program counter back.","breadcrumb":{"@id":"https:\/\/bryceautomation.com\/index.php\/2022\/11\/06\/cosmac-1802-subroutines\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/bryceautomation.com\/index.php\/2022\/11\/06\/cosmac-1802-subroutines\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/bryceautomation.com\/index.php\/2022\/11\/06\/cosmac-1802-subroutines\/#primaryimage","url":"https:\/\/bryceautomation.com\/wp-content\/uploads\/2022\/11\/image-5.png","contentUrl":"https:\/\/bryceautomation.com\/wp-content\/uploads\/2022\/11\/image-5.png","width":334,"height":305,"caption":"COSMAC 1802 Subroutines"},{"@type":"BreadcrumbList","@id":"https:\/\/bryceautomation.com\/index.php\/2022\/11\/06\/cosmac-1802-subroutines\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/bryceautomation.com\/"},{"@type":"ListItem","position":2,"name":"COSMAC 1802 Subroutines"}]},{"@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\/14263","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=14263"}],"version-history":[{"count":0,"href":"https:\/\/bryceautomation.com\/index.php\/wp-json\/wp\/v2\/posts\/14263\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/bryceautomation.com\/index.php\/wp-json\/wp\/v2\/media\/14266"}],"wp:attachment":[{"href":"https:\/\/bryceautomation.com\/index.php\/wp-json\/wp\/v2\/media?parent=14263"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/bryceautomation.com\/index.php\/wp-json\/wp\/v2\/categories?post=14263"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/bryceautomation.com\/index.php\/wp-json\/wp\/v2\/tags?post=14263"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}