{"id":45,"date":"2026-02-23T12:55:04","date_gmt":"2026-02-23T12:55:04","guid":{"rendered":"https:\/\/www.darkbluemonkey.com\/?p=45"},"modified":"2026-04-22T13:01:28","modified_gmt":"2026-04-22T13:01:28","slug":"a-little-more-retro-please-sir","status":"publish","type":"post","link":"https:\/\/www.darkbluemonkey.com\/?p=45","title":{"rendered":"A little more retro please, sir."},"content":{"rendered":"\n<p>Last week I wrote about the diving I&#8217;ve done back into Spectrum BASIC coding.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>I have to say that it&#8217;s been a LOT of hard work to update the old code. Updating it to work on all the newer machines and emulators, while still being able to fit the original code&#8217;s purpose; to work on a 16Kb contended-RAM spectrum has been\u2026 a challenge.<\/p>\n\n\n\n<figure class=\"wp-block-image alignleft size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"609\" src=\"https:\/\/www.darkbluemonkey.com\/wp-content\/uploads\/2026\/04\/speccy_code_hexloader-1024x609.png\" alt=\"\" class=\"wp-image-46\" style=\"aspect-ratio:1.6814315172762686;width:557px;height:auto\" srcset=\"https:\/\/www.darkbluemonkey.com\/wp-content\/uploads\/2026\/04\/speccy_code_hexloader-1024x609.png 1024w, https:\/\/www.darkbluemonkey.com\/wp-content\/uploads\/2026\/04\/speccy_code_hexloader-300x178.png 300w, https:\/\/www.darkbluemonkey.com\/wp-content\/uploads\/2026\/04\/speccy_code_hexloader-768x457.png 768w, https:\/\/www.darkbluemonkey.com\/wp-content\/uploads\/2026\/04\/speccy_code_hexloader.png 1172w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Coding for the spectrum on modern tools is so much easier<\/figcaption><\/figure>\n\n\n\n<p>I&#8217;ve had to bend and break a good few rules, abandon a few design patterns and essentially &#8216;go rogue&#8217; on whatever sense of modern coding decency that might exist these days\u2026<\/p>\n\n\n\n<p>In short, heaven! Coding in the 80s was a <strong>real<\/strong> wild west. How had I forgotten that?  Maybe I hadn&#8217;t&#8230; Maybe I&#8217;d blanked it from my mind!<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>Some of the Usborne books which covered the Commodore PET, Spectrum, ZX80, ZX81, C64, CPC464 and even the Apple II had so many little crazy stars and moon symbols to indicate places where you needed to put something machine-specific, that sometimes the code looked like a festival\u2026<\/p>\n\n\n\n<p>Spectrum BASIC is marvellous in many fun little ways, but it was incomplete and buggy. When you do pedestrian stuff, it works perfectly well, but when you try to move towards more esoteric things, krakens lie in wait.<\/p>\n\n\n\n<p>It&#8217;s been absolute joy to spend hours or days puzzling over why a single character can cause RAM to jump by a kilobyte.. why doing something one way works fine, while another way leads to a random reboot. Digging into the actual structure of the BASIC codelines and messing with them structurally has been like exploring a new frontier. I had written a VARS-walker back in the 80s, and had already messed about with x86 and z80 asm in the early 90s. (On one family holiday, my reading was a book on 8086\/8088 assembly &#8211; I was such a nerd). But to actually pull apart the basic lines themselves, I don&#8217;t think I&#8217;d ever done that purely because doing it on a hardware spectrum was (and i&#8217;ll use the deep technical term here, sorry)\u2026 an arse.<\/p>\n\n\n\n<figure class=\"wp-block-image alignright size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"618\" height=\"315\" src=\"https:\/\/www.darkbluemonkey.com\/wp-content\/uploads\/2026\/04\/speccy_font.png\" alt=\"\" class=\"wp-image-47\" style=\"width:543px;height:auto\" srcset=\"https:\/\/www.darkbluemonkey.com\/wp-content\/uploads\/2026\/04\/speccy_font.png 618w, https:\/\/www.darkbluemonkey.com\/wp-content\/uploads\/2026\/04\/speccy_font-300x153.png 300w\" sizes=\"auto, (max-width: 618px) 100vw, 618px\" \/><figcaption class=\"wp-element-caption\">Even the Spectrum&#8217;s font is nostalgic. Absolute minimalism with clarity and function.<\/figcaption><\/figure>\n\n\n\n<p>In this modern age of PCs, where we have a speccy-in-a-window and can compile and debug code in seconds, the task of experimenting is fantastic. Back when it was a 5-minute reload from tape after a crash, it understandably wasn&#8217;t. <\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>With all these advancements, it&#8217;s been real fun to dig the Spectrum Next out and get back to Speccy programming.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large is-resized\"><img decoding=\"async\" src=\"https:\/\/external-content.duckduckgo.com\/iu\/?u=https%3A%2F%2Fs3.amazonaws.com%2Fmedia.launchrock.com%2Fassets%2Fsites%2Fsite-bek12dnw03nna01db216uy3pr%2Fqawspp-spectrum%2520next%2520black%25201.35.jpg&amp;f=1&amp;nofb=1&amp;ipt=cf05349c5134cf4c13a92cd708748a249060d119a01a302f86e936da3227cda8\" alt=\"\" style=\"width:430px;height:auto\"\/><figcaption class=\"wp-element-caption\">The next evolution (pun intended) of the Sinclair line&#8230;.<\/figcaption><\/figure>\n\n\n\n<p>Admittedly, I&#8217;ve had it in Spectrum 48k mode about 90% of the time since August\u2026 I&#8217;ve only dipped back into NextBASIC a few times just to try out some hacks to see if they still work (mostly they do!), so now I&#8217;ve finished the book project, I&#8217;m going to jump back to NextBASIC. I&#8217;ve got the itch to finish off some projects, download the latest z88dk (I hear there&#8217;s a New C library for the Next), and have some fun.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Last week I wrote about the diving I&#8217;ve done back into Spectrum BASIC coding. I have to say that it&#8217;s been a LOT of hard work to update the old code. Updating it to work on all the newer machines and emulators, while still being able to fit the original code&#8217;s purpose; to work on [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":47,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ngg_post_thumbnail":0,"footnotes":""},"categories":[6],"tags":[],"class_list":["post-45","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-zxspectrum"],"blocksy_meta":[],"_links":{"self":[{"href":"https:\/\/www.darkbluemonkey.com\/index.php?rest_route=\/wp\/v2\/posts\/45","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.darkbluemonkey.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.darkbluemonkey.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.darkbluemonkey.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.darkbluemonkey.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=45"}],"version-history":[{"count":1,"href":"https:\/\/www.darkbluemonkey.com\/index.php?rest_route=\/wp\/v2\/posts\/45\/revisions"}],"predecessor-version":[{"id":48,"href":"https:\/\/www.darkbluemonkey.com\/index.php?rest_route=\/wp\/v2\/posts\/45\/revisions\/48"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.darkbluemonkey.com\/index.php?rest_route=\/wp\/v2\/media\/47"}],"wp:attachment":[{"href":"https:\/\/www.darkbluemonkey.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=45"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.darkbluemonkey.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=45"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.darkbluemonkey.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=45"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}