-<□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□>-
タウンズ用タブレット
FMT-TB111(相当品)をマウスとして使うドライバー
TnTABLET.x
ver 0.97
Copyright 1994 1995 1996 TNB製作所
-<□■□ これは □■□>-
FUJITSU FM-TWONS用タブレット FMT-TB111(以下タブレット)をマウスとしてしよ
うするドライバーです。
タブレットを接続出来るのはJoy Port1(前面)だけです。これはハード的なための
制限になっています。このドライバーが常駐していても、他のジョイスティックポー
トを使用するソフトでもほとんど問題なく使えるようになっています。もちろん、
タブレットを抜き差ししても大丈夫です(今のところ誤作動ゼロ)。
また、マウスエミュレータとして使う以外、専用コールを使い直接タブレットの
ステイタスを使用することも可能です。これは、リファレンス[ TABLET.REF ]を参
照して下さい。ソフトの方を対応させれば相対座標モード、絶対座標モードの切り
替えはもちろん、タブレットのペンが接触しているか、筆圧がいくつかも判ります。
T-EXTENSION MOUSE CALLにも対応しています(TMS.x同梱ファイルを参照のこと)。
-<□■□ 実行 □■□>-
[使用法] TnTABLET [switch]
/R ・・・・ 常駐解除します。
/D ・・・・ 相対座標モードでドライヴします。(def.)
/D[n] ・ [n]は0~3で、タブレットの向きを指定し、相対座標モードで
ドライヴします。向きは相対座標でしか意味をなしません。
/P ・・・・ 絶対座標モード1でドライヴします。モード1はMS_CURSTによる
座標設定を行っています。移動量は0になります。
/P[n] ・ 最大移動値[n]で絶対座標モード2でドライヴします。最大移動値
は、HIOCS.x -ms2 使用時 15ぐらいがいいようです。モード2
は目標のポイントへ移動していく方式をとっています。そのため、
移動量も存在します。
/N ・・・・ マウスのエミュレーションをしません。
/S0 ・・・ 絶対座標用。MS_LIMITの範囲による移動範囲を判別します。
MS_LIMITを使用してマウスの移動範囲を抑えたり変更しまくるも
のには対応出来ない(しづらい)でしょう。(def.)
/S1 ・・・ 絶対座標用。IOCS CRTMODによる移動範囲を判別します。ほとん
どのソフトは問題なく使用出来ますが、特殊な画面モード(IOCS
を使わず画面を変更したもの)や実画面を使っている(マウスによっ
てスクロールしていく)ものには対応出来ないでしょう。
/S2 ・・・ 絶対座標用。512x512を画面サイズとします。
/B0 ・・・ マウスボタンモードを FM-Townsで使用時と同じにします。
ノーマル型 [左=プレス,右=サイドスイッチ] (def.)
/B1 ・・・ マウスボタンモードを FM-Townsで使用時と反対にします。
リバース型 [左=サイドスイッチ,右=プレス]
/B2 ・・・ マウスボタンモードを PC-9801Pの使い方と同じにします。
PC-9801P型 [左=プレス,右=サイドスイッチ+プレス]
/BP[n] マウスボタンエミュのとき、ペン先プレスは[n]以上の時、クリッ
クされたとします。プレス最大値は126で、16~100の範囲で指定
出来ます(def.64)。
/K0 ・・・ キーによる割り込み無しにします。
/K1 ・・・ シフトキー[-KSで設定]+[XF3]~[XF5]キーによりマウスエミュレー
トモードをいつでも変更出来るようになります。
/K2 ・・・ [XF1],[XF2]キーによりマウスカーソルの水平垂直移動制限を付け
ます。
/K3 ・・・ [XF1],[XF2]キーによりマウスカーソルの水平垂直移動制限を付け
ます。シフトキー[-KSで設定]+[XF3]~[XF5]キーによりマウスエ
ミュレートモードをいつでも変更出来るようになります。
*[XF3]=相対座標モードでマウスエミュレートします
*[XF4]=絶対座標モードでマウスエミュレートします
*[XF5]=マウスエミュレートしません
/KS[n] キー機能のシフトキー設定(def.8 = [OPT2])。
[OPT.2]=8,[OPT.1]=4,[CTRL]=2,[SHIFT]=1 で、シフトキーに当
てる数をたしていった数値を[n]に設定します。
例えば[CTRL]+[SHIFT]なら 2+1= 3 を設定します。
/J0 ・・・ IOCS($3B)[JOYGET]をエミュレートしません。(def.)
/J1 ・・・ 座標でIOCS($3B)[JOYGET]をエミュレートします。タブレットのポ
イントしている位置で、上下左右を。プレス、サイドスイッチで
トリガーABに対応します。
/I ・・・・ 強制常駐する。
常駐時でも常駐状態でも設定を変えられます。
-<□■□ 絶対座標 □■□>-
絶対座標モード1はタブレットのポイントされた座標をX68の画面の大きさに
変換して、IOCSコールのMS_CURSTを使用してマウスを飛ばしています。そのため、
移動量は0になります。この移動量をみているソフトは動かないことになります(例
えばSX)。
絶対座標モード2はタブレットのポイントされた座標をX68の画面の大きさに
変換して、現在のマウスカーソルの座標との差を移動量として動かしています。こ
の移動量の最大値設定が大きすぎるとマウスポインタがぶれることがあります。少
なければ少ないほどぶれなくなるようですがレスポンスが遅くなります。大きすぎ
ると飛び回ります。X68000のマウスドライバーはある一定以上動くと加速するよう
になっています(30ポイントマウスを動かした場合、30ドット以上動くようになっ
ている)。これは、操作性向上のためですが、その仕様のため、絶対座標モード2で
は正確な大きい移動がうまく行っていません。ご了承下さい。確認しているのでは、
HIOCS.x -ms2 使用時、最大移動値は15で安定します。
絶対座標の計算関係のスイッチ /S はほとんどの場合 /S0 でいいでしょう。これ
は画面の大きさを MS_LIMIT で設定されている IOCSワークをみて画面サイズをみて
いるものです。普通、スクリーンモードを変えた場合 MS_LIMIT に画面サイズの最
大が設定されるので問題がないのです。そのため、MS_LIMIT を使用してマウスの行
動を抑えたり変更しまくるものに対しては、絶対座標関係動作が不安定になります。
そう言ったものに対しては /S1 ,/S2を使用して下さい。
絶対座標の計算の時、画面が512x512の正比特殊モードになっている場合、タブレッ
トの右1/3は無視され、正方でしか使えません。比率を考えれば仕方のないことです。
-<□■□ 注意 □■□>-
接続チェックは2秒毎にしているので、タブレットのさしなおしした時、運が悪
いと2秒反応しないことがあります。が、人間の速度と、使用開始までの準備など
考えても十分すぎる時間と思い、2秒としています。
市販ソフトなどマウス割り込みを禁止されていると、IOCSコールでデータを拾え
ないことがあります。その場合、-N を使用して下さい(-N -J1 で パロディウスも
出来る!)。-Nでは、マウス割り込みと関係なく要求を受けた時に、タブレットを
チェックします。
ドライバ常駐時、常時0.2%MHzの消費します(10Mhz実測)。タブレットを接続して
いない時はに0.1%MHz消費します(10Mhz実測)。ただし、-N(マウスエミュレートをし
ない)の場合、消費はありません。
[XF1],[XF2]キーによるマウスカーソルの水平垂直移動制限はTnTABLETより前に常
駐させた、マウスドライバーのデバイスには影響しません。
相対座標時のマウスカーソルの速度などは HIOCS の -ms で変更可能なので特に
スイッチは付けていません。
セガマウスドライバー(MDMOUSE.x 拙作)と共存させる場合、MDMOUSE.xを先に常駐
してからこのタブレットドライバーを常駐すれば問題ないです。デバイスを挿せば
それぞれ判断して対応してくれます。
-<□■□ TBDRV.x □■□>-
私が、このドライバーを作るきっかけとなった、神河みるく☆ミ氏制作の
TBDRV.xと、同じタブレットの同じドライバーです。私が入手した頃のヴァー
ジョンはまだテストバージョンだったこともあり、動作が不安定でした。また、使
用したタブレットの持ち主がマウスとして使うことを中心に考えていたことと、
神河みるく☆ミ氏のドライバーとは方向性が違う事で、結果的にTnTABLETと同時進
行制作してしまった感じになっています。持ち主の人は、TBDRV.xがなければ
このタブレットを買わなかったわけですし、タブレット入力部も神河みるく☆ミ氏
のドライバーを解析、使わせて頂いてますし、大変感謝しております。
そのTBDRV.xに比べ、TnTABLETの長所として、処理が軽いことと、タブレットコネ
クトチェック改善により、常駐している時タブレットの抜き差しが可能なことです。
常に常駐しておき、使いたい時タブレットを接続すれば、使えるようになります。
-N を付ければ TBDRV.x と同じ動作、仕様になるはずです (MS_EMU.x ver1.00 は動
作確認)。
神河みるく☆ミ氏オリジナルの TBDRV.xや、ライブラリなどはネット等でで入手
出来ます。
-<□■□ 紹介 □■□>-
使用したタブレットは、FM-TOWNS用のもので、ペンタッチ有効部は多少ちいさめ
ではありますが、筆圧も検出可能、値段も定価で¥39800。実売価格¥30000前
後(94'11月秋葉原)と手ごろです。
更に、RS-232Cタイプのタブレットに比べ、このタブレットはジョイスティック
ポートに接続なので非常にセットも簡単、電池もアタプタもいりません!(挿すだけ
で電源オッケー!)。
何と言っても無改造でX68000に繋がるとは思ってもいないことでした。
(神河みるく☆ミ氏に感謝感謝)。
-<□■□ 感謝 □■□>-
タウンズ用タブレットFMT-TB111(相当品)のデータ読み込み方法は
「ぺけろくでうんずたぶれっとがつかえるのであるぅ~ってな感じ」
TBDRV.x ver 0.30~1.10
制作、神河みるく☆ミ氏のものを解析、使用させて頂きました。この場を借りてお
礼申し上げます。
また「FMT-TB111W」を快く貸してくださった、しおしお氏に感謝しま
す。
-<□■□ 使用ツール □■□>-
* TBDRV.x ver.0.30 M.Kouga氏作
* SUPERED.X ver 1.18 T.Nishikawa氏作
* gcc.x 真里子バージョン TOOL#1 Based on GCC 1.42
* has.x ver 3.08 YuNK氏作
* hlk.x ver 3.01 SALT氏作
* MDMOUSE.x ver 0.51 ひで(TNB製作所)作
* TP12.x ver 1.30 ひで(TNB製作所)作
* TFF.x ver 1.15 ひで(TNB製作所)作
文責:田圃(TNB製作所)
==========================================================================
某月某日: Oh!Xでマウスドライバがあって、「SXとかでは使えない」と
あったので、セガマウスドライバを制作。
某月某日: 友人しおしお氏が前にタウンズ用のジョイポートに繋がるタブレッ
トを購入しているのを思い出す。
10/ 8(土):タブレットを借りる。実は既にドライバーはあった。というか、
神河みるく☆ミ氏の同タブレットのドライバーがあったから購入
したそうだ。のだが、マウスエミュするために2つ常駐しなけれ
ばならないことや、他の常駐物との兼ね合いから絶対座標ドライ
ヴモードがうまく行かなかった。取り敢えず、神河みるく☆ミ氏
のドライバーの解析。取り合えずのコーティング。相対座標のみ
ながら試作完成。ただし、MPUパワー70%を使うという凄い
ものになった。
10/ 9(日):高速化。8255のモードを変えてタブレットが反応するまで待つの
を毎回やっていたので遅かった。抜かれている時は1秒毎にチェッ
ク入るように変更。0.07Mhzの消費に抑えた(10Mhz)。
絶対座標に対応。したが、うまく行かない。結局マウスドライバ
では「移動させるべきドット数」分、ドットが動くわけではなかっ
たためにおかしかった。最大移動値をかなり小さくした。タブレッ
トの範囲とマウスの移動範囲の対比で位置を決めた。そのため結
構、いろんなものに対応出来るのでは?
IOCS CALL[JOYGET]をフックしているので、せっかくだからタブレッ
トのポイントの座標でスティックデータを返すように出来るよう
にした。
常駐状態でモードを切れ変えられるように変更。
絶対座標の位置を決める方法にマウスに移動範囲を使ったので、
例えばエディタ中に範囲を決めるのにマウスの移動範囲を変えて
いる場合、つかえない。こういったエディタなら相対モードを使
うしかない。
10/10(月):IOCS JOYGETコールに追加。コールでモードを変えられるよう
にした。
ボタンの反転を付けた。ただし、JOYGET($8003)の値は反転しない。
ver 1.00
10/16(日):常駐チェックの方法を改善。
ver 1.01
10/17(月):/N を追加。JOYGETコールの変更。まだ一切公開していなくてよ
かった。
ver 1.10
10/26(水):いきなりVersion 0.50に変更。きゃー。タイトル表示部も、「X68k」
の文字が消えた(ちゃぷにさんの突っ込みによる^_^;)。
一応030でも大丈夫と思う。だいぶいじったが、ここにタブレッ
トがないため試動出来ず。コールも安定してきた。とおもう。
タブレットが4:3に対しCRTが3:2なので調整。
マウスエミュのボタンモードにPC-9801Penのモードを追加。使う
人はいるか!!
ver 0.50
10/27(木):512x512 の1:1モードに仮対応。
10/28(金):おお、一発で動いた。うんうん。512x512 の1:1モード対応にもっ
と楽なのがあったのでそうした。サブルーチンに小分けした。
1秒から2秒へ間隔を広げた。
ver 0.60
10/30(日):ファイル名をTTABLET から TnTABLETに変更。
神河みるく☆ミ氏のTBDRVコールに完全対応。
風邪ひいてつらいっちゃ。
/Iを廃止。
ver 0.70
10/31(月):ジョイエミュレーション部にバグがあった。そのためタブレッ
トを抜いても他のスティックが使えなかった。改善。お蔭でパロ
ディウスがタブレットで出来た。
神河みるく☆ミ氏からTEL。うんうん。
-S1の仕様を変更。
絶対座標モード1で座標設定方を変えた。XY同時に変えた場合、
片方でもはみ出たら動かないのを対処するため。
ver 0.80
11/ 1(火):常駐時、他のタブレットドライヴァーがないかチェック!
ver 0.81
11/ 2(水):SEGA-MULTITAPをさすと誤認識してしまうのを改善。タブレット
コネクトチェックを微最適化。
11/ 3(木):なぜか、ZsSTAFF v2 だと、ウィンドウのバーを動かすとタブレッ
ト認識が外れてしまう。たぶん、8255をなにやら操っているよう
だが・・。とにかく、改善。おっけー!
サンクス きゃろっとたうん TAKAMI様
ver 0.82
11/18(金):掲載は来月へ持ち越しであった。ということで久々にいじる。
トラックパットドライバー書いたついでに軽い修正を行っただけ。
今、タブレットがないのでひとまず、サイバースティック用のタ
ブレットコールエミュレータを制作。
11/20(日):おお、オリジナルの方が奇麗になっている! キーによるマウス
エミュレーション変更はいいアイデア! コールも増えているし。
とりえあずコールを対応。キーは保留。
OPT2+XF3・相対座標エミュレーション
OPT2+XF4・絶対座標エミュレーション
OPT2+XF5・エミュレーション中断
ver 0.83
11/24(木):エンバグしていた。修正。
んー、TBDRVコールの変更が速すぎる・・。やっぱり完全に方向性
を変えるべきかなー。
ver 0.84
11/26(土):ついに、オリジナルにあるキー操作を導入。しおしお氏の一言
で決めた。一応シフトキーの変更も可能にしておいた。カルコン
プエミュレータドライバーに対応のため、多少の変更。デバグ。
コール仕様の変更。残念ながらTBDRVコールはV1.00までしか対応
出来ていない。
ver 0.90
11/28(月):ペン先プレスによるクリックの強さを決められるようにした。
メッセージに数値も出るようにした。
気になっていた絶対座標モード1のとき、マウス形状が変わると
たまに後が残ったりしていたのが治った。また、動いていない場
合のチェックも入れた。
ver 0.91
11/30(水):カルコンプエミュレータドライバーの都合でちょっと修正。
相対座標マウスエミュでミスがあった。修正。
サンクス きゃろっとたうん GanGan様
絶対座標の時ペンが浮いていても座標を出すようにした。
ver 0.92
12/ 6(火):(電脳倶楽部編集部より)
高速改造されたX68030への配慮。
ver 0.92a
12/18(日):上記の改造を取り込む。ついでにArtPad付属のドライバーと同
じ機能の、タブレットを回転させても大丈夫モードを秘かに追加。
-k のデフォルトを3にした。
12/19(月):あのTEMCALLに対応。
ver 0.93
12/23(金):タブレット接続したまま、キーボードによりマウスエミュをきっ
て、タブレットを抜くと、ノーマルパットでの動作がおかしくなっ
ていたのを改善(8255のモードの直し忘れ)。
ver 0.94
'95
1/29(日):微調整
ver 0.95
4/18(火):たまに高速機でうまく行かなかったタイミングを調整。どーかな?
ver 0.96
'96
2/24(土):常駐時のコード直接書き替えをやめた。非コネクト時のコネク
トチェックを2秒から1秒にした。
ver 0.97
============================================================================
>