BBC BASIC for SDL 2.0 version 1.13a released

New releases of BB4W and BBCSDL, and other updates, will be announced here

BBC BASIC for SDL 2.0 version 1.13a released

Post by RichardRussell »

I've released version 1.13a of BBC BASIC for SDL 2.0 - the cross-platform programming language for Windows, MacOS, Linux, Raspbian, Android and iOS. The changes in this version are as follows:
  1. BASIC Interpreter / Run Time Engine

    Implemented VDU 23,18,3,n| to enable or disable alpha/graphics black and secondary character set in MODE 7. It also 'fixes' the SAA5050 Hold Graphics bug.

    Implemented OSWORDs 139 & 140 (again!) to read and redefine the 'teletext' font (documented here).

    Reduced SOUND latency (which risks buffer underrruns on slow systems, but I hope is a better compromise).

    Setting bit 6 of *TEMPO changes the way the pitch envelope repeats to be more compatible with the BBC Micro (it's also now the default).

    Fixed a bug affecting scrolling of one-row-high text viewports (64-bit and ARM editions only).

  2. IDEs and Utilities

    SDLIDE: When loading an Acorn-format tokenised program, 2-byte tokens are automatically converted to their 1-byte equivalent (if any).

    SDLIDE: The file selector now uses smooth scrolling.

  3. Libraries

    Added classlib for Object Oriented Programming, compatible with the BB4W library.

    Added mode7lib to support multiple character sets in MODE 7 (the primary and secondary character sets may be selected from English, German, Swedish, Belgian, Italian, Hebrew, Russian, Greek or US ASCII).

    Modified dlglib and filedlg to support smooth scrolling of listboxes.

  4. Example Programs

    Added (in examples/general) which is a graphical demonstration of six different sorting algorithms, adapted from a QuickBasic program.

    Added a page to to demonstrate alpha/graphics black and the secondary character set.

    Tweaked to improve its reliability (previously it could misbehave after running for a few hours).

    Fixed which was partially broken by the change of the MODE 7 font in v1.11a.
This new version may be downloaded, for all the supported platforms, from the usual location. The GitHub repository has been updated (used to build the MacOS, Raspbian, iOS and 64-bit Linux editions, currently).

Please remember that if you use the BBC2APK Android Application Generator you should download a new APK template to ensure that any updates to the run-time engine are incorporated in your own apps.


Re: BBC BASIC for SDL 2.0 version 1.13a released

Post by RichardRussell »

This isn't anything new, but I've noticed that some of the example programs (specifically those that automatically scale their output to the window size) fall over with a 'Division by zero' error if put into the background, and then restored, on Android or iOS. This is happening because SDL2 is sending a 'window size changed' ON MOVE event, but with the window width and height set to zero!

Whether this is a bug or a 'feature' in SDL I don't know, but as a workaround it will be necessary either to change the ON MOVE handlers in those programs to ignore a width or heoght of zero, or to modify BBCSDL itself so that the ON MOVE doesn't happen if the width or height is zero. I will do one or the other in the next release.