BBC BASIC for SDL 2.0 version 1.15a released

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

BBC BASIC for SDL 2.0 version 1.15a released

Post by RichardRussell »

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

    Added the PTR()= syntax to set the pointer of a structure, array or string.

    Extended =PTR() to return the pointer of a structure or array as well as a string.

    Added = SYS("function") to return the address of an API function, or zero if it doesn't exist.

    Added support for @cmd$ possibly being longer than 255 bytes.

    Changed TIME from unsigned to signed, since code like 'T% = TIME' is very common.

    Fixed a minor problem with the 'pending newline' mode (VDU 23,16,1|) (needs fixing in BB4W too!).

    Fixed a bug (in the 64-bit and ARM editions only) causing assigning a string to a numeric variable not to result in the expected 'Type mismatch' error.

  2. IDEs and Utilities:

    SDLIDE: Implemented breakpoints, very similar to those in LBB and bbcide (double-click in the left margin to add or remove a breakpoint).

    SDLIDE: Enabled the Print option in the File menu and toolbar. This prints the current program to the default printer.

  3. Libraries:

    Modified filedlg to fix an incompatibility with *HEX 64 mode.

    Modified dlglib to reduce CPU usage when idling, especially when a List Box has the input focus.

    Modified socklib to prevent a 'double-free' error if PROC_exitsockets is called twice.

  4. Example Programs:

    Modified to recognise the word Thunder in the weather description and display the 'storm' indication.

    Modified to include 'ANSItex BBS' in the list of services, and to disable 'pending newline' mode.
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, 64-bit Linux and in-browser editions, currently).


Re: BBC BASIC for SDL 2.0 version 1.15a released

Post by RichardRussell »

In case of TL;DR can I draw attention to the two main new features in SDLIDE, printing and breakpoints:

The Print option in the File menu and the Print button in the toolbar are now active. They both result in the current program (as displayed in the editing pane) being listed on your default printer. SDLIDE gives no control over layout, font etc. but your Operating System should provide a way of configuring the default printing options, either at a command prompt or via a GUI.

You can set (or clear) a breakpoint on a program line by double-clicking in the left margin, pressing Ctrl+B or using the Run... Toggle Breakpoint menu option. When such a breakpoint is set, the program will pause on that line (if it is ever executed) when run in Debug mode; breakpoints have no effect if the program is run 'normally'.

In the paused state you can examine variables, stop the program, run to the next breakpoint (if any) or single-step execution (Step Into or Step Over); adding or removing breakpoints will have no effect until the next time the program is run. You can clear all breakpoints by pressing F4 or using the Run... Clear Breakpoints menu option.


Re: BBC BASIC for SDL 2.0 version 1.15a released

Post by RichardRussell »

With the portfolio of 'my' versions of BBC BASIC now being quite large I have created this grid showing which version has which capabilities. The boxes marked ? indicate features of which the version is theoretically capable, but I haven't yet attempted an implementation:

You do not have the required permissions to view the files attached to this post.