マイコン独立大作戦
CRT/VGAIF+KEYIF+SDCARDIFボードの製作
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
WindowsパソコンにUSB接続して使う現行方式はそれなりに便利ではありますが、ときとしてWindows
のしがらみから開放されて、小さいながらも独立した一個のパソコンとして機能したいと思うこともあります。
昔はそれが普通のことだったのですが、安価なCRTディスプレイが生産中止となって久しい今日ではそれ
は叶わぬことと諦めていたのですが…。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
[総合第157回]
●LOGディレクトリの修復(2)
前回の続きです。
まずは前回紹介しましたSCTRD.BINを使ってLOGディレクトリセクタの場所を確認します。
logfile nd80zlog\04061045.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 >/ld sctrd.bin,8000 loading SCTRD.BIN ...0017(23)bytes loaded,from 8000 to 8016 >jp 8000 >dm 8200,83ff 8200 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 8210 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 8220 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 8230 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 8240 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 8250 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 8260 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 8270 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 8280 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 8290 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 82A0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 82B0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 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 20 15 11 25 6B 00 00 00-00 00 00 00 00 00 00 02 ..%k........... 83C0 0E 00 06 14 D4 B4 8B 00-00 00 75 57 3A 00 00 00 ....ヤエ....uW:... 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 55 AA ..............Uェ |
SCTRD.BIN、SCTWR.BINを使う前に1回はDIRコマンドを実行する必要があります。
SCTRD.BINはアドレス8000にロードします。
いきなりJP 8000 を実行しています。
前回のSCTRD.BINのリストを見てください。
アドレス8003〜8005にセクタb指定しますが、ロード直後は000000なのでセクタbOを読み込むことになります。
1セクタ512バイトは8200〜83FFに読み込まれます。
セクタbOにはこのSDカードの基本情報が書かれています(MBR)。
ここから後の情報については[総合第33回]以後に説明していますので詳しくは繰り返し書きません。
必要に応じて参照してください。
ここで必要なのはアドレス83C6〜83C7の4バイトです。
ここにはパーティションの開始セクタbェ書かれています。
このbヘSDカードによって異なっています。
下位の数値から先に書かれていますから、普通の順番に戻して読むと0000008Bです。
そこで次はセクタbWBを読んでみます。
>cm 8000 8000 C3- 8001 06- 8002 80- 8003 00- 8004 00- 8005 00-8b 8006 2A- >jp 8000 >dm 8200,83ff 8200 EB 3C 90 4D 53 44 4F 53-35 2E 30 00 02 40 04 00 .<.MSDOS5.0..@.. 8210 02 00 02 00 00 F8 EA 00-3F 00 FF 00 8B 00 00 00 ........?....... 8220 75 57 3A 00 80 00 29 04-9A 08 F6 4E 4F 20 4E 41 uW:...)....NO NA 8230 4D 45 20 20 20 20 46 41-54 31 36 20 20 20 33 C9 ME FAT16 3ノ 8240 8E D1 BC F0 7B 8E D9 B8-00 20 8E C0 FC BD 00 7C .ムシ.{.ルク. .タ.ス.| 8250 38 4E 24 7D 24 8B C1 99-E8 3C 01 72 1C 83 EB 3A 8N$}$.チ..<.r...: 8260 66 A1 1C 7C 26 66 3B 07-26 8A 57 FC 75 06 80 CA f。.|&f;.&.W.u..ハ 8270 02 88 56 02 80 C3 10 73-EB 33 C9 8A 46 10 98 F7 ..V..テ.s.3ノ.F... 8280 66 16 03 46 1C 13 56 1E-03 46 0E 13 D1 8B 76 11 f..F..V..F..ム.v. 8290 60 89 46 FC 89 56 FE B8-20 00 F7 E6 8B 5E 0B 03 `.F..V.ク ....^.. 82A0 C3 48 F7 F3 01 46 FC 11-4E FE 61 BF 00 00 E8 E6 テH...F..N.aソ.... 82B0 00 72 39 26 38 2D 74 17-60 B1 0B BE A1 7D F3 A6 .r9&8-t.`ア.セ。}.ヲ 82C0 61 74 32 4E 74 09 83 C7-20 3B FB 72 E6 EB DC A0 at2Nt..ヌ ;.r..ワ 82D0 FB 7D B4 7D 8B F0 AC 98-40 74 0C 48 74 13 B4 0E .}エ}..ャ.@t.Ht.エ. 82E0 BB 07 00 CD 10 EB EF A0-FD 7D EB E6 A0 FC 7D EB サ..ヘ....}...}. 82F0 E1 CD 16 CD 19 26 8B 55-1A 52 B0 01 BB 00 00 E8 .ヘ.ヘ.&.U.Rー.サ... 8300 3B 00 72 E8 5B 8A 56 24-BE 0B 7C 8B FC C7 46 F0 ;.r.[.V$セ.|..ヌF. 8310 3D 7D C7 46 F4 29 7D 8C-D9 89 4E F2 89 4E F6 C6 =}ヌF.)}.ル.N..N.ニ 8320 06 96 7D CB EA 03 00 00-20 0F B6 C8 66 8B 46 F8 ..}ヒ.... .カネf.F. 8330 66 03 46 1C 66 8B D0 66-C1 EA 10 EB 5E 0F B6 C8 f.F.f.ミfチ...^.カネ 8340 4A 4A 8A 46 0D 32 E4 F7-E2 03 46 FC 13 56 FE EB JJ.F.2....F..V.. 8350 4A 52 50 06 53 6A 01 6A-10 91 8B 46 18 96 92 33 JRP.Sj.j...F...3 8360 D2 F7 F6 91 F7 F6 42 87-CA F7 76 1A 8A F2 8A E8 メ.....B.ハ.v..... 8370 C0 CC 02 0A CC B8 01 02-80 7E 02 0E 75 04 B4 42 タフ..フク...~..u.エB 8380 8B F4 8A 56 24 CD 13 61-61 72 0B 40 75 01 42 03 ...V$ヘ.aar.@u.B. 8390 5E 0B 49 75 06 F8 C3 41-BB 00 00 60 66 6A 00 EB ^.Iu..テAサ..`fj.. 83A0 B0 42 4F 4F 54 4D 47 52-20 20 20 20 0D 0A 52 65 ーBOOTMGR ..Re 83B0 6D 6F 76 65 20 64 69 73-6B 73 20 6F 72 20 6F 74 move disks or ot 83C0 68 65 72 20 6D 65 64 69-61 2E FF 0D 0A 44 69 73 her media....Dis 83D0 6B 20 65 72 72 6F 72 FF-0D 0A 50 72 65 73 73 20 k error...Press 83E0 61 6E 79 20 6B 65 79 20-74 6F 20 72 65 73 74 61 any key to resta 83F0 72 74 0D 0A 00 00 00 00-00 00 00 AC CB D8 55 AA rt.........ャヒリUェ |
8003〜8005に00 00 8Bを書いたあと、JP 8000を実行します。
パーティションの最初のセクタには、そのパーティションの基本情報が書かれています(BPB)。
ここで必要なのは820E、820Fの2バイトと8216、8217の2バイトです。
前者は0004です。
このBPBを含む予約セクタの数です。
4セクタ後ろに第1のFATがあります。
8B+4=8FですからセクタbWFがFAT#1の開始セクタです。
後者は00EAです。
FATのサイズ(セクタ数)を示しています。
FATは通常2つありますから合計するとEA×2=1D4です。
FATの先頭から1D4セクタ後ろにディレクトリエリアがあります。
ディレクトリエリアの先頭セクタbヘ8F+1D4=263です。
まずはFATセクタを読んでみます。
>cm 8003 8003 00- 8004 00- 8005 8B-8f 8006 2A- >jp 8000 >dm 8200,83ff 8200 FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF ................ 8210 FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF ................ 8220 FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF ................ 8230 FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF ................ 8240 FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF ................ 8250 FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF ................ 8260 FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF ................ 8270 FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF ................ 8280 FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF ................ 8290 FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF ................ 82A0 FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF ................ 82B0 FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF ................ 82C0 FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF ................ 82D0 FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF ................ 82E0 FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF ................ 82F0 FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF ................ 8300 FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF ................ 8310 FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF ................ 8320 FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF ................ 8330 FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF ................ 8340 FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF ................ 8350 FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF ................ 8360 FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF ................ 8370 FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF ................ 8380 FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF ................ 8390 FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF ................ 83A0 FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF ................ 83B0 FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF ................ 83C0 FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF ................ 83D0 FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF ................ 83E0 FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF ................ 83F0 FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF ................ >cm 8005 8005 8F-90 8006 2A- >jp 8000 >dm 8200,83ff 8200 FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF ................ 8210 FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF ................ 8220 FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF ................ 8230 FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF ................ 8240 FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF ................ 8250 FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF ................ 8260 FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF ................ 8270 FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF ................ 8280 FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF ................ 8290 FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF ................ 82A0 FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF ................ 82B0 FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF ................ 82C0 FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF ................ 82D0 FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF ................ 82E0 FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF ................ 82F0 FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF ................ 8300 FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF ................ 8310 FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF ................ 8320 FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF ................ 8330 FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF ................ 8340 FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF ................ 8350 FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF ................ 8360 FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF ................ 8370 FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF ................ 8380 FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF ................ 8390 FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF ................ 83A0 FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF ................ 83B0 FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF ................ 83C0 FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF ................ 83D0 FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF ................ 83E0 FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF ................ 83F0 FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF ................ >cm 8005 8005 90-91 8006 2A- >jp 8000 >dm 8200,83ff 8200 FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF ................ 8210 FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF ................ 8220 FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF ................ 8230 FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF ................ 8240 FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF ................ 8250 FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF ................ 8260 FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF ................ 8270 FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF ................ 8280 FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF ................ 8290 FF FF FF FF FF FF 00 00-00 00 00 00 00 00 00 00 ................ 82A0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 82B0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 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 ................ |
3番目のセクタの途中まで使用されています。
FAT16はその名の通り16bitのbナクラスタを管理します。
1クラスタは64セクタで、ファイルのセーブ、ロードはクラスタ単位で行なわれます。
1セクタに満たないファイル、たとえば数バイトのファイルをセーブしても1クラスタ(64セクタ)が消費されます。
使用済みのクラスタはFAT上のマップにFFFFが書き込まれます。
それでは今度はディレクトリセクタを読んでみます。
ディレクトリの先頭セクタbヘ先ほどの計算から263です。
>cm 8003 8003 00- 8004 00-02 8005 91-63 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 4C 4F 47 20 20 20 20 20-20 20 20 10 00 00 00 00 LOG ..... 8230 00 00 00 00 00 00 00 00-00 00 04 00 00 00 00 00 ................ 8240 53 5A 42 44 4F 53 32 47-42 49 4E 20 00 00 00 00 SZBDOS2GBIN .... 8250 00 00 00 00 00 00 00 00-00 00 40 01 A3 0D 00 00 ..........@.」... 8260 53 5A 42 44 53 32 43 20-42 49 4E 20 00 00 00 00 SZBDS2C BIN .... 8270 00 00 00 00 00 00 00 00-00 00 41 01 D6 19 00 00 ..........A.ヨ... 8280 53 5A 43 43 50 31 46 20-42 49 4E 20 00 00 00 00 SZCCP1F BIN .... 8290 00 00 00 00 00 00 00 00-00 00 42 01 02 08 00 00 ..........B..... 82A0 53 5A 43 4F 50 59 31 41-42 49 4E 20 00 00 00 00 SZCOPY1ABIN .... 82B0 00 00 00 00 00 00 00 00-00 00 43 01 2A 01 00 00 ..........C.*... 82C0 53 5A 49 4E 49 54 31 44-42 49 4E 20 00 00 00 00 SZINIT1DBIN .... 82D0 00 00 00 00 00 00 00 00-00 00 44 01 8C 00 00 00 ..........D..... 82E0 53 51 52 54 45 53 54 20-54 58 54 20 00 00 00 00 SQRTEST TXT .... 82F0 00 00 00 00 00 00 00 00-00 00 45 01 5F 00 00 00 ..........E._... 8300 54 45 53 54 31 20 20 20-54 58 54 20 00 00 00 00 TEST1 TXT .... 8310 00 00 00 00 00 00 00 00-00 00 59 01 3E 02 00 00 ..........Y.>... 8320 43 4F 4C 4F 52 54 35 20-54 58 54 20 00 00 00 00 COLORT5 TXT .... 8330 00 00 00 00 00 00 00 00-00 00 4F 01 FC 00 00 00 ..........O..... 8340 43 4F 4C 4F 52 54 36 20-54 58 54 20 00 00 00 00 COLORT6 TXT .... 8350 00 00 00 00 00 00 00 00-00 00 50 01 E0 00 00 00 ..........P..... 8360 53 4D 42 44 4F 53 32 46-42 49 4E 20 00 00 00 00 SMBDOS2FBIN .... 8370 00 00 00 00 00 00 00 00-00 00 53 01 9F 0D 00 00 ..........S..... 8380 53 4D 42 44 53 32 47 20-42 49 4E 20 00 00 00 00 SMBDS2G BIN .... 8390 00 00 00 00 00 00 00 00-00 00 54 01 DA 19 00 00 ..........T.レ... 83A0 53 4D 43 43 50 31 43 20-42 49 4E 20 00 00 00 00 SMCCP1C BIN .... 83B0 00 00 00 00 00 00 00 00-00 00 55 01 05 08 00 00 ..........U..... 83C0 53 4D 43 4F 50 59 31 41-42 49 4E 20 00 00 00 00 SMCOPY1ABIN .... 83D0 00 00 00 00 00 00 00 00-00 00 56 01 2A 01 00 00 ..........V.*... 83E0 53 4D 49 4E 49 54 31 42-42 49 4E 20 00 00 00 00 SMINIT1BBIN .... 83F0 00 00 00 00 00 00 00 00-00 00 57 01 8C 00 00 00 ..........W..... |
FAT16の場合ディレクトリに記録できるファイル数は最大512です。
ディレクトリ内で1ファイルは32バイトを占有しますからディレクトリサイズは32セクタということになります。
つまり20Hです。
ディレクトリのうしろからがユーザーズエリアになります。
ディレクトリの先頭セクタはbQ63でしたから、ユーザーズエリアの先頭セクタbヘ263+20=283になります。
ここからはZB3DOSシステム独自のマップになります。
ユーザーズエリアの先頭にはZディレクトリがあります。
それを読んでみます。
>cm 8003 8003 00- 8004 02- 8005 63-83 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 02 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 4D 42 41 53 49 43 20 20-43 4F 4D 20 00 00 00 00 MBASIC COM .... 8250 00 00 00 00 00 00 00 00-00 00 49 01 01 5F 00 00 ..........I.._.. 8260 53 54 41 52 54 52 45 4B-42 41 53 20 00 00 00 00 STARTREKBAS .... 8270 00 00 00 00 00 00 00 00-00 00 4A 01 17 4F 00 00 ..........J..O.. 8280 E5 5A 43 43 50 31 46 20-42 49 4E 20 00 00 00 00 .ZCCP1F BIN .... 8290 00 00 00 00 00 00 00 00-00 00 42 01 02 08 00 00 ..........B..... 82A0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 82B0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 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 ................ |
FAT16では1クラスタが64セクタで、クラスタ単位で管理されると説明しました。
しかし実はそのルールが適用されるのはユーザーズエリアに対してで、それより前のFATやディレクトリエリアは半端なセクタ数のまま管理されます。
そしてその半端なシステムセクタはまとめてクラスタ#0、クラスタ#1として管理され、ユーザーズエリアの先頭クラスタは#2になります。
上から計算してきた結果クラスタ#2の先頭セクタはセクタbQ83になりましたが、これはこのSDカード固有の数値で、同じ2GBのSDカードでも個別に少しずつbェ変わります(たまたま同じbノなることもあります)。
今回先頭のセクタbOから順に読んできたのはそういう理由からです。
説明の途中ですが本日は時間がなくなってしまいました。
次回に続きます。
CRT/VGAIF+KEYIF+SDCARDIFボードの製作[総合第157回]
2018.4.9upload
前へ
次へ
ホームページトップへ戻る