#contents
 **¿§
 ***º£¤Î¼ÂÁõ
 -¡Ö4ÆüÌܡ׽ªÎ»¤·¤¿¤¢¤¿¤ê¤È²¾Äê¡£
 
 ***º£Æü¤ÎÎÁÍý
 ¤È¤ê¤¢¤¨¤º256¿§»È¤¨¤ë¤³¤È¤Ë¤Ê¤Ã¤Æ¤ë¤ó¤À¤·¡¢ºÇÂç¸Â»È¤¨¤ë¤è¤¦¤Ë¤¹¤ë¤«¡£~
 °ì¡¹COL8_848484¤È¤«½ñ¤¯¤Î¤â¤¤¤¤¤±¤É¡¢¤³¤ÎÄê¿ô̾¤â¤¢¤Þ¤ê³Ð¤¨¤ä¤¹¤¯¤Ê¤¤¤è¤Ê¤¡¡¦¡¦¡¦~
 ¤è¤·¡¢RGB´Ø¿ô¤ß¤¿¤¤¤ÊÅÛ¤âºî¤Ã¤Á¤ã¤¨¡ª~
 
 ***ÌäÂê¤Ï1678Ëü¿§¤ÎÆâ¤É¤ì¤ò»È¤¦¤«¡£
 ¤È¸À¤¦¤³¤È¤ÇRGB´Ø¿ô¤òºî¤ê¤¿¤¤¤ï¤±¤Ç¤¹¤¬¡¢¤³¤³¤Ç°ì¤ÄÌäÂ꤬ȯÀ¸¤¹¤ë¤ï¤±¤Ç¤¹¡£~
 8bit¥«¥é¡¼¤Ê²èÌ̤κÇÂçÆ±»þȯ¸÷¿§¤Î¿ô¤Ï256¿§¡£¤½¤ì¤ËÈæ¤Ù24bit¤Çɽ¸½¤Ç¤­¤ë¿§¤Î¿ô¤Ï16777216¿§¡£6.6ËüÇܶᤤº¹¤¬¤¢¤ë¤ï¤±¤Ç¤¹¡£~
 ¤µ¤Æ¤É¤¦¤¹¤Ã¤«¡£~
 ~
 ¤ä¤Ï¤ê1678Ëü¿§¤ÎÆâ¤ÎËØ¤É¤ò¼Î¤Æ¤ë¤·¤«¤Ê¤¤¤ï¤±¤Ç¡¢Î㤨¤ÐVESA¤Î16bit¥â¡¼¥É¤Ç¤Ï~
 ÀÖ¤¬5bit¡¢ÎФ¬6bit¡¢ÀĤ¬5bitÅù¤È¤Ê¤Ã¤Æ¤¤¤ë¤ï¤±¤Ç¤¹¡£~
 ¤³¤¦¤¤¤¦¾å¼ê¤¤»ÅÍͤò¼«Ê¬¤Çºî¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£~
 ¤³¤³¤Ç3¼ïÎà¤ÎÊýË¡¤¬»×¤¤É⤫¤Ó¤Þ¤¹¡£~
 -ñ½ã¤Ë¡¢ÀÖ¤¬3bit¡¢ÎФ¬3bit¡¢ÀĤ¬2bitÅù¤È¤·¤Æ³ä¤ê¿¶¤ë¡Ê¤¿¤À¤·¤³¤Î¾ì¹ç¡¢ÀĤÎɽ¸½Ç½ÎϤ¬¶Ëü¤ËÎô¤ë¡£¡Ë
 -À֤ζ¯¤µ¤ò6Ãʳ¬¡¢ÎФζ¯¤µ¤ò7Ãʳ¬¡¢ÀĤζ¯¤µ¤ò6Ãʳ¬Åù¤È¤·¤Æ¡¢256¿§¤Î¥Ñ¥ì¥Ã¥È¤ò¤Ê¤ë¤Ù¤¯Í­¸úÍøÍѤ¹¤ë(¤¿¤À¤··×»»¤¬½Å¤½¤¦¡£)
 -½é´ü¥Ñ¥ì¥Ã¥È¤Ë¤ÏºÇÄã¸Â¤À¤±Â·¤¨¤Æ¤ª¤¤¤Æ¡¢É¬Íפ˱þ¤¸¤Æ¸å¤«¤éÄɲ乤ë(ÌÀ¤é¤«¤Ë¼ÂÁõ¤¬ÌÌÅݤ½¤¦)
 
 ¤µ¤Æ¤É¤ì¤ò¼ÂÁõ¤·¤¿¤â¤Î¤«¡£~
 ~
 ¥Ñ¥ì¥Ã¥È¤Î½é´ü²½¤Ï1ÅÙ¤·¤«¸Æ¤Ð¤Ê¤¤¤Î¤Ç¡¢Á´ÂÎŪ¤Ê®Å٤Ϥ¢¤Þ¤êÊѤï¤é¤Ê¤¤¤Ï¤º¤Ç¤¹¡£~
 ÌäÂê¤Ï24bit¢ª8bit¤ÎÊÑ´¹ºî¶È¡£ÍÍ¡¹¤Ê¥×¥í¥°¥é¥à¤ÎÍÍ¡¹¤Ê°ÌÃÖ¤«¤é¸Æ¤Ð¤ì¤ë»ö¤Ë¤Ê¤ëͽÄê¤Ê¤Î¤Ç¡¢~
 ¤³¤ÎÊÑ´¹ºî¶È¤Ï¤Ê¤ë¤Ù¤¯Â®¤¯¼Â¹Ô½ÐÍè¤ë¤è¤¦¤Ë¤·¤Æ¤ª¤­¤¿¤¤¤â¤Î¤Ç¤¹¡£~
 24bit¢ª8bitÍѤÎÊÑ´¹¥Æ¡¼¥Ö¥ë¤ò¼êºî¶È¤Çºî¤ë¤Î¤âÌÌÅݤǤ¹¤·¡£~
 ~
 ºÇ½é¤ÎÊýË¡¤À¤È¥Ó¥Ã¥È±é»»¤È¥·¥Õ¥È±é»»¤Ç´Êñ¤Ëºî¤ì¤½¤¦¤Ç¤¹¤¬¡¢Æó¤ÄÌܤÎÊýË¡¤À¤ÈÎɤ¯¤Æ¿§¤Î¶¯¤µ¤ÎÈϰϤò³Îǧ¤·¤Ê¤¬¤é¤Î»Åʬ¤±ºî¶È¡¢~
 ŬÅö¤Ë¼ÂÁõ¤¹¤ë¤È³ä¤ê»»¤¬´é¤ò½Ð¤·¤Þ¤¹¡£~
 »°¤ÄÌܤÎÊýË¡¤Ï½ÀÆðÀ­¤Ï¤¢¤ê¤Þ¤¹¤¬¡¢24bit¢ª8bit¤ÎÊÑ´¹ºî¶È¤ò¹Í¤¨¤ë¤ÈºÇ°­¤Ç¡¢¤Ä¤Þ¤ê°ì¡¹¸¡º÷¤«¤±¤ë¤Î¤ÇÃÙ¤¯¤Ê¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡£~
 [[æÀþ:³ä¤ê»»¤Ã¤Æ¤É¤Î¤¯¤é¤¤ÃÙ¤¤¤Î¡©>#div]]~
 ~
 ¤·¤«¤·¼Â¤ÏÀÖÍѤÎÊÑ´¹¥Æ¡¼¥Ö¥ë¡¢ÎÐÍѤÎÊÑ´¹¥Æ¡¼¥Ö¥ë¡¢ÀÄÍѤÎÊÑ´¹¥Æ¡¼¥Ö¥ë¤ò¤½¤ì¤¾¤ìºî¤Ã¤Æ¤ª¤¤¤Æ~
  char RGB(unsigned char r,unsigned char g,unsigned char b){
      return table_r[r]+table_g[g]+table_b[b];
  }
 ¤È¤¹¤ì¤Ð¤¤¤¤¤Î¤Ç¡¢ÊÑ´¹¥Æ¡¼¥Ö¥ë¤ÎÂ礭¤µ¤Ï16MiB¤Ç¤Ï¤Ê¤¯768Byte¤À¤Ã¤¿¤ê¤·¤Þ¤¹¡£~
 ¤¿¤Àº£²ó¤Ï¡¢ÊÑ´¹¥Æ¡¼¥Ö¥ë¤ò»È¤¦¤Ë¤â¡¢¤Á¤ç¤Ã¤ÈÄê¿ôËä¤á¹þ¤ß¤ÇÊݸ¤¹¤ë¤Ë¤Ï½Å¤¤¤·½ñ¤¯¤ÎÌÌÅݤÀ¤·~
 ¥á¥â¥ê´ÉÍý¤ò»Ï¤á¤ëÁ°¤Ë¥á¥â¥ê¤Î¹¥¤­¾¡¼ê¤Ê°ÌÃÖ¤ò¤¤¤¸¤¯¤ë¤ï¤±¤Ë¤â¹Ô¤«¤Ê¤¤¤Î¤ÇÊÑ´¹¥Æ¡¼¥Ö¥ë¤Ï»È¤ï¤Ê¤¤Êý¸þ¤Ç¿Ê¤á¤¿¤¤¤È»×¤¤¤Þ¤¹¡£~
 ~
 :MiB|ñ°Ì¡£1MiB=1024KiB=1048576Byte¡£»ä¤¬¤³¤Ã¤Á¤Îñ°Ì¤¬¹¥¤­¤ÊÍýͳ¤Ï¥á¥â¥ê´ÉÍý¤ÎKiB¤ÎÀâÌÀ¤ò»²¾È¤Î»ö¡£
 
 ***¼ÂÁõ1:bitñ°Ì¤Ç³ä¤êÅö¤Æ
 ¤Þ¤º»ÅÍͤÀ¤±Àè¤ËŬÅö¤Ë·è¤á¤Æ¤·¤Þ¤ª¤¦¤«~
 ~
 ¿§¤Ï8bit¤Ç¡¢ÀÖ:²¼°Ì3bit¡¢ÀÄ:¾å°Ì2bit¡¢ÎÐ:¤½¤Î¾3bit¡ÊºÇ½é¤Ë¹Í¤¨¤¿ÊýË¡¡£¡Ë~
 ¤Ä¤Þ¤ê2¿Ê¿ô¤Ç¹Ô¤¯¤È¥Õ¥£¡¼¥ë¥É¤Ïbbgggrrr¤Ë¤Ê¤ë¡£~
 ~
 ¤µ¤Æ¡¢init_palette´Ø¿ôÆâ¤ÇÁ´ÉôÄê¿ô½ñ¤¯¤Î¤ÏÌÌÅݤ¯¤µ¤¤¤Î¤Ç¡¢8bit¢ª24bit¤ÎÊÑ´¹´Ø¿ô¤ò½ñ¤¤¤Æ¤·¤Þ¤ª¤¦¡£~
 
  // ²¿¤â¹Í¤¨¤º¤ËŬÅö¤Ëºî¤Ã¤Æ¤ß¤¿ÅÛ
  // °ú¿ô¤Î·Á¼°: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)¤ÏÇò¤Ë¤Ê¤ë¡©~
 Åú¤¨¤Ï¡Ö¤Ê¤é¤Ê¤¤¡×¤Ê¤ó¤À¡£Ê̤˳¥¿§¤Ã¤Æ°ÕÌ£¤¸¤ã¤Ê¤¤¤è¡©¾¯¤·²«¿§¤Ã¤Ý¤¤Çò¤Ë¤Ê¤ë¡£~
 ¤Ê¤¼¤Ê¤éRGB8ToRGB24(0xff)¤Ï0xc0e0e0¤Ë¤Ê¤ë¤«¤é¡£~
 ¤½¤ì¤¸¤ã¤³¤ó¤Ê¤Î¤Ï¤É¤¦¤À¤í¤¦¡©~
 
  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)¤Ë¤Ê¤ë¤ß¤¿¤¤¤À¡£~
 ¤Ç¤âRGB8ToRGB24(0x00)¤¬¹õ¤Ë¤Ê¤é¤Ê¤¤¡£¤½¤³¤Ç»×¤¤¤Ä¤¤¤¿¤Î¤¬¤³¤ì¡£~
 
  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;
  }
 
 ¤³¤ì¤Ï¤É¤¦¤¤¤¦»ÅÁȤߤÀ¤í¤¦¡©¤Þ¤º°ìÈÖ¾å¤Î¹Ô¤«¤é¹Í¤¨¤Æ¤ß¤è¤¦¡£~
 color=bbgggrrr¤À¤«¤é¡¢R=color&0x07¤È¤¹¤ë¤ÈR=00000rrr~
 r¤Ð¤Ã¤«¤ê¤¸¤ãʬ¤«¤ê¤Ë¤¯¤¤¤«¤é¡¢²¾¤ËR=00000abc¤È¤·¤Æ¤ª¤¯¤È~
   00000abc
  *01001001¢«73¤Î2¿Ê¿ôɽµ­
  ---------
  abcabcabc¢«¥ì¥¸¥¹¥¿¤Ï32bit¤À¤«¤é9bitʬ¤Ï;͵¤ÇÆþ¤ë
 ¤È¤Ê¤ë¡£¤½¤·¤Æ¾å°Ì8bit¤¬É¬ÍפÀ¤«¤é±¦¤Ë°ì¤Ä¥·¥Õ¥È¤·¤Æ~
 (color&0x07)*73>>1=abcabcab~
 ¤Ê¤ë¤Û¤É¡¢¤³¤Î·ë²Ì¤ÏÎɤµ¤½¤¦¤À¡£abc=000¤Ê¤éÅú¤¨¤â00000000¤Ë¤Ê¤ë¤·¡¢abc=111¤Ê¤éÅú¤¨¤â11111111¤Ë¤Ê¤ë¡£~
 ¤·¤«¤â³Ý¤±»»¤ò»È¤Ã¤Æ¤ë¤«¤éÂçÂÎÆ±¤¸³ä¹ç¤Ç¿ôÃͤ¬Â礭¤¯¤Ê¤ë¤ï¤±¤À¡£~
 ¤¹¤ë¤È3ÈÖÌܤμ°¤Ï¤É¤¦¤À¤í¤¦¡©~
 color=bbgggrrr¤À¤«¤é¡¢B=color&0xc0¤È¤¹¤ë¤ÈB=bb000000~
 b¤Ð¤Ã¤«¤ê¤¸¤ãʬ¤«¤ê¤Ë¤¯¤¤¤«¤é²¾¤ËB=xy000000¤È¤¹¤ë¤È~
        xy000000
  *     01010101¢«85¤Î2¿Ê¿ôɽµ­
  --------------
  xyxyxyxy000000
 ¤½¤ì¤Ç¡¢¾å°Ì8bit¤¬É¬ÍפÀ¤«¤é±¦¤Ë6bit¥·¥Õ¥È¤·¤Æ~
 (color&0xc0)*85>>6=xyxyxyxy~
 ¤Ê¤ë¤Û¤É¡£~
 ~
 ¤µ¤Æ¡¢init_palette¤òRGB8ToRGB24¤ò»È¤¦¤è¤¦¤Ë½ñ¤­´¹¤¨¤è¤¦¡£~
  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;
  }
 ¤Ê¤ó¤«Á°¤è¤ê¤¹¤Ã¤­¤ê¤·¤¿¤è¤¦¤Ê¡¦¡¦¡¦¡£~
 ~
 ¤µ¤ÆËÜÂê¤ÎRGB´Ø¿ô¤òºî¤í¤¦¤«¡£~
  // Ìá¤êÃͤηÁ¼°: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))
 ~
 --¼Â¤Ï¥·¥Õ¥È±é»»¤Ï¥Ó¥Ã¥È±é»»¤è¤ê±é»»½ç°Ì¤¬¹â¤¤¤Î¤Ç¡¢²¼¤Ç¤âÌäÂê¤Ê¤¤¡£»ä¤ÏÆÉ¤ß¤Ë¤¯¤¤¤È´¶¤¸¤ë¤¬¡£~
  #define RGB(r,g,b) (((b)&0xc0)+((g)>>2&0x38)+((r)>>5&0x07))
 
 ***¼ÂÁõ2:bitñ°Ì¤Ç¤Ï¤Ê¤¤³ä¤êÅö¤ÆÊýË¡¤Ë¤Ä¤¤¤Æ
 ¤Þ¤¿»ÅÍͤòÀè¤Ë·è¤á¤Æ¤·¤Þ¤ª¤¦¡£~
 ~
 ¿§¤Ï0¡Á251¤Ç¡¢ÀÖ:¿§¤ò6¤Ç³ä¤Ã¤¿Í¾¤ê¡¢ÎÐ:¿§¤ò6¤Ç³ä¤Ã¤¿ÅÛ¤ò7¤Ç³ä¤Ã¤¿Í¾¤ê¡¢ÀÄ:¿§¤ò42¤Ç³ä¤Ã¤¿ÅÛ¤ò6¤Ç³ä¤Ã¤¿Í¾¤ê¡Ê2ÈÖÌܤÎÊýË¡¡£)~
 ~
 ¤µ¤Æ8bit¢ª24bit¤ÎÊÑ´¹´Ø¿ô¤ò½ñ¤¤¤Æ¤·¤Þ¤ª¤¦¡£~
  // ²¿¤â¹Í¤¨¤º¤ËŬÅö¤Ëºî¤Ã¤Æ¤ß¤¿ÅÛ
  // Ìá¤êÃͤηÁ¼°: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¤ÎÃͤ·¤«¤È¤Ã¤Æ¤Ê¤¤¡£~
 255¤Ç³Ý¤±¤Æ5¤Ç³ä¤Ã¤Æ¤ª¤³¤¦¡£¤¤¤ä¡¢51¤ò³Ý¤±¤ì¤Ð¤¤¤¤¤Î¤«¡£~
 g¤Ï¤É¤¦¤·¤è¤¦¡£255¤Ç³Ý¤±¤Æ6¤Ç³ä¤Ã¤¿¤é42.5ÇܤÀ¡£255¤Ç³Ý¤±¤Æ3¤Ç³ä¤Ã¤Æ(¤Ä¤Þ¤ê85¤ò³Ý¤±¤Æ)¡¢¹¹¤Ë2¤Ç³ä¤ì¤Ð¤¤¤¤¤Î¤«¤Ê¡£~
 
  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;
  }
 
 ¤¦¤ó¡¢¤³¤ì¤Ç¾å¼ê¤¯Æ°¤­¤½¤¦¤À¡£~
 ~
 ¤µ¤Æ¡¢RGB´Ø¿ô¤òºî¤ë¤«¡£¤³¤ó¤Ê´¶¤¸¤«¤Ê¡©~
  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:²ÄÊѥѥì¥Ã¥È
 ¤ä¤Ã¤Ñ¤ê¡¢¤»¤Ã¤«¤¯Æ°Åª¤Ë¥Ñ¥ì¥Ã¥È¤òÏ®¤ì¤ë¤ó¤À¤«¤éÅÓÃæ¤«¤é¿§¤òÄɲäǤ­¤Æ¤â¤¤¤¤¤¸¤ã¤Ê¤¤¤«¡£~
 ¤³¤ì¤Ç¹¥¤­¤Ê¿§¤ò(ºÇÂçÆ±»þȯ¸÷¿§¤¬256¿§¤Ë¼ý¤Þ¤ëÈϰϤÇ)»È¤¨¤ë¤è¤¦¤Ë½ÐÍè¤ë¤Ë°ã¤¤¤Ê¤¤¡£~
 ~
 ¿§¤òÄɲä¹¤ë´Ø¿ô¤Ï¤³¤ó¤Ê´¶¤¸¤Ç¤¤¤¤¤«¤Ê¤¡¡©~
  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(table_rgb[i*3]-r)+abs(table_rgb[i*3+1]-g)+abs(table_rgb[i*3+2]-b)¤ß¤¿¤¤¤ÊÅÛ¤òµá¤á¤Æ¡¢~
 0¤Ê¤éƱ¤¸¿§¡¢0¤Ë¶á¤±¤ì¤Ð»÷¤Æ¤ë¿§¡¢¤È¤¤¤¦Ìõ¤Ç¤¹¡£~
 :ÀäÂÐÃÍ|Éé¤ÎÃͤòÀµ¤ÎÃͤˡ¢Àµ¤ÎÃͤϤ½¤Î¤Þ¤Þ¤ËÊÖ¤¹´Ø¿ô¤Î̾Á°¡£abs(3)=3,abs(-5)=5
 
 ±¿¤Î¤¤¤¤»ö¤Ë¡¢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; // ¿·¤¿¤ËÄɲä·¤¿¿§¤Î¿§ÈÖ¹æ¤òÊÖ¤¹
      }
  }
 
 ͽÁÛÄ̤ê¤È¤¤¤¦¤«¤Ê¤ó¤È¸À¤¦¤«¡¢ÊªÀ¨¤¯Ä¹¤¯¤Ê¤Ã¤Æ¤·¤Þ¤Ã¤¿¡£~
 
 ***ºÇ¸å¤Ë¤ä¤ë»ö
 ³Îǧ¤â½ÅÍפÀ¤Í~
 (HariMainÆâÉô)
  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¤µ¤ó¤¬¡Ö¿§¤òº®¤¼¤ëÊýË¡¤âÀâÌÀ¤·¤Æ¡×¤È¸À¤Ã¤Æ¤ë¤è¤¦¤Ë¸«¤¨¤Æ¤·¤Þ¤Ã¤¿¡£~
 ŬÅö¤Ë¼ÂÁõ¤·¤¿¤é¾å¼ê¤¯Æ°¤¤¤Æ¤·¤Þ¤Ã¤¿¤Î¤Ç¤½¤Î¥½¡¼¥¹¤ò¤È¤ê¤¢¤¨¤º¸ø³«¡£~
 (¼ç¤Ë¼ÂÁõ3¤ËÄɲÃ)
  // 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¤Ç¡¢¡ÖƱ¤¸¿§¤¬¤Ê¤¯¤Æ¥«¥é¡¼¥Ñ¥ì¥Ã¥È¤âËþ¥¿¥ó¤À¤è¡×¤È¤¤¤¦»þ¤Ë²¿¤â¹Í¤¨¤º¤ËºÇ¤â¶á¤¤¿§¤òÊÖ¤·¤Æ¤¤¤Þ¤¹¤¬¡¢~
 Î㤨¤Ð¥«¥é¡¼¥Ñ¥ì¥Ã¥È¤¬Ï³¤ì¤Ê¤¯ÀĤäÀÄÎС¢¤½¤ì¤ËÎФÇËþ¥¿¥ó¤À¡¡¤È¤¤¤¦»þ¤Ë¤ÏÀÖ¤òÍ׵ᤷ¤Æ¤â¹õ¤¬¤¢¤ì¤Ð¹õ¡¢¤½¤¦¤Ç¤Ê¤±¤ì¤ÐÀĤ«ÎФ¬¤ª¤½¤é¤¯Ê֤äƤ­¤Þ¤¹¡£~
 ´û¸¤Î¿§¤ËÎɤ¯»÷¤Æ¤¤¤ë¿§¤¬¤Ê¤¤»þ¤Ï¡¢1¿§Íפé¤Ê¤¤¿§¤òõ¤·¤Æ¤½¤ì¤òÃÖ´¹¤¹¤ë¤Î¤¬¤¤¤¤¤Î¤Ç¤¹¤¬¡¢~
 ¿§¤Îõ¤·Êý¤Ë¤Ï»ä¤¬»×¤¤¤Ä¤¯¸Â¤ê¤Ç¤Ï2¼ïÎढ¤Ã¤Æ¡¢~
 -º£¸½ºßºÇ¤â»È¤ï¤ì¤Æ¤¤¤Ê¤¤¿§¤ò¤Ê¤ó¤È¤«¸À¤¤Åö¤Æ¤ëÊýË¡
 -¿§¤ÎÌ©ÅÙ¤¬Ç»¤¤¾ì½ê¤Î¿§¤òõ¤·¤Æ¡¢¤½¤Î¿§¤ò¸À¤¤Åö¤Æ¤ëÊýË¡(Íפ¹¤ë¤Ë¤½¤Î¿§¤¬¤Ê¤¯¤Ê¤Ã¤Æ¤â¤è¤¯»÷¤¿¿§¤Ç¥«¥Ð¡¼¤Ç¤­¤ë¤è¤¦¤Ê¾ì½ê¤òõ¤¹¡£)
 
 ¤È¤¤¤¦ÊýË¡¤Ê¤Î¤Ç¤¹¤¬¡¢¤É¤Á¤é¤Ë¤·¤Æ¤â¤Á¤ç¤Ã¤ÈŤ¯¤Ê¤Ã¤Æ¤·¤Þ¤Ã¤¿¤Î¤Ç¡¢¡Ö³§¤µ¤ó¤Ø¤Î½ÉÂê¡×¤È¤¤¤¦¤³¤È¤Ç¤¤¤¤¤Ç¤·¤ç¤¦¤«¡©~
 ¤Þ¤¿¡¢ºÇ¤â»÷¤Æ¤¤¤ë¿§¤È¤É¤Î¤¯¤é¤¤»÷¤Æ¤¤¤Ê¤«¤Ã¤¿¤éÃÖ´¹¤·¤Ë¹Ô¤¯¤«¡¢¤½¤ÎïçÃͤòÀßÄꤹ¤ë¤Î¤âÆñ¤·¤¤¤È»×¤¦¤Î¤Ç¤¹¤¬¡¦¡¦¡¦¡£~
 ~
 ­¢Â¿Ê¬¤³¤ì¤ÏºÇÎɤÎÊýË¡¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£É¬¤º¥í¥¸¥Ã¥¯¥ì¥Ù¥ë¤Ç¤â¤Ã¤È¤¤¤¤¤â¤Î¤¬¤¢¤ë¤Ï¤º¤Ç¤¹¡£~
 »ä¤Ïº£¤Î¤È¤³¤í»×¤¤¤Ä¤­¤Þ¤»¤ó¤¬¡¢³§¤µ¤ó¤â¤¢¤ì¤³¤ì¹Í¤¨¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£~
 ¤Ç¤­¤ì¤Ð¤½¤ÎÊýË¡¤ò¥³¡¼¥É¤Ëµ¯¤³¤¹¤Ê¤ê¾¿Í¤ËÀâÌÀ¤Ç¤­¤ëÄøÅ٤˾ܤ·¤¯³°Éô»ÅÍͤò»æ¤Ë½ñ¤­½Ð¤¹¤Ê¤ê¤·¤Æ¤¯¤À¤µ¤¤¡£~
 »ä¤Ï¤½¤ÎÊýË¡¤ò¸«¤Æ¤ß¤¿¤¤¤Ç¤¹¡£~
 ~
 ­£°ì±þ³Îǧ¤Ï¤·¤Æ¤ë¤Î¤Ç¤¹¤¬¡¢¤¢¤Þ¤êƬ¤Î¤è¤¯¤Ê¤¤»ä¤¬½ñ¤¤¤¿¥³¡¼¥É¤Ë¥Ð¥°¤¬¤Ê¤¤¤È¤Ï¹Í¤¨¤é¤ì¤Þ¤»¤ó¡£~
 ¥³¡¼¥É¤ò¥³¥Ô¥Ú¤¹¤ëÁ°¤Ë¡Ö²¿¤¬¤·¤¿¤¯¤Æ¡¢¤É¤¦¤¹¤ì¤Ð¼ÂÁõ¤Ç¤­¤½¤¦¤«¡×¤òÍý²ò¤·¤Æ¡¢°ì±þ¥³¡¼¥É¤òÌܤÇÄɤäƤߤƤ¯¤À¤µ¤¤¡£~
 ~
 ***´Ê°×Åêɼ(º£²ó¤Î¥«¥é¡¼¥Ñ¥ì¥Ã¥È¤Î´ÉÍý¤Ë´Ø¤¹¤ëµ­»ö¤Ë¤Ä¤¤¤Æ¡£)
 ¤É¤ÎÄøÅÙÌò¤ËΩ¤Ã¤¿¡©
 #vote(Á´¤¯¡£[1],¤Û¤ó¤Î¤ï¤º¤«¤Ë¡£¤¢¤Þ¤ê¡£[1],¤ä¤ä¡¢¾¯¤·¡£[1],¤Þ¤¡¤Þ¤¡¡¢³ä¤È¡£[2],¤«¤Ê¤ê¡¢¤È¤Æ¤â[1],Èó¾ï¤Ë¡¢À¨¤¯[1])
 ÀâÌÀ¤ÏŬÀÚ¡©
 #vote(ÀâÌÀ²á¾ê,¤ä¤ä²á¾ê,ŬÀÚ,¤ä¤äÉÔŬÀÚ,ʬ¤«¤ê¤Ë¤¯¤¤,Á´¤¯Ê¬¤«¤é¤Ê¤¤)
 #vote(ÀâÌÀ²á¾ê[0],¤ä¤ä²á¾ê[0],ŬÀÚ[1],¤ä¤äÉÔŬÀÚ[0],ʬ¤«¤ê¤Ë¤¯¤¤[0],Á´¤¯Ê¬¤«¤é¤Ê¤¤[0])
 ¥½¡¼¥¹¥³¡¼¥ÉÃæ¤Î¥³¥á¥ó¥È¤Ï¡©
 #vote(¿¤¹¤®¤ë,¤ä¤ä¿¤¤,¤ä¤ä¿¤¤¤¬Å¬ÀÚ,ŬÀÚ¤ÇŬÎÌ,¤ä¤ä¾¯¤Ê¤¤¤¬Å¬ÀÚ,¤ä¤ä¾¯¤Ê¤¤,¾¯¤Ê¤¹¤®¤ë)
 
 &aname(div);
 ***æÀþ:³ä¤ê»»¤Ã¤Æ¤É¤Î¤¯¤é¤¤ÃÙ¤¤¤Î¡©
 ¤È¤³¤í¤Ç³ä¤ê»»¤ÏÃÙ¤¤¤ÈÎɤ¯Ê¹¤­¤Þ¤¹¤¬¡¢¼ÂºÝ¤É¤ì¤¯¤é¤¤ÃÙ¤¤¤Î¤«¤È¸À¤¦¤È~
 http://kmkz.jp/mtm/mag/code/asm.html ~
 ¤¢¤¿¤ê¤Ë¸Å¤¤»ñÎÁ¤¬ºÜ¤Ã¤Æ¤ë¤Î¤Ç¤¹¤¬¡¢¤É¤¦¤â8bitƱ»Î¤ÎÉ乿¤Ê¤·À°¿ô½ü»»¤Ç¤µ¤¨17clock¤«¤é¤«¤«¤ë¤è¤¦¤Ç¤¹¡£~
 ¤½¤ì¤ËÈæ¤Ù¤ë¤ÈAND¡¢OR¡¢SHL¡¢SHR¤¢¤¿¤ê¤Ï1clock¤Ç¼Â¹Ô¤Ç¤­¤ë¤è¤¦¤Ç¤¹¡£~
 :clock|CPUÆâ¤Ç¤Î»þ´Ö¤Îñ°Ì¤Î°ì¼ï¡£¤Ä¤Þ¤ê¤³¤Î»þ´Ö¤¬Ã»¤±¤ì¤Ðû¤¤¤Û¤É¡¢Â®¤¯¼Â¹Ô¤Ç¤­¤ë¤È¤¤¤¦¤ï¤±¤Ç¤¢¤ë¡£~
 1clock¤¬²¿Éäˤʤ뤫¤ÏCPU¤Îưºî¼þÇÈ¿ô¡ÊMHz¤È¤«GHz¤È¤«¤Çɽ¤¹Åۡˤ˰͸¤¹¤ë¡£
 :SHL¡¢SHR|¤½¤ì¤¾¤ìº¸ÏÀÍý¥·¥Õ¥È¡¢±¦ÏÀÍý¥·¥Õ¥È¡£É乿¤Ê¤·À°¿ô·¿¤ËÂФ·¤Æ<<¤ä>>¤ò¼Â¹Ô¤¹¤ë¡£~
 Éä¹ç¤¢¤êÀ°¿ô·¿¤À¤ÈSAR¡¢SAL¤Ë¤Ê¤ê¡¢¤³¤¤¤Ä¤é¤Ï»»½Ñ¥·¥Õ¥È¤È¸À¤¦¡£
 
 Pentium4¤Î¾ì¹ç¤ÏIntelËܲȤ«¤é¡ÖIA-32 ¥¤¥ó¥Æ¥ëR ¥¢¡¼¥­¥Æ¥¯¥Á¥ã¡¼ºÇŬ²½¥ê¥Õ¥¡¥ì¥ó¥¹¡¦¥Þ¥Ë¥å¥¢¥ë¡×¡ÖAP-485 ¥¤¥ó¥Æ¥ëR ¥×¥í¥»¥Ã¥µ¡¼¤Î¼±ÊÌ¤È CPUID Ì¿Îá¡×¤ò~
 Íî¤È¤·¤Æ¤­¤Æ¡¢Á°¼Ô¤Î¡ÖÉÕÏ¿C¡×ɽC-8¤È¸å¼Ô¤Î¡ÖCPUIDÌ¿Îá¤Î½ÐÎÏ¡×ɽ4¤ò»²¾È¤¹¤ë¤È¡¢¤É¤ÎCPU¤Ç¤É¤ÎÌ¿Î᤬ÃÙ¤¤¤Î¤«°ìÉô³Îǧ¤Ç¤­¤Þ¤¹¡£´·¤ì¤Ê¤¤¤ÈÆñ¤·¤¤¤Ç¤¹¤¬¡£~
 »ñÎÁÈÖ¹æ¤Ï¤½¤ì¤¾¤ì¡¢248966-013JA¡¢241618-029JA¡Ê¸å¼Ô¤Ï¤³¤ÎÈÖ¹æ¤Ç¥°¥°¤ë¤ÈPDF¤Ø¤¹¤°Èô¤Ù¤Þ¤¹¡£Á°¼Ô¤â¥¢¥É¥ì¥¹¤òftp¤«¤éhttp¤ËÊѤ¨¤ì¤Ð¤¤¤±¤Þ¤·¤¿¡£¡Ë~
 ~
 ¤Á¤Ê¤ß¤Ë¡¢Äê¿ô½ü»»¤Î¾ì¹ç¤Ï³ä¤ê»»¤ò³Ý¤±»»¤ËÊÑ´¹¤¹¤ëÊýË¡¤ò»È¤¨¤Ð¤½¤ì¤À¤±¤Ç¿ô½½¥¯¥í¥Ã¥¯É⤤¤¿¤ê¤·¤Þ¤¹¡£~
 (¸Å¤¤É½¤ÎÃͤò»È¤¦¤È¡¢À°¿ô½ü»»(46clock)¤¬À°¿ôÄê¿ô¾è»»(9clock)+¦Á(2¡Á3clock)¤Ë¤Ê¤Ã¤¿¤ê¤È¤«)~
 ¤³¤Î·×»»ÊýË¡¤Ï¾¯¤·ÀâÌÀ¤·¤Ë¤¯¤¤¤Î¤Ç¤¹¤¬¡£¡ÖÀ°¿ô½ü»» ¹â®²½¡×¤¢¤¿¤ê¤Ç¥°¥°¤ì¤Ð½Ð¤Æ¤¯¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡£~
 ½ñÀÒ¤À¤È¡Ö¥Ï¥Ã¥«¡¼¤Î¤¿¤Î¤·¤ß - ËÜʪ¤Î¥×¥í¥°¥é¥Þ¤Ï¤¤¤«¤Ë¤·¤ÆÌäÂê¤ò²ò¤¯¤«¡×¤È¤«¤¬¾Ü¤·¤¤¤Ç¤¹¡£
 
 **¤³¤Î¥Ú¡¼¥¸¤ÎÍúÎò
 -2008ǯ8·î23Æü - ½Ð¸½
 -2008ǯ8·î24Æü - lea¥×¥í¥¸¥§¥¯¥È¤Î¥µ¥Ö¥Ú¡¼¥¸(¸½ºß¤Î¥Ú¡¼¥¸)¤Ë°Üư
 -2008ǯ8·î25Æü - 2¿§¤òº®¤¼¤ëÊýË¡¤Ë¤Ä¤¤¤ÆÄɵ­(bolfill8²þ¤ÈǤò¼ÂÁõ)
 
 ***¥³¥á¥ó¥È
 -Source¤µ¤ó¤¬25ÆüÌÜ¤Þ¤ÇÆÉ¤ó¤À¤«¤É¤¦¤«Ê¬¤«¤é¤Ê¤¤¤Î¤Çǰ¤Î¤¿¤á¤Ë½ñ¤­¤Þ¤¹¤¬¡¢¿§¤Î°·¤¤¤Ë¤Ä¤¤¤Æ¤Ï¡¢25ÆüÌܤǰì±þ°ì¤ÄÄ󰯤·¤Æ¤¢¤ê¤Þ¤¹¡£¤³¤³¤Ëµó¤¬¤Ã¤Æ¤¤¤ë¤Î¤Ï¤¤¤º¤ì¤âËͤΰƤȤϰ㤦¤Î¤ÇÌÌÇò¤¤¤È»×¤¤¤Þ¤¹¡£Ëܽñ¤Ç¤ÎÊýË¡¤ÈÁȤ߹ç¤ï¤»¤é¤ì¤¿¤é¤â¤Ã¤ÈÌÌÇò¤¤¤«¤â¤·¤ì¤Þ¤»¤ó¡£ -- [[K]] SIZE(10){2008-08-24 (Æü) 21:07:02}
 -¼Â¤Ï¤½¤Î·ï¤Ê¤Î¤Ç¤¹¤¬¡¢¸åȾ¤Ïή¤·ÆÉ¤ß¤·¤Ä¤ÄƬ¤ËÆþ¤ì¤Æ¤Ê¤«¤Ã¤¿¤Î¤Ç»ä¤âºòÆüµ¤¤¬ÉÕ¤¤¤¿¤ó¤Ç¤¹(¤ä¤±¤Ë¥°¥é¥Õ¥£¥«¥ë¤Êcolor1¤ò¸«¤Æ)¡£¼ÂÁõ2¤È¤Ï¡Ö´û¸¤Î¥Ñ¥ì¥Ã¥È¤ò¼Î¤Æ¤ë¤«Êݼ餹¤ë¤«¡×¤È»È¤¨¤ë¿§¤Î¿ô¤¬¼ç¤Ë°ã¤Ã¤Æ¤Þ¤¹¤Í¡£ -- [[Source]] SIZE(10){2008-08-24 (Æü) 21:42:31}
 -color1¤Ç¤Ï¥Ñ¥ì¥Ã¥È¤Ø¤Î¹©ÉפϤۤȤó¤É¤Ê¤¯¤Æ¡Ö¿§¤ò¤Þ¤¼¤ë¡×¤È¤¤¤¦ÊýË¡¤Ç¹©Éפ·¤Æ¤¤¤Þ¤¹¡£¤â¤·¤³¤ì¤òSource¤µ¤ó¤ÎÊýË¡¤ÈÁȤ߹ç¤ï¤»¤Æ»È¤¦¤È¤¹¤ë¤È¡¢¤è¤¯»È¤¦¿§¤Ë¶á¤¤¿§¤ò½¸¤á¤Æ¤½¤ì¤é¤òº®¤¼¤ë¤³¤È¤Ç¡¢¤è¤êɽ¸½ÎϤò¹â¤á¤é¤ì¤½¤¦¤Ç¤¹¡£ËܤÎÊýË¡¤Ç¤Ï¤½¤¦¤¤¤¦¹©Éפò¤·¤Ê¤¤¤ÇÅù´Ö³Ö¡Ê¡©¡Ë¤Ë¿§¤òÍѰդ·¤Æ¤¤¤ë¤Î¤Ç¡¢¿§¤òº®¤¼¤ë·×»»¤òÂçÉý¤Ë´Êñ²½¡¦¹â®²½¤Ç¤­¤Æ¤¤¤Þ¤¹¡£ -- [[K]] SIZE(10){2008-08-25 (·î) 01:02:19}
 -¤½¤ì¤Ïcolor2¤Ø¤Î¹©ÉפǤϡ¦¡¦¡¦¡©2x2¥Ô¥¯¥»¥ë¤ò1ñ°Ì¤È¤·¤¿¾ì¹ç¤Ë2¿§¤òº®¿§¤¹¤ëÊýË¡¤Ë¤Ä¤¤¤Æ¾¯¤·½ñ¤¤¤Æ¤ß¤Þ¤¹¡£ -- [[Source]] SIZE(10){2008-08-25 (·î) 08:36:44}
 -¤¹¤ß¤Þ¤»¤ó¤½¤¦¤Ç¤¹¡£½ñ¤­´Ö°ã¤¨¤Þ¤·¤¿¡£color2¤Î¤³¤È¤Ç¤¹¡£ -- [[K]] SIZE(10){2008-08-25 (·î) 14:25:11}
 
 #comment

¥ê¥í¡¼¥É   ¿·µ¬ ÊÔ½¸ º¹Ê¬ źÉÕ   ¥È¥Ã¥× °ìÍ÷ ¸¡º÷ ºÇ½ª¹¹¿· ¥Ð¥Ã¥¯¥¢¥Ã¥×   ¥Ø¥ë¥×   ºÇ½ª¹¹¿·¤ÎRSS