==============================================================================
    L3 Disk Explorer
                                                              Version 0.8.0
                                                                2025/11/01

                            Copyright(C) Sasaji 2015-2025 All Rights Reserved.
==============================================================================

● はじめに

    このソフトは、レトロPC用に作成されたフロッピーディスクイメージ内部の
  ファイルにアクセスするためのアプリケーションです。

    現在対応しているファイルシステムは、
  ・日立 LEVEL-3 DISK BASIC / S1 DISK BASIC
  ・富士通 F-BASIC
  ・NEC N88-BASIC / N66-BASIC
  ・MSX-BASIC / MSX-DOS
  ・MS-DOS FAT12 (PC-9801/PC-AT/FM TOWNS/FMR)
  ・シャープ X1 Hu-BASIC / MZ Hu-BASIC / S-OS SWORD
  ・シャープ MZ S-BASIC系
  ・シャープ MZ Floppy DOS
  ・シャープ X68000 Human68k (FAT12)
  ・東芝 パソピア T-BASIC
  ・ソニー SMC-777 Sony Filer
  ・カシオ FP-1100 C82-BASIC
  ・FLEX
  ・OS-9 Level I/II
  ・CP/M Ver.2.2
  ・Apple DOS 3.3
  ・Apple ProDOS 8/16
  ・Apple Macintosh HFS (※読み出しのみ)
  ・Commodore 1541 DOS (Commodore 64)
  ・Commodore Amiga DOS / AROS
  ・ソード M68 KDOS (FDOS)
  ・Tandy TRSDOS 2.3 / 1.3
  ・TF-DOS
  ・キャリーラボ C-DOS
  ・キャリーラボ CDOS II
  ・システムソフト PC-8001用 PC-DOS
  ・X-DOS
  ・Frost-DOS
  ・Magical DOS
  ・S-DOS / Sn88-DOS
  ・L-os Angeles
  ・MDOS

  ※ 一部制限があります。詳細はDiskBasicSpec.txtを参照ください。

------------------------------------------------------------------------------

【目次】

  ● 動作確認環境
  ● インストール
  ● アンインストール
  ● 画面の説明
  ● メニュー説明
      ○「ファイル」メニュー
      ○「データ」メニュー
      ○「モード」メニュー
      ○「表示」メニュー
  ● ポップアップメニュー説明
      ○ ディスクイメージ一覧(画面(1))のポップアップメニュー説明
      ○ DISK BASIC内部ファイル一覧(画面(4))のポップアップメニュー説明
      ○ トラック一覧(画面(6))のポップアップメニュー説明
      ○ セクタ一覧(画面(7))のポップアップメニュー説明
  ● ダイアログの説明
      ○ 設定ダイアログの説明
      ○ 新規作成、新規ディスク追加時のダイアログの説明
      ○ ディスクデータ置換時のダイアログの説明
      ○ BASICファイルインポート時、プロパティダイアログの説明
      ○ BASIC情報ダイアログについての説明
      ○ BASIC変更ダイアログについての説明
      ○ トラックプロパティダイアログの説明
      ○ セクタプロパティダイアログの説明
      ○ トラックエクスポート/インポート時のダイアログの説明
  ● ダンプビューウィンドウについての説明
  ● 使用状況ウィンドウについての説明
  ● ログウィンドウについての説明
  ● キャラクターコードについて
  ● 各操作を行ったときの内部動作について
      ○ ファイルの「コピー」「ドラッグ」
      ○ ファイルの「ペースト」「ドロップ」
      ○ ファイルの「インポート」
      ○ ファイルの「編集」
  ● 特記事項
  ● 開発環境
  ● 謝辞
  ● 参考文献
  ● クレジット
  ● 免責事項

------------------------------------------------------------------------------

● 動作確認環境

  ◆Windows ... Windows11 (AMD 64bit) / Windows10 (Intel)
  ◆MacOS ..... Sequoia (15.6.1) (Apple Silicon)
                High Sierra (10.13.6) (Intel 64bit)

------------------------------------------------------------------------------

● インストール

  ◆Windows版

  1. l3diskex_*.zipを解凍すると以下のファイルができます。

    l3diskex.exe   ... アプリケーション本体
    Readme.txt      ... このファイル
    ChangeLog.txt   ... 更新履歴
    DiskBasicSpec.txt ... 各OSごとの仕様
    data/           ... 変換用データファイル
    lang/           ... ローカライゼーション
      ja/           ... 日本語
        l3diskex.mo  ... 翻訳済みファイル

  2. l3diskex.exe、data/、lang/以下を適当なフォルダにコピーしてください。

  【注意】システムやprogram filesフォルダにはコピーしないでください。

  3. l3diskex.exeを実行します。

  実行時に、VC++ 2010 RUNTIMEのインストールが必要になるかもしれません。
  詳細はマイクロソフトのページで検索してください。

  ◆MacOSX版

  1. l3diskex_*.dmgを解凍すると以下のファイルができます。

    l3diskex.app/  ... アプリケーションフォルダ
      Contents/
        MacOS/
          l3diskex ... アプリケーション本体
        Resources/  ... リソース
          data/     ... 変換用データファイル
          lang/     ... ローカライゼーション
            ja/     ... 日本語
              l3diskex.mo... 翻訳済みファイル
    Readme.txt      ... このファイル
    ChangeLog.txt   ... 更新履歴
    DiskBasicSpec.txt ... 各OSごとの仕様

  2. l3diskex.app/を適当なフォルダにコピーしてください。

  【注意】システムやアプリケーションフォルダにはコピーしないでください。

  3. l3diskex.app/をクリックして実行します。

  ■実行すると、同じフォルダに設定ファイル(l3diskex.ini)およびログファイル(
    l3diskex.log)が作成されます。

------------------------------------------------------------------------------

● アンインストール

  インストールしたフォルダを削除してください。
  （レジストリは使用していません。）



