前回作ったハードを動かすためのソフトを考えます。
インタプリタ言語は?
前回も書いた通り、SDカードに保存したゲームプログラムを実行できるようにしたいので、インタプリタを載せようと思いました。
使うイメージとしては、
(1)TinyBoyをUSBシリアル変換器を通してPCに繋ぐ
(2)ターミナルソフトを起動する
(3)プログラムを打ち込んで実行する
という感じです。
もちろん、完成済みのプログラムであれば直接SDカードにいれてもいいです。
言語ですが、昔にMSXとかファミリーベーシックで遊んだ世代なのでやっぱりBASICがいいかなぁとおもいました。で、いろいろ考えたのですが、C言語でTiny BASICを作られている方がいたので、それを使わせていただくことにしました。ライセンスはGPLのようです。
https://github.com/rutles/ttbasic_arduino
Tiny BASICを拡張
Tiny BASIC は “Tiny” と言うぐらいですから、とてもコンパクトで出来ていて制限も多いです。
しかし、コンパクト故にソースの見通しもよく、拡張するのも容易です。
現在のところ以下のように拡張しています。
余剰の追加「%」
ビット演算子の追加「& ^ | << >>」
論理演算子の追加「&& ||」
比較演算子の変更「 = → == 」「 # → != 」
また、ゲーム用で以下の命令を追加しています。
ドットの点灯「GPSET」
ドットの消灯「GPRESET」
ドットの状態を得る「GPSPOIT」
ドットの全消灯「GCLS」
ウェイト「WAIT, VSINC」
あとはプログラムのSDカードへの保存と読み込みの機能をつける必要がありますが現在のところまだ出来ていません。
ソースはgithubで公開しています。
https://github.com/MakotoKurauchi/tngame
動作
まだ未完成ですが、とりあえずこのように動作しています。
このゲームのソースはこちらです
https://github.com/MakotoKurauchi/dotgames/blob/master/missile.bas
One thought on “ちっちゃいゲーム機を作ってます(2)”