マイコン独立大作戦
CRT/VGAIF+KEYIF+SDCARDIFボードの製作
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
WindowsパソコンにUSB接続して使う現行方式はそれなりに便利ではありますが、ときとしてWindows
のしがらみから開放されて、小さいながらも独立した一個のパソコンとして機能したいと思うこともあります。
昔はそれが普通のことだったのですが、安価なCRTディスプレイが生産中止となって久しい今日ではそれ
は叶わぬことと諦めていたのですが…。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
[総合第35回]
●Zディレクトリ
今回も時間がありません。
ですのでまたほんの少しだけ、走り書き(走り打ち)です。
下は前回と同じDIRセクタの中身です。
>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セクタの先頭に’Z’という名前の「ファイル」が置いてあります。
実はこれは「ファイル」ではなくてサブディレクトリです。
ZB3DOS(CP/M互換DOS)はFAT16とはフォーマットの形式が異なるので、MSDOSとは共存できません。
そこでSDカード内に仮想フロッピーディスクを設けて、その中をCP/Mフォーマットで管理しています。
しかしMSDOSとZB3DOSとの間で全くファイルの交換ができないのでは不便です。
そこでMSDOSからもZB3DOS(CP/M互換DOS)からもアクセスできる特殊なフォルダ(ディレクトリ)を設けることにしました。
それがZディレクトリです。
ZディレクトリそのものはFAT16フォーマットです。
FAT16のZディレクトリをZB3DOS(CP/M互換DOS)がアクセスするためにはZB3DOSの側に工夫が必要です。
ここでそのことについて書き始めますと、また先に進めなくなってしまいますので、それについては別の機会に譲ります。
’Z’がディレクトリであることはファイルネームエリアの次の位置(先頭から12バイト目)のファイル種別に10と書かれていることで分かります。
10はディレクトリを示します。
通常のファイルは20です。
その下の行の同じ位置にはZディレクトリが置かれているクラスタbェあります。
02 00ですからクラスタ#2です。
クラスタ#2はデータエリアの先頭のクラスタです(ディレクトリエリアの次のクラスタです)。
ディレクトリエリアの先頭セクタはbO2E7でした。
FAT16ファイルシステムではディレクトリエリアは32セクタ(20Hセクタ)です。
するとデータの先頭クラスタ(#2)の最初のセクタは02E7+20=0307になります。
前回と同じようにして、0307を置数してセクタリードプログラムを実行してみました。
>cm 8003 8003 00- 8004 02-03 8005 E7-07 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 53 54 41 52 54 52 45 4B-42 41 53 20 00 5B 49 B9 STARTREKBAS .[Iケ 8250 70 4A 70 4A 00 00 AB 89-1C 3B 44 01 15 4F 00 00 pJpJ..ォ..;D..O.. 8260 41 4D 00 62 00 61 00 73-00 69 00 0F 00 DC 63 00 AM.b.a.s.i...ワc. 8270 2E 00 63 00 6F 00 6D 00-00 00 00 00 FF FF FF FF ..c.o.m......... 8280 4D 42 41 53 49 43 20 20-43 4F 4D 20 00 8D 49 B9 MBASIC COM ..Iケ 8290 70 4A 70 4A 00 00 2D 94-45 40 45 01 00 5F 00 00 pJpJ..-.E@E.._.. 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 ................ |
Zディレクトリ(サブディレクトリ)の「ディレクトリエリア」です。
サブディレクトリのセクタはメインディレクトリと同じ形式になっています。
サブディレクトリに所属するファイルはサブディレクトリに置かれるのではなくて、メインディレクトリのファイルと同じように普通のデータ領域に置かれます。
ここではSTARTREK.BASとMBASIC.COMの名が見えますが、その置かれているクラスタai前から27、28バイト目)を見ると44 01、45 01になっています。
クラスタbO144、0145です。
そこは特にサブディレクトリ用に区別しているところではなくて、普通のデータエリアです。
FAT16ファイルシステムではサブデイレクトリにあるファイルは実はファイル名情報だけがサブディレクトリセクタに書かれているだけで、データそのものは普通のデータ領域に置かれます。
説明の途中ですが、本日は時間がなくなってしまいました。
次回に続きます。
CRT/VGAIF+KEYIF+SDCARDIFボードの製作[総合第35回]
2017.3.27upload
前へ
次へ
ホームページトップへ戻る