在看過30天打造OS!作業系統自作入門(附光碟)的04-05 指標的應用(二)這節後,ㄚ琪要進展到04-06 設定顏色編號,http://community.osdev.info/?VGA這裡的視訊DA轉換器是本節會用到的資訊:
- 0x03c6:ピクセルマスクレジスタ(8bit、R/W)
- bit0-7:DAコンバータが受け取ったカラーコードは、このレジスタの内容でマスクされた後にRGBに変換され、ディスプレイに送られる。
- 0x03c7:ステータスレジスタ (8bit、R)
- bit0-1:これが00だったら書き込み中
- bit2-7:リザーブ
- 0x03c7:アドレスレジスタ (8bit、W)
- ここに書き込みアクセスすると、パレット読み込みモードになる
- bit0-7:パレット番号
- 0x03c8:アドレスレジスタ (8bit、W)
- ここに書き込みアクセスすると、パレット書き込みモードになる
- bit0-7:パレット番号
- 0x03c9:データレジスタ (8bit、R/W)
- bit0-7:RGB成分の一つ(0~63)
- 書き込むときは上位2ビットを0に、読み込むときは上位2bitを0と見なす
- bit0-7:RGB成分の一つ(0~63)
- パレットのアクセスの手順
- まず一連のアクセス中に割り込みなどが入らないようにする(たとえばCLI)。
- 0x03c8に設定したいパレット番号を書き込み、続いて、R、G、Bの順に0x03c9に書き込む。もし次のパレットも続けて設定したいのなら、パレット番号の設定を省略して、さらにRGBの順に0x03c9に書き込んでよい。
- 現在のパレット状態を読み出すときは、まず0x03c7にパレット番号を書き込んで、0x03c9を3回読み出す。これが順にR、G、Bになっている。これももし次のパレットも読み出したいときは、パレット番号の設定を省略してRGBの順に読み出してよい。
- 最初にCLIした場合は、最後にSTIする。
貼上日文的自行參考,中文就自己買書來看吧!
接著04-07 矩形的繪製處理,透過用#define顏色的代碼,讓我們不用記那麼多的顏色代碼,其餘看程式怎麼做就行了!
04-08 最終的成果長這樣:
看到這個徒有沒覺得跟WX的畫面很像啊!原來自己DIY OS是這樣的喔!