{"id":1349,"date":"2011-01-17T09:53:32","date_gmt":"2011-01-17T08:53:32","guid":{"rendered":"https:\/\/blogs.mentor.com\/colinwalls\/?p=1349"},"modified":"2026-03-26T16:33:49","modified_gmt":"2026-03-26T20:33:49","slug":"secret-codes","status":"publish","type":"post","link":"https:\/\/blogs.sw.siemens.com\/embedded-software\/2011\/01\/17\/secret-codes\/","title":{"rendered":"Secret codes"},"content":{"rendered":"<p>I was recently parking my car and, as I bought the ticket, observed that the machine was manufactured by a company very close to where I used to live; I knew some people who worked there. I mused upon the idea that, if I were programming the machine, I might include a &#8220;back door&#8221; access mechanism which would enable me [or anyone knowing the correct button pressing sequence] to get a ticket for free.<\/p>\n<p>Of course, that would be unethical, as it could result in defrauding the company running the parking lot, but back door access to systems is not necessarily wholly bad &#8230;<!--more--><\/p>\n<p>When developing numerous embedded systems, I commonly found the need to include a &#8220;debug&#8221; or &#8220;service&#8221; mode, which resulted in functionality which would not normally be of use to the final user. This might include [but is not limited to] a display of internal data, generation of random data for return [in lieu of real readings from a sensor] or loop-back of a communications channel. Obviously, the needs vary widely, depending upon the nature of the embedded application.<\/p>\n<p>Access to such special modes is typically by means of a specific combination or sequence of button presses. I confess that I liked the idea of being able to make a system perform some unusual functionality simply because I knew the &#8220;secret code&#8221;. Clearly this appeal is widespread, as many desktop programs and websites feature &#8220;Easter eggs&#8221;, which are additional facilities &#8211; normally of an entertaining nature &#8211; which may be accessed by means of a special keying or clicking sequence. Sometimes they are very simple &#8211; like the display of a humorous graphic &#8211; in other cases they are very complex. [Does anyone remember the flight simulator built into Excel years ago?] Sometimes special keys simply give access to useful facilities only known to the cognoscenti &#8211; such as the screen capture on an iPad.<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1361\" src=\"https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/51\/2011\/01\/konami.jpg\" alt=\"konami\" width=\"188\" height=\"25\" \/><\/p>\n<p>As I have never been very interested in computer or video games, I was unaware until recently that there is a widely used, &#8220;standard&#8221; code for accessing Easter eggs. It is called the &#8220;Konami Code&#8221; and requires the user to hit a specific key\/button sequence: UP, UP, DOWN, DOWN, LEFT, RIGHT, LEFT, RIGHT, B, A &#8211; this may need to be terminated with ENTER. At various times, well known sites like Google and Facebook have responded to this code. I am intrigued about where else it might be effective &#8230;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I was recently parking my car and, as I bought the ticket, observed that the machine was manufactured by a&#8230;<\/p>\n","protected":false},"author":71677,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"spanish_translation":"","french_translation":"","german_translation":"","italian_translation":"","polish_translation":"","japanese_translation":"","chinese_translation":"","footnotes":""},"categories":[1],"tags":[300,350,395],"industry":[],"product":[],"coauthors":[],"class_list":["post-1349","post","type-post","status-publish","format-standard","hentry","category-news","tag-embedded-software","tag-ipad","tag-konami-code"],"_links":{"self":[{"href":"https:\/\/blogs.sw.siemens.com\/embedded-software\/wp-json\/wp\/v2\/posts\/1349","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.sw.siemens.com\/embedded-software\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.sw.siemens.com\/embedded-software\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/embedded-software\/wp-json\/wp\/v2\/users\/71677"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/embedded-software\/wp-json\/wp\/v2\/comments?post=1349"}],"version-history":[{"count":1,"href":"https:\/\/blogs.sw.siemens.com\/embedded-software\/wp-json\/wp\/v2\/posts\/1349\/revisions"}],"predecessor-version":[{"id":9921,"href":"https:\/\/blogs.sw.siemens.com\/embedded-software\/wp-json\/wp\/v2\/posts\/1349\/revisions\/9921"}],"wp:attachment":[{"href":"https:\/\/blogs.sw.siemens.com\/embedded-software\/wp-json\/wp\/v2\/media?parent=1349"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/embedded-software\/wp-json\/wp\/v2\/categories?post=1349"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/embedded-software\/wp-json\/wp\/v2\/tags?post=1349"},{"taxonomy":"industry","embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/embedded-software\/wp-json\/wp\/v2\/industry?post=1349"},{"taxonomy":"product","embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/embedded-software\/wp-json\/wp\/v2\/product?post=1349"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/embedded-software\/wp-json\/wp\/v2\/coauthors?post=1349"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}