d88edj - D88 Editor for Java -
 私は予てより、「Javaってホントに移植性高いのか?」という非常に基本的な疑問を持っていました。

 コンパイルしてバイトコードにした上で、VMでインタプリタ動作するので、 どんなプラットフォームでも基本的に動くことは納得はしてましたが、ことファイルシステムが違う、 内部での文字コードも違うという環境で、ファイルを扱ったり日本語を表示することが「まとも」にできるのかと。

 というわけで、「それじゃ、どんなプラットフォームでも動作するようなプログラムを実際に作ってみて、どこまでできるかやってみよう」 と考え、Javaで何かしら作ってみることにしました。

 そこで白羽の矢を立てたのが、「D88エディタ(操作)ツール」でした。

 88エミュレータも種類が増えてきて、PC-98やMS Win32(PC/AT)以外にも、UNIX/PC-UNIX、Macintosh、OS/2、 はてはPocketPC等でも動作するエミュレータも出現いたしました。 そこで、どの環境でもD88イメージを操作するツールが動いたらいいなぁ、思ったからです。

 とりあえず、試作品として掲示板公開した d88edj - D88 Editor for Java - が、ある程度のプラットフォームで動作したようなので、 ここにページを作ってこれからも更新していこうかと。

 現在、D88ファイルの内部のディスクイメージの一覧および、単一ファイルへの分割、ライトプロテクトのON/OFF切替、 ディスク名のリネームが行えます。
 また、ディスク形式が N88 DiskBasic、PC-8001 MicroDiskBasic、Magical-DOS、Frost-DOS である場合のみ、 ディスク内部のファイルの一覧表示およびファイルの展開を行うことができます。
 一応、おまけで データダンプ機能をつけました。オマケ以外のなにものでもないですが。

d88edjで利用している、D88ファイル操作用クラス D88File.class SDK ともどもよろしくお願いします。


更新情報
過去ログ
2004/08/01 New!
Ver. 0.05 を公開

0.04 からの変更点は以下のとおり

  Ver. 0.04a での変更点
    ・D88File.class SDK Ver. 0.04a を実装。
      それによる修正個所については下記参照
        ・内部エンコーディングについて、MS932 以外でも動くようにした。
          ただし、MS932以外の場合は下記の制限がある。
            1. ディスク名表示で英数字、一部記号以外は全て _ で表示される
            2. ディスク名リネームで、英数字、一部記号以外は全て _ で置き換え
            3. ファイル名表示で英数字、一部記号以外は全て _ で表示される
            4. ファイル抽出で、ファイル名が英数字、一部記号以外は全て _ として展開
            5. ファイル抽出はバイナリそのままのみ可能とし、
               Basicテキスト変換、ヘッダ除去を選択するとエラーとなる
    ・-g のGUI起動時に、クライアント領域の大きさを計測して
      SVGA(800 x 600)、VGA(640 x 480)、QVGA(320 x 240)
      の3つのモードの内 適切なモードを判別して起動するように変更。
    ・GUIのファイル抽出時に、1ファイル抽出で「Cut 4Byte and BasicConvert」
      の判別が逆になっていて、trueにしている場合は実際にはバイナリ抽出、
      falseにしている場合がBasicテキスト変換・ヘッダ除去となっていたのを修正。

  Ver. 0.05 での変更点
    ・D88File.class SDK Ver. 0.05 を実装。
      それによる修正個所については下記参照
        ・データのダンプ機能を追加(dumpDataメソッド)
          それに伴ない、下記機能を追加した。
            ・-dpt フラグの追加(1トラック内のデータダンプ)
            ・-dpd フラグの追加(複数トラック間のデータダンプ)
    ・内部エンコーディングが MS932 以外の場合のGUIモードにて、
      内部ファイル閲覧(View File)時に「Cut 4Byte and BasicConvert」
      のチェックボックスをEnableにし、チェックをつけられなくした。


『d88edj』の機能、動作環境、使用上の諸注意

【機能】
1.GUIモード(-g フラグ)
 余計なコマンド操作のいらないGUIモードを実装しています。
 ただし、現在のGUIモードでは、D88ファイルからのディスク分割と、
 ディスクイメージの内部ファイルの展開しかできません。

2.D88ファイル内のディスク情報の表示 (-l フラグ)
 D88ファイルは、複数のディスクイメージを連結することができます(結合D88ファイル)。
 d88edjでは、1つのD88ファイル内の連結したディスクの情報を表示できます。
 表示する情報は、「(D88ファイル内での)ディスク番号」「ディスク名」
 「ライトプロテクト有無」「ディスク種類(2DD等)」「イメージのサイズ」の5つです。

3.D88ファイルの単一イメージへの分割(-x フラグ)
 D88形式自体は複数イメージの連結に対応はしているものの、
 エミュレータの中には結合D88ファイルに対応していないものもあります。
 d88edjでは、結合D88ファイルを単一イメージのみ持つD88ファイル
 (単一D88ファイル)に分割し、それらのエミュレータで使用可能にできます。

4.D88ファイルのディスク内のファイル情報の表示 (-fl フラグ)
 D88形式のディスクイメージで、特定フォーマットのものについては、
 その内部ファイル情報を一覧で表示することができます。