******************************************************************************
● 画面の説明
******************************************************************************

  モードによって表示される情報が変わります。モードはメニューから変更できます。

  (a) BASICモード
  +------------------------------------------------------------------------+
  |(1)イメージファイル  |(2)選択したディスクイメージの情報                 |
  | + ディスク１        +--------------------------------------------------+
  | + ディスク２        |(3)DISK BASIC の情報                              |
  | +   :               +--------------------------------------------------+
  |                     |(4)DISK BASIC 内部の                              |
  |                     |   ファイル一覧                                   |
  |                     |                                                  |
  |                     |                                                  |
  +------------------------------------------------------------------------+

  (b) 生ディスクモード
  +------------------------------------------------------------------------+
  |(1)イメージファイル  |(2)選択したディスクイメージの情報                 |
  | + ディスク１        +--------------------------------------------------+
  | + ディスク２        |(6)トラック |(7)セクタ        |                   |
  | +   :               |   一覧     |   一覧          |                   |
  |                     |            |                 |                   |
  |                     |            |                 |                   |
  |                     |            |                 |                   |
  |                     |            |                 |                   |
  +------------------------------------------------------------------------+

  (1)イメージファイル

    開いているディスクイメージファイルとその内部に含まれるディスクイメージを
   ツリー形式で表示します。

    ディスク名の部分をダブルクリックすると名称を変更できます。

    ここにファイルをドロップするとファイルをディスクイメージとして開きます。

      ------------------------------------------------------------------

  (2)選択したディスクイメージの情報

    (1)で選択したディスクイメージのパラメータ（トラック数、セクタ数など）を
   表示します。
    また、メディアタイプ(2D,2DD,2HD)、書き込み禁止の選択ができます。
 
    「変更」ボタンを押すと、選択しているディスクの情報を表示します。また、
    変更することもできます。
        
    パラメータが意図したものと異なる場合は「変更」ボタンを押してなるべく近い
   ものを選んでください。
   
   【注意】ここで「変更」しても実際のトラックやセクタ構成、内容は変更
       されません。

      ------------------------------------------------------------------

  (3)DISK BASIC の情報

    (1)で選択したディスクイメージがDISK BASICでフォーマットされている場合に
   空き容量が表示されます。

   「変更」ボタンを押すと、選択しているディスクのBASIC / OS情報を表示します。
    また、DISK BASICの種類を変更することもできます。

   ■希望のDISK BASICが表示されない場合
   「変更」ボタンを押して希望のDISK BASICを選択しOKを押してください。

   ■希望のDISK BASICが一覧にない場合
    (2)のディスクイメージを変更してみてください。

     ディスク変更ダイアログにて、
     a)カテゴリから希望の機種やDISK BASICを選びます。
     b)ディスク候補から、セクタ数、セクタサイズが同じでトラック数が多いものを
       選びます。

   ■DISK BASICが解析エラーになりファイル一覧が表示されない場合
   「変更」ボタンを押し、ダイアログ左下にある「強引に開く」を試してみてください。
    解析中のエラーを無視して強引に開きます。

   【注意】強引に開くとファイル構成などが正しくないなどの弊害が発生します。
           この状態で書き込み操作を行うとディスクイメージ全体を破壊する可能性も
           あります。

   ■日本語BASICなど、ファイル名が正しく表示されない場合
     キャラクターコードを変更してみてください。

     詳細は「キャラクターコードについて」の頁を参照ください。

      ------------------------------------------------------------------

  (4)DISK BASIC 内部のファイル一覧

    (1)で選択したディスクイメージがDISK BASICでフォーマットされている場合に
   内部に含まれるファイル名を一覧に表示します。

  ●リスト上部のヘッダ
      クリックすると選択したカラムでソートします。
    （ソートに対応していないカラムもあります。）

      リスト上部のヘッダ部分を右クリックすると表示するカラムを選択できます。
    また、カラムの並びを変更することもできます。

  ●ファイルのインポート
      メニューの「インポート」でファイルを追加することができます。

  ●ファイルのエクスポート
      メニューの「エクスポート」でファイルを取り出すことができます。

  ●ドラッグ＆ドロップ、コピー＆ペースト
      ドラッグ＆ドロップやコピー＆ペーストで「インポート」「エクスポート」が
    できます。

  【注意】ドラッグやコピー操作を開始すると一時フォルダにファイルをエクスポート
      します。ディレクトリなどファイルが多い場合、処理に時間がかかりますので、
      この場合はメニューの「エクスポート」を使用してください。

  【注意】一時ファイルは本ソフト終了時に削除しますので、エクスプローラなどに
      ペーストする場合は本ソフトを終了させないでください。

  【注意】サンドボックス環境で使用する場合は、一時フォルダに書き込みできるよう
      にしてください。

  ●ファイルの複製
      ファイルをドラッグしてそのままドロップすることでできます。
    また、コピー＆ペーストすることでもできます。

  ●異なるディスクイメージ間でのコピー
      本アプリケーションをそれぞれ別に起動し、そのファイル一覧からドラッグし、
    もう一方のファイル一覧にドロップすることでコピーができます。
      また、コピー＆ペーストすることでもできます。

  ●セクタダンプ
      ファイルを選択すると最初のセクタデータがダンプウィンドウに表示されます。

  ●使用状況
      ファイルを選択すると使用状況ウィンドウに、占有しているグループを赤色で
    表示します。

      ------------------------------------------------------------------

  (6)トラック一覧

    (1)で選択したディスクイメージに含まれるトラックを一覧で表示します。

  ●リスト上部のヘッダ

    番号 ... ディスク内にあるトラックの順番 (*)
    トラック ... シリンダID(トラック番号)
    サイド ... ヘッドID(サイド番号)
    セクタ数 ... トラック内のセクタ数
    オフセット ... このトラックがディスクイメージ内に記録されている位置 (*)

    (* クリックするとソートできます。)

      ------------------------------------------------------------------

  (7)セクタ一覧

    (6)で選択したトラックに含まれるセクタを一覧で表示します。

    一覧を選択するとダンプがダンプウィンドウに表示されます。
    
  ●リスト上部のヘッダ

    番号 ... トラック内にあるセクタの順番 (*)
    C ... シリンダID(トラック)
    H ... ヘッドID(サイド)
    R ... レコードID(セクタ) (*)
    N ... セクタ数(0..128バイト、1..256バイト、2..512バイト、3..1024バイト)

    削除 ... 削除されたセクタ(Deleted Data Mark)だとマークが表示されます。
    単密度 ... セクタが単密度で記録されているとマークが表示されます。

    セクタ数 ..... このトラックに含まれるセクタの数です。

    ステータス ... このセクタのFDCステータスです。通常0です。
        ここは実機から取り込んだ際のFDC(uPD765)の実行結果になります。

    ディスク内CRC ... ディスク内に記録されているセクタデータのCRCを表示します。
        ここは、CRCを保持しているディスクイメージをインポートした時のみ表示
        されます。ベタディスクやd88形式はCRCを持っていないためここは表示され
        ません。

    計算したCRC ... セクタデータから計算したCRCを表示します。
        IBMフォーマットで採用されているCRC-CCITTで計算します。

    (* クリックするとソートできます。)


