2018.4.13
前へ

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

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

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

[総合第160回]



●SDカードの情報

前回までの記事を書いている途中で、ふと思いつきました。
[第157回]では、SCTRD.BINを使ってセクタbOを読み出すことから始めて、FATエリアのセクタb窿fィレクトリエリアのセクタbネどを確定する作業について説明をしました。
それはSDカードのFAT16システムについて理解するために有意義な方法ですが、FATやディレクトリエリアのセクタb知るためには、もっと簡単な方法があったことに気が付いたのでした。
SCTRD.BINやSCTWR.BINを実行する前に、SDカードの初期セットをするために1回はDIRコマンドを実行する必要があります。
DIRコマンドを実行することによって、ディレクトリエリアがサーチされ、セーブ済みのファイル名が表示されます。
ということはDIRコマンドを実行したときに、プログラムによってディレクトリエリアの先頭セクタbヘ取得されているはずです。
考えてみれば至極当然のことでした。
そこでDIRコマンドを含むSDカードアクセスプログラムを確認してみたところ、その通りであることが確認できました。

[第157回]でSCTRD.BINを実行して読み出したデータをもとに算出した、そのSDカードのFAT1の先頭セクタbヘ008Fでした。
またFAT1、FAT2のセクタ数はそれぞれEAでした。
その数値から算出したディレクトリエリアの先頭セクタbヘ0263でした。
そしてユーザーズエリアの先頭セクタbヘ0283でした。

これらのデータがシステムのワークエリアに格納されることを確認するために、DIRコマンドを実行して確かめてみました。

2logfile nd80zlog\04112236.txt open

ND80ZVに接続しました
0001 0000 - z
1000 00C3 - 
*** nd80z3 basic ****
ndwr2h.bin loaded,from E23F to E535
>dir
Z       .       LOG     .       SZBDOS2G.BIN    SZBDS2C .BIN    SZCCP1F .BIN    
SZCOPY1A.BIN    SZINIT1D.BIN    SQRTEST .TXT    TEST1   .TXT    COLORT5 .TXT    
COLORT6 .TXT    SMBDOS2F.BIN    SMBDS2G .BIN    SMCCP1C .BIN    SMCOPY1A.BIN    
SMINIT1B.BIN    SQRTEST3.TXT    TEST2   .TXT    CGTEST2 .TXT    CGTEST3 .TXT    
CGTEST4 .TXT    TABTEST .TXT    TABTEST2.TXT    CGTEST5 .TXT    COLORT7 .TXT    
CGTEST6 .TXT    
>cm e9fc
E9FC 8F-
E9FD 00-
>cm e9f8
E9F8 63-
E9F9 02-
>cm e9f4
E9F4 83-
E9F5 02-
>cm e9d8
E9D8 EA-
E9D9 00-
>

DIRコマンドを実行すると、
E9FC、E9FDにFAT1の先頭セクタbェ格納されます。
またE9F8、E9F9にはディレクトリエリアの先頭セクタアドレスが格納され、
E9F4、E9F5にはユーザーズエリアの先頭セクタbェ格納されます。
そしてE9D8、E9D9にはFATエリアのセクタ数が格納されます。

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

前へ

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