﻿(UTF-8: Japanese)

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

  FM-7 EMULATOR XM7dash (V2.9R50-V2憑き)
  based on XM7 L77SX+z09 R3c

  for Win32
  Copyright (C) 1999-2025 ＰＩ．
  Copyright (C) 2001-2025 Ryu Takegami
  Copyright (C) 2010-2025 GIMONS
  Copyright (C) 2010-2025 Toma
  All rights reserved.

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

□はじめに

  XM7dashは、FM-7 EMULATOR XM7のソースコードをもとにトマが開発した改造版です。

  XM7はＰＩ．、たけがみりう両氏の著作物であるため、XM7dashはその使用規定に基づ
  き公開しています。
  大変有用なソフトウェアを公開された両氏に対し深く敬意を表します。

  本ファイルはXM7dashにおける変更点のみ記述します。
  よって詳細は同梱のXM7.txtをご参照願います。
  XM7.txtおよびXM7TV151.txtはXM7(V2.9L77SX+z09 R3c-V2憑き)に付属のものを添付し
  ています。

  本改造版は、XM7SRC.TXTに記述されていた
  > 実機・資料の入手が難しい過去の機種の、詳細なドキュメント・仕様書となり得ま
    すので、電子保存の意味でも公開すべきだと考えます。
  に感銘し、ならばなおいっそう実機に近いものにしていくべきで、それに協力したい
  という思いから、公開することにいたしました。

  本改造版はあくまでも派生版の一種にすぎません。
  本改造版に対する問い合わせは私宛に下記連絡先へお願いします。

  オリジナルのXM7に同等機能の追加や修正が加わり本改造版の存在意義が無くなった際
  は公開終了します。
  本改造版のソースコードからオリジナルのXM7への引用があった場合に、Copyrightを
  主張するつもりも特にありません。
  元々私の作品ではありませんし、実機再現率の向上、仕様の正確性の向上が目的です
  ので。

  私個人の考えですが、ソフトウェアは複数の開発者でソースコードを共有し、より
  よいものを構築していく形が理想と考えています。
  そういう意味で、これに賛同して第四・第五の開発者・協力者が現れるのに、ほんの
  少し期待しています。


□使用規定(ライセンス)

  本アーカイブに含まれるファイル群は、一部の例外(後述)を除き、
  ＰＩ．、たけがみりう、GIMONS、トマの諸氏が著作権を保有しており、
  クリエイティブ・コモンズ・ライセンス
  「表示 - 非営利 - 継承 4.0 国際 (CC BY-NC-SA 4.0) 」
  によってライセンスされています。

  ライセンス条項に関することについて、詳しくは以下のWebサイトを参照してください
  (以下のリンクは日本語で記述されています)。
    https://creativecommons.org/licenses/by-nc-sa/4.0/deed.ja

  クリエイティブ・コモンズのFAQと重複しますが、この作品は現状有姿、あるがままの
  かたちで提供され、ユーザーは自己責任で使用することになります。この作品を使用
  した結果、ユーザーやユーザーの所有物であるPCに不利益・損害等が発生した場合で
  も、著作権者にその責任を追及することはできません。

  翻案・改変された作品のソースでの公開は、ライセンスに従う限り自由です。
  また、翻案・改変された作品のバイナリの公開は、ビルドに使用したコンパイラを明
  示すること、意図的にウイルス等のマルウェアを混入させないことの2点を条件に、
  ライセンスに従うかたちで自由に行なっていただいて構いません。

  追加したアイコンは天丸氏によるものをベースにしたものを使用させていただいて
  います。
  天ぷら工房 (TENMARU PLANNING FACTORY)
  http://homepage2.nifty.com/tenpurako/index.html

  外部音源DLL機能はXM7ヨルダのソースコードをベースとしています。
  この部分の著作権は原作者であるねねっち氏に帰属します。
  Copyright (C) 2011-2025 ねねっち@kirara.st (Twitter:@nenecchi_0505)
  https://twitter.com/nenecchi_0505

  外部画像フィルタDLL機能はXM7Dash勝平のソースコードをベースとしています。
  この部分の著作権は原作者であるねねっち氏に帰属します。
  Copyright (C) 2013-2025 ねねっち@kirara.st (Twitter:@nenecchi_0505)
  https://twitter.com/nenecchi_0505

  英語版リソースはBen.JP氏による「XM7/XM7dash/XM7LP 国際化 DLL （英語版）」を
  ベースとしています。
  English Translation 2012-2025 by Ben.JP
  https://ameblo.jp/a160-1930/entry-12494773323.html

  他の使用規定(ライセンス)に関する詳細は同梱のXM7.txtを参照願います。

  ※同梱のXM7.txtにも記述されていますが、ROMファイルについては著作権者の意向に
    従ってください。