******************************************************************************
● メニュー説明
******************************************************************************

○「ファイル」メニュー

  「新規作成」 ............ ディスクイメージを新規作成します。
        ディスク種類については
      『新規作成、新規ディスク追加時のダイアログの説明』を参照してください。

  「開く」 ................ ディスクイメージファイルを開きます。
        サポートしているディスクイメージは：
          CPC DSK, CopyCQ, Teledisk TD0, Anex86 FDI, Virtual98 FDD,
          IMageDisk IMD, DSKSTR, VICE G64, Apple Disk Copy,
          HxC HFE, TRS-80 DMK, TRS-80 JV3, DIFC.X DIM,
          D88およびべた形式です。
        形式の判断は、拡張子で行います。

   -------------------------------------------------------------------------
   ■べた形式のディスクパラメータ候補について
   
       べた形式を開くと、ファイルサイズから計算したディスクパラメータの候補を
     表示しますので、適切なものを選んでください。

       候補は、ファイルサイズに一致するもの、さらにファイルサイズの倍に一致
     するものが表示されます。これは、例えば1Dのべたイメージに対して2Dを選択
     すると、おもて面のみにデータを展開して開く形になります。
   -------------------------------------------------------------------------

  「閉じる」 .............. ファイルを閉じます。

      ------------------------------------------------------------------

  「名前を付けて保存」..... ディスクイメージをファイルに保存します。
        サポートしているディスクイメージはD88およびべた形式です。
        形式の判断は、拡張子で行います。

   【注意】元ファイルへの上書き保存は推奨しません。

   【注意】「モード」->「未使用データを切り落とす」にチェックを入れていると
           ディスクイメージ内の使用していない領域は失われます。


  「ディスクを保存」....... ディスクイメージ一覧(画面(1))で選択している
        ディスクをファイルに保存します。

      ※AB面のあるイメージで、A面/B面を選択しているときは、その面だけのディスク
        イメージをファイルに保存します。

   【注意】「モード」->「未使用データを切り落とす」にチェックを入れていると
           ディスクイメージ内の使用していない領域は失われます。

      ------------------------------------------------------------------

  「ディスクを追加」サブメニュー
    「新規ディスク」....... 現在開いているディスクイメージに新規ディスクを
        追加します。
    「ファイルから」....... 現在開いているディスクイメージにディスクファイルを
        追加します。

      ------------------------------------------------------------------

  「ディスクデータを置換」... ディスクイメージ一覧(画面(1))で選択している
        ディスクの内容を別のディスクイメージの内容に置き換えます。

      ※AB面のあるイメージで、A面/B面を選択しているときは、その面だけのディスク
        イメージの内容を置き換えます。

      ------------------------------------------------------------------

  「ディスクを削除」....... ディスクイメージ一覧(画面(1))で選択している
        ディスクを削除します。

  「ディスク名を変更」..... ディスクイメージ一覧(画面(1))で選択している
        ディスクの名前を変更します。一覧のディスク名部分が編集できるように
        なります。

      ------------------------------------------------------------------

  「初期化」............... ディスクイメージ一覧(画面(1))で選択している
        ディスクを初期化します。すべての内容を削除し0x00で初期化します。
        トラックデータがない場合は、新規にトラックを作成します。

  「BASIC用にフォーマット」.. ディスクイメージ一覧(画面(1))で選択している
        ディスクをBASIC用にフォーマットします。すべての内容を削除しDISK BASICで
      使用できる形式にフォーマットします。

        該当するDISK BASICが一覧に表示されない場合は、ディスクパラメータを変更
      してください。

        OSの種類によっては、ボリューム名やボリューム番号の設定ができます。

   【注意】作成できるのはユーザディスクです。システムディスクを直接作成する
           ことはできません。

      ------------------------------------------------------------------

  「最近使用したファイル」.. 以前に開いたファイルを一覧で表示します。


  「終了」 ................ アプリケーションを終了します。
                            ※MacOSではアプリケーションメニューにあります。

------------------------------------------------------------------------------

○「データ」メニュー

  「エクスポート」 ........
        BASICモード時、DISK BASIC内部ファイル一覧(画面(4))の選択したファイルを
      取り出します。

        生ディスクモード時、トラックの内容を取り出します。


  「インポート」 ..........
        BASICモード時、ファイルをDISK BASIC内に取り込みます。

        生ディスクモード時、ファイルをトラックに取り込みます。

      ------------------------------------------------------------------

  「削除」 ................
        BASICモード時、DISK BASIC内部ファイル一覧(画面(4))の選択したファイルを
      削除します。

        生ディスクモード時、選択中のセクタを削除します。

      ------------------------------------------------------------------

  「ファイル名を変更」 ....
        BASICモード時、DISK BASIC内部ファイル一覧(画面(4))の選択したファイルの
      名前を変更します。一覧のファイル名部分が編集できるようになります。

        ※生ディスクモード時は無効です。

      ------------------------------------------------------------------

  「コピー」 ..............
        BASICモード時、DISK BASIC内部ファイル一覧(画面(4))の選択したファイルを
      クリップボードにコピーします。

        生ディスクモード時、選択中のトラックまたはセクタの内容をコピーします。


  「ペースト」 ............
        BASICモード時、クリップボード内のファイルをペーストします。

        生ディスクモード時、選択中のトラックにペーストします。

  【注意】ドラッグやコピー操作を開始すると一時フォルダにファイルをエクスポート
      します。ディレクトリなどファイルが多い場合、処理に時間がかかりますので、
      この場合はメニューの「エクスポート」を使用してください。

  【注意】一時ファイルは本ソフト終了時に削除しますので、エクスプローラなどに
      ペーストする場合は本ソフトを終了させないでください。

  【注意】サンドボックス環境で使用する場合は、一時フォルダに書き込みできる
      ようにしてください。

      ------------------------------------------------------------------

  「バイナリエディタで編集」... 選択したファイルをバイナリエディタで編集します。
  「テキストエディタで編集」... 選択したファイルをテキストエディタで編集します。
      外部のエディタを起動します。
      エディタで保存し終了させると、内容がファイルに反映されます。
      エディタは「設定ダイアログ」にて予め指定しておいてください。

      ------------------------------------------------------------------

  「ディレクトリを作成」 ...
        サブディレクトリを新規に作成します。（対応しているDISK BASICのみ）
        「日付を無視する。」にチェックを入れると、日付フィールドを設定しません。

       ※生ディスクモード時は無効です。

      ------------------------------------------------------------------

  「プロパティ」 ..........
        フォーカスのあたっているウィンドウによって動作が変わります。
        
        イメージファイル(画面(1))のディスクイメージを選択しているとき、
      ディスクパラメータ情報を表示します。
  
        BASICモード、ファイル一覧(画面(4))を選択しているとき、
      DISK BASIC内部ファイルの情報を表示します。

        生ディスクモード、トラック一覧(画面(6))を選択しているとき、
      トラックの情報を表示します。
      
        生ディスクモード、セクタ一覧(画面(7))を選択しているとき、
      セクタの情報を表示します。


