{"id":2787,"date":"2024-10-05T21:20:32","date_gmt":"2024-10-05T20:20:32","guid":{"rendered":"https:\/\/www.robertprice.co.uk\/robblog\/?p=2787"},"modified":"2024-10-12T22:37:05","modified_gmt":"2024-10-12T21:37:05","slug":"rc2024-part-2-reading-the-rotary-encoder-from-basic","status":"publish","type":"post","link":"https:\/\/www.robertprice.co.uk\/robblog\/rc2024-part-2-reading-the-rotary-encoder-from-basic\/","title":{"rendered":"RC2024 &#8211; Part 2 &#8211; Reading The Rotary Encoder From BASIC"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><a href=\"\/robblog\/taking-part-in-retro-challenge-2024\/\">My Retro Challenge this year<\/a> is to get rotary encoders working on my RC2014 computer.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Previously, <a href=\"https:\/\/www.robertprice.co.uk\/robblog\/rc2024-part-1-the-rotary-encoder\/\">I explained what a rotary encoder<\/a> was, how to use one, and how to link it to the RC2014.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I now want to try reading it on the RC2014 and using it to control some output.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I&#8217;m using the SC219 Digital I\/O Board on the RC2014 to accept inputs from a rotary encoder. I have mine mapped to I\/O address port 0. Using Microsoft BASIC I can read this using the INP(0) statement. This will return a byte representing the values of D0 to D7 on the input port.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I am using D0 for the CLK, D1 for DT, and D2 for SW. D3 to D7 are not used at the moment. I am only interested in D0 and D1 for the rotary motion. I can use AND statements to mask bits when I&#8217;m checking the input value. So to check if D0 was 1 or 0, I could use INP(0) AND 1. This would return either 0 or 1. To check D1, I could use INP(0) AND 2. This would return either 0 or 2.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The following UML activity diagram shows at a high level how I need my BASIC program to operate.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.robertprice.co.uk\/robblog\/assets\/ExampleActivity-1.svg\"><img loading=\"lazy\" decoding=\"async\" width=\"269\" height=\"405\" src=\"https:\/\/www.robertprice.co.uk\/robblog\/assets\/ExampleActivity-1.svg\" alt=\"\" class=\"wp-image-2869\"\/><\/a><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The Microsoft BASIC on the RC2014 is old and limited compared to modern languages, but it is functional.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">To save space, I&#8217;ll use variable A for CLK, and B for DT. I&#8217;ll need to keep track of the last state of A so I know when it has changed. To do this I&#8217;ll create a variable LAST_A. Finally, to keep track of the INP(0) result, I&#8217;ll create variable INPUT.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">When I detect a change in A, I need to look to see if B matches A. If it does, then I know the encoder is being turned to the right. If it doesn&#8217;t, then it is being turned to the left.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Here is the BASIC code I came up with to do this. When it detects a change, it prints either &#8220;Left&#8221; or &#8220;Right&#8221; to the console.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>10 LET LAST_A = 0\n20 LET IN = INP(0)\n30 LET A = IN AND 1\n40 IF A = LASTA THEN GOTO 200\n50 LET B = IN AND 2\n60 IF (A=1 AND B=2) OR (B=0 AND A=0) THEN GOTO 100\n80 PRINT \"Right\"\n90 GOTO 200\n100 PRINT \"Left\"\n200 LET LAST_A = A\n210 GOTO 20\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The SC219 has digital outputs as well as inputs. Using the built-in output LEDs, I can move a dot left or right depending on the input from the rotary encoder.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The 8 output LEDs represent each bit of a byte. So we have the values 1, 2, 4, 8, 16, 32, 64, and 128 represented on bits D0 to D7. This is 2 to the power X, where X is between 0 and 7. We can use the ^ (power) operator in BASIC to help set these bits.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">So we need to have a variable, let&#8217;s call it COUNTER, to keep track of which power we are currently at. We can say turning the rotary encoder left will increment COUNTER by 1. Turning the rotary encoderrigtht will decrement COUNTER by 1. We need some guards, so if COUNTER goes below 0, we set it to 7. If it goes above 7, we set it to 0. We set one of the LEDs by using OUT 0,2^COUNTER. This means when we turn the rotary encoder, we can move the LED.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Here is the BASIC code I wrote to do this.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>10 LET COUNTER = 0\n20 LET LAST_A = 0\n30 LET IN = INP(0)\n40 OUT 0,2^COUNTER\n50 LET A = IN AND 1\n60 IF A = LASTA THEN GOTO 200\n70 LET B = IN AND 2\n80 IF (A=1 AND B=2) OR (B=0 AND A=0) THEN GOTO 150\n90 IF COUNTER &lt;= 0 THEN GOTO 120\n100 LET COUNTER = COUNTER - 1\n110 GOTO 130\n120 LET COUNTER = 7\n130 PRINT \"Right\"\n140 GOTO 200\n150 IF COUNTER &gt;= 7 THEN GOTO 180\n160 LET COUNTER = COUNTER + 1\n170 GOTO 190\n180 LET COUNTER = 0\n190 PRINT \"Left\"\n200 LET LAST_A = A\n210 GOTO 30\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Here is a short video of it in action.<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Rotary Encoder 2 - LED Output\" width=\"840\" height=\"473\" src=\"https:\/\/www.youtube.com\/embed\/rH3ZwFpBPPA?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>My Retro Challenge this year is to get rotary encoders working on my RC2014 computer. Previously, I explained what a rotary encoder was, how to use one, and how to link it to the RC2014. I now want to try reading it on the RC2014 and using it to control some output. I&#8217;m using the &hellip; <a href=\"https:\/\/www.robertprice.co.uk\/robblog\/rc2024-part-2-reading-the-rotary-encoder-from-basic\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;RC2024 &#8211; Part 2 &#8211; Reading The Rotary Encoder From BASIC&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":2795,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[113],"tags":[117,115,137,131],"class_list":["post-2787","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-rc2024","tag-rc2014","tag-rc2024","tag-retro-challenge","tag-rotary-encoder"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>RC2024 - Part 2 - Reading The Rotary Encoder From BASIC - Robert Price<\/title>\n<meta name=\"description\" content=\"In this post I cover how to read a rotary encoder attached to an RC2014 computer, and use it to control LEDs.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.robertprice.co.uk\/robblog\/rc2024-part-2-reading-the-rotary-encoder-from-basic\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"RC2024 - Part 2 - Reading The Rotary Encoder From BASIC - Robert Price\" \/>\n<meta property=\"og:description\" content=\"In this post I cover how to read a rotary encoder attached to an RC2014 computer, and use it to control LEDs.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.robertprice.co.uk\/robblog\/rc2024-part-2-reading-the-rotary-encoder-from-basic\/\" \/>\n<meta property=\"og:site_name\" content=\"Robert Price\" \/>\n<meta property=\"article:published_time\" content=\"2024-10-05T20:20:32+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-10-12T21:37:05+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.robertprice.co.uk\/robblog\/assets\/IMG_2034-1.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"rob\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"rob\" \/>\n\t<meta name=\"twitter:label2\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.robertprice.co.uk\\\/robblog\\\/rc2024-part-2-reading-the-rotary-encoder-from-basic\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.robertprice.co.uk\\\/robblog\\\/rc2024-part-2-reading-the-rotary-encoder-from-basic\\\/\"},\"author\":{\"name\":\"rob\",\"@id\":\"https:\\\/\\\/www.robertprice.co.uk\\\/robblog\\\/#\\\/schema\\\/person\\\/fac6d5b076e0e14e1fb13e15b542a6c5\"},\"headline\":\"RC2024 &#8211; Part 2 &#8211; Reading The Rotary Encoder From BASIC\",\"datePublished\":\"2024-10-05T20:20:32+00:00\",\"dateModified\":\"2024-10-12T21:37:05+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.robertprice.co.uk\\\/robblog\\\/rc2024-part-2-reading-the-rotary-encoder-from-basic\\\/\"},\"wordCount\":543,\"image\":{\"@id\":\"https:\\\/\\\/www.robertprice.co.uk\\\/robblog\\\/rc2024-part-2-reading-the-rotary-encoder-from-basic\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.robertprice.co.uk\\\/robblog\\\/assets\\\/IMG_2034-1.jpg\",\"keywords\":[\"RC2014\",\"RC2024\",\"Retro Challenge\",\"Rotary Encoder\"],\"articleSection\":[\"RC2024\"],\"inLanguage\":\"en-GB\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.robertprice.co.uk\\\/robblog\\\/rc2024-part-2-reading-the-rotary-encoder-from-basic\\\/\",\"url\":\"https:\\\/\\\/www.robertprice.co.uk\\\/robblog\\\/rc2024-part-2-reading-the-rotary-encoder-from-basic\\\/\",\"name\":\"RC2024 - Part 2 - Reading The Rotary Encoder From BASIC - Robert Price\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.robertprice.co.uk\\\/robblog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.robertprice.co.uk\\\/robblog\\\/rc2024-part-2-reading-the-rotary-encoder-from-basic\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.robertprice.co.uk\\\/robblog\\\/rc2024-part-2-reading-the-rotary-encoder-from-basic\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.robertprice.co.uk\\\/robblog\\\/assets\\\/IMG_2034-1.jpg\",\"datePublished\":\"2024-10-05T20:20:32+00:00\",\"dateModified\":\"2024-10-12T21:37:05+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.robertprice.co.uk\\\/robblog\\\/#\\\/schema\\\/person\\\/fac6d5b076e0e14e1fb13e15b542a6c5\"},\"description\":\"In this post I cover how to read a rotary encoder attached to an RC2014 computer, and use it to control LEDs.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.robertprice.co.uk\\\/robblog\\\/rc2024-part-2-reading-the-rotary-encoder-from-basic\\\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.robertprice.co.uk\\\/robblog\\\/rc2024-part-2-reading-the-rotary-encoder-from-basic\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/www.robertprice.co.uk\\\/robblog\\\/rc2024-part-2-reading-the-rotary-encoder-from-basic\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.robertprice.co.uk\\\/robblog\\\/assets\\\/IMG_2034-1.jpg\",\"contentUrl\":\"https:\\\/\\\/www.robertprice.co.uk\\\/robblog\\\/assets\\\/IMG_2034-1.jpg\",\"width\":1200,\"height\":630,\"caption\":\"Rotary Encoder on the RC2014\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.robertprice.co.uk\\\/robblog\\\/rc2024-part-2-reading-the-rotary-encoder-from-basic\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.robertprice.co.uk\\\/robblog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"RC2024 &#8211; Part 2 &#8211; Reading The Rotary Encoder From BASIC\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.robertprice.co.uk\\\/robblog\\\/#website\",\"url\":\"https:\\\/\\\/www.robertprice.co.uk\\\/robblog\\\/\",\"name\":\"Robert Price\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.robertprice.co.uk\\\/robblog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-GB\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.robertprice.co.uk\\\/robblog\\\/#\\\/schema\\\/person\\\/fac6d5b076e0e14e1fb13e15b542a6c5\",\"name\":\"rob\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/6f0eb511179100a4e968abc70403e33686e6ab3e992e392bedd2ccac01da666c?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/6f0eb511179100a4e968abc70403e33686e6ab3e992e392bedd2ccac01da666c?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/6f0eb511179100a4e968abc70403e33686e6ab3e992e392bedd2ccac01da666c?s=96&d=mm&r=g\",\"caption\":\"rob\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"RC2024 - Part 2 - Reading The Rotary Encoder From BASIC - Robert Price","description":"In this post I cover how to read a rotary encoder attached to an RC2014 computer, and use it to control LEDs.","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:\/\/www.robertprice.co.uk\/robblog\/rc2024-part-2-reading-the-rotary-encoder-from-basic\/","og_locale":"en_GB","og_type":"article","og_title":"RC2024 - Part 2 - Reading The Rotary Encoder From BASIC - Robert Price","og_description":"In this post I cover how to read a rotary encoder attached to an RC2014 computer, and use it to control LEDs.","og_url":"https:\/\/www.robertprice.co.uk\/robblog\/rc2024-part-2-reading-the-rotary-encoder-from-basic\/","og_site_name":"Robert Price","article_published_time":"2024-10-05T20:20:32+00:00","article_modified_time":"2024-10-12T21:37:05+00:00","og_image":[{"width":1200,"height":630,"url":"https:\/\/www.robertprice.co.uk\/robblog\/assets\/IMG_2034-1.jpg","type":"image\/jpeg"}],"author":"rob","twitter_card":"summary_large_image","twitter_misc":{"Written by":"rob","Estimated reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.robertprice.co.uk\/robblog\/rc2024-part-2-reading-the-rotary-encoder-from-basic\/#article","isPartOf":{"@id":"https:\/\/www.robertprice.co.uk\/robblog\/rc2024-part-2-reading-the-rotary-encoder-from-basic\/"},"author":{"name":"rob","@id":"https:\/\/www.robertprice.co.uk\/robblog\/#\/schema\/person\/fac6d5b076e0e14e1fb13e15b542a6c5"},"headline":"RC2024 &#8211; Part 2 &#8211; Reading The Rotary Encoder From BASIC","datePublished":"2024-10-05T20:20:32+00:00","dateModified":"2024-10-12T21:37:05+00:00","mainEntityOfPage":{"@id":"https:\/\/www.robertprice.co.uk\/robblog\/rc2024-part-2-reading-the-rotary-encoder-from-basic\/"},"wordCount":543,"image":{"@id":"https:\/\/www.robertprice.co.uk\/robblog\/rc2024-part-2-reading-the-rotary-encoder-from-basic\/#primaryimage"},"thumbnailUrl":"https:\/\/www.robertprice.co.uk\/robblog\/assets\/IMG_2034-1.jpg","keywords":["RC2014","RC2024","Retro Challenge","Rotary Encoder"],"articleSection":["RC2024"],"inLanguage":"en-GB"},{"@type":"WebPage","@id":"https:\/\/www.robertprice.co.uk\/robblog\/rc2024-part-2-reading-the-rotary-encoder-from-basic\/","url":"https:\/\/www.robertprice.co.uk\/robblog\/rc2024-part-2-reading-the-rotary-encoder-from-basic\/","name":"RC2024 - Part 2 - Reading The Rotary Encoder From BASIC - Robert Price","isPartOf":{"@id":"https:\/\/www.robertprice.co.uk\/robblog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.robertprice.co.uk\/robblog\/rc2024-part-2-reading-the-rotary-encoder-from-basic\/#primaryimage"},"image":{"@id":"https:\/\/www.robertprice.co.uk\/robblog\/rc2024-part-2-reading-the-rotary-encoder-from-basic\/#primaryimage"},"thumbnailUrl":"https:\/\/www.robertprice.co.uk\/robblog\/assets\/IMG_2034-1.jpg","datePublished":"2024-10-05T20:20:32+00:00","dateModified":"2024-10-12T21:37:05+00:00","author":{"@id":"https:\/\/www.robertprice.co.uk\/robblog\/#\/schema\/person\/fac6d5b076e0e14e1fb13e15b542a6c5"},"description":"In this post I cover how to read a rotary encoder attached to an RC2014 computer, and use it to control LEDs.","breadcrumb":{"@id":"https:\/\/www.robertprice.co.uk\/robblog\/rc2024-part-2-reading-the-rotary-encoder-from-basic\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.robertprice.co.uk\/robblog\/rc2024-part-2-reading-the-rotary-encoder-from-basic\/"]}]},{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/www.robertprice.co.uk\/robblog\/rc2024-part-2-reading-the-rotary-encoder-from-basic\/#primaryimage","url":"https:\/\/www.robertprice.co.uk\/robblog\/assets\/IMG_2034-1.jpg","contentUrl":"https:\/\/www.robertprice.co.uk\/robblog\/assets\/IMG_2034-1.jpg","width":1200,"height":630,"caption":"Rotary Encoder on the RC2014"},{"@type":"BreadcrumbList","@id":"https:\/\/www.robertprice.co.uk\/robblog\/rc2024-part-2-reading-the-rotary-encoder-from-basic\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.robertprice.co.uk\/robblog\/"},{"@type":"ListItem","position":2,"name":"RC2024 &#8211; Part 2 &#8211; Reading The Rotary Encoder From BASIC"}]},{"@type":"WebSite","@id":"https:\/\/www.robertprice.co.uk\/robblog\/#website","url":"https:\/\/www.robertprice.co.uk\/robblog\/","name":"Robert Price","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.robertprice.co.uk\/robblog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"},{"@type":"Person","@id":"https:\/\/www.robertprice.co.uk\/robblog\/#\/schema\/person\/fac6d5b076e0e14e1fb13e15b542a6c5","name":"rob","image":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/secure.gravatar.com\/avatar\/6f0eb511179100a4e968abc70403e33686e6ab3e992e392bedd2ccac01da666c?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/6f0eb511179100a4e968abc70403e33686e6ab3e992e392bedd2ccac01da666c?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/6f0eb511179100a4e968abc70403e33686e6ab3e992e392bedd2ccac01da666c?s=96&d=mm&r=g","caption":"rob"}}]}},"_links":{"self":[{"href":"https:\/\/www.robertprice.co.uk\/robblog\/wp-json\/wp\/v2\/posts\/2787","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.robertprice.co.uk\/robblog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.robertprice.co.uk\/robblog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.robertprice.co.uk\/robblog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.robertprice.co.uk\/robblog\/wp-json\/wp\/v2\/comments?post=2787"}],"version-history":[{"count":5,"href":"https:\/\/www.robertprice.co.uk\/robblog\/wp-json\/wp\/v2\/posts\/2787\/revisions"}],"predecessor-version":[{"id":2871,"href":"https:\/\/www.robertprice.co.uk\/robblog\/wp-json\/wp\/v2\/posts\/2787\/revisions\/2871"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.robertprice.co.uk\/robblog\/wp-json\/wp\/v2\/media\/2795"}],"wp:attachment":[{"href":"https:\/\/www.robertprice.co.uk\/robblog\/wp-json\/wp\/v2\/media?parent=2787"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.robertprice.co.uk\/robblog\/wp-json\/wp\/v2\/categories?post=2787"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.robertprice.co.uk\/robblog\/wp-json\/wp\/v2\/tags?post=2787"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}