例によってモニタを乗せられるようにシリアルI/Fが使えるようにしておきます
シリアルコントローラTMS9902(AAC=Asynchronous Communication Controller)はCRUI/Fで接続されます。CRU空間のデコードを改めて見直したのですがメモリ空間と切り離すために/MEMENのロジックが誤っていたためGALの内容を修正。
/MEMEN=Hでメモリが選択されていない時にCRU空間がイネーブルになるようにします。
つまり、メモリ空間とCRU空間は同じアドレスにオーバーロードできるので$F400、$F500のようにメモリマップされたI/Oと順に並べなくてもよいのですが、まぁここはそのままにしておきました。
シリアルI/Fにインクリメントデータを垂れ流しするテストプログラムです。
2.送信バッファが空になるまで待つ
3.空だったらR0レジスタの内容を書き込み
4.R0レジスタの内容をインクリメント
5.2に戻る
という流れになります