------------------------------------------------------------------------------

○「モード」メニュー

  「BASICモード」 ......... BASICモードにします。

  「生ディスクモード」 .... 生ディスクモードにします。

  「キャラクターコード」... ファイル名の文字コードを指定します。

     詳細は「キャラクターコードについて」の頁を参照ください。

  「クイック設定」 ........ 動作に関する設定項目
 
    「ディスクイメージ保存時に未使用データを切り落とす。」...
      ここをチェックすると、ディスクイメージ保存時に未使用部分を取り除きます。

    「削除した＆隠されたファイルをファイルリストに表示する。」...
      ここをチェックすると、ディレクトリ内の全てのエントリをファイルリストに
      表示します。

  「設定」 ................ 設定ダイアログを表示します。

------------------------------------------------------------------------------

○「表示」メニュー

  「ダンプウィンドウ」 .... バイナリダンプウィンドウを表示します。

      ウィンドウ表示中に、以下の操作を行うとダンプが出力されます。
      ・DISK BASIC 内部のファイル一覧を選択した時。
      ・プロパティダイアログで占有グループ一覧を選択した時。
      ・生ディスクモードでセクタ一覧を選択した時。

      ダンプリストは編集できません。

  「使用状況ウィンドウ」... ディスクの使用状況を表示します。

  「ログウィンドウ」....... ログを表示します。

  「ファイルリストの列」... ファイル一覧のカラムを表示を切り替えたり、
                            並び替えを行えるダイアログを表示します。

  「ファイルリストの幅をリセット」... ファイル一覧のカラム幅を初期状態に
                            戻します。

  「フォント」 ............ リストウィンドウのフォントを変更します。



******************************************************************************
● ポップアップメニュー説明
******************************************************************************

○ ディスクイメージ一覧(画面(1))のポップアップメニュー説明

  「ディスクを保存」....... 選択しているディスクをファイルに保存します。
                            詳細は「ファイル」メニューの頁を参照ください。

      ------------------------------------------------------------------

  「ディスクを追加」サブメニュー
    「新規ディスク」....... 現在開いているディスクイメージに新規ディスクを
                            追加します。
    「ファイルから」....... 現在開いているディスクイメージにディスクファイルを
                            追加します。

      ------------------------------------------------------------------

  「ディスクデータを置換」... 選択しているディスクの内容を別のディスク
                            詳細は「ファイル」メニューの頁を参照ください。

      ------------------------------------------------------------------

  「ディスクを削除」....... 選択しているディスクを削除します。

  「ディスク名を変更」..... 選択しているディスクの名前を変更します。

      ------------------------------------------------------------------

  「初期化」............... 選択しているディスクを初期化します。
                            詳細は「ファイル」メニューの頁を参照ください。

  「BASIC用にフォーマット」... ディスクをBASIC用にフォーマットします。
                            詳細は「ファイル」メニューの頁を参照ください。

      ------------------------------------------------------------------

  「ディスク情報」......... 選択しているディスクの情報を表示します。

  「BASIC情報」............ 選択しているディスクのBASIC / OS情報を表示します。
                            一部OSでは、ラベル名の編集ができます。


------------------------------------------------------------------------------

○ DISK BASIC内部ファイル一覧(画面(4))のポップアップメニュー説明

  「エクスポート」 ........ 選択したファイルを取り出します。

  「インポート」 .......... ファイルをDISK BASIC内に取り込みます。

  「削除」 ................ 選択したファイルを削除します。

  「名前を変更」 .......... 選択したファイルの名前を変更します。

  「コピー」 .............. 選択したファイルをクリップボードにコピーします。

  「ペースト」 ............ クリップボード内のファイルをペーストします。

   【注意】コピー時に一時ファイルを作成します。
        一時ファイルはこのソフト終了時に削除しますので、エクスプローラなどに
        ペーストする場合は本ソフトを終了させないでください。

        サンドボックス環境で使用する場合は、一時フォルダに書き込みできる
        ようにしてください。

  「バイナリエディタで編集」... 選択したファイルをバイナリエディタで編集します。
  「テキストエディタで編集」... 選択したファイルをテキストエディタで編集します。
      外部のエディタを起動します。
      エディタで保存し終了させると、内容がファイルに反映されます。
      エディタは「設定ダイアログ」にて予め指定しておいてください。

  「ディレクトリを作成」... サブディレクトリを新規に作成します。
                            （対応しているDISK BASIC / OSのみ）

  「プロパティ」 .......... 選択したファイルの情報を表示します。

      ------------------------------------------------------------------

  ◇ リストの一番上では以下のポップアップメニューになります。

  「ファイルリストの列」... ファイル一覧のカラムを表示を切り替えたり、
                            並び替えを行えるダイアログを表示します。

  「ファイルリストの幅をリセット」... ファイル一覧のカラム幅を初期状態に
                            戻します。


