PICで走るTiny-BASIC
管理人のページ:
ここ何週かにわたってPICで走るTiny-BASICを作っています。ちょっと思うところあってですが、結果的にはナツカシ製作になったような… とにかく名前はHANA-BASICです。
PICはいつもの16F886、さすがにRAM容量がありませんので、256(32KByte)のシリアルEEPをプログラム保存用に使っています。プログラムのロードや実行は、シリアルポートでTeraTermに接続して行います。モノはこんなにカンタンです。(もちろん、RS232Cへのレベルコンバータは別途必要です)
そもそもTiny-BASICの仕様を良く覚えていなかったので、大体こんなもんだろうという感じで作り始めました。16bit整数演算で式の評価は左側から、変数はA-Zの26個、@演算子でのメモリやI/Oアクセス、IF〜THEN、FOR〜NEXTループなどなど、基本機能は備えていると思います。
プログラムを実行した結果はこんな感じです。(クリックすると拡大します)
loadコマンドでプログラム入力モードになり、プロンプト>が表示されます。ここで、あらかじめテキストエディタで作っておいたBASICプログラムをペーストします。大文字でも小文字でもかまいません。内部で大文字に変換しています。
プログラムの最後のeofは入力モードを終わらせるコマンドです。あとはrunで実行します。そろばんでおなじみの総和の計算をやっています。
伝統的なBASICと大きく違うのは行番号が無いことです。行番号を付ければ、編集操作が可能になるので、ターミナルだけでプログラム開発ができます。ただ、EEP上のデータを移動する作業が頻発するので、書き込みに5msほどもかかるEEPでは、一行入力する度に何秒も待たされることになりそうです。
今回の仕様では、プログラムはテキストエディタで作ることとして、行番号による編集機能は省きました。行番号が無いので、GOTOなどはラベルを使って実装しています。
PICで走るTiny-Basicといえば、BASIC Stampが有名ですが、これはプログラムするのに、専用の開発環境が必要です。おそらく効率のいい中間コードに落とす作業を、このツールで行っているようです。
今回の開発の主眼点は、このような専用のツールを使わずに「ターミナルからテキストを送り込めばプログラムが実行できる」ことです。プラットフォームを選びませんし、HPから遠隔地にあるHANA-BASICをプログラムするなんてことも、カンタンに実現できそうです。
詳しい説明は次回投稿します。
« XBeeでちょっと訂正 | トップページ | PICで走るTiny-BASIC(続き) »
「管理人のページ」カテゴリの記事
- スパイ映画に出てきそうな高一再生検波受信機(2022.12.10)
- 「超小型」電池管再生検波ポケットラジオ(2022.11.08)
- サブミニ管5678と大型バーアンテナの再生検波ポータブル(2022.07.14)
- 電池管マイブーム到来(2022.07.01)
- グレイ・ウォルターの真空管式電子カメを作ってみる(2022.06.27)
コメント