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


PIC−USBIO using BASIC

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

[第30回]



●RESTORE 行番号

前回までのところでGOTO文に続いてGOSUB文も行番号に対応するようにしました。
プログラムの行をラベルで指定している命令はGOTO文、GOSUB文のほかにもありました。
DATA文、READ文とあわせて使われるRESTORE文も現行ではDATA文の行をラベルで指定していますが、GOTO文、GOSUB文が行番号対応になったのですから、RESTORE文も行番号対応にしないわけにはいきませんでしょう。
ということでRESTORE文についてもラベル指定のほかに行番号も指定できるように機能を拡張しました。
以下はそのように機能拡張したRESTORE文の動作テストです。

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

もとのプログラムでは20行に *abcラベル があります。
そして70行の RESTORE *abc でREAD文のカウンタを20行のDATA文にセットしています。
そこのところを RESTORE 行番号 に対応するように書き換えます。

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

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

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

GOTO文、GOSUB文のテストではダイレクトモードについてのテストも行ないました。
RESTORE文をダイレクトモードで実行することはまずないと思いますができないわけではありません。
GOTO文とあわせてダイレクトモードで実行してみることにしました。
もとのプログラムのままではちょっとテストがしにくいところがありますからプログラムを一部変更してからテストをします。
70行の RESTORE 20 を RESTORE 30 に書き換えてから/conv、runを実行しました。

そのように変更したので変数i、j、kの値が30行のDATA文の4、5、6になってそこでプログラムが終了しました。
READ文のカウンタはそこで終っています。

そこまで実行したあとダイレクトモードで
RESTORE 20:GOTO 80
を実行しました。

RESTORE 20 を実行したのでREAD文のカウンタが20行のDATA文にセットされました。
そのあと80行以下が実行され、変数i、j、kの値が20行のDATA文の1、2、3になりました。

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

もとのプログラムでは
70 RESTORE 30
だったところがREN実行後は
80 RESTORE 40
に変更されました。

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

プログラムが正しく実行されたことが確認できました。

PIC−USBIO using BASIC[第30回]
2022.7.31upload

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