📰 newsreader

twostopbits score 0.06 好み 0.00 en

コモドール 8ビット ディスクイメージ・ユーティリティ (masswerk.at)

原題: Commodore 8-Bit Disk Image Utilities (masswerk.at)

commodore 8-bitdisk imaged64d80d82disk image inspectordisk image composerfloppy disk
原文 ↗

日本語訳

# タイトル

Commodore 8-Bit Disk Image Utilities (masswerk.at)

# 本文

サイドA: ディスクイメージ・インスペクター

ファイルアップロードボタンを使用するか、ドラッグ&ドロップすることで、Commodore 8ビット 5¼インチ・フロッピーディスクのイメージファイルをマウントできます。

ディスクインスペクター内では、項目をクリックして選択や操作が可能です。コンテキストメニューを使用して、データのコピーやファイルの抽出・ダウンロードが行えます。また、コンテキストメニューを使ってディレクトリ内を移動することもできます。

(対応フォーマット: D64, D80, D82)

試すべきイメージがない場合は、こちらをクリックしてください(ディスクイメージ「PETGMS08.D64」が自動ロードされます)。

サイドB: ディスクイメージ・コンポーザー

ボタンをクリックするとウィザードが起動し、35トラックのD64ディスクイメージを作成してダウンロードできます。

