2022.6.13
前へ
次へ
ホームページトップへ戻る


PIC−USBIO using BASIC

〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
USBインターフェースを内蔵したPICを使ってWindowsパソコンで外部回路を制御するための各種I/O基板の製作記事です。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜

[第11回]



●行番号について

前回は「PIC−USBIO用のBASICではGOTO文、GOSUB文の飛び先、コール先を指定するのに行番号を使わずラベル名を使う」と書きました。
下は前回、前々回にお見せしたテストプログラムです。



まずは「なぜ行番号が必要か」ということから先に説明をします。
その理由は2つあります。
そのひとつはキーボードからプログラム行を入力するときに、それがプログラムの一部なのか、それともその行だけをダイレクトに実行するのか、の区別をつけるためです。
行番号をつけて入力したプログラム行はプログラムの一部としてバッファメモリに蓄えられます。
同じ命令行を行番号をつけないで入力するとその命令行は直ちに実行されます(ダイレクトモード)。
その2つを区別するために行番号は必須の機能なのです。
もうひとつの理由は既に入力済みのプログラムの一部を削除したり、2つの行の間に行を挿入したりすることができるようにするためです。
たとえば上の例で20行と30行の間に行を追加することを考えたとします。
その場合には追加する行を行番号25の行として入力すればよいのです。
逆にたとえば30行を削除したければその行番号のみを
30[Enter]
のように入力すればよいのです。
またDELETEコマンドを使って
DELETE 30−50
のようにすることで、指定する範囲の行を削除することができます。
その目的のためには行番号が必要なのです。

それならばなぜGOTOや、GOSUBの飛び先、コール先に行番号を使わないのか、という当然の疑問が出てくると思います。
実は上の説明とは矛盾するようですが、PIC−USBIO用BASICはプログラムの作成、実行には必ず行番号が必要ということではないのです。
たとえば上記プログラムの行番号を消して実行してみます。



REN OFF

RENはrenumberつまり行番号を付け直して整理するためのコマンドですがパラメータとしてOFFを記述すると上記例のようにプログラムから行番号を消去することができます。
それでも行番号付きのプログラムと全く同じように実行することができます。
このときGOTO文、GOSUB文で行番号を指定しているとプログラムが実行できなくなってしまいます。
GOTO文、GOSUB文で行番号を指定しないでラベルで指定するようにしているのはそのためです。
つまりPIC−USBIO用のBASICではプログラムを実行するのに行番号は必要ではないのです。
行番号が必要と言ったり必要ではないと言ったり、いったいどっちやねん、ということなのですが、上の説明をよく読んでいただければどういう場合に行番号が必要かということがおわかりいただけるかと思います。
今までのBASICではプログラムは通常BASICシステムを実行中の画面の中でプログラムの作成や修正を行なってきました。
行番号を自動的に生成する
AUTOコマンド
もそのための機能ですし、スクリーンエディタなどもそれを助ける機能です。
そもそもはインタプリタであるということもダイレクトに実行するモードがあるということもBASICが起動している画面でプログラムを作成するという前提に立った機能だと言えます。

しかし。
もうすでにお気付きの方もみえるかと思います。
WindowsではBASICが起動している画面ではなくてもプログラムを作成することができる機能が備わっています。
下はTeraPadの画面です。



一般的にはこのような環境でプログラムを作成することが多くなってきました。
このような環境ではもはや行番号は不要なだけではなく邪魔ですらあります。
これなら挿入も変更も削除も簡単にできます。
PIC−USBIO用のBASICでは行番号をつけないプログラムでも実行できるように考えたのはこの理由からです。

しかし。
問題もあります。
このようにして行番号なしのプログラムを作成してそれをPIC−USBIO用BASICにLOADして実行することはできますが、普通は作成したプログラムが一度で完璧なものになることは稀です。
大抵はデバッグをして何回かプログラム修正をすることになるのが普通です。
しかしBASIC上では行番号がないプログラムは実行することだけはできますがその一部を直したり追加をしたりすることはできません。
行番号のないプログラム行を修正して再入力するとその行はプログラムの部分ではなくてダイレクト命令として直ちに実行されてしまいます。
すると。
行番号がないプログラムを修正するためにはTeraPadなどのテキストエディタ上で変更したうえでそれを再ロードしてデバッグしなければなりません。
何回かの繰り返し作業が必要になる場合などを考えるとそれはそれで結構面倒です。
なによりインタプリタである長所が全く無駄になってしまいます。
そのような場合を考えてPIC−USBIO用BASICではREN OFFの逆の機能のコマンドを用意しています。
REN ON
です。



REN OFFとREN ONをうまく利用することで効率よくプログラムの作成やデバッグをすることができます。

PIC−USBIO using BASIC[第11回]
2022.6.13upload

前へ
次へ
ホームページトップへ戻る