■ np21/w rev100以前で使用する場合は同梱のver1.6を使用して下さい

★ npmouse.com

　本プログラムはINT33hに常駐しているマウスドライバの動作を一部上書きし、
　MS-DOS上でNeko Project 21/Wのシームレスマウスに対応させるものです。
　理論上はINT33hに常駐する大抵のDOS用マウスドライバで使用できますが、
　相性によっては上手く動かない可能性もあります。
　また、相対マウス座標を使用するソフトウェアでは使用できません。


【内容】
・NPMOUSE.COM - np21/wシームレスマウス通常版
・NPMOUSEA.COM - np21/wシームレスマウス高機能版
・NPMOUSES.COM - np21/wシームレスマウス簡易版
・NPMOUSEA.SYS - np21/wシームレスマウス高機能デバイスドライバ版
・NPMOUSE.TXT - いま読んでいるもの
・src\ - 各ソース（NASM用）


【動作環境】
　・Neko Project 21/W（ver0.86 rev101以降）上のMS-DOS
　（それより前のバージョンではNPMOUSE ver1.6以前を使用して下さい）
　・Device->Mouse->Non-capture Controlが有効な環境


【使用方法】
　先にMOUSE.COM等のマウスドライバを常駐させて下さい。
（先に常駐できない場合は後述の高機能版の/iオプションをご利用下さい）

(例)A> MOUSE

　続いて、コマンドラインから次のように実行してください。

　　A> NPMOUSE

  常駐解除する場合は/rオプションを付けてください

　　A> NPMOUSE /r

  なお、NPMOUSEを常駐解除せずにマウスドライバを解放しないでください。
　先にNPMOUSEを常駐解除しないとメモリにごみを残す恐れがあります。

　常駐させた状態で、Device->Mouse->Non-capture Controlが有効なとき、
　DOSマウスドライバのマウス座標がホストの座標に一致するようになります。

　マウス中ボタンまたはF12でキャプチャした場合は、従来と同じ挙動になります。
　相対座標を見るソフトでマウスが正しく動かないときは、キャプチャによって
　問題を回避することが出来ます（シームレスではありませんが）。


【高度なオプション】
　NPMOUSEA.COMは常駐サイズが若干大きい代わりに、より詳細な設定ができる
　高機能版です。マウス移動範囲制限もサポートしています。

　　A> NPMOUSEA [/r] [/i] [/n] [/m] [/h] [/o] [/x] [/u]  [/f] 
                [/b<XMIN>,<XMAX>,<YMIN>,<YMAX>]

　/r: 常駐解除。他のオプションがある場合も無視して解除するだけです。
　/i: インテリジェントモード。任意のタイミングで常駐可能です（詳細は後述）
　/n: NECマウスドライバ準拠モードに強制（デフォルトは自動判定）
　/m: MSマウスドライバ準拠モードに強制（デフォルトは自動判定）
　/h: DOS側のカーソルを表示せず、ホストのカーソルを常に使う。
　/o: DOS側とホスト側のカーソルを両方表示。位置ずれ確認などに使用可能。
　/x: NPMOUSE常駐中はホストのカーソルを常時非表示にする。
　/u: 常駐時にマウスドライバのチェックをスキップします。準拠モードも
　　　確認しませんので、/n,/mは明示的に指示する必要があります。
　/f: マウス移動可能範囲を固定する。デフォルトは640x400の範囲。
　/b: デフォルトのマウス移動可能範囲を指定する。オプション/fと併せて
　　　使用すると、マウス移動範囲を強制固定可能。
　    (例: 範囲を640x480に固定) NPMOUSEA /f /b0,639,0,479


【/iオプション インテリジェントモードについて】
　通常のnpmouseは常駐済みマウスドライバがあることが前提ですが、高機能版
　NPMOUSEA.COMにインテリジェントモード（/i）オプションを付けると、任意の
　タイミングでの常駐と解放が可能になります。つまり、
　　npmousea常駐→mouse.com常駐→npmousea常駐解除→mouse.com常駐解除
　のような変則的な順番での常駐・常駐解除も可能です。
　マウスドライバをnpmouseaより先に解放してはいけないという制限もなく、
　扱いが簡単になります。常駐もマウスドライバ常駐より前に可能です。

　マウスドライバ側からはnpmouseaは存在しないかのように振る舞いますので、
　ドライバを置き換えるとチェックに引っかかるものも動く可能性があります。
　ただし、変則的な方法で常駐しようとするマウスドライバには無力です。
　また、メモリ使用量が通常のものよりも増えます。


【/hオプション ホストカーソル使用モードについて】
　デフォルトはDOS側のカーソルが残りホストのカーソルが消える仕様ですが、
　常駐時/hを付けるとホストのカーソルを残してDOS側のカーソルを消します。
　ただし、未実装機能によってマウスカーソル位置がズレる可能性があるので、
　マウス操作座標がずれる場合は/hオプションを付けないでください。
　また、カーソル表示はマウスドライバ側の表示機能のみを制御しますので、
　ソフト独自の描画の場合はカーソルが二重で表示される場合があります。

