Image: 240717 PS/55エミュ製作 [38]グラフィックモードとBitBlt

あれからグラフィックモードの開発に四苦八苦しながらも、何とかWindows 3.0の16色や256色モードが読めるレベルにはなってきた。

最初はDOSのコマンドラインのグラフィックモードすらまともに表示できない状態だった。この原因を探すのに丸2日かかった。

Image: PCem55 beta

アドレスラッチの処理を直して文字は表示できるようになったけど、色がおかしい。ビデオメモリーの各プレーンを属性コントローラーのパレット番号へ変換するプログラムにバグがあった。

Image: PCem55 beta

BASICのグラフィックモードでPAINT命令の塗りつぶしをすると枠外にはみ出る。グラフィックコントローラーにコンペアリード(技術解説書には書かれていない)を実装していないことが問題だった。

Image: PCem55 beta

Image: PCem55 beta

Windows 3.0を16色モードで起動すると色がグレースケールみたいになる。

Image: PCem55 beta

DACのパレットにデフォルト色をセットしていないことが問題だった。J-DOSならDOS起動時にパレットを初期化するんだけど、DOS/VのWindows 3.0ディスプレイドライバーはしないらしい。ハードウェア・リセット時にPOSTで初期化されるはずなんだろうか。

Image: PCem55 beta

グラフィックコントローラーにXOR演算の書き込みを実装したら文字も表示できるようになった。しかし、アイコンの色とメニューを開いて閉じた場所の色が変。

Image: PCem55 beta

ビデオメモリーに書かれたデータをレジスターの内容とともにログファイルへ書き出して可視化した。エミュレーションのコードより解析用のデバッグコードをいじる時間の方が長い気がしてきた。

Image: PCem55 beta


※コメント欄が表示されない場合はdisqusについてJavascriptが有効であることを確認して下さい。コメントはスパム防止フィルターによる承認制のため、投稿してもすぐに反映されない場合があります。

管理人 : Akamaki (akm)

は、PCとVTuberに夢中になっている電気技術者です。

私はレトロコンピューティングの愛好家ですが、そのようなリグはもう収集していません。

私の活動はトップページで見ることができます。読んでくれてありがとう!