Welcome! This wiki documents RFO-BASIC! version 1.91 and 1.92, a BASIC interpreter that runs on Android, with a program text editor, that lets old-style programmers quickly write apps with access to most of the device's features, including web surfing, telephony, and texting. This manual is based on the published manual, plus comments the community has provided on the Forum.
Pages of this wiki will be written gradually and will be based on the existing manual, on personal observations, on study of the examples in the distribution kit, and on discussions on the Forum. Any given assertion might not yet have been reviewed by anyone with detailed knowledge of the code. It may give you additional insight but you rely on it at your own risk. This website is not complete until we say it is!
This wiki may also document new features, clearly labeled as "unimplemented," in order to get the user community to agree on their design and get them implemented in an orderly way.
To make suggestions or report mistakes, click on "Discussion" at the top of the article in question, to edit that article's talk page; or use the Forum. This is a wiki that anyone can edit. However, if English is not your native language, please comment on the Discussion page, adding links to relevant Forum discussions or bug reports, and allow me to shine it up.
Running RFO-BASIC! programs
Apps written in RFO-BASIC! can be activated in one of two ways:
- You can sideload the APK file for RFO-BASIC! and install it on the Android device. Then run it and give it permissions so that a BASIC program can take any desired action (such as send a text). A BASIC source file can be transferred to the Android device in any desired way, such as with Bluetooth, web transfer, or thumbdrive. BASIC code can also be written using the text editor in RFO-BASIC!. Once both RFO-BASIC! and the BASIC source program are both on board, you can run the program in one of the following ways:
- Start RFO-BASIC, select Load and run on the pulldown menu, and specify the name of the BASIC source program.
- Installing RFO-BASIC! adds a widget that lets you associate a BASIC source program with a graphic and places the graphic on the home screen. The Android device will run the BASIC program whenever you touch the graphic.
- Using the program shown below, you can develop the BASIC program on a PC and create an APK file that includes both the RFO-BASIC! interpreter and the BASIC program. This APK file can be sideloaded onto the Android device.
APK files created using option 2 above are not "shrink-wrapped" programs. A user of the APK file could view or change the BASIC code by renaming APK to ZIP and then exploring the file.
- Version 1.92
In 2019, Google imposed new requirements on publishing APK files created using option 2 above on the Google Play Store. RFO-BASIC! version 1.91 used API 18 as the target Android version, but Google requires that apps published on the Play Store must target Android API Level 26. RFO-BASIC! version 1.92, published in April 2019, runs on API Level 27 (Android 8/Oreo). It can run on API Level 28 (Android 9/Pie) but some commands fail.
Version 1.92 comes in a second edition, version 1.92-gp, the Google Play edition. The gp edition is limited to meet Google's restrictions on the Play Store. It is not yet on the Play Store because bugs remain, primarily related to changes Google made to programs that used the Apache library. Alternatives to version 1.92 are to use one of the private version of RFO-BASIC!, such as Oli-BASIC, or special instructions to the APK compiler.
Additional changes in version 1.92 are as follows:
- On installation, the procedure to grant RFO-BASIC! various Android permissions is different.
- The user interface uses Japanese if that is the locale specified for the Android device.
- The SMS statements (to send or receive texts) are no longer supported in the Google Play Edition, but are supported in the Full Edition.
- The documentation of the NOTIFY statement (to place a notification in the Android Status Bar) mentions that it will deliver different results on different versions of Android.
- Not yet documented on this wiki
Readers are welcome to replace the red-links with URLs to the real thing.
- RFO-BASIC! software as of April 2019
- Version 1.92 (see above)
- Full release notes have not yet been completed.
- RFO-BASIC! software as of March 2017
- The official RFO-BASIC! version 1.91 (an .APK that can be sideloaded into an Android device and then installed)
- The official version 1.91 manual, De Re BASIC!
- An incomplete tutorial based on version 1.71
- Private versions
Several users have taken RFO-BASIC! further and published newer versions. This wiki describes areas in which they have done additional work, but does not document their versions.
- Directory for HBASIC versions, including 2.60, 15-May-19, which has been successfully compiled for Android API 28)
- OLI-BASIC (version 20) with examples
- OLI-BASIC (version 21, 23-Dec-17)
- OLI-BASIC (preview of version 30, targets Android API 28)
- Grau-BASIC (RFO-BASIC! v1.91 with Bluetooth Low Energy (BLE) support, supporting source file editing from the PC)
- Support software
- RFODESIGNER — Integrated Development Environment to develop BASIC programs and APKs on the PC for sideloading
- Software that lets you write BASIC code on the PC and then transfer it and execute it on your Android device
- BUI — Drag-and-drop software that lets you design a screen format on the PC and writes skeleton BASIC code that you can complete
- Other helpful information
- The Forum of users of RFO-BASIC!
- A page of Frequently Asked Questions on this Miraheze wiki farm
- The MediaWiki help center: How to edit a website like this
- Forum 4408: Hot summer of code: Meeting the new Play Store requirements
- Forum 4969: Version v01.91 released
- Forum 5472: BLE support (Development of Grau-BASIC)
- Forum 5609: hBasic v2.00 released
- Forum 5669: hBasic v2.30 released
|Manual contents (Statement index)|
|Language features||Arrays • Data structures • Interrupt routines • User-defined functions|
|Interfaces||Audio player • Bluetooth • Graphics • HTML • Sockets • SQL|
|Programming notes||Coexisting with Android|