PC I/F

PC-FXGA と PC の間には PIO と SCSI の 2 つの interface が存在するようです。

PIO

I/O ポート

アドレスREADWRITE
09B3Hb0-b7 PC-FXGA → CPU データ
09B5Hb0-b7 ラッチデータCPU → PC-FXGA データ
09B7Hb0nACK
b1nSTROBE
b2
b3
b4FXGA のリセット
b5デバッガ割り込み
b6nACK
b7nSTROBE

09B7h に即値を出力してはいけない。09B7h の入力値へ bit 演算を行ってから出力すること。

09B7h の b5 を 1→0 と変化させ、デバッガ割り込みを発生させると FXGA から何か(レスポンス?)が送られてくる。その後 PC 側からデバッガコマンドを送信する。コマンドは 48h, 75h, nn … らしい。

09B5h に何かデータを書き込んだ後、09B5h を読んで、値が同じならば PC-FXGA が存在する。

SCSI

SCSI は CD-ROM drive のエミュレート等に使用されているらしいです。

I/O ポート

アドレスREADWRITE
09B0Hb0-b7 Initiator → Target データTarget → Initiator データ
09B2Hb0ACK
b1REQ
b2ATN
b3SEL
b4RST
b5?? ポートの初期化?
b6
b7
09B4Hb0BSY
b1C/D
b2I/O(0=Initiator→Target / 1=Target→Initiator)
b3MSG
b4FXGAのリセット?
b5
b6?? 同期転送の開始?
b7
09B6Hb009B0hのバス方向(0=入力/1=出力)
b1
b2
b3
b4
b5?? 09B0hの Enable?
b6
b7
09B8Hb0??
b1??
b2??
b3??
b4??
b5?? 同期転送(0=同期/1=非同期)
b6
b7
Initiator = PC-FXGA
Target = PC

同期転送(?)が行えるようです。98B8h(b5) を 0 にした後、98B4h(b6) を 0→1→0 と変化させると同期モードになるようです。09B0h にデータを出力するだけでデータが転送されるので、ACK/REQ によるハンドシェークを行なう必要はありません。非同期モードにするには 98B8h(b5) を 1 にします。


[TOPへ戻る]