[TOP]ProgramGGGOFG245MusicFontFamicomPokeMemoUpdate
Windows環境でのPC-98x1用FDのイメージ化・書き戻し方

Windows上で、PC-98x1の1.2MBフォーマットなどのフロッピーディスクを、
まるごとイメージ化したり、逆にディスクに書き戻したりする方法。


dd for windowsでやってみる
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
chrysocome.netにある「dd for windows」が使えそう。(v0.5で確認)
http://www.chrysocome.net/dd

Linuxとかにある「dd」コマンドのWindows移植版のようで、
これは、フロッピーに限らず、様々なディスクドライブをファイルへ書き出したり、
逆にイメージファイルをディスクドライブに書き戻したりできるツール。
ddコマンド、Windows環境にも標準でほしいです…。ラズパイのOSイメージ書き出しとかに使うんで…。

ここは、このツールのフロッピーディスクに特化した使い方のメモです。



■対応イメージファイル形式
このツールで取り扱うイメージファイルは、
「ディスクを論理的に全部読んだ生データ」として保存・読み込みされます。
同様の互換性のあるファイル形式になっているイメージファイル形式は、
VirtualFloppyImageConverterを見る限り、これらが該当します。
・BKDSK形式 [.HDM]
・TFD(T98)形式 [.TFD]
・XDF(EX86)形式 [.XDF]

ちなみに、このツールで保存されたイメージファイルは、
そのままNekoProject21/WにFDイメージとして使えました。



■大雑把なコマンドの使い方
dd.exe if=入力: of=出力 [bs=ブロックサイズ] [--progress]

・入力/出力には、ファイル名かドライブを指定。
 ファイルは、ファイルパスをそのまま記述。
 (例:output.img)
 ドライブは、「\\.\」の後にドライブをコロン付きで記述
 (例:\\.\a:)
・「bs=」はブロックサイズで、一度にどれくらいのサイズを読み書きするか指定。
 読み書き速度に影響する。フロッピー相手なら、18kが適切らしい。
・「--progress」を入れると、どれくらいのサイズ読み書きしたかが表示される。

使用例(イメージ化):
dd.exe if=\\.\a: of=output.img bs=18k --progress
使用例(書き戻し):
dd.exe if=output.img of=\\.\a: bs=18k --progress



■注意
・書き戻すディスクは、事前にフォーマットが必要。
・エラーのあるFDは使用不可。(もちろんコピープロテクト含む)
・N88 DISK-BASICの類も使用不可。(変なフォーマットなので…)
・中途半端なサイズで読み書き終了してしまった場合、
 大体はそのディスクには不良箇所があるということです。
 ディスクチェック、またはディスクリフレッシュにも使えるかも。



■便利なバッチファイル
いちいちコマンドを打つのは面倒なので、バッチファイルを作ってみました。
dd.exeと同じフォルダにこのバッチファイルを置いてください。

イメージ化の場合、パラメータ無しでそのままバッチファイルを実行し、
入力ドライブと出力ファイルを対話式に指定します。

書き戻しの場合、ファイル名をパラメータで指定
(つまりドラッグ&ドロップでもOK)し、出力ドライブを対話式に指定します。

何も指定せずエンターだけ押した場合、デフォルトはAドライブ、ファイルは_out.imgです。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
@echo off

if not exist dd.exe (
echo "WHERE IS dd.exe?"
exit -1
)
if "%~nx1"=="" ( goto D2I ) else ( goto I2D )

:D2I
echo [DISK to IMAGE mode]
set /P IN_DRV="Input Drive? [a]: "
set /P OUT_FILE="Output File? [_out.img]: "
if not defined IN_DRV set IN_DRV="a"
if not defined OUT_FILE set OUT_FILE="_out.img"
dd.exe if=\\.\%IN_DRV%: of=%OUT_FILE% bs=18k --progress
exit 0

:I2D
echo [IMAGE to DISK mode]
echo Input File : %1
set /P OUT_DRV="Output Drive? [a]: "
if not defined OUT_DRV set OUT_DRV="a"
dd.exe if=%1 of=\\.\%OUT_DRV%: bs=18k --progress
pause
exit 0
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ダウンロード:ddfd.bat.txt
拡張子の「.txt」を抜いて、お使いください。




メモ一覧へ

(C)2005-2023 OffGao All Rights Reserved.