==============================================================================
    L3 Disk Explorer
                                                              Version 0.2.0
                                                                2017/02/26

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

● はじめに

    日立 ベーシックマスターレベル3シリーズに採用されているLEVEL-3 DISK BASIC、
  MB-S1シリーズに採用されているS1 DISK BASICで保存されたディスクイメージ内部の
  ファイルにアクセスするためのアプリケーションです。
    ディスクイメージはD88形式のみ対応しています。


● 動作確認環境

  ◆Windows ... Windows10 / Windows7 SP1 / WindowsXP SP3
  ◆MacOSX .... El Capitan(10.11.6)(64bit) / 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)が作成されます。


● アンインストール

  インストールしたフォルダを削除してください。


○ 画面の説明

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

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

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

  (1)イメージファイル

    開いているディスクイメージファイルとその内部に含まれるディスクイメージを
   ツリー形式で表示します。
    ディスク名の部分をダブルクリックすると名称を変更できます。

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

    (1)で選択したディスクイメージのパラメータ（トラック数、セクタ数など）を
   表示します。
    また、メディアタイプ(2D,2DD,2HD)、書き込み禁止の選択ができます。
    パラメータが意図したものと異なる場合は「変更」ボタンを押して適切なものに
   してください。
    ※メディアタイプはBML3MK5,MBS1エミュレータの動きに影響を与えません。

  (3)DISK BASIC の情報

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

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

    (1)で選択したディスクイメージがDISK BASICでフォーマットされている場合に
   内部に含まれるファイル名を一覧に表示します。
    インポートまたは、エクスプローラなどからファイルをドラッグ＆ドロップする
   ことでファイルを追加することができます。
    本アプリケーションを別に起動し、そのファイル一覧からこちらにドラッグ＆
   ドロップすることでディスクイメージ内ファイルのコピーができます。
    1Sの場合、ファイルサイズは占有しているセクタの合計(ディスク上の)サイズと
   なります。

  (5)選択したファイルのダンプ

    (4)で選択したファイルの先頭セクタをダンプリストで表示します。
   編集はできません。

  (6)トラック一覧

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

  (7)セクタ一覧

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

  (8)選択したセクタのダンプ

    (7)で選択したセクタをダンプリストで表示します。
   編集はできません。


○ メニュー説明

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

  「開く」 ................. ディスクイメージファイルを開きます。

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

  「名前を付けて保存」...... ディスクイメージをファイルに保存します。

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

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

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

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

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

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

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

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

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


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

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

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

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

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


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

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


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

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

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

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

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

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

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

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

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


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

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

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

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

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

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


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

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

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

  「このディスクのHを一括変更」.. ディスクのすべてのヘッドIDを変更します。
  「このディスクのNを一括変更」.. ディスクのすべてのセクタサイズを変更します。
  「このディスクの密度を一括変更」.. ディスクのすべての密度を変更します。

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

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


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

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

  「セクタにインポート」 ........ データを選択したセクタに取り込みます。

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


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

  テンプレート ... 作成したいディスクを選択してください。
        1S ...... L3用 片面単密度 5インチミニフロッピー
                       (40トラック, 1サイド, 16セクタ, 128バイト)
        1S x2 ... L3用 3インチコンパクトフロッピー(両面単密度, AB面あり)
                       (40トラック, 2サイド, 16セクタ, 128バイト)
        2D L3 ... L3用 両面倍密度 5インチミニフロッピー
                       (40トラック, 2サイド, 16セクタ, 256バイト)
                ＊トラック0のサイド0は単密度で作成します。
        2D S1 ... S1用 両面倍密度 5インチミニフロッピー
                       (40トラック, 2サイド, 16セクタ, 256バイト)
        2HD S1 .. S1用 8インチ標準フロッピー または
                  両面高密度 5インチミニフロッピー
                       (77トラック, 2サイド, 26セクタ, 256バイト)
                ＊トラック0のサイド0は単密度で作成します。
        2HD ..... 8インチ標準フロッピー または
                  両面高密度 5インチミニフロッピー
                       (77トラック, 2サイド, 26セクタ, 256バイト)

     手動設定を選択した時は、トラック/サイド、サイド/ディスク、
    セクタ/トラック、バイト/セクタの各パラメータを入れてください。
  ※ DISK BASIC用ディスクとして使用する場合は、テンプレートから選択して
    ください。

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


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

  ディスクイメージ内のファイル名 ...
    数字アルファベット記号で指定します。
    ファイル名は1Sの場合、拡張子やドット(.)も含めて8文字まで。
    2D,2HDの場合、ファイル名8文字、拡張子3文字です。ファイル名と拡張子は
      ドット(.)で区別します。

  ファイル種類、データ種類 ...
    データの場合はアスキーを、機械語の場合はバイナリを選択してください。

  ファイルサイズ ...
    1Sの場合、ファイルサイズは占有しているセクタの合計サイズとなります。

  占有しているグループ ...
    グループ数と、各グループを一覧に表示します。


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

  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
     の順番になります。


● 特記事項

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


● 開発環境

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

  MacOSX版: (Mac Mini CPU: Corei5 / Mem: 4GB)
    Mac OS X Yosemite (10.10.5 Intel x86_64)
    Xcode 6.4 + Command Line Tools for Xcode
      wxWidgets 3.0.2

  Linux版: (VMwareです。)(CPU: Corei7 4770S 3.1GHz / Mem: 512KB)
    Debian GNU Linux 6.0.5 (i386 / amd64) + GNOME
      wxWidgets 3.0.2


● クレジット

  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)

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

