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


PICBASICコンパイラ

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

[第129回]



●コマンドの動作確認(1)AUTO、LIST、/RUN、[PageUp]、[PageDown]、[End]

PICBASICコンパイラボード(当面はPIC18F4550搭載)のプログラムを確認してみたところSDカードIFボードの制御プログラムについても部分的に作成していることがわかりました。
しかしそれはND80Z3.5でSDカードIFボード制御プログラムを作成するよりも前に作ったもので、その後にSDカードIFボード自体のプログラムもかなり変更しているため、PIC18F4550のSDカードIFボード制御プログラムはうまく動作しませんでした。
そのプログラムを含めて今までND80Z3.5で作成したSDカードIFボード制御プログラムをPIC18F4550用に書き直さなければなりません。
前回はその前準備として今までに作成したPICBASICコンパイラボードのコマンドについて整理してリストアップしました。
あらためて過去記事をざっと読み直してみたところ、今まではBASIC命令についての説明が中心でコマンドについてはほとんど説明していませんでした。
コマンドをリストアップしたことでもありますからこの機会に作成済みのコマンドについてあらためて動作を確認しながら簡単に説明をしていきたいと思います。
それが済んだらSDカードIFボード制御プログラムの移植作業にかかります。

1)AUTOコマンド

のっけから前回リストアップするのを忘れてしまったコマンドです。
PICBASICコンパイラではプログラムの行番号は必須ではありません。
しかし行番号があると行の追加削除などを簡単に行なうことができます。
昔と違っていまどきはテキストエディタを使ってプログラムを書くことが簡単にできますからその場合には行番号がなくても行の追加削除を行なうことができます。
もっともそうするためには編集のたびにテキストエディタに戻って編集作業をしたあとでそれをBASICコンパイラプログラムにロードするという手間がかかります。
その手間は別としても後からリストを読んでプログラムの流れを確認するときなどにも行番号があったほうがわかりやすいと思います。
地図に○丁目○番地があるとわかりやすいのと同じ理屈です。
しかしプログラムの各行を作成する都度行番号をつけるのも手間な作業です。
その手間を省くためのコマンドがAUTOコマンドです。
AUTOコマンドは行番号を自動的に生成します。
下はAUTOコマンドの実行画面です。

AUTO[Enter]と入力すると行番号の初期値(デフォルトでは10)が表示されたあとプログラム命令文を入力できる状態になります。
AUTOコマンドを入力しない場合には>のみ表示されますがそのときにはコマンドを入力するモードになっています。
同時にプログラム入力モードでもありますが、そのときにはコマンドとBASIC文を区別するために行番号をつける必要があります。
BASICインタプリタではBASIC文を行番号をつけないで入力するとダイレクトに実行されますが、PICBASICコンパイラにはBASIC文をダイレクトに実行する機能はありません。
AUTOコマンドはBASICプログラム文を入力作成する場合に必要になる行番号を自動的に生成する機能です。
AUTOコマンド入力後は行番号自動生成モード(AUTOモード)になります。
なお上で少し書きましたように行番号をつけないBASICプログラムはメモ帳などのテキストエディタを使って作成することができます。

AUTOコマンドの説明の続きです。
行番号が表示された後にBASIC命令文を書いて[Enter]を入力すると次の行番号が表示されます。


AUTOモードを終了するには次の行番号が表示されているときに[Ctrl][B]を入力します。

すると>のみが表示されてコマンドモードに戻ります。

2)LISTコマンド

BASICプログラム(BASICソースプログラム、テキストプログラム)を表示します。
下はLISTコマンドの実行画面です。
LIST[Enter]と入力するとBASICのテキストプログラムエリアにあるBASICソースプログラムがリスト表示されます。

さきほどAUTOモードで作成したプログラムが表示されました。

3)/RUNコマンド

BASICソースプログラムをコンパイルしてPICのマシン語プログラムに翻訳したあと、そのマシン語プログラムをターゲットボード(ここではPIC18F4550を搭載したPICBS02)に書き込んでからそのプログラムを実行します。
下は/RUNコマンドの実行画面です。

表示するデータが多くて/RUNコマンドを入力したところがスクロールアップして画面の上に隠れてしまいました。

