2018年06月07日

P6のフロッピー関連まとめ(4)

  P6月間企画...そろそろ息切れ?(その7)


4.P6でよく使用されている内部フォーマットについて

 P6の場合、内蔵/外付ドライブや、外付ドライブの種類の違いなどがあるため、特殊なフォーマットが使われる事があまりありません。

 よく使われているフォーマットは以下の通りです(P6の説明書に書かれているものです)。

 1D:
  トラック#0〜#39(片面使用で、シリンダ番号#0〜#39を使用)
  1トラック=セクタ#1〜#16の16セクタ
  1セクタ=256バイト

  BASICでは、トラック#0〜#34しか扱えないようです。


 1DD:
  トラック#0〜#79(片面使用で、シリンダ番号#0〜#79を使用)
  1トラック=セクタ#1〜#16の16セクタ
  1セクタ=256バイト


 2D:
  トラック#0〜#79(両面使用で、シリンダ番号#0〜#39を使用)
  1トラック=セクタ#1〜#16の16セクタ
  1セクタ=256バイト



 前述の通り、トラック#0セクタ#1は起動時に読み込まれて、その内容が実行されます。

 また、BASICでは、以下のような割り当てがされています。

 1D:
  トラック#18セクタ# 1〜#12:ディレクトリ(ファイル名などが格納されている)
  トラック#18セクタ#13 :ID(属性)
  トラック#18セクタ#14〜#16:FAT(クラスタの使用状態が格納されている)

 1DD/2D:
  トラック#37セクタ# 1〜#12:ディレクトリ
  トラック#37セクタ#13 :ID
  トラック#37セクタ#14〜#16:FAT

 それ以外の部分はユーザ領域として、ファイル本体が格納されます。


 他のページでも説明されているので、そちらも参考にして下さい。
http://p6ers.net/hashi/floppy.html
http://www.geocities.jp/submarine600/ (←ここの『落ちつく』の記事の一部)



5.P6でよく使用されている拡張子とデータ構造について

 P6のフロッピーデータをWindows上で扱う時のフォーマットの話です。

○ベタフォーマット(〜.dsk):
 いわゆるベタファイルです。

 トラック#0セクタ#1〜16
 トラック#1セクタ#1〜16
  :
 トラック#79セクタ#1〜16 (1Dの場合、トラック#39)

 の順で、各セクタのデータ部分のみを連結したものです。

 そのため、ファイルサイズは、

 1D:256x16x40 = 163840バイト(0x28000バイト)
 1DD/2D:256x16x80 = 327680バイト(0x50000バイト)

 になります。


○P31フォーマット(〜.P31):
 SD6031/SD6031WIFで使用されているフォーマットです。
 SDカードにアクセスする際に、簡単にアクセスできるように、1セクタ=512バイトにしています。
 0x00で埋めている部分は使用してませんので、実際には何でも構いません。

 1DD/2D:
  それぞれの1セクタ256バイトの後に、0x00を256バイト続けます。

  トラック#0セクタ#1(256バイト)
  0x00 ×256バイト
  トラック#0セクタ#2(256バイト)
  0x00 ×256バイト
  :
  トラック#79セクタ#16(256バイト)
  0x00 ×256バイト


 1D:
  それぞれの1セクタ256バイトの後に、0x00を256バイト続けます。
  さらに1トラックの後に、0x00を4096バイト続けます。
  (1DD/2Dで奇数トラックに当たる部分をベタ0x00にしています)

  トラック#0セクタ#1(256バイト)
  0x00 ×256バイト
  トラック#0セクタ#2(256バイト)
  0x00 ×256バイト
  :
  トラック#0セクタ#16(256バイト)
  0x00 ×256バイト
  0x00 ×4096バイト
  トラック#1セクタ#1(256バイト)
  0x00 ×256バイト
  :
  トラック#1セクタ#16(256バイト)
  0x00 ×256バイト
  0x00 ×4096バイト
  :
  トラック#39セクタ#16(256バイト)
  0x00 ×256バイト
  0x00 ×4096バイト


 ファイルサイズは、1D、1DD/2Dとも、655360バイト(0xa0000バイト)になります。



○D88フォーマット(〜.d88):
 業界(?)標準のフォーマットです。
 元々、PC-8801用エミュレータのフォーマットのようです。
 トラック数、セクタ数が固定ではないものを対応するために、ヘッダにそれぞれのトラック先頭の場所が書かれています。さらに、それぞれのセクタ先頭に、そのトラック内のセクタ数やCHRN(シリンダ番号、ヘッダ番号、セクタ番号、セクタ長)が書かれています。

 標準的に使用されているため、実フロッピーとのやり取りなどのツールもあります。


 詳しくは、他のページで説明されているので、そちらを参考にして下さい。
http://papicom.net/p6v/tech.html
http://www.geocities.jp/submarine600/ (←ここの『落ちつく』の記事の一部)



○それぞれの変換ツール

 D88、P31相互変換
http://tulip-house.ddo.jp/digital/SD6031/index.html

 D88、DSK相互変換
http://p6ers.net/bernie/develop/d88todsk.html

 D88作成
http://www.geocities.jp/submarine600/ (←ここの『R&D』の『PC-6000 シリーズ用 D88 ディスクイメージ書き込みツール』)

 また、拙作のPC-8801から変換するソフトの中に、d88todsk、d88todsk1dd、などがありますが、これはD88ファイルの任意のトラック、セクタからデータを抜き出すソフトです。


posted by えすび at 21:00| Comment(0) | P6解析:FDC周り | このブログの読者になる | 更新情報をチェックする