{"id":87,"date":"2026-02-23T16:18:37","date_gmt":"2026-02-23T16:18:37","guid":{"rendered":"https:\/\/www.soapyfrog.com\/?p=87"},"modified":"2026-02-23T16:18:37","modified_gmt":"2026-02-23T16:18:37","slug":"back-mostly","status":"publish","type":"post","link":"https:\/\/www.soapyfrog.com\/index.php\/2026\/02\/23\/back-mostly\/","title":{"rendered":"Back, mostly"},"content":{"rendered":"\n<p>Last year was one of changing priorities in life, and I didn&#8217;t get a lot of work done with SoapyBASIC or any other technical projects.<\/p>\n\n\n\n<p>I did do a lot of thinking though, while it was fun inventing new synthetic hardware and a new Instruction Set Architecture, it wasn&#8217;t really needed to make my BASIC language a bit quicker \ud83d\ude0a<\/p>\n\n\n\n<p>I was very pleased with how it turned out, and may well revisit it, but what I have now done is remember why I was doing this in the first place &#8211; build a <em>fantasy retro computer<\/em>.<\/p>\n\n\n\n<p>So, in SoapyBASIC3, I have:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>A slightly more relaxed, expressive and interactive BASIC flavour that goes much further in letting you write code and not worrying about types&#8230; yet still be strongly typed.<\/li>\n\n\n\n<li>An intermediate language to be interpreted, not a fully abstract IL like Java bytecode, or a fully formed final code, like AArch64.<\/li>\n\n\n\n<li>Include all the things I wanted <em>to have eventually<\/em> where these were the things I really wanted up front &#8211; so <em>graphics<\/em>, <em>sprites<\/em>, <em>sound<\/em>, etc. Also the environment to run all this should be a priority deliverable.<\/li>\n\n\n\n<li>A narrowing of scope.  This is for me and I&#8217;m going to run it on my Mac, iPad, Apple TV. So I&#8217;m going all in on Metal. Maybe one day I&#8217;ll look at something else, but I&#8217;m sticking to Apple world for now.<\/li>\n<\/ol>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Where am I then?<\/h2>\n\n\n\n<p>Well, the new, more relaxed BASIC language design is done. The semantic analysis is almost done. A few loose ends. <\/p>\n\n\n\n<p>I&#8217;ve started work on Metal shaders, and it all looks quite straight forward, but I&#8217;m resisting the urge to scope creep the capabilities of the runtime. I&#8217;m still aiming for something around the Commodore Amiga\/Super Nintendo era hardware. <\/p>\n\n\n\n<p>I&#8217;m staying strict with <em>no 3D<\/em>. Yes, the runtime will make heavy use of Metal on Apple Silicon, but only to simulate sprites and transparent layers, hardware scrolling etc.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What else am I doing?<\/h2>\n\n\n\n<p>In this modern world of billionaires autocrats destroying the world for their own personal gain and egos, it seems prudent to disentangle myself from anything US-based. So things like:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Moving code from GitHub to Codeberg<\/li>\n\n\n\n<li>Minimise <em>Sign in with Google \/ Apple<\/em>.<\/li>\n\n\n\n<li>Minimise use of AI<\/li>\n\n\n\n<li>No social media.<\/li>\n<\/ul>\n\n\n\n<p><\/p>\n\n\n\n<p>Generally, I&#8217;m just doing what makes me happy. <\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Last year was one of changing priorities in life, and I didn&#8217;t get a lot of work done with SoapyBASIC or any other technical projects. I did do a lot of thinking though, while it was fun inventing new synthetic hardware and a new Instruction Set Architecture, it wasn&#8217;t really needed to make my BASIC [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":89,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[14,13,16],"tags":[17,19,6,18],"class_list":["post-87","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-lang-design","category-soapybasic","category-swift-lang","tag-basic","tag-language-design","tag-news","tag-retrocomputer"],"_links":{"self":[{"href":"https:\/\/www.soapyfrog.com\/index.php\/wp-json\/wp\/v2\/posts\/87","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.soapyfrog.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.soapyfrog.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.soapyfrog.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.soapyfrog.com\/index.php\/wp-json\/wp\/v2\/comments?post=87"}],"version-history":[{"count":1,"href":"https:\/\/www.soapyfrog.com\/index.php\/wp-json\/wp\/v2\/posts\/87\/revisions"}],"predecessor-version":[{"id":88,"href":"https:\/\/www.soapyfrog.com\/index.php\/wp-json\/wp\/v2\/posts\/87\/revisions\/88"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.soapyfrog.com\/index.php\/wp-json\/wp\/v2\/media\/89"}],"wp:attachment":[{"href":"https:\/\/www.soapyfrog.com\/index.php\/wp-json\/wp\/v2\/media?parent=87"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.soapyfrog.com\/index.php\/wp-json\/wp\/v2\/categories?post=87"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.soapyfrog.com\/index.php\/wp-json\/wp\/v2\/tags?post=87"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}