資料集
ここはhideyosiの学習帳です。いろいろな資料を集めたり整理したりしています。オイラ用のノートなので間違っていたり未完成だったりしますので信用度は相当低いことをあらかじめご了承くださいませ。
  • ソース を表示
  • VGA は削除されています。
3: 2007-11-23 (金) 00:32:44 ソース バックアップ No.3 を復元して編集 現: 1970-01-01 (木) 18:00:00 ソース 編集
Line 1: Line 1:
-えとえと、''VGA''という単語そのものはいろいろと意味がありそうですが、ここでは640x480x16色のモードのことということで・・・ 
-*プレーン方式 [#yc14dbaf] 
-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のプレーンは、どうも全て同じ番地のようだ!!!!???? 
- 
-・・・っということは、多分、書き込む前になにかしら命令を出して、プレーンを切り替えるというような作業が必要なんじゃないかな??? 
- 
- 
-COLOR(red){むずかしくてキツいが、OS-Wikiの該当ベージをことあるごとに読み込んでいます・・・} 
- 
- 
-ラッチかぁ・・・どうもこれがカギみたいだなぁ・・・ 
- 
-**臭う・・・臭うぞ!? [#b2de89ee] 
-クサイのはこれである。シーケンサーという部分の 
- [0x02] Map Mask (プレーンごとの書き込み許可) 
-という所。ここはどうも、各プレーンへの書き込みを許認可しているようだ。そんなわけで、こういうことをしてみるとプレーン0〜3まで書き込めないか?? 
-  //マップマスクの実験 
-  io_out8(0x03c4, 0x0002);  //00000000 
-  for ( i = 0; i <= 512*1; i=i++) 
-    { 
-      p[i] = 0x6; 
-    } 
- 
-  io_out8(0x03c4, 0x0102);  //00000001 
-  for ( i = 0; i <= 512*1; i=i++) 
-    { 
-      p[i] = 0x6; 
-    } 
- 
-  io_out8(0x03c4, 0x0202);  //00000010 
-  for ( i = 0; i <= 512*1; i=i++) 
-    { 
-      p[i] = 0x6; 
-    } 
- 
-  io_out8(0x03c4, 0x0302);  //00000011 
-  for ( i = 0; i <= 512*1; i=i++) 
-    { 
-      p[i] = 0x6; 
-    } 
- 
-うーーーん・・・なにも変化がない・・・ 


トップ   編集 差分 バックアップ 複製 名前変更 リロード   ページ新規作成 全ページ一覧 単語検索 最新ページの一覧   ヘルプ   最新ページのRSS 1.0 最新ページのRSS 2.0 最新ページのRSS Atom
Counter: 0, today: 0, yesterday: 0