30天自制操作系统吧 关注:1,380贴子:4,782
  • 4回复贴,共1

8bit 模式下的256色C计算方法

只看楼主收藏回复

void init_palette_256(void)
{
const int colorMaxNum = 216;//8bit 下共有216种组合色
unsigned char table_rgb[ colorMaxNum * 3];
int fr, fg, fb;
int index = 0;
for( fr = 0;fr < 256;){
for( fg = 0;fg < 256;){
for( fb = 0;fb < 256;){
table_rgb[ index ] = fr;
table_rgb[ index + 1 ] = fg;
table_rgb[ index + 2 ] = fb;
index += 3;
fb += 51;
}
fg += 51;
}
fr += 51;
}
set_palette(0, colorMaxNum - 1, table_rgb);
return;
}
// 已测试 能正常使用


IP属地:重庆1楼2018-11-14 19:35回复
    使用截图,颜色号:16
    boxfill8_256(vram, xsize, 16, 0, 0, xsize, ysize);


    IP属地:重庆2楼2018-11-14 19:36
    回复


      IP属地:重庆3楼2018-11-14 21:38
      回复
        希望有人能告诉我下asmhead.asm里的这段代码具体作用。
        MOVEBX,BOTPAK
        MOVECX,[EBX+16]
        ADDECX,3; ECX += 3;
        SHRECX,2; ECX /= 4;
        JZskip
        MOVESI,[EBX+20]
        ADDESI,EBX
        MOVEDI,[EBX+12]
        CALLmemcpy
        在我去掉之后“MOVEBX,BOTPAK”之后的代码,后面写显存屏幕没有反应。


        IP属地:重庆4楼2018-11-14 21:42
        收起回复