Topics

BBC BASIC for Windows version 6.10a released

Richard Russell
 

I have released BBC BASIC for Windows version 6.10a. This release addresses the 'string parameter instability' issue and provides improved compatibility with BBCSDL. It includes the following modifications:

Interpreter:

  1. If the 'string parameter instability' condition is detected, an 'Incorrect arguments' error (ERR = 31) is reported. This is a major change, although it has been in BBCSDL for some time. See the 'Bug alert' thread for details.

  2. For improved compatibility with BBCSDL, the *DISPLAY and *MDISPLAY commands have been extended to accept an optional 'transparent colour' parameter.

  3. For improved compatibility with BBCSDL, the WIDTH(string$) function is implemented.

IDE and editor:

  1. The 'Set Font' and 'Set Printer Font' commands now permit selection of proportional-spaced fonts as well as monospaced fonts (unless disabled by a registry setting).

  2. The Help menu has been updated so as no longer to link to the 'unofficial' BB4W forum, and to include a link to the Facebook page..

  3. When pasting into the editing pane, soft-spaces are converted to hard-spaces.

Libraries:

  1. The D3DLIBA, D3D9LIB and D3D9LIBA libraries are included.

  2. The MULTIWIN library forwards mouse double-click messages to the main window.

  3. The HQSOUND library incorporates PROC_voice() and PROC_stereo() which are functionally similar to the *VOICE and *STEREO commands in BBCSDL.

Add-in Utilities:

  1. A problem causing the Profiler utility to fail if the program contained a *FLOAT command has been fixed.

Example programs:

  1. New programs 2048.BBC, BUGGY.BBC, DIBLEY.BBC and TRIPLES.BBC have been added to the GAMES directory.

  2. New programs BOUNCE.BBC, SCARAB.BBC and SNOWSCENE.BBC have been added to the GRAPHICS directory.

  3. A new program TOCFUGUE.BBC has been added to the SOUNDS directory.

To upgrade your copy of BBC BASIC for Windows to version 6.10a, and at the same time update your libraries, utilities, example programs and manual, download and install UPGRADE.EXE from here:

http://www.rtrussell.co.uk/bbcwin/download.html

You may receive security warnings from Windows. That issue will resolve itself eventually when the files have been downloaded a sufficient number of times for them to have gained a 'reputation' for safety.

Richard.

Richard Russell
 

With the release of v6.10a I've formally withdrawn support for version 5, and the 'downgrade' facility to v5.95a has been removed from the download page at the website. 'Parallel' support for v5 was continued for a while because of the significant (and in a few cases incompatible) differences introduced in v6, but more than two years have now passed since the release of v6.00a so people should have had plenty of time to adapt.

There's also the issue that BBCSDL (the cross-platform version of BBC BASIC for Windows, Linux, Mac OS, Android and Raspberry Pi) uses the version 6 interpreter, and of course the new C-based interpreter used by the ARM editions is also compatible with v6, so that has become the de-facto standard. Version 6 has some very significant advantages over v5, not least the support for 80-bit floats (x86 only) and huge strings.

I should add that although the ARM processor sadly doesn't support 80-bit floats (at least, not the modern variants used by Android) I have nevertheless ensured that the C version of the interpreter retains that support if compiled for an x86 target.

Richard.

Alex Farlie
 

Thanks, the only code I can recall myself using which depended on certain behaviour in anything pre 5.95a was the BB4W Forth you stated at the time of it's development was completely unsupported, and certain examples concerning how to do 'pointers' to record structures which naturally could be updated with the new documentation.

I wouldn't be in the least surprised if BB4W in future versions slowly phases out support for older OS. ( That said with BB4W SDL now being available, BB4W is in a far greater range of platforms anyway.)




Richard Russell
 

On Thu, Apr 27, 2017 at 11:18 am, <alex.farlie@...> wrote:
the only code I can recall myself using which depended on certain behaviour in anything pre 5.95a was the BB4W Forth

I've just tried BB4W Forth on v6.10a and it mostly seems to run OK.  The one serious problem I've spotted is that a MODE (or equivalent) statement causes it to crash dramatically.  Interestingly, exactly the same crash happens with BB4W v5.95a so it doesn't seem to be a v5/v6 issue.  This will obviously need attention, but otherwise the signs are good that Forth will continue to be usable.

Richard.

Richard Russell
 

On Thu, Apr 27, 2017 at 01:49 pm, Richard Russell wrote:
This will obviously need attention

The MODE crash was subtle (nothing to do with the version of BB4W at all) but easily fixed.  So it seems that, in fact, BB4W Forth is not an example of a program which is incompatible with v6.10a.  It's true that it depends on several 'internal variables' being at known fixed addresses, but I was careful not to move them in the upgrade from v5 to v6.

I have uploaded the new version of BB4W Forth, with the MODE crash fixed, to the Files area of this group, as 'bb4wforth.zip' (in the Miscellaneous folder) and 'FORTHLIB.BBC' (in the Libraries folder).  I have only tested the former, but only trivial changes have been made to the latter.

Richard.