□前改造版からの変更点

  R49→R50の変更点一覧です。

  <変更>
  ・リリースビルドに使用するコンパイラをBorland C++からMicrosoft C++へ変更した
    Borland C++によるリリースビルドではDirectX9がインストールされていない環境で
    DirectInputが正常な値を返さずマウスが正常に動かない場合があったため
  ・マウスの有効/無効設定について、VMとUIで分離した。
    動作設定～オプション～マウスを接続する、をVMに仮想マウスを接続するイメージ
    GUIメニュー～ツール～マウスモードの設定、を仮想マウスと実マウスをリンクする
    イメージとし、F11/マウスホイール/マウスの中央ボタンでの操作は仮想マウスと
    実マウスの接続制御、GUIメニューの設定などのためにマウス無効にした際、VM側の
    マウスまで切り離さない仕様に変更(仮想マウスが接続されているイメージ)
  ・垂直同期/水平同期イベント関数をリファクタリング。期間定義を構造体管理に変更


  R48→R49の変更点一覧です。

  <追加>
  ・XM7/XM7dash/XM7LP 国際化 DLL （英語版）より英語版リソースを移植

  <修正>
  ・バージョン情報のGIMONS氏による技術をTypeG Technologyと修正


  R47→R48の変更点一覧です。

  <変更>
  ・音源ディスプレイ/レジスタサブウインドウの表示チップ数をコンテキストメニュー
    から指定できるように変更。ディスプレイのミュート解除機能も同メニュー内の1項
    目に変更。デフォルトはこれまで通り自動。動作機種変更などにより表示できない
    モードになった際はデフォルトに戻る仕様とした
  ・MS用makefileをDirectX9 SDKのインストールを不要とするように対応
  ・XM7 L77SX+z10 R4より、Windows 11対応技術を移植（Thanks for Ryu Takegami）
  ・バージョン情報にGIMONS氏によるXM7g技術の件を明記
  ・バージョン情報にnenecchi氏によるExternal DLLの件を明記

  <修正>
  ・opn_scaleのリセット初期値を6に修正(FM-7実機でホットリセット直後にFM音源を鳴
    らした際の挙動に準拠。FM77AVシリーズはイニシエータROM内でOPN初期化している
    ため影響なし)
  ・SXGA(1280x1024)、VGA(640x480)のフルスクリーンモード時、画面周囲にゴミが表示
    される可能性があった問題を修正
  ・サブウインドウからのクリップボード登録時に改行コードを付加する際、バッファ
    オーバーフロー対策用に増やした2バイトを考慮していなかったため、改行コードが
    付加されない場合がある不具合を修正（Thanks for Ryu Takegami）


  R46→R47の変更点一覧です。

  <変更>
  ・アスペクト比設定ダイアログにMB273xx系(0.899)とFMTV-xxx系(0.833)の設定ボタン
    を追加
  ・ステータス非表示におけるフルスクリーンモードの現在の画面モード(整数倍拡大)
    設定時、画面比率がX:640に対してY:400以上480未満の際に一回り大きな画面表示
    出来る様に調整
  ・ディスプレイサイズに3倍(1920x1200)と4倍(2560x1600)を追加。外部画像フィルタ
    OFF時も対応。動作設定画面は余白の関係上外部画像フィルタON/OFF設定のみとし、
    解像度設定はGUIメニューで選択するのみに変更

  <修正>
  ・フルスクリーンモードの現在の画面モード(整数倍拡大)設定時、画面四隅にゴミが
    表示される場合がある問題を修正
  ・ダイアログ項目末尾の「。」を削除してフォーマットを統一


  R45→R46の変更点一覧です。

  <変更>
  ・新規ディスクイメージ作成でF-BASICユーザディスクの作成時、インターリーブ
    フォーマットでの作成フラグを追加
  ・天丸氏の作成されたFM-77のアイコンを1種追加

  <修正>
  ・ステートレジュームをONにして再起動すると起動できない問題を対策

  <移植>
  ・xm7_3477sxz09r3cs_vs2017.zipより、DirectX9 SDKのインストールを不要とする
    ソースコード上の変更点を移植。現状makefileは未対応


  R44→R45の変更点一覧です。

  <変更>
  ・クリップボード貼り付け機能のデフォルトキー間隔を20ms/200msにして有効化
  ・低速モード時のサブCPUウェイト処理設定を低速モード時にしか設定できないように
    変更
  ・サブウインドウ処理の一部をリファクタリング

  <修正>
  ・FM77AV/AV20/AV20EXモード時の拡張RAMカード-64・日本語カード機能のデフォルト
    設定が間違っていたのを修正

  <移植>
  ◎XM7 L77SX+z09 R3cより以下を移植
  ・FM-7モード時に、$FD0C～$FD0Fのミラーが$FD08～$FD0Bに現れるように修正
  ・キー操作で各種ダイアログを閉じた際のキー情報がVMに伝わってしまい誤動作する
    問題を対策
  ◎XM7gより以下を移植
  ・FDCサブウインドウのバッファオーバーフロー対策ミスを修正
  ・FDDのモーターON時の回転位置を正確に再現するように改善
  ・回転位置を利用した各種イベント発生タイミングを改善
  ・データ転送割り込み間隔を改善
  ・FDCのシーク系コマンド(TYPE0)実行後、HEAD ENGAGEDフラグが立ったままになる問
    題を修正
  ・FDCリセット時のセクタレジスタ初期値を0から1へ修正
  ・ディスクイメージファイルのアンマウント時、FDCのWRITE PROTECTEDフラグが1に
    なってしまう問題を修正

  <移植時に改良・変更した点>
  ・キー操作で各種ダイアログを閉じた際にキーが離されるまで待機するように対策


  R43→R44の変更点一覧です。

  <変更>
  ・サブウインドウの最小化・非表示状態から単体での復帰後、フォーカスをメイン
    ウインドウへ戻すように変更
  ・動作設定画面のカーソルキーによる操作時にフォーカスがあらぬ箇所へ遷移する
    場合がある問題をいくつか対策
  ・ディスアセンブルコード部のセグメント管理変数をBYTE型からint型に変更
    ※呼び元がn変数なので…
  ・jcard.cのLOG1を出力する関数が間違っていたのを修正
  ・印刷ダイアログ表示時にVMロックしない設定時もフルスクリーン時からの表示時は
    VMロックして印刷ウインドウを表示する仕様に変更
  ・24kHz表示エミュレートのウインドウ時とフルスクリーン時の設定を統合
    ※ラスタ単位レンダリングとか疑似400ラインモードとかグリーンモニタモードとか
      TTLカラーモニタモードとかは両スクリーンで統合されてるので…
  ・FM音源ディスプレイ/FM音源レジスタで管理している0個からの搭載OPN個数表現を
    {16,0,1,2,…}から{0,1,2,3,…}に変更し、ソースコードの可読性を向上。
    PSG搭載時の表現仕様はbit3フラグ(8)から変更無し。
  ・「スティッキーフォーカスを使用」表記をXM6typeGに倣い「バックグラウンド時も
    再生」に変更
  ・メモリダンプ・逆アセンブルサブウインドウの論理アドレスモード時、タイトルの
    [Logical]追記表示を廃止(物理アドレスモード・セグメントモード時は変更無し)
  ・コンパイルスイッチJCARDをXM7_VER >= 2と同義として廃止
  ・FM-7モード時に、標準FM音源を無効にするとマウスセットの割り込み制御も無効に
    なる問題を拡張IRQ要因識別部をmainetc.cへ移動することで対策
  ・FDCトラック読み込み時の2D/2DDファイル時の判定条件を修正

  <移植>
  ◎XM7 V2.9 L77SX+z09 R2/R3/R3aから以下を移植
  ・アナログパレットの初期化をリセット時から起動時へ変更
  ・アナログパレット番号の読み出しはAVシリーズ全機種で不可能とする修正
  ・アナログパレット書き換え時の通知仕様変更
    ※画面モード限定から無条件へ仕様変更。以前のコードには通知の種類によって
      VM側で条件判断している箇所と、機種依存コード側で条件判断している箇所が
      混在していた点がみられたが、これらを機種依存側で行うよう統一する方針に
      したように見受けられた
      この解釈が正しいかどうかはさておきそうであると仮定した場合、その意図に
      共感を感じたため移植を実施
  ・MAGUSパッチ有効時のLizardの起動改善、およびデフォルトをONとする仕様変更
  ・2DDのDSイネーブル記録処理の追加
  ・2DDメディアを2Dとして読んだ場合の処理
  ・アクセス可能な最終トラック算出処理
    ※ただしCRC演算は元々のテーブル実装のままとした
  ・D77イメージファイルのマウント時、これまでメディア#0固定マウントだったのを
    エラーの出る限り次のメディアを順次マウントしてみる仕様変更
  ・READ ADDRESSでセクタレジスタにトラックを二重に設定している処理を修正
  ・起動時に日本語カードROM用メモリが確保できなかった場合に初期化失敗として
    いた点を、日本語カード無効として継続する仕様に変更
    ※しかしここでメモリ確保できないならば、他の箇所でも確保できず結局起動で
      きないのではないだろうか…？
  ・pcidebug.dll読み込み時のフォルダをXM7.exeと同じフォルダに限定する修正
  ・リセット時にキーボード入力状態を初期化する修正
  ・BREAKキーを離した際にアムノーク隠し機能対策フラグをリセットする修正
  ・FM77AV20EXモード時のTABリセット機能
  ・拡張割り込み(IRQ)ステータス(0xfd17)から、OPNフラグが読み込める仕様はFM77AV
    以降のシリーズのみとした修正
    ※CaptainYS(山川機長)氏の公開されているFM音源カード回路図からの情報により、
      FM音源カード内で$FD17への接続は破棄されており、OPN割り込みフラグはFM77AV
      以降で実装されたものとみられる点を別途確認したためこの修正は正しいと判断
  ・RTC設定時に時間が狂う問題対策
  ・FM-7モード時のVRAMアクセス制限
  ・ASCII/Oh!FM JoyStick対応
  ・LP安定化処理
  ・SCCI対応

  <移植時に改良・変更した点>
  ・モニタ種別設定をコンボボックス化しアンバーイエローモニタもGUIで選択出来る
    ように変更
  ・ROMEO対応版とSCCI対応版を統合し、音源合成エンジン選択をコンボボックス化
    デフォルトは内蔵fmgen、ROMEO,SCCI機器が接続されていなくてもそれぞれ設定可能
    機器が接続されていない場合内蔵fmgenになる仕様とした
    ※このあたりの挙動はXM6typeGを参考にさせていただきました
    ※SCCI移植時にコードの可読性を最優先して書き直し、ROMEO、SCCI無効でビルドし
      た場合フラグ変数が(FALSE)に置き換わるだけとした
  ・XM7側SCCIチップ定義名を変更
    ※YM2610Bを'OPNBB'と定義しているのがどうにもしっくりこなかったので、
      他のチップ定義も同様に型番による定義名に変更
  ・メディアがVFDだった場合READ ADDRESSデータ作成時にID FIELDをID ADDRESS MARK
    の上に上書きしている問題を対策


