{"id":68,"date":"2009-07-28T14:19:08","date_gmt":"2009-07-28T22:19:08","guid":{"rendered":"http:\/\/blog.danielparnell.com\/?p=68"},"modified":"2009-07-28T14:19:08","modified_gmt":"2009-07-28T22:19:08","slug":"a-hp48gx-emulator-for-the-iphone-and-ipod-touch","status":"publish","type":"post","link":"https:\/\/blog.danielparnell.com\/?p=68","title":{"rendered":"A HP48GX emulator for the iPhone and iPod Touch"},"content":{"rendered":"<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\" style=\"word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; \">I have just released the source to a HP48GX emulator for the iPhone and iPod Touch.<\/p>\n<div>It&#8217;s a very rough port of x48 to the iPhone,&nbsp;but&nbsp;it&nbsp;works&nbsp;\ud83d\ude42&nbsp;&nbsp;There&nbsp;is&nbsp;the&nbsp;occasional&nbsp;screen&nbsp;glitch&nbsp;and&nbsp;I&#8217;m&nbsp;not&nbsp;too&nbsp;happy&nbsp;with&nbsp;the&nbsp;screen&nbsp;buffer&nbsp;code.&nbsp;&nbsp;Something&nbsp;else&nbsp;that&nbsp;is&nbsp;a&nbsp;bit&nbsp;annoying&nbsp;is&nbsp;that&nbsp;it&nbsp;appears&nbsp;that&nbsp;compiling&nbsp;in&nbsp;Debug&nbsp;mode&nbsp;to&nbsp;run&nbsp;on&nbsp;the&nbsp;device&nbsp;does&nbsp;not&nbsp;work.&nbsp;&nbsp;It&nbsp;looks&nbsp;like&nbsp;one&nbsp;of&nbsp;the&nbsp;case&nbsp;statements&nbsp;in the x48 emulation code&nbsp;is&nbsp;too&nbsp;big&nbsp;to&nbsp;be&nbsp;compiled&nbsp;for&nbsp;ARM under gcc. &nbsp;I had a quick look at using the LLVM compiler but it didn&#8217;t seem to like it.<\/div>\n<div>The code can be downloaded from&nbsp;<a href=\"http:\/\/github.com\/dparnell\/i48\/tree\/master\">http:\/\/github.com\/dparnell\/i48\/tree\/master<\/a>&nbsp;<\/div>\n<div>Another thing&nbsp;to&nbsp;be&nbsp;aware&nbsp;of&nbsp;is&nbsp;that&nbsp;the&nbsp;code&nbsp;does&nbsp;not&nbsp;include&nbsp;a&nbsp;ROM,&nbsp;but&nbsp;they&nbsp;are&nbsp;fairly&nbsp;easy&nbsp;to&nbsp;come&nbsp;by&nbsp;with&nbsp;a&nbsp;bit&nbsp;of&nbsp;googling&nbsp;\ud83d\ude42<\/p>\n<div><A href=\"\/wp-content\/uploads\/20090729081857_orig_image.tiff\"><img loading=\"lazy\" decoding=\"async\" src=\"\/wp-content\/uploads\/20090729081857_image.jpg\" width=\"104\" height=\"200\" border=\"0\" \/><\/A><\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>I have just released the source to a HP48GX emulator for the iPhone and iPod Touch. It&#8217;s a very rough port of x48 to the iPhone,&nbsp;but&nbsp;it&nbsp;works&nbsp;\ud83d\ude42&nbsp;&nbsp;There&nbsp;is&nbsp;the&nbsp;occasional&nbsp;screen&nbsp;glitch&nbsp;and&nbsp;I&#8217;m&nbsp;not&nbsp;too&nbsp;happy&nbsp;with&nbsp;the&nbsp;screen&nbsp;buffer&nbsp;code.&nbsp;&nbsp;Something&nbsp;else&nbsp;that&nbsp;is&nbsp;a&nbsp;bit&nbsp;annoying&nbsp;is&nbsp;that&nbsp;it&nbsp;appears&nbsp;that&nbsp;compiling&nbsp;in&nbsp;Debug&nbsp;mode&nbsp;to&nbsp;run&nbsp;on&nbsp;the&nbsp;device&nbsp;does&nbsp;not&nbsp;work.&nbsp;&nbsp;It&nbsp;looks&nbsp;like&nbsp;one&nbsp;of&nbsp;the&nbsp;case&nbsp;statements&nbsp;in the x48 emulation code&nbsp;is&nbsp;too&nbsp;big&nbsp;to&nbsp;be&nbsp;compiled&nbsp;for&nbsp;ARM under gcc. &nbsp;I had a quick look at using the LLVM compiler but it didn&#8217;t seem to like it. The code can be downloaded from&nbsp;http:\/\/github.com\/dparnell\/i48\/tree\/master&nbsp; &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/blog.danielparnell.com\/?p=68\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;A HP48GX emulator for the iPhone and iPod Touch&#8221;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[4,37,38,3,2],"tags":[],"class_list":["post-68","post","type-post","status-publish","format-standard","hentry","category-cocoa","category-iphone","category-ipod-touch","category-mac-os-x","category-programming","entry"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p561S3-16","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/blog.danielparnell.com\/index.php?rest_route=\/wp\/v2\/posts\/68","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.danielparnell.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.danielparnell.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.danielparnell.com\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.danielparnell.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=68"}],"version-history":[{"count":0,"href":"https:\/\/blog.danielparnell.com\/index.php?rest_route=\/wp\/v2\/posts\/68\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.danielparnell.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=68"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.danielparnell.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=68"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.danielparnell.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=68"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}