------------------------------------------------------------------------------

○ トラック一覧(画面(6))のポップアップメニュー説明

  「入出力時の振る舞い」... インポート、エクスポート時の振る舞いを選択します。

    「データを反転する。」... データを反転します。
    「サイド番号を降順にする。」...
                            複数のトラックにまたがる場合、サイド番号を
                            1 -> 0の順序にします。

      ------------------------------------------------------------------

  「トラックをエクスポート」... トラックの内容を取り出します。
       開始セクタと終了セクタを指定してください。指定したセクタデータを結合し
     １つのファイルに出力します。

  「インポート」 .......... ファイルをトラックに取り込みます。
       開始セクタと終了セクタの範囲で順にファイルのデータを取り込みます。
       ファイル名に「XX-XX-XX--XX-XX-XX」(Xは数値)が含まれている場合は、これを
     開始セクタと終了セクタのパラメータに反映します。

     上記「入出力時の振る舞い」にてチェックした内容で取り込みます。

      ------------------------------------------------------------------

  「このディスクのHを一括変更」.. ディスクのすべてのヘッドIDを変更します。

  「このディスクのNを一括変更」.. ディスクのすべてのセクタサイズを変更します。

  「このディスクの密度を一括変更」.. ディスクのすべての密度を変更します。

  「偶数トラックのHを一括変更」.. 偶数トラックのヘッドIDを変更します。

  「奇数トラックのHを一括変更」.. 奇数トラックのヘッドIDを変更します。

  「このトラックのCを一括変更」.. 選択したトラックのすべてのシリンダIDを
                                  変更します。
  「このトラックのHを一括変更」.. 選択したトラックのすべてのヘッドIDを
                                  変更します。
  「このトラックのNを一括変更」.. 選択したトラックのすべてのレコードIDを
                                  変更します。
  「このトラックの密度を一括変更」...
                                  選択したトラックのすべての密度を変更します。
  「このトラックのセクタ数を一括変更」...
                                  選択したトラックのすべてのセクタ数を
                                  変更します。

      ------------------------------------------------------------------

  「新規トラックを追加」... 新規にトラックを追加します。
                            セクタは、このディスク内でよく使われている
                            パラメータで作成します。

  「現在のトラック以下を一括削除」...
                            選択したトラック以下のすべてのトラックを
                            削除します。

      ------------------------------------------------------------------

  「プロパティ」 .......... 選択したトラックの情報を表示します。
      詳細は『トラックプロパティダイアログの説明』を参照ください。


------------------------------------------------------------------------------

○ セクタ一覧(画面(7))のポップアップメニュー説明

  「入出力時の振る舞い」... インポート、エクスポート時の振る舞いを選択します。

    「データを反転する。」... データを反転します。

      ------------------------------------------------------------------

  「セクタをエクスポート」... 選択したセクタのデータを取り出します。

     上記「入出力時の振る舞い」にてチェックした内容で取り出します。

  「インポート」 .......... データをトラックに取り込みます。
       開始セクタと終了セクタの範囲で順にファイルのデータを取り込みます。

       ファイル名に「XX-XX-XX--XX-XX-XX」(Xは数値)が含まれている場合は、これを
     開始セクタと終了セクタのパラメータに反映します。

     上記「入出力時の振る舞い」にてチェックした内容で取り込みます。

      ------------------------------------------------------------------

  「このトラックのCを一括変更」.. このトラックのすべてのシリンダIDを
                                  変更します。
  「このトラックのHを一括変更」.. このトラックのすべてのヘッドIDを
                                  変更します。
  「このトラックのNを一括変更」.. このトラックのすべてのレコードIDを
                                  変更します。
  「このトラックの密度を一括変更」.. このトラックのすべての密度を変更します。

  「このトラックのセクタ数を一括変更」...
       選択したトラックのすべてのセクタ数を変更します。

      ------------------------------------------------------------------

  「新規セクタを追加」..... セクタを追加します。

  「現在のセクタを削除」... 選択したセクタを削除します。

  「現在のセクタ番号以上のセクタを一括削除」...
       選択したセクタのセクタ番号以上のセクタをすべて削除します。

      ------------------------------------------------------------------

  「現在のセクタを編集」... 選択したセクタを編集します。
      外部のバイナリエディタを起動します。
      バイナリエディタで保存し終了させると、保存内容がセクタに反映されます。
      バイナリエディタは「設定ダイアログ」にて予め指定しておいてください。

    【注意】エディタ起動中、本アプリケーションの操作はできません。

      ------------------------------------------------------------------

  「プロパティ」 .......... 選択したセクタの情報を表示します。
      詳細は『セクタプロパティダイアログの説明』を参照ください。



******************************************************************************
● ダイアログの説明
******************************************************************************