□XM7との相違点

  XM7 V2-V2憑きとの相違点一覧です。
  記録として不具合修正以外のフィードバックされた点も含みます。

  <新規>
  ・FM77AV20モード、FM77AV20EXモードを追加
  ・MMRサブウインドウに学習RAMのEnable情報、高速MMRモードの表示を追加
  ・クリップボードの文字列を擬似的にキー入力する貼り付け機能を追加。ALT+Pに貼り
    付けのショートカットを追加
  ・キー入力支援機能を実装。貼り付け機能を利用しているため、事前にINIファイル
    設定が必要。ALT+Kにキー入力支援のショートカットを追加
  ・外部画像フィルタDLLに対応。現状ウインドウモード時のみ。表示サイズを0.5倍の
    320×200ピクセル、1.2倍の768×480ピクセル、1.5倍の960×600ピクセル、1.8倍の
    1152×720ピクセルで表示させるモードを追加
  ・外部画像フィルタDLL使用時に限りアスペクト比調整機能を追加。デフォルト比率は
    0.899(0.4495)。比率はアスペクト比設定サブウインドウで変更可能
  ・フロッピーディスクドライブで「#0,1両ドライブを交換する」「#2,3両ドライブを
    交換する」機能を実装
  ・フルスクリーンの画面モード選択肢に「現在の画面モード (整数倍拡大)」を追加
  ・外部音源DLLに対応。詳細はサウンド出力の項を参照
  ・ステート、ディスク、テープのファイル履歴の保存に対応
  ・マウント状態の保存に対応。ベタイメージファイルに対する書き込み禁止設定の
    保存にも対応
  ・漢字ROM、テープ/プリンタ、割り込み(メインCPU、サブCPU)のサブウインドウを追
    加。(XM7 V1.0で実装されていた仕様を継承)
  ・サウンド出力モードをステレオにしている際、FM音源ディスプレイでどちらから出
    力されているか確認できるようにした
  ・サブウインドウのポップアップスタイルに対応
  ・サブウインドウ表示状態の保存に対応。再起動後「全て復元」を実施することで、
    前回終了時のサブウインドウを再現可能。起動時に自動で復元させることも可能。
    サブウインドウポップアップモード変更時に保存情報はクリアする
  ・サブウインドウの「全て閉じる」を追加
  ・ブートモード、メインウインドウ位置、フルスクリーンモード、ステータスバー、
    カレントディレクトリの保存スイッチを追加
  ・固定のステートファイル名(デフォルトでは"STATE.XM7")でステートセーブおよび
    ロードするクイックセーブ・クイックロード機能を追加
  ・終了時および起動時にそれぞれ自動でクイックセーブ・クイックロードする機能を
    追加
  ・ステートの上書き保存時に、既存ファイルを"ファイル名_##.XM7"とファイル名を
    変更して保存しておく機能に対応。##は00からの通し番号であり、99まで。00～99
    まで存在すると99に上書きする仕様
  ・ファイル履歴にコンテキストメニューを追加し、履歴から削除できる機能を追加
  ・D77ファイルメディアリストにコンテキストメニューを追加し、ディスクタイトル
    (ラベル)の変更を行える機能を追加
  ・天丸さんのアイコンを元に作成した、機種アイコン2種(FM77AV20、FM77AV20EX)を
    追加

  <変更>
  ・動作機種変更時にFMTV-151チャンネルコールがONになる仕様へ変更
  ・ファイル履歴によってほぼ同等の操作が可能なため「一時取り出し(T)」を廃止
    一時取り出し状態で保存されたステートをロードすると、ファイル履歴に追加して
    アンマウントする
  ・その後実装された「最初まで巻き戻し(T)」も同様の理由で移植しない方針とする
  ・ドライブ2および3のアクセスインジケータは、どちらかのドライブにマウントした
    際に追加表示する
  ・メディアタイトルの文字数がアクセスインジケータの表示可能文字数を超えた際、
    種別(拡張子)のみを表示する
  ・マウント中はGUIメニューのドライブ(I)にファイル名付きで子メニュー表示するよ
    うに変更。このため、2D/VFDファイルに関しての孫メニューに表示されるマウント
    ディスクファイル種類表示は廃止
  ・キャプションへの表示情報に最後にロード／セーブしたステートを追加
    これはリセットによってクリアする。(XM6の動作仕様に準拠)
  ・マウントしたフロッピーディスク、テープイメージファイル名のキャプションへの
    表示・非表示を動作設定プロパティで設定できる仕様に変更
    ただし、表示にしても#2～3のマウントファイル名は表示出来ない
  ・標準FM音源/WHG音源/THG音源にアクセスした後に動作設定プロパティで各スイッチ
    をOFFにした場合リセットする仕様に変更
  ・ステートファイルのヘッダ文字列をXM7と区別できるよう変更
  ・XM7がステートファイルの拡張を行った際、本改造版で無条件にロード出来てしまい
    不具合が起きるのを防ぐため、改造版公開時に入手可能なXM7のソースコードで保存
    可能なステートの内部バージョン番号より大きな番号のステートファイルはロード
    出来ないように変更
  ・逆アセンブルサブウインドウ上で「実行中はPCに同期」がOFFの時「トレース」で
    同期しないように変更
  ・メインシステムのメモリダンプ・逆アセンブルサブウインドウで物理アドレスや
    セグメント指定で表示できるように変更(64KB単位)。ただしデバッガ、ジャンプ
    CPUレジスタ、システムスタック、ブレークポイント指定は論理アドレスモード時
    以外使用不可。割り込みベクタ、I/Oエリア指定は物理アドレスモード時では使用
    不可
  ・モニタ種別設定をコンボボックス化しアンバーイエローモニタもGUIで選択出来る
    ように変更
  ・ROMEO対応版とSCCI対応版を統合し、音源合成エンジン選択をコンボボックス化
    デフォルトは内蔵fmgen、ROMEO,SCCI機器が接続されていなくてもそれぞれ設定可能
    機器が接続されていない場合内蔵fmgenになる仕様とした
    ※このあたりの挙動はXM6typeGを参考にさせていただきました
    ※SCCI移植時にコードの可読性を最優先して書き直し、ROMEO、SCCI無効でビルドし
      た場合フラグ変数が(FALSE)に置き換わるだけとした
  ・XM7にその後実装されたメモリダンプ・逆アセンブルサブウインドウの物理アドレス
    モードについては、dashで先行実装していた仕様と衝突するため統合せず

  <修正>
  ・Visual C++でビルドした際のワーニングを軽減