　なお、ホストカーソル使用モードでnp2のマウスキャプチャを行ったときは、
　可能な限りDOSカーソルを復活させるように頑張りますが、DOS側にとって
　本来想定外の挙動のため、画面が乱れたり表示されなかったりする可能性
　があります。この点は完全解決が難しいため制限事項とします。


【マウスドライバ準拠モードについて】
　マウスドライバはNEC仕様準拠とMS仕様準拠があり、間違えるとマウス移動
　範囲が変になります。簡易版NPMOUSES.COMはどちらでも問題ありません。
　NPMOUSEはどちらの仕様かをマウスドライバの応答から自動判定します。
　NEC仕様準拠の場合、
　　N mode installed.
　MS仕様準拠の場合、
　　installed.
　と表示されます。※NPMOUSES.COMは判定不要のため常にinstalled.です。
　自動判定結果がおかしい場合はそもそも判定不要なNPMOUSES.COMを使うか、
　高機能版NPMOUSEA.COMを使用し、明示的に/nまたは/mを指定して下さい。


【簡易版について】
　NPMOUSES.COMはマウス移動範囲を無視して常駐サイズを小さくした版です。
　マウス移動範囲が常に全画面のため、制限されている前提で動くソフトは
　問題を起こす可能性があります。
　また、既存ハンドラの手前にあるシグネチャコピーを省略するため、ここを
　見てマウスドライバの有無を判定するソフトは動きません（QuickCなど）。


【デバイスドライバ版について】
　NPMOUSEA.SYSはNPMOUSEA.COMのデバイスドライバ版です。CONFIG.SYSで
　組み込むことが出来ます。オプションは/r以外はNPMOUSEA.COMと同じ物が
　使用できます。一度組み込んだ後に常駐解除することは出来ません。
　特別メモリ消費が少ないわけでもないので、特に事情が無ければ通常版の
　使用をお勧めします。


【Q&A】
Q. よく分からないけどとりあえず使いたい
A. 比較的何も考えずに使える方法は次の2通りです。
　1. MOUSE.COM等を組み込んでからNPMOUSE.COMをオプションなしで実行
　2. とりあえずNPMOUSEA.COM /iで常駐して普段通りに使う

Q. マウスが動かない
A. np2本体のDevice->Mouse->Non-capture Controlは有効になっていますか。
　有効になっていない場合、マウスは動きません。

Q. マウスのボタンが効かない・移動範囲がおかしい
A. マウスドライバのNEC準拠・MS準拠の判定が上手くいかない場合があり
　ます。高機能版NPMOUSEA.COMの/n, /mオプションで明示的に指定してみて
　下さい。それでも移動範囲がおかしい場合は/f, /bオプションでマウス
　移動範囲を固定してみて下さい。

Q. NPMOUSEを組み込むと暴走した
A. 一部のマウスドライバはNPMOUSE組み込み時のチェックで暴走することが
　あります。NPMOUSEA.COM /iで先に常駐すると回避できることがあります。

Q. マウスドライバ常駐後にNPMOUSEを起動する余地がない
A. NPMOUSEA.COM /iを使用すればマウスドライバ常駐前にNPMOUSEを常駐
　させることが出来ます。

Q. マウスドライバを使わないソフトをシームレスにしたい
A. 本プログラムはINT 33hに常駐するマウスドライバの使用が前提ですので、
　そうではないソフトは原理的に動きません。ただし、表向きにはマウス
　ドライバを使わないソフトも、内部的にINT 33hのマウスドライバ互換で
　動く仕組みになっていることがあります。この場合、NPMOUSEA.COM /iを
　使用して先に常駐させることで動く可能性があります。
　が、あまり期待しないで下さい。

Q. NPMOUSEを解除する前にマウスドライバを解放してしまった
A. 覆水盆に返らず。もうどうにもならないので潔くリセットして下さい。
　このようなことが起こるのが面倒であれば、NPMOUSEA.COM /iを使えば
　マウスドライバ解放を任意のタイミングで出来るようになります。


【その他】
　Neko Project 21/W以外で実行した場合は常駐しません（エラーになります）
　また、ver0.86 rev100以前で使用した場合も常駐しません。

　ソースコードはいちおう猫本体と同じ修正BSDライセンスとしますが、
　いいかげんな代物ですので気にせず自由に使っていただいても大丈夫です。


【更新履歴】
ver.1.0 初版
ver.1.1 RESET DRIVER AND READ STATUSでカーソル表示を復活させるようにした
ver.1.2 高機能版 NPMOUSEA.COMを追加
ver.1.3 バグまみれだったのを修正、NECマウスドライバ準拠モード追加
        常駐サイズを出来るだけ小さくした
ver.1.4 常駐サイズをさらに小さくした
ver.1.5 やり過ぎて問題があったので常駐サイズが少し増えた
        マウスドライバのNEC/MS仕様準拠を自動判定するようにした
　　　　問題を起こすため通常版のホストカーソル使用オプション廃止
        極小版のNPMOUSES.COMを追加
ver.1.6 インテリジェントモード（任意タイミングでの常駐解放）を追加
ver.1.7 np21/w rev101の新APIに対応、WAB画面対応、常駐サイズ縮小
ver.1.8 常駐判定ミスを発生しにくくした
