GIGAMIX DM-SYSTEM2
デバイストライバ
Copyright (c) 1997 GIGAMIX, All rights reserved.

updated: Sep 25, 1997
sorry, this page is Japanese only.

● もくじ

  1. デバイスドライバとは

  2. 対応済みデバイスドライバ

  3. 現在開発中のデバイスドライバ

  4. その他、対応が予定されているもの

  5. デバイスドライバの作り方

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

● デバイスドライバとは

 主にマウス相当のアナログデバイスで操作を入力する為に用意された、専用の入力ルーチンです。

 MSX-BASICのstick文やpad文で読めない入力機器は、デバイスドライバを用意することによりDMシステム2で対応できます。

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

● 対応済みデバイスドライバ

下線の引いてあるドライバ名をクリックすると.LZH形式のファイルを転送します。

マウス+パッド
DEV-NORM.LZH (3KB)

MSXのジョイパッドとマウスの入力を行います。マウスとジョイパッドという異なるハードでの認識や入力を統一できるBASICプログラマの強い味方です。DMシステム2ではこのドライバがデフォルトでインストールされています。

最近、FM-TOWNSのパッドに対応し、DMシステム2のデバイス入力機能でSELECTボタン、STARTボタンが検出できるようになりました。


PCCM忍者タップ
DEV-LABY.LZH (4KB)

1つのポートで4人まで同時に入力できるMSX用マルチタップ、忍者タップに対応した対戦ゲーム用のドライバです。ポート1、2、キーボード2人の、合計10タスクの入力を同時に行います。ポートに忍者タップが接続されていなくても使えます

※このドライバは拙作「マジカルラビリンスRemix」で使用されたものです。

※PCCM忍者タップドライバはPCCMの著作物ですが、改造・商利用の許可を得ています。

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

● 現在開発中のデバイスドライバ

ネタ募集中(笑)

● その他、対応が予定されているもの

  1. MEGADRIVE PAD (SEGA)→メガドラパッドならあるという人へ
  2. FUJITSU 6ボタンパッド (富士通)→アタリ仕様だし、かなり美味しいかも
  3. サイバースティック (SHARP)→アタリ仕様のアナログジョイスティック
  4. アルカノイドパドル(NIDECOM)×2→上下用と左右用に1個ずつ使用(笑)
  5. 光線銃 PLUS-X (ASCII)→これはさすがに無理かも…
  6. PAX パワーグローブ (PAX)→要・アタリ端子に改造(おいおい…)
-------------------------------------------------------------------------

● デバイスドライバの作り方

○ 本体(7800h〜79FFh:0.5KB)


   + 0〜+39  ドライバ名称
   +40       EOFコード (1Ah)
   +41       ドライバ種別番号 (02h:デバイスドライバ)
   +42〜+47  未使用
      +48〜     コールエントリ

        ORG     7800h

7800    DEFM    'ドライバ名称を漢字20文字に収めます。  '      ;余白は20hで
7828    DEFB    1Ah     ;EOF
7829    DEFB    02h     ;デバイスドライバの意
782A    DEFS    6       ;未使用
7830    JP      DEVINI  ;デバイスの接続状況を判定し、ワークを設定する
7833    JP      DEVMOU  ;8方向デバイスの入力結果を返す
7836    JP      DEVSTK  ;マウス系デバイスの入力結果を返す
7839    JP      DEVTRG  ;トリガの入力結果

○ エントリーアドレス

+48 DEVINI (7830h) デバイスの接続状況を判定し、ワークを設定する

        [in]    なし
        [out]   DMMPO1 (4344h)  ポート1の接続結果 (0:無し NZ:認識番号)
                DMMPO2 (4345h)  ポート2の接続結果 (0:無し NZ:認識番号)

        ドライバ内にデバイスチェックルーチンが必要です。DMシステム2ではデ
        バイス入力の際に必ず1回チェックを行うように推奨しています。

        対応する周辺機器の存在をポート2、ポート1の順にチェックします。ポ
        ートは両方チェックします。

        接続結果をDMシステム2・インフォメーションエリアへ返し、RETします。
        認識番号は現在、以下のハードウェアを振り分けています。
        
                0:未接続(MSX標準パッド)
                1:マウス
                2:PCCM忍者タップ

        ドライバ内で保存が必要なデータがあれば、各自で処理してください。


+51 DEVMOU (7833h) アナログデバイスの入力結果を返す

        [in]    なし
        [out]   L       x増分(相対座標)
                H       y増分(相対座標)

        マウスなどのアナログデバイスの入力結果を返します。

        DMシステム2はタイマー割り込み内から、このルーチンをコールします。
        デバイスドライバでの入力ルーチンは、1/60秒につき1入力とします。
        できるだけ高速なルーチンのプログラミングに期待します。

        ポート1とポート2で同時に入力があった場合、基本的にポート2を優先
        することにします。

        ライトペンのように絶対座標を返す場合はインフォメーションエリアの
        DMMX(4342h)とDMMY(4343h)を書き換えてください。


+54 DEVSTK (7876h) 8方向デバイスの入力結果を返す

        [in]    なし
        [out]   A       0〜8(STICK関数と同等)

        主にパッドの入力結果を返します。

        DMシステム2はタイマー割り込み内から、このルーチンをコールします。

        ポート1とポート2で同時に入力があった場合、基本的にポート2を優先
        することにします。


+57 DEVTRG (7879h) トリガの入力結果を返す

        [in]    なし
        [out]   A        0      入力なし
                         9      トリガ1
                        10      トリガ2
                        その他  キーボード入力互換のキー (11〜15)

        トリガの入力結果を返します。

        DMシステム2はタイマー割り込み内から、このルーチンをコールします。

        ポート1とポート2で同時に入力があった場合、基本的にポート2を優先
        することにしてください。

        トリガ入力はトリガ1、トリガ2の入力結果が主ですが、複数のトリガ入
        力が可能なデバイスである場合(6ボタンパッド等) キーボード入力に対
        応したキー番号を返すことによりキーボードに触れずにキーボード入力
        を再現できます。6ボタンパッドのXボタンでESCキー相当等々…。意外
        と面白そうなので、ぜひ対応してみてください。

○ 注意

 ページ0は常にROMだと思って構いません。NEWCPUに現在のCPUモードが入っています。

-------------------------------------------------------------------------
Copyright (c) 1997 GIGAMIX, All rights reserved.

Homepage designed by
Takashi KOBAYASHI (ban's design inc.)

※ 本ページを構成するすべてのデータの無断転載を禁じます