□仮想マシン

  V2が提供する仮想マシン(Virtual Machine:以下VM)の仕様は以下の通りです。

    FM-7, FM77AV, FM77AV20, FM77AV20EX (いずれかを選択) + オプション機器

  FM77AV20EX最大構成での仕様をあげると次のようになります。

    プロセッサ     メイン/サブ 6809(MC68B09E相当品 クロック2.0MHz)×2
    RAM            メインRAM 192KB、サブRAM 5KB、ビデオRAM 96KB
    ROM            F-BASIC ROM 32KB、イニシエータROM 8KB
                   サブモニタROM 32KB
    漢字ROM        JIS第1水準漢字・非漢字・第2水準漢字 256KB
    辞書ROM        OASYS-Liteベース、256KB
    辞書学習RAM    スタティックRAM 8KB (バッテリーバックアップ)
    表示能力       640x200ドット     8色 2面
                   320x200ドット  4096色 1面    から選択
    フロッピー     640KBフロッピーディスクドライブ×4 (320KBとしても使用可)
    テープ         FSK方式にて記録、約1600bps
    サウンド       BEEP音
                   標準FM音源(YM2203)
                   WHG増設FM音源(YM2203)
                   THG増設FM音源(YM2203)
    その他         論理演算・直線補間LSI、DMAコントローラLSI、時計LSI、
                   RS-232Cインタフェース(ソフトウェアボーレート設定対応)など
    オプション機器 インテリジェントマウス(MSXマウス)、マウスセット(FMマウス)、
                   MIDIアダプタ、シリアルドットプリンタ、ジャストサウンド

  以下の仕様はFM-7, FM77AVモード時に追加されます。

    プロセッサ     日本語サブ  6809(MC68B09相当  クロック1.2MHz)
    RAM            日本語サブワークRAM 8KB
    ROM            辞書アクセスルーチンROM 16KB

  以下の仕様はFM-7モード時に追加されます。

    サウンド       標準PSG音源(AY-3-8910相当)


