首頁 / CompScience / Programming / Languages / C_and_CPP / Set Color Number

Set Color Number

在看過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と見なす
  • パレットのアクセスの手順
    • まず一連のアクセス中に割り込みなどが入らないようにする(たとえばCLI)。
    • 0x03c8に設定したいパレット番号を書き込み、続いて、R、G、Bの順に0x03c9に書き込む。もし次のパレットも続けて設定したいのなら、パレット番号の設定を省略して、さらにRGBの順に0x03c9に書き込んでよい。
    • 現在のパレット状態を読み出すときは、まず0x03c7にパレット番号を書き込んで、0x03c9を3回読み出す。これが順にR、G、Bになっている。これももし次のパレットも読み出したいときは、パレット番号の設定を省略してRGBの順に読み出してよい。
    • 最初にCLIした場合は、最後にSTIする。

貼上日文的自行參考,中文就自己買書來看吧!

接著04-07 矩形的繪製處理,透過用#define顏色的代碼,讓我們不用記那麼多的顏色代碼,其餘看程式怎麼做就行了!

04-08 最終的成果長這樣:

2010-09-02_160526

看到這個徒有沒覺得跟WX的畫面很像啊!原來自己DIY OS是這樣的喔!

Print Friendly, PDF & Email
馬上成為工作達人的Fans

About ㄚ琪

工作達人Fun Taiwan的創辦者及總編,可以在這裡更認識他。

發表迴響

你的電子郵件位址並不會被公開。 Required fields are marked *

*

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料

Scroll To Top