Butterfly BASIC for the MSP430

By Paul Curtis, Rowley Associates Limited

Welcome to the project page which contains an interpreter for a dialect of BASIC that you can run on your MSP430 boards. A bit of a bonus for some people is the fact that Butterfly BASIC is written completely in assembly language so you don't need a C compiler to compile it.


A 13-year-old with nothing better to do with his time is a formidable learning machine if his interest is sparked. Well, my interest was sparked by the Commodore PET and the lust for something faster than its built-in BASIC. After learning a bit about 6502 assembly code, I went on to write a disassembler and start grubbing about in the innards of Microsoft's 6502 BASIC interpeter and the Commodore OS. After many weekends work, I emerged with a disassembly of the the ROM, fully commented—I knew how the machine worked!

From this, it was a simple leap to write my own assembler, learn about the IEEE488 bus, disassemble the 2040's disk operating system, and work out how to do cool stuff like blink the LEDs on each of the drives. It's also when I learnt about how to get out of the apparently infinite loop CLV; L0: BVC L0 that infested the 2040 ROM.

The Project

What has all this to do with Butterfly BASIC? Well, I thought I'd have a go at crafting an integer BASIC myself—for the MSP430. I fashioned Butterfly BASIC after the BASIC you'd find on an Acorn Atom (my first personal computer). You get the source, you get some documentation, and it's released under the GPL. Have fun!

Future Directions

I've little interest in this software now. I'll answer questions, but don't expect me to put in a great deal of effort to support it—my life is spent supporting and enhancing our real product, CrossWorks for MSP430. I get enough requests for help on the MSP430 not directly related to CrossWorks to keep me busy for some time.