転送終了、TxEMT=1になるのを待つループが回っているときのSCN2681につながる信号線をプローブしてみました
ch1: /SIOCS, ch2: /RD, ch3: D3(=TxEMT)
読取りパルス/RDはトランスピュータが生成していてT4-T5の2マシンステート;約50nsということになります。これをSCN2681のバスタイミングと見比べると
読取りパルスRDNの幅tRWは225ns以上を要求しているので全く不足しています。/RDアクティブから約50ns後にD3(=TxEMT)=1が辛うじて出てきますが、既に/RDは終縁になっていてすぐに出力は閉じてしまいます。これをトランスピュータの内部ステートT5-T6間でラッチできずに「1」が読み取れなかった原因でしょう。システムバスサイクルに対してSCN2681が遅いということと、遅延の要因になるデータバスバッファをわざわざ挿入したのもまずかったようです
現状のハードで対策するとなると単純には/RDの幅を広げる。ということになります。トランスピュータのバスサイクルをもう一度見ると、/RDは正確にはTRdLRdH=T4+Twait+T5で構成されています
つまりT4かT5かTwaitを挿入すればいいわけです
簡単にはInternal configurationでAD8接続からAD9接続にジャンパ切替するだけでT3とT5に1ステートづつ挿入されるので/RD幅が広がります。といっても76nsでまだ全然足りませんがこれでフラグ読取りができるようになりました
ch1: /SIOCS, ch2: /RD, ch3: D3(=TxEMT)
さらにROM上の設定を参照するexternal configurationにすればさらにステートの挿入も可能です
ただしメモリコンフィグレーションでステートを挿入するとI/Oに引きずられてメモリマップドされた全てのROM、RAMまで遅くなってしまうので正しくはSCN2681がアクセスされた時だけウェイトサイクルTwaitを挿入すればよいでしょう。それに必要なシステムクロック、リセット、アドレスバス、WAITなど必要な信号は全てCPLDに引き込んであるので組み込むのは簡単そうです