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

マイコン独立大作戦
CRT/VGAIF+KEYIF+SDCARDIFボードの製作

〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
WindowsパソコンにUSB接続して使う現行方式はそれなりに便利ではありますが、ときとしてWindows
のしがらみから開放されて、小さいながらも独立した一個のパソコンとして機能したいと思うこともあります。
昔はそれが普通のことだったのですが、安価なCRTディスプレイが生産中止となって久しい今日ではそれ
は叶わぬことと諦めていたのですが…。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜

[総合第34回]


●DIR

また2日ほど間が空いてしまいました。
[第32回]に書きましたSTARTREKをロードしたときに表示されたDirect statement in fileというメッセージについて、大体の理由はわかったつもりなのですが、それの裏づけが簡単に取れて、その対策もなんとかできそうと思ったのが見込み違いもいいところで、お蔭で貴重な2日間を空費してしまいました。
いえ、まあ、全くの無駄ということはありません。
それなりの収穫はあったのですが、とにかくここへ来て貴重な時間を費やしてしまったことがいささか残念です。
まだその余波が続いておりまして、本日も残りわずかという時間になってから、こうして走り書き(走り打ちか?)をしております。

前回の続きを少しだけ続けます。
前回はFATセクタを読み出しました。
このSDカードの場合前回書きましたようにFATのサイズはF0(240)セクタです。
FAT#2が終った後ろにはDIRセクタがあります。
FAT#2の先頭セクタはbPF7でしたから1F7+F0=2E7がDIRの先頭セクタbノなります。
セクタリードプログラムに02E7を置数して実行しました。
そのあと前回と同様DMコマンドで読み出した内容を表示させました。

>cm 8003
8003 00-
8004 01-02
8005 F8-e7
8006 2A-
>jp 8000
>dm 8200,83ff
8200  5A 20 20 20 20 20 20 20-20 20 20 10 00 00 00 00  Z          .....
8210  00 00 00 00 00 00 00 00-00 00 02 00 00 00 00 00  ................
8220  53 5A 43 43 50 31 41 20-42 49 4E 20 00 00 00 00  SZCCP1A BIN ....
8230  00 00 00 00 00 00 00 00-00 00 40 01 D0 07 00 00  ..........@.ミ...
8240  53 5A 42 44 4F 53 31 49-42 49 4E 20 00 00 00 00  SZBDOS1IBIN ....
8250  00 00 00 00 00 00 00 00-00 00 41 01 72 0D 00 00  ..........A.r...
8260  53 5A 49 4E 49 54 31 43-42 49 4E 20 00 00 00 00  SZINIT1CBIN ....
8270  00 00 00 00 00 00 00 00-00 00 42 01 95 00 00 00  ..........B.....
8280  53 5A 42 44 53 31 50 20-42 49 4E 20 00 00 00 00  SZBDS1P BIN ....
8290  00 00 00 00 00 00 00 00-00 00 43 00 64 19 00 00  ..........C.d...
82A0  52 41 4D 52 4F 4D 43 47-42 49 4E 20 00 00 00 00  RAMROMCGBIN ....
82B0  00 00 00 00 00 00 00 00-00 00 46 01 0E 00 00 00  ..........F.....
82C0  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
82D0  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
82E0  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
82F0  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
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  ................

DIRセクタについては「SDカードインターフェースの製作」[第15回]で書きました。
ファイルごとに32バイトが割り当てられます。
それが基本単位です。
ファイルによっては32バイトの単位を複数個使うものもあります。
そのルールはちょっと複雑ですので、ここでは説明を省きます。
標準的なファイルの場合、32バイトの先頭から11バイトがファイル名(8バイト+拡張子3バイト)のエリアです。
その後ろの1バイトはそのファイルの属性を示します。
通常のファイルは20です。
その下の行にある2バイトがそのファイルのデータが格納されているクラスタbナす。
SZCCP1A.BINの場合40 01ですからクラスタbO140にデータが格納されています。
その後ろの2バイトがデータのサイズです。
D0 07ですから、データのサイズは07D0Hバイトです。

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

CRT/VGAIF+KEYIF+SDCARDIFボードの製作[総合第34回]
2017.3.26upload

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