ここから本文です
Dr.KIKKIE(KIKI) MSX DeuxLaque
免責:記載誤りによる損害一切

書庫過去の投稿日別表示

全1ページ

[1]

マウス・メモ(13)

イメージ 1
■転送時の注意点(2)
内部の移動量カウンタは8ビットしかないため、データ読み出しから次の読み出しまでの間隔が長いとオーバーフローしてしまい、正しい移動量が得られなくなる。
このマウスのアクセスは、VDP割込みのタイミングで読み出しを行うことを前提としているので、なるべく読み出しルーチンは、VDP割り込みの中で行うようにすべし(と、資料には書いてあるが、これは実際に守られていたのだろうか?)。

■転送時の注意点(3)
ジョイスティックポートのアクセスは、BIOSコールのPSGアクセスを利用し、移動量の読み出しは右図Aのタイミングで行うこと。
このタイミングは、MSXマウスの読み出しの標準的タイミングとなっている。
(なお、資料では「BIOSコールのPSGアクセスを利用し、」となっているが、これはRDPSGのことであり、WRTPSGはダメである。理由は後述。)

■マウスの移動と出力データの関係(右図B)
X軸では左、Y軸では上が正の方向となっている。

■中締め
疑問点。
「MSXテクニカルガイドブック」では大意、マウス/トラックボールを使うとき、MSX1のGETPADはトラックボールに対応していないので自前のルーチンを使うべし、その際、RDPSGを使うと割り込みが許可されてしまうので、直接I/Oポートをアクセスすべし。MSX2以降の場合はGETPADを使用すべし、としている。
ところが、今回入手した資料掲載のサンプルプログラムではRDPSGを使っている。割り込みが許可されちゃっても平気、なのであろうか?

と思って、MSX1のBIOSを参照してみると、WRTPSGはルーチン内で割り込み禁止/解除を行っているが、RDPSGは割り込み関係はノータッチである。
というわけで、「テクガイ」記述の「RDPSG」は、「WRTPSG」の誤りであろう。実際、MSX1のGETPADでは、PSGに書き込むときは直接I/Oポートをアクセスし、読み込むときはRDPSGを使っている。
マウスが接続されているポート(Aポート又はBポート)を選択するに当たり、PSGレジスタ#15に値を書き込まないといけないが、その際は、WRTPSGを使わず、直接I/Oポートをアクセスすべし、ということである。

いろいろと資料を突合して、ようやく合点がいった。ことほどさように「現場百遍」は大事である。ちょっと違うか? まあ、いいや。

全1ページ

[1]

1
2
3
4
5
6
7
8
9
10 11 12 13 14
15
16
17 18 19 20 21 22
23
24
25 26 27 28
29
30
31
Dr.KIKKIE(KIKI)
Dr.KIKKIE(KIKI)
非公開 / 非公開
人気度
Yahoo!ブログヘルプ - ブログ人気度について

よしもとブログランキング

もっと見る
本文はここまでですこのページの先頭へ

[PR]お得情報

コンタクトレンズで遠近両用?
「2WEEKメニコンプレミオ遠近両用」
無料モニター募集中!
ふるさと納税サイト『さとふる』
お米、お肉などの好きなお礼品を選べる
毎日人気ランキング更新中!
ふるさと納税サイト『さとふる』
実質2000円で特産品がお手元に
11/30までキャンペーン実施中!

その他のキャンペーン

みんなの更新記事