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


PIC-USBIO using BASIC

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

[第31回]



●ON ERROR GOTO 行番号

前回までのところでGOTO文、GOSUB文、RESTORE文を行番号に対応するように機能を拡張しました。
今回はON ERROR GOTO文です。
GOTO文の仲間ですが使い方が特殊です。
ON ERROR GOTO文が書かれている行は通常は実行されません(ERRORが発生したときのためにGOTO文が指定している行を読み込んで記録しておくだけです)。
その意味ではREMARK文やDATA文に近いといえます。
もしもプログラムの実行中にエラーが発生するとON ERROR GOTO文がどこに書かれていても、そのON ERROR GOTO文が指定する行が実行されます。
ON ERROR GOTO文も現行ではエラーが発生したときに実行される行をラベルで指定するようになっています。
今回はそこのところを行番号で指定することができるように機能を拡張しました。
以下はそのように機能拡張したON ERROR GOTO文の動作テストです。

下のプログラムは[第25回]でテストに使ったサンプルプログラムです。

もとのプログラムでは最初の10行にON ERROR GOTO *err があります。
そして50行に *errラベル があります。
この50行がエラーが発生したときに実行される行です。
そこのところを ON ERROR GOTO 行番号 に対応するように書き換えます。

今までと同様にスクリーンエディタの機能を使うことで簡単にプログラムの変更ができます。
カーソルを10行に移動してそこで *err を 50 に書き換えて[Enter]を入力しました。
50行はこれもスクリーンエディタの機能を使ってカーソルを50行まで移動してそこで *errラベル を削除して[Enter]を入力しました。

そのように変更したあと/convを実行し中間言語型に変更しました。
そのあとrunコマンドを入力してプログラムを実行しました。

[第25回]と同じ結果になりました。
これで ON ERROR GOTO 行番号 が正しく実行されることが確認できました。

GOTO文、GOSUB文、RESTORE文ではダイレクトモードについてのテストも行ないました。
しかしON ERROR GOTO文は特殊なのでダイレクトモードでは実行できません。
ON ERROR GOTO文はプログラムの中にだけ書くことができます。

GOTO文、GOSUB文、RESTORE文と同じようにRENで行番号が正しく変更されるかどうかを確認してみました。
今までと同じようにプログラムの先頭に
5’
を追加したあと、RENコマンドを実行してからLISTコマンドを実行しました。

もとのプログラムでは
10 on error goto 50
だったところがREN実行後は
20 on error goto 60
に変更されました。

念のため/convを実行して中間言語型に翻訳したあとrunコマンドを実行しました。

プログラムが正しく実行されたことが確認できました。
RENを実行する前のプログラムではエラーが発生したときの行No.が3でしたが、1行を追加してRENを実行しましたからエラーが発生したときの行No.が4になりました。

PIC-USBIO using BASIC[第31回]
2022.8.3upload

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