BASIC VM for the Gamebuino (and possibly Arduino) Platform


Basic VM and compiler for the Gamebuino (and possibly the Arduino) platform.

What is BuinoBasic?

BuinoBasic consists of two main parts, which are the BuinoBasic compiler (or short bcc) and the BuinoBasic VM (bvm). The compiler takes your Basic source code and translates it into a memory structure, that your computer can understand. These structures are then compiled into binary tokens and then saved to a file. You then put the file onto your Gamebuino's SD card. Now the VM comes into play. It's job is to execute the binary tokens and perform the operations assigned to them. So you flash the VM's compiled hex file onto the Gamebuino like any other game using the loader. Now you can select a file you want to run. After selecting your file, the VM will validate and start executing it.

What features does BuinoBasic bring?

BuinoBasic allows you to use a subset of (Q/GL)Basic for the syntax of your game's source code. Basic is one of the easiest and in this dialekt a very powerful language, supporting functions, 8-64 bit integers, strings and even arrays. It has flow control blocks, I/O, sound, graphics, file management functions. But that is not the end. Using BuinoBasic, you don't have to reflash your Gamebuino to load a new game, making it faster to play or to debug a new game. Just drop it onto the SD and start it in the VM. This will also save you flash-cycles making your Gamebuino's main MPU's memory last longer. There will even be a small compiler on the Gamebuino itself, which allows you to experiment with a limited Basic subset on the fly! But as everything, BuinoBasic also has its drawbacks. It is a some slower than plain C++ and a lot slower than optimized assembly. Also does BuinoBasic not allow you to include any kind of unmanaged code, so any hardware feature must be implemented as a function or it won't work, but you can still request a new feature to be added.

How can I help with Development?

Help is always welcome! Below you will find a list of tasks with which you can contribute:

And don't forget to spread Gamebuino and BuinoBasic to the world!