Author Topic: BBC BASIC  (Read 1622 times)


  • Guest
« on: September 24, 2018, 10:11:15 PM »
Richard has released new versions of BB4W and BBC SDL

Richard Russell Sep 18   #22738 
I have today released 'BBC BASIC for SDL 2.0' version 0.24a.  The changes in this version are as follows:

The line editor used by the INPUT and INPUT LINE statements (and in immediate mode) has improved support for UTF-8 (Unicode) encoding.  Cursor movement, insert/delete, typing (in both insert and overtype mode) etc. should work correctly so long as a fixed-pitch (monospaced) font is selected.  Since SDL uses UTF-8 for keyboard input, even something as simple as entering the £ sign requires this support.
The 'socklib' library has been enhanced to support UDP as well as TCP communication.
A new 'utf8lib' library provides UTF-8-compatible replacements for the LEFT$, RIGHT$, MID$, INSTR and LEN functions.
David Williams' Rainbow Snake game is included as in the examples/games directory.
A new example program '' demonstrates using UDP packets for a 'serverless' chat application.
This new version may be downloaded, for all the supported platforms (Windows, Linux, Mac OS, Raspberry Pi, Android, iOS) , from the usual place:

It is with some trepidation that I announce the release of BBC BASIC for Windows version 6.12a.  This is a maintenance release, the primary purpose of which is to update BB4W to a similar specification to BBCSDL v0.24a, to facilitate portability of programs and libraries.  You can update your copy by downloading and installing upgrade.exe (for the full version) or bbcwdemo.exe (trial version).  The new and changed features in v6.12a are as follows:

PTR(string$) supplies the memory address of a string; it returns the same value as !^string$ but is compatible with 64-bit versions of BBC BASIC.
The SYS statement can return a floating-point ('double') value by specifying a 64-bit float variable (var#) after the TO.
The <<< operator performs a full 64-bit left shift irrespective of the *HEX mode currently in effect.
INT(number) now returns an 'integer variant' rather than an 'integer float' (when possible).
ODBCLIB (for accessing databases) and UTF8LIB (for UTF-8 strings) are added.
SOCKLIB has been enhanced to support UDP (User Datagram Protocol) sockets.
Example programs:
CLIENT.BBC, SERVER.BBC and LANCHAT.BBC have been added in the GENERAL folder.
ENTERTAINER.BBC and SOLDIERS.BBC have been added in the SOUNDS folder.
PYRAMID.BBC has been modified to create and save its own FVF files.
IDE and program editor:
Edit... GoTo (shortcut Ctrl+G) allows you to jump directly to a specified program line.
Context help is now displayed slightly lower, so it doesn't obscure the keyword it is referring to (requested by a user).
The Help menu links to the Forum and Wiki have been updated following the demise of Conforums and Wikispaces.
A new directive REM!NoPrinter suppresses the default printer check, which can sometimes be very slow.
REM!Fast now allocates enough space for 64-bit array and structure descriptors, in case the crunched program is run in iOS.
The changes to the interpreter are not entirely free of compatibility implications.  If a 'double' variable (# suffix) has previously been used to receive the integer result from a SYS call (very unlikely, but not impossible) then the program will require modification.  If the <<< operator has been used (perhaps by mistake) as a synonym for <<, the result could change depending on the initial values.  I would be surprised if anybody is affected by these issues, but it is as well to be aware of them