¿§º£¤Î¼ÂÁõ
º£Æü¤ÎÎÁÍý¤È¤ê¤¢¤¨¤º256¿§»È¤¨¤ë¤³¤È¤Ë¤Ê¤Ã¤Æ¤ë¤ó¤À¤·¡¢ºÇÂç¸Â»È¤¨¤ë¤è¤¦¤Ë¤¹¤ë¤«¡£ ÌäÂê¤Ï1678Ëü¿§¤ÎÆâ¤É¤ì¤ò»È¤¦¤«¡£¤È¸À¤¦¤³¤È¤ÇRGB´Ø¿ô¤òºî¤ê¤¿¤¤¤ï¤±¤Ç¤¹¤¬¡¢¤³¤³¤Ç°ì¤ÄÌäÂ꤬ȯÀ¸¤¹¤ë¤ï¤±¤Ç¤¹¡£
¤µ¤Æ¤É¤ì¤ò¼ÂÁõ¤·¤¿¤â¤Î¤«¡£ char RGB(unsigned char r,unsigned char g,unsigned char b){
return table_r[r]+table_g[g]+table_b[b];
}
¤È¤¹¤ì¤Ð¤¤¤¤¤Î¤Ç¡¢ÊÑ´¹¥Æ¡¼¥Ö¥ë¤ÎÂ礤µ¤Ï16MiB¤Ç¤Ï¤Ê¤¯768Byte¤À¤Ã¤¿¤ê¤·¤Þ¤¹¡£
¼ÂÁõ1:bitñ°Ì¤Ç³ä¤êÅö¤Æ¤Þ¤º»ÅÍͤÀ¤±Àè¤ËŬÅö¤Ë·è¤á¤Æ¤·¤Þ¤ª¤¦¤« // ²¿¤â¹Í¤¨¤º¤ËŬÅö¤Ëºî¤Ã¤Æ¤ß¤¿ÅÛ
// °ú¿ô¤Î·Á¼°:bbgggrrr¡¢Ìá¤êÃͤηÁ¼°:00000000bbbbbbbbggggggggrrrrrrrr
int RGB8ToRGB24(unsigned char color){
int r,g,b;
r=(color&0x07)<<5;
g=(color&0x38)<<2;
b=color&0xc0;
return (b<<16)+(g<<8)+r;
}
¤³¤ì¤Ç¾å¼ê¤¯¤¤¤¯¤«¤Á¤ç¤Ã¤È¹Í¤¨¤Æ¤ß¤è¤¦¡£RGB8ToRGB24(0xff)¤ÏÇò¤Ë¤Ê¤ë¡© int RGB8ToRGB24(unsigned char color){
int r,g,b;
r=(color&0x07)<<5;
g=(color&0x38)<<2;
b=color&0xc0;
return ((b<<16)+(g<<8)+r)|0x3f1f1f;
}
º£Å٤Ϥɤ¦¤À¤í¤¦¡©RGB8ToRGB24(0xff)¤Ï³Î¤«¤ËÇò(0xffffff)¤Ë¤Ê¤ë¤ß¤¿¤¤¤À¡£ int RGB8ToRGB24(unsigned char color){
int r,g,b;
r=(color&0x07)*73>>1; // 73=01001001(b)
g=(color&0x38)*73>>4;
b=(color&0xc0)*85>>6; // 85=01010101(b)
return (b<<16)+(g<<8)+r;
}
¤³¤ì¤Ï¤É¤¦¤¤¤¦»ÅÁȤߤÀ¤í¤¦¡©¤Þ¤º°ìÈÖ¾å¤Î¹Ô¤«¤é¹Í¤¨¤Æ¤ß¤è¤¦¡£ 00000abc *01001001¢«73¤Î2¿Ê¿ôɽµ --------- abcabcabc¢«¥ì¥¸¥¹¥¿¤Ï32bit¤À¤«¤é9bitʬ¤Ï;͵¤ÇÆþ¤ë ¤È¤Ê¤ë¡£¤½¤·¤Æ¾å°Ì8bit¤¬É¬ÍפÀ¤«¤é±¦¤Ë°ì¤Ä¥·¥Õ¥È¤·¤Æ xy000000 * 01010101¢«85¤Î2¿Ê¿ôɽµ -------------- xyxyxyxy000000 ¤½¤ì¤Ç¡¢¾å°Ì8bit¤¬É¬ÍפÀ¤«¤é±¦¤Ë6bit¥·¥Õ¥È¤·¤Æ void init_palette(void){
unsigned char table_rgb[256 * 3]; // ½é´üÃͤ¬¤Ê¤¤¤«¤éstatic¤Ë¤¹¤ë°ÕÌ£¤¬¤Ê¤¤
int i,c;
for(i=0;i<256;i++){
c=RGB8ToRGB24(i);
table_rgb[i*3 ]= c &0xff;
table_rgb[i*3+1]=(c>>8 )&0xff;
table_rgb[i*3+2]=(c>>16)&0xff;
}
set_palette(0, 255, table_rgb);
return;
}
¤Ê¤ó¤«Á°¤è¤ê¤¹¤Ã¤¤ê¤·¤¿¤è¤¦¤Ê¡¦¡¦¡¦¡£ // Ìá¤êÃͤηÁ¼°:bbgggrrr
char RGB(unsigned char r,unsigned char g,unsigned char b){
return (b&0xc0)+((g>>2)&0x38)+((r>>5)&0x07);
}
¡¦¡¦¡¦Í½Á۰ʾå¤Ë´Êñ¤Ë½ñ¤±¤Æ¤·¤Þ¤Ã¤¿¡£ //24bit¥«¥é¡¼¤òÉÁ²èÍÑ¥«¥é¡¼¤ËÊÑ´¹¤¹¤ë¥Þ¥¯¥í #define RGB(r,g,b) (((b)&0xc0)+(((g)>>2)&0x38)+(((r)>>5)&0x07))
¼ÂÁõ2:bitñ°Ì¤Ç¤Ï¤Ê¤¤³ä¤êÅö¤ÆÊýË¡¤Ë¤Ä¤¤¤Æ¤Þ¤¿»ÅÍͤòÀè¤Ë·è¤á¤Æ¤·¤Þ¤ª¤¦¡£ // ²¿¤â¹Í¤¨¤º¤ËŬÅö¤Ëºî¤Ã¤Æ¤ß¤¿ÅÛ
// Ìá¤êÃͤηÁ¼°:00000000bbbbbbbbggggggggrrrrrrrr
int RGB8ToRGB24(unsigned char color){
int r,g,b;
r=color%6;
g=color/6%7;
b=color/42%6;
return (b<<16)+(g<<8)+r;
}
¤ª¤Ã¤È¤³¤ì¤¸¤ãÂÌÌܤÀ¡£Î㤨¤Ðr¤Ï0¡Á255¤ÎÃͤò¤È¤ëɬÍפ¬¤¢¤ë¤Î¤Ë¡¢0¡Á5¤ÎÃͤ·¤«¤È¤Ã¤Æ¤Ê¤¤¡£ int RGB8ToRGB24(unsigned char color){
int r,g,b;
r=color%6*51;
g=color/6%7*85>>1;
b=color/42%6*51;
return (b<<16)+(g<<8)+r;
}
¤¢¡¢color¤¬252¤È¤«¤Î»þ¾å¼ê¤¯Æ°¤«¤Ê¤¤¤«¤é¤ª¤«¤·¤ÊÃͤ¬Í褿»þ¤ÏÃÆ¤«¤Ê¤¤ã¡£ int RGB8ToRGB24(unsigned char color){
if(color>251) return -1; // ¸ºß¤·¤Ê¤¤¿§ÈÖ¹æ
int r,g,b;
r=color%6*51;
g=color/6%7*85>>1;
b=color/42%6*51;
return (b<<16)+(g<<8)+r;
}
¤¦¤ó¡¢¤³¤ì¤Ç¾å¼ê¤¯Æ°¤¤½¤¦¤À¡£ char RGB(unsigned char r,unsigned char g,unsigned char b){
return (r/43)+(g/37)*6+(b/43)*42; // 0<=x<=255¢ª0<=x/43<6,0<=x/37<7
}
43¤È37¤Ï¡¢¤½¤ì¤¾¤ì255/6¤È255/7¤òÀÚ¤ê¾å¤²¤¿¿ôÃͤǤ¹¡£¤Ê¤Î¤Ç255°Ê²¼¤ÎÀµ¤ÎÀ°¿ô¤ò¤³¤¤¤Ä¤é¤Ç³ä¤Ã¤¿»þ¤Ë0¡Á6¼å¡¢0¡Á7¼å¤Ë¤Ê¤Ã¤¿¤ó¤Ç¤¹¡£ ¼ÂÁõ3:²ÄÊѥѥì¥Ã¥È¤ä¤Ã¤Ñ¤ê¡¢¤»¤Ã¤«¤¯Æ°Åª¤Ë¥Ñ¥ì¥Ã¥È¤òÏ®¤ì¤ë¤ó¤À¤«¤éÅÓÃæ¤«¤é¿§¤òÄɲäǤ¤Æ¤â¤¤¤¤¤¸¤ã¤Ê¤¤¤«¡£ void set_palette1(int num,unsigned char r,unsigned char g,unsigned char b){
int eflags;
eflags = io_load_eflags();
io_cli();
io_out8(0x03c8,num);
io_out8(0x03c9,r/4);
io_out8(0x03c9,g/4);
io_out8(0x03c9,b/4);
io_store_eflags(eflags);
return;
}
¥«¥é¡¼¥Ñ¥ì¥Ã¥È¤È¤½¤Î¥Ñ¥ì¥Ã¥È¤ËÆþ¤Ã¤Æ¤ë¿§¤Î¿ô¤òµ²±¤¹¤ëÊÑ¿ô¤Ï¥°¥í¡¼¥Ð¥ëÊÑ¿ô¤Ë¤·¤Æ¤ª¤³¤¦¡£ int colorpalette_num;
// ɸ½à¥«¥é¡¼¥Ñ¥ì¥Ã¥È
char table_rgb[256 * 3] = {
0x00,0x00,0x00, // ¹õ
0xff,0xff,0xff, // Çò
};
void init_palette(void){
colorpalette_num=2;
set_palette(0,1,table_rgb);
return;
}
¤µ¤Æ8bit¢ª24bit¤ÎÊÑ´¹ºî¶È¤ÏÍפé¤Ê¤¤¤·¡¢RGB´Ø¿ô¤òºî¤Ã¤Æ¤·¤Þ¤ª¤¦¡£ int RGB(unsigned char r,unsigned char g,unsigned char b){
for(i=0;i<colorpalette_num;i++){// »÷¤¿¿§¤Î¸¡º÷
/* Í׵ᤵ¤ì¤¿¿§¤¬¤É¤Î°Ì´û¸¤Î¿§¤È»÷¤Æ¤¤¤ë¤«¤òÄ´¤Ù¤ë */
if(/* Ʊ°ì¤Î¿§¤Ê¤é */){
return /* ¤½¤Î¿§¤òÊÖ¤¹ */;
}else if(/* º£¤Þ¤Ç¤ËÄ´¤Ù¤¿¤É¤Î¿§¤è¤ê»÷¤Æ¤¤¤ë¤Ê¤é */){
/* ¤½¤Î¿§¤Î¿§ÈÖ¹æ¤È¸µ¤Î¿§¤È¤Îµ÷Î¥¤È¤òµÏ¿ */
}
}
if(colorpalette_num==256){ // ¥«¥é¡¼¥Æ¡¼¥Ö¥ë¤Ë¤³¤ì°Ê¾åÄɲäǤ¤Ê¤¤¤È¤
return /* µÏ¿¤·¤Æ¤ª¤¤¤¿¡¢ºÇ¤â¶á¤¤¿§¤òÊÖ¤¹ */;
}else{ // ¥«¥é¡¼¥Æ¡¼¥Ö¥ë¤ËÄɲäǤ¤ë¤È¤
/* set_palette1¤ÇÍ׵ᤵ¤ì¤¿¿§¤òÄɲä·¤Æ */
/* ¥«¥é¡¼¥Ñ¥ì¥Ã¥È¤Ë¡¢Äɲ䵤줿¿§¤òµÏ¿¤·¤Æ */
colorpalette_num++; // Êݸ¤·¤Æ¤¤¤ë¿§¤ÎÁí¿ô¤¬Áý¤¨¤¿»ö¤òµÏ¿¤·¤Æ
return colorpalette_num-1; // ¿·¤¿¤ËÄɲä·¤¿¿§¤Î¿§ÈÖ¹æ¤òÊÖ¤¹
}
}
¤¦¡Á¤ó¡¦¡¦¡¦¡¢¡Ö2¤Ä¤Î¿§¤¬¤É¤Î°Ì»÷¤Æ¤¤¤ë¤«¡×¤ò¤É¤¦¤ä¤Ã¤ÆÉ½¸½¤·¤è¤¦¡¦¡¦¡¦¡£ º£²ó¤Ï¡¢¿§¤ÎÃÍÆ±»Î¤ò°ú¤»»¤·¤Æ¡¢ÀäÂÐÃͤdzç¤Ã¤Æ¡¢Á´Éô¤·¤Æ¡¢¤½¤ÎÃͤ¬0¤«¤é¤É¤Î°ÌÎ¥¤ì¤Æ¤ë¤«¤Çɽ¸½¤¹¤ë¤È¤¤¤¦ÊýË¡¤Ç¹Ô¤¤¿¤¤¤È»×¤¤¤Þ¤¹¡£
±¿¤Î¤¤¤¤»ö¤Ë¡¢abs´Ø¿ô¤Ïɸ½à¥é¥¤¥Ö¥é¥ê¤ËÍѰդµ¤ì¤Æ¤¤¤ë¤è¤¦¤Ç¤¹¡£ int abs(int n); ¤µ¤Æ¼ÂÁõ¡£¤³¤ó¤Ê´¶¤¸¤«¤Ê¡© int RGB(unsigned char r,unsigned char g,unsigned char b){
int i;
int howfar,mostnear=256; // ¤É¤Î°Ì´û¸¤Î¿§¤È»÷¤Æ¤¤¤ë¤«¤òµ²±¤·¤Æ¤ª¤¯¤¿¤á¤ÎÊÑ¿ô
int nearcolor=-1; // ºÇ¤â¶á¤¤¿§¤Î¿§ÈÖ¹æ
// ²¼°Ì2bit¤ÏÉÁ²è¤¹¤ë¤È¤¤ËÈ¿±Ç¤µ¤ì¤Ê¤¤¤¿¤á¡¢2bitʬ±¦¥·¥Õ¥È¤·¤Æ¤ª¤¯¡£
r>>=2;
g>>=2;
b>>=2;
for(i=0;i<colorpalette_num;i++){// »÷¤¿¿§¤Î¸¡º÷
howfar=abs((table_rgb[i*3 ]>>2)-r)+
abs((table_rgb[i*3+1]>>2)-g)+
abs((table_rgb[i*3+2]>>2)-b);
if(howfar==0){// Ʊ¤¸¿§¤¬¸«¤Ä¤«¤Ã¤¿¤é
return i; // ¤½¤Î¿§¤òÊÖ¤¹
}else if(mostnear>howfar){// º£¤Þ¤Ç¤ËÄ´¤Ù¤¿¤É¤Î¿§¤è¤ê»÷¤Æ¤¤¤ë¤Ê¤é
// ¤½¤Î¿§¤Î¿§ÈÖ¹æ¤È¸µ¤Î¿§¤È¤Îµ÷Î¥¤È¤òµÏ¿
nearcolor=i;
mostnear=howfar;
}
}
if(colorpalette_num==256){ // ¥«¥é¡¼¥Æ¡¼¥Ö¥ë¤Ë¤³¤ì°Ê¾åÄɲäǤ¤Ê¤¤¤È¤
return nearcolor; // µÏ¿¤·¤Æ¤ª¤¤¤¿¡¢ºÇ¤â¶á¤¤¿§¤òÊÖ¤¹
}else{ // ¥«¥é¡¼¥Æ¡¼¥Ö¥ë¤ËÄɲäǤ¤ë¤È¤
set_palette1(colorpalette_num,r<<2,g<<2,b<<2); // set_palette1¤ÇÍ׵ᤵ¤ì¤¿¿§¤òÄɲä·¤Æ
/* ¥«¥é¡¼¥Ñ¥ì¥Ã¥È¤Ë¡¢Äɲ䵤줿¿§¤òµÏ¿¤·¤Æ */
table_rgb[colorpalette_num*3 ]=r<<2;
table_rgb[colorpalette_num*3+1]=g<<2;
table_rgb[colorpalette_num*3+2]=b<<2;
colorpalette_num++; // Êݸ¤·¤Æ¤¤¤ë¿§¤ÎÁí¿ô¤¬Áý¤¨¤¿»ö¤òµÏ¿¤·¤Æ
return colorpalette_num-1; // ¿·¤¿¤ËÄɲä·¤¿¿§¤Î¿§ÈÖ¹æ¤òÊÖ¤¹
}
}
ͽÁÛÄ̤ê¤È¤¤¤¦¤«¤Ê¤ó¤È¸À¤¦¤«¡¢ÊªÀ¨¤¯Ä¹¤¯¤Ê¤Ã¤Æ¤·¤Þ¤Ã¤¿¡£ ºÇ¸å¤Ë¤ä¤ë»ö³Îǧ¤â½ÅÍפÀ¤Í boxfill8(vram,xsize,RGB(0x00,0x84,0x84), 0 ,0 ,xsize- 1,ysize-29); boxfill8(vram,xsize,RGB(0xc6,0xc6,0xc6), 0 ,ysize-28,xsize- 1,ysize-28); boxfill8(vram,xsize,RGB(0xff,0xff,0xff), 0 ,ysize-27,xsize- 1,ysize-27); boxfill8(vram,xsize,RGB(0xc6,0xc6,0xc6), 0 ,ysize-26,xsize- 1,ysize- 1); boxfill8(vram,xsize,RGB(0xff,0xff,0xff), 3 ,ysize-24,59 ,ysize-24); boxfill8(vram,xsize,RGB(0xff,0xff,0xff), 2 ,ysize-24, 2 ,ysize- 4); boxfill8(vram,xsize,RGB(0x84,0x84,0x84), 3 ,ysize- 4,59 ,ysize- 4); boxfill8(vram,xsize,RGB(0x84,0x84,0x84),59 ,ysize-23,59 ,ysize- 5); boxfill8(vram,xsize,RGB(0x00,0x00,0x00), 2 ,ysize- 3,59 ,ysize- 3); boxfill8(vram,xsize,RGB(0x00,0x00,0x00),60 ,ysize-24,60 ,ysize- 3); boxfill8(vram,xsize,RGB(0x84,0x84,0x84),xsize-47,ysize-24,xsize- 4,ysize-24); boxfill8(vram,xsize,RGB(0x84,0x84,0x84),xsize-47,ysize-23,xsize-47,ysize- 4); boxfill8(vram,xsize,RGB(0xff,0xff,0xff),xsize-47,ysize- 3,xsize- 4,ysize- 3); boxfill8(vram,xsize,RGB(0xff,0xff,0xff),xsize- 3,ysize-24,xsize- 3,ysize- 3); ˺¤ì¤Ê¤¤¤¦¤Á¤ËRGB´Ø¿ô¤È¤«¤ÎÀë¸À¤â½ñ¤¤¤Æ¤ª¤³¤¦¡£ ¿§¤òº®¤¼¤ÆÉ½¸½¤·¤Æ¤ß¤ë¥³¥á¥ó¥È¤ÇK¤µ¤ó¤¬¡Ö¿§¤òº®¤¼¤ëÊýË¡¤âÀâÌÀ¤·¤Æ¡×¤È¸À¤Ã¤Æ¤ë¤è¤¦¤Ë¸«¤¨¤Æ¤·¤Þ¤Ã¤¿¡£ // c1¡¢c2¤Ïº®¤¼¤ëÆó¤Ä¤Î¿§¡£pattern¤Ï¿§¤ò¤É¤ÎÈæÎ¨¤Çº®¤¼¤ë¤«¤Ë´Ø¤¹¤ë°ú¿ô¤Ç¡¢
// 0¤Ê¤éc1¤Î¤ß¡¢4¤Ê¤éc2¤Î¤ß¡¢¤½¤ÎÃæ´Ö¤ÏÎ㤨¤Ð1¤Ê¤éc1¤¬Â¿¤á¤È¤Ê¤ë¡£
void boxfill8_2color(unsigned char *vram, int xsize, unsigned char c1,unsigned char c2,int pattern, int x0, int y0, int x1, int y1)
{
int x, y;
unsigned char k[2],table[4]={3,1,0,2};
if(pattern>4) pattern=4;
if(pattern<0) pattern=0;
if(c1==c2||pattern==0){ // Ʊ¤¸¿§¤¬Í褿¤éº®¤¼¤ëɬÍפ¬Ìµ¤¤¤Î¤Ç¤â¤Ã¤Èñ½ã¤Ê´Ø¿ô¤Ë½èÍý¤òÅϤ¹¡£
// ¤³¤³¤ÇÅϤ¹¿§¤¬c1¤Ê¤Î¤Ç¡¢¤Ä¤¤¤Ç¤Ë¥Ñ¥¿¡¼¥ó¤¬0¤À¤Ã¤¿»þ¤Ë¤Ä¤¤¤Æ¤âȽÄê¡£
boxfill8(vram,xsize,c1,x0,y0,x1,y1);
return;
}else if(pattern==4){ // ¥Ñ¥¿¡¼¥ó¤¬4¤Î»þ¡£
boxfill8(vram,xsize,c2,x0,y0,x1,y1);
return;
}
k[0]=c1;
k[1]=c2;
for (y = y0; y <= y1; y++){
for (x = x0; x <= x1; x++)
// ¤³¤Î¾¯¤·Ê£»¨¤½¤¦¤Ê·×»»¼°¤Ï¡¢x-x0¤Èy-y0¤Î¶ö´ñ¤Çtable¤Î¤É¤ÎÃͤò»È¤¦¤«¤ò·è¤á¤Æ¡¢¤½¤ì¤Ë4¤è¤ê¤Ï¾®¤µ¤¤Ãͤò¤·¤Æ¡¢
// 2bit±¦¥·¥Õ¥È¤·¤Æ¤¤¤ë¡£4¤è¤ê¾®¤µ¤¤Ãͤò¤·¤¿»þÅÀ¤Ç4°Ê¾å¤Ë¤Ê¤Ã¤Æ¤¤¤ì¤Ð1¡¢¤½¤¦¤Ç¤Ê¤±¤ì¤Ð0¤¬k¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ë»È¤ï¤ì¤ë¡£
vram[y * xsize + x] = k[(table[((x-x0)&1)+(((y-y0)&1)<<1)]+pattern)>>2];
}
return;
}
»È¤¦»þ¤Ï¤³¤ó¤Ê´¶¤¸ boxfill8_2color(vram,xsize,RGB(0x00,0x88,0x88),RGB(0x00,0x80,0x80),2, 0 ,0 ,xsize- 1,ysize-29); boxfill8_2color(vram,xsize,RGB(0xc8,0xc8,0xc8),RGB(0xc0,0xc0,0xc0),2, 0 ,ysize-28,xsize- 1,ysize-28); boxfill8_2color(vram,xsize,RGB(0xff,0xff,0xff),RGB(0xff,0xff,0xff),0, 0 ,ysize-27,xsize- 1,ysize-27); boxfill8_2color(vram,xsize,RGB(0xc8,0xc8,0xc8),RGB(0xc4,0xc4,0xc4),2, 0 ,ysize-26,xsize- 1,ysize- 1); boxfill8_2color(vram,xsize,RGB(0xff,0xff,0xff),RGB(0xff,0xff,0xff),0, 3 ,ysize-24,59 ,ysize-24); boxfill8_2color(vram,xsize,RGB(0xff,0xff,0xff),RGB(0xff,0xff,0xff),0, 2 ,ysize-24, 2 ,ysize- 4); boxfill8_2color(vram,xsize,RGB(0x00,0x88,0x88),RGB(0x00,0x80,0x80),2, 3 ,ysize- 4,59 ,ysize- 4); boxfill8_2color(vram,xsize,RGB(0x00,0x88,0x88),RGB(0x00,0x80,0x80),2,59 ,ysize-23,59 ,ysize- 5); boxfill8_2color(vram,xsize,RGB(0x00,0x00,0x00),RGB(0x00,0x00,0x00),0, 2 ,ysize- 3,59 ,ysize- 3); boxfill8_2color(vram,xsize,RGB(0x00,0x00,0x00),RGB(0x00,0x00,0x00),0,60 ,ysize-24,60 ,ysize- 3); boxfill8_2color(vram,xsize,RGB(0x00,0x88,0x88),RGB(0x00,0x80,0x80),2,xsize-47,ysize-24,xsize- 4,ysize-24); boxfill8_2color(vram,xsize,RGB(0x00,0x88,0x88),RGB(0x00,0x80,0x80),2,xsize-47,ysize-23,xsize-47,ysize- 4); boxfill8_2color(vram,xsize,RGB(0xff,0xff,0xff),RGB(0xff,0xff,0xff),0,xsize-47,ysize- 3,xsize- 4,ysize- 3); boxfill8_2color(vram,xsize,RGB(0xff,0xff,0xff),RGB(0xff,0xff,0xff),0,xsize- 3,ysize-24,xsize- 3,ysize- 3); Ť¤¤Î¤ÇÊ̤δؿô¤òÄɲᣠvoid boxfill8_color(unsigned char *vram, int xsize,unsigned char r,unsigned char g,unsigned char b, int x0, int y0, int x1, int y1)
{
int cu=((r+3)&0xfc)+(((g+3)&0xfc)<<8)+(((b+3)&0xfc)<<16);
int cd=(r&0xfc)+((g&0xfc)<<8)+((b&0xfc)<<16);
if(cu==cd){ // ÊäÀµ¤¹¤ëɬÍפ¬Ìµ¤¤
boxfill8(vram,xsize,RGB(r,g,b),x0,y0,x1,y1);
}else{
if(r>=0xfd) r=0xfc;
if(g>=0xfd) g=0xfc;
if(b>=0xfd) b=0xfc;
boxfill8_2color(vram,xsize,RGB(r,g,b),RGB(r+((r&2)<<1),g+((g&2)<<1),b+((b&2)<<1)),2,x0,y0,x1,y1);
}
return;
}
¤³¤ì¤Ç¤¤¤¯¤é¤«¸«¤ä¤¹¤¯¤Ê¤Ã¤¿¤«¤Ê¡£ boxfill8_color(vram,xsize,0x00,0x84,0x84, 0 ,0 ,xsize- 1,ysize-29); boxfill8_color(vram,xsize,0xc6,0xc6,0xc6, 0 ,ysize-28,xsize- 1,ysize-28); boxfill8_color(vram,xsize,0xff,0xff,0xff, 0 ,ysize-27,xsize- 1,ysize-27); boxfill8_color(vram,xsize,0xc6,0xc6,0xc6, 0 ,ysize-26,xsize- 1,ysize- 1); boxfill8_color(vram,xsize,0xff,0xff,0xff, 3 ,ysize-24,59 ,ysize-24); boxfill8_color(vram,xsize,0xff,0xff,0xff, 2 ,ysize-24, 2 ,ysize- 4); boxfill8_color(vram,xsize,0x84,0x84,0x84, 3 ,ysize- 4,59 ,ysize- 4); boxfill8_color(vram,xsize,0x84,0x84,0x84,59 ,ysize-23,59 ,ysize- 5); boxfill8_color(vram,xsize,0x00,0x00,0x00, 2 ,ysize- 3,59 ,ysize- 3); boxfill8_color(vram,xsize,0x00,0x00,0x00,60 ,ysize-24,60 ,ysize- 3); boxfill8_color(vram,xsize,0x84,0x84,0x84,xsize-47,ysize-24,xsize- 4,ysize-24); boxfill8_color(vram,xsize,0x84,0x84,0x84,xsize-47,ysize-23,xsize-47,ysize- 4); boxfill8_color(vram,xsize,0xff,0xff,0xff,xsize-47,ysize- 3,xsize- 4,ysize- 3); boxfill8_color(vram,xsize,0xff,0xff,0xff,xsize- 3,ysize-24,xsize- 3,ysize- 3); Ãí°Õ»ö¹à(·ü°Æ»ö¹à)¡¼ÂÁõ3¤Ç¡¢¡ÖƱ¤¸¿§¤¬¤Ê¤¯¤Æ¥«¥é¡¼¥Ñ¥ì¥Ã¥È¤âËþ¥¿¥ó¤À¤è¡×¤È¤¤¤¦»þ¤Ë²¿¤â¹Í¤¨¤º¤ËºÇ¤â¶á¤¤¿§¤òÊÖ¤·¤Æ¤¤¤Þ¤¹¤¬¡¢
¤È¤¤¤¦ÊýË¡¤Ê¤Î¤Ç¤¹¤¬¡¢¤É¤Á¤é¤Ë¤·¤Æ¤â¤Á¤ç¤Ã¤ÈŤ¯¤Ê¤Ã¤Æ¤·¤Þ¤Ã¤¿¤Î¤Ç¡¢¡Ö³§¤µ¤ó¤Ø¤Î½ÉÂê¡×¤È¤¤¤¦¤³¤È¤Ç¤¤¤¤¤Ç¤·¤ç¤¦¤«¡© ´Ê°×Åêɼ(º£²ó¤Î¥«¥é¡¼¥Ñ¥ì¥Ã¥È¤Î´ÉÍý¤Ë´Ø¤¹¤ëµ»ö¤Ë¤Ä¤¤¤Æ¡£)¤É¤ÎÄøÅÙÌò¤ËΩ¤Ã¤¿¡© ÀâÌÀ¤ÏŬÀÚ¡© ¥½¡¼¥¹¥³¡¼¥ÉÃæ¤Î¥³¥á¥ó¥È¤Ï¡© æÀþ:³ä¤ê»»¤Ã¤Æ¤É¤Î¤¯¤é¤¤ÃÙ¤¤¤Î¡©¤È¤³¤í¤Ç³ä¤ê»»¤ÏÃÙ¤¤¤ÈÎɤ¯Ê¹¤¤Þ¤¹¤¬¡¢¼ÂºÝ¤É¤ì¤¯¤é¤¤ÃÙ¤¤¤Î¤«¤È¸À¤¦¤È
Pentium4¤Î¾ì¹ç¤ÏIntelËܲȤ«¤é¡ÖIA-32 ¥¤¥ó¥Æ¥ëR ¥¢¡¼¥¥Æ¥¯¥Á¥ã¡¼ºÇŬ²½¥ê¥Õ¥¡¥ì¥ó¥¹¡¦¥Þ¥Ë¥å¥¢¥ë¡×¡ÖAP-485 ¥¤¥ó¥Æ¥ëR ¥×¥í¥»¥Ã¥µ¡¼¤Î¼±ÊÌ¤È CPUID Ì¿Îá¡×¤ò ¤³¤Î¥Ú¡¼¥¸¤ÎÍúÎò
¥³¥á¥ó¥È
|