ビルド 20061106 の改良として、DualShock の対応を行った。DualShock2まで一気に行きたかったけど、スタックの容量設定にてこずったので、ここまでで終了してしまった。 PS2 のコントローラ周りのプログラムは大きく変わってしまってそのテストとデバッグに時間がかかってしまった。
今回のキモはスタックの容量設定に尽きる。途中で変数が書き変わってしまうバグに悩まされたが、グローバル変数と割込みの退避領域が被ってしまっていた。
テストパターン
スタック増量前
>1211 0001 [Enter]
->GameTech コントローラモード
PS2コントローラの左方向キーを押しながら
>1200 [Enter]
0001
...
...
>0900 0001 0000 0000 [Enter]
->Motion 実行
PS2コントローラの左方向キーを押しながら
>1200 [Enter]
0002
^
....
....
============================
スタック増量後
>1211 0001 [Enter]
->GameTech コントローラモード
PS2コントローラの左方向キーを押しながら
>1200 [Enter]
0001
...
...
>0900 0001 0000 0000 [Enter]
->Motion 実行
PS2コントローラの左方向キーを押しながら
>1200 [Enter]
0001
^
....
....
PS2コントローラのパッド入力に対応した、ディスパッチャも問題なく動作する。
めでたし、めでたし。