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

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

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