○ 設定ダイアログの説明

  【一般設定】

  ディスクイメージ保存時に未使用データを切り落とす。...
      ここをチェックすると、ディスクイメージ保存時に未使用部分を取り除きます。

  削除した＆隠されたファイルをファイルリストに表示する。...
      ここをチェックすると、ディレクトリ内の全てのエントリをファイルリストに
    表示します。

  プロパティダイアログに内部ディレクトリ情報を表示する。...
      ここをチェックすると、プロパティダイアログに内部ディレクトリの情報を
    表示します。

  一度に処理できるサブディレクトリの深さ ...
      インポートやエキスポートで一度に扱えるディレクトリの深さを指定します。

  言語(Language) ...
      メニューなどの表示言語を設定します。設定を反映させるにはこのアプリを再起動
    する必要があります。
    ・System Dependent ... システムの言語設定に従います。
                           なお現状、日本語のみ対応しています。
    ・不明(Unknown) ...... 表示言語の変換を行いません。英語になります。
    ・ja ................. 表示言語を日本語にします。システム側で対応して
                           いないと表示されません。
      jaが一覧に表示されない場合、一度System Dependentを選択して再起動して
    してください。

  【エクスポート】

    属性から適した拡張子をファイル名に追加する。...
        例1：BASICファイル"ABCDE" -> "ABCDE.BAS"としてエクスポート。
        例2：BASICファイル"ABC.UTL" -> "ABC.UTL.BAS"としてインポート。

    エクスポートしたファイルに現在日付を設定する。...
      チェックを入れると、元ファイルの日付を無視します。
      チェックを外すと、エクスポートしたファイルに元ファイルの日付を設定
    します。

  【インポート】

    確認ダイアログを抑制する。...
      インポート時に表示されるダイアログを抑制します。

    拡張子で属性を決定できるときは、ファイル名から拡張子をとり除く。...
        例1："ABCDE.BAS" -> BASICファイル"ABCDE"としてインポート。
        例2："ABC.UTL.BAS" -> BASICファイル"ABC.UTL"としてインポート。
      拡張子を持つファイルシステムではとり除かずに設定します。
        例1："ABCDE.BAS" -> BASICファイル"ABCDE.BAS"としてインポート。
        例2："ABC.UTL.BAS" -> BASICファイル"ABC.UTL"としてインポート。

    インポートするファイルに現在日付を設定する。...
      チェックを入れると、確認ダイアログに現在日付を設定します。
      チェックを外すと、確認ダイアログに元ファイルの日付を設定します。

    インポートやプロパティ変更時に日時を無視する。...
      チェックを入れた場合は以下の動作になります：
        インポート時は、日付フィールドに初期値(通常0)を入れる。
        プロパティ変更時は、日付フィールドの更新は行わない。
      対応しているファイルシステム：
        MZ/X1 Hu-BASIC, S-OS Sword, MZ S-BASIC, MZ FDOS, CDOS, Apple ProDOS
        MS-DOSの場合は作成日付とアクセス日付のみ、更新日付は常に更新。

  【パス】

  一時フォルダのパス ......
      ドラッグやクリップボードにコピーする際に一時的に保存するフォルダを
    指定します。
 
  バイナリエディタのパス ...
  テキストエディタのパス ...
      データを直接編集する際に使用します。
    第１引数にファイル名を渡して起動します。
    ・エディタはGUIベースのアプリケーションを指定してください。
    ・空白を含む場合はダブルクオート(")で括ってください。

    参考：
    ・Windowsのバイナリエディタとしては、Bzがあります。
    ・MacOSXのバイナリエディタとしては、Hex Fiendがあります。
    ・MacOSXのアプリケーション指定方法
          open -a <アプリケーションフォルダ名>
      例: open -a TextEdit
          open -a "/Application/Hex Fiend.app"

  【検査】

  ディスクイメージを開くときに、各トラックのサイド番号をチェックする。...
    チェックを入れた場合はヘッドの位置(0か1)とディスク内に記録されたサイド
   番号(ID H)が一致しているかをチェックします。



------------------------------------------------------------------------------

○ 新規作成、新規ディスク追加時のダイアログの説明

  カテゴリ ........ 作成したいDISK BASICの種類を選択すると、テンプレートの
                    選択肢が絞り込まれます。

  テンプレート .... 作成したいディスクを選択してください。
                    選択すると、このテンプレート下にあるパラメータ入力部分に
                    反映されます。

     手動設定を選択した時は、トラック/サイド、サイド/ディスク、
    セクタ/トラック、バイト/セクタ、セクタ間隔、セクタ付番方法の
    各パラメータを入れてください。

  【注意】DISK BASIC用ディスクとして使用する場合は、テンプレートから選択して
          ください。

  単密度 .......... 単密度にするトラックを選択してください。

  ディスク名 ...... イメージ内部に保存する名前（数字アルファベット16文字まで）
  2D,2DD,2HD ...... メディアタイプ
  書き込み禁止 .... 禁止にする場合チェックを入れます。

  ※ 128バイト/セクタを選択した場合は全トラック単密度となります。
  ※ セクタ間隔(インターリーブ)はトラック内のセクタ番号の順序。
     例えばセクタ間隔3なら2つとばしでセクタ番号を付与していく。
     (1,7,12,2,8,13,3,...)
  ※ セクタ付番方法：
     各サイドごと ..... 各トラック・サイドごとに1から付番します（通常）
     各トラックごと ... 同じトラック内で通し番号になります。
                        FLEX用に使用する場合はこちらを選択してください。


------------------------------------------------------------------------------

○ ディスクデータ置換時のダイアログの説明

  置き換え元のディスク .... マルチボリュームの場合、対象となるディスクを選択
                            してください。
  ターゲットディスク ...... 置き換え先のディスクイメージ
  
  ※ 置き換えはなるべく同じパラメータのディスクで行ってください。


------------------------------------------------------------------------------

○ BASICファイルインポート時、プロパティダイアログの説明

  ディスクイメージ内のファイル名 ...
    数字アルファベット記号で指定します。
    ファイル名は、名前+"."+拡張子 となります。

  ※ 拡張子を区別するDISK BASICでは、"."で名前と拡張子を区別して保存します。
  ※ 拡張子を区別しないDISK BASICでは、"."を含めて保存されます。

  ファイル種類、データ種類 ...
    DISK BASICで想定していない組み合わせも設定できる場合があります。属性の設定は
  DISK BASICの仕様を理解したうえで行ってください。

  日付 ...
   「日付を無視する。」にチェックを入れると、日付フィールドを更新しません。

  ファイルサイズ ...
    ファイルサイズはDISK BASICの種類によってはセクタ境界で丸められます。

  占有しているグループ ...
    グループ数と、各グループを一覧に表示します。
    一覧を選択するとダンプがダンプウィンドウに表示されます。


------------------------------------------------------------------------------

○ BASIC情報ダイアログについての説明

  DISK BASIC / OSの各パラメータを表示します。

  使用サイド数 ............ BASIC/OSが使用するサイド数(片面、両面)です。
  使用トラック数 .......... BASIC/OSが使用するトラック数です。
  使用セクタ/トラック ..... BASIC/OSが使用するセクタ数です。
  最終グループ番号 ........ 最終グループ(クラスタ)番号です。
  使用可能サイズ .......... BASIC/OSで使用できるディスク容量です。
  使用可能グループ数 ...... BASIC/OSで使用できるグループ(クラスタ)数です。
  使用サイズ .............. 使用しているディスク容量です。
  使用グループ数 .......... 使用しているグループ(クラスタ)数です。
  空きサイズ .............. 使用できる残りディスク容量です。
  空きグループ数 .......... 使用できる残りグループ(クラスタ)数です。
  セクタサイズ/グループ ... 1グループあたりのサイズです。
  セクタ/グループ ......... セクタとグループの比率です。
  開始ディレクトリ ........ ルートディレクトリの開始セクタ位置です。
  最終ディレクトリ ........ ルートディレクトリの最終セクタ位置です。
  開始FAT ................. FATの開始セクタ位置です。
  最終FAT ................. FATの最終セクタ位置です。
  セクタ数/FAT ............ FAT1つあたりに占有するセクタ数です。
  FATの数 ................. FATの数です。

  ボリューム名 ............ 対応しているBASIC/OSで編集できます。
  ボリューム番号 .......... 対応しているBASIC/OSで編集できます。
  ボリューム日付 .......... 対応しているBASIC/OSで編集できます。


------------------------------------------------------------------------------

○ BASIC変更ダイアログについての説明

  DISK BASIC / OSを変更してOKボタンを押すと再解析を行います。
  「強引に開く」ボタンを押すと解析エラーを無視して強引に開きます。

------------------------------------------------------------------------------

○ トラックプロパティダイアログの説明

  トラック番号 .............. 通常、セクタのID Cです。
  セクタ番号 ................ 通常、表面が0、裏面が1となります。
                              セクタのID Hと一致しない場合もあります。
  オフセット ................ このディスクイメージ先頭からの位置
  セクタ数 .................. このトラックに含まれるセクタの数です。
  セクタの合計サイズ ........ セクタのヘッダ部分＋セクタサイズの合計です。
  余分なデータのサイズ ...... セクタではない未使用部分データのサイズです。
  このトラックの合計サイズ .. セクタの合計＋余分なデータ


------------------------------------------------------------------------------

○ セクタプロパティダイアログの説明

  C ... シリンダID(トラック)
  H ... ヘッドID(サイド)
  R ... レコードID(セクタ)
  N ... セクタ数(0..128バイト、1..256バイト、2..512バイト、3..1024バイト)

  削除マーク ... チェックするとこのセクタは無効になります。
  単密度 ....... 実際のフロッピーディスクに記録する場合必要になります。
        BML3MK5,MBS1エミュレータの動きには影響を与えません

  セクタ数 ..... このトラックに含まれるセクタの数です。同一トラック内ですべて
        同じ値にしておく必要があります。

  ステータス ... このセクタのFDCステータスです。通常は0にしてください。
        ここは通常、実機から取り込んだ際のFDC(uPD765)の実行結果を設定します。

  ディスク内CRC ... ディスク内に記録されているセクタデータのCRCを表示します。
        ここは、CRCを保持しているディスクイメージをインポートした時のみ表示
        されます。ベタディスクやd88形式はCRCを持っていないためここは表示され
        ません。

  計算したCRC ... セクタデータから計算したCRCを表示します。
        IBMフォーマットで採用されているCRC-CCITTで計算します。


------------------------------------------------------------------------------

○ トラックエクスポート/インポート時のダイアログの説明

  開始セクタ ... トラック番号(0～)、サイド番号(0～)、セクタ番号(1～)
  終了セクタ ... トラック番号(0～)、サイド番号(0～)、セクタ番号(1～)
    終了セクタは開始セクタより後ろになるように指定してください。
    複数トラックにまたがって指定できます。

  データを反転する。 ...... データを反転します。
  サイド番号を降順にする。. 複数のトラックにまたがる場合、サイド番号を
                            1 -> 0の順序にします。

  例）2Dのディスクイメージで
      開始セクタ [トラック1、サイド0、セクタ3]
      終了セクタ [トラック3、サイド0、セクタ2] と指定した場合、
     対象となる範囲は、
      トラック1、サイド0、セクタ3～最終セクタ
      トラック1、サイド1の全セクタ
      トラック2、サイド0の全セクタ
      トラック2、サイド1の全セクタ
      トラック3、サイド0のセクタ1～セクタ2
     の順番になります。

    「サイド番号を降順にする」にチェックを入れると、
      トラック1、サイド0、セクタ3～最終セクタ
      トラック2、サイド1の全セクタ
      トラック2、サイド0の全セクタ
      トラック3、サイド1の全セクタ
      トラック3、サイド0のセクタ1～セクタ2
     の順番になります。



******************************************************************************
● ダンプビューウィンドウについての説明
******************************************************************************

  以下の操作を行うとダンプが表示されます。
  ・ファイルリスト上でファイルを選択した時。
  ・セクタリスト上でセクタを選択した時。
  ・プロパティの占有しているグループの一覧を選択した時。

  バイナリ ... バイナリダンプを行います。

  テキスト ... テキストでダンプを行います。

  キャラクターコード ...
    ・アスキー  ... 通常はこちら。
    ・シフトJIS ... 日本語BASICなどではこちらを選択すると漢字が表示されます。

  データを反転する ...
      MZ系では、記録されている内容が反転されているため、ここをチェックして
    ください。

   【注意】ダンプリストの編集は出来ません。



******************************************************************************
● 使用状況ウィンドウについての説明
******************************************************************************

  ディスク(FATあるいは論理セクタ)の使用状況を表示します。

  1マスが1グループ（クラスタ）に対応しています。表示色の意味は以下のとおり：
    水色 ...... 使用中
    白色 ...... 空き
    濃い灰色 .. システムで予約
    緑色 ...... 1ファイルの最初のグループ(表示されない場合もあります。)
    青色 ...... 1ファイルの最後のグループ(表示されない場合もあります。)
    薄い水色 .. 使用していないが占有している（ゴミ）
    薄い灰色 .. 使用不可
    赤色 ...... 選択中ファイル



******************************************************************************
● ログウィンドウについての説明
******************************************************************************

  「更新」ボタンを押すとログを表示します。



******************************************************************************
● キャラクターコードについて
******************************************************************************

    ディスク内部に記録されているファイル名を選択したキャラクターコードで変換
  します。
    また、入力したファイル名をディスク記録用に変換する際にも使用します。

  変換規則は以下の通り：

  アスキー・カタ・ひら .... ディスク内部の半角カタカナ・ひらがなを全角に変換。
                            入力時は、全角カタカナ・ひらがなを半角に変換。
                            L3やMSXで使用されているコード体系。

  シフトJIS ............... ディスク内部をシフトJISコードとみなして変換。

  xx記号 .................. 半角カタカナを全角に、記号を近い文字で変換。
                            入力時は、全角カタカナを半角に変換。
    xxの意味は以下の通り。
    L3 ... 日立ベーシックマスターLEVEL3/MB-S1
    FM ... 富士通FM-8/7/77
    X1 ... シャープX1
    MZ ... シャープMZ-80B



******************************************************************************
● 各操作を行ったときの内部動作について
******************************************************************************

○ ファイルの「コピー」「ドラッグ」

    テンポラリフォルダにxxxx.tmpフォルダを作成し、サブフォルダDataとAttrを作成
  します。
    ファイル本体はDataフォルダに出力します。
    ファイル属性はAttrフォルダにxmlファイルで出力します。

------------------------------------------------------------------------------

○ ファイルの「ペースト」「ドロップ」

    本ソフト間でファイルをやり取りする場合はファイル属性も反映されます。

------------------------------------------------------------------------------

○ ファイルの「インポート」

    ファイルシステム内に同じファイル名がある時、既存ファイルを削除してから
  新規に作成します。
    元ファイルと記録されるセクタが変わる場合があります。

------------------------------------------------------------------------------

○ ファイルの「編集」

    既存ファイルを削除してから新規に作成します。
    元ファイルと記録されるセクタが変わる場合があります。


******************************************************************************

● 特記事項

  ※Club09氏のS1エミュで使用する場合はディスク名を名前なしにしないと異常終了
    します。また、マルチボリュームのディスクは2HDとして認識しません。

------------------------------------------------------------------------------

● 開発環境

  Windows版: (CPU: Corei7 4770S 3.1GHz / Mem: 8GB)
    Microsoft Windows10 (64ビット環境)
      Microsoft Visual C++ 2010 Express Edition
      wxWidgets 3.2.4

  MacOS版: (Mac Mini CPU: M2 / Mem: 8GB)
    Mac OS Sequoia(15.6.1 Apple Silicon)
    Xcode 16 + wxWidgets 3.2.4

------------------------------------------------------------------------------

● 謝辞

  このソフトにつきましてご指摘、アドバイス、ご要望をいただきました、
  はせりんさま、かべきんさま、福井さま、
  ありがとうございます。おかげさまで品質向上に大いに役立っております。
  この場を借りて感謝申し上げます。

------------------------------------------------------------------------------

● 参考文献

・月刊I/O 1986年9月号 p.217 ディスク・フォーマットを解析する - 工学社
・日立ベーシックマスターレベル3 DISK BASIC MA-5370 マニュアル - 日立製作所
・日立MB-S1 DISK BASIC MA-S101 マニュアル - 日立製作所
・図解パソコンが使えるまで F-BASIC入門 - 誠文堂新光社
・FM-7 F-BASIC 文法書 - 富士通
・MSX2 テクニカル・ハンドブック - アスキー出版局
・PC-8801mkIISR N88-BASIC リファレンスマニュアル - NEC
・X1turbo CZ-856C ユーザーズマニュアル - シャープ
・MZ-80B DISK BASIC マニュアル - シャープ
・I/O別冊 PC活用研究 8001/8001mkII/8801 - 工学社
・アスキー・テクニカル・バンク パソピアの内部構造 - アスキー出版局
・FLEX Programmer's Manual - Technical Systems Consultants
・OS-9 Technical Manual - Microware Systems
・CP/M Operating System Manual - DIGITAL RESERCH
・THE PROGRAMMER'S CP/M HANDBOOK - Osborne/McGraw-Hill
・AppleII The DOS Manual Disk Operating System - Apple Computer Inc.
・Beneath Apple DOS - QUALITY SOFTWARE
・Beneath Apple ProDOS - QUALITY SOFTWARE
・Apple II GS ProDOS 16 Reference Manual - Apple Computer Inc.
・COMMODORE 1541 DISK DRIVE USER'S GUIDE - Commodore computer
・COMMODORE 1541 II DISK DRIVE USER'S GUIDE - Commodore computer
・Amiga System Programmer's Guide - Abacus
・Retro PC Gallery
  (http://haserin09.la.coocan.jp/index.html)
・アルゴの記憶
  (http://www.geocities.co.jp/SiliconValley-Sunnyvale/2521/)
・T.Fukui's Classic PC Web
  (http://fukui.s17.xrea.com/comp/index.html)
・C-DOS Explorer Ver.0.9説明 - No.046の部屋
  (http://www.hi-sumi.com/CDOSExp.html)
・The .ADF (Amiga Disk File) format FAQ
  (http://lclevy.free.fr/adflib/adf_info.html)

------------------------------------------------------------------------------

● クレジット

  wxWidgets:
    wxWidgets is a C++ library that lets developers create applications for
  Windows, OS X, Linux and UNIX on 32-bit and 64-bit architectures as well as
  several mobile platforms including Windows Mobile, iPhone SDK and embedded
  GTK+. It has popular language bindings for Python, Perl, Ruby and many other
  languages. Unlike other cross-platform toolkits, wxWidgets gives its
  applications a truly native look and feel because it uses the platform's
  native API rather than emulating the GUI. It's also extensive, free, open-
  source and mature.
    http://www.wxwidgets.org/

------------------------------------------------------------------------------

● 免責事項

・このソフトはフリーウェアです。ただし、著作権は放棄しておりません。
  著作権は作者Sasajiにあります。
・このソフトによって発生したいかなる損害についても作者は一切責任を負いません。
  このソフトを使用するにあたってはすべて自己責任で行ってください。
・雑誌やネットなどに転載される場合、不特定多数の方に再配布を行う場合でも
  承諾の必要はありませんが、転載の旨をご連絡いただけたら幸いです。

==============================================================================

連絡先：Sasaji (sasaji@s-sasaji.ddo.jp)
 * My WebPage: http://s-sasaji.ddo.jp/bml3mk5/
 * GitHub:     https://github.com/bml3mk5/L3DiskEx
 * X(Twitter): https://x.com/bml3mk5

==============================================================================