□ROMファイル

  同梱のXM7.txtからの変更点概略を記述します。

  (漢字・日本語関連サポート)
    ファイル名   サイズ
    KANJI   .ROM 131072 JIS第1水準漢字・非漢字 (FM-8/7/77)
    KANJI1  .ROM 131072 JIS第1水準漢字・非漢字 (FM77AV20/40/20EX/40EX/40SX)
    KANJIA  .ROM 131072 JIS第1水準漢字・非漢字 (FM77AV)
    KANJI   .TMP 131072 JIS第1水準漢字・非漢字

    KANJI.ROM→KANJI1.ROM→KANJIA.ROM→KANJI.TMPの順に検索し、最初に見つかった
    ファイルをFM77AVシリーズの本体内漢字ROMまたはFM-7の漢字ROMカードとして使用
    します。どれか一つが必須です。

    KANJI2  .ROM 131072 日本語カード JIS第2水準漢字
    KANJI2  .TMP 131072 JIS第1水準漢字・非漢字

    KANJI2.ROM→KANJI2.TMPの順に検索し、最初に見つかったファイルを日本語カード
    内漢字ROMとして使用します。日本語カード使用時はどちらか一つが必須です。

    KANJIN  .ROM 131072 日本語通信カード JIS第1水準漢字・非漢字
    KANJIN  .TMP 131072 JIS第1水準漢字・非漢字

    KANJIN.ROM→KANJIN.TMPの順に検索し、最初に見つかったファイルを日本語通信
    カード内漢字ROMとして使用します。日本語通信カード使用時はどちらか一つが必須
    です。

    日本語通信カード側漢字ROMのI/Oアドレスを実機同様に変更可能です。
    (設定1:$FD20, 設定2:$FD28)
    FM-7モード時のみ、漢字ROMカードをOFF、日本語通信カードをON、漢字ROM設定を2
    ($FD20)に設定することで、日本語通信カード側漢字ROMで実行可能です。

    漢字ROM設定1($FD20)はFM-77モード時や漢字ROMカード有効時も設定可能ですが、
    この場合本体側漢字ROMや漢字ROMカードが優先されます。

    漢字ROMの種別を漢字ROMサブウインドウで確認出来る様にしたため、
    JIS78準拠エミュレーションは廃止しました。


