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


PICBASICコンパイラ

〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
まるでインタプリタ。でもコンパイラです。超カンタン超シンプルです。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜

[第143回]



●PICBASICコンパイラの文法(4)変数(4)R変数(2)

前回はR変数の機能拡張について書きました。
当然プログラムをそのように変更しなければならないのですが、およそ半年の間PICBSから離れていたものですからすっかり忘れてしまいました。
まずは記憶を取り戻すところから始めなければなりません。
とにかくは現行のR変数を使ってみるところから始めてみます。
その動作が確認できてからプログラムの変更作業にかかります。
PICBASICコンパイラを実際に操作しているところについて書いたのは[第136回]が最後です。
そこでは/PMRDコマンドについて書いています。
/PMRDの機能を説明するためにBASICのサンプルプログラムをロードして実行しています。
そのとき使ったサンプルプログラムはBSTEST03.TXTです。
今回R変数を確認するためにそのプログラムを少しだけ変更して使うことにしました。
変更して作成したプログラムはBSTEST04.TXTです。
BSTEST04.TXTをLOADしました。


LOADしたBSTEST04.TXTをリスト表示しました。

BSTEST03.TXTの最後に60行を追加しています。
PICBASICコンパイラでは変数はプログラムの先頭から出現する順にPICのメモリエリアに割り付けていきます。
これからそのメモリエリアも割り当てを変更していきますが現行ではACCESSBANKのユーザーレジスタエリア(アドレス000〜05F)を使っています。
PICプログラムのシステムでも使いますから現行ではそのエリアの030から変数を割り付けていきます。
BSTEST03.TXTでは変数abcとxyzを使っています。
abcはアドレス030にxyzは031に割り付けられます。
そこで今回作成したBSTEST04.TXTではアドレス030と031をダイレクトに指定するR変数としてR30、R31を使ってみます。
60行でR30とR31の値を確認します。
R30にはその前に実行したabcの値が入り、R31にはxyzの値が入るはずです。
プログラムを実行しました。

R30にはabcの値55が入り、R31にはxyzの値58が入りました。
それはよいのですが、表示に問題があることがわかりました。
abc=55と表示されるべきところがa=55になっています。
実は前回書きましたがPICの作業エリアは当初は000〜02Fまででしたが現在は〜03Fまで使っています。
Windows側のプログラムは今のところ未修正なのでBASICの変数とシステムが競合していることになります。
その影響かもしれません。
R変数の機能を拡張するなかで上記についても確認をしてみることにします。

PICBASICコンパイラ[第143回]
2024.8.23 upload

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