4)[PageUp]

コマンドというよりは特殊入力キーというほうが適切ですが説明の流れでここで説明をします。
{PageUp]キーを入力するとスクロールされて画面から見えなくなってしまった行がスクロールダウンされて表示されます。

表示された画面全体が下方に戻されて表示されます。
上の画面ではさきほど「スクロールアップ」されて見えなくなった
30 next a
>/run
contmk=0,convmk=0,bswrmk=0
*convert*
が見えるようになり画面全体が下方に戻されて表示されました。
[PageUp]キーが入力されると画面表示が「Pageモード」になり、画面左下に「page mode」と表示されます。

「上方にUPされたページを下方に戻す」という意味から考えると「PageDown」が適切ではないかとも考えられるのですがコマンドプロンプト画面の表示では慣習で上記の操作には「PageUp」キーが使われます。
コマンドプロンプト画面の表示に対しては「スクロールUP」された画面を「スクロールDOWN」する働きになります。
実際の操作では「ページ」ではなくて「行」単位で機能します。
なお通常のコマンドプロンプト画面では[PageUp][PageDown]キーは働きません。
上記の機能はPICBASICコンパイラでの機能です。

5)[PageDown

[PageDown]はPageモードで入力可能になるキーです。
PageUpと逆の方向に働きます。
Pageモードで表示中の画面全体を「上方に」移動表示します。
「スクロールDOWN」されている画面を「スクロールUP」する働きになります。

7)[End]

[End]はPageモードで入力可能になるキーです。
Pageモードを終了してもとの表示画面に戻します。
下は上の表示画面(Pageモード)で[End]キーを入力したあとの画面です。

通常の表示画面に戻りました。
なお[PageUp][PageDown][End]などのキー入力そのものは画面には表示されません。

あらためて/RUNコマンドの実行画面について説明をします。
現在はデバッグ中なので/RUNを実行したあと、デバッグ用の表示が一杯表示されています。
毎回このように表示されるのはわずらわしいことですから製品版になったときにはこのような表示は省くつもりです。
/RUNコマンドの実行結果は画面下方の
program started
の下に表示されています。

/RUNコマンドを実行するとBASICのソースプログラムがコンパイルされてPICアセンブラソースプログラムが作成され、さらにそれがアセンブルされて最終的にPICのマシン語プログラムが生成されます。
その過程でPICアセンブラソースプログラムファイル(拡張子ASM)、アセンブルリストファイル(拡張子LIST)、マシン語オブジェクトファイル(拡張子OBJ)が作られます。

PICBASICコンパイラプログラム(PICBS6B.EXE)の置かれたフォルダを開くとそれらのファイルが作成されていることが確認できます。
この時点ではBASICソースプログラムはまだ名前をつけてセーブされていないので、生成された上記のファイルのファイル名は”noname”になっています。
上記のファイルがどういうものなのかについては[第11回][第54回]あたりでざっと説明をしています。

noname.asmをTeraPadで開きました。

「拡張子ASM」のファイルはPICBASICコンパイラが実行された結果BASICソースプログラムをもとにして生成されたアセンブラソースプログラムファイルです。

noname.listをTeraPadで開きました。

「拡張子LIST」のファイルはPICアセンブラが実行される過程で作成されるアセンブルリストファイルです。
各行の左端は作成されたマシン語プログラムが格納されるPIC4550のユーザーエリアアドレスです。
真ん中はそのアドレスに書き込まれるマシン語の命令コードです。
右側はアセンブラニーモニックです。

noname.objを別のコマンドプロンプトを立ち上げてDEBUGコマンドで開きました。

「拡張子OBJ」のファイルはPICアセンブラによってアセンブラソースプログラムを翻訳して作成されたPICマシン語プログラムファイルです。
マシン語コードだけからなるファイルですからその実体はBINファイルです。
BINファイルは普通のWindowsアプリケーションでは開けませんがDEBUGコマンドでは開くことができます。
画面左側の
*** p18asm ***
のところに表示されているマシン語プログラムと同じものがDEBUGコマンド画面で表示されています。

説明が長くなってしまいましたので、まだ途中ですが今回はここまでにします。

PICBASICコンパイラ[第129回]
2024.1.13 upload

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