□SRAMファイル

  日本語カードでは辞書学習用のSRAMファイルを備えており、変換を行うたびに学習
  結果が書き込まれます。これはバッテリーバックアップされているため電源を切って
  も内容が保持されます。

  XM7では"USERDIC.DAT"というファイルを用いてこの動作をエミュレーションしていま
  す。起動時にこのファイルがなければ新規作成し、終了時に書き戻しています。


□コマンドライン

  同梱のXM7.txtからの変更点概略を記述します。

  .D77/.2D/.2DD/.VFD ディスクファイルをマウントし、VMをリセットします。


□キーボード

  同梱のXM7.txtからの変更点概略を記述します。

  クリップボードの文字列を擬似的にキー入力する貼り付け機能に対応しています。
  一度実行するとXM7.iniの[Keyboard]セクションにPasteWait, PasteWaitCntlキーが
  追加されるので、各位で適正値を設定してください。
  デフォルト値(0)では本機能無効となっています。
    PasteWait       通常キー入力時のウェイトタイム
    PasteWaitCntl   コントロールキー入力時のウェイトタイム
  環境によりますが、
    PasteWait=20
    PasteWaitCntl=200
  程度が適正値のようです。


□ディスクファイル

  同梱のXM7.txtからの変更点概略を記述します。

  ディスクファイルとして2Dフォーマット・2DDフォーマット・VFDフォーマット・D77
  フォーマットの4種類をサポートしています。

  2DDフォーマットは2Dフォーマットの80トラック版ともいえるもので、655360バイト
  のサイズを持ちます。