(ファイル名の末尾に、装飾目的などで末尾の空白を入れたい場合は、ファイル名の最後にダブルクォート(")を1つ入れてください。ダブルクォートはファイル名に使用できない不正な文字であり、他の場所でも使用できません。実際、これらはファイル名を途中で終了させてしまいますが、一番最後のダブルクォートだけは保持され、ディスクイメージの確定時に破棄されます。)

備考

サポートされているディスクイメージ形式

- D64

- Commodore 2032, 4040, 1540, 1541, 1551 ドライブで使用されている標準的な35トラック形式。

(一定の制限はありますが、これには同じ形式を使用する2031ドライブも含まれます。ただし、2031はヘッダブロックに有効なディスクIDやディスクDOSバージョン・タグを保持していません。)

- Dolphin-DOS、SpeedDOS、または PrologicDOS による40トラック拡張も認識されるはずです。

- 非標準の41/42トラック拡張についても、ロード可能なファイルのディレクトリまたはセクタリンク内にそれらのトラックへの参照があれば認識されます。

- D80

- Commodore PET 用の Commodore 8050 ドライブで使用される77トラック形式。

- D82

- Commodore PET 用の Commodore 8250 両面ドライブで使用される154トラック形式。

(SFD-1001 や 8250LP でも使用されます。)

これらのディスクイメージ形式は、シンクマークやチェックサムなどの低レベルなシステム情報を除いた、ディスク上の生データをミラーリングしたものです。オプションとして、ブロックごとに1バイトの追加のエラー情報(別名:エラーバイト)が付随する場合があります。(特別なヘッダが存在しないため、ファイル拡張子と典型的なファイルサイズ以外に、ファイル形式を判別する明示的な指標はありません。)

サポートされているファイル形式(ファイル拡張子別)

- ドライブ内の内部タイプコード: 2(「PRG」として表示)

- 内部タイプコード: 1(「SEQ」として表示)

ここでは、USRファイルはSEQファイルと全く同じように扱われます。

- 内部タイプコード: 3(「USR」として表示)

固定レコードサイズを持つ相対ファイル(最大720レコード、1レコード最大254バイト)。

ここでのRELファイルは、最初の1バイトにレコードサイズが記録され、その後にシーケンシャルなデータストリームが続きます。(RELファイルについて、十分に文書化された汎用的なエクスポート形式は把握していません。採用した形式はPRG形式を例としており、論理的な選択肢として他でも実装されている可能性があります。標準的な解決策については、適用可能なレコードサイズを明示的に含むP00形式を参照してください。)

ディスク上では、RELファイルはシーケンシャルなデータストリームと、最大6つの「サイドセクタ」と呼ばれるチェーンで構成されています。これらのサイドセクタには、レコードが開始されるディスクブロック(トラックとセクタ)への参照と、さらなるサイドセクタ(自分自身を含む最大6つ)へのリンクが含まれています。そのため、現在のサイドセクタがすでにバッファにある状態であれば、ブロック内の位置は固定のレコードサイズから単純な計算で導き出せるため、最小限のディスクリードで任意のレコードにアクセスできます。サイドセクタには120通りの参照が可能なため、このシステムにより1ファイルあたり最大720レコードという最大レコード数も実現されています。(RELファイルを開くと追加のディスクバッファも割り当てられるため、同時に開けるファイル数に制限が生じる点に注意してください。)

サイドセクタ情報は、実際のファイルデータとは完全に分離されているだけでなく、そのディスクおよびブロック割り当てに固有のものであり、この特定のコンテキスト以外では意味をなしません。したがって、エクスロットの対象にはならず、インポート時にも含まれません。これをポータブルにするために必要な情報は、ファイルのディレクトリエントリ内の他の基本情報とともに保存されているレコードサイズのみです。

RELファイルはPETおよび関連するIEEE-488ドライブでは正常に動作していましたが、1471ではこのファイルタイプに関して、サイドセクタ情報が破損するという問題が報告されており、C64の文脈ではめったに見かけられません。(サイドセクタ情報はシーケンシャルな読み出しには不要なため、これらのファイルはディスクインスペクターを通じてアクセスおよびエクスポートが可能です。)

- 内部タイプコード: 4(「REL」として表示)

ここでは、DELファイルのインポートやエクスポートはできませんが、D64コンポーザーで(装飾用の)DELファイルを作成することは可能です。

- 内部タイプコード: 0(「DEL」として表示)

慣習として、ファイル拡張子の最初の1文字がファイルタイプを示し、その後に2桁の数字(00…99)が続きます。

(例:「.Pnn」、「.Snn」、「.Unn」、「.Rnn」などの拡張子を持つファイル。)

なお、D64コンポーザーにおいては、拡張子で示唆されているタイプに関わらず、ヘッダ情報に0以外のレコードサイズが見つかった場合は、RELタイプとして強制的に扱われます。

Commodore ディレクトリ・リスティングにおける特殊記号

- "*"

ファイルタイプの前のアスタリスク(「splat」とも呼ばれます)は、ファイルが正しく閉じられなかったことを示します。ディレクトリやBAM(Block Availability Map)に関する重要な情報は、CLOSE時にのみディスクに更新されるため、これらのファイルはロードできません。「スプラット・ファイル」は、デフォルトではディレクトリ・リスティングに含まれません。(これには、すべてがゼロバイトで構成され、スプラット・ファイルとして表示される空のディレクトリエントリも含まれます。)

- "<"

ファイルタイプの後の左向きの不等号("less than")は、ロックされたファイルを示します。

豆知識

PET 2001のBASIC 1のROMには、IEEE-488/GPIBプロトコルに準拠していない、非標準で未完成に近いLOADおよびSAVEルーチンが含まれていただけでなく、後継のCommodore BASICのようにプログラムのロードアドレスをディスクに書き込むこともありませんでした。むしろ、ロードアドレスは暗黙的に$400であると想定されており、BASICプログラムをリリンクすることなく、無条件にそのアドレスへロードしていました。(このCommodoreプログラムファイルの顕著な特徴は、VIC-20/VIC-1001の開発中に、BASICプログラムの再配置の必要性が明らかになったことで導入されました。同様に、PETの後のバージョンのBASICでは「LOAD\"*\",8,1」のようにセカンダリ・ロードアドレスが使用されますが、ここでは使用されません。プログラムは常に指定されたロードアドレスにロードされ、それがBASICの開始アドレスと一致した場合にはリリンクされます。)BASICの開始アドレスは、PETのROMの後のリビジョンと同様に$401であり、その結果、プログラムの先頭には必須のゼロバイトが含まれていました。さらに、プログラムの実際の末尾の後には、ファイルサイズを1バイト増やすための追加のバイト(多くの場合$24)が格納されていました。これらのプログラムの一部は、適切なロードアドレス$400が(おそらく何らかの移行プログラムによって)付与された状態で、現在もディスクイメージに残っていることがあります。

このようなディスクイメージの例は、こちらで確認できます:PETGMS08.D64。

免責事項

本ソフトウェアは、無償で「現状渡し」として提供されます。いかなる保証や担保も提供されず、すべての責任は否認されます。使用は自己責任で行ってください。

プログラム/ツールは完全にブラウザ内でローカルに実行され、その他の情報がアップロードまたは送信されることはありません。

これは完全にゼロからの独立した実装です(元々はPET 20食エミュレータ用のツールとして考案されたもので、間もなくそちらでも利用可能になる予定です)。

制作過程においてAIは一切使用していません。

原文(英語)を表示

Side A: Disk Image Inspector

Use the file upload button or drag & drop to mount an image file of a Commodore 8-bit 5¼" floppy disk.

Inside the disk inspector, click items to select and interact. Use the context menu to copy any data or to extract and download files. You can also use the context menu to navigate around.

(Accepted formats: D64, D80, D82)

Nothing to play with? Try here (auto-loads the disk image "PETGMS08.D64".)

Side B: Disk Image Composer

Click the button to open a wizard to compose and download a 35-track D64 disk image.

(In order to put any trailing white space at the very end of a file name, e.g., for decorative purposes, put a single double-quote character at the very end. Double-quotes are illegal characters in file names and not allowed anywhere else. In fact, these will end the file name prematurely. This very last one will be preserved, though, and only discarded, as the disk image is finalized.)

Notes

Supported Disk Image Formats

- D64

- Standard 35-track format, as used by the Commodore 2032, 4040, 1540, 1541, 1551 drives.

(Within certain limitations this includes the 2031 drive, which uses the same format, but doesn't store a valid Disk ID or a Disk DOS Version tag in the header block.)

40-track extensions by Dolphin-DOS, SpeedDOS, or PrologicDOS should be recognized, as well.

Non-standard 41/42 track extensions are recognized, if there is a reference to any such track either in the directory or in the sector links of a loadable file. - D80

- The 77-track format of the Commodore 8050 drive for the Commodore PET.

- D82

- The 154-track format of the Commodore 8250 double-sided drive for the Commodore PET.

(Also used by the similar SFD-1001 and the 8250LP.)

These disk image formats mirror the raw data on the disk, less any of the low-level sytstem information like sync-marks or checksums. This is optionally followed by additional block error information (AKA error bytes), one byte per block. (Since there is no special header, there is no obvious indication of the file format, other than the file extension and typical file sizes.)

Supported File Formats (by File Extension)

Internal type code on the drive: 2, listed as "PRG".

Internal type code: 1, listed as "SEQ".

Here, USR-files are handled exactly like SEQ-files.

Internal type code: 3, listed as "USR".

Relative files of a fixed record size (up to 720 records of a record size of up to 254 bytes).

Here, a REL-file is headed by the record size given in the first byte, followed by the sequential data stream. (I'm not aware of a well-documented, generic export format for REL-files. The format chosen follows the example of the PRG format and may have already been implemented elsewhere as the logical choice. For a standard solution see the P00-format, which explicitly includes an applicable record size.)

On disk, a REL-file consists of a sequential data stream and a chain of up to 6 so-called side sectors. These side sectors include a reference to the very disk block (by track and sector), the start of any record is located in, as well as links to any further of the up to 6 side sectors (including itself). Thus, with the current side sector already held in a buffer, any record may be accessed with a minimum amount of disk reads, as the position within a block can be derived from the fixed record size by simple calculations. Since there are 120 possible references in any side sector, this system also provides the maximum record number of 720 possible records per file. (Mind that opening a REL-file also allocates additional disk buffers and thus limits the number of concurrently opened files.)

Side sector information is not only entirely separate from the actual file data, it is also specific to the disk and its block allocation and meaningless outside this very specific context. Therefore, it is neither exported, nor expected on inport. The only information required to make this portable is the record size, which is stored along other basic information in the directory entry of the file.

While REL-files worked fine on the PET and its related IEEE-488 drives, there were reported issues with this file type on the 1471, leading to corrupted side sector information, for which it is seldom found in C64-context. (Since the side sector information isn't required for a sequential read-out, these files should be still accessible and exportable in and by the disk inspector.)

Internal type code: 4, listed as "REL".

Here, it is not possible to import or export a DEL-file, but you can create a (decorative) DEL-file in the D64 Composer.

Internal type code: 0, listed as "DEL".

File extensions provide by convention the file type in the first letter, followed by two figures (00…99).

(I.e., files with extensions "

.Pnn

", ".Snn

", ".Unn

", and ".Rnn

".)Here, for the purpose of the D64 Composer, the REL type is enforced whenever a non-zero record size is found in the header information, regardless of the type hinted at in the file extension.

Special Marks in Commodore Directory Listings

- "*"

- An asterisk before the file type (also known as "splat") indicates a file that wasn't closed properly. Since crucial information for the directory and in the BAM is only updated on the disk on CLOSE, these files are not loadable. "Splat files" are not included in the directory listing by default. (This includes any empty directory entries, consisting of all zero-bytes, which would also show up as "splat files".)

- "<"

- An angle bracket pointing to the left ("less than") after the file type indicates a locked file.

Fun Fact

The ROM for BASIC 1 on the PET 2001 didn't only feature non-standard and somewhat unfinished routines for LOAD and SAVE, non-compliant with IEEEE-488/GPIB protocol, it also didn't write the load address of any program to disk, like later versions of Commodore BASIC did. Rather, it implicitly assumed a load address of $400

and loaded unconditionally to that address, without relinking any BASIC programs. (This prominent feature of Commodore program files was only introduced as the VIC-20/VIC-1001 was in development and the need for relocating BASIC programs became apparent. Similarly, there is no secondary load address, as in “LOAD"*",8,1

”, used by any of the subsequent versions of BASIC on the PET: programs are always loaded to the provided load address, and relinked, if this also happens to be the BASIC start address.) The BASIC start address was still $401

, like with later revisions of the PET's ROMs, and programs were consequently headed by a mandatory zero-byte. Moreover, an extra byte (often $24

) was stored after the actual end of the program, extending the file size by 1. Some of these programs can be still found on disk images, with an appropriate load address of $400

, probably added by some kind of migration program.

You can inspect an example of such a disk image here: PETGMS08.D64.

Disclaimer

This is free software provided for free and as-is. Now warranties or guarantees given, all liabilities denied, use at your own risk.

The programs/tools run entirely locally in your browser, no information is uploaded or transmitted otherwise.

This is an entirely independent implementation from scratch (originally devised as tools for the PET 2001 emulator, where they should show up soon).

No AI was involved at any point.

← 一覧に戻る