﻿------------------------------------------------------------------------------
  FM-7 EMULATOR XM7 For Java V1.0.05
  JAVA support code by GIMONS
------------------------------------------------------------------------------

【FM-7 EMULATOR XM7 FOR Javaとは】

  このアーカイブはFM-7エミュレータXM7(V2.8L31a/V3.3L31a)を
  Javaに移植した全クラスファイル（Jarファイル）ならびにソース
  コードです。

  オリジナルのXM7は「ＰＩ．氏」ならびに「たけがみ  りう氏」
  が開発したFM7〜77AV40SXのエミュレータです．ＦＭ音源部には
  M88の作者である「cisc氏」のfmgenが使用されています．

【使用規定】
  XM7 For Javaはフリーソフトです．
　当ソフトを利用して生じたあるいは生じると予測される損害について，
　私およびオリジナルのXM7作者は一切責任を負いません．

【ソースコードに関する著作権・免責事項】   
  ・XM7 For JavaのベースとなったXM7のルソースは「ＰＩ．氏」，
  　ならびに，「たけがみ  りう氏」が著作権を保持しております．

  ・Javaに移植する再に改変，追加したソースに関してはGIMONSが
  　著作権を保持しております.
  
  ・emu.xm7.vmパッケージのファイルを再利用する場合はドキュメント
  　にオリジナルの著作権表示を明記してください。また商用利用は
  　禁止します。オリジナルの使用規定は当アーカイブに含まれている
  　XM7src.txtをご参照ください．

　・本ソースコード関して生じたあるいは生じると予測される損害
　　について，私およびオリジナルのXM7作者は一切責任を負いません．

【fmgenに関して】

  ・emu.fmgenパッケージ配下のソースファイルはfmgenの使用規定に
  　したがってJavaへ移植したものです．OPN・PSGのみをサポート
  　するサブセット版ですので，オリジナルのすべての機能を持つ
  　ものではありません．

  ・emu.fmgenパッケージのファイルの使用規定はオリジナルのfmgen
  　に従います。オリジナルの使用規定はemu/fmgen/readmme.txtを
  　ご参照ください。

【移植の完成度】
　通常の使用に問題ないレベルで移植していますが下記は未実装です．
　・デバッグ機能（ブレークポイント，トレース，逆アセンブラ等）
　・各種ステータス表示
　・ジョイスティック

【動作環境】
  XM7 For Javaは名前の通りJava実行環境で動作します．開発に利用
  したJSDKのバージョンはJSDK1.4.2_02です．JDSK1.4以降の機能を
  利用しているため，これ以前のバージョンのJSDK/JREでは実行でき
  ません．
  
  Windows2000上でテストしていますが，他のプラットホームでも動作
  する可能性があります．現在Linux,Mac OS Xでの動作報告があります．

  ＊開発に使用しているPC(Pentium4 2.4GHz MEM512M)で実機並の速度で
  　稼働しています．
  
  ＊最低スペックは不明ですがGimonsのPentium3 900MHzではもたつきます．

【実行方法】
　XM7 For JavaはJavaアプリケーションです．
  XM7オリジナルと同様にROMファイルを必要とします．ROMファイル
  は起動時のカレントディレクトリに置いていただくか，もしくは
  格納先を指定するオプションを利用してください．
  
  クラスファイルはxm7.jarという名前でJar化してますので下記の
  コマンドラインで起動が可能です．
  
  起動方法:java.exe -classpath xm7.jar emu.xm7.sys.Sys_main
  オプション:-Drom={ROMファイルを配置したディレクトリ}
  
  *配布しているjarファイルをそのままご使用になる場合はMANIFEST
   にメインクラスを設定しておりますので次のように起動が可能です．
   java -jar xm7.jar
   
  *Windows環境であればjavawが拡張子jarに紐付いている場合はxm7.jar
   をダブルクリックするだけで実行できます．