□サウンド出力

  同梱のXM7.txtからの変更点概略を記述します。

  外部音源DLL(V1)に対応しています。
  一度実行するとXM7.iniの[Sound]セクションにDllList0から8までのキーが追加され
  るので、そこへDLLのファイル名を記述してください。
  フルパスの必要はありません。
  XM7.exeと同じフォルダまたはパスの通ったフォルダに該当するDLLがあった場合、
  FM音源エミュレーション時に内蔵音源エンジンの代わりにそちらを使用します。
  Win32メニューで音源エンジンの選択も可能です。

  外部音源DLLは各位で導入してください。

  ※外部音源DLL(V1)使用時の制限事項
  ・FM音源合成時の線形補間(波形補間)が動作設定に関係なく無効になる。
  ・外部音源DLLで鳴らしているパートのみ、FM音源ディスプレイのレベルメータが
    表示出来なくなる。(DLL側がGetBufferに対応していれば表示可能)


□ディスプレイ描画

  同梱のXM7.txtからの変更点概略を記述します。

  外部画像フィルタDLLに対応しています。デフォルトはstrech.dllです。
  XM7.exeと同じフォルダまたはパスの通ったフォルダに該当するDLLがあった場合、
  ウインドウモード時の描画処理にそちらを使用します。
  Win32メニューで選択も可能です。
  一度実行するとXM7.iniの[Screen]セクションにDllList0から8までのキーが追加さ
  れるので、そちらを変更することで別のDLLへ変更も可能です。

  外部画像フィルタDLLは各位で導入してください。

  ※外部画像フィルタDLL使用時の注意事項
    一部外部画像フィルタDLLにおいて、Win32メニューを開いた箇所の再描画が
    されない場合があるため、この対策としてWin32メニューを閉じた際に強制的に
    画像を再描画しています。
    XM7.iniの[Screen]セクションに追加されるFilterRedrawScreenキーを0に変更する
    ことで、Win32メニューを閉じた際の強制再描画をOFFにすることが出来ます。


□RS-232C

  同梱のXM7.txtからの変更点概略を記述します。

  FM77AV20/FM77AV20EX内蔵RS-232Cインタフェース相当に対応。


