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


PICBASICコンパイラ

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

[第96回]



●SDカードIF(16)ND80Z3.5に接続(9)詰めの作業に入っています

相変わらず厳しい作業が続いています。
ほんとバグ取りは疲れます。
うまくいったと思って念のためテストをしてみると、ありゃまた違うところでエラーが…という毎日です。
まあ、あれです。
呆けている暇がないという意味ではありがたいことなのかもしれませんが。
というわけで間が空いての更新になってしまいます。
毎々書いておりますが気長なお付き合いをお願いいたします。

今やっております作業は新しく作ったSDカードIFボードをPICBASICコンパイラボードに接続するための前段階の作業です。
当初はSDカードIFボードはマイコン独立化セットのために製作しました。
そこでもSDカードとのインターフェースにはPICを使っていますが、そのPICの役割はND80Z3.5などのCPUボードの外部I/Oとして単にパラレル信号をシリアル信号に変えてSDカードと交信しているというものです。
実際にSDカードをリードライトする主プログラムはND80Z3.5などのCPUボードのROMに書かれています。
このところの作業はそのROMに書かれているSDカードリードライトプログラム(Z80および8080のマシン誤プログラム)を新SDカードIFボードに搭載するPIC18F2550に移植する作業です。
最終的な目的はSDカードのリードライトに必要な機能をコマンドに応答する形にまとめたうえで、それを新SDカードIFボードをPICBASICコンパイラボードに接続したときにBASICの命令またはコマンドとして使えるようにすることです。
その前の段階としてND80Z3.5に接続してその移植作業をしているのはND80Z3.5のマシン語モニタが移植作業のデバッグツールとしてこの上なく便利で役立つからです。
最終段階では当然のことながら新SDカードIFボードをPICBASICコンパイラボードに接続して動作するようなプログラムをPICBASICコンパイラプログラムに組み込まなければなりません。
そのときに楽に組み込むことができるように今こうしてND80Z3.5と接続した状態で出来る限りのデバッグを済ませてPIC18F2550に移植するプログラムを完成させておきたいと思って苦闘を続けております。
その苦闘もぼちぼち終りそうなところまできたように思います。
そこでここ数日は最後の詰めの作業に取りかかっています。

今まではとにかくSDカードのリードライトに必要なプログラムをPIC18F2550用に作成してそのデバッグをするというのが第一の目的でしたので、PIC18F2550に組み込んだ機能を使うためのコマンドも本来はコードの形にすべきところなのですがそういうことは全部後回しにしてきました。
ここ数日の詰めの作業はいままでコマンドの一部の文字(アルファベット)をそのままコマンドとして使っていたところを16進数コードに置き換えるという作業を中心に行ないました。
言うのは簡単なのですが実際にはかなりの作業量です。
とにかく現在はND80Z3.5の側のプログラム(Z80アセンブラプログラム)とPIC18F2550のプログラム(PIC18Fアセンブラプログラム)の二本立てで作業してきましたのでその両方を直さなければなりません。
両方のプログラムがきちんと整合するようにしないとうまく動作してくれません。
なかなかに面倒な作業です。
今はまだ作業中ですがかなりいいところまでできてきたと思います。
今回はどこがどのようになったかというところをお見せします。

下は[第92回]でお見せした画面です。

デバッグプログラムにエントリしてIコマンドでSDカードをイニシャライズしたあとDコマンドでディレクトリを表示してからLコマンドでファイルロードをしています。
それと同じことをこのところの作業を行なったプログラムで実行したのが下の画面です。

コマンドを入力した後PIC18F2550が正しくそれを受信したことを確認するためPIC18F2550からのエコーを受信して表示しています。
以前のプログラムではコマンドによってエコーのないものもあって不統一だったところを全てのコマンドでそのようにしました。
以前のプログラムではIコマンドのエコーは49、Dコマンドのエコーは44でともにコマンドのASCIIコードがエコーとして返っています。
Lコマンドではエコーはありません。
ファイル名が2度エコーとして返っています。
新しいプログラムではファイル名のエコーは省きました。
コマンドのエコーはASCIIコードではなくて各コマンドを示す1バイトのコードになっています。
Iは13、Dは12、Lは14(ともに16進数)です。

説明の途中ですが時間がなくなってしまいました。
この続きは次回にいたします。

PICBASICコンパイラ[第96回]
2023.11.2upload

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