マイコン独立大作戦
ROM/RAM/RTCボードの製作
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
WindowsパソコンにUSB接続して使う現行方式はそれなりに便利ではありますが、ときとしてWindows
のしがらみから開放されて、小さいながらも独立した一個のパソコンとして機能したいと思うこともあります。
独立大作戦の作戦その1はCRTインターフェースボードの製作です。
作戦その2はキーボードインターフェースです。
作戦その3は、SDカードインターフェースです。
作戦その4は、ROM/RAM/RTCボードです。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
[第17回]
●LOGディレクトリ
前回は現行のSDカードFORMATに機能を追加してLOGディレクトリの作成も行なうようにしました。
新しく追加したLOGディレクトリはシステム用にリザーブしてあるエリアを利用してクラスタ#4に置くことにしました。
下は今回テストで使用したSDカードのマップです。
このマップは[総合第29回]でお見せしたものにLOGディレクトリを追加したものです。
左側の小さい数値はSDカードの先頭のセクタを0としたときのセクタbナす。
FAT16システムではファイルをSAVEするとき、エリアの確保はクラスタという単位(1クラスタは64セクタ)で行ないますが、実際のSAVE、LOADはあくまでセクタ単位で行ないます。
クラスタやFAT、ルートディレクトリが何番目のセクタになるかは個々のSDカードによって若干の相違があります。
上のマップのセクタ番号は今回テストに使用したSDカードのものです。
セクタ番号とクラスタ等との関係については[総合第33回]を参照してください。
上のマップを見ますと、LOGディレクトリに割り当てたクラスタ#4はセクタbR03(数値は16進数です)になっています。
そこでセクタREADプログラム(SCTRD.BIN)でセクタbR03を読み出して、前回のテストで作成されたはずのファイル名が本当に正しく作成されているかどうかを確かめてみました。
セクタREADプログラムは[総合第32回]を参照してください。
logfile nd80zlog\08202231.txt open ND80ZVに接続しました 0001 0000 - z 1000 00C3 - *** nd80z3 basic **** ndwr2h.bin loaded,from E23F to E535 >dir Z . LOG . >/ld sctrd.bin,8000 loading SCTRD.BIN ...0017(23)bytes loaded,from 8000 to 8016 >cm 8003 8003 00- 8004 00-03 8005 00-03 8006 2A- >jp 8000 >dm 8200,83ff 8200 2E 20 20 20 20 20 20 20-20 20 20 10 00 00 00 00 . ..... 8210 00 00 00 00 00 00 00 00-00 00 04 00 00 00 00 00 ................ 8220 2E 2E 20 20 20 20 20 20-20 20 20 10 00 00 00 00 .. ..... 8230 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 8240 31 32 33 34 35 36 37 30-4C 4F 47 20 00 00 00 00 12345670LOG .... 8250 00 00 00 00 00 00 00 00-00 00 40 01 00 00 00 00 ..........@..... 8260 31 32 33 34 35 36 37 4A-4C 4F 47 20 00 00 00 00 1234567JLOG .... 8270 00 00 00 00 00 00 00 00-00 00 41 01 00 00 00 00 ..........A..... 8280 31 32 33 34 35 36 37 5A-4C 4F 47 20 00 00 00 00 1234567ZLOG .... 8290 00 00 00 00 00 00 00 00-00 00 42 01 00 00 00 00 ..........B..... 82A0 31 32 33 34 35 36 37 6A-4C 4F 47 20 00 00 00 00 1234567jLOG .... 82B0 00 00 00 00 00 00 00 00-00 00 43 01 00 00 00 00 ..........C..... 82C0 31 32 33 34 35 36 37 7A-4C 4F 47 20 00 00 00 00 1234567zLOG .... 82D0 00 00 00 00 00 00 00 00-00 00 44 01 00 00 00 00 ..........D..... 82E0 31 32 33 34 35 36 47 7A-4C 4F 47 20 00 00 00 00 123456GzLOG .... 82F0 00 00 00 00 00 00 00 00-00 00 45 01 00 00 00 00 ..........E..... 8300 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 8310 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 8320 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 8330 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 8340 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 8350 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 8360 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 8370 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 8380 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 8390 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 83A0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 83B0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 83C0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 83D0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 83E0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 83F0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ >/exit 0000 00C3 - リモート接続を終了しました logfile closed at Sun Aug 20 22:34:29 2017 |
ディレクトリは1ファイルにつき32バイトのエリアを割り当てます(拡張されたファイル名などではその整数倍のエリアを占有することもあります)。
先頭の11バイトはファイル名8バイト+拡張子3バイトです。
次の1バイトはそのファイルの属性です。
ルートディレクトリ以外のディレクトリではかならず先頭に”.”および”..”という2つのディレクトリ名が置かれます。
ディレクトリのファイル属性は10です。
通常のファイル属性は20です。
27、28バイト目にはそのファイルのデータが割り当てられたクラスタbェ置かれます。
”.”ディレクトリは自分自身(この場合にはLOGディレクトリ)を示します。
LOGディレクトリはクラスタ#4に割り当てましたから、27、28バイト目には04、00が入っています。
”..”は1階層上の親ディレクトリを示します。
親ディレクトリがルートディレクトリのときは27、28バイト目は00、00になります。
さきほどのマップで独立型ZB3DOSフォーマット後の未使用エリアはクラスタ#140からになっています。
テストで作成されたログファイルがクラスタ#140から順に割り当てられていて、ここまではプログラムが正しく機能していることが確かめられました。
ROM/RAM/RTCボードの製作[第17回]
2017.8.21upload
前へ
次へ
ホームページトップへ戻る