こんにちは、
前回は「FDDエミュレーターについて(その2)」として「FDDエミュレーターのデータの読み書き」についてお話しました。
今回は、FDDエミュレーター REX-FDCFにおける「フォーマット作業」についてお話します。
■FDDエミュレーターのフォーマット作業とは
まず、FDDエミュレーター REX-FDCFが対応しているフロッピーディスクのフォーマット形式(諸元)の種類は、以下のとおりです。
本物のFDDでは、新品のフロッピーディスク(未フォーマットディスク)を使い始める場合、
通常は、物理フォーマットと論理フォーマットという2段階で初期化が行われます。
この点はFDDエミュレーターでも同じです。
物理フォーマットはローレベルフォーマットとも呼ばれ、フロッピーフォーマットの骨組みを構築します。
フロッピーディスクの諸元に基づいた構成(セクター割り)で構築が行われます。
構成としては、下記の図[トラックイメージ]の通りとなります。
[トラックイメージ]
未フォーマットディスクにこのトラックイメージで構成された状態にするのが、FDDエミュレーターでの
物理フォーマットになります。
IDフィールド、DATAフィールドのDATA領域を除く各領域には、きっちりとした値が書き込まれます。
一方、DATAフィールドのDATA領域には意味のないデータが入った形になります。
■未フォーマットディスクについて
本物のフロッピーディスクは、未フォーマット状態にはディスク上にアンフォーマット情報が
書き込まれています。
そして、FDコントローラーがディスクに書かれているアンフォーマット情報を読み取って
未フォーマットディスクを検出しています。
一方、FDDエミュレーターの場合には、CFカードには、アンフォーマット情報がありません。
CFカードの内容をFDコントローラーへ出力しても未フォーマットディスクとして検出されません。
FDコントローラーからフォーマットが実施されるには、未フォーマットディスクとして
検出させる必要があります。
そこで、FDDエミュレーターでは、内部の擬似トラックにアンフォーマット情報を生成し、それを
FDコントローラーへ送り込んでいます。
こうすることで未フォーマット状態のCFカードが挿入された場合にフォーマットを実施することが
可能になりました。
実は、フロッピーディスクのアンフォーマット情報を調べるのは結構苦労しました。
買ってきた状態でも未フォーマット状態のFDというのがない。
購入しようにも最近売られているFDはWindowsフォーマット済みのものばかり。
まわりにあるFDはデータが入っているものしかなく、購入したばっかりのFDがありません。
仕方がないので普段は開けない社内の引き出しや倉庫を探しまわり、ようやく見つけました。
おそらく十数年という歳月の間、ずっと未開封パッケージだったFDです。
ちなみに、これとは別に8インチのFDやFDDもでてきました。
この未開封だったFDを調べると、予想通りアンフォーマット情報が書かれていました。
■論理フォーマットについて
論理フォーマットではDATAフィールドのDATA領域に対してファイルシステムを構築します。
DATAフィールドのDATA領域に対する読み書きは、FDコントローラーからのセクターリード、セクターライト
という処理になります。
Windowsパソコンのフロッピーであれば、FAT形式のファイルシステムが構築されます。
Windowsパソコンでクイックフォーマットと呼ばれるものは、こちらの論理フォーマットを指します。
Windows上のフォーマット処理では「□クイックフォーマット」のチェックを外してフォーマットを行うと、
物理フォーマット・論理フォーマットが一度に行われます。
また、コマンドプロンプトで「format a:」と入力するだけでも、物理フォーマット・論理フォーマットが
一度に行われます。
一方、Linux OSではFDのフォーマットコマンドが2つに分けられており、
ディストリビューション、バージョン等によって異なりますが、
「fdformat /dev/fd0u1440」と入力し物理フォーマットを行い、
その後「mformat a:」で論理フォーマットを行う必要があります。
Linux OSではフォーマットの手順が多く、パラメータ指定も細かく設定できますので、
FDの内部構造を理解するには良いかもしれません。
今回は、FDDエミュレーター REX-FDCF のフォーマット作業について説明しました。
次回は、FDDエミュレーターの各種設定について説明します。
「FDDエミュレーターについて(その4)」へ続く。
関連記事
FDDエミュレーターについて(その1)
FDDエミュレーターについて(その2)
FDDエミュレーターについて(その4)
FDDエミュレーターについて(その5)