四月の日記/メモ

 

2001.04.02(月) 00:26:34
ntddkbd.h に定義されてる GUID_CLASS_KEYBOARD を指定して、RegisterDeviceNotification を使ったら、USBキーボードの挿抜で DBT_DEVICEARRIVAL と DBT_DEVICEREMOVECOMPLETE が取れる事を確認した。他の種類のデバイスの挿抜でも、DBT_DEVNODES_CHANGED は来る。(Mayu に活かして下さい。>GANA)

2001.04.02(月) 00:32:18
今日からER第VIシリーズ。

2001.04.03(火) 10:43:50
Window2000 ドライバ、のドライバスレッドを動かした。次は、Bus Relation 周り。

2001.04.07(土) 12:20:07
先週の木曜にフィンランドに向けて発送した荷物は昨日無事着いたそうな。国際小包ではなく小型包装物で送ると、書留がつかないが安くなる。さらに、普通の航空便より安いSALにしたので、1.8kgちょっと送るのに、たった¥1,980。安い替わりに運もいるかもしれないが。

2001.04.07(土) 12:24:40
Windows2000 のドライバに続き。Bus Relation 周りを実装。PCIカードにデバイスを接続すると、ちゃんと、「新しいハードウェアが追加されました。」のダイアログが出る。こうでなくては。

2001.04.12(木) 00:15:19
setxkbmap の使い方が分かってきた。 標準の状態というのは以下のようにすると得られるらしい。

setxkbmap us pc102 -model pc102 -option
(-option については後述。) この状態から、日本語106キーボード用に設定を変更したい場合、
setxkbmap jp
とやると、Error loading new keyboard description となってなにが 悪いのかさっぱり分からない。正解は、次の様になる。
setxkbmap jp jp106 -model jp106
一度この設定をしたあとには、setxkbmap us としても setxkbmap jp としても エラーにならないところがたちが悪い。 指定されなかった項目は元の状態を保つのだがそのあたりの説明やエラーがいい加減なので分からないのだ。

-option も一癖あり同様に状態を保持するのだが、リセットするには、

setxkbmap -option
のようにする。これがエラーでないなんて普通想像しない。 したがって、「CAPSのない日本語配列」に確実に設定するには、
setxkbmap jp jp106 -model jp106 -option -option ctrl:nocaps
としなければならない。まったく。ちょっとは説明してくれ。例を一行載せるだけでどれほど理解を助けるか認識しろって。

2001.04.20(金) 11:26:10
Win2000 ドライバ続き。ようやく枠組みが完成して動くようになる。と共にやっとこさWin2000システムの全体像が見えるようになった。ここからが本当のスタート。実際のデータ処理とかデバグとか。Win2000ドライバの仕組みについて理解した事をどこかに書きたいね。

2001.04.28(土) 15:48:01
Win2000 ドライバ。やはり、Completion ルーチン周りがよく分からない。DISPATCH_LEVEL でも、PASSIVE_LEVEL でも動いて、任意のスレッドで呼べるようにすると、こういう形になるのだろうか?
スピンロックを使ってデ子バイス検出用スレッドとデータ取得用のルーチン間の同期をとる。子デバイスのファンクションドライバから親であるバスドライバを呼び出してデータを取得する処理も追加。正しく動いている模様。

2001.04.29(日) 00:53:46
残ったピースである、データ形式をHIDのレポートのものに変換する部分を追加してドライバのプロトタイプが完成。Windows2000 で IF-SEGA/ISA , IF-SEGA/PCI が使えるようになった。全てのコントローラ(キーボードを含む)がデジタルパッドとして機能する。これで大体1/3くらい完成か。まだたくさんやること、やってみたいことがある。
自作ドライバでやるゲームは格別。

2001.04.29(日) 01:11:29
画面サンプル

2001.04.30(月) 12:23:44
「ドライバがデジタル署名されていません」という旨のダイアログは、INFファイルの設定によって抑制することができた。どこにでも抜け道がある辺り、さすがMSだ。

2001.04.30(月) 21:31:40
GWなので、テスターと半田ごてとインターネットを使って、VirtuaGun の解析をしてみる。IF-SEGA側モジュールは、CU383を使っていて、

ということをしている。
ガンの方のICは、7414とLM359の二つだけ。恐ろしくダムな作りで、入力はなく二つのボタンとフォトダイオードの読みをそれぞれ1bitで出力するだけ。
全部PCのCPUで処理するのね。

三月の日記/メモ