211126 PS/55エミュ製作 [3]VGAのレジスタが多すぎて把握不能
亀歩きのような遅さですが、一応実装は進んでいます。テキストモードのビデオメモリに使われる内部コードとシフトJISコードを相互に変換できるようになり、DOS K3.3の起動画面が何とか読める状態になりました。
何とか読める状態というのは、テキスト画面がなぜかスクロールする毎に奇数行と偶数行で表示が入れ替わってしまうので、まだ実用的では無い状態です。元のEGA/VGAのコードを流用(I/Oポートのミラーと16ビットデータアクセスの対応)しているので、何かのレジスタの設定を修正する必要があると思うのですが、なにぶんVGAのレジスタは300以上あるらしいので把握しきれない。
極めつけはOverflow Registerという、幾つかのレジスタの値が8ビットに収まらなくなったから上位ビットの一部を別の場所に寄せて集めたレジスタがある。VGAは全てのレジスタが8ビットだが、PS/55の場合は内部的に16ビットのレジスタを持っているので、これがかえって互換性を犠牲にし、VGAを流用する場合はOverflow Registerに当てはめなければいけない。9ビット目はここ、10ビット目はそっちというように桁がバラバラなので面倒くさい。