せっかくマイコンに豊四季タイニーBASICを移植したので、IO入出力コマンドも使いたくなってきたので機能拡張してみた。
豊四季タイニーBASICのコマンド拡張方法はここで解説されている。
・機能拡張のおおまかな話 電脳伝説 Vintagechips
実際にやってみたがそれほど難しくはなかった。
大まかな手順は、
1.Keyword tableにキーワードを追加する。
2.中間コードを追加する。
3.追加するコマンド/関数の処理を実装する。
4.追加したコマンド/関数を呼び出す処理を追加する。
IO出力のようなコマンドの時は、iexe()へ追加。
IO入力のような入力関数の時はivalue()へ追加。
IO出力の「OUT」コマンドと一定時間待つ「WAIT」コマンドを追加する例を紹介する。
豊四季タイニーBASICのmbedへの移植は終わっているものとする。
もし、入力関数を追加したいときはABS関数のgetabs()を参考にするとわかりやすい。
追加するコマンドの書式は
【OUT】
OUT io番号 , 出力データ
io番号 : 0と1(この例では、LED1とLED2に割り当ててある)
出力データ : 0,1
使用例:OUT 0, 1 LED1を点灯(mbed platformによっては0を出力で点灯するものもある)
【WAIT】
WAIT 待ち時間
待ち時間の単位はms
使用例:WAIT 1000 1秒待つ
コマンド追加のためのソース修正
「ttbasic.cpp」に下記赤枠の修正をする。
――――――――――――――――途中省略――――――――――――――――――――――
――――――――――――――――途中省略――――――――――――――――――――――
――――――――――――――――途中省略――――――――――――――――――――――
――――――――――――――――途中省略――――――――――――――――――――――
――――――――――――――――以下省略――――――――――――――――――――――
追加したコマンドでLチカをやってみた。
こういう時は抵抗内蔵LEDが便利。(秋月で購入)
ー以上ー
関連する記事
参考リンク