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


PICBASICコンパイラ

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

[第107回]



●SDカードIF(27)ND80Z3.5に接続(20)ファイルに更新日付時刻を記入

[第95回]でリアルタイムクロック機能を追加しました。
その時点ではそこに書いた程度のことしか考えていませんでした。
しかししばらくたってから、せっかくリアルタイムクロックの機能を追加したのだからSコマンドでファイルを作成したときに作成した日付時刻も書き込むようにするとよいではないか、と考えるようになりました。
思いついたが吉日です。
そこでさっそくそのSコマンドに機能を追加してファイルを作成したときの作成日付と時刻をファイル名やファイルサイズとともに記録するようにしました。
Sコマンドはファイルのセーブコマンドです。
ファイルのセーブ(作成)については[第90回]で説明をしています。

そのように機能を追加したのはもう4週間ほども前のことだったのですが、その後[第99回]からSDカードIFアクセス時の異常について書くことになってしまい、さらにそれに追い討ちをかけるように「Windows7が起動しない事件」が発生してしまいましたので今日までファイルの作成日付と時刻の機能追加について書くことができませんでした。
4週間も経ってしまいますともうすっかり忘れてしまいます。
本当に困ったものです。
ノートを見ながら思い出しつつ書いています。

今回のテストのためにファイルにセーブする簡単なデータを作成します。
下は即席で作ったテストデータ作成プログラム(Z80アセンブラプログラム)とそれを実行してその結果を確認している画面です。

時々紹介しております「Z80アセンブラ」はもう随分昔に私が自作した中日電工オリジナルのアセンブラです。
ND80Z3.5組立キットの附属CDROMに入っています。
今回作成したプログラムはご覧の通り超簡単なものです。
ND80Z3.5のRAMアドレス$9000〜$90FFにテストデータとして$00〜$FFを書き込みます。
プログラム名はmktdatae.txtとしてセーブしたあとZ80アセンブラでアセンブルしました(その作業はZB3BASICを立ち上げる前にやっていますので上の画面には表示されていません)。
アセンブルした結果バイナリファイルmktdatae.binが作成されました。
上の画面ではそのバイナリファイルを$B000にロードしたあとJP B000で実行しています。
そのあとDMコマンドでプログラムを実行した結果を表示しています。
こういうことが簡単にできてしまうところがND80Z3.5の便利なところです。
上の画面ではそこまで準備が整いましたのでテスト用のデータファイルをセーブするためにJP A000でSDカードIFボード上のPIC18F2550との交信を開始しました。
PIC18F2550との交信プログラムは今までのテスト作業ですでにロード済みですからJP A000ですぐに実行することができます。

Sコマンドを実行して新しいデータファイルtest29.binファイルをSDカードにセーブしました。

ここでデータとしてセーブしたのは先ほど作成したテストデータの全部ではなくてその一部$9020〜$907Fです。
その理由については後日説明します。
Sコマンドを実行したあとMコマンドを実行しています。
Mコマンドは[第88回]で説明しました。
PIC18F2550のレジスタバンク(メモリバンク)のうちの256バイトを読み込んでそれを表示するコマンドです。
レジスタバンク6を表示するために[M 6]コマンドを実行しました。
Sコマンドを実行するときにSDカードのDIRエリアを参照し、そこに新たなファイル情報を追記するためにDIRエリアをPIC18F2550のレジスタバンク5と6に読み込みます。
今回はファイル名データに日時データがちゃんと書き込まれているかどうかを確認するためにMコマンドでDIRエリアを確認しました。
DIRエリアの最後のところにTEST29.BINが追加されています。
この画面を見ると日時データも記録されていることがわかるのですがそれについては説明が必要です。
その説明については後日詳しく説明するつもりです。

念のためにDコマンドを実行してDIR内容を表示しました。

DIRの最後のところにTEST29.BINが表示されています。
次にこれも念のためLコマンドで今セーブしたTEST29.BINをアドレス$8000にロードしました。

Eコマンドで交信プログラムを終了したあとDMコマンドでND80Z3.5のRAMの$8000〜のメモリ内容を確認しました。

セーブしたのはアドレス$9020〜$907Fのデータです。
それが$8000〜$805Fに正しくロードされていることが確認できました。

以上でテストデータファイルを作成してSDカードにセーブするところまで説明しました。
まだ肝心の日時データについては説明していません。
説明が長くなってしまいますので、それについては次回に書くことにします。

PICBASICコンパイラ[第107回]
2023.12.9upload

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