Bitbltのラスターオペレーションの処理を理解するにあたって、ビット演算と逆ポーランド記法の知識を使う出番があった。

論理和と論理積の変換(ド・モルガン則)は電子回路でもよく使うから、まあまだ少しは縁があったけど、逆ポーランド記法を読み解くことになるなんて、学生時代に基本情報技術者試験で勉強したとき以来だった。

具体的には、昔のWindows(今やobsoleteなWindows GDI)では次のようなところに登場する。

三項ラスター演算 - Win32 apps | Microsoft Learn

これら256通りのラスター演算コードが全て使われるわけではなく、また、ハードウェア側もこれに全て対応しているわけではない(むしろ、対応しているのはせいぜい20種類程度の組み合わせだけだ。)右にNOTSRCERASEなどの別名が付いているものがあるが、これがサポートされるべき演算だ。エミュレーター開発では当時のDDKやMSDNライブラリに収録されていたDTA (Display Test Application)というユーティリティーを使って、Bitbltエミュレーションのデバッグとテストを行った。正しく表示できれば良し。できなければ、何かが不足していることになる。このユーティリティーの存在に気付いたのはごく最近のことで、ここまで苦労を重ねる前に、もっと早い段階で知るべきだった。

しかし、これでバグ取りは一方進みそうだ。


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

管理人 : Akamaki (akm)

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

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

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