【ROMファイル】
　必要なROMファイルは下記の通りです．
　Linux環境などROMファイルの大文字，小文字を認識する環境では
　下記の通り大文字で用意してください．
  ＊Ver1.0.02からは小文字でも試行するようになりました．
  
	  ファイル名    サイズ  CPU    物理アドレス
	
	  FBASIC30.ROM  31744  メイン $38000-$3FBFF
	  INITIATE.ROM   8192  メイン $36000-$37FFF
	  KANJI   .ROM 131072
	  KANJI2  .ROM 131072
	  DICROM  .ROM 262144  メイン $2E000-$2EFFF (64バンク)
	  SUBSYS_A.ROM   8192   サブ  $1E000-$1FFFF
	  SUBSYS_B.ROM   8192   サブ  $1E000-$1FFFF
	  SUBSYS_C.ROM  10240   サブ  $1D800-$1FFFF
	  SUBSYSCG.ROM   8192   サブ  $1D800-$1DFFF (4バンク)
	  EXTSUB  .ROM  49152  メイン $2E000-$2EFFF (12バンク)

【スクリーン】
　全画面表示はサポートしていませんがリサイズできます．
　画面の拡縮はdrawImageの単純拡縮なので表示が崩れることが
　あります．

【キーボードマッピング】
　キーマッピングは下記の設定ですがプラットホームによっては
　打てないものがあるかもしれません．

  Ver1.0.03よりプラットホームを認識して一部のマッピングを変更
  する機能と，キーマッピングカスタマイズ機能が実装されました．
  
  ・Windowsの場合
    FM-7 [BREAK]     → JAVA [VK_PAUSE]
    FM-7 [ESC]       → JAVA [VK_ESCAPE]
    FM-7 [CTRL]      → JAVA [VK_CONTROL(左)]
    FM-7 [CAP]       → JAVA [VK_ALPHANUMERIC]
    FM-7 [GRAPH]     → JAVA [VK_NONCONVERT]
    FM-7 [かな]      → JAVA [VK_CONTROL(右)]
    FM-7 [SPACE(左)] → JAVA [VK_ALT(左)]
    FM-7 [SPACE(中)] → JAVA [VK_SPACE]
    FM-7 [SPACE(右)] → JAVA [VK_ALT(右)]
    FM-7 [INS]       → JAVA [VK_INSERT]
    FM-7 [DEL]       → JAVA [VK_DELETE]
    FM-7 [EL]        → JAVA [VK_HOME]
    FM-7 [CLS]       → JAVA [VK_PAGE_UP]
    FM-7 [DUP]       → JAVA [VK_END]
    FM-7 [HOME]      → JAVA [VK_PAGE_DOWN]

　　Windows機の106キーボードから入力した\記号とバックスラッシュ
　　は同じキーコードを発生しているようなので，\記号はF12に割り
　　当てています．したがってオリジナルのようにF12でリセットは
　　かかりません．

  ・Linuxの場合は下記のマッピング変更を行います
    FM-7 [CAP]       → JAVA [VK_CAPS_LOCK]

  ・Macの場合は下記のマッピング変更を行います
  　調査中のため適切なマッピングが不明です．現在ソースの中で
  　Ｍａｃ用の暫定的なマッピングをロードしていますが，不都合
  　がある場合はキーマップ変更機能を利用してください．
  
  　Mac OS XのJVMは左右のSHIFTやCTRLなどを認識できないと思わ
  　れますのでキーマップを適切にカスタマイズすることをお勧め
  　します．


【マウス】
  マウスをサポートしています． 3ボタンマウスの真ん中ボタン，
  またはPF11にて切り替えが可能です．マウスモードにおいては
  システムのマウスは非表示になります(というよりも透明なカーソル
  になります)．ウィンドウ上からマウスが外に出ようとすると中央に
  強制移動しています．マウスが消えてもあわてずに解除しましょう．

【その他】
 すばらしぃソースを公開していただいたＰＩ．氏」，ならびに，
 「たけがみ  りう氏」，「cisc氏」に感謝!

-------
  ホームページ   http://www.geocities.jp/kugimoto0715/
  e-mail         kugimoto0715@ybb.ne.jp