Hello, all. There is enough new stuff to warrant a v01.81 release -- but it is woefully under-tested, and the manual is not yet caught up.
Instead, I have put all the latest stuff in a test build on BinTray, version 1.80.01. You go to https://bintray.com/rfo-basic/android/RFO-BASIC/
to get it; click on the "Basic_18001.apk" link. Or just click here
. You can install it on top of any other BASIC! version, like v01.80, except that it will not be on the Google Play Store.
There are no release notes on BinTray (and the Menu->About in the Editor won't work), because I am working on the manual for the v01.81 release. You can get a list of features and fixes on GitHub, Issue #157: Release 1.81
. There are details for most changes in the linked GitHub issues. I've listed the highlights below.
I really don't want to break your programs with the new release, so it would be really great if you could download the test build and run anything you think I might have broken. And anything else you have, just because. I made a huge infrastructure change, designed to make it easier for others to add commands to the BASIC! interpreter. It should not affect existing programs, but I'll breathe easier when it has some real run time on it.
The APK version number is 1.80.01, or 18001, but the version$() function returns "01.80a". Normally I don't change the version$() on test builds, but I wanted you to see Nicolas' splash screen. You will only see the splash screen once. If you want to see it again, go into "rfo-basic/source/Sample_Programs/" and delete everything that starts with "f00_v01".
Here are the highlights:
- Fixed the new, v01.80 version of the ISR variable namespace bug. See this thread and GitHub Issue #78.
- BASIC! has a splash screen! Thanks, Nicolas and Antonis. See here and here, and GitHub Issue #40.
- New commands: HTML.ORIENTATION (see here and here), and the RINGER settings (here).
- New functions INT$() and USING$(). The latter can also be aliased FORMAT_USING$(). See this thread and GitHub Issue #156.
- Orientation parameter on HTML.OPEN to go with the HTML.ORIENTATION command.
- GR_Collision() now detects text objects. See GitHub Issue #50.
- Luca and humpty fixed some pre-processor bugs affecting special operators. See here and GitHub Issue #147.
Something to watch out for if you use the GR.Get.TextBounds command. It will return the bounds of a text string, as before, or of a text object you have already drawn. You specify the text object with a numeric object number. This feature has the same caution as PRINT, in that it may evaluate the argument twice. If the argument is an expression with user-defined functions, the functions may run twice. If a function has side-effects, they may happen twice, too. The fix/workaround is the same: catch the output of the function in a variable, then pass the variable to GR.GetTextBounds. I'll write about this in another thread.
I will be making the same change in GR.Text.Width. (The test build has a GR.Get.TextWidth -- my bad, I will delete it before v01.81.)
I know there are lots of things I have promised that are not included in this build, and won't be in v01.81. I'll try to get them in v01.82. Feel free to remind me of things you have asked for before.
A new v01.81 will be along soon, maybe a few days or a week, depending on your test results. Thank you for your help!