ちっちゃいゲーム機を作ってます(2)

前回作ったハードを動かすためのソフトを考えます。

インタプリタ言語は?

前回も書いた通り、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

 

 つづきはこちら

投稿者:

ないん

30半ば過ぎで突然電子工作にはまりました。

「ちっちゃいゲーム機を作ってます(2)」への1件のフィードバック

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です