{"id":1464,"date":"2015-12-23T04:45:28","date_gmt":"2015-12-23T04:45:28","guid":{"rendered":"http:\/\/www.sydneysmith.com\/wordpress\/?p=1464"},"modified":"2017-05-14T00:39:54","modified_gmt":"2017-05-14T00:39:54","slug":"hp-65-error-display","status":"publish","type":"post","link":"https:\/\/www.sydneysmith.com\/wordpress\/1464\/hp-65-error-display\/","title":{"rendered":"HP-65 Error Display"},"content":{"rendered":"<p>What causes the HP-65 display to flash? What triggers it, how is it done in the microcode, and how does it get out of it again? <!--more--><\/p>\n<p>According to the manual, &#8220;The display blinks when any of several improper operations are attempted. Pressing any key stops the blinking without otherwise performing the key function.&#8221;<\/p>\n<p>It goes on to list the improper operations. These include the obvious &#8220;0 1\/x&#8221; and &#8220;5 CHS &radic;&#8221; but also &#8220;Magnetic card read &#8211; Blank card; bit or word dropped during reading&#8221;.<\/p>\n<p>The error routine is at 00451:<\/p>\n<pre>\r\n00451 c + 1 -&gt; c[xs]     ; C= 00000000000101\r\n00452 0 -&gt; s10\r\n00453 if s5 = 0\r\n00454 goto 00750\r\n00455 c + 1 -&gt; c[x]      ; C= 00000000000102\r\n00456 goto 00451\r\n<\/pre>\n<p>It loops through that 100 times then it flashes the display:<\/p>\n<pre>\r\n00457 goto 00732\r\n00732 disptoggle         ; flash display\r\n00733 goto 00622\r\n<\/pre>\n<p>Address 00622 takes us back to the error routine:<\/p>\n<pre>\r\n00622 12 -&gt; p\r\n00623 if s0 = 0\r\n00624 goto 00452\r\n00452 ... (we're back in the delay loop)\r\n<\/pre>\n<p>The way out of the flashing display error routine is to press any key. That sets s0 to 1 and the &#8220;00623 if s0 = 0&#8221; progresses to 00625 which looks like: <\/p>\n<pre>\r\n00625 p + 1 -&gt; p         ; P= 13\r\n00626 if p # 12\r\n00627 goto 00625\r\n; P= 14, 15, 0, 1, 2, ..., 11, 12\r\n\r\n00630 0 -&gt; s0\r\n00631 if s10 = 0\r\n00632 goto 00641\r\n00641 if s5 = 0\r\n00642 goto 00734\r\n00643 goto 00737\r\n00737 1 -&gt; f3            ; f= ...3.5..\r\n00740 clearstatus        ; S= ............\r\n00741 goto 00620\r\n00620 if s8 = 0          ; if not running\r\n00621 goto 00531\r\n\r\ndisplay:\r\n00531 ...\r\n<\/pre>\n<p>The whole thing is triggered by s5 = 1. This makes s5 the &#8220;error&#8221; flag.<\/p>\n<p>You can see s5 being set in:<br \/>\n<a href=\"http:\/\/www.sydneysmith.com\/products\/gss-hp65\/downloads\/65-0-a.txt\" target=\"_blank\">65-0-a.txt<\/a>, and<br \/>\n<a href=\"http:\/\/www.sydneysmith.com\/products\/gss-hp65\/downloads\/65-5-chs-f-root.txt\" target=\"_blank\">65-5-chs-f-root.txt<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>What causes the HP-65 display to flash? What triggers it, how is it done in the microcode, and how does it get out of it again?<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[16,5,39],"tags":[37,32],"_links":{"self":[{"href":"https:\/\/www.sydneysmith.com\/wordpress\/wp-json\/wp\/v2\/posts\/1464"}],"collection":[{"href":"https:\/\/www.sydneysmith.com\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.sydneysmith.com\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.sydneysmith.com\/wordpress\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.sydneysmith.com\/wordpress\/wp-json\/wp\/v2\/comments?post=1464"}],"version-history":[{"count":1,"href":"https:\/\/www.sydneysmith.com\/wordpress\/wp-json\/wp\/v2\/posts\/1464\/revisions"}],"predecessor-version":[{"id":1465,"href":"https:\/\/www.sydneysmith.com\/wordpress\/wp-json\/wp\/v2\/posts\/1464\/revisions\/1465"}],"wp:attachment":[{"href":"https:\/\/www.sydneysmith.com\/wordpress\/wp-json\/wp\/v2\/media?parent=1464"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.sydneysmith.com\/wordpress\/wp-json\/wp\/v2\/categories?post=1464"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.sydneysmith.com\/wordpress\/wp-json\/wp\/v2\/tags?post=1464"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}