==============================================================================
    L3 Disk Explorer
                                                              Version 0.3.2
                                                                2018/10/20

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

● はじめに

    このソフトは、D88形式ディスクイメージ内部のDISK BASICで作成されたファイル
  にアクセスするためのアプリケーションです。

    現在対応している、DISK BASIC / OSは、
  ・日立 LEVEL-3 DISK BASIC / S1 DISK BASIC
  ・富士通 F-BASIC
  ・NEC N88-BASIC / N66-BASIC
  ・MSX-BASIC / MSX-DOS
  ・シャープ X1 Hu-BASIC / MZ Hu-BASIC ※
  ・シャープ MZ S-BASIC系 ※
  ・MS-DOS (PC-9801/PC-AT) ※
  ・FLEX ※
  ・OS-9 Level I/II ※
  ・CP/M Ver.2.2 ※

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

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

● 動作確認環境

  ◆Windows ... Windows10 / Windows7 SP1 / WindowsXP SP3
  ◆MacOSX .... High Sierra(10.13.6) / Sierra(10.12.6) / El Capitan(10.11.6) /
                Lion(10.7.5)(64bit)

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

● インストール

  ◆Windows版

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

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

  2. l3diskex.exe、data/、lang/以下を適当なフォルダにコピーしてください。
  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   ... 更新履歴

  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)、書き込み禁止の選択ができます。
    パラメータが意図したものと異なる場合は「変更」ボタンを押してなるべく近い
   ものを選んでください。
    ※メディアタイプはBML3MK5,MBS1エミュレータの動きに影響を与えません。


  (3)DISK BASIC の情報

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

    DISK BASICの種類を変更する場合は、「変更」ボタンを押してください。

    希望のDISK BASICが表示されない場合、(2)のディスクイメージを変更してみて
   ください。

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


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

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

    一覧をドラッグしてそのままドロップすることでファイルのコピーができます。

    本アプリケーションを別に起動し、そのファイル一覧からこちらにドラッグ＆
   ドロップすることでディスクイメージ内ファイルのコピーができます。

    インポートまたは、エクスプローラなどからファイルをドラッグ＆ドロップする
   ことでファイルを追加することができます。

    エクスポートすることでファイルを取り出すことができます。
    Windows版は、Ctrlキーを押しながらエクスプローラにドラッグ＆ドロップすること
   でも取り出せます。

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

    一覧を選択するとダンプがダンプウィンドウに表示されます。


  (6)トラック一覧

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


  (7)セクタ一覧

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

    一覧を選択するとダンプがダンプウィンドウに表示されます。

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

○ メニュー説明

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

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

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

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

      ※元ファイルへの上書き保存は推奨しません。
      ※ディスクイメージ内の使用していない領域は失われます。

  「ディスクを保存」........ ディスクイメージ一覧(画面(1))で選択している
        ディスクをファイルに保存します。
      ※AB面のあるイメージで、A面/B面を選択しているときは、その面だけのディスク
        イメージをファイルに保存します。
      ※ディスクイメージ内の使用していない領域は失われます。

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

  「ディスクデータを置換...」..... ディスクイメージ一覧(画面(1))で選択している
        ディスクの内容を別のディスクイメージの内容に置き換えます。
      ※AB面のあるイメージで、A面/B面を選択しているときは、その面だけのディスク
        イメージの内容を置き換えます。

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

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

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

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

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

      ※作成できるのはユーザディスクです。システムディスクは作成できません。

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

  「終了」 ............ アプリケーションを終了します。

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

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

  「インポート」 ...........
        BASICモード時、ファイルをDISK BASIC内に取り込みます。
        生ディスクモード時、ファイルをトラックに取り込みます。

  「削除」 .................
        BASICモード時、DISK BASIC内部ファイル一覧(画面(4))の選択したファイルを
      削除します。
        ※生ディスクモード時は無効です。

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

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

  「プロパティ」 ...........
        BASICモード時、DISK BASIC内部ファイル一覧(画面(4))の選択したファイルの
      情報を表示します。
        生ディスクモード時、選択したセクタの情報を表示します。

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

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

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

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

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

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

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

  「FAT領域ウィンドウ」 ... FAT領域の使用状況を表示します。

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

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

  「ディスクを保存」........ 選択しているディスクをファイルに保存します。
      ※AB面のあるイメージで、A面/B面を選択しているときは、その面だけのディスク
        イメージをファイルに保存します。
      ※ディスクイメージ内の使用していない領域は失われます。

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

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

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

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

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

  「BASIC用にフォーマット」. ディスクをBASIC用にフォーマットします。
        すべての内容を削除しDISK BASICで使用できる形式にフォーマットします。

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

      ※作成できるのはユーザディスクです。システムディスクは作成できません。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  「プロパティ」 ................ 選択したトラックの情報を表示します。

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

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

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

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

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

  「このトラックのセクタ数を一括変更」.. 選択したトラックのすべてのセクタ数を
                                         変更します。
  「プロパティ」 ........... 選択したセクタの情報を表示します。

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

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

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

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

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

  ディスク名 ... イメージ内部に保存する名前（数字アルファベット16文字まで）
  2D,2DD,2HD ... メディアタイプ
  書き込み禁止 ... 禁止にする場合チェックを入れます。
  トラック0のサイド0は単密度 ... トラック0のサイド0だけ単密度(128バイト/セクタ)
                                 で作成します。
  ※ 128バイト/セクタを選択した場合は全トラック単密度となります。
  ※ DISK BASIC用ディスクとして使用する場合は、テンプレートから選択して
    ください。
  ※ セクタ間隔はトラック内のセクタ番号の順序。例えばセクタ間隔3なら3つとばしで
    セクタ番号を付与していく(インターリーブ)。
  ※ セクタ付番方法：
     各サイドごと ... 各トラック・サイドごとに1から付番します（通常ディスク）。
     各トラックごと . 同じトラック内で通し番号になります。
                      FLEX用に使用する場合はこちらを選択してください。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

○ バイナリダンプウィンドウについての説明

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

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

  フォント ...
      ダンプリストのフォントを変更します。

  ※ ダンプリストの編集は出来ません。

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

○ FAT領域ウィンドウについての説明

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

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

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

● 特記事項

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

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

● 開発環境

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

  MacOSX版: (Mac Mini CPU: Corei5 / Mem: 4GB)
    Mac OS X El Capitan (10.11.6 Intel x86_64)
      Xcode
      wxWidgets 3.1.0

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

● 謝辞

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

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

● 参考文献

・月刊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 マニュアル - シャープ
・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
・Retro PC Gallery
  (http://www.mindspring.com/~thasegaw/rpcg/index.html)
・アルゴの記憶
  (http://www.geocities.co.jp/SiliconValley-Sunnyvale/2521/)

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

● クレジット

  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)
  http://s-sasaji.ddo.jp/bml3mk5/
  (Twitter: http://twitter.com/bml3mk5)

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