5.D88ファイルのディスク内のファイル展開 (-fx/-fx4/-ex/-ex4 フラグ)
 D88形式のディスクイメージで、特定フォーマットのものについては、
 その内部ファイルの展開を行えます。

6.ライトプロテクトの設定・解除(-p/-w フラグ)
 D88形式は、通常のFDと同じくライトプロテクトの設定が行えるようになっています。
 d88edjでは、D88ファイル内のイメージについて、ライトプロテクトの設定
 および解除を行うことができます。

7.ディスク名の変更(-r フラグ)
 結合D88ファイルでは、その内部のディスク順序とともに、
 そのイメージ自身を区別するための「ディスク名」を設定することができます。
 d88edjでは、そのディスク名について、自分自身で新しいディスク名を
 設定し、更新することができます。

8.データダンプ機能(-dpt/-dpd フラグ)
 D88形式のディスクイメージから、指定したトラック、セクタ、セクタ内開始位置から、
 指定バイト分のデータを切り出すことが出来ます。

9.その他
 いずれ、ブランクディスクの追加、他D88ファイルからのイメージ追加、
 D88ファイルからのイメージ削除、イメージの並べ替え等を
 サポートする予定です(今はできません)。

【動作環境】
1.動作可能機種
 ・JDK/JRE 1.1.8(i18n対応版) 互換以上のJavaVMが入ったOS
  Windows95(98)・Me/NT/2000/XP 等のMS Win32
  UNIX/PC-UNIX(TurboLinux 等)
  LinuxZaurus(SL-C860 OpenPDA)
  Macintosh(Mac OS X等)他

  ・JavaVM(java)起動、オプション、D88ファイル指定を行うため、
   コマンドライン環境が必要となります(CUIモードの場合)。
   (MS Win32ならDOSプロンプト(又はDOSモード)、MacならTerminal等、
    Linux等はX-Windows上なら何かしらのTerm(漢字Term推奨))

  ・JDK/JRE 1.1.8でも、米国版等の i18n非対応版のJavaVM(Kaffe、J2ME CDC等)
   でも制限付きで動作します(ファイル名の扱いや内部ファイル抜き出し等)。

動作確認OSおよびJavaVM、端末の一覧
機種OSJavaVMモード端末ClickRun
PC/ATWindows 2000 SP4J2SE 1.4.2_01 SDKCUI/GUIDOSプロンプト
PC/ATWindows 2000 SP4J2SE 1.4.2_04 SDKCUI/GUIDOSプロンプト
PC/ATWindows 98 SEJDK 1.1.8CUI/GUIDOSプロンプト×
PC/ATTurboLinux 10 DeskJ2SE 1.4.2 JRECUI/GUIterm
SL-C860OpenPDA(Linux)J2ME CDC-HI 1.0CUI/GUIterm×
MacOS X でも動作するそうです。
MacOS 9 以下、PS2Linux、PocketPC、他 は未検証です。


【使用上の諸注意】
1.重要なマシン上での動作は避けてください
 かなり手抜きな実装をしています。
 正常動作・エラー時動作の確認はきちんと行ったつもりですが、
 製作者側では間違った使い方自体思いつかないのであまり期待しないでください。
 マシンのリブートが必要になる可能性もゼロとは言い切れません。

2.D88ファイルはバックアップを別に取っておいてください
 D88ファイル自体の更新時は自動的に対象ファイルのバックアップを作成しますが、
 Javaの言語仕様上、完全なるコピーとなると言い切れません(ホントに)
 また、d88edjの更新機能に不具合がないとも言い切れません。
 大切なD88イメージは、ご自分の管理のもと保護を行うようにしてください。

3.『d88edj』は常に「無償」「無保証」です
 無償ですが、著作権はあくまで制作者「AKATTA」にあります。
 当然、このツールが原因で何らかの損害が発生したとしても、
 制作者は責任を免れるものとします。
 再配布については当事者間であり、アーカイブそのままであれば制限しません。
 また、いかなる時においても再配布時に金銭を要求することを一切禁止します。

 上記の諸注意に同意していただけない場合は d88edj を使用しないで下さい。


【動作確認の協力願い】
 上のほうでは、いろいろと使用時の注意を書いていますが、
 Javaの移植性の検証を取る意味も兼ねて、
 ご家庭のマシンで影響が出ない程度に動作確認にご協力くだされば幸いです。


ダウンロード
・d88edj Ver 0.05 (2004/08/01)
JavaVMが入っていない場合、別途入手してインストールする必要があります。

本家Sun Java2SE 1.4 および下位Ver
・JRE J2SEはNetscapeの6.2や7のインストール時に入れることもできます。


使用画面( Ver. 0.05 )


CUIでの操作画面1。ディスクリストと展開



CUIでの操作画面2。ファイルリスト表示



CUIでの操作画面3。データダンプの実施



GUIでの操作画面。


SL-C860での画面( Ver. 0.05 )


SL-C860 VGAでの表示。d88edjは、SVGA・VGA・QVGA用で3つの大きさのGUIを持っています。



SL-C860 でのファイルリスト表示。i18n非対応のため、半角カタカナ部分が _____ のようになります。



SL-C860 でのファイル展開。i18n非対応のため、半角カタカナ部分が _____ のようになります。



自作ソフトウェアの部屋へ戻る