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.
- 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.