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


PICBASICコンパイラ

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

[第128回]



●コマンドをリストアップ(2)

前回はND80Z3.5で作成したSDカードIFボード用プログラムのコマンドをリストアップしました。
今回はPICBASICコンパイラのコマンドについてリストアップします。
今までPICBASICコンパイラのBASIC命令については使用例とともに説明してきましたがコマンドについてはほとんど説明してきませんでした。
そのうちのいくつかはBASICプログラムの説明をするときに通常必要な機能として使ってきました。
LISTとかREN、DELETEなどです。
この種のコマンドは多くのBASICでも普通に使われているものでターゲットボード(当面はPIC18F4550BASICコンパイラボードPICBS02)にコマンドコードを送らずWindowsのコマンドプロンプト上で実行するBASICコンパイラシステムプログラムの中で処理されるものです。
以下のコマンドがあります。
コマンドコードはありません。

NEW   テキストプログラムエリアをクリアする
HELP  クリアしたテキストプログラムを元に戻す
DELETE  指定した行番号の行を削除する
LIST  テキストプログラムエリアにあるテキストプログラム(BASICソースプログラム)をリスト表示する
REN  テキストプログラムの行番号をつけ直す(行番号なしのプログラムに対しては行番号付きのプログラムにする)
LNOF  テキストプログラムの行番号を除去する(行番号なしのプログラムにする)
/LOAD  BASICテキストプログラム(BASICソースプログラム)をテキストプログラムエリアにロードする
/SAVE  テキストプログラムエリアにあるBASICソースプログラムにファイル名をつけてセーブする
/EXIT  BASICコンパイラを終了してコマンドプロンプトシステムに戻る

以下のコマンドもBASICコンパイラシステムプログラムの中だけで実行されるプログラムです。
上記のコマンドとは違い一般的なBASICコマンドではなくてこのシステムプログラムのためのデバッグ用のプログラムです。
コマンドコードはありません。

/DUMP
/LINEBF
/DEBUG
/CONV
/CONVDP

以下のコマンドはSDカードIFボード製作以前に作成したコマンドで、PICBASICコンパイラボード(PIC18F4550搭載)にコマンドコードを送出します。
SDカードIFボードの制御のためのコマンドコードと同じコードが使われている可能性について今回確認することにしたコマンドです。

コード  コマンド      機能
30    /WR       register write
31    /RD       register read
32    /PMRD    program memory read
33    /PMWR    program memory write
34    /DMRD    data memory read
35    /RUN     run
38    /TEST     test 232c line
39    [Ctrl][B]    break
3A    /CONT    continue
以上のコマンドについてはコードが同じものはありませんでした。

前回の終わりに書きましたが、過去記事を再読したところ[第87回]でPIC18F4550にSDカードIFボードを接続して制御するプログラムを作成してそのテストを行なったと書いていることがわかりました。
そこでその時に作成したプログラムを確認したところ以下のコマンドを作成していることがわかりました。

コード  コマンド      機能
36    /SDRES  SDカードIFボードRESET →コード新規作成 19
37    /SDINIT  sdcard init →I(コード13)
3B    /SCTRD  read sector data to memory bank →RS1、RS3、RS5(コード01、02、03)
3C    /MBKRD   read memory bank →M(コード11)
3D    /REGRD  read register(/RDと同じ)
3E    /DIR     dir →D(コード12)
3F    /L       load file →L(コード14)

これらのコマンドはSDカードIFボード用にND80Z3.5で作成した制御プログラムにある機能と同じですが、コードが異なっているので「機能」のところで→の後ろに書いたコードに変更します。
機能としては同じなのですがPIC18F4550のプログラムを作成したのはND80Z3.5でのプログラム作成よりも前で、その後にND80Z3.5でのプログラムを作成していく過程でSDカードIFボードのプログラムもかなり変更しています。
ですからPIC18F4550のプログラムもそれに合わせて直す必要があります(実際試しに少しテストしてみたのですがまともに機能しませんでした)。
これはちょっと手間がかかりそうです。

PICBASICコンパイラ[第128回]
2024.1.10 upload

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