調べ続ける。。。
71.1kg
昨日の朝、ちょっと歩きたくて、外へ出て階段をガッツリ登ってみたら
とんでもない筋肉痛になって辛い。。。。
こんなに筋力落ちているのか。。
徐々に復活させよう。
という事で、ちょっとずつ読み進めるが、まぁ、分からない事ばかり。。
今までのように動かないって状態では無いので、気分は少し違うが。。
void set_palette(int start, int end, unsigned char *rgb)
{
int i, eflags;
eflags = io_load_eflags(); /* 割り込み許可フラグの値を記録する */
io_cli(); /* 許可フラグを0にして割り込み禁止にする */
io_out8(0x03c8, start);
for (i = start; i <= end; i++) {
io_out8(0x03c9, rgb[0] / 4);
io_out8(0x03c9, rgb[1] / 4);
io_out8(0x03c9, rgb[2] / 4);
rgb += 3;
}
io_store_eflags(eflags); /* 割り込み許可フラグを元に戻す */
return;
}
特に、本の中に説明は無いように見える。。
このページにあるのを読んでいて、多分、こういう事なんだろうという予測の答えに
自分の中で辿り着いた。(と思っている。。)
VGAグラフィックスの設定は、320x200x8bitカラーというモードなのだが、
パレット設定という項目があり、16色モードの際にはパレット設定というものが
Red: 0〜0x3f
Green: 0〜0x3f
Blue: 0〜0x3f
って書いてある。
多分、ここから来るのだろう。要するに8bit全部使っていなくて6bitで色を表現している
って事なのかな。。
RGB ⇄ グレイ変換ってのがあって、
Gray = 0.299 * red + 0.587 * green + 0.114 * blue
って式で変換されるらしい。
つまりは、色表現の輝度の幅とかが小さくなるのかなって理解をしてみてます。。
まずは、そういう理解で多分、そんなに間違っていないのかなって思っているが。。
(全然違ったら、悲しいけど。。。)
さぁ、調べる事は尽きないな。。。
続く。