Skip to content

Repository files navigation

D88toolG

D88 Floppy Disk Image Tools D88toolG

これはなに? (Overview)

D88toolG は、D88形式のフロッピーディスクイメージファイル (.d88) に対して作業を行うためのコマンドラインツール群です。

構成 (Features)

以下のツールから構成されています。

  • d88make: 詳細なジオメトリ指定や、ベタディスクイメージファイルの埋め込みが可能なD88イメージファイル作成ツール。
  • d88toraw: D88イメージファイルからベタディスクイメージファイルを作成するツール。D88イメージの詳細な形式を出力するツールとしても使える。
  • d88pack: 複数のD88イメージファイルから複数枚形式のD88イメージファイルを作成するツール。
  • d88unpk: 複数枚形式のD88イメージファイルを分割するツール。D88イメージの簡単な形式を出力するツールとしても使える。
  • d88read: D88イメージから指定トラック/セクタのデータを出力するツール。
  • d88write: D88イメージの指定トラック/セクタのデータを書き換えるツール。

インストール (Installation)

Python 3.x がインストールされていれば、特別なインストール作業は必要ありません。 このリポジトリをダウンロードまたはクローンするだけですぐに使用できます。

git clone https://github.com/gorry/d88toolg.git
cd d88toolg

使い方 (Usage)

例えば、d88makeは、コマンドラインから以下のように実行します。

python3 d88make.py [options] <output.d88>

他のツールも同様です。詳細は「spec_[ツール名].md」をご覧ください。

d88make: 概要

d88makeは、詳細なジオメトリ指定や、ベタディスクイメージファイルの埋め込みが可能なD88イメージファイル作成ツールです。

d88make: 基本的な例

デフォルト設定(2Dフォーマット, 40シリンダ, 2サイド, 16セクタ/トラック, 256バイト/セクタ)で空のディスクイメージ「mydisk.d88」を作成します。

# PC-8801標準の2Dイメージファイル mydisk.d88 を作成する
python3 d88make.py mydisk.d88

d88make: オプションを指定した例

1.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

d88make: イメージファイルからの自動作成

ベタディスクイメージ my_image.img がある場合、以下のコマンドを実行するとファイルサイズからジオメトリが自動的に設定され、内容がコピーされます。対応しているベタイメージディスクのファイルサイズについての詳細は spec_d88make.mdをご覧ください。

# my_image.img をD88形式に変換
python3 d88make.py -i my_image.img -a "BOOT DISK" my_image.d88

d88toraw: 概要

D88イメージファイルからベタディスクイメージファイルを作成するツールです。D88イメージの詳細な形式を出力するツールとしても使えます。

d88toraw: 基本的な例

N88-BASICのD88イメージファイル mydisk.d88 から、ベタディスクイメージファイルを作成します。

# mydisk.d88 からベタディスクイメージファイル mydisk.d88.raw を作成
python3 d88toraw.py mydisk.d88

d88toraw: D88イメージファイルのチェック

単にD88イメージファイルのチェックを行います。トラック数・各トラックのセクタ数などを表示します。

# mydisk.d88 のトラック数・各トラックのセクタ数を表示
python3 d88toraw.py -n mydisk.d88
# mydisk.d88 のトラック数・各トラックのセクタ数・各セクタの情報を表示
python3 d88toraw.py -n -a mydisk.d88

d88pack: 概要

複数のD88イメージファイルから、複数枚形式のD88イメージファイルを作成するツールです。

d88pack: 基本的な例

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

d88unpk: 概要

複数枚形式のD88イメージファイルから、それを1枚ずつに分割したイメージを作成するツールです。

d88unpk: 基本的な例

複数枚形式のD88イメージファイル multi.d88 を1枚ずつに分割したイメージを作成します。ファイル名は、各イメージのディスク名となります。

# 2枚組のイメージmulti.d88を分割したイメージを作成。ファイル名は各イメージのディスク名に依存
python3 d88unpk.py multi.d88

d88unpk: オプションを指定した例

複数枚形式の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

d88unpk: D88イメージファイルのチェック

単にD88イメージファイルのチェックを行います。複数枚形式のD88イメージファイル multi.d88 内の各イメージのディスク名・形式などを表示します。

# 2枚組のイメージ `multi.d88` の内容を表示
python3 d88unpk.py -c multi.d88

d88read: 概要

D88イメージファイルから、指定したセクタやトラックを読み出してファイルに保存します。

d88read: 基本的な例

D88イメージファイル mydisk.d88 から、トラック0・1番めのセクタを t0s1.bin に書き出します。

# `mydisk.d88` のトラック0・1番めのセクタを `t0s1.bin` に書き出す
python3 d88read.py mydisk.d88 -t0 -s1 t0s1.bin

d88read: トラックデータを書き出す

D88イメージファイル mydisk.d88 から、トラック0のデータ(セクタヘッダ付き)を t0.bin に書き出します。

# `mydisk.d88` のトラック0のデータを `t0.bin` に書き出す
python3 d88read.py mydisk.d88 -t0 t0.bin

d88write: 概要

D88イメージファイルの指定したセクタやトラックに、指定したファイルのデータを書き込みます。

d88write: 基本的な例

D88イメージファイル mydisk.d88 のトラック0・1番めのセクタに t0s1.bin を書き込みます。

# `mydisk.d88` のトラック0・1番めのセクタに `t0s1.bin` を書き込む
python3 d88write.py mydisk.d88 -t0 -s1 t0s1.bin

d88write: トラックデータを書き込む

D88イメージファイル mydisk.d88 のトラック0にセクタヘッダ付きデータ t0.bin を書き込みます。このとき、セクタヘッダのC/Hをトラック0用に改めます。

# `mydisk.d88` のトラック0に `t0.bin` を書き込む
python3 d88write.py mydisk.d88 -t0 t0.bin -m

d88write: トラックをアンフォーマットにする

D88イメージファイル mydisk.d88 のトラック0をアンフォーマットにします。

# `mydisk.d88` のトラック0をアンフォーマットにする
python3 d88write.py mydisk.d88 -t0 unformat

ソースコードと改造

本プログラム群は、spec_d88make.md などを設計書として、Gemini CLIに入力してコード化することで作成しています。2026/03/13のGemini 3では、他の指示なく満足な出力を得られています。

プログラムの改造については、同様に設計書のmdファイルを改変して、コードを得られるようになっていると嬉しいです。

著作権表記 (License)

Copyright 20260313a Hiroaki GOTO as GORRY

本プログラムはMIT Licenseに沿って利用・改変・再配布を行うことができます。 本プログラムの実行結果について、作者は一切の責任を負いません。

連絡先 (Contact)

バグ報告や改善提案は、このリポジトリのIssuesまでお願いします。

https://github.com/gorry/d88toolg

About

No description, website, or topics provided.

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages