archives

Language/Interface for a 5-button device

I'm going to be doing some traveling in the near future where I won't have my laptop available, but I'd still like to be able to play around with programming a bit. I have an MP3 player running the opensource firmware rockbox, and thought I could develop a plugin for it that would be a programming environment that would let me still code some toy programs relatively quickly despite the player only having 6 buttons.

This presents some unique challenges. Ideas so far:

-Keep naming things to a minimum (since typing variable names by selecting letters from a grid would be really burdensome). I'm thinking of just having a 'new variable' option that would give a variable with an autogenerated name (e.g. 'A1'), with the option to edit the name if things start to become too unreadable.

-Programs are state machines. Press a button to make a state (also having autogenerated names, e.g. 'S1'). Each state has a set of button handlers and a particular screen graphic associated with it. Not necessarily scalable to large programs, but should be sufficient for small ones. This way switching what buttons should do and switching what's on screen involves just picking a state from a list.

-Builtin functions to draw a grid of squares, iterate over all of them by row or by column, and the ability to associate state with each square. Squares will automatically have at least one character variable associated with them, and the value stored in it will be drawn inside the square.

I think this would be enough to implement some simple board games like othello, and some toy programs like say a binary clock. But I'm curious if anyone else has ideas or has worked in a similar environment, say trying to make a programming IDE for a cell phone or other limited input device.