資料を鵜呑みにしてはいけません (3)

いろいろあげつらってしまいましたが、もちろん「ほらこんなに説明に不備があるからこういうドキュメントは信用できません!」というようなことを言いたいわけではありません。実際はげしくお世話になっており、これだけの情報がロハでシェアできることがおおいにありがたき幸せであり恐悦至極であります。そもそも資料の正確性を期するにはクロスチェックが不可欠であります。そしてそれは利用者の責任であります。
とはいえ、書きこみモード3(の論理演算)に関する説明が十分でない資料が多いということも否定できないようです。でもって、、

  • 向こうのプログラマで、けっこう VGA を叩きなれているはずの人でも「書きこみモード3でラッチとの論理演算は有効」だということを知らない、もしくは使えても VGA の基本スペック外だと思っている人がけっこう多いのではないか。
  • VGADOC4b や FreeVGA の書きこみモード3に対する誤解(?)はどこから生じているのか? ネタ元はどこだろう?

なんてことをつらつら思うわけなのです。

たとえば bochs では長いこと VGA 書きこみモード3の論理演算はサポートされず、そのため JDISP.SYS を食わせると PANIC を起こしていました。Ohzono さんのパッチは比較的早い時期に出ていたはずですが、そのままの形で組みこまれることはありませんでした。高速化とか考えなきゃそんなに面倒な実装にもならない(それこそ私でもできる…)のになーとずっと思っていたのですが、もしかすると書きこみモード3で論理演算を使うという処理じたいがエミュレーション対応すべき処理だと思えなかったのかもしれないなー、なんて今だから言えることですが。

あとはネタ元…EGA/VGA の書きこみモードに関する情報が載っている書籍というと、御大 IBM のリファレンスを別にするとやはり Wilton かな…とひとまず予想し、手持ちの "Programmer's Guide to PC & PS/2 Video Systems" をめくってみたのですが、少なくとも Figure 5-5 から Figure 5-9 の図を見る限り、モード1以外ではすべて論理演算を使えることが察せられるようなものになっていました。ひとまず Wilton はシロとわかりましたが他のリファレンス級文献が手元にないのでこれ以上はわからない。Ferraro 本とか確認してみたいですねえ…。

眠れないので飲みながら書いたら超ダラダラ…