雑記帳
ここはhideyosiの雑記帳です。テケトーに書き散らしてるだけなので間違っていたりとは普通にしてます。信用度は相当低いことをあらかじめご了承を。またご覧のようにWikiを使ってますが、hideyosi意外は書き込めません。
1: 2007-11-22 (木) 10:20:57 ソース バックアップ No.1 を復元して編集 2: 2007-11-22 (木) 11:04:16 ソース バックアップ No.2 を復元して編集
Line 3: Line 3:
*プレーン方式 [#yc14dbaf] *プレーン方式 [#yc14dbaf]
VGAはどうもこのプレーン方式というものらしい。つまり、ひとつのドットがひとつの値というのではなく、プレーンという何枚かあるセル(はりぼて風に言えば''下じき''かな?)があり、そこにおのおのデータを書き込むことでひとつのドットの色を表現しているらしい VGAはどうもこのプレーン方式というものらしい。つまり、ひとつのドットがひとつの値というのではなく、プレーンという何枚かあるセル(はりぼて風に言えば''下じき''かな?)があり、そこにおのおのデータを書き込むことでひとつのドットの色を表現しているらしい
 +
 +赤・緑・青・輝度 の4枚らしい。
 +
 +で、たとえば、画面上で Xが5、Yが0という場所に点を一個打ちたいとする。
 +
 +これが320x200x256やVESAの高解像度等、単純にVRAMのあるアドレスに値を書けば反映される。
 +
 + ・VRAMは0xa0000から始まる
 + ・X(横)が5、Y(縦)は0だから、単純に0xa0000から6番目、0xa0004番地。
 + ・ここに0x8(色番号)とか書きこめばそこにドットが書かれる
 +
 +しかしVGAの場合は1ドット=1ビットとなる。なので、同じように点を書くとすると・・・
 +(ちょっと色などはおいて置く)
 +
 + ・VRAMは0xa000から始まる
 + ・X(横)が5、Y(縦)は0だから、単純に0xa0000から6番目、0xa0005番地ではない!
 + ・左から6個目に点なので、0x40 (0000100000000000)。
 + ・この値を0xa0000に書くと点が書かれる
 +
 +こういう方式になるようだ。
 +
 +当然これだけじゃ、0と1なので、白・黒など二色しか色は表現できない。
 +
 +そこで他のプレーン?にも書き込みを行い、それらを重ね合わせた結果、赤なり緑なりの
 +色が表現される・・・・のかな????
 +
 +1番プレーン〜4番プレーン(仮称)におのおのデータを書くらしいのはわかった。
 +では、具体的に2番プレーンに書き込むにはどうしたらいいのだろう???
 +
 +最初、1番プレーンは0xa0000〜0xaFFFF、2番プレーンは0xb0000〜0xbffffとかいう感じではないかと思っていたが、どうも違うらしい。
 +
 +AT互換機のVGAのプレーンは、どうも全て同じ番地のようだ!!!!????
 +
 +・・・っということは、多分、書き込む前になにかしら命令を出して、プレーンを切り替えるというような作業が必要なんじゃないかな???