PC-6001/MSX/ローランド/SVI用タブレット
- 公開日: 2020/10/09
- 更新日: 2020/10/10
板状の本体に指やペンで触れて座標を検出する、いわゆるペンタブレット。当時はタッチパネル(NEC)、Graphic Tablet(Spectravideo)、デジタイザタブレット(ローランド)等様々な名前で呼称されていた。PC-6001、MSX、ローランド用のタブレットは、互換性のある端子を備えた他の機器[1]でも利用可能である。
最初に登場したのはNEC PC-6001用のPC-6051であり、その後ピン配置をSpectravideo SV-318/328向けに変更したSV-105や、スイッチ付きペン(有線でタブレットに接続されている)を追加した各種MSXやローランドのサンプラー用のものなどが登場している[2]。
座標の検出はNECのA/DコンバータμPD7001によって行われる。制御に用いられる信号はパソコン側から見て出力信号である/SCK(Serial clock signal)、SI(Serial data input)、/CS(Chip select)と、入力信号である/SENSE(Touch sense signal)、EOC(A/D conversion end)、SO(Serial data output)の計6端子を用いる。より具体的な構成についてはRoger's Spectravideo pageに収録されているSVI-105(SV-105の後継機)のサービスマニュアル(回路図)を参照のこと。
検出手順は以下の通り。
/CSをHに、SIをLにする
EOCがHになるまで待機
/CSをLにする
12.5マイクロ秒以上待機
/SCKをLにする
SOを読み出して保存
/SCKをHにする
5.〜7.を7回繰り返し、8ビットのY座標データを得る(先に読み出したデータが上位ビット、Hが1でLが0)
/CSをHに、SIをHにする
EOCがHになるまで待機
31.2マイクロ秒以上待機
/CSをLにする
/SENSEを読み出し
12.5マイクロ秒以上待機
/SCKをLにする
SOを読み出して保存
/SCKをHにする
15.〜17.を7回繰り返し、8ビットのX座標データを得る(先に読み出したデータが上位ビット、Hが1でLが0)
13.で読み出した/SENSEがLならパネルに何も触れていない状態で検出した座標値は無意味なので1.からやり直し
上記の処理を2回繰り返し、各座標の値の差が3を超えていた場合はやはり誤検出なのでやり直し
ピンアウトは以下の通り。
function |
pin# for PC-6051 |
pin# for MSX&Roland Tablet |
pin# for SV-105 |
---|---|---|---|
/SENSE |
1 |
5 |
|
EOC |
2 |
9 |
|
SO |
3 |
6 |
|
/SW (L=Button pressed) |
NC |
4 |
NC |
VCC |
5 |
7 |
|
/SCK |
6 |
1 |
|
SI |
7 |
2 |
|
/CS |
8 |
3 |
|
GND |
9 |
8 |
MSXではBIOSコールGETPADが用意されており、テクハンWikiの解説ページに記載されているように、Z80のAレジスタに装置IDを記憶させてアドレス00DBHをコールし、Aレジスタの内容(返り値)を参照することでタブレットの情報を検出可能である。装置IDと返り値の対応は以下の通りである。
装置ID |
装置 |
返り値 |
---|---|---|
0 |
端子1に接続されたタブレット |
パネル面に触っていればFFH、いなければ00H |
1 |
X座標 |
|
2 |
Y座標 |
|
3 |
ボタンが押されていればFFH、いなければ00H |
|
4 |
端子2に接続されたタブレット |
パネル面に触っていればFFH、いなければ00H |
5 |
X座標 |
|
6 |
Y座標 |
|
7 |
ボタンが押されていればFFH、いなければ00H |