PIC−USBIO using BASIC
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
USBインターフェースを内蔵したPICを使ってWindowsパソコンで外部回路を制御するための各種I/O基板の製作記事です。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
[第6回]
●BASIC for PIC−USBIOの暫定仕様
Windows(コマンドプロンプト)上で動くPIC−USBIO用BASICの暫定仕様です。
開発中ですので暫定仕様です。
まだ確定ではありません。
これからできるだけ機能アップを考えていきたいと思っておりますし作業の進行によっては機能を変更する可能性もあります。
PIC−USBIO用BASICはインタプリタです。
ND80Z3.5などに附属のZB3BASICもインタプリタですが、ユーザプログラムはTXT形式ではなく中間言語に翻訳してRAMに格納したあとで実行します。
インタプリタは毎回ソースプログラムを翻訳しながら実行するので実行速度が遅いのが唯一の欠点です。
できるだけその欠点をカバーして速度アップを図るためRAMに格納する時点で中間言語に翻訳しています。
しかしWindows版PIC−USBIO用BASICは現行では中間言語ではなくてTXTイメージのままです。
まずはできるだけ開発速度を上げたいと考えているため、またとりあえずのプロトタイプ仕様と考えているためです。
いずれ最終的には中間言語型にすることになると思っています。
もうひとつND80Z3.5などのZB3BASICと大きく異なっている点があります。
これも現在時点での暫定仕様ですがWindows版PIC−USBIO用BASICの計算は整数演算のみで今のところ浮動小数点計算は考えていません。
I/O制御のためのBASICですから実数機能までは不要なのでは、と考えています。
余りあれこれいろんな機能を詰め込みすぎるとかえって扱いにくいものになってしまうのではないかとも考えているからです。
もっともすでに書きましたようにこのBASICインタプリタはC++コンパイラを使って作成しています。
ZB3BASICなどのようにアセンブラでBASICインタプリタを開発するのに比べれは数値計算などの機能を組み込むのははるかに容易です。
ですから現時点では整数計算のみと考えていますがそのうち気が変わって浮動小数点計算機能も組み込んでしまうかもしれません。
あるいはそういう機能にまで発展したバージョンアップ版を別途作成することになるかもしれません。
文字型についてはI/O制御のためのBASICですから必要性はそれほどないかもしれませんが、一応ひととおりの機能は組み込んでいます。
変数についても実数型は扱わず整数型と文字型のみですから変数名についてはZB3BASICの規則とは少し異なっています。
変数名は最長13桁で英大文字、小文字、数字、−、_で構成します。
ただし先頭の1字のみはアルファベットでなければなりません。
文字型の変数名の最後の1文字は$をつけて文字型であることを示します。
数値は最大32ビットの整数です。
−2147483648〜2147483647の範囲の整数です。
文字型は最大39桁の半角英数字です。
カナ、記号についてはまだ詳細テストしていません。
計算記号についてはとりあえず()を含む+−*/を組み込んだだけです。
命令、関数の組込みを優先したためです。
^(ベキ乗)も必要かと思いますのでこれから考えていくつもりです。
3次元までの配列が扱えますが今のところ整数型のみで文字型は対象外です。
以下は今までに組み込んだコマンド、命令、関数等です。
ちょっと時間がありませんからとりあえず名前のみを列挙します。
このBASICで特別の機能として使う一般的ではない名称もありますがそれについては次回以降で補足説明をしていくつもりです。
1)コマンド
AUTO
CONT
DELETE
HELP
LIST
NEW
REN
RUN
/LOAD
/SAVE
/EXIT
2)命令
CLOSE
DIM
FOR TO STEP
GOSUB
GOTO
IF
INPUT
INKEY$
NEXT
OUT
PRINT
REM
RETURN
RDATA
ROPEN
STOP
WDATA
WOPEN
3)関数
ABS()
AND()
ASC()
BI$()
BIT()
CHR$()
EOF()
HEX$()
IN()
INPUT$()
LEFT$()
LEN()
MID$()
OR()
RIGHT$()
STR$()
VAL()
XOR()
PIC−USBIO using BASIC[第6回]
2022.6.1upload
前へ
次へ
ホームページトップへ戻る