This update addresses a long-standing bug that has appeared and disappeared across different versions since the original Basin.
The DEF FN command has always caused parsing issues for Basin. Its handling in memory is quite unusual: when the command is entered, a 5-byte buffer is created right after it within the BASIC listing. This buffer is used for internal DEF FN evaluations! Just imagine the complications this design can cause. It’s a rather curious design decision on the sinclair’s part.
Paul has put a lot of effort into dealing with DEF FN. My approach has always been “if it works, don’t touch it,” so I generally stayed away from it. However, this bug has kept resurfacing since the early versions of BasinC (as you can see if you check the different versions of the source code). Paul himself had rewritten and reverted this function several times at different stages.
Unfortunately, I noticed the DEF FN bug has returned in version 1.8. Now I understand that DEF FN parsing needs a complete rewrite. I added this to TO-DO list for future versions. This time, this is just a quick fix. In fact, the fix was already shared on the ZX Spectrum Discord server on June 6, 2025, and a few days later on Uwe’s Facebook BASIC group as version 1.81. Due to time constraints, I wasn’t able to post the announcement here—so I’m doing it now. As always, the updated source code is available on the GitHub page. Note that you can always ask for changes or fixed on the zx spectrum discord server, as it is the only real source of communication about BasinC. You can also reach me at @ardae.bsky.social
This version not only fixes DEF FN but also addresses another important issue: the new GOSUB locator was causing the cursor to jump up and down in Windows 11. That’s now resolved.
Since BasinC was originally compiled on Windows 7 for backward compatibility, certain behaviors varied. From now on, BasinC is compiled on Windows 10, and I will be dropping backward compatibility in upcoming versions. Hopefully, this will provide a more stable development environment.
⚠️ This update requires version 1.8 to be installed. If you haven’t installed it yet, you can download it from here:
Basinc 1.80 full install
🔄 To apply the 1.81 update, download the file below, go to your BasinC folder, delete the existing basinc.exe, and replace it with the new one from the archive:
Basinc 1.81 Update (1.2MB zipped exe file)
All changes in this update are listed below (including the ones introduced in 1.8, which I had forgotten to announce here at the time — you can always find this changelog inside the source code on GitHub):
Continue reading Basinc 1.81 Update