PC-FXGA と PC の間には PIO と SCSI の 2 つの interface が存在するようです。
アドレス | READ | WRITE | |
---|---|---|---|
09B3H | b0-b7 | PC-FXGA → CPU データ | |
09B5H | b0-b7 | ラッチデータ | CPU → PC-FXGA データ |
09B7H | b0 | nACK | |
b1 | nSTROBE | ||
b2 | |||
b3 | |||
b4 | FXGA のリセット | ||
b5 | デバッガ割り込み | ||
b6 | nACK | ||
b7 | nSTROBE |
09B7h に即値を出力してはいけない。09B7h の入力値へ bit 演算を行ってから出力すること。
09B7h の b5 を 1→0 と変化させ、デバッガ割り込みを発生させると FXGA から何か(レスポンス?)が送られてくる。その後 PC 側からデバッガコマンドを送信する。コマンドは 48h, 75h, nn … らしい。
09B5h に何かデータを書き込んだ後、09B5h を読んで、値が同じならば PC-FXGA が存在する。
SCSI は CD-ROM drive のエミュレート等に使用されているらしいです。
アドレス | READ | WRITE | |
---|---|---|---|
09B0H | b0-b7 | Initiator → Target データ | Target → Initiator データ |
09B2H | b0 | ACK | |
b1 | REQ | ||
b2 | ATN | ||
b3 | SEL | ||
b4 | RST | ||
b5 | ?? ポートの初期化? | ||
b6 | |||
b7 | |||
09B4H | b0 | BSY | |
b1 | C/D | ||
b2 | I/O(0=Initiator→Target / 1=Target→Initiator) | ||
b3 | MSG | ||
b4 | FXGAのリセット? | ||
b5 | |||
b6 | ?? 同期転送の開始? | ||
b7 | |||
09B6H | b0 | 09B0hのバス方向(0=入力/1=出力) | |
b1 | |||
b2 | |||
b3 | |||
b4 | |||
b5 | ?? 09B0hの Enable? | ||
b6 | |||
b7 | |||
09B8H | b0 | ?? | |
b1 | ?? | ||
b2 | ?? | ||
b3 | ?? | ||
b4 | ?? | ||
b5 | ?? 同期転送(0=同期/1=非同期) | ||
b6 | |||
b7 |
同期転送(?)が行えるようです。98B8h(b5) を 0 にした後、98B4h(b6) を 0→1→0 と変化させると同期モードになるようです。09B0h にデータを出力するだけでデータが転送されるので、ACK/REQ によるハンドシェークを行なう必要はありません。非同期モードにするには 98B8h(b5) を 1 にします。