科学・技術
Commodore 8ビット 5¼インチディスクイメージユーティリティ
Commodore 8-Bit 5¼" Disk Images (masswerk.at)
要約
この記事では、Commodore 8ビットコンピューター用の5¼インチフロッピーディスクイメージ(D64、D80、D82形式)を操作するための新しいWebベースのツールを紹介しています。このツールは、ディスクイメージの内容を検査し、ファイルのエクスポートや、新しいディスクイメージの作成・編集をブラウザ上で行うことができます。また、Commodoreのディスクイメージフォーマットの構造や、トラックとセクタの概念についても解説しています。
全文翻訳
Commodore 8ビット 5¼インチディスクイメージ
2026年8月12日
新しい(Web)ツールを発表します。また、Commodore 5¼インチディスクイメージに関する一般的な議論も行います。さて、読者の皆様、私はPET 2001エミュレーターの新しいバージョン(またかよ)を(忙しく)開発してきました。本質的に、これはIEEE-488 / GPIBバスのエミュレーションとトランスレーションレイヤーの全く新しい実装であり、ゼロから作り直しました。これには、IEEE-488プロトコル自体(語るべき話はありますが、それはまた別の機会に)、ドライブ上のDOSの実装(ここにも興味深い詳細がありますが、それもまた別の機会に)、ファイルハンドリングの背後にあるコマンドチェーン/グルーロジック全体の配線変更、そしてディスクイメージの改善されたハンドリング(ああ、ついにこの記事の本題にたどり着きました!)が含まれます。
この書き直しは、ドライブハードウェアのエミュレーションや、それに続くROMコードの実行を目的としたものではなく、インターフェースを完全に独立したソリューションとして再実装することを目的としています。これにより、ローカルファイル、メディアイメージに保存されたデータなど、あらゆるファイルに対して、通常のディスクドライブユニットから提供されるかのように、エミュレートされたPETに供給することができます。さらに、OPEN、PRINT#、INPUT#、GET#、CLOSE、CATALOGなどのサポートが最終的に得られ、「ファイルが見つかりません」(これが見つかればですが、これもまた別の話です — すでに示唆したように、語るべき話はたくさんあります)といった便利な機能も追加されます。そして、おそらくプリンターエミュレーションのサポートさえも得られるかもしれません(フルGPIBがあるので、なぜできないのでしょう?)。
PET BASIC 4.0のCATALOGコマンドと、いくつかの派手なディレクトリエントリのプレビュー。
つまり、ローカルファイル、ディスクイメージやテープイメージファイル上のデータ、スタンドアロンファイルなどをミックスし、エミュレートされたPETに透過的に提示することなのです。この情報サイクルを閉じるために、ディスクイメージの中を覗き、その内容を探索し、そこから任意のデータ/ファイルをコピーしたりエクスポートしたりできると良いと考えました。同様に、ディスクイメージ上のファイルとローカルファイルとのギャップを最終的に埋めるために、特に皆様の貴重なプロジェクトの配布目的で、D64ディスクイメージを構成するためのツールがあると良いでしょう。これは実際、かなりうまくいきました。
これには非常に誇りを持っており、また、より広範な関心と有用性があると考えている(信じがたいかもしれませんが、CommodoreにはPET以外にもっと多くのものがあります)ため、これらの2つのツールを新しいディスクユーティリティの初期の「シングルリリース」としてスタンドアロンアプリケーションにまとめました。あるいは、(やや無関係ですが、それでも不朽の)Sir Clive(Sinclair)の言葉を借りれば、「Commodore 8-Bit Disk Image Utilities」をお届けします!
1) Commodore 8-Bit Disk Image Utilities
プログラムアルバムであるPET 2001エミュレーターからの「シングルリリース」は、当然ながら2つのサイドを備えています。
サイドA:ディスクイメージインスペクター
これは本質的に、Commodore 8ビット 5¼インチフロッピーディスクイメージ(D64、D80、D82形式)の謎への、あなた自身のポイント&クリックアドベンチャーです。コンテキストメニューを使用して、任意のデータをコピーしたり、見つけた宝物をファイルとしてエクスポート(汎用.PRG、.SEQなど、またはP00形式)したりできます。コンテキストメニューを使ってナビゲートすることもできます!一切の費用は惜しみませんでした。
BAM、ディスクヘッダー、ディレクトリデータを含むディスク概要。(ハイライトされたブロックによって示されるブロックと選択されたファイルのファイル関連付けに注意してください。)
選択されたファイルのファイル/データビュー。(ブロック/セクタのリンクとロードアドレスが色で示されています。)
コピーとエクスポートのオプションを含むコンテキストメニュー。
サイドB:D64コンポーザー
これは、D64(35トラック)ディスクイメージを構成し、最終的にダウンロードするためのウィザードです。従来のCommodoreファイル(例:エミュレーターから保存されたもの、または別のディスクイメージから抽出されたもの)を追加し、名前を変更したり、並べ替えたり、ファイルタイプの属性を変更したり、エクスポートから一時的にファイルを除外したりできます。装飾目的でDELファイルを追加することさえできます。
派手なディスクイメージの構成。(空白を保持するために末尾の引用符に注意してください。そうしないと空白は破棄されます。)
当社の派手なディレクトリをリストするCATALOG出力。
さらに、Commodoreファイルフォーマットに関する説明的な注釈も提供されます。もちろん、これはすべてローカルでブラウザ内で実行され、データはどこにも送信されません。また、これは完全に新しく独立した実装であり、AIは一切関与していません。しかし、これは言葉で説明するよりも実際に示す方が簡単なので、ぜひ試してみてください。
Commodore 5¼インチディスクイメージユーティリティ(再生して遊ぶためのPETディスクイメージをロードするためのリンクがありますが、もちろん、いつでも自分で用意したものを持ってくることができます。)
2) Commodore 8ビット(5¼インチ)ディスクイメージ
これで、2番目の部分、つまりCommodore 8ビットのさまざまなディスクイメージフォーマット、すなわちD64、D80、D82、およびそれらが実際のディスクとどのように関連しているかについての概要に移ります。これらのディスクイメージは、しばしば、それぞれのディスクイメージの生の表現として説明されます。これは、これらのディスクイメージに特別なものが何もない限り、真実かもしれません。ヘッダーも、署名もなく、ディスク上にあるデータの単なるストリームです。ファイル拡張子や典型的なファイルサイズを除けば、一見しただけでは、これが実際にディスクイメージであると判断する方法はありません。
一方で、Commodoreフロッピーディスクには、データの他に、さらに多くのものがあります。同期マーク、ブロックヘッダーとID、エラー訂正のためのチェックサム、アライメントギャップなど、低レベルで見つかります。
Commodoreフロッピーディスク上のブロック/セクタの低レベル構造。出典:Commodore Computer Disk System User Guide; Commodore Electronics Limited, 1983; p.62。(色付けは私によるものです。N.L.)
上記の画像では、オレンジ色でハイライトされた部分、つまり任意のブロック/セクタのペイロードデータのみがディスクイメージに表現されています。(「ブロック」と「セクタ」の両方の用語は同義で使われることがあります。ブロック指向の性質により、「ブロック」を使用します。)
一方で、ディスクイメージはこの表現に余分なセクションを追加し、ブロックエラー情報(いわゆる「エラーバイト」、イメージ作成時の読み取りエラーを参照)を末尾にエンコードすることがあります。これは物理ディスク上には見られません。
注意すべき点は、ディスク上にあるすべての情報ではないこと、そしてコピープロテクションスキームや同様の低レベルデバイスを保持するには十分な情報ではない可能性があることです。それはむしろ、ディスク上に配置されたデータの論理的なビューです。
しかし、私たちがブロックを(いや、2026年では「深く掘り下げる」とは言えません、代わりにemダッシュを追加するだけです)「かき回す」前に、まずより大きな絵、つまりブロックが埋め込まれているトラック構造を見てみましょう。
トラックとイメージフォーマット
D64
Commodore 2032、4040、1540、1541、1551ドライブで使用される標準の35トラックフォーマット。(特定の制限内で、同じフォーマットを使用するが、ヘッダーブロックに有効なディスクIDまたはディスクDOSバージョンタグを格納しない2031ドライブも含まれます。)
1541用のDolphin-DOS、SpeedDOS、PrologicDOSによる40トラック拡張。
非標準トラック41および42は、DOSではサポートされていませんが、ドライブで物理的にアクセス可能です(したがって、特にC64/1541での保護スキームの一部である可能性があります)。
標準の35トラックフォーマットに加えて、D64フォーマットは40トラック拡張および#41/42の非標準トラックの両方をサポートします。
D80
Commodore PETのCommodore 8050ドライブの77トラックフォーマット。
D82
Commodore PETのCommodore 8250両面ドライブの154トラックフォーマット。
同様のSFD-1001および8250LPでも使用されます。
注意すべき重要な点は、これらのトラックの番号付け方法です。トラックは1から始まり、外側から内側に向かって番号が付けられます。つまり、35トラックディスク(D64)の場合、これらはトラック1から35です。トラック参照がゼロ(0)は、常にブロックチェーンの最後のブロックを示します。トラックは外側(リム側 ;-) )から始まるため、低番台のブロックに最も多くのブロック/セクタがあり、ブロック数は減少していきます。