GeezerVisonThe World Wide Web, restored to 800 pixels of glory. | ||||
| Home|About|Gaming cabinet|Archives|How it works|Starter sites | ||||
GeezerVison is showing basicengine.org — BASIC Engine RX BASIC Engine RXCheck the BASIC Engine NG page for information on the retired "BASIC Engine NG" bare-metal H3 platform, and the "classic" BASIC Engine page for information on the legacy ESP8266-based BASIC Engine platform. What is the BASIC Engine RX?The BASIC Engine RX is a firmware for very low-cost single-board computers with great 2D color graphics and sound capabilities similar to early to mid-1990s computers and video game consoles. It can be used on widely available and Orange Pi single-board computers (as well as most other devices built around an Allwinner H3 or H2+ chip) and runs from an SD card. The RX platform has a ton of new and improved features compared to both the BASIC Engine NG and the classic BASIC Engine. To make it easier to spot the differences I have marked them in green and blue, respectively. What can it do?Screenshots
FeaturesHardware supportThe BASIC Engine RX makes use of most of the features built into the H3 and H2+ chips and boards:
(Note that not all H3-based boards have connectors for all interfaces. If you are adventurous and your soldering skills are up to snuff you may be able to add them yourself, though…) SoftwareThe BASIC interpreter "Engine BASIC" allows you to use the BASIC Engine as a standalone computer and write programs in BASIC and some other programming languages. It gives you easy access to the hardware’s capabilities and has a lot of nifty features. Engine BASIC is not based on any existing system. It runs on the "bare metal". That means that it is not constrained by an operating system that controls what you and your program are and are not allowed to do, and it certainly won’t impose any unnecessary restrictions on you. Engine BASIC is for beginners, and therefore tries to make it hard for you to shoot yourself in the foot. But if you insist, it will not stand in your way. Another benefit of its "bare-metal" architecture is that your program is the only thing that matters. There are no things going on in the background that may cause delays, jankiness or instabilities. If your program doesn’t work exactly as desired every single time, you did something wrong. Or I did. But it will never be because a scheduled update is installed in the background while you are trying to get stuff done. While you and Engine BASIC are enjoying yourselves, there is still an adult in the room. One of the CPU cores on your BASIC Engine is dedicated to a Linux system that takes care of the less exciting but still essential bits. It will never interfere with what you and Engine BASIC are doing, but when asked it will provide you with keyboard and controller input, file system and network access. It can also record what you are doing in a video file on the SD card, so you can post it for others to enjoy. Or attach it to a bug report. Linux has second-to-none hardware
support and can handle virtually all game controllers, joysticks, keyboards,
mice, wireless networking devices, USB microphones and similar things you
may want to hook up to the USB ports or the expansion connector on your
board, and it also makes its extensive set of powerful command-line
utilities available to be used from Engine BASIC with the On first start you will be presented with a menu in which you will have to select which board you are using. The system will then repartition the SD card so it can be used for BASIC programs and data. Once that initial setup is done, the BASIC Engine is able to boot from power-on to the BASIC prompt in about eight to nine seconds. Graphics and soundGraphics and sound are the most important features in any home computer and game console. Here’s what the BASIC Engine has to offer:
Special BASIC language featuresEngine BASIC is old-school. Lines have numbers. But when you have programmed for more than a certain amount of time (an hour for some, ten years for others) it will happen to you that you look at a program and don’t understand what it does. Even though you wrote it yourself. That’s the point at which you will begin to appreciate some of these not completely traditional features of Engine BASIC:
Development featuresProgramming is about telling a machine what to do. But you need to do the telling, and you need to stay on top of what you told it. These features help you with that:
InternationalizationEngine BASIC speaks your language. It is available in English, German, French, Spanish and Japanese, with all system messages and help texts translated. National keyboards layouts for all supported languages are available. Unicode and UTF-8 are fully supported by Engine BASIC. The built-in fonts support various alphabetic scripts as well as Japanese kana. Kanji fonts are loaded as required. A basic Japanese input method is available. BASIC and system extensionsEngine BASIC has a ton of features out of the box, but if you’re like me you will always think: "But what if it could do…?". If you’re also like me, you are a professional software developer and know that feature creep is the black plague of software engineering. To resolve this dilemma, Engine BASIC provides a module framework. It is possible to extend the Engine BASIC system with custom modules programmed in C, assembler or (with external tools) C++ and other compiled languages that are loaded at run time, giving you endless possibilities to augment its functionality: new BASIC commands, graphical capabilities, device drivers, utility programs, new input and output methods, ports of programs from other platforms etc. An extensive API is provided for extension developers, consisting of standard library and Engine BASIC-specific functions. An on-board C compiler makes it possible to develop extensions (or any other programs) on the BASIC Engine itself. Such modules (and Engine BASIC itself) can be debugged from the Linux support system using an on-board debugger via the serial console or an SSH connection to the board. The modules directory in the demos repository provides examples showing you how to use the API. It also shows how to cross-compile modules on a different computer for projects that require a well-optimizing compiler for maximum performance. The Lua language and the SAM speech synthesizer that were built into the firmware on the classic BASIC Engine platform are now provided as modules. Other features
How to install itYou can download nightly built SD card images that are ready to use and contain the firmware, all support files and demos from the git_builds directory for H3 RX. Once you have unpacked the SD card image and written it to an SD card ("Balena Etcher" and "dd" have been successfully used to do so, but any other tool for writing SD card images will do) you can place it in the SD card slot of a supported H3 or H2+ board (and most unsupported ones), and the device will be ready to use. On first boot you will be presented with a menu that allows you to choose which specific board you are using. Select the correct entry with the cursor keys and press enter. (If you cannot find your specific model you can select a different board with a similar feature set. This is not guaranteed to work, but the likelihood that it will is quite high.) How to use itIntroduction to BASIC ProgrammingIf you have never programmed a computer in BASIC or any other programming language, you may want to start with the Introduction to BASIC Programming. Reference ManualConsult the Engine BASIC RX Reference Manual to find out how to make the most of the capabilities of Engine BASIC. Cheat SheetsThe Engine BASIC cheat sheets provide a handy reference for beginners: Cheat sheet #1: Handling BASIC Programs DemosBASIC demo programs can be found in the Engine BASIC demos repository. Note that all of these demos are included on the nightly SD card image. How to contributeSource code
Compiling the firmwareThe BASIC Engine RX firmware uses the buildroot system found at
basicengine-buildroot, branch
If you do not usually use your system for development, you may have to
install a number of requirements first. See the
buildroot
manual for details. In addition, the Once the dependencies are installed, run When the build succeeds, you will find an SD card image ( ContactIf you have any questions or suggestions related to the BASIC Engine, check the BASIC Engine Forum. | ||||
| You are visitor 01402503 — GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required. |