□Win32メニュー

  同梱のXM7.txtからの変更点概略を記述します。

  ファイル(F)
    クイックロード(K)     VMの状態をファイルからクイックロードします。
    クイックセーブ(Q)     VMの状態をファイルにクイックセーブします。
    (ファイル名)          VMの状態をファイルからロードします。

  ドライブ1,ドライブ0
    ドライブ(I)に統合しました。

  ドライブ(I)
    #0(#1、#2、#3も同様)
      開く(O)             ディスクイメージファイルを設定します。
      取り外す(E)         ディスクイメージファイルを取り外します。
      書き込み禁止(W)     現在選択しているディスクを書き込み禁止に設定します。
      (ディスク名)        D77ファイル内のメディアを切り替えます。
      (ファイル名)        ディスクイメージファイルを設定します。
    #0,1両ﾄﾞﾗｲﾌﾞで開く(B) ディスクイメージファイルをドライブ0,1に設定します。
    #2,3両ﾄﾞﾗｲﾌﾞで開く(H) ディスクイメージファイルをドライブ2,3に設定します。
    #0,1両ﾄﾞﾗｲﾌﾞを交換する(R)
                          ドライブ0,1に設定したディスクイメージファイルを交換
                          します。
    #2,3両ﾄﾞﾗｲﾌﾞを交換する(P)
                          ドライブ2,3に設定したディスクイメージファイルを交換
                          します。
    全イジェクト(E)       全てのディスクイメージファイルを取り外します。

  テープ(A)
    開く(O)               テープイメージファイルを設定します。
    取り外す(E)           テープイメージファイルを取り外します。
    巻き戻し(W)           １つ手前まで巻き戻します。
    早送り(F)             １つ先まで早送りします。
    録音(R)               録音可能状態、再生状態を切り替えます。
    (ファイル名)          テープイメージファイルを設定します。

  表示(V)
    DMAコントローラ(A)    DMAコントローラウインドウを表示します。
    漢字ROM(N)            漢字ROMウインドウを表示します。
    テープ＆プリンタ(T)   オーディオカセット＆プリンタウインドウを表示します。
    ディスプレイサイズ(Z) ウインドウモード時の表示サイズを設定します。外部描画
                          フィルタ未使用時はx1.0およびx2.0のみ有効です。
    アスペクト比調整(E)   画像フィルタDLL使用時に限り、ONにすると以下で設定した
                          アスペクト比で表示します。

  デバッグ(D)
    割り込み(I)           割り込みウインドウを表示します。

  ツール(T)
    新規ディスク作成(D)   インターリーブフォーマットのスイッチが追加されました。
    2D/2DD→D77変換(2)    2D/2DD形式のイメージファイルをD77形式へ変換します。
    FM音源/PSGエンジン(F) 使用する音源エンジンを設定します。
    画像フィルタ(I)       使用する画像フィルタを設定します。
    貼り付け(E)           クリップボードの文字列を入力します。
    キー入力支援(K)       キー入力支援ダイアログを開きます。

  ウインドウ(W)
    全て復元(R)           アイコン化や非表示の前の状態に戻します。
                          動作設定の「起動時に復元」がOFFのとき、再起動後に前回
                          終了時開いていた全てのサブウインドウを復元します。

  右クリックサブメニュー
    タイトル変更(T)       タイトルを変更します。
    ヒストリから削除(D)   ヒストリから削除します。
    アスペクト比設定(A)   アスペクト比を設定します。


□その他

  キー入力支援機能につきましてgasajz氏のCopyPe for XM7dashの挙動を参考にさせて
  いただきました。この場を借りてお礼申し上げます。
  gasajz Room
  https://sites.google.com/site/gasaroom/home


□開発環境

  開発開始日時  2010年1月23日
  初公開日時    2010年6月10日 (V1.2)

  主要開発環境  ASUS ROG STRIX Z690-F GAMING WIFI
                  12th Gen Intel Core i7-12700 2.10GHz
                  32GB RAM, 1TB NVMe M.2 SSD, 2TB NVMe M.2 SSD
                  nVIDIA GeForce GTX 1660 SUPER VENTUS XS OC
                  Microsoft Windows 10 Pro Ver.22H2 (x64)
                ASUS Rampage II Extreme
                  Intel Core i7-920 (Bloomfield) 2.66GHz
                  18GB RAM, 4TB HDD
                  nVIDIA GeForce GTX 950
                  Microsoft Windows 10 Pro Ver.22H2 (x64)
                NEC LaVie G Type Z PC-GL19614GU
                  Intel Core i7-3517U 1.9GHz, 4GB RAM, 200GB SSD
                  Microsoft Windows 10 Pro Ver.22H2 (x64)
                FM77AV40
                  ビデオデジタイズカード (FM77-412)
                  F-BASIC V3.4L10, F-BASIC V3.4L20, F-BASIC V3.3L10
                FM77AV-2
                  ビデオデジタイズカード (FM77-411)
                  FMデータレコーダ (MB27502)
                  F-BASIC V3.3L10, F-BASIC V3.3L20, F-BASIC V3.3L30

  主要開発言語  Microsoft Visual Studio 2017 Community 15.9.54 (リリースビルド)
                Netwide Assembler (NASM) v0.98.08.towns5
                HD6309 cross assembler version 01.20T
                Borland C++ Compiler 5.5.1


□XM7dash V2に関するFAQ

  <ディスク>

  Q:2DDファイルの構造・目的がわかりません。
  A:簡単に言うと2Dファイルの2DD版です。F-BASIC標準の80(track)×2(side)×16(sec-
    tor)×256(byte)を、頭から順に連結したものです。

  <デバッガ>

  Q:割り込みウインドウで、OPN/WHG/THGがMaskになりません。
  A:仕様です。OPN/WHG/THGの表示に関してはON/OFFにしか対応していません。
  Q:割り込み(日本語サブ)ウインドウは？
  A:日本語サブCPUの割り込み信号が発生する仕組みが無いため実装していません。


□連絡先

  Twitter
  https://twitter.com/tomatoma911
