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

マイコン独立大作戦
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

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