D88 Floppy Disk Image Tools D88toolG
D88toolG は、D88形式のフロッピーディスクイメージファイル (.d88) に対して作業を行うためのコマンドラインツール群です。
以下のツールから構成されています。
- d88make: 詳細なジオメトリ指定や、ベタディスクイメージファイルの埋め込みが可能なD88イメージファイル作成ツール。
- d88toraw: D88イメージファイルからベタディスクイメージファイルを作成するツール。D88イメージの詳細な形式を出力するツールとしても使える。
- d88pack: 複数のD88イメージファイルから複数枚形式のD88イメージファイルを作成するツール。
- d88unpk: 複数枚形式のD88イメージファイルを分割するツール。D88イメージの簡単な形式を出力するツールとしても使える。
- d88read: D88イメージから指定トラック/セクタのデータを出力するツール。
- d88write: D88イメージの指定トラック/セクタのデータを書き換えるツール。
Python 3.x がインストールされていれば、特別なインストール作業は必要ありません。 このリポジトリをダウンロードまたはクローンするだけですぐに使用できます。
git clone https://github.com/gorry/d88toolg.git
cd d88toolg例えば、d88makeは、コマンドラインから以下のように実行します。
python3 d88make.py [options] <output.d88>他のツールも同様です。詳細は「spec_[ツール名].md」をご覧ください。
d88makeは、詳細なジオメトリ指定や、ベタディスクイメージファイルの埋め込みが可能なD88イメージファイル作成ツールです。
デフォルト設定(2Dフォーマット, 40シリンダ, 2サイド, 16セクタ/トラック, 256バイト/セクタ)で空のディスクイメージ「mydisk.d88」を作成します。
# PC-8801標準の2Dイメージファイル mydisk.d88 を作成する
python3 d88make.py mydisk.d881.25MB (PC-9801用2HD) フォーマットで、ディスク名を指定してイメージを作成します。
# PC-9801標準の2HDイメージファイル mydisk.d88 を作成する
python3 d88make.py -a "MY DATA DISK" -d HD -c 77 -s 2 -r 8 -n 1024 mydisk.d88ベタディスクイメージ my_image.img がある場合、以下のコマンドを実行するとファイルサイズからジオメトリが自動的に設定され、内容がコピーされます。対応しているベタイメージディスクのファイルサイズについての詳細は spec_d88make.mdをご覧ください。
# my_image.img をD88形式に変換
python3 d88make.py -i my_image.img -a "BOOT DISK" my_image.d88D88イメージファイルからベタディスクイメージファイルを作成するツールです。D88イメージの詳細な形式を出力するツールとしても使えます。
N88-BASICのD88イメージファイル mydisk.d88 から、ベタディスクイメージファイルを作成します。
# mydisk.d88 からベタディスクイメージファイル mydisk.d88.raw を作成
python3 d88toraw.py mydisk.d88単にD88イメージファイルのチェックを行います。トラック数・各トラックのセクタ数などを表示します。
# mydisk.d88 のトラック数・各トラックのセクタ数を表示
python3 d88toraw.py -n mydisk.d88# mydisk.d88 のトラック数・各トラックのセクタ数・各セクタの情報を表示
python3 d88toraw.py -n -a mydisk.d88複数のD88イメージファイルから、複数枚形式のD88イメージファイルを作成するツールです。
D88イメージファイル first.d88 second.d88 から、2枚組のD88イメージファイル multi.d88を作成します。
# first.d88, second.d88から、2枚組のmulti.d88を作成
python3 d88pack.py multi.d88 first.d88 second.d88複数枚形式のD88イメージファイルから、それを1枚ずつに分割したイメージを作成するツールです。
複数枚形式のD88イメージファイル multi.d88 を1枚ずつに分割したイメージを作成します。ファイル名は、各イメージのディスク名となります。
# 2枚組のイメージmulti.d88を分割したイメージを作成。ファイル名は各イメージのディスク名に依存
python3 d88unpk.py multi.d88複数枚形式のD88イメージファイル multi.d88 を1枚ずつに分割したイメージを作成します。ファイル名は、disk_001.d88, disk_002.d88のようになります。
# 2枚組のイメージ `multi.d88` を分割したイメージを作成。ファイル名は`disk_001.d88`, `disk_002.d88`のようになる
python3 d88unpk.py multi.d88 -n disk単にD88イメージファイルのチェックを行います。複数枚形式のD88イメージファイル multi.d88 内の各イメージのディスク名・形式などを表示します。
# 2枚組のイメージ `multi.d88` の内容を表示
python3 d88unpk.py -c multi.d88D88イメージファイルから、指定したセクタやトラックを読み出してファイルに保存します。
D88イメージファイル mydisk.d88 から、トラック0・1番めのセクタを t0s1.bin に書き出します。
# `mydisk.d88` のトラック0・1番めのセクタを `t0s1.bin` に書き出す
python3 d88read.py mydisk.d88 -t0 -s1 t0s1.binD88イメージファイル mydisk.d88 から、トラック0のデータ(セクタヘッダ付き)を t0.bin に書き出します。
# `mydisk.d88` のトラック0のデータを `t0.bin` に書き出す
python3 d88read.py mydisk.d88 -t0 t0.binD88イメージファイルの指定したセクタやトラックに、指定したファイルのデータを書き込みます。
D88イメージファイル mydisk.d88 のトラック0・1番めのセクタに t0s1.bin を書き込みます。
# `mydisk.d88` のトラック0・1番めのセクタに `t0s1.bin` を書き込む
python3 d88write.py mydisk.d88 -t0 -s1 t0s1.binD88イメージファイル mydisk.d88 のトラック0にセクタヘッダ付きデータ t0.bin を書き込みます。このとき、セクタヘッダのC/Hをトラック0用に改めます。
# `mydisk.d88` のトラック0に `t0.bin` を書き込む
python3 d88write.py mydisk.d88 -t0 t0.bin -mD88イメージファイル mydisk.d88 のトラック0をアンフォーマットにします。
# `mydisk.d88` のトラック0をアンフォーマットにする
python3 d88write.py mydisk.d88 -t0 unformat本プログラム群は、spec_d88make.md などを設計書として、Gemini CLIに入力してコード化することで作成しています。2026/03/13のGemini 3では、他の指示なく満足な出力を得られています。
プログラムの改造については、同様に設計書のmdファイルを改変して、コードを得られるようになっていると嬉しいです。
Copyright 20260313a Hiroaki GOTO as GORRY
本プログラムはMIT Licenseに沿って利用・改変・再配布を行うことができます。 本プログラムの実行結果について、作者は一切の責任を負いません。
バグ報告や改善提案は、このリポジトリのIssuesまでお願いします。