Michel Vilain - 2026-07-31

Hi,
here is a new, last beta before the final release of v2.1.
Kick its tires or forever hold your peace or something like that...
Here's the changelog:

* The project has now moved to Beta3 state, meaning it runs, but issues might still lie dormant in both program and documentation
* Bitwise shifts (<< and >>) now work on the full 64-bit whole number on every platform. Note that on Windows a left shift can now produce a negative number where it used to stay within 32 bits.
* A number too large to fit in an integer is now reported on every platform. Previously the Windows build could silently accept an out-of-range value and carry on with the wrong number instead of raising an error.
* Reading a large whole number, either from a string or with INPUT, now works on every platform.
* The Edit and Text Output windows now follow a colour theme, chosen from View/Theme: Follow System (the default), Light, or Dark. Follow System needs Qt 6.5 or later and is greyed out on older builds. The Graphics Output window is not themed and stays white, so existing programs draw exactly as before.
* The About box, Help/Online help and F1 keyword help now open https://doc.basic256.org, which serves the same documentation site under its own name.
* Help/Check for update now simply opens the GitHub releases page, https://github.com/uglymike17/basic256/releases, where the builds for every platform are published. Compare the version there with the one in Help/About BASIC-256. BASIC-256 no longer contacts any website on start-up, so the Options/User setting 'Check for an update on start' is gone.
* Browser (WASM): sound and speech now work on iPad and iPhone. Safari only starts audio and text-to-speech from a real tap, so the first touch anywhere on the page now starts them both. If an iPad is still silent, check the side switch or the Control Centre mute, which silence web audio independently of the volume keys.
* Browser (WASM): playing a sound file or a URL with SOUND, SOUNDPLAY or SOUNDPLAYER no longer freezes the page. These now go through the same in-browser decoder that SOUNDLOAD uses, which also makes SOUNDLENGTH, SOUNDPOSITION and SOUNDSEEK work on them.
* SAY no longer leaves a program stuck forever when the speech engine accepts a sentence and then never reports having finished it. It now gives up after a wait sized to the length of the text and the program carries on.
* Documentation: the ELLIPSE and SETGRAPH statements and the GETARRAYBASE function, none of which had ever been documented, now have pages on the Docusaurus website, and the optional LET keyword in front of an assignment is described on the Variables page.
* Documentation: the bit shift operators (<< and >>) and the compound assignments &= and ;= are now documented, and the order of operations tables have been corrected to match what the interpreter actually does.