+===========+ |P/ECE¸¦µæ¼¼| +===========+ P/ECE¸¦µæµ­Ï¿ ============= * Wed Apr 06 00:00:00 JST 2005 Naoyuki Sawa
- ¥¹¥È¥ê¡¼¥àºÆÀ¸¤Î¤Þ¤È¤á#2 º£²ó¤âHTML¤Ç½ñ¤­¤Þ¤·¤¿¡£°Ê²¼¤ÎURL¤ò¤´Í÷²¼¤µ¤¤¡£ http://www.piece-me.org/piece-lab/stream/stream2.html * Sat Mar 26 19:35:00 JST 2005 Naoyuki Sawa - ¥¹¥È¥ê¡¼¥àºÆÀ¸¤Î¤Þ¤È¤á#1 º£²ó¤ÏHTML¤Ç½ñ¤­¤Þ¤·¤¿¡£°Ê²¼¤ÎURL¤ò¤´Í÷²¼¤µ¤¤¡£ http://www.piece-me.org/piece-lab/stream/stream1.html * Fri Feb 25 06:00:00 JST 2005 Naoyuki Sawa - ³¡¦¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¤Î¸íưºî¡Á"jp.d %rb"Ì¿Îá¤Ï»ÈÍÑÉÔ²Ä 2003ǯ12·î17Æü¡Á23Æü¤ÎP/ECE¸¦µæµ­Ï¿¡Ö¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¤Î¸íưºî¡×¤Ç¡¢"jp.d %rb"Ì¿Îá¤ÎľÁ°¤Ë¥á¥â¥ê¥¢¥¯¥»¥¹Ì¿Îá¤òÃÖ¤¯¤È¥Ç¥£¥ì¥¤¥ÉÌ¿Î᤬¼Â¹Ô¤µ¤ì¤Ê¤¤¡¢ ¤È¤¤¤¦ÉÔ¶ñ¹ç¤Ë¤Ä¤¤¤Æµ­¤·¤Þ¤·¤¿¡£ ¡ü¥Ç¥£¥ì¥¤¥ÉÌ¿Î᤬Àµ¤·¤¯¼Â¹Ô¤µ¤ì¤ëÎã ld.b %r4, %r7 ; ¥á¥â¥ê¥¢¥¯¥»¥¹°Ê³°¤ÎÌ¿Îá jp.d %r6 ; %r6¥ì¥¸¥¹¥¿¤Î»Ø¤¹¥¢¥É¥ì¥¹¤Ø¥¸¥ã¥ó¥×¡Ä add %r5, 1 ; ¡Ä¤¹¤ëÁ°¤Ë¡¢¤³¤Î¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¤ò¼Â¹Ô¤·¤Þ¤¹¡£ ¡ü¥Ç¥£¥ì¥¤¥ÉÌ¿Î᤬Àµ¤·¤¯¼Â¹Ô¤µ¤ì¤ëÎã ld.b [%r4], %r7 ; ¥á¥â¥ê¥¢¥¯¥»¥¹Ì¿Îá jp.d %r6 ; %r6¥ì¥¸¥¹¥¿¤Î»Ø¤¹¥¢¥É¥ì¥¹¤Ø¥¸¥ã¥ó¥×¡Ä add %r5, 1 ; ¡Ä¤¹¤ëÁ°¤Ë¡¢¤³¤Î¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¤ò¼Â¹Ô¤·¤Ê¤±¤ì¤Ð¤¤¤±¤Ê¤¤¤Î¤Ç¤¹¤¬¡¢¼Â¹Ô¤µ¤ì¤Þ¤»¤ó!! ¾Ü¤·¤¯¤Ï¡¢2003ǯ12·î17Æü¡Á23Æü¤ÎP/ECE¸¦µæµ­Ï¿¡Ö¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¤Î¸íưºî¡×¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ ----------------------------------------------------------------------------- "jp.d %rb"Ì¿Îá¤ÎľÁ°¤Ë¥á¥â¥ê¥¢¥¯¥»¥¹Ì¿Îá¤òÃÖ¤¯¤³¤È¤µ¤¨¤·¤Ê¤±¤ì¤ÐÀµ¤·¤¯Æ°ºî¤¹¤ë¤Î¤Ê¤é¤Ð¡¢ ¥×¥í¥°¥é¥ß¥ó¥°»þ¤Ëµ¤¤ò¤Ä¤±¤Æ¤µ¤¨¤¤¤ì¤Ð¡¢"jp.d %rb"Ì¿Îá¤Î¸íưºî¤ò³Î¼Â¤Ë²óÈò¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ ¤·¤«¤·¼ÂºÝ¤Ë¤Ï¡¢¸íưºî¤¬È¯À¸¤¹¤ë¾ò·ï¤Ï¤½¤ì¤À¤±¤Ç¤Ï¤Ê¤¯¡¢»ö¼Â¾å"jp.d %rb"Ì¿Îá¤Ï»ÈÍÑÉÔ²Äǽ¤Ç¤¢¤ë¤³¤È¤¬¤ï¤«¤ê¤Þ¤·¤¿¡£ ¤½¤Î¾ò·ï¤È¤Ï¡¢ "jp.d %rb"Ì¿Îá¤Î¼Â¹Ô¤È¡¢DMAžÁ÷¤Ë¤è¤ë¥á¥â¥ê¥¢¥¯¥»¥¹¤Î¥¿¥¤¥ß¥ó¥°¤¬½Å¤Ê¤ë¤È¡¢ "jp.d %rb"Ì¿Îá¤Î¥Ç¥£¥ì¥¤¥¹¥í¥Ã¥È¤ËÃÖ¤«¤ì¤¿¥Ç¥£¥ì¥¤¥ÉÌ¿Î᤬¼Â¹Ô¤µ¤ì¤Ê¤¤¡£ ¤È¤¤¤¦¤â¤Î¤Ç¤¹¡£ DMAžÁ÷¤Ë¤è¤ë¥á¥â¥ê¥¢¥¯¥»¥¹¤Î¥¿¥¤¥ß¥ó¥°¤ò¡¢¥×¥í¥°¥é¥ß¥ó¥°»þ¤Ë¥µ¥¤¥¯¥ëñ°Ì¤Ç´°Á´¤ËÇİ®¤¹¤ë¤³¤È¤Ï¡¢¤Þ¤ºÉÔ²Äǽ¤Ç¤¹¡£ "jp.d %rb"Ì¿Îá¤Î¸íưºî¤ò³Î¼Â¤Ë²óÈò¤¹¤ë¤³¤È¤Ï¤Ç¤­¤º¡¢½¾¤Ã¤Æ¡¢"jp.d %rb"Ì¿Îá¤Ï»ÈÍÑÉԲġ¢¤È¤¤¤¦¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£ ¤µ¤Æ¡¢¤½¤ì¤Ç¤Ï¡¢ "jp.d %rb"Ì¿Îá¤Î¼Â¹Ô¤È¡¢DMAžÁ÷¤Ë¤è¤ë¥á¥â¥ê¥¢¥¯¥»¥¹¤Î¥¿¥¤¥ß¥ó¥°¤¬½Å¤Ê¤ë¤È¡¢ "jp.d %rb"Ì¿Îá¤Î¥Ç¥£¥ì¥¤¥¹¥í¥Ã¥È¤ËÃÖ¤«¤ì¤¿¥Ç¥£¥ì¥¤¥ÉÌ¿Î᤬¼Â¹Ô¤µ¤ì¤Ê¤¤¡£ ¤³¤È¤ò³Îǧ¤·¤Æ¤ß¤Þ¤·¤ç¤¦¡£ ¼Â¸³¥×¥í¥°¥é¥à¤Ï¤³¤Á¤é: http://www.piece-me.org/archive/jpdbug-20050225.zip ¼Â¸³¥×¥í¥°¥é¥àtest1¡Átest4¤¬¡¢°Ê²¼¤ÎÀâÌÀ¤Î­¡¡Á­¤¤ËÂбþ¤·¤Æ¤¤¤Þ¤¹¡£ ----------------------------------------------------------------------------- ­¡¤Þ¤º¤Ï¡¢"jp.d %rb"Ì¿Î᤬Àµ¤·¤¯Æ°ºî¤¹¤ëÎã¤ò³Îǧ¤·¤Þ¤¹¡£ ¥¢¥»¥ó¥Ö¥é¤Ç½ñ¤«¤ì¤¿¼¡¤Î¤è¤¦¤Ê¥Æ¥¹¥È¥ë¡¼¥Á¥ó¤òC¸À¸ì¤«¤é¸Æ¤Ó½Ð¤·¤Æ¡¢ÊÑ¿ôRESULT¤Ë³ÊǼ¤µ¤ì¤¿Ãͤò²èÌ̤Ëɽ¼¨¤·¤Þ¤¹¡£ test1: xld.w %r4, 1000000 ; 1000000²ó¥ë¡¼¥×¤·¤Þ¤¹¡£ xld.w %r5, 0 ; 1²óËè¤Ë1¤Å¤Ä¥«¥¦¥ó¥È¥¢¥Ã¥×¤·¤Þ¤¹¡£ xld.w %r6, skip ; jp.dÌ¿Îá¤Î¥¸¥ã¥ó¥×À襢¥É¥ì¥¹¤Ç¤¹¡£ loop: jp.d %r6 ; jp.dÌ¿Îá¤ò»È¤Ã¤Æ°Ê²¼¤Î¶è´Ö¤òÈô¤Ó±Û¤¨¤Þ¤¹¡£ add %r5, 1 ; jp.dÌ¿Îá¤Î¥Ç¥£¥ì¥¤¥¹¥í¥Ã¥È¤Ç¥«¥¦¥ó¥È¥¢¥Ã¥×¤ò¹Ô¤¤¤Þ¤¹¡£ ; ;{{-------------------------------------------------------- ; ¤³¤Î¶è´Ö¤ÏÈô¤Ó±Û¤¨¤ë¤Î¤Ç¡¢¼Â¹Ô¤µ¤ì¤Þ¤»¤ó¡£ ; ËÜÅö¤ËÈô¤Ó±Û¤¨¤Æ¤¤¤ë¤³¤È¤ò³Îǧ¤¹¤ë¤¿¤á¤Ë¡¢ ; Ëü°ì¡¢¤³¤Î¶è´Ö¤òÈô¤Ó±Û¤¨¤º¤Ë¼Â¹Ô¤µ¤ì¤¿¤é¡¢ ; ¥¢¥É¥ì¥¹¥¨¥é¡¼¤¬È¯À¸¤¹¤ë¤è¤¦¤Ë¤·¤Æ¤ª¤­¤Þ¤¹¡£ xld.w %r15, 1 ld.w %r15, [%r15] ;}}-------------------------------------------------------- ; skip: xsub %r4, %r4, 1 ; ¥ë¡¼¥×½èÍý¤ò¹Ô¤¤¤Þ¤¹¡£ xjrne loop xld.w [RESULT], %r5 ; ¥«¥¦¥ó¥È¥¢¥Ã¥×¤Î·ë²Ì¤ò³ÊǼ¤·¤Þ¤¹¡£ ret ¥Æ¥¹¥È¥ë¡¼¥Á¥ó¤ÎÆâÍÆ¤Ï¡¢¼¡¤Î¤È¤ª¤ê¤Ç¤¹¡£ 1000000²ó¤Î¥ë¡¼¥×¤ò¹Ô¤¤¡¢¥ë¡¼¥×¤¬1²ó¤Þ¤ï¤ë¤¿¤Ó¤Ë¥«¥¦¥ó¥¿¤ò1¤Å¤ÄÁý¤ä¤·¤Þ¤¹¡£ ¤³¤Î¤È¤­¡¢¡Ö¥«¥¦¥ó¥¿¤ò1¤Å¤ÄÁý¤ä¤¹¡×½èÍý("add %5,1")¤ò¡¢"jp.d %rb"Ì¿Îá¤Î¥Ç¥£¥ì¥¤¥¹¥í¥Ã¥È¤Ç¹Ô¤Ã¤Æ¤¤¤Þ¤¹¡£ 1000000²ó¤Î¥ë¡¼¥×¤¬½ªÎ»¤·¤¿¤é¡¢¥«¥¦¥ó¥¿¤ÎÃͤò¡¢¥°¥í¡¼¥Ð¥ëÊÑ¿ôRESULT¤Ë³ÊǼ¤·¤Þ¤¹¡£ Àµ¤·¤¯¼Â¹Ô¤µ¤ì¤¿¤Ê¤é¤Ð¡¢¥°¥í¡¼¥Ð¥ëÊÑ¿ôRESULT¤Ë¤Ï1000000¤¬³ÊǼ¤µ¤ì¤Æ¤¤¤ë¤Ï¤º¤Ç¤¹¡£ ¤½¤ì¤Ç¤Ï¼Â¹Ô¤·¤Æ¤ß¤Þ¤¹¡£ ·ë²Ì: 1000000 ´üÂԤɤª¤ê¡¢¥°¥í¡¼¥Ð¥ëÊÑ¿ôRESULT¤Ë¤Ï1000000¤¬³ÊǼ¤µ¤ì¤Þ¤·¤¿¡£ ¤³¤Î¥Æ¥¹¥È¥ë¡¼¥Á¥ó¤Ç¤Ï¡¢"jp.d %rb"Ì¿Îá¤ÎľÁ°¤Ë¥á¥â¥ê¥¢¥¯¥»¥¹Ì¿Î᤬̵¤¤¤Î¤Ç¡¢"jp.d %rb"Ì¿Î᤬Àµ¤·¤¯Æ°ºî¤·¡¢ ¥Ç¥£¥ì¥¤¥¹¥í¥Ã¥È¤ËÃÖ¤«¤ì¤¿¥Ç¥£¥ì¥¤¥ÉÌ¿Î᤬¤­¤Á¤ó¤È¼Â¹Ô¤µ¤ì¤Æ¤¤¤ë¤³¤È¤¬¤ï¤«¤ê¤Þ¤¹¡£ ----------------------------------------------------------------------------- ­¢¼¡¤Ë¡¢"jp.d %rb"Ì¿Î᤬¸íưºî¤¹¤ëÎã¤ò³Îǧ¤·¤Þ¤¹¡£ 2003ǯ12·î17Æü¡Á23Æü¤ÎP/ECE¸¦µæµ­Ï¿¡Ö¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¤Î¸íưºî¡×¤Ç³Îǧ¤·¤¿¤Î¤ÈƱ¤¸¾ò·ï¤Ç¤¹¤±¤ì¤É¡¢ ǰ¤Î¤¿¤á¤Ë¡¢º£²ó¤â¡¢¤â¤¦¤¤¤Á¤É³Îǧ¤·¤Æ¤ª¤¯¤³¤È¤Ë¤·¤Þ¤·¤¿¡£ ¥Æ¥¹¥È¥ë¡¼¥Á¥ó¤ò¼¡¤Î¤è¤¦¤ËÊѹ¹¤·¤Þ¤¹¡£ test2: xld.w %r4, 1000000 ; 1000000²ó¥ë¡¼¥×¤·¤Þ¤¹¡£ xld.w %r5, 0 ; 1²óËè¤Ë1¤Å¤Ä¥«¥¦¥ó¥È¥¢¥Ã¥×¤·¤Þ¤¹¡£ xld.w %r6, skip ; jp.dÌ¿Îá¤Î¥¸¥ã¥ó¥×À襢¥É¥ì¥¹¤Ç¤¹¡£ xld.w %r7, DUMMY ; jp.d¤Î¸íưºî¤òºÆ¸½¤¹¤ë¤¿¤á¤Î¥á¥â¥ê½ñ¤­¹þ¤ß¥¢¥É¥ì¥¹¤Ç¤¹¡£ loop: ld.b [%r7], %r7 ; jp.dÌ¿Îá¤ÎľÁ°¤Ç¥á¥â¥ê¥¢¥¯¥»¥¹¤¹¤ë¤È¡¢jp.d¤¬¸íưºî¤·¤Þ¤¹¡£ ; (¹â®RAM¾å¤Ç¼Â¹Ô¤¹¤ë¾ì¹ç¤ÏÆÉ¤ß½ñ¤­Î¾Êý¡¢SRAM¤Î¾ì¹ç¤Ï½ñ¤­¹þ¤ß¤Î¤ß) jp.d %r6 ; jp.dÌ¿Îá¤ò»È¤Ã¤Æ°Ê²¼¤Î¶è´Ö¤òÈô¤Ó±Û¤¨¤Þ¤¹¡£ add %r5, 1 ; jp.dÌ¿Îá¤ÎÃٱ䥹¥í¥Ã¥È¤Ç¥«¥¦¥ó¥È¥¢¥Ã¥×¤ò¹Ô¤¤¤Þ¤¹¡£ ; ;{{-------------------------------------------------------- ; ¤³¤Î¶è´Ö¤ÏÈô¤Ó±Û¤¨¤ë¤Î¤Ç¡¢¼Â¹Ô¤µ¤ì¤Þ¤»¤ó¡£ ; ËÜÅö¤ËÈô¤Ó±Û¤¨¤Æ¤¤¤ë¤³¤È¤ò³Îǧ¤¹¤ë¤¿¤á¤Ë¡¢ ; Ëü°ì¡¢¤³¤Î¶è´Ö¤òÈô¤Ó±Û¤¨¤º¤Ë¼Â¹Ô¤µ¤ì¤¿¤é¡¢ ; ¥¢¥É¥ì¥¹¥¨¥é¡¼¤¬È¯À¸¤¹¤ë¤è¤¦¤Ë¤·¤Æ¤ª¤­¤Þ¤¹¡£ xld.w %r15, 1 ld.w %r15, [%r15] ;}}-------------------------------------------------------- ; skip: xsub %r4, %r4, 1 ; ¥ë¡¼¥×½èÍý¤ò¹Ô¤¤¤Þ¤¹¡£ xjrne loop xld.w [RESULT], %r5 ; ¥«¥¦¥ó¥È¥¢¥Ã¥×¤Î·ë²Ì¤ò³ÊǼ¤·¤Þ¤¹¡£ ret ­¡¤È¤Î°ã¤¤¤Ï¡¢"jp.d %rb"Ì¿Îá¤ÎľÁ°¤Ë¥À¥ß¡¼¤Î¥á¥â¥ê¥¢¥¯¥»¥¹Ì¿Îá¤òÃÖ¤¤¤¿¤³¤È¤À¤±¤Ç¤¹¡£ ¼Â¹Ô¤·¤Æ¤ß¤ë¤È¡¢ ·ë²Ì: 84 ¤È¤Ê¤ê¤Þ¤·¤¿¡£(¼Â¹Ô¤¹¤ë¤¿¤Ó¤Ë¡¢¿ô»ú¤Ï¾¯¤·ÊѲ½¤·¤Þ¤¹) ËÜÅö¤Ï1000000¤È¤Ê¤ë¤Ï¤º¤Î¤È¤³¤í84¤Ç¤¹¤«¤é¡¢¤Û¤È¤ó¤É¤Î"jp.d %rb"Ì¿Îá¤Ï¸íưºî¤·¤Æ¤¤¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¤¬¡¢¤ï¤º¤«¤ËÀµ¾ïưºî¤Î²ó¤¬¤¢¤ê¤Þ¤¹¡£ ¤³¤ì¤Ï²¿¤«¤È¸À¤¦¤È¡¢"jp.d %rb"Ì¿Îá¤ÎľÁ°¤Ç³ä¤ê¹þ¤ß¤¬È¯À¸¤·¡¢¥á¥â¥ê¥¢¥¯¥»¥¹Ì¿Îá¤È"jp.d %rb"Ì¿Îá¤Î´Ö¤Ç³ä¤ê¹þ¤ß¥ë¡¼¥Á¥ó¤¬¼Â¹Ô¤µ¤ì¤¿¾ì¹ç¤Ë¡¢ ¥á¥â¥ê¥¢¥¯¥»¥¹Ì¿Îá¤È"jp.d %rb"Ì¿Î᤬Ϣ³¤Ç¼Â¹Ô¤µ¤ì¤Ê¤¤¤Î¤Ç¡¢"jp.d %rb"Ì¿Î᤬Àµ¤·¤¯Æ°ºî¤¹¤ë¤Î¤Ç¤¹¡£ ¤¿¤á¤·¤Ë¡¢³ä¤ê¹þ¤ß¤ò´°Á´¤Ë¶Ø»ß¤·¤Æ¡¢Æ±¤¸¥Æ¥¹¥È¥ë¡¼¥Á¥ó¤ò¼Â¹Ô¤·¤Æ¤ß¤ë¤È¡¢ ·ë²Ì: 0 ¤È¤Ê¤ê¡¢"jp.d %rb"Ì¿Î᤬¤¹¤Ù¤Æ°Û¾ïưºî¤¹¤ë¤³¤È¤¬³Îǧ¤Ç¤­¤Þ¤¹¡£ ¤Ê¤ª¡¢¤³¤Î°Û¾ïưºî¤ò³Îǧ¤¹¤ë¥Æ¥¹¥È¥×¥í¥°¥é¥à¤Ï¡¢¤È¤­¤É¤­¥Ï¥ó¥°¥¢¥Ã¥×¤¹¤ë¤³¤È¤¬¤¢¤ê¤Þ¤¹¡£ ¥á¥â¥ê¥¢¥¯¥»¥¹Ì¿Îá¤È"jp.d %rb"Ì¿Î᤬Ϣ³¤¹¤ë¤È¡¢¥Ç¥£¥ì¥¤¥ÉÌ¿Î᤬¼Â¹Ô¤µ¤ì¤Ê¤¤¤À¤±¤Ç¤Ê¤¯¡¢Í½Â¬¤Ç¤­¤Ê¤¤Æ°ºî¤È¤Ê¤ë¤³¤È¤â¤¢¤ë¤ß¤¿¤¤¤Ç¤¹¡£ ----------------------------------------------------------------------------- ­£¤µ¤Æ¡¢¤³¤³¤«¤é¤¬ËÜÂê¤Ç¤¹¡£ ¤Þ¤º¡¢¥Æ¥¹¥È¥ë¡¼¥Á¥ó¤ÎÆâÍÆ¤ò­¡¤ÈƱ¤¸¤â¤Î¤ËÌᤷ¤Þ¤¹¡£ "jp.d %rb"Ì¿Î᤬Àµ¤·¤¯Æ°ºî¤·¤Æ¡¢¡È·ë²Ì: 1000000¡É¤Èɽ¼¨¤µ¤ì¤ë¤Ï¤º¤Î¥Æ¥¹¥È¥ë¡¼¥Á¥ó¤Ç¤¹¡£ ¤¿¤À¤·¡¢­¡¤È¤Î°ã¤¤¤Ï¡¢¥Ð¥Ã¥¯¥°¥é¥¦¥ó¥É¤Ç¥µ¥¦¥ó¥É¤òºÆÀ¸¤·¤Ê¤¬¤é¥Æ¥¹¥È¥ë¡¼¥Á¥ó¤ò¼Â¹Ô¤¹¤ë¡¢¤È¤¤¤¦ÅÀ¤Ç¤¹¡£ ¥µ¥¦¥ó¥ÉºÆÀ¸¤Ë¤Ï¡¢Ä̾ï¤ÎP/ECE¥µ¥¦¥ó¥ÉAPI pceWaveDataOut() ¤ò»È¤¤¤Þ¤¹¡£ ¼Â¹Ô¤·¤Æ¤ß¤ë¤È¡¢ ·ë²Ì: 994836 1%̤Ëþ¤Ç¤¹¤±¤ì¤É¡¢"jp.d %rb"Ì¿Î᤬¸íưºî¤·¤Æ¤¤¤Þ¤¹¡£(¼Â¹Ô¤¹¤ë¤¿¤Ó¤Ë¡¢¿ô»ú¤Ï¾¯¤·ÊѲ½¤·¤Þ¤¹) ­¡¤È¤Î°ã¤¤¤Ï¡¢¥Ð¥Ã¥¯¥°¥é¥¦¥ó¥É¤Ç¥µ¥¦¥ó¥É¤òºÆÀ¸¤·¤Æ¤¤¤ë¤³¤È¤À¤±¤Ç¤¹¤«¤é¡¢¥µ¥¦¥ó¥ÉºÆÀ¸¤¬"jp.d %rb"¤Î¸íưºî¤Î¸¶°ø¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤³¤È¤Ï³Î¼Â¤Ç¤¹¡£ ¥µ¥¦¥ó¥ÉºÆÀ¸½èÍý¤ÎÆâÍÆ¤Ï¡¢¼ç¤Ë¡ÈDMA¤Ë¤è¤ë¥á¥â¥êžÁ÷¡É¤È¡ÈDMA´°Î»³ä¤ê¹þ¤ß¡É¤Î¤Õ¤¿¤Ä¤Ç¤¹¡£ ¤³¤Î¤¦¤Á¡¢¡ÈDMA´°Î»³ä¤ê¹þ¤ß¡É¤¬¸íưºî¤Î¸¶°ø¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤È¤Ï¹Í¤¨¤Å¤é¤¤¤Ç¤¹¡£ ¤Ê¤¼¤Ê¤é¡¢¥µ¥¦¥ó¥ÉºÆÀ¸¤ò¹Ô¤Ã¤Æ¤¤¤Ê¤¯¤Æ¤â¡¢¡ÈDMA´°Î»³ä¤ê¹þ¤ß¡É°Ê³°¤Î³ä¤ê¹þ¤ß¤ÏÉÑÈˤËȯÀ¸¤·¤Æ¤¤¤ë¤«¤é¤Ç¤¹¡£ ¡ÈDMA´°Î»³ä¤ê¹þ¤ß¡É°Ê³°¤Î³ä¤ê¹þ¤ß¤¬"jp.d %rb"¤Î¸íưºî¤ò°ú¤­µ¯¤³¤µ¤º¡¢¡ÈDMA´°Î»³ä¤ê¹þ¤ß¡É¤À¤±¤¬¸íưºî¤ò°ú¤­µ¯¤³¤¹¤È¤Ï»×¤¨¤Ê¤¤¤«¤é¤Ç¤¹¡£ ¤½¤ó¤Ê¤ï¤±¤Ç¡¢¸¶°ø¤Ï¡ÈDMA¤Ë¤è¤ë¥á¥â¥êžÁ÷¡É¤Ë¤¢¤ë¤È¥¢¥¿¥ê¤òÉÕ¤±¤Æ¤ß¤ë¤³¤È¤Ë¤·¤Þ¤·¤¿¡£ ----------------------------------------------------------------------------- ­¤¡ÈDMA¤Ë¤è¤ë¥á¥â¥êžÁ÷¡É¤¬"jp.d %rb"Ì¿Îá¤Î¸íưºî¤Î¸¶°ø¤Ç¤¢¤ë¤³¤È¤ò³Îǧ¤·¤Þ¤·¤ç¤¦¡£ ¥µ¥¦¥ó¥ÉºÆÀ¸½èÍý¤Î¤è¤¦¤ÊÊ£»¨¤Ê½èÍý¤Ç¤Ï¤Ê¤¯¡¢½ã¿è¤ËDMAžÁ÷¤À¤±¤ò¹Ô¤Ã¤Æ¤ß¤Þ¤¹¡£ ­¡¤ä­£¤ÈƱ¤¸¥Æ¥¹¥È¥ë¡¼¥Á¥ó¤Î¥Ð¥Ã¥¯¥°¥é¥¦¥ó¥É¤Çñ½ã¤ÊDMAžÁ÷¤ò¹Ô¤Ã¤Æ¡¢"jp.d %rb"Ì¿Îá¤Î¸íưºî¤¬È¯À¸¤¹¤ë¤«¤É¤¦¤«¤ò³Îǧ¤·¤Þ¤¹¡£ ¥Æ¥¹¥È¥ë¡¼¥Á¥ó¤ò¸Æ¤Ó½Ð¤¹Á°¤Ë¡¢¼¡¤Î¤è¤¦¤Ê¼ê½ç¤ÇDMAžÁ÷¤ò³«»Ï¤·¤Þ¤¹¡£ DISABLE; /*---------- DMA¥È¥ê¥¬ÍÑ¥¿¥¤¥Þ¤ÎÀßÄê ----------*/ /* ¥¯¥í¥Ã¥¯ÁªÂò = ¦È/1 (¥¿¥¤¥Þ¥«¥¦¥ó¥È¥À¥¦¥ó¼þ´ü = 24MHz) */ bCLKSEL_T8_P8TPCK3 = 1; /* ¥¯¥í¥Ã¥¯À©¸æ = On */ bCLKCTL_T8_23_P8TON3 = 1; /* ¥ê¥í¡¼¥É¥Ç¡¼¥¿ = 240-1 (DMA¥È¥ê¥¬¼þ´ü = 100KHz) */ pT8_RLD3 = 240-1; /* ¥×¥ê¥»¥Ã¥È¡¢Run¡£ */ pT8_CTL3 = (1<<1) | (1<<0); /*---------- DMA¤ÎÀßÄê ----------*/ /* ¥³¥ó¥È¥í¡¼¥ë¾ðÊó¤òÀßÄꤹ¤ëÁ°¤Ë¡¢¹â®DMA Ch.3¤ò³Î¼Â¤ËÄä»ß¤·¤Þ¤¹¡£ */ HS3_DISABLE; /* ¥È¥ê¥¬Í×°ø = 8bit¥¿¥¤¥ÞCh.3¥¢¥ó¥À¡¼¥Õ¥í¡¼ */ bHSDMA_HTGR2_HSD3S = HS3_8T3; /* ¥¢¥É¥ì¥¹¥â¡¼¥É = ¥Ç¥å¥¢¥ë * žÁ÷¥«¥¦¥ó¥¿ = 0xffffff²ó (¤³¤Î¥×¥í¥°¥é¥à¤Ç¤Ï¡¢ÌÀ¼¨Åª¤ËÄä»ß¤µ¤ì¤ë¤Þ¤Ç) */ pHS3_CNT = (1<<31) | (1<<28)-1; /* žÁ÷¥Ç¡¼¥¿¥µ¥¤¥º = ¥Ð¥¤¥È * žÁ÷¸µ¥¢¥É¥ì¥¹À©¸æ = ¸ÇÄê * žÁ÷¸µ¥¢¥É¥ì¥¹ = &DUMMY1 */ pHS3_SADR = (int)&DUMMY1; /* žÁ÷¥â¡¼¥É = ¥·¥ó¥°¥ëžÁ÷ * žÁ÷À襢¥É¥ì¥¹À©¸æ = ¸ÇÄê * žÁ÷À襢¥É¥ì¥¹ = &DUMMY2 */ pHS3_DADR = (int)&DUMMY2; /* ¹â®DMA Ch.3¤òÍ­¸ú¤Ë¤¹¤ëÁ°¤Ë¡¢³Î¼Â¤Ë¥È¥ê¥¬¥Õ¥é¥°¤ò¥¯¥ê¥¢¤·¤Þ¤¹¡£ */ pHS3_TF = 1; /* ¹â®DMA Ch.3¤òÍ­¸ú¤Ë¤·¤Þ¤¹¡£ */ HS3_ENABLE; ENABLE; DMAžÁ÷¤ÎÆâÍÆ¤Ï¡¢¥À¥ß¡¼ÊÑ¿ôÎΰ褫¤éÊ̤ΥÀ¥ß¡¼ÊÑ¿ôÎÎ°è¤Ø¡¢100KHz¤ÎÉÑÅ٤ǥá¥â¥êžÁ÷¤ò¹Ô¤¦¡¢¤È¤¤¤¦¤â¤Î¤Ç¤¹¡£ ¥µ¥¦¥ó¥ÉºÆÀ¸¤ÈƱÍͤˡ¢DMAžÁ÷¤È¥Æ¥¹¥È¥ë¡¼¥Á¥ó¤ÏʹԤ·¤Æ¼Â¹Ô¤µ¤ì¤Þ¤¹¡£ ¥µ¥¦¥ó¥ÉºÆÀ¸¤Î¾ì¹ç¤È°ã¤Ã¤Æ¡¢DMAžÁ÷¤Ë¤«¤«¤ï¤ë³ä¤ê¹þ¤ß¤ÏȯÀ¸¤·¤Þ¤»¤ó¡£ ¤½¤ì¤Ç¤Ï¡¢¼Â¹Ô¤·¤Æ¤ß¤Þ¤¹¡£ ·ë²Ì: 974426 ͽÁۤɤª¤ê¡¢"jp.d %rb"¤¬¸íưºî¤·¤Þ¤·¤¿¡£(¼Â¹Ô¤¹¤ë¤¿¤Ó¤Ë¡¢¿ô»ú¤Ï¾¯¤·ÊѲ½¤·¤Þ¤¹) ¥µ¥¦¥ó¥ÉºÆÀ¸¤Î¾ì¹ç¤è¤ê¤â¡¢¾¯¤·¸íưºî¤ÎÉÑÅÙ¤¬Â¿¤¤¤Ç¤¹¤Í¡£ ¤½¤ÎÍýͳ¤Ï¡¢¥µ¥¦¥ó¥ÉºÆÀ¸¤ÎDMAžÁ÷¥ì¡¼¥È¤Ï32KHz¤Ç¤¢¤ë¤Î¤ËÂФ·¤Æ¡¢­¤¤Î¥Æ¥¹¥È¥×¥í¥°¥é¥à¤ÎžÁ÷¥ì¡¼¥È¤Ï100KHz¤À¤«¤é¤Ç¤¹¡£ DMAžÁ÷¤ÎȯÀ¸¤¹¤ëÉÑÅÙ¤¬Â¿¤¤Ê¬¡¢"jp.d %rb"¤È½Å¤Ê¤ë³ÎΨ¤¬¹â¤¯¡¢·ë²Ì¡¢"jp.d %rb"¤¬¸íưºî¤¹¤ëÉÑÅ٤⿤¯¤Ê¤ë¤ï¤±¤Ç¤¹¡£ ¤¿¤á¤·¤Ë¡¢DMAžÁ÷¥ì¡¼¥È¤ò10ÇܤËÁý¤·¤Æ¤ß¤ë¤È¡¢ /* ¥ê¥í¡¼¥É¥Ç¡¼¥¿ = 24-1 (DMA¥È¥ê¥¬¼þ´ü = 1MHz) */ pT8_RLD3 = 24-1; "jp.d %rb"¸íưºî¤ÎÉÑÅÙ¤¬¤â¤Ã¤È¹â¤¯¤Ê¤ë¤³¤È¤¬³Îǧ¤Ç¤­¤Þ¤¹¡£ ·ë²Ì: 699436 ----------------------------------------------------------------------------- °Ê¾å¤Î¼Â¸³¤Ç¡¢ "jp.d %rb"Ì¿Îá¤Î¼Â¹Ô¤È¡¢DMAžÁ÷¤Ë¤è¤ë¥á¥â¥ê¥¢¥¯¥»¥¹¤Î¥¿¥¤¥ß¥ó¥°¤¬½Å¤Ê¤ë¤È¡¢ "jp.d %rb"Ì¿Îá¤Î¥Ç¥£¥ì¥¤¥¹¥í¥Ã¥È¤ËÃÖ¤«¤ì¤¿¥Ç¥£¥ì¥¤¥ÉÌ¿Î᤬¼Â¹Ô¤µ¤ì¤Ê¤¤¡£ ¤³¤È¤¬³Îǧ¤Ç¤­¤Þ¤·¤¿¡£ Àè¤Ë¤â½Ò¤Ù¤¿¤è¤¦¤Ë¡¢DMAžÁ÷¤Î¥¿¥¤¥ß¥ó¥°¤Ë°Í¸¤¹¤ë¸íưºî¤Ï¡¢²óÈòÉÔ²Äǽ¤Ç¤¹¡£ P/ECE¤Î¾ì¹ç¡¢¥µ¥¦¥ó¥ÉºÆÀ¸¤ÈÊ»ÍѤ·¤Ê¤±¤ì¤ÐÎɤ¤¤Î¤Ç¤¹¤±¤ì¤É¡¢¤½¤ì¤Ï¸½¼ÂŪ¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£ ·ëÏÀ¤Ï¡¢ ¨®¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¯ ¨­"jp.d %rb"Ì¿Îá¤Ï¡¢¤¤¤«¤Ê¤ë¾ì¹ç¤Ë¤ª¤¤¤Æ¤â¡úÀäÂФˡú»È¤Ã¤Æ¤Ï¤¤¤±¤Ê¤¤¨­ ¨±¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨° ¤È¤Ê¤ê¤Þ¤¹¡£ ¤Ê¤ª¡¢P/ECE³«È¯´Ä¶­¤Îɸ½àC¥³¥ó¥Ñ¥¤¥é¤ÏºÇŬ²½µ¡Ç½¤¬¼å¤¯¡¢"jp.d %rb"Ì¿Îá¤òÀ¸À®¤·¤Þ¤»¤ó¤Î¤Ç¡¢C¸À¸ì¤À¤±¤ò»È¤Ã¤Æ¥×¥í¥°¥é¥ß¥ó¥°¤·¤Æ¤¤¤ë¸Â¤ê¤Ï°ÂÁ´¤Ç¤¹¡£ ¥¢¥»¥ó¥Ö¥é¤ò»È¤Ã¤Æ¡¢¼êºî¶È¤ÇºÇŬ²½¤¹¤ë¾ì¹ç¤Ë¤Ï¡¢Í×Ãí°Õ¤Ç¤¹¡£ ----------------------------------------------------------------------------- ¤µ¤Æ¡¢°Ê²¼¤Ï;Ã̤Ǥ¹¡£ "jp.d %rb"Ì¿Îá¤ÈDMAžÁ÷¤ÎÊ»ÍѤˤè¤ë¸íưºî¤Ëµ¤ÉÕ¤¤¤¿·Ð°Þ¤Ë¤Ä¤¤¤Æ¡¢µ­¤·¤Æ¤ª¤³¤¦¤È»×¤¤¤Þ¤¹¡£ ¸½ºß¡¢¡Ö¥²¡¼¥à¥Ü¡¼¥¤/EMU¡×¤ÎºîÀ®Ãæ¤Ê¤Î¤Ç¤¹¤±¤ì¤É¡¢¥µ¥¦¥ó¥É¤òÄɲä·¤¿¤È¤¿¤ó¤Ë¡¢CPU¥¨¥ß¥å¥ì¡¼¥·¥ç¥ó¤¬Àµ¤·¤¯¼Â¹Ô¤µ¤ì¤Ê¤¯¤Ê¤ë¤È¤¤¤¦ÌäÂ꤬ȯÀ¸¤·¤Þ¤·¤¿¡£ ºÇ½é¡¢¥µ¥¦¥ó¥É¥¨¥ß¥å¥ì¡¼¥·¥ç¥ó¥ë¡¼¥Á¥ó¤Ë¥Ð¥°¤¬¤¢¤Ã¤Æ¡¢ÉÔÀµ¤Ê¥á¥â¥ê¤òÇ˲õ¤·¤Æ¤¤¤ë¤Î¤«¤È¹Í¤¨¤ÆÄ´¤Ù¤Æ¤ß¤¿¤Î¤Ç¤¹¤¬¡¢¤¤¤¯¤éÄ´¤Ù¤Æ¤â´Ö°ã¤Ã¤Æ¤¤¤Þ¤»¤ó¡£ ¸¶°ø¤òÆÍ¤­µÍ¤á¤Æ¤¤¤¯¤È¡¢¥µ¥¦¥ó¥É¥¨¥ß¥å¥ì¡¼¥·¥ç¥ó¥ë¡¼¥Á¥ó¤ò¸Æ¤Ð¤Ê¤¯¤Æ¤â¡¢Ã±¤ËpceWaveDataOut()¤ò¸Æ¤Ö¤À¤±¤Ç¡¢ÌäÂ꤬ȯÀ¸¤¹¤ë¤³¤È¤¬¤ï¤«¤ê¤Þ¤·¤¿¡£ ¤½¤³¤Ç¡¢pceWaveDataOut()¤ò¸Æ¤ó¤À¾ì¹ç¤È¸Æ¤Ð¤Ê¤¤¾ì¹ç¤È¤Ç¡¢CPU¥¨¥ß¥å¥ì¡¼¥·¥ç¥ó¤Î¥È¥ì¡¼¥¹¥í¥°¤òÈæ³Ó¤·¤Æ¤ß¤Þ¤·¤¿¡£ ¤¹¤ë¤È¡¢pceWaveDataOut()¤ò¸Æ¤ó¤À¾ì¹ç¤Ë¡¢¤È¤­¤É¤­¡¢»Ä¤êCPU¼Â¹Ô¥µ¥¤¥¯¥ë¤Î¥«¥¦¥ó¥È¥À¥¦¥ó¤¬¹Ô¤ï¤ì¤Æ¤¤¤Ê¤¤¤³¤È¤¬¤ï¤«¤ê¤Þ¤·¤¿¡£ ¤³¤ó¤Ê¤«¤ó¤¸¤Ç¤¹¡£ pceWaveDataOut()¤ò¸Æ¤Ð¤Ê¤¤¾ì¹ç pceWaveDataOut()¤ò¸Æ¤ó¤À¾ì¹ç ------------------------------ ------------------------------ PC=1000: »Ä¤ê¼Â¹Ô¥µ¥¤¥¯¥ë=440 PC=1000: »Ä¤ê¼Â¹Ô¥µ¥¤¥¯¥ë=440 PC=1001: »Ä¤ê¼Â¹Ô¥µ¥¤¥¯¥ë=436 PC=1001: »Ä¤ê¼Â¹Ô¥µ¥¤¥¯¥ë=436 PC=1002: »Ä¤ê¼Â¹Ô¥µ¥¤¥¯¥ë=432 PC=1002: »Ä¤ê¼Â¹Ô¥µ¥¤¥¯¥ë=436 <- ¸º¤Ã¤Æ¤Ê¤¤!! PC=1003: »Ä¤ê¼Â¹Ô¥µ¥¤¥¯¥ë=428 PC=1003: »Ä¤ê¼Â¹Ô¥µ¥¤¥¯¥ë=432 PC=1004: »Ä¤ê¼Â¹Ô¥µ¥¤¥¯¥ë=424 PC=1004: »Ä¤ê¼Â¹Ô¥µ¥¤¥¯¥ë=428 PC=1005: »Ä¤ê¼Â¹Ô¥µ¥¤¥¯¥ë=420 PC=1005: »Ä¤ê¼Â¹Ô¥µ¥¤¥¯¥ë=424 PC=1006: »Ä¤ê¼Â¹Ô¥µ¥¤¥¯¥ë=416 PC=1006: »Ä¤ê¼Â¹Ô¥µ¥¤¥¯¥ë=420 ¾å¤ÎÎã¤Ç¤Ï¡¢1002ÈÖÃϤÎÌ¿Îá¤Î¥¨¥ß¥å¥ì¡¼¥·¥ç¥ó¤Ç¸íưºî¤¬È¯À¸¤·¤Æ¤¤¤Þ¤¹¤¬¡¢¼Â¹Ô¤¹¤ë¤¿¤Ó¤Ë¸íưºî¤¬È¯À¸¤¹¤ë¥¢¥É¥ì¥¹¤¬ÊѲ½¤¹¤ë¤Î¤Ç¤¹¡£ ²¿ÅÙ¤«»î¤·¤Æ¤ß¤Æ¡¢¸íưºî¤¬È¯À¸¤¹¤ëÌ¿Îá¤Î¥¨¥ß¥å¥ì¡¼¥·¥ç¥ó¥ë¡¼¥Á¥ó¤Î¶¦ÄÌÀ­¤Ëµ¤¤¬ÉÕ¤­¤Þ¤·¤¿¡£ ¤½¤ì¤é¤Î¥¨¥ß¥å¥ì¡¼¥·¥ç¥ó¥ë¡¼¥Á¥ó¤Ï¤¹¤Ù¤Æ¡¢¼¡¤Î¤è¤¦¤Ê¥³¡¼¥ÉʤӤò»È¤Ã¤Æ¤¤¤¿¤«¤é¤Ç¤¹¡£ ld.w %r0, %r4 ; (¥á¥â¥ê¥¢¥¯¥»¥¹°Ê³°¤ÎÌ¿Îá¡£"jp.d %r11"¤Ï¸íưºî¤·¤Ê¤¤¤Ï¤º¡¢¤À¤Ã¤¿¤Î¤Ç¤¹¤±¤ì¤É¡Ä) jp.d %r11 ; ¥á¥â¥ê½ñ¤­¹þ¤ß¥ë¡¼¥Á¥ó¤Ø¥¸¥ã¥ó¥× sub %r7, 4 ; "jp.d %rb"Ì¿Îá¤Î¥Ç¥£¥ì¥¤¥¹¥È¥Ã¥È¤Ç¡¢»Ä¤ê¼Â¹Ô¥µ¥¤¥¯¥ë¤ò¸º¤é¤¹ ¤Ä¤Þ¤ê¡¢¤È¤­¤É¤­"sub %r7,4"¤¬¼Â¹Ô¤µ¤ì¤Æ¤¤¤Ê¤¤¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£ °ÊÁ°¤ÎP/ECE¸¦µæµ­Ï¿¡Ö¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¤Î¸íưºî¡×¤Ç¡¢"jp.d %rb"¤È¥á¥â¥ê¥¢¥¯¥»¥¹Ì¿Îá¤ÎÁêÀ­¤¬°­¤¤¤³¤È¤Ï´û¤Ë¤ï¤«¤Ã¤Æ¤¤¤Þ¤·¤¿¡£ ¥µ¥¦¥ó¥É¤òÄɲä·¤¿ÅÓü¤ËȯÀ¸¤·¤¿¸íưºî¡¢¥á¥â¥ê¥¢¥¯¥»¥¹¡¢¡¢¡¢¤È¤Ê¤ë¤È¡¢¥µ¥¦¥ó¥ÉºÆÀ¸¤Î¤¿¤á¤ÎDMAžÁ÷¤·¤«¹Í¤¨¤é¤ì¤Þ¤»¤ó¡£ ¤½¤³¤Çº£²ó¤Î¤è¤¦¤ÊÄ´ºº¤ò¹Ô¤Ã¤Æ¤ß¤¿¤È¤³¤í¡¢"jp.d %rb"Ì¿Îá¤ÈDMAžÁ÷¤ÎÊ»ÍÑ¤Ç°Û¾ïÆ°ºî¤¬È¯À¸¤¹¤ë¤³¤È¤¬¤ï¤«¤Ã¤¿¡¢¤È¤¤¤¦¤ï¤±¤Ç¤¹¡£ º£²ó¤Ï¡¢Ã±½ã¤ÇÄ귿Ū¤Ê½èÍý¤ò·«¤êÊÖ¤¹CPU¥¨¥ß¥å¥ì¡¼¥·¥ç¥ó¥ë¡¼¥Á¥ó¤ÎÃæ¤Ç¤Î¸íưºî¤À¤Ã¤¿¤¿¤á¤Ë¡¢Èæ³ÓŪ´Êñ¤Ë¸¶°ø¤¬¿ä¬¤Ç¤­¤Þ¤·¤¿¡£ ¤â¤·¤â¡¢Ä̾ï¤Î¥²¡¼¥à¥×¥í¥°¥é¥à¤ÎÆþ¤êÁȤó¤À¥ë¡¼¥Á¥ó¤ÎÃæ¤Ç¡¢¤´¤¯µ©¤ËȯÀ¸¤¹¤ë¤è¤¦¤Ê¸íưºî¤À¤Ã¤¿¤Ê¤é¤Ð¡¢¸¶°øµæÌÀ¤Ë¤Ï¤â¤Ã¤È»þ´Ö¤¬¤«¤«¤Ã¤Æ¤¤¤¿¤È»×¤¤¤Þ¤¹¡£ ¤¢¤ë°ÕÌ£¡¢¹¬±¿¤À¤Ã¤¿¤«¤âÃΤì¤Þ¤»¤ó¡£ * Fri Feb 11 04:56:00 JST 2005 Naoyuki Sawa - ³¡¦¼Â¤Ï¥Ç¥£¥ì¥¤¥ÉÌ¿Îá º£²ó¤Î¥Æ¡¼¥Þ¤Ï¡¢2003ǯ4·î12Æü¤Îµ­Ï¿¡Ö¼Â¤Ï¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¡×¤Î³¤­¤Ç¤¹¡£ ====================================================================================================================== ¤Þ¤º¤Ï¡¢Á°²ó¤Î¤ª¤µ¤é¤¤¤«¤é¡£ P/ECE¤ÎCPU S1C33209¤Ï¡¢RISC CPU¤ÎÆÃħ¤Î¤Ò¤È¤Ä¡¢¡Ö¥Ç¥£¥ì¥¤¥Éʬ´ôµ¡Ç½¡×¤ò»ý¤Ã¤Æ¤¤¤Þ¤¹¡£ ¥Ç¥£¥ì¥¤¥Éʬ´ôµ¡Ç½¤È¤Ï¡¢Ê¬´ôÌ¿Îá¤Î¼Â¹Ô¤è¤êÀè¤Ëʬ´ôÌ¿Îá¤Îľ¸å¤ÎÌ¿Îá¤ò¼Â¹Ô¤·¡¢¼Â¹Ô¸úΨ¤ò²Ô¤°µ¡Ç½¤Ç¤¹¡£ ¥Ç¥£¥ì¥¤¥Éʬ´ôµ¡Ç½¤ò»È¤¦Ê¬´ôÌ¿Îá¤ò¡¢¡Ö¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¡×¤È¸Æ¤Ó¤Þ¤¹¡£ ¤Þ¤¿¡¢¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¤Îľ¸å¤ËÃÖ¤«¤ì¤ëÌ¿Îá¤ò¡¢¡Ö¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¡×¤È¸Æ¤Ó¤Þ¤¹¡£ ¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿ÎᾸå¤Î¡¢¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¤òÃÖ¤¯¤³¤È¤¬¤Ç¤­¤ë°ÌÃÖ¤ò¡¢¡Ö¥Ç¥£¥ì¥¤¥É¥¹¥í¥Ã¥È¡×¤È¸Æ¤Ó¤Þ¤¹¡£ ¤¹¤Ù¤Æ¤ÎÌ¿Î᤬¡¢¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¤È¤·¤Æ»ÈÍѤǤ­¤ë¤ï¤±¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£ ¤¢¤ëÌ¿Î᤬¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¤È¤·¤Æ»ÈÍѤǤ­¤ë¤«Èݤ«¤Ë¤Ä¤¤¤Æ¡¢´ðËÜŪ¤ÊȽÃÇ´ð½à¤Ï¼¡¤ÎÄ̤ê¤Ç¤¹¡£ ¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¤Ï°Ê²¼¤Î¾ò·ï¤ò¤¹¤Ù¤ÆËþ¤¿¤·¤Æ¤¤¤ë¤³¤È¤¬É¬ÍפǤ¹¡£ ¡¦1¥µ¥¤¥¯¥ëÌ¿Îá ¡¦¥á¥â¥ê¤ò¥¢¥¯¥»¥¹¤·¤Ê¤¤ ¡¦extÌ¿Îá¤Ë¤è¤ë³ÈÄ¥¤Ê¤· ¡ØS1C33209¥³¥¢CPU¥Þ¥Ë¥å¥¢¥ë¡Ù(C:\usr\PIECE\docs\datasheet\EPSON\33000Core-J.pdf) p.30¡Ö¥Ç¥£¥ì¥¤¥Éʬ´ôµ¡Ç½¡×¤è¤ê Ʊ¥Ú¡¼¥¸¤Ë¤Ï¡¢¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¤È¤·¤Æ»ÈÍѤǤ­¤ëÌ¿Îá¤Î°ìÍ÷¤¬¼¨¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ ¤µ¤é¤Ë¤½¤Î²¼¤Ë¡¢¼¡¤Î¤è¤¦¤ÊÃí°Õ¤¬µ­¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ Ãí¡§¾åµ­¤Î¾ò·ï¤òËþ¤¿¤µ¤Ê¤¤Ì¿Îá¤Ïưºî¤¬ÉÔÄê¤È¤Ê¤ë¤¿¤á¡¢¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¤È¤·¤Æ»ÈÍѤ¹¤ë¤³¤È¤Ï¶Ø»ß¤·¤Þ¤¹¡£ ¤È¤³¤í¤¬¡¢EPSON¼Ò¼«¿È¤Ë¤è¤ëɸ½à¥é¥¤¥Ö¥é¥ê¤Î¼ÂÁõ¤¬¡¢¤³¤Î¥ë¡¼¥ë¤òÇˤäƤ¤¤Þ¤·¤¿¡£ ¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¤È¤·¤Æ»ÈÍѤǤ­¤Ê¤¤¤Ï¤º¤Î"ld.w %rd,%ss"Ì¿Îá¤ò¡¢¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¤È¤·¤Æ»ÈÍѤ·¤Æ¤¤¤¿¤Î¤Ç¤¹¡£ ²¿Ä̤꤫¤ÎÌ¿ÎáʤӤò»î¤·¤Æ¤ß¤¿¤È¤³¤í¡¢"ld.w %rd,%ss"Ì¿Îá¤Ï¡¢¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¤È¤·¤ÆÌäÂê¤Ê¤¯»ÈÍѤǤ­¤ë¤³¤È¤¬¤ï¤«¤ê¤Þ¤·¤¿¡£ EPSON¼Ò¤â»È¤Ã¤Æ¤¤¤ë¤Î¤Ç¤¹¤«¤é¡¢¤¿¤Ö¤óÂç¾æÉפʤΤǤ·¤ç¤¦¡£ °Ê¾å¡¢Á°²ó¤Î¤ª¤µ¤é¤¤¤Ç¤·¤¿¡£ ====================================================================================================================== ¤½¤Î¸å¡¢¼«ºî¥×¥í¥°¥é¥à¤Ç"ld.w %rd,%ss"Ì¿Îá¤ò¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¤È¤·¤Æ»È¤Ã¤Æ¤­¤Þ¤·¤¿¤¬¡¢¤³¤ì¤Þ¤Ç¤Î¤È¤³¤íÌäÂê¤Ï½Ð¤Æ¤¤¤Þ¤»¤ó¡£ ¤ä¤Ã¤Ñ¤ê¡¢Âç¾æÉפÀ¤Ã¤¿¤è¤¦¤Ç¤¹¡£ ¤µ¤Æ¡¢¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¤È¤·¤Æ»ÈÍÑÉԲĤȤµ¤ì¤Æ¤¤¤ëÌ¿Îá¤Î¤Ê¤«¤Ë¡¢"ld.w %rd,%ss"Ì¿Îá¤è¤ê¤â¤Ã¤È»ÈÍÑÉÑÅ٤ι⤤¤â¤Î¤¬¤¢¤ê¤Þ¤¹¡£ char¢ÎintÊÑ´¹¤äshort¢ÎintÊÑ´¹¤ò¹Ô¤¦¡¢°Ê²¼¤ÎÌ¿Îá·²¤Ç¤¹¡£ ld.b %rd,%rs char¢ÎintÊÑ´¹ ld.ub %rd,%rs unsigned char¢ÎintÊÑ´¹¡¢(value&0xff)¤ÎÂåÍÑ ld.h %rd,%rs short¢ÎintÊÑ´¹ ld.uh %rd,%rs unsigned short¢ÎintÊÑ´¹¡¢(value&0xffff)¤ÎÂåÍÑ °Ê¹ß¤Îʸ¤Ç¤Ï¡¢¤³¤ì¤é¤ÎÌ¿Îá¤ò¡È·¿ÊÑ´¹Ì¿Îá¡É¤È¸Æ¤Ö¤³¤È¤Ë¤·¤Þ¤¹¡£ ·¿ÊÑ´¹Ì¿Îá¤Ï¤¹¤Ù¤Æ¡Ö1¥µ¥¤¥¯¥ëÌ¿Îá¡×¤Ç¡Ö¥á¥â¥ê¤ò¥¢¥¯¥»¥¹¤·¤Ê¤¤¡×Ì¿Îá¤Ç¡ÖextÌ¿Îá¤Ë¤è¤ë³ÈÄ¥¤Ê¤·¡×¤Î¾ò·ï¤òËþ¤¿¤·¤Æ¤¤¤Þ¤¹¡£ ¤Ë¤â¤«¤«¤ï¤é¤º¡¢¡ØS1C33209¥³¥¢CPU¥Þ¥Ë¥å¥¢¥ë¡Ù¤Ç¤Ï¡¢¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¤È¤·¤Æ»ÈÍѲÄǽ¤ÊÌ¿Îá¤Ëµó¤²¤é¤ì¤Æ¤¤¤Þ¤»¤ó¡£ ¼ÂºÝ¤Ë¥×¥í¥°¥é¥à¤òÁȤó¤Ç¤¤¤ë¤È¡¢·¿ÊÑ´¹Ì¿Î᤬¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¤È¤·¤Æ»È¤¨¤Ê¤¤¤¿¤á¤Ë¡¢²ù¤·¤¤»×¤¤¤ò¤¹¤ë¤³¤È¤¬¤è¤¯¤¢¤ê¤Þ¤¹¡£ add %r12, %r13¡¡¡¡¡¡¡¡¡¡; a = a + b ld.ub %r10, %r12¡¡¡¡¡¡¡¡; return (unsigned char)a ret ¢­"ld.ub %r10,%r12"¤¬¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¤È¤·¤Æ»ÈÍѲÄǽ¤À¤Ã¤¿¤Ê¤é¤Ð¡¢¼¡¤Î¤è¤¦¤ËʤÓÂØ¤¨¤Æ¹â®²½¤Ç¤­¤ë¤Î¤Ç¤¹¤¬¡¦¡¦¡¦ add %r12, %r13¡¡¡¡¡¡¡¡¡¡; a = a + b ret.d ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; return (unsigned char)a ld.ub %r10, %r12¡¡¡¡¡¡¡¡; *delay* ¼ÂºÝ¤Ë¤Ï¡¢"ld.ub %r10,%r12"¤¬¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¤È¤·¤Æ»ÈÍѲÄǽ¤Ç¤Ê¤¤¤¿¤á¤Ë¡¢Ê¤ÓÂØ¤¨¡ÈÉԲġɤǤ¹¡ª¡ª °ì¸«¡¢¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¤È¤·¤Æ»ÈÍѲÄǽ¤Ê"and"Ì¿Îá¤ÇÂåÍѤ·¤Æ¤·¤Þ¤¨¤Ð¤¤¤¤¤è¤¦¤Ë¤â¸«¤¨¤Þ¤¹¤±¤ì¤É¡¢¤½¤ì¤Ï¤Ç¤­¤Þ¤»¤ó¡£ add %r12, %r13¡¡¡¡¡¡¡¡¡¡; a = a + b ret.d ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; return a & 0xff xand %r10, %r12, 0xff ¡¡; *delay* ¢­"xand %r10,%r12,0xff"¤Ï¡¢¥³¥ó¥Ñ¥¤¥é¤Ë¤è¤Ã¤Æ¼¡¤Î¤è¤¦¤ËŸ³«¤µ¤ì¤Þ¤¹¡£ add %r12, %r13¡¡¡¡¡¡¡¡¡¡; a = a + b ret.d ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; return a & 0xff ext 0xff¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; ¨¤ and %r10, %r12¡¡¡¡¡¡¡¡¡¡; ¨ª 2Ì¿Îá¤ËŸ³«¤µ¤ì¤Æ¤·¤Þ¤¤¡¢¥Ç¥£¥ì¥¤¥É¥¹¥í¥Ã¥È¤Ë¼ý¤Þ¤ê¤Þ¤»¤ó¡ª¡ª ·¿ÊÑ´¹Ì¿Îá¤ò»È¤¦¤È¤­¤Ï¡¢¥Ç¥£¥ì¥¤¥Éʬ´ôµ¡Ç½¤ò»È¤Ã¤¿¹â®²½¤ò¤¢¤­¤é¤á¤ë¤·¤«¤Ê¤¤¤Î¤Ç¤·¤ç¤¦¤«¡© ====================================================================================================================== ¡Ö1¥µ¥¤¥¯¥ëÌ¿Îá¡×¡Ö¥á¥â¥ê¤ò¥¢¥¯¥»¥¹¤·¤Ê¤¤¡×¡ÖextÌ¿Îá¤Ë¤è¤ë³ÈÄ¥¤Ê¤·¡×¤Î¾ò·ï¤òËþ¤¿¤·¤Æ¤¤¤ë¤Ë¤â¤«¤«¤ï¤é¤º¡¢ ¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¤È¤·¤Æ»ÈÍѲÄǽ¤Ç¤Ê¤¤Ì¿Îá¤È¤·¤Æ¤Ï¡¢·¿ÊÑ´¹Ì¿Îá¤Î¾¤Ë¡¢"div1"¤ä"halt"Ì¿Îá¤Ê¤É¤¬¤¢¤ê¤Þ¤¹¡£ "div1"¤ä"halt"Ì¿Îá¤Ï¤ä¤äÆÃ¼ì¤ÊÉôÎà¤ÎÌ¿Îá¤Ç¤¹¤«¤é¡¢¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¤È¤·¤Æ»ÈÍѲÄǽ¤Ç¤Ê¤¯¤Æ¤â¡¢¤Ê¤ó¤È¤Ê¤¯Ç¼ÆÀ¤Ç¤­¤Þ¤¹¡£ ¤·¤«¤·¡¢·¿ÊÑ´¹Ì¿Îá¤Î¤è¤¦¤Êñ½ã¤Ç»ÈÍÑÉÑÅ٤ι⤤̿Î᤬¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¤È¤·¤Æ»ÈÍѲÄǽ¤Ç¤Ê¤¤¤È¤¤¤¦¤Î¤Ï¡¢Ç¼ÆÀ¤Ç¤­¤Þ¤»¤ó¡£ ¤½¤³¤Ç¤Õ¤È¹Í¤¨¤¿¤Î¤¬¡¢¡Ö¤â¤·¤«¤·¤Æ¼ÂºÝ¤Ë¤Ï·¿ÊÑ´¹Ì¿Îá¤â¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¤È¤·¤Æ»ÈÍѲÄǽ¤Ê¤Î¤Ç¤Ï¤Ê¤¤¤«¡©¡× »×¤¨¤Ð"ld.w %rd,%ss"Ì¿Îá¤À¤Ã¤Æ¡¢¥Þ¥Ë¥å¥¢¥ë¤Ë¤Ïµ­ºÜ¤µ¤ì¤Æ¤¤¤Ê¤¤¤±¤ì¤É¡¢°ÅÌÛ¸øÁ³¤Î¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¤À¤Ã¤¿¤ï¤±¤Ç¤¹¤«¤é¡£ ¤½¤ì¤Ç¤Ï¤µ¤Ã¤½¤¯»î¤·¤Æ¤ß¤Þ¤·¤ç¤¦¡£ --------------------------------------------------------- foo: add %r12, %r13¡¡¡¡¡¡¡¡¡¡; a = a + b ret.d ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; return (unsigned char)a ld.ub %r10, %r12¡¡¡¡¡¡¡¡; *delay* --------------------------------------------------------- ¤³¤Î¥¢¥»¥ó¥Ö¥é¥ë¡¼¥Á¥ó¤ò¡¢C¸À¸ì¥×¥í¥°¥é¥à¤«¤é¸Æ¤Ó½Ð¤·¤Æ¤ß¤Þ¤¹¡£ --------------------------------------------------------- extern int foo(int a, int b); n = foo(0x12345678, 0x9abcdef0); pceFontPrintf("%08x", n); --------------------------------------------------------- ·ë²Ì¤Ï¡¢¡Ö00000068¡×¤Èɽ¼¨¤µ¤ì¤Þ¤·¤¿¡£ 0x12345678 + 0x9abcdef0 = 0xacf13568 (unsigned char)0xacf13568 = 0x68 ¤Ç¤¹¤«¤é¡¢Àµ¤·¤¤·ë²Ì¤Ç¤¹¡£ ¼Â¹Ô»þ´Ö¤ò·×¬¤·¤Æ¤ß¤ë¤È¡¢¥Ç¥£¥ì¥¤¥Éʬ´ôµ¡Ç½¤ò»È¤Ã¤¿¤³¤È¤Ë¤è¤ë¹â®²½¤Î¸ú²Ì¤¬³Îǧ¤Ç¤­¤Þ¤·¤¿¡£ Á°¸å¿ôÌ¿Îá¤ÎʤӤò²¿Ä̤꤫¤ËÊѤ¨¤Æ¤ß¤¿¤ê¡¢¥×¥í¥°¥é¥à¤ä¥Ç¡¼¥¿¤òSRAM¤ä¹â®RAM¤ËÇÛÃÖ¤·¤Æ¤â¡¢¤¹¤Ù¤ÆÀµ¤·¤¤·ë²Ì¤È¤Ê¤ê¤Þ¤¹¡£ "ld.b %rd,%rs"¡¢"ld.h %rd,%rs"¡¢"ld.uh %rd,%rs"Ì¿Îá¤Ë¤Ä¤¤¤Æ¤âƱÍͤ˻¤Æ¤ß¤¿¤È¤³¤í¡¢¤¹¤Ù¤ÆÀµ¤·¤¤·ë²Ì¤¬ÆÀ¤é¤ì¤Þ¤·¤¿¡£ »°Ç¯´ÖǺ¤ó¤Ç¤¤¤¿¤Î¤¬²Ä¾Ð¤·¤¯¤Ê¤Ã¤Æ¤¯¤ë¤°¤é¤¤¡¢¤¢¤Ã¤±¤Ê¤¤ËëÀÚ¤ì¤Ç¤¹¡£ ¨®¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¯ ¨­¨®¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¯¨­ ¨­¨­¡¡·¿ÊÑ´¹Ì¿Îá¤â¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¤Ç¤·¤¿¡¡¨­¨­ ¨­¨±¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨°¨­ ¨±¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨° ¤â¤Ã¤È¤â¡¢¥Æ¥¹¥È¥×¥í¥°¥é¥à¤ÇÀµ¤·¤¤·ë²Ì¤¬ÆÀ¤é¤ì¤¿¤À¤±¤Ç¤Ï¡¢¤¢¤é¤æ¤ë¾ìÌ̤ÇÀµ¤·¤¤·ë²Ì¤¬ÆÀ¤é¤ì¤ë¤È¤Ï¸Â¤ê¤Þ¤»¤ó¡£ ¥Þ¥Ë¥å¥¢¥ë¤Ë¤â¡Ö¾åµ­¤Î¾ò·ï¤òËþ¤¿¤µ¤Ê¤¤Ì¿Îá¤Ïưºî¤¬¡úÉÔÄê¡ú¤È¤Ê¤ë¤¿¤á¡Á¡×¤Èµ­¤µ¤ì¤Æ¤¤¤ë¤è¤¦¤Ë¡¢ ¥Æ¥¹¥È¥×¥í¥°¥é¥à¤Ç¤Ï¤¿¤Þ¤¿¤ÞÀµ¤·¤¤·ë²Ì¤¬ÆÀ¤é¤ì¤¿¤À¤±¤«¤âÃΤì¤Ê¤¤¤«¤é¤Ç¤¹¡£ ¤·¤«¤·¡¢"ld.w %rd,%ss"¤ÎÁ°Î㤫¤é¤¹¤ë¤È¡¢¤¿¤Ö¤ó¤É¤ó¤Ê¾ìÌ̤ǤâÂç¾æÉפʵ¤¤¬¤·¤Þ¤¹¡£ËͤΥ«¥ó¤Ç¤¹¤±¤ì¤É¡£¡£¡£(^^; ·¿ÊÑ´¹Ì¿Î᤬¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¤È¤·¤Æ»È¤¨¤ë¤³¤È¤Î¥á¥ê¥Ã¥È¤Ï¡¢¤â¤·¤«¤·¤¿¤éÉÔ°ÂÄ꤫¤â¡Ä¤È¤¤¤¦¥ê¥¹¥¯¤ò¾å²ó¤ê¤Þ¤¹¡£ ¤Ê¤Ë¤è¤ê¡¢»È¤Ã¤Æ¤ß¤Ê¤±¤ì¤ÐÉÔ°ÂÄ꤫¤É¤¦¤«¤â¤ï¤«¤ê¤Þ¤»¤ó¤«¤é¡¢º£¸å¤ÏÀѶËŪ¤Ë»È¤Ã¤Æ¤ß¤ë¤³¤È¤Ë¤·¤è¤¦¤È»×¤¤¤Þ¤¹¡£ ====================================================================================================================== ¤½¤ó¤Ê¤ï¤±¤Ç¡¢·¿ÊÑ´¹Ì¿Îá¤â¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¤È¤·¤Æ(¤¿¤Ö¤ó)»ÈÍѲÄǽ¤Ç¤¢¤ë¤³¤È¤¬¤ï¤«¤ê¤Þ¤·¤¿¡£ ¤â¤Ã¤ÈÁ᤯¤Ë»î¤·¤Æ¤ª¤±¤Ð¤è¤«¤Ã¤¿¡£¡£¡£ ¤µ¤Æ¡¢¤³¤¦¤Ê¤Ã¤Æ¤¯¤ë¤È¡¢¡Ö·¿ÊÑ´¹Ì¿Îá°Ê³°¤Ë¤â¡¢¼Â¤Ï¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¤È¤·¤Æ»ÈÍѲÄǽ¤ÊÌ¿Î᤬¤¢¤ë¤Î¤Ç¤Ï¡©¡×¤È»×¤¨¤Æ¤­¤Þ¤¹¡£ ¤Á¤ç¤Ã¤È»î¤·¤Æ¤ß¤¿¤È¤³¤í¡¢ ¡¦1¥µ¥¤¥¯¥ëÌ¿Îá ¡¦¥á¥â¥ê¤ò¥¢¥¯¥»¥¹¤·¤Ê¤¤ ¡¦extÌ¿Îá¤Ë¤è¤ë³ÈÄ¥¤Ê¤· ¤Î¾ò·ï¤ò¤Þ¤Ã¤¿¤¯Ìµ»ë¤·¤Æ¡¢¤Û¤È¤ó¤É¤ÎÌ¿Î᤬¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¤È¤·¤Æ(°ì±þ¤Ï)ưºî¤¹¤ë¤³¤È¤¬¤ï¤«¤ê¤Þ¤·¤¿¡£ xjp.d bar mlt.w %r12, %r13¡¡¡¡¡¡¡¡; 5¥µ¥¤¥¯¥ëÌ¿Îᡪ¡ª ¤È¤«¡¢ xjp.d bar ld.w %r10, [%r12] ¡¡¡¡¡¡; ¥á¥â¥ê¤ò¥¢¥¯¥»¥¹¤¹¤ë¡ª¡ª ¤È¤«¡¢ xjp.d bar ext 0xff¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; ʬ´ôÀè¤ÎÌ¿Îá¤Îext³ÈÄ¥¤òÀè¼è¤ê¡ª¡ª . . . bar: and %r10, %r12¡¡¡¡¡¡¡¡¡¡; "xand %r10, %r12, 0xff"¤Ë¤Ê¤ê¤Þ¤¹ ¤È¤«¡¢·Ú¤¯»î¤·¤¿¸Â¤ê¤Ç¤Ï¡¢¤¹¤Ù¤ÆÀµ¤·¤¤·ë²Ì¤¬ÆÀ¤é¤ì¤Þ¤·¤¿¡£ ¼Â¹Ô»þ´Ö¤ò·×¬¤·¤Æ¤ß¤ë¤È¡¢¥Ç¥£¥ì¥¤¥Éʬ´ôµ¡Ç½¤ò»È¤Ã¤¿¤³¤È¤Ë¤è¤ë¹â®²½¤Î¸ú²Ì¤¬³Îǧ¤Ç¤­¤Þ¤¹¡£ ÆÃ¤ËÆó¤ÄÌܤΡ¢¥á¥â¥ê¥¢¥¯¥»¥¹Ì¿Îá¤ò¥Ç¥£¥ì¥¤¥É¥¹¥í¥Ã¥È¤ËÆþ¤ì¤¿Îã¤Ç¡¢ÂçÉý¤Ê¹â®²½¤Î¸ú²Ì¤¬¤¢¤ë¤ß¤¿¤¤¤Ç¤¹¡£ ¤·¤«¤·¤Ê¤¬¤é¤µ¤¹¤¬¤Ë¤³¤ì¤é¤ÎÊ£»¨¤ÊÌ¿Îá¤Ë¤Ê¤Ã¤Æ¤¯¤ë¤È¡¢¾õ¶·¤Ë¤è¤Ã¤Æ¤Ï·ë²Ì¤¬ÉÔ°ÂÄê¤Ë¤Ê¤ë¤Î¤Ç¤Ï¤Ê¤¤¤«¤È¤¤¤¦µ¤¤â¤·¤Þ¤¹¡£ ¤È¤ê¤¢¤¨¤ºº£²ó¤Ï¡Ö·¿ÊÑ´¹Ì¿Îá¤â¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¡×¤È¤¤¤¦·ë²Ì¤ËËþ­¤·¡¢¤½¤Î¾¤ÎÌ¿Îá¤Î¼Â¸³¤Ï¤Þ¤¿º£¸å¡¢¤È¤·¤¿¤¤¤È»×¤¤¤Þ¤¹¡£ * Sun Dec 5 16:00:00 JST 2004 Naoyuki Sawa - ADPCM¤Î»ÅÁȤß#5 º£²ó¤â³¨¤¬Â¿¤¤¤Î¤ÇHTML¤Ç½ñ¤­¤Þ¤·¤¿¡£°Ê²¼¤ÎURL¤ò¤´Í÷²¼¤µ¤¤¡£ http://www.piece-me.org/piece-lab/adpcm/adpcm5.html * Sat Dec 4 14:45:00 JST 2004 Naoyuki Sawa - ADPCM¤Î»ÅÁȤß#4 º£²ó¤â³¨¤¬Â¿¤¤¤Î¤ÇHTML¤Ç½ñ¤­¤Þ¤·¤¿¡£°Ê²¼¤ÎURL¤ò¤´Í÷²¼¤µ¤¤¡£ http://www.piece-me.org/piece-lab/adpcm/adpcm4.html * Fri Dec 3 00:00:00 JST 2004 Naoyuki Sawa - ADPCM¤Î»ÅÁȤß#3 º£²ó¤â³¨¤¬Â¿¤¤¤Î¤ÇHTML¤Ç½ñ¤­¤Þ¤·¤¿¡£°Ê²¼¤ÎURL¤ò¤´Í÷²¼¤µ¤¤¡£ http://www.piece-me.org/piece-lab/adpcm/adpcm3.html * Wed Dec 1 00:00:00 JST 2004 Naoyuki Sawa - ADPCM¤Î»ÅÁȤß#2 º£²ó¤â³¨¤¬Â¿¤¤¤Î¤ÇHTML¤Ç½ñ¤­¤Þ¤·¤¿¡£°Ê²¼¤ÎURL¤ò¤´Í÷²¼¤µ¤¤¡£ http://www.piece-me.org/piece-lab/adpcm/adpcm2.html * Tue Nov 30 06:00:00 JST 2004 Naoyuki Sawa - ADPCM¤Î»ÅÁȤß#1 º£²ó¤Ï³¨¤¬Â¿¤¤¤Î¤ÇHTML¤Ç½ñ¤­¤Þ¤·¤¿¡£°Ê²¼¤ÎURL¤ò¤´Í÷²¼¤µ¤¤¡£ http://www.piece-me.org/piece-lab/adpcm/adpcm1.html * Sat Nov 7 09:00:00 JST 2004 Naoyuki Sawa - ¹½Â¤ÂΥѥ寤ËÌäÂꤢ¤ê#2 Á°²ó¡¢P/ECE³«È¯´Ä¶­¤Ç¤Ï¡¢¹½Â¤ÂΥѥ寤Τ¿¤á¤Î__attribute__((packed))¤¬Àµ¤·¤¯Æ°ºî¤·¤Ê¤¤¡¢¤È¤¤¤¦¤È¤³¤í¤Þ¤Ç¤ªÏä·¤Þ¤·¤¿¡£ ¶ñÂÎŪ¤Ë¤Ï¡¢¹½Â¤ÂÎ¥µ¥¤¥º¤ÏÀµ¤·¤¯¥Ñ¥Ã¥¯¤µ¤ì¤ë¤Î¤À¤±¤ì¤É¡¢½é´ü²½ºÑ¤ß¹½Â¤ÂÎ¤ÎÆâÍÆ¤¬¥Ñ¥Ã¥¯¤µ¤ì¤Æ¤¤¤Ê¤¤¡¢¤È¤¤¤¦¾É¾õ¤Ç¤¹¡£ º£²ó¤Ï¡¢¤½¤Î¸¶°ø¤òõ¤Ã¤Æ¤ß¤Þ¤¹¡£ ·ëÏÀ¤À¤±¸À¤¦¤È°ì¸À¤Ç½ª¤ï¤Ã¤Æ¤·¤Þ¤¦¤Î¤Ç¤¹¤¬¡¢¤½¤ì¤Ç¤ÏÌÌÇò¤¯¤Ê¤¤¤Î¤Ç(^^;¡¢Ëͤ¬Ä´ºº¤·¤¿¤È¤­¤Î¼ê½ç¤òÄɤäÆÀâÌÀ¤·¤Æ¤ß¤Þ¤¹¡£ Ť¤¤Ç¤¹¤±¤ì¤É¡¢¤ª¤Ä¤­¤¢¤¤¤¯¤À¤µ¤¤¡£ ¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£ ¢£¥³¥ó¥Ñ¥¤¥é½ÐÎϤòÈæ³Ó¤·¤Æ¤ß¤ë¢£ ¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£ ¤µ¤Æ¤½¤ì¤Ç¤Ï¡¢¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¤¢¤ê(¡á¹½Â¤ÂΥѥå¯Ìµ¤·)¤Î¾ì¹ç¤È¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È̵¤·(¡á¹½Â¤ÂΥѥ寤¢¤ê)¤Î¾ì¹ç¤È¤Ç¡¢ C¸À¸ì¥½¡¼¥¹¤¬¤É¤Î¤è¤¦¤Ë¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¡¢¤É¤Î¤è¤¦¤Ê¥¢¥»¥ó¥Ö¥é¥³¡¼¥É¤¬À¸À®¤µ¤ì¤Æ¤¤¤ë¤Î¤«¸«¤Æ¤ß¤Þ¤¹¡£ C¸À¸ì¥½¡¼¥¹¤ÎÆâÍÆ¤Ï¡¢Á°²ó¤Î¸åȾ¢££Ð¡¿£Å£Ã£Å¤Î¾ì¹ç¡ÁÌäÂêȯÀ¸!!¢£¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ ¤Þ¤º¤Ï¡¢¸åȾÉôʬ¤Ë¤¢¤ë¡¢pceAppProc()´Ø¿ô¤¬¤É¤Î¤è¤¦¤Ë¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤Æ¤¤¤ë¤Î¤«¸«¤Æ¤ß¤Þ¤¹¡£ ºÇ½é¤Ë¡¢__attribute__((packed))¤ò»ØÄꤷ¤Ê¤¤¡¢¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¤¢¤ê¤Î¾ì¹ç¡£ [¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¤¢¤ê] ; void pceAppProc(int count) ; { ; ¡¡¡¡int i; ; ¡¡¡¡unsigned char* p; ; ; ¡¡¡¡memset(vbuff, 0, sizeof vbuff); ; ¡¡¡¡pceFontSetType(2); ; ¡¡¡¡pceFontSetPos(0, 0); ; ; ¡¡¡¡p = (unsigned char*)&cid; ; ¡¡¡¡pceFontPrintf("size = %d\n", sizeof(MMC_CID_INFO)); ; ¡¡¡¡for(i = 0; i < sizeof(MMC_CID_INFO); i++) { ; ¡¡¡¡¡¡¡¡pceFontPrintf("%02x ", p[i]); ; ¡¡¡¡} ; ; ¡¡¡¡pceLCDTrans(); ; } ; ; ¤ÎÉôʬ¤¬¡¢¼¡¤Î¤è¤¦¤Ë¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤Þ¤¹¡£ pceAppProc: ¡¡¡¡¡¡¡¡pushn¡¡%r2 ¡¡¡¡¡¡¡¡xsub¡¡%sp,%sp,8 ¡¡¡¡¡¡¡¡xld.w¡¡%r12,vbuff ¡¡¡¡¡¡¡¡ld.w¡¡%r13,0x0 ¡¡¡¡¡¡¡¡xld.w¡¡%r14,0x00002c00 ¡¡¡¡¡¡¡¡xcall¡¡memset ¡¡¡¡¡¡¡¡xld.w¡¡%r12,0x00000002 ¡¡¡¡¡¡¡¡xcall¡¡pceFontSetType ¡¡¡¡¡¡¡¡ld.w¡¡%r12,0x0 ¡¡¡¡¡¡¡¡ld.w¡¡%r13,%r12 ¡¡¡¡¡¡¡¡xcall¡¡pceFontSetPos ¡¡¡¡¡¡¡¡xld.w¡¡%r10,__LC0 ¡¡¡¡¡¡¡¡xld.w¡¡[%sp],%r10 ¡¡¡¡¡¡¡¡xld.w¡¡%r10,0x00000014¡¡¡¡¡¡¡¡; 0x00000014(20) = sizeof(MMC_CID_INFO) ¡¡¡¡¡¡¡¡xld.w¡¡[%sp+4],%r10 ¡¡¡¡¡¡¡¡xcall¡¡pceFontPrintf ¡¡¡¡¡¡¡¡xld.w¡¡%r2,__LC1 ¡¡¡¡¡¡¡¡xld.w¡¡%r0,cid ¡¡¡¡¡¡¡¡xadd¡¡%r1,%r0,15 __L6: ¡¡¡¡¡¡¡¡xld.w¡¡[%sp],%r2 ¡¡¡¡¡¡¡¡xld.ub¡¡%r10,[%r0] ¡¡¡¡¡¡¡¡xld.w¡¡[%sp+4],%r10 ¡¡¡¡¡¡¡¡xcall¡¡pceFontPrintf ¡¡¡¡¡¡¡¡xadd¡¡%r0,%r0,1 ¡¡¡¡¡¡¡¡cmp¡¡%r0,%r1 ¡¡¡¡¡¡¡¡xjrule¡¡__L6 ¡¡¡¡¡¡¡¡xcall¡¡pceLCDTrans ¡¡¡¡¡¡¡¡xadd¡¡%sp,%sp,8 ¡¡¡¡¡¡¡¡popn¡¡%r2 ¡¡¡¡¡¡¡¡ret ¼¡¤Ë¡¢__attribute__((packed))¤ò»ØÄꤷ¤¿¡¢¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È̵¤·¤Î¾ì¹ç¡£ [¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È̵¤·] ; void pceAppProc(int count) ; { ; ¡¡¡¡int i; ; ¡¡¡¡unsigned char* p; ; ; ¡¡¡¡memset(vbuff, 0, sizeof vbuff); ; ¡¡¡¡pceFontSetType(2); ; ¡¡¡¡pceFontSetPos(0, 0); ; ; ¡¡¡¡p = (unsigned char*)&cid; ; ¡¡¡¡pceFontPrintf("size = %d\n", sizeof(MMC_CID_INFO)); ; ¡¡¡¡for(i = 0; i < sizeof(MMC_CID_INFO); i++) { ; ¡¡¡¡¡¡¡¡pceFontPrintf("%02x ", p[i]); ; ¡¡¡¡} ; ; ¡¡¡¡pceLCDTrans(); ; } ; ; ¤ÎÉôʬ¤¬¡¢¼¡¤Î¤è¤¦¤Ë¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤Þ¤¹¡£ pceAppProc: ¡¡¡¡¡¡¡¡pushn¡¡%r2 ¡¡¡¡¡¡¡¡xsub¡¡%sp,%sp,8 ¡¡¡¡¡¡¡¡xld.w¡¡%r12,vbuff ¡¡¡¡¡¡¡¡ld.w¡¡%r13,0x0 ¡¡¡¡¡¡¡¡xld.w¡¡%r14,0x00002c00 ¡¡¡¡¡¡¡¡xcall¡¡memset ¡¡¡¡¡¡¡¡xld.w¡¡%r12,0x00000002 ¡¡¡¡¡¡¡¡xcall¡¡pceFontSetType ¡¡¡¡¡¡¡¡ld.w¡¡%r12,0x0 ¡¡¡¡¡¡¡¡ld.w¡¡%r13,%r12 ¡¡¡¡¡¡¡¡xcall¡¡pceFontSetPos ¡¡¡¡¡¡¡¡xld.w¡¡%r10,__LC0 ¡¡¡¡¡¡¡¡xld.w¡¡[%sp],%r10 ¡¡¡¡¡¡¡¡xld.w¡¡%r10,0x00000010¡¡¡¡¡¡¡¡; 0x00000010(16) = sizeof(MMC_CID_INFO) ¡¡¡¡¡¡¡¡xld.w¡¡[%sp+4],%r10 ¡¡¡¡¡¡¡¡xcall¡¡pceFontPrintf ¡¡¡¡¡¡¡¡xld.w¡¡%r2,__LC1 ¡¡¡¡¡¡¡¡xld.w¡¡%r0,cid ¡¡¡¡¡¡¡¡xadd¡¡%r1,%r0,15 __L6: ¡¡¡¡¡¡¡¡xld.w¡¡[%sp],%r2 ¡¡¡¡¡¡¡¡xld.ub¡¡%r10,[%r0] ¡¡¡¡¡¡¡¡xld.w¡¡[%sp+4],%r10 ¡¡¡¡¡¡¡¡xcall¡¡pceFontPrintf ¡¡¡¡¡¡¡¡xadd¡¡%r0,%r0,1 ¡¡¡¡¡¡¡¡cmp¡¡%r0,%r1 ¡¡¡¡¡¡¡¡xjrule¡¡__L6 ¡¡¡¡¡¡¡¡xcall¡¡pceLCDTrans ¡¡¡¡¡¡¡¡xadd¡¡%sp,%sp,8 ¡¡¡¡¡¡¡¡popn¡¡%r2 ¡¡¡¡¡¡¡¡ret sizeof(MMC_CID_INFO)¤ÎÃͤ¬¡¢¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¤¢¤ê¤Î¾ì¹ç¤Ï¥Ñ¥Ç¥£¥ó¥°¹þ¤ß¤Ç20¥Ð¥¤¥È¡¢¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È̵¤·¤Î¾ì¹ç¤Ï16¥Ð¥¤¥È¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£ P/ECE³«È¯´Ä¶­¤ÎC¥³¥ó¥Ñ¥¤¥é¤Ï¡¢¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¤¢¤ê¤Î¾ì¹ç¤È̵¤·¤Î¾ì¹ç¤È¤Ç¡¢¹½Â¤ÂÎ¥µ¥¤¥º¤Î°ã¤¤¤ò¤­¤Á¤ó¤È½èÍý¤Ç¤­¤Æ¤¤¤ë¤³¤È¤¬¤ï¤«¤ê¤Þ¤¹¡£ ¹½Â¤ÂÎ¥µ¥¤¥º¤¬ÊѲ½¤¹¤ë¤³¤È°Ê³°¤Ï¡¢¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¤¢¤ê¤Î¾ì¹ç¤â̵¤·¤Î¾ì¹ç¤â¡¢¤Þ¤Ã¤¿¤¯Æ±¤¸¥³¥ó¥Ñ¥¤¥ë·ë²Ì¤Ç¤¹¡£ ÌäÂꤢ¤ê¤Þ¤»¤ó¡£ ¤½¤ì¤Ç¤Ï¡¢Á°È¾Éôʬ¤Î¡¢½é´ü²½ºÑ¤ß¹½Â¤ÂΤÎÄêµÁ¤¬¤É¤Î¤è¤¦¤Ë¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤Æ¤¤¤ë¤«¸«¤Æ¤ß¤Þ¤¹¡£ ºÇ½é¤Ë¡¢__attribute__((packed))¤ò»ØÄꤷ¤Ê¤¤¡¢¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¤¢¤ê¤Î¾ì¹ç¡£ [¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¤¢¤ê] ; //CID(Card IDentification number)¡¡¥«¡¼¥ÉID¥ì¥¸¥¹¥¿¾ðÊó¹½Â¤ÂÎ ; typedef struct tag_MMC_CID_INFO ; { ; ¡¡¡¡unsigned char¡¡ ucMID;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// + 0, 1: ManufactureID(8bit) ; ¡¡¡¡unsigned short¡¡usOID;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// + 2, 2: OEM/Application ID(16bit) ; ¡¡¡¡unsigned char¡¡ ucPNM[6];¡¡¡¡¡¡¡¡¡¡ // + 4, 6: Product name(48bit) ; ¡¡¡¡unsigned char¡¡ ucPRV;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +10, 1: Product revision(8bit) ; ¡¡¡¡unsigned long¡¡ ulPSN;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +12, 4: Product serial number(32bit) ; ¡¡¡¡unsigned char¡¡ ucMDT;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +16, 1: Manufacturing date(8bit) ; ¡¡¡¡unsigned char¡¡ ucCRC;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +17, 1: 7-bit CRC checksum(7bit) ; } __attribute__((packed)) MMC_CID_INFO; // =20 ; ; MMC_CID_INFO cid = { ; ¡¡¡¡0xff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned char¡¡ ucMID;¡¡¡¡// + 0, 1: ManufactureID(8bit) ; ¡¡¡¡0xffff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned short¡¡usOID;¡¡¡¡// + 2, 2: OEM/Application ID(16bit) ; ¡¡¡¡{ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }, // unsigned char¡¡ ucPNM[6]; // + 4, 6: Product name(48bit) ; ¡¡¡¡0xff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned char¡¡ ucPRV;¡¡¡¡// +10, 1: Product revision(8bit) ; ¡¡¡¡0xffffffff, ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡// unsigned long¡¡ ulPSN;¡¡¡¡// +12, 4: Product serial number(32bit) ; ¡¡¡¡0xff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned char¡¡ ucMDT;¡¡¡¡// +16, 1: Manufacturing date(8bit) ; ¡¡¡¡0xff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned char¡¡ ucCRC;¡¡¡¡// +17, 1: 7-bit CRC checksum(7bit) ; }; ; ; ¤ÎÉôʬ¤¬¡¢¼¡¤Î¤è¤¦¤Ë¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡.align¡¡2 cid: ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.space¡¡1 ¡¡¡¡¡¡¡¡.half¡¡ 65535 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.space¡¡1 ¡¡¡¡¡¡¡¡.word¡¡ -1 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.space¡¡2 ¼¡¤Ë¡¢__attribute__((packed))¤ò»ØÄꤷ¤¿¡¢¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È̵¤·¤Î¾ì¹ç¡£ [¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È̵¤·] ; //CID(Card IDentification number)¡¡¥«¡¼¥ÉID¥ì¥¸¥¹¥¿¾ðÊó¹½Â¤ÂÎ ; typedef struct tag_MMC_CID_INFO ; { ; ¡¡¡¡unsigned char¡¡ ucMID;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// + 0, 1: ManufactureID(8bit) ; ¡¡¡¡unsigned short¡¡usOID;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// + 1, 2: OEM/Application ID(16bit) ; ¡¡¡¡unsigned char¡¡ ucPNM[6];¡¡¡¡¡¡¡¡¡¡ // + 3, 6: Product name(48bit) ; ¡¡¡¡unsigned char¡¡ ucPRV;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// + 9, 1: Product revision(8bit) ; ¡¡¡¡unsigned long¡¡ ulPSN;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +10, 4: Product serial number(32bit) ; ¡¡¡¡unsigned char¡¡ ucMDT;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +14, 1: Manufacturing date(8bit) ; ¡¡¡¡unsigned char¡¡ ucCRC;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +15, 1: 7-bit CRC checksum(7bit) ; } __attribute__((packed)) MMC_CID_INFO; // =16 ; ; MMC_CID_INFO cid = { ; ¡¡¡¡0xff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned char¡¡ ucMID;¡¡¡¡// + 0, 1: ManufactureID(8bit) ; ¡¡¡¡0xffff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned short¡¡usOID;¡¡¡¡// + 1, 2: OEM/Application ID(16bit) ; ¡¡¡¡{ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }, // unsigned char¡¡ ucPNM[6]; // + 3, 6: Product name(48bit) ; ¡¡¡¡0xff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned char¡¡ ucPRV;¡¡¡¡// + 9, 1: Product revision(8bit) ; ¡¡¡¡0xffffffff, ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡// unsigned long¡¡ ulPSN;¡¡¡¡// +10, 4: Product serial number(32bit) ; ¡¡¡¡0xff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned char¡¡ ucMDT;¡¡¡¡// +14, 1: Manufacturing date(8bit) ; ¡¡¡¡0xff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned char¡¡ ucCRC;¡¡¡¡// +15, 1: 7-bit CRC checksum(7bit) ; }; ; ; ¤ÎÉôʬ¤¬¡¢¼¡¤Î¤è¤¦¤Ë¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡.align¡¡2 cid: ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.half¡¡ 65535 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.word¡¡ -1 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¤ª¤ä¡©°ì¸«ÌäÂê¤Ê¤¤¤è¤¦¤Ë¸«¤¨¤Þ¤¹¡£ ¤ï¤«¤ê¤ä¤¹¤¤¤è¤¦¤Ë¡¢¥³¥á¥ó¥È¤ËÉÕ¤±¤Æ¤ß¤Þ¤·¤ç¤¦¡£ [¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¤¢¤ê] ¡¡¡¡¡¡¡¡.align¡¡2¡¡¡¡¡¡¡¡; ¼¡¤Î°ÌÃÖ¤¬³Î¼Â¤Ë(1<<2)=4¤ÎÇÜ¿ô¥¢¥É¥ì¥¹¤«¤é»Ï¤Þ¤ë¤è¤¦¤Ë¤¹¤ë¡£ cid: ¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡; // unsigned char¡¡ ucMID;¡¡¡¡// + 0, 1: ManufactureID(8bit) ¡¡¡¡¡¡¡¡.space¡¡1¡¡¡¡¡¡¡¡; // (¥Ñ¥Ç¥£¥ó¥°)¡¡¡¡¡¡¡¡¡¡¡¡¡¡// + 1, 1: ¡¡¡¡¡¡¡¡.half¡¡ 65535¡¡¡¡; // unsigned short¡¡usOID;¡¡¡¡// + 2, 2: OEM/Application ID(16bit) ¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡; // unsigned char¡¡ ucPNM[6]; // + 4, 6: Product name(48bit) ¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡; ¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡; ¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡; ¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡; ¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡; ¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡; // unsigned char¡¡ ucPRV;¡¡¡¡// +10, 1: Product revision(8bit) ¡¡¡¡¡¡¡¡.space¡¡1¡¡¡¡¡¡¡¡; // (¥Ñ¥Ç¥£¥ó¥°)¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +11, 1: ¡¡¡¡¡¡¡¡.word¡¡ -1¡¡¡¡¡¡ ; // unsigned long¡¡ ulPSN;¡¡¡¡// +12, 4: Product serial number(32bit) ¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡; // unsigned char¡¡ ucMDT;¡¡¡¡// +16, 1: Manufacturing date(8bit) ¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡; // unsigned char¡¡ ucCRC;¡¡¡¡// +17, 1: 7-bit CRC checksum(7bit) ¡¡¡¡¡¡¡¡.space¡¡2¡¡¡¡¡¡¡¡; // (¥Ñ¥Ç¥£¥ó¥°)¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +18, 2: ¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¤¢¤ê¤Î¾ì¹ç¤Ë¤Ä¤¤¤Æ¤Ï¡¢´°Á´¤ËÌäÂꤢ¤ê¤Þ¤»¤ó¡£ Á°²ó¹Ô¤Ã¤¿P/ECE¾å¤Ç¤Î¥Æ¥¹¥È¤Ç¤â¡¢´üÂÔÄ̤ê¤Î¼Â¹Ô·ë²Ì¤È¤Ê¤Ã¤Æ¤¤¤Þ¤·¤¿¡£ ¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¤¢¤ê¤Î¾ì¹ç¤Ë¤Ä¤¤¤Æ¤Ï¡¢¤â¤¦¸¡Æ¤¤¹¤ëɬÍפϤʤµ¤½¤¦¤Ç¤¹¡£ ÌäÂê¤Ï¡¢¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È̵¤·¤Î¾ì¹ç¤Ç¤¹¡£ [¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È̵¤·] ¡¡¡¡¡¡¡¡.align¡¡2¡¡¡¡¡¡¡¡; ¼¡¤Î°ÌÃÖ¤¬³Î¼Â¤Ë(1<<2)=4¤ÎÇÜ¿ô¥¢¥É¥ì¥¹¤«¤é»Ï¤Þ¤ë¤è¤¦¤Ë¤¹¤ë¡£ cid: ¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡; // unsigned char¡¡ ucMID;¡¡¡¡// + 0, 1: ManufactureID(8bit) ¡¡¡¡¡¡¡¡.half¡¡ 65535¡¡¡¡; // unsigned short¡¡usOID;¡¡¡¡// + 1, 2: OEM/Application ID(16bit) ¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡; // unsigned char¡¡ ucPNM[6]; // + 3, 6: Product name(48bit) ¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡; ¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡; ¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡; ¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡; ¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡; ¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡; // unsigned char¡¡ ucPRV;¡¡¡¡// + 9, 1: Product revision(8bit) ¡¡¡¡¡¡¡¡.word¡¡ -1¡¡¡¡¡¡ ; // unsigned long¡¡ ulPSN;¡¡¡¡// +10, 4: Product serial number(32bit) ¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡; // unsigned char¡¡ ucMDT;¡¡¡¡// +14, 1: Manufacturing date(8bit) ¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡; // unsigned char¡¡ ucCRC;¡¡¡¡// +15, 1: 7-bit CRC checksum(7bit) ¥³¥ó¥Ñ¥¤¥ë·ë²Ì¤Î¥¢¥»¥ó¥Ö¥é¥³¡¼¥É¤ò¸«¤ë¸Â¤ê¤Ï¡¢ÌäÂê̵¤µ¤½¤¦¤Ë¸«¤¨¤Þ¤¹¡£ ¤¬¡¢¼Â¤Ï¡¢¾å¤Î¥³¥á¥ó¥È¤Î¤è¤¦¤Ê¥á¥â¥êÇÛÃ֤ˤϤʤé¤Ê¤¤¤Î¤Ç¤¹¡£ ¡Ø¥¢¥»¥ó¥Ö¥é¤Ë¤â°ÅÌۤΥ¢¥é¥¤¥á¥ó¥Èµ¡Ç½¤¬¤¢¤ë¡Ù¤È¤¤¤¦¤Î¤¬¤½¤ÎÍýͳ¤Ç¤¹¡£ ¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£ ¢£¥¢¥»¥ó¥Ö¥é¤Î¥¢¥é¥¤¥á¥ó¥Èµ¡Ç½¢£ ¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£ P/ECE³«È¯´Ä¶­¤ËÆþ¤Ã¤Æ¤¤¤ë¡¢¡ÖS1C33 Family C¥³¥ó¥Ñ¥¤¥é¥Ñ¥Ã¥±¡¼¥¸ Ver.4¡×¤Î¥Þ¥Ë¥å¥¢¥ë¤ò³«¤¤¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£ (C:\usr\PIECE\docs\datasheet\EPSON\S5U1C33000C_J.pdf) ¥Þ¥Ë¥å¥¢¥ë171¥Ú¡¼¥¸(PDF¤Ç¤Ï187¥Ú¡¼¥¸ÌÜ)¡¢¡Ö11.8.6 ¥Ç¡¼¥¿ÄêµÁµ¼»÷Ì¿Îá¡×¤Î¤È¤³¤í¤Ë¡¢¼¡¤Î¤è¤¦¤Êµ­½Ò¤¬¤¢¤ê¤Þ¤¹¡£ .wordµ¼»÷Ì¿Îá ¡üÃí°Õ»ö¹à ¡¦ÄêµÁ¤·¤¿¥Ç¡¼¥¿¤ÏľÁ°¤Ë.alignÌ¿Î᤬¤Ê¤¤¸Â¤ê¡¢¥ï¡¼¥É¶­³¦¥¢¥É¥ì¥¹¤«¤éÇÛÃÖ¤µ¤ì¤Þ¤¹¡£ ¡¡¸½ºß°ÌÃÖ¤¬¥ï¡¼¥É¶­³¦¥¢¥É¥ì¥¹°Ê³°¤Î¾ì¹ç¡¢¥Ç¡¼¥¿¤òÇÛÃÖ¤¹¤ë¥ï¡¼¥É¶­³¦¥¢¥É¥ì¥¹¤Þ¤Ç¤Î´Ö¤Ï0x00¤¬ÀßÄꤵ¤ì¤Þ¤¹¡£ .halfµ¼»÷Ì¿Îá ¡üÃí°Õ»ö¹à ¡¦ÄêµÁ¤·¤¿¥Ç¡¼¥¿¤ÏľÁ°¤Ë.alignÌ¿Î᤬¤Ê¤¤¸Â¤ê¡¢¥Ï¡¼¥Õ¥ï¡¼¥É¶­³¦¥¢¥É¥ì¥¹¤«¤éÇÛÃÖ¤µ¤ì¤Þ¤¹¡£ ¡¡¸½ºß°ÌÃÖ¤¬´ñ¿ô¥¢¥É¥ì¥¹¤Î¾ì¹ç¡¢¸½ºß°ÌÃ֤ˤÏ0x00¤¬ÀßÄꤵ¤ì¤Þ¤¹¡£ ¤³¤ì¤Ç¤¹!! ¤Ä¤Þ¤ê¡¢¥³¥ó¥Ñ¥¤¥ë·ë²Ì¤Î¥¢¥»¥ó¥Ö¥é¥³¡¼¥É¤¬as33.exe¤Ë¤è¤Ã¤Æ¥¢¥»¥ó¥Ö¥ë¤µ¤ì¤ë¤È¡¢¼¡¤Î¤è¤¦¤Ê¥á¥â¥êÇÛÃ֤ˤʤäƤ¤¤¿¤Î¤Ç¤¹¡£ [¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È̵¤·] ¡¡¡¡¡¡¡¡.align¡¡2¡¡¡¡¡¡¡¡; ¼¡¤Î°ÌÃÖ¤¬³Î¼Â¤Ë(1<<2)=4¤ÎÇÜ¿ô¥¢¥É¥ì¥¹¤«¤é»Ï¤Þ¤ë¤è¤¦¤Ë¤¹¤ë¡£ cid: ¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡; // unsigned char¡¡ ucMID;¡¡¡¡// + 0, 1: ManufactureID(8bit) ¡¡¡¡¡¡¡¡(0x00)¡¡¡¡¡¡¡¡¡¡ ; // (¥Ñ¥Ç¥£¥ó¥°)¡¡¡¡¡¡¡¡¡¡¡¡¡¡// + 1, 1: ¡¡¡¡¡¡¡¡.half¡¡ 65535¡¡¡¡; // unsigned short¡¡usOID;¡¡¡¡// + 2, 2: OEM/Application ID(16bit) ¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡; // unsigned char¡¡ ucPNM[6]; // + 4, 6: Product name(48bit) ¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡; ¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡; ¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡; ¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡; ¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡; ¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡; // unsigned char¡¡ ucPRV;¡¡¡¡// +10, 1: Product revision(8bit) ¡¡¡¡¡¡¡¡(0x00)¡¡¡¡¡¡¡¡¡¡ ; // (¥Ñ¥Ç¥£¥ó¥°)¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +11, 1: ¡¡¡¡¡¡¡¡.word¡¡ -1¡¡¡¡¡¡ ; // unsigned long¡¡ ulPSN;¡¡¡¡// +12, 4: Product serial number(32bit) ¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡; // unsigned char¡¡ ucMDT;¡¡¡¡// +16, 1: Manufacturing date(8bit) ¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡; // unsigned char¡¡ ucCRC;¡¡¡¡// +17, 1: 7-bit CRC checksum(7bit) ¹½Â¤ÂÎËöÈø¤Î¥Ñ¥Ç¥£¥ó¥°¤¬¹Í褵¤ì¤Ê¤¤¤³¤È¤ò½ü¤±¤Ð¡¢¤³¤Î¥á¥â¥êÇÛÃÖ¤ÏC¥³¥ó¥Ñ¥¤¥é¤Ë¤è¤Ã¤Æ¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¤¬¹Ô¤ï¤ì¤¿¾ì¹ç¤ÈƱ¤¸¤Ç¤¹¡£ __attribute__((packed))¤¬»ØÄꤵ¤ì¤¿»þ¡¢C¥³¥ó¥Ñ¥¤¥é¤ÏÌÀ¼¨Åª¤Ê¥Ñ¥Ç¥£¥ó¥°(.spaceµ¼»÷Ì¿Îá)¤Î¥³¡¼¥É½ÐÎϤò¾Ê¤¤¤Æ¡¢¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¤ò̵¤¯¤·¤¿¤Ä¤â¤ê¤Ç¤¤¤ë¤Î¤Ç¤¹¤¬¡¢ ¼ÂºÝ¤Ë¤Ï¥¢¥»¥ó¥Ö¥é¤Ë¤è¤Ã¤Æ¥Õ¥£¡¼¥ë¥Éñ°Ì¤Î¥¢¥é¥¤¥á¥ó¥È¤¬¹Ô¤ï¤ì¤Æ¤·¤Þ¤¤¡¢·ë²Ì¡¢¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¤¢¤ê¤Î¾ì¹ç¤ÈƱ¤¸¥á¥â¥êÇÛÃ֤ˤʤäƤ·¤Þ¤Ã¤Æ¤¤¤¿¡¢¤È¤¤¤¦¤ï¤±¤Ç¤¹¡£ ¤Ç¤Ï¡¢¤É¤Î¤è¤¦¤Ê¥¢¥»¥ó¥Ö¥é¥³¡¼¥É½ÐÎϤʤé¤Ð¡¢Àµ¤·¤¯¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È̵¤·¤Î¥á¥â¥êÇÛÃ֤ˤʤë¤Î¤Ç¤·¤ç¤¦¤«¡© .alignµ¼»÷Ì¿Î᤬¡¢Visual C++¤Ë¤ª¤±¤ë#pragma pack¤ß¤¿¤¤¤Ê¤â¤Î¤À¤È¹Í¤¨¤ë¤È¡¢¼¡¤Î¤è¤¦¤Ê¥¢¥»¥ó¥Ö¥é¥³¡¼¥É¤ò»×¤¤¤Ä¤­¤Þ¤¹¡£ [¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È̵¤·¤Ë¤¹¤ë¤Ë¤Ï¡©] ¡¡¡¡¡¡¡¡.align¡¡0¡¡¡¡¡¡¡¡; ¼¡¤Î°ÌÃÖ¤¬(1<<0)=1¤ÎÇÜ¿ô¥¢¥É¥ì¥¹¤«¤é»Ï¤Þ¤ë¤è¤¦¤Ë¤¹¤ë¡£ cid: ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.half¡¡ 65535 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.word¡¡ -1 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¤¬¡¢¤³¤ì¤Ç¤Ï¥À¥á¤Ç¤¹¡£ ¼ÂºÝ¤Ë¥×¥í¥°¥é¥à¤ò½ñ¤¤¤Æ¤ß¤Æ¡¢¤³¤ì¤Ç¤Ï¥À¥á¤Ê¤³¤È¤ò³Îǧ¤·¤Þ¤·¤¿¡£ [¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È̵¤·¤Ë¤¹¤ë¤Ë¤Ï¡©(¼ºÇÔÎã)] #include unsigned char vbuff[128 * 88]; //CID(Card IDentification number)¡¡¥«¡¼¥ÉID¥ì¥¸¥¹¥¿¾ðÊó¹½Â¤ÂÎ typedef struct tag_MMC_CID_INFO { ¡¡¡¡unsigned char¡¡ ucMID;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// + 0, 1: ManufactureID(8bit) ¡¡¡¡unsigned short¡¡usOID;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// + 1, 2: OEM/Application ID(16bit) ¡¡¡¡unsigned char¡¡ ucPNM[6];¡¡¡¡¡¡¡¡¡¡ // + 3, 6: Product name(48bit) ¡¡¡¡unsigned char¡¡ ucPRV;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// + 9, 1: Product revision(8bit) ¡¡¡¡unsigned long¡¡ ulPSN;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +10, 4: Product serial number(32bit) ¡¡¡¡unsigned char¡¡ ucMDT;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +14, 1: Manufacturing date(8bit) ¡¡¡¡unsigned char¡¡ ucCRC;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +15, 1: 7-bit CRC checksum(7bit) } __attribute__((packed)) MMC_CID_INFO; // =16 //½é´ü²½ºÑ¤ß¹½Â¤ÂΤÎÄêµÁ¤ò¡¢¥¤¥ó¥é¥¤¥ó¥¢¥»¥ó¥Ö¥é¤Ç½ñ¤­Ä¾¤·¤Æ¤ß¤Þ¤¹¡£ extern MMC_CID_INFO cid; asm(" ¡¡¡¡¡¡¡¡.align¡¡0¡¡¡¡¡¡¡¡; ¼¡¤Î°ÌÃÖ¤¬(1<<0)=1¤ÎÇÜ¿ô¥¢¥É¥ì¥¹¤«¤é»Ï¤Þ¤ë¤è¤¦¤Ë¤¹¤ë¡£ cid: ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.half¡¡ 65535 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.word¡¡ -1 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.byte¡¡ 255 "); void pceAppInit() { ¡¡¡¡pceLCDSetBuffer(vbuff); ¡¡¡¡pceLCDDispStart(); } void pceAppProc(int count) { ¡¡¡¡int i; ¡¡¡¡unsigned char* p; ¡¡¡¡memset(vbuff, 0, sizeof vbuff); ¡¡¡¡pceFontSetType(2); ¡¡¡¡pceFontSetPos(0, 0); ¡¡¡¡p = (unsigned char*)&cid; ¡¡¡¡pceFontPrintf("size = %d\n", sizeof(MMC_CID_INFO)); ¡¡¡¡for(i = 0; i < sizeof(MMC_CID_INFO); i++) { ¡¡¡¡¡¡¡¡pceFontPrintf("%02x ", p[i]); ¡¡¡¡} ¡¡¡¡pceLCDTrans(); } void pceAppExit() { } ------------------------------------------------------------------------------------------- ¢£¢£ ·ë²Ì ¢£¢£ size = 16 ff 00 ff ff ff ff ff ff ff ff ff 00 ff ff ff ff ------------------------------------------------------------------------------------------- C¸À¸ì¤Ç½ñ¤¤¤¿¾ì¹ç¤Î¡¢¸í¤Ã¤¿½ÐÎÏ·ë²Ì¤ÈÊѤï¤Ã¤Æ¤¤¤Þ¤»¤ó¡£ ¤Ê¤¼¥À¥á¤«¡¢¥Þ¥Ë¥å¥¢¥ë174¥Ú¡¼¥¸(PDF¤Ç¤Ï190¥Ú¡¼¥¸ÌÜ)¤Î¡¢.alignµ¼»÷Ì¿Îá¤ÎÀâÌÀ¤ò¸«¤Æ¤¯¤À¤µ¤¤¡£ .alignµ¼»÷Ì¿Îá ¡üµ¡Ç½ ¡¡¤³¤Îµ¼»÷Ì¿Îá¤Îľ¸å¤Ë½Ð¸½¤¹¤ë¥Ç¡¼¥¿¤ò£²¡°£Î¥Ð¥¤¥È¶­³¦¤Ë¥¢¥é¥¤¥á¥ó¥È¤·¤Þ¤¹(£Î¡á¶­³¦»ØÄêÃÍ)¡£ ¡üÃí°Õ»ö¹à ¡¡.alignµ¼»÷Ì¿Îá¤Ïľ¸å¤Ë¤¢¤ë¥Ç¡¼¥¿ÄêµÁµ¼»÷Ì¿Îá¤ËÂФ·¤Æ¤Î¤ßÍ­¸ú¤Ç¤¹¡£ ¡¡¤·¤¿¤¬¤Ã¤Æ¡¢¥¢¥é¥¤¥á¥ó¥È¤¬É¬Íפʥǡ¼¥¿¤òÄêµÁ¤¹¤ë¾ì¹ç¤Ë¤Ï¡¢¥Ç¡¼¥¿ÄêµÁµ¼»÷Ì¿Îá¸Ä¡¹¤Ë.alignµ¼»÷Ì¿Îá¤ò»ÈÍѤ¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ ¤½¤¦¡¢.alignµ¼»÷Ì¿Îá¤Ï¡ØÄ¾¸å¤Î¡Ù¥Ç¡¼¥¿ÄêµÁµ¼»÷Ì¿Îá¤ËÂФ·¤Æ¤·¤«¡¢¸ú²Ì¤¬¤Ê¤¤¤Î¤Ç¤¹¡£ ľ¸å¤è¤ê¤¦¤·¤í¤Î¥Ç¡¼¥¿ÄêµÁµ¼»÷Ì¿Îá¤Ï¡¢Ä̾ï¤É¤ª¤ê¡¢°ÅÌۤΥ¢¥é¥¤¥á¥ó¥È¤¬¤Ê¤µ¤ì¤Æ¤·¤Þ¤¤¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡.align¡¡0¡¡¡¡¡¡¡¡; ¼¡¤Î°ÌÃÖ¤¬(1<<0)=1¤ÎÇÜ¿ô¥¢¥É¥ì¥¹¤«¤é»Ï¤Þ¤ë¤è¤¦¤Ë¤¹¤ë¡£ cid: ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.half¡¡ 65535¡¡¡¡; ¤³¤³¤«¤é¸å¤í¤Ï¡¢Ä̾ï¤É¤ª¤ê¡¢°ÅÌۤΥ¢¥é¥¤¥á¥ó¥È¤¬¤Ê¤µ¤ì¤Æ¤·¤Þ¤¤¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.word¡¡ -1 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ľ¸å¤Î¥Ç¡¼¥¿µ¼»÷Ì¿Îá¤ËÂФ·¤Æ.align¤¬Í­¸ú¤À¤È¤¦¤¤¤¦¤Î¤Ê¤é¤Ð¡¢¼¡¤Î¤è¤¦¤Ë½ñ¤±¤Ð¤¤¤¤¤Î¤Ç¤·¤ç¤¦¤«¡© [¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È̵¤·¤Ë¤¹¤ë¤Ë¤Ï¡©] ¡¡¡¡¡¡¡¡.align¡¡2¡¡¡¡¡¡¡¡; ¹½Â¤ÂΤÎÀèÆ¬¤ò4¤ÎÇÜ¿ô¥¢¥É¥ì¥¹¤«¤é»Ï¤á¤ë¤¿¤á¤Ë¡¢ÀèÆ¬¤Î.align 2¤ÏɬÍ×!! cid: ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.align¡¡0¡¡¡¡¡¡¡¡; ¼¡¤Î.half¤Î°ÅÌۤΥ¢¥é¥¤¥á¥ó¥È¤òÍÞÀ©¤¹¤ë¡£ ¡¡¡¡¡¡¡¡.half¡¡ 65535 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.align¡¡0¡¡¡¡¡¡¡¡; ¼¡¤Î.word¤Î°ÅÌۤΥ¢¥é¥¤¥á¥ó¥È¤òÍÞÀ©¤¹¤ë¡£ ¡¡¡¡¡¡¡¡.word¡¡ -1 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¤½¤ì¤Ç¤Ï¡¢¤â¤¦¤¤¤Á¤É¥×¥í¥°¥é¥à¤ò½ñ¤¤¤Æ»î¤·¤Æ¤ß¤Þ¤¹¡£ [¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È̵¤·¤Ë¤¹¤ë¤Ë¤Ï¡©(¼ºÇÔÎã)] #include unsigned char vbuff[128 * 88]; //CID(Card IDentification number)¡¡¥«¡¼¥ÉID¥ì¥¸¥¹¥¿¾ðÊó¹½Â¤ÂÎ typedef struct tag_MMC_CID_INFO { ¡¡¡¡unsigned char¡¡ ucMID;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// + 0, 1: ManufactureID(8bit) ¡¡¡¡unsigned short¡¡usOID;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// + 1, 2: OEM/Application ID(16bit) ¡¡¡¡unsigned char¡¡ ucPNM[6];¡¡¡¡¡¡¡¡¡¡ // + 3, 6: Product name(48bit) ¡¡¡¡unsigned char¡¡ ucPRV;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// + 9, 1: Product revision(8bit) ¡¡¡¡unsigned long¡¡ ulPSN;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +10, 4: Product serial number(32bit) ¡¡¡¡unsigned char¡¡ ucMDT;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +14, 1: Manufacturing date(8bit) ¡¡¡¡unsigned char¡¡ ucCRC;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +15, 1: 7-bit CRC checksum(7bit) } __attribute__((packed)) MMC_CID_INFO; // =16 //½é´ü²½ºÑ¤ß¹½Â¤ÂΤÎÄêµÁ¤ò¡¢¥¤¥ó¥é¥¤¥ó¥¢¥»¥ó¥Ö¥é¤Ç½ñ¤­Ä¾¤·¤Æ¤ß¤Þ¤¹¡£ extern MMC_CID_INFO cid; asm(" ¡¡¡¡¡¡¡¡.align¡¡2¡¡¡¡¡¡¡¡; ¹½Â¤ÂΤÎÀèÆ¬¤ò4¤ÎÇÜ¿ô¥¢¥É¥ì¥¹¤«¤é»Ï¤á¤ë¤¿¤á¤Ë¡¢ÀèÆ¬¤Î.align 2¤ÏɬÍ×!! cid: ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.align¡¡0¡¡¡¡¡¡¡¡; ¼¡¤Î.half¤Î°ÅÌۤΥ¢¥é¥¤¥á¥ó¥È¤òÍÞÀ©¤¹¤ë¡£ ¡¡¡¡¡¡¡¡.half¡¡ 65535 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.align¡¡0¡¡¡¡¡¡¡¡; ¼¡¤Î.word¤Î°ÅÌۤΥ¢¥é¥¤¥á¥ó¥È¤òÍÞÀ©¤¹¤ë¡£ ¡¡¡¡¡¡¡¡.word¡¡ -1 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.byte¡¡ 255 "); void pceAppInit() { ¡¡¡¡pceLCDSetBuffer(vbuff); ¡¡¡¡pceLCDDispStart(); } void pceAppProc(int count) { ¡¡¡¡int i; ¡¡¡¡unsigned char* p; ¡¡¡¡memset(vbuff, 0, sizeof vbuff); ¡¡¡¡pceFontSetType(2); ¡¡¡¡pceFontSetPos(0, 0); ¡¡¡¡p = (unsigned char*)&cid; ¡¡¡¡pceFontPrintf("size = %d\n", sizeof(MMC_CID_INFO)); ¡¡¡¡for(i = 0; i < sizeof(MMC_CID_INFO); i++) { ¡¡¡¡¡¡¡¡pceFontPrintf("%02x ", p[i]); ¡¡¡¡} ¡¡¡¡pceLCDTrans(); } void pceAppExit() { } ------------------------------------------------------------------------------------------- ¢£¢£ ·ë²Ì ¢£¢£ size = 16 ff 00 ff ff ff ff ff ff ff ff ff 00 ff ff ff ff ------------------------------------------------------------------------------------------- ¤ä¤Ã¤Ñ¤ê¥À¥á¤Ç¤¹¡£ ²¿Ä̤꤫»î¤·¤¿·ë²Ì¡¢¤É¤¦¤ä¤é.alignµ¼»÷Ì¿Îá¤Ï¡Ö¥Ñ¥Ç¥£¥ó¥°¤òÁý¤ä¤¹¤³¤È¤Ï¤Ç¤­¤ë¤¬¸º¤é¤¹¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡×¤³¤È¤¬¤ï¤«¤ê¤Þ¤·¤¿¡£ ¤¿¤È¤¨¤Ð¡¢Ä̾.byteµ¼»÷Ì¿Îá¤Ë¤Ï°ÅÌۤΥ¢¥é¥¤¥á¥ó¥È¤Ï¤¢¤ê¤Þ¤»¤ó¡£ ¤¬¡¢¹½Â¤ÂΤÎÀèÆ¬¥Õ¥£¡¼¥ë¥É¤¬unsigned char·¿¤Ç¤¢¤ë¤è¤¦¤Ê¾ì¹ç¤Ê¤É¡¢unsigned charÃͤò¶¯À©Åª¤Ë4¤ÎÇÜ¿ô¥¢¥É¥ì¥¹¤ËÃÖ¤­¤¿¤¤¾ì¹ç¤Ë¡¢ .byteµ¼»÷Ì¿Îá¤ÎÁ°¤Ë.align 2¤ò»ØÄꤷ¤¿¤ê¤¹¤ë¤ï¤±¤Ç¡¢¤³¤Î¤è¤¦¤Ê.alignµ¼»÷Ì¿Îá¤Î»È¤¤Êý¤Ï£Ï£Ë¤Ç¤¹¡£ ¤¬¡¢µÕ¤Ë¡¢¤â¤È¤â¤È°ÅÌۤΥ¢¥é¥¤¥á¥ó¥È¤Ë¤è¤Ã¤Æ.halfµ¼»÷Ì¿Îá¤ä.wordµ¼»÷Ì¿Îá¤ÎľÁ°¤Ë¥Ñ¥Ç¥£¥ó¥°¤¬Äɲäµ¤ì¤Æ¤¤¤¿¤â¤Î¤È¤·¤Æ¡¢ ¤½¤Î¥Ñ¥Ç¥£¥ó¥°¤ò¼è¤ê½ü¤¯¤¿¤á¤Ë.align 0¤ò»ØÄꤷ¤Æ¤â¡¢¤½¤ì¤Ï̵»ë¤µ¤ì¤Æ¤·¤Þ¤¦¤Î¤Ç¤¹¡£ °Ê¾å¤Î¿¶¤ëÉñ¤¤¤Ï¥Þ¥Ë¥å¥¢¥ë¤Ë¤ÏºÜ¤Ã¤Æ¤¤¤Ê¤¤¤è¤¦¤Ç¤¹¤±¤ì¤É¡¢¤Þ¤¢¡¢´¶³ÐŪ¤ËÍý²ò¤Ç¤­¤Ê¤¯¤â¤¢¤ê¤Þ¤»¤ó¡£ ¤½¤ó¤Ê¤ï¤±¤Ç·ë¶É¡¢¥¢¥»¥ó¥Ö¥é¤Ë¤è¤ë°ÅÌۤΥ¢¥é¥¤¥á¥ó¥È¤òÍÞÀ©¤¹¤ë¤Ë¤Ï¡¢¼¡¤Î¤è¤¦¤Ë1¥Ð¥¤¥È¤Å¤ÄÄêµÁ¤¹¤ë¤·¤«¤Ê¤¤¤ß¤¿¤¤¤Ç¤¹¡£ [¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È̵¤·¤Ë¤¹¤ë¤Ë¤Ï¡©(¤¤¤Á¤ª¤¦À®¸ùÎã¤Ç¤¹¤¬¡Ä)] #include unsigned char vbuff[128 * 88]; //CID(Card IDentification number)¡¡¥«¡¼¥ÉID¥ì¥¸¥¹¥¿¾ðÊó¹½Â¤ÂÎ typedef struct tag_MMC_CID_INFO { ¡¡¡¡unsigned char¡¡ ucMID;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// + 0, 1: ManufactureID(8bit) ¡¡¡¡unsigned short¡¡usOID;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// + 1, 2: OEM/Application ID(16bit) ¡¡¡¡unsigned char¡¡ ucPNM[6];¡¡¡¡¡¡¡¡¡¡ // + 3, 6: Product name(48bit) ¡¡¡¡unsigned char¡¡ ucPRV;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// + 9, 1: Product revision(8bit) ¡¡¡¡unsigned long¡¡ ulPSN;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +10, 4: Product serial number(32bit) ¡¡¡¡unsigned char¡¡ ucMDT;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +14, 1: Manufacturing date(8bit) ¡¡¡¡unsigned char¡¡ ucCRC;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +15, 1: 7-bit CRC checksum(7bit) } __attribute__((packed)) MMC_CID_INFO; // =16 //½é´ü²½ºÑ¤ß¹½Â¤ÂΤÎÄêµÁ¤ò¡¢¥¤¥ó¥é¥¤¥ó¥¢¥»¥ó¥Ö¥é¤Ç½ñ¤­Ä¾¤·¤Æ¤ß¤Þ¤¹¡£ extern MMC_CID_INFO cid; asm(" ¡¡¡¡¡¡¡¡.align¡¡2¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; ¹½Â¤ÂΤÎÀèÆ¬¤ò4¤ÎÇÜ¿ô¥¢¥É¥ì¥¹¤«¤é»Ï¤á¤ë¤¿¤á¤Ë¡¢ÀèÆ¬¤Î.align 2¤ÏɬÍ×!! cid: ¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡¡¡¡¡¡¡¡¡; // + 0, 1: ManufactureID(8bit) ¡¡¡¡¡¡¡¡.byte 255,255¡¡¡¡¡¡¡¡¡¡; // + 1, 2: OEM/Application ID(16bit) ¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡¡¡¡¡¡¡¡¡; // + 3, 6: Product name(48bit) ¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡¡¡¡¡¡¡¡¡; ¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡¡¡¡¡¡¡¡¡; ¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡¡¡¡¡¡¡¡¡; ¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡¡¡¡¡¡¡¡¡; ¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡¡¡¡¡¡¡¡¡; ¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡¡¡¡¡¡¡¡¡; // + 9, 1: Product revision(8bit) ¡¡¡¡¡¡¡¡.byte¡¡ 255,255,255,255¡¡; // +10, 4: Product serial number(32bit) ¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡¡¡¡¡¡¡¡¡; // +14, 1: Manufacturing date(8bit) ¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡¡¡¡¡¡¡¡¡; // +15, 1: 7-bit CRC checksum(7bit) "); void pceAppInit() { ¡¡¡¡pceLCDSetBuffer(vbuff); ¡¡¡¡pceLCDDispStart(); } void pceAppProc(int count) { ¡¡¡¡int i; ¡¡¡¡unsigned char* p; ¡¡¡¡memset(vbuff, 0, sizeof vbuff); ¡¡¡¡pceFontSetType(2); ¡¡¡¡pceFontSetPos(0, 0); ¡¡¡¡p = (unsigned char*)&cid; ¡¡¡¡pceFontPrintf("size = %d\n", sizeof(MMC_CID_INFO)); ¡¡¡¡for(i = 0; i < sizeof(MMC_CID_INFO); i++) { ¡¡¡¡¡¡¡¡pceFontPrintf("%02x ", p[i]); ¡¡¡¡} ¡¡¡¡pceLCDTrans(); } void pceAppExit() { } ------------------------------------------------------------------------------------------- ¢£¢£ ·ë²Ì ¢£¢£ size = 16 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ------------------------------------------------------------------------------------------- short¤äint¤Î¥Õ¥£¡¼¥ë¥É¤ò¡¢¿Í¼ê¤Ç1¥Ð¥¤¥È¤Å¤Äʬ²ò¤·¤ÆÄêµÁ¤¹¤ë¤È¤¤¤¦¤Î¤ÏÁ´¤¯¸½¼ÂŪ¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¤¬¡¢ C¥³¥ó¥Ñ¥¤¥é¤¬¥¢¥»¥ó¥Ö¥é¥³¡¼¥É¤ò¼«Æ°À¸À®¤¹¤ëʬ¤Ë¤Ï¡¢¤ä¤Ã¤Æ¤¯¤ì¤Æ¤âÎɤµ¤½¤¦¤Ë»×¤¨¤Þ¤¹¤¬.... ¤¿¤Ö¤ó¡¢EPSON¥³¥ó¥Ñ¥¤¥é¤Ï¤³¤Î¤è¤¦¤Ê¥±¡¼¥¹¤òÁÛÄꤷ¤Æ¤¤¤Ê¤«¤Ã¤¿¤Î¤À¤È»×¤¤¤Þ¤¹¡£ ;Ã̤Ǥ¹¤¬¡¢Linux PC¾å¤ÇGCC¤ò»È¤Ã¤¿¾ì¹ç¤Ï¡¢¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È̵¤·¤Î¾ì¹ç¤Ë¼¡¤Î¤è¤¦¤Ê¥¢¥»¥ó¥Ö¥é¥³¡¼¥É¤¬À¸À®¤µ¤ì¤Þ¤¹¡£ cid: ¡¡¡¡¡¡¡¡.byte¡¡ -1 ¡¡¡¡¡¡¡¡.value¡¡-1 ¡¡¡¡¡¡¡¡.byte¡¡ -1 ¡¡¡¡¡¡¡¡.byte¡¡ -1 ¡¡¡¡¡¡¡¡.byte¡¡ -1 ¡¡¡¡¡¡¡¡.byte¡¡ -1 ¡¡¡¡¡¡¡¡.byte¡¡ -1 ¡¡¡¡¡¡¡¡.byte¡¡ -1 ¡¡¡¡¡¡¡¡.byte¡¡ -1 ¡¡¡¡¡¡¡¡.long¡¡ -1 ¡¡¡¡¡¡¡¡.byte¡¡ -1 ¡¡¡¡¡¡¡¡.byte¡¡ -1 ºÇ½é¤Ë¸«¤¿¡¢P/ECE¾å¤Ç¤Î¸í¤Ã¤¿Îã¤ÈƱ¤¸¤Ë¸«¤¨¤Þ¤¹¤¬¡¢PC¤Î¾ì¹ç¤Ï¤³¤ì¤ÇÂç¾æÉפʤΤǤ¹¡£ Linux PC¤Î¥¢¥»¥ó¥Ö¥é¤ÏP/ECE¤Î¥¢¥»¥ó¥Ö¥é¤È°ã¤Ã¤Æ¡¢½é´ü¾õÂ֤ǤϰÅÌۤΥ¢¥é¥¤¥á¥ó¥È¤ò¹Ô¤ï¤Ê¤¤¤ß¤¿¤¤¤Ç¤¹¡£ ¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£ ¢£¹½Â¤ÂΥѥ寤ò»È¤Ã¤Æ¤âÂç¾æÉפʥ±¡¼¥¹¢£ ¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£ °Ê¾å¤Î¤è¤¦¤Ë¡¢P/ECE³«È¯´Ä¶­¤Ç¤Ï__attribute__((packed))¤Ë¤è¤ë¹½Â¤ÂΥѥ寤¬¤«¤Ê¤êÂ礭¤ÊÌäÂê¤òÊú¤¨¤Æ¤¤¤ë¤³¤È¤¬¤ï¤«¤ê¤Þ¤·¤¿¡£ Ä̾¡Ö»È¤ï¤Ê¤¤¤Û¤¦¤¬Îɤ¤¡×¤Î¤Ï´Ö°ã¤¤¤¢¤ê¤Þ¤»¤ó¡£ ¤¬¡¢¤Þ¤Ã¤¿¤¯»È¤¨¤Ê¤¤¤«¤È¤¤¤¦¤È¤½¤¦¤Ç¤â¤Ê¤¯¤Æ¡¢¤è¤¯Ãí°Õ¤·¤Æ»È¤¨¤ÐÌò¤ËΩ¤Ä¥±¡¼¥¹¤â¤¢¤ê¤Þ¤¹¡£ ¤«¤Ê¤êºÙ¤«¤¤Ïäˤʤê¤Þ¤¹¤Î¤Ç¡¢É¬Íפʤ±¤ì¤ÐÆÉ¤ßÈô¤Ð¤·¤Æ¤¯¤À¤µ¤¤¡£ ­¡½é´üºÑ¤ß¹½Â¤ÂΤò»È¤ï¤Ê¤¤¥±¡¼¥¹ ¤Ò¤È¤Ä¤á¤Ï¡¢½é´ü²½ºÑ¤ß¹½Â¤ÂΤò»È¤ï¤Ê¤¤¤³¤È¤¬³Î¼Â¤Ë¤ï¤«¤Ã¤Æ¤¤¤ë¥±¡¼¥¹¤Ç¤¹¡£ P/ECE¾å¤ÇÀµ¤·¤¯Æ°ºî¤·¤Ê¤«¤Ã¤¿C¸À¸ì¥×¥í¥°¥é¥à¤ò¡¢½é´ü²½ºÑ¤ß¹½Â¤ÂΤò»È¤ï¤Ê¤¤¤è¤¦¡¢¼¡¤Î¤è¤¦¤Ë½ñ¤­´¹¤¨¤Æ¤ß¤Þ¤·¤¿¡£ [¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È̵¤·¡¢½é´ü²½ºÑ¤ß¹½Â¤ÂΤò»È¤ï¤Ê¤¤] #include unsigned char vbuff[128 * 88]; //CID(Card IDentification number)¡¡¥«¡¼¥ÉID¥ì¥¸¥¹¥¿¾ðÊó¹½Â¤ÂÎ typedef struct tag_MMC_CID_INFO { ¡¡¡¡unsigned char¡¡ ucMID;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// + 0, 1: ManufactureID(8bit) ¡¡¡¡unsigned short¡¡usOID;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// + 1, 2: OEM/Application ID(16bit) ¡¡¡¡unsigned char¡¡ ucPNM[6];¡¡¡¡¡¡¡¡¡¡ // + 3, 6: Product name(48bit) ¡¡¡¡unsigned char¡¡ ucPRV;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// + 9, 1: Product revision(8bit) ¡¡¡¡unsigned long¡¡ ulPSN;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +10, 4: Product serial number(32bit) ¡¡¡¡unsigned char¡¡ ucMDT;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +14, 1: Manufacturing date(8bit) ¡¡¡¡unsigned char¡¡ ucCRC;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +15, 1: 7-bit CRC checksum(7bit) } __attribute__((packed)) MMC_CID_INFO; // =16 MMC_CID_INFO cid; void pceAppInit() { ¡¡¡¡pceLCDSetBuffer(vbuff); ¡¡¡¡pceLCDDispStart(); } void pceAppProc(int count) { ¡¡¡¡int i; ¡¡¡¡unsigned char* p; ¡¡¡¡//¹½Â¤ÂÎ¥Õ¥£¡¼¥ë¥É¤ËÃͤò¤Ò¤È¤Ä¤Å¤Ä³ÊǼ ¡¡¡¡cid.ucMID = 0xff; ¡¡¡¡cid.usOID = 0xffff; ¡¡¡¡cid.ucPNM[0] = 0xff; ¡¡¡¡cid.ucPNM[1] = 0xff; ¡¡¡¡cid.ucPNM[2] = 0xff; ¡¡¡¡cid.ucPNM[3] = 0xff; ¡¡¡¡cid.ucPNM[4] = 0xff; ¡¡¡¡cid.ucPNM[5] = 0xff; ¡¡¡¡cid.ucPRV = 0xff; ¡¡¡¡cid.ulPSN = 0xffffffff; ¡¡¡¡cid.ucMDT = 0xff; ¡¡¡¡cid.ucCRC = 0xff; ¡¡¡¡memset(vbuff, 0, sizeof vbuff); ¡¡¡¡pceFontSetType(2); ¡¡¡¡pceFontSetPos(0, 0); ¡¡¡¡p = (unsigned char*)&cid; ¡¡¡¡pceFontPrintf("size = %d\n", sizeof(MMC_CID_INFO)); ¡¡¡¡for(i = 0; i < sizeof(MMC_CID_INFO); i++) { ¡¡¡¡¡¡¡¡pceFontPrintf("%02x ", p[i]); ¡¡¡¡} ¡¡¡¡pceLCDTrans(); } void pceAppExit() { } ------------------------------------------------------------------------------------------- ¢£¢£ ·ë²Ì ¢£¢£ size = 16 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ------------------------------------------------------------------------------------------- Àµ¤·¤¤·ë²Ì¤¬ÆÀ¤é¤ì¤Þ¤·¤¿¡£ ½é´ü²½ºÑ¤ß¹½Â¤ÂΤξì¹ç¤Ï¥Õ¥£¡¼¥ë¥É¤Ò¤È¤Ä¤Ò¤È¤Ä¤¬¥Ç¡¼¥¿ÄêµÁµ¼»÷Ì¿Îá¤Ë¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿¤¿¤á¡¢Á°½Ò¤Î¤è¤¦¤Ê°ÅÌۤΥ¢¥é¥¤¥á¥ó¥ÈÌäÂ꤬ȯÀ¸¤·¤¿¤ï¤±¤Ç¤¹¤¬¡¢ ̤½é´ü²½¹½Â¤ÂΤξì¹ç¤Ï¥Õ¥£¡¼¥ë¥É¤Ò¤È¤Ä¤Ò¤È¤Ä¤ËÂбþ¤¹¤ëµ¼»÷Ì¿Î᤬À¸À®¤µ¤ì¤ë¤ï¤±¤Ç¤Ï¤Ê¤¯¡¢¼¡¤Î¤è¤¦¤Ê¥¢¥»¥ó¥Ö¥é¥³¡¼¥É¤¬À¸À®¤µ¤ì¤Þ¤¹¡£ .comm¡¡¡¡cid 16¡¡¡¡; 16¥Ð¥¤¥È¤Î¥°¥í¡¼¥Ð¥ëÊÑ¿ôÎΰè¤ò³ÎÊݤ»¤è¡¢¤È¤¤¤¦°ÕÌ£ ¹½Â¤ÂÎ¥Õ¥£¡¼¥ë¥É¤ËÃͤò¤Ò¤È¤Ä¤Å¤Ä³ÊǼ¤¹¤ëÉôʬ¤ÎC¸À¸ì¥×¥í¥°¥é¥à¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤Þ¤¹¡£(ÆÉ¤àɬÍפʤ¤¤Ç¤¹(^^;) xld.w¡¡¡¡%r0,cid xld.w¡¡¡¡%r10,0x000000ff xld.b¡¡¡¡[%r0],%r10¡¡¡¡¡¡¡¡¡¡; + 0, 1: ManufactureID(8bit) xld.ub¡¡ %r11,[%r0+1]¡¡¡¡¡¡¡¡; + 1, 2: OEM/Application ID(16bit) (¼ê½ç¤Ë̵Â̤¬¤¢¤ê¤Þ¤¹¤¬¡¢´Ö°ã¤¤¤Ç¤Ï¤Ê¤¤¤Ç¤¹) or¡¡¡¡¡¡ %r11,%r10 xld.b¡¡¡¡[%r0+1],%r11 xld.ub¡¡ %r11,[%r0+2] or¡¡¡¡¡¡ %r11,%r10 xld.b¡¡¡¡[%r0+2],%r11 xld.b¡¡¡¡[%r0+3],%r10¡¡¡¡¡¡¡¡; + 3, 6: Product name(48bit) xld.b¡¡¡¡[%r0+4],%r10 xld.b¡¡¡¡[%r0+5],%r10 xld.b¡¡¡¡[%r0+6],%r10 xld.b¡¡¡¡[%r0+7],%r10 xld.b¡¡¡¡[%r0+8],%r10 xld.b¡¡¡¡[%r0+9],%r10¡¡¡¡¡¡¡¡; + 9, 1: Product revision(8bit) xld.ub¡¡ %r11,[%r0+10]¡¡¡¡¡¡ ; +10, 4: Product serial number(32bit) (¼ê½ç¤Ë̵Â̤¬¤¢¤ê¤Þ¤¹¤¬¡¢´Ö°ã¤¤¤Ç¤Ï¤Ê¤¤¤Ç¤¹) or¡¡¡¡¡¡ %r11,%r10 xld.b¡¡¡¡[%r0+10],%r11 xld.ub¡¡ %r11,[%r0+11] or¡¡¡¡¡¡ %r11,%r10 xld.b¡¡¡¡[%r0+11],%r11 xld.ub¡¡ %r11,[%r0+12] or¡¡¡¡¡¡ %r11,%r10 xld.b¡¡¡¡[%r0+12],%r11 xld.ub¡¡ %r11,[%r0+13] or¡¡¡¡¡¡ %r11,%r10 xld.b¡¡¡¡[%r0+13],%r11 xld.b¡¡¡¡[%r0+14],%r10¡¡¡¡¡¡ ; +14, 1: Manufacturing date(8bit) xadd¡¡¡¡ %r1,%r0,15¡¡¡¡¡¡¡¡¡¡; +15, 1: 7-bit CRC checksum(7bit) xld.b¡¡¡¡[%r1],%r10 C¥³¥ó¥Ñ¥¤¥é¤Ï¡¢¥Ñ¥Ã¥¯¤µ¤ì¤¿¹½Â¤ÂΤγƥե£¡¼¥ë¥É¤ÎÀµ¤·¤¤¥ª¥Õ¥»¥Ã¥È¤òǧ¼±¤·¤Æ¤¤¤ë¤Î¤Ç¡¢Àµ¤·¤¤¥³¡¼¥É¤¬À¸À®¤µ¤ì¤Æ¤¤¤Þ¤¹¡£(¤Á¤ç¤Ã¤È̵Â̤¢¤ê¤Þ¤¹¤±¤ì¤É) ¤¤¤Þ¾å¤Ç¼¨¤·¤¿¥×¥í¥°¥é¥àÎã¤Î¤è¤¦¤Ê¡¢¹½Â¤ÂΤγƥե£¡¼¥ë¥É¤ò¥×¥í¥°¥é¥à¤Ç¤Ò¤È¤Ä¤Å¤Ä½é´ü²½¤¹¤ë¥±¡¼¥¹¤Ë²Ã¤¨¤Æ¡¢ ¥Õ¥¡¥¤¥ë¤òÆÉ¤ß¹þ¤ó¤À¤ê¥Ç¥Ð¥¤¥¹¤«¤é¥Ð¥¤¥ÈÎó¤ò¼õ¿®¤·¤Æ¡¢¤½¤Î¤Þ¤Þ¹½Â¤ÂÎÊÑ¿ô¤Ë³ÊǼ¤¹¤ë¥±¡¼¥¹¤Ç¤â¡¢½é´ü²½ºÑ¤ß¹½Â¤ÂΤò»È¤¦É¬Íפ¬¤Ê¤¤¤Î¤Ç£Ï£Ë¤Ç¤¹¡£ ­¢¹½Â¤ÂÎËöÈø¤Î¥Ñ¥Ç¥£¥ó¥°¤À¤±¤ò½üµî¤¹¤ë¾ì¹ç ¤â¤È¤â¤È¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¤¢¤ê¤Î¾ì¹ç¤Ë¤â¥Õ¥£¡¼¥ë¥É´Ö¤Ë¤Ï¥Ñ¥Ç¥£¥ó¥°¤¬¤Ê¤¯¤Ã¤Æ¡¢¹½Â¤ÂÎËöÈø¤À¤±¤Ë¥Ñ¥Ç¥£¥ó¥°¤¬¤¢¤ë¤è¤¦¤Ê¾ì¹ç¤Ë¡¢ ¹½Â¤ÂÎËöÈø¤Î¥Ñ¥Ç¥£¥ó¥°¤ò¼è¤ê½ü¤¤¤Æ¤½¤Î¤Ö¤ó¹½Â¤ÂÎ¥µ¥¤¥º¤ò¾®¤µ¤¯¤·¤¿¤¤¥±¡¼¥¹¤Ç¡¢__attribute__((packed))¤¬ÍøÍѲÄǽ¤Ç¤¹¡£ ¤½¤ó¤ÊÅÔ¹ç¤ÎÎɤ¤Ï䬤¢¤ë¤«¡ª¤È¸À¤ï¤ì¤½¤¦¤Ç¤¹¤¬(^^;¡¢¤¢¤ê¤Þ¤¹¡£ USB»ÅÍͤι½Â¤ÂΤǤ¹¡£ USB»ÅÍͤι½Â¤ÂΤϡ¢³Æ¥Õ¥£¡¼¥ë¥É¤Î¥ª¥Õ¥»¥Ã¥È¤Ë´Ø¤·¤Æ¤Ï¥Ñ¥Ç¥£¥ó¥°Ìµ¤·¤ÇŬÀڤʥ¢¥é¥¤¥á¥ó¥È¤Ë¤Ê¤ë¤è¤¦Äê¤á¤é¤ì¤Æ¤¤¤ë¤³¤È¤¬Â¿¤¤¤Î¤Ç¤¹¤±¤ì¤É¡¢ ¤Ê¤¼¤«ËöÈø¤Ë1¥Ð¥¤¥È¤Î¥Õ¥£¡¼¥ë¥É¤¬¤¢¤Ã¤¿¤ê¤·¤Æ¡¢¹½Â¤ÂΥѥå¯Ìµ¤·¤Ç¤ÏËöÈø¤Ë¥Ñ¥Ç¥£¥ó¥°¤¬ÉÕ¤¤¤Æ¤·¤Þ¤¦¤è¤¦¤Ê¥±¡¼¥¹¤¬¤è¤¯¤¢¤ë¤ß¤¿¤¤¤Ê¤Î¤Ç¤¹¡£ ¤¿¤È¤¨¤Ð¡¢USBÄÌ¿®Ã¼ÅÀ¤ÎÆÃÀ­¤òµ­½Ò¤¹¤ë¤¿¤á¤Î¹½Â¤ÂΤȤ·¤Æ¡¢¥¨¥ó¥É¥Ý¥¤¥ó¥È¥Ç¥£¥¹¥¯¥ê¥×¥¿¤È¤¤¤¦¹½Â¤ÂΤ¬¤¢¤ê¤Þ¤¹¡£ typedef struct _ENDPOINT_DESCRIPTOR { ¡¡¡¡unsigned char bLength;¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡/* + 0, 1 */ ¡¡¡¡unsigned char bDescriptorType;¡¡¡¡¡¡¡¡¡¡¡¡/* + 1, 1 */ ¡¡¡¡unsigned char bEndpointAddress;¡¡¡¡¡¡¡¡¡¡ /* + 2, 1 */ ¡¡¡¡unsigned char bAttributes;¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡/* + 3, 1 */ ¡¡¡¡unsigned short wMaxPacketSize;¡¡¡¡¡¡¡¡¡¡¡¡ /* + 4, 2 */ ¡¡¡¡unsigned char bInterval;¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡/* + 6, 1 */ } __attribute__((packed)) ENDPOINT_DESCRIPTOR; /* = 7 */ USB¥Ç¥Ð¥¤¥¹(P/ECE¦¤Ç¤¹)¤Ï¡¢¥Ç¥Ð¥¤¥¹¤ÎÄÌ¿®ÆÃÀ­¤ò¥Û¥¹¥È(PC¦¤Ç¤¹)¤ØÃΤ餻¤ë¤¿¤á¤Ë¡¢¥¨¥ó¥É¥Ý¥¤¥ó¥È¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò¥Ç¥Ð¥¤¥¹¤«¤é¥Û¥¹¥È¤ØÁ÷¿®¤·¤Þ¤¹¡£ ¥¨¥ó¥É¥Ý¥¤¥ó¥È¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ÎÆâÍÆ¤¬ÊѲ½¤¹¤ë¤³¤È¤Ï¤Þ¤º¤Ê¤¤¤Î¤Ç¡¢½é´ü²½ºÑ¤ß¹½Â¤ÂΤȤ·¤Æ¤¢¤é¤«¤¸¤áÍѰդ·¤Æ¤ª¤­¤Þ¤¹¡£ ½é´ü²½ºÑ¤ß¥¨¥ó¥É¥Ý¥¤¥ó¥È¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò¥Ç¥Ð¥¤¥¹¤«¤é¥Û¥¹¥È¤ØÁ÷¿®¤¹¤ë¥×¥í¥°¥é¥à¤Ï¡¢¤À¤¤¤¿¤¤¼¡¤Î¤è¤¦¤Ê¤«¤ó¤¸¤Ë¤Ê¤ê¤Þ¤¹¡£ const ENDPOINT_DESCRIPTOR endpoint_desc_ep2in = { ¡¡¡¡sizeof(ENDPOINT_DESCRIPTOR),¡¡¡¡//unsigned char bLength;¡¡¡¡¡¡¡¡¡¡¡¡/* + 0, 1 */ ¡¡¡¡ENDPOINT_DESCRIPTOR_TYPE,¡¡¡¡¡¡ //unsigned char bDescriptorType;¡¡¡¡/* + 1, 1 */ ¡¡¡¡0x82,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ //unsigned char bEndpointAddress;¡¡ /* + 2, 1 */ ¡¡¡¡2,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//unsigned char bAttributes;¡¡¡¡¡¡¡¡/* + 3, 1 */ ¡¡¡¡EP2_NONISO_PACKET_SIZE,¡¡¡¡¡¡¡¡ //unsigned short wMaxPacketSize;¡¡¡¡ /* + 4, 2 */ ¡¡¡¡0,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//unsigned char bInterval;¡¡¡¡¡¡¡¡¡¡/* + 6, 1 */ }; D12_WriteEndpoint(1/*½ÐÎÏüÅÀ¤Î»ØÄê*/, &endpoint_desc_ep2in, sizeof(ENDPOINT_DESCRIPTOR)); ¢¨ËÜÅö¤Ï¥¨¥ó¥É¥Ý¥¤¥ó¥È¥Ç¥£¥¹¥¯¥ê¥×¥¿¤À¤±¤òñÂΤÇÁ÷¿®¤¹¤ë¤³¤È¤Ï¤Ê¤¤¤Î¤Ç¤¹¤±¤ì¤É¡¢ÀâÌÀ¤ò´Êñ¤Ë¤¹¤ë¤¿¤á¤Ë¡¢¤³¤³¤Ç¤Ï¹Í¤¨¤Ê¤¤¤³¤È¤Ë¤·¤Þ¤¹¡£ °Ê¾å¤Ï¡¢Àµ¤·¤¯Æ°ºî¤¹¤ë¥×¥í¥°¥é¥à¤ÎÎã¤Ç¤¹¡£ ¤µ¤Æ¡¢¤â¤·¤âENDPOINT_DESCRIPTOR¤ÎÄêµÁ¤Î¤È¤³¤í¤Ç__attribute__((packed))¤ò»ØÄꤷ¤Ê¤«¤Ã¤¿¤é¤É¤¦¤Ê¤ë¤Ç¤·¤ç¤¦¤«¡© typedef struct _ENDPOINT_DESCRIPTOR { ¡¡¡¡unsigned char bLength;¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡/* + 0, 1 */ ¡¡¡¡unsigned char bDescriptorType;¡¡¡¡¡¡¡¡¡¡¡¡/* + 1, 1 */ ¡¡¡¡unsigned char bEndpointAddress;¡¡¡¡¡¡¡¡¡¡ /* + 2, 1 */ ¡¡¡¡unsigned char bAttributes;¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡/* + 3, 1 */ ¡¡¡¡unsigned short wMaxPacketSize;¡¡¡¡¡¡¡¡¡¡¡¡ /* + 4, 2 */ ¡¡¡¡unsigned char bInterval;¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡/* + 6, 1 */ ¡¡¡¡(¥Ñ¥Ç¥£¥ó¥°)¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ /* + 7, 1 */ } ENDPOINT_DESCRIPTOR;¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ /* = 8 */ const ENDPOINT_DESCRIPTOR endpoint_desc_ep2in = { ¡¡¡¡sizeof(ENDPOINT_DESCRIPTOR),¡¡¡¡//unsigned char bLength;¡¡¡¡¡¡¡¡¡¡¡¡/* + 0, 1 */ ... ËÜÅö¤Ï7¤È¤¹¤Ù¤­¤Ê¤Î¤Ë¡¢8¤¬ÀßÄꤵ¤ì¤Æ¤·¤Þ¤¦!! ¡¡¡¡ENDPOINT_DESCRIPTOR_TYPE,¡¡¡¡¡¡ //unsigned char bDescriptorType;¡¡¡¡/* + 1, 1 */ ¡¡¡¡0x82,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ //unsigned char bEndpointAddress;¡¡ /* + 2, 1 */ ¡¡¡¡2,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//unsigned char bAttributes;¡¡¡¡¡¡¡¡/* + 3, 1 */ ¡¡¡¡EP2_NONISO_PACKET_SIZE,¡¡¡¡¡¡¡¡ //unsigned short wMaxPacketSize;¡¡¡¡ /* + 4, 2 */ ¡¡¡¡0,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//unsigned char bInterval;¡¡¡¡¡¡¡¡¡¡/* + 6, 1 */ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//(¥Ñ¥Ç¥£¥ó¥°)¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ /* + 7, 1 */ }; D12_WriteEndpoint(1/*½ÐÎÏüÅÀ¤Î»ØÄê*/, &endpoint_desc_ep2in, sizeof(ENDPOINT_DESCRIPTOR)); // ËÜÅö¤Ï D12_WriteEndpoint(1, &endpoint_desc_ep2in, 7) ¤È¤¹¤Ù¤­¤Ê¤Î¤Ë¡¢ // D12_WriteEndpoint(1, &endpoint_desc_ep2in, 8) ¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¦!! bLength¥Õ¥£¡¼¥ë¥É¤ÎÃͤäÁ÷¿®¥Ð¥¤¥È¿ô¤¬Àµ¤·¤¯¤Ê¤¤¤¿¤á¡¢¤³¤Î¥×¥í¥°¥é¥à¤ÏÀµ¤·¤¯Æ°ºî¤·¤Þ¤»¤ó¡£ bLength¥Õ¥£¡¼¥ë¥É¤äÁ÷¿®¥Ð¥¤¥È¿ô¤È¤·¤Æ¡¢sizeof(ENDPOINT_DESCRIPTOR)¤ò»È¤¦¤Î¤Ç¤Ï¤Ê¤¯¡¢ÌÀ¼¨Åª¤Ë"7"¤È½ñ¤±¤Ð²ò·è¤¹¤ë¤Î¤Ç¤¹¤¬¡¢ ¤Ò¤È¤Ä¤Ò¤È¤Ä¤Î¹½Â¤ÂÎ¥µ¥¤¥º¤ò³Ð¤¨¤ë¤è¤ê¤â¡¢¤Ç¤­¤ë¤Ê¤é¤Ðsizeof¤¬»È¤¨¤¿¤Û¤¦¤¬³Ú¤Ç¤¹¤è¤Í¡£ ¤Á¤ç¤Ã¤ÈºÙ¤«¤¤Ïäˤʤê¤Þ¤¹¤¬¡¢Ä̾¥¨¥ó¥É¥Ý¥¤¥ó¥È¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ÏÊ£¿ôÄêµÁ¤·¤Þ¤¹¡£ ¤¬¡¢¤½¤ÎºÝ¡¢½é´ü²½ºÑ¤ß¥¨¥ó¥É¥Ý¥¤¥ó¥È¥Ç¥£¥¹¥¯¥ê¥×¥¿¹½Â¤ÂΤò¡¢ÇÛÎó¤Ë¤·¤Æ¤Ï¤¤¤±¤Þ¤»¤ó¡£ ¥¨¥ó¥É¥Ý¥¤¥ó¥È¥Ç¥£¥¹¥¯¥ê¥×¥¿¹½Â¤ÂΤϡ¢Ã±ÂΤʤé¤Ð¥Ñ¥Ç¥£¥ó¥°Ìµ¤·¤ÇŬÀڤʥ¢¥é¥¤¥á¥ó¥È¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤Î¤Ç¤¹¤±¤ì¤É¡¢ ÇÛÎó¤Ë¤¹¤ë¤ÈÆó¤ÄÌܤÎÍ×ÁǤÎÅÓÃæ¤Ç¥¢¥é¥¤¥á¥ó¥È¤¬Êø¤ì¡¢¥¢¥»¥ó¥Ö¥é¤Ë¤è¤ë°ÅÌۤΥ¢¥é¥¤¥á¥ó¥È¤¬¹Ô¤ï¤ì¤Æ¡¢ÉÔÍפʥѥǥ£¥ó¥°¤¬Æþ¤Ã¤Æ¤·¤Þ¤¦¤«¤é¤Ç¤¹¡£ const ENDPOINT_DESCRIPTOR endpoint_desc[2] = { { ¡¡¡¡sizeof(ENDPOINT_DESCRIPTOR),¡¡¡¡//unsigned char bLength;¡¡¡¡¡¡¡¡¡¡¡¡/* + 0, 1 */ ¡¡¡¡ENDPOINT_DESCRIPTOR_TYPE,¡¡¡¡¡¡ //unsigned char bDescriptorType;¡¡¡¡/* + 1, 1 */ ¡¡¡¡0x82,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ //unsigned char bEndpointAddress;¡¡ /* + 2, 1 */ ¡¡¡¡2,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//unsigned char bAttributes;¡¡¡¡¡¡¡¡/* + 3, 1 */ ¡¡¡¡EP2_NONISO_PACKET_SIZE,¡¡¡¡¡¡¡¡ //unsigned short wMaxPacketSize;¡¡¡¡ /* + 4, 2 */ ¡¡¡¡0,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//unsigned char bInterval;¡¡¡¡¡¡¡¡¡¡/* + 6, 1 */ }, { ¡¡¡¡sizeof(ENDPOINT_DESCRIPTOR),¡¡¡¡//unsigned char bLength;¡¡¡¡¡¡¡¡¡¡¡¡/* + 7, 1 */ ¡¡¡¡ENDPOINT_DESCRIPTOR_TYPE,¡¡¡¡¡¡ //unsigned char bDescriptorType;¡¡¡¡/* + 8, 1 */ ¡¡¡¡0x02,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ //unsigned char bEndpointAddress;¡¡ /* + 9, 1 */ ¡¡¡¡2,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//unsigned char bAttributes;¡¡¡¡¡¡¡¡/* +10, 1 */ ¡¡¡¡EP2_NONISO_PACKET_SIZE,¡¡¡¡¡¡¡¡ //unsigned short wMaxPacketSize;¡¡¡¡ /* +11, 2 */ ¡¡¡¡0,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//unsigned char bInterval;¡¡¡¡¡¡¡¡¡¡/* +13, 1 */ } };¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ /* =14 */ ¢­¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤È... ¡¡¡¡.align¡¡2 endpoint_desc: ¡¡¡¡.byte¡¡ 7¡¡¡¡¡¡¡¡//unsigned char bLength;¡¡¡¡¡¡¡¡¡¡¡¡/* + 0, 1 */ ¡¡¡¡.byte¡¡ 5¡¡¡¡¡¡¡¡//unsigned char bDescriptorType;¡¡¡¡/* + 1, 1 */ ¡¡¡¡.byte¡¡130¡¡¡¡¡¡¡¡//unsigned char bEndpointAddress;¡¡ /* + 2, 1 */ ¡¡¡¡.byte¡¡ 2¡¡¡¡¡¡¡¡//unsigned char bAttributes;¡¡¡¡¡¡¡¡/* + 3, 1 */ ¡¡¡¡.half¡¡ 64¡¡¡¡¡¡¡¡//unsigned short wMaxPacketSize;¡¡¡¡ /* + 4, 2 */ ¡¡¡¡.byte¡¡ 0¡¡¡¡¡¡¡¡//unsigned char bInterval;¡¡¡¡¡¡¡¡¡¡/* + 6, 1 */ ¡¡¡¡.byte¡¡ 7¡¡¡¡¡¡¡¡//unsigned char bLength;¡¡¡¡¡¡¡¡¡¡¡¡/* + 7, 1 */ ¡¡¡¡.byte¡¡ 5¡¡¡¡¡¡¡¡//unsigned char bDescriptorType;¡¡¡¡/* + 8, 1 */ ¡¡¡¡.byte¡¡ 2¡¡¡¡¡¡¡¡//unsigned char bEndpointAddress;¡¡ /* + 9, 1 */ ¡¡¡¡.byte¡¡ 2¡¡¡¡¡¡¡¡//unsigned char bAttributes;¡¡¡¡¡¡¡¡/* +10, 1 */ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//(¤³¤³¤Ë¥Ñ¥Ç¥£¥ó¥°¤¬Æþ¤Ã¤Æ¤·¤Þ¤¦!!) /* +11, 1 */ ¡¡¡¡.half¡¡ 64¡¡¡¡¡¡¡¡//unsigned short wMaxPacketSize;¡¡¡¡ /* +12, 2 */ ¤º¤ì¤Æ¤ë!! ¡¡¡¡.byte¡¡ 0¡¡¡¡¡¡¡¡//unsigned char bInterval;¡¡¡¡¡¡¡¡¡¡/* +14, 1 */ ¤º¤ì¤Æ¤ë!! Ê£¿ô¤Î¥¨¥ó¥É¥Ý¥¤¥ó¥È¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò½é´ü²½ºÑ¤ß¹½Â¤ÂΤȤ·¤ÆÄêµÁ¤¹¤ë¾ì¹ç¤Ï¡¢ÇÛÎó¤Ë¤¹¤ë¤Î¤Ç¤Ê¤¯¡¢¤Ò¤È¤Ä¤Ò¤È¤ÄÄêµÁ¤·¡¢ ¼Â¹Ô»þ¤Ë¤¯¤Ã¤Ä¤±¤ÆÁ÷¿®¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ const ENDPOINT_DESCRIPTOR endpoint_desc_ep2in = { sizeof(ENDPOINT_DESCRIPTOR), ENDPOINT_DESCRIPTOR_TYPE, 0x82, 2, EP2_NONISO_PACKET_SIZE, 0, }; const ENDPOINT_DESCRIPTOR endpoint_desc_ep2out = { sizeof(ENDPOINT_DESCRIPTOR), ENDPOINT_DESCRIPTOR_TYPE, 0x02, 2, EP2_NONISO_PACKET_SIZE, 0, }; memcpy(&tmpbuf[sizeof(ENDPOINT_DESCRIPTOR) * 0], &endpoint_desc_ep2in, sizeof(ENDPOINT_DESCRIPTOR)); memcpy(&tmpbuf[sizeof(ENDPOINT_DESCRIPTOR) * 1], &endpoint_desc_ep2in, sizeof(ENDPOINT_DESCRIPTOR)); D12_WriteEndpoint(1/*½ÐÎÏüÅÀ¤Î»ØÄê*/, &tmpbuf, sizeof(ENDPOINT_DESCRIPTOR) * 2); ¢£¢£¢£¢£¢£ ¢£¤Þ¤È¤á¢£ ¢£¢£¢£¢£¢£ ·ëÏÀ¤Ç¤¹¡£ ¡ØP/ECE³«È¯´Ä¶­¤Ç¤Ï¡¢__attribute__((packed))¤Ë¤è¤ë¹½Â¤ÂΥѥ寤ÏÍøÍÑÉԲĤǤ¹¡£¡Ù ³Î¼Â¤ËÌäÂ꤬²óÈò¤Ç¤­¤ë¤È³Î¿®¤Ç¤­¤ë¾ì¹ç¤Ë¸Â¤Ã¤Æ¡¢__attribute__((packed))¤âÍøÍѲÄǽ¤Ç¤¹¤¬¡¢ ¤½¤ì¤Ï¤Þ¤ë¤Ç¡¢À¸¤Î¥¢¥»¥ó¥Ö¥é¤ä¥Ð¥¤¥Ê¥ê¥¨¥Ç¥£¥¿¤ò»È¤Ã¤Æ¥Ç¡¼¥¿¤òÁàºî¤·¤Æ¤¤¤ë¤è¤¦¤Ê´¶³Ð¤Ç¤¹¡£ ¤â¤È¤â¤È#pargma pack¤ä__attribute__((packed))¤Ï½èÍý·Ï°Í¸¤Î³ÈÄ¥µ¡Ç½¤Ç¤¹¤·¡¢»È¤ï¤º¤ËºÑ¤à¤Ê¤é¤Ð¤½¤ì¤Ë±Û¤·¤¿¤³¤È¤Ï¤¢¤ê¤Þ¤»¤ó¡£ * Sat Nov 6 00:00:00 JST 2004 Naoyuki Sawa - ¹½Â¤ÂΥѥ寤ËÌäÂꤢ¤ê#1 P/ECE³«È¯´Ä¶­¤ÎC¥³¥ó¥Ñ¥¤¥é¤Ë¤ÏÌäÂ꤬¤¢¤ê¡¢¹½Â¤ÂΥѥ寤ò¹Ô¤¦¾ì¹ç¤ËÃí°Õ¤¬É¬ÍפǤ¹¡£ º£²ó¤Ï¡¢¤³¤ÎÌäÂê¤Ë¤Ä¤¤¤Æµ­¤·¤Æ¤ª¤³¤¦¤È»×¤¤¤Þ¤¹¡£ P/ECEÆÃÍ­¤ÎÌäÂêÅÀ¤À¤±ÆÉ¤ß¤¿¤¤¤«¤¿¤Ï¡¢¢££Ð¡¿£Å£Ã£Å¤Î¾ì¹ç¡ÁÌäÂêȯÀ¸!!¢£¤Þ¤ÇÆÉ¤ßÈô¤Ð¤·¤Æ¤¯¤À¤µ¤¤¡£ ¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£ ¢£°ìÈÌŪ¤ÊÏáÁ¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¢£ ¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£ Ä̾C¸À¸ì¤Ç¹½Â¤ÂΤòÄêµÁ¤¹¤ë¤È¡¢³Æ¥Õ¥£¡¼¥ë¥É¤¬¥Õ¥£¡¼¥ë¥É¥µ¥¤¥º¤ÎÇÜ¿ô¤Î°ÌÃ֤˷¤¦¤è¤¦¤Ë¡¢°ÅÌۤζõÇòÎΰ褬Äɲ䵤ì¤Þ¤¹¡£ ¤¿¤È¤¨¤Ð¼¡¤Î¤è¤¦¤Ê¹½Â¤ÂΤòÄêµÁ¤·¤¿¤È¤·¤Þ¤¹¡£ typedef struct _SAMPLE1 { ¡¡¡¡char c1; ¡¡¡¡short s2; ¡¡¡¡int i3; ¡¡¡¡char c4; } SAMPLE1; ¤³¤ì¤À¤±¸«¤ë¤È¡¢³Æ¥Õ¥£¡¼¥ë¥É¤Î¥ª¥Õ¥»¥Ã¥È¤È¥µ¥¤¥º¡¢¤ª¤è¤Ó¹½Â¤ÂÎ¥µ¥¤¥º¤Ï¼¡¤Î¤è¤¦¤Ë¤Ê¤ë¤è¤¦¤Ë¸«¤¨¤ë¤Î¤Ç¤¹¤±¤ì¤É¡¢ (¥³¥á¥ó¥Èɽµ­¤Ï /* +¥Õ¥£¡¼¥ë¥É¥ª¥Õ¥»¥Ã¥È, ¥Õ¥£¡¼¥ë¥É¥µ¥¤¥º */¡¢/* =¹½Â¤ÂÎ¥µ¥¤¥º */ ¤Ç¤¹¡£) [¸í¤Ã¤¿ÇÛÃÖ] typedef struct _STRUCT1 { ¡¡¡¡char c1;¡¡¡¡/* + 0, 1 */ ¡¡¡¡short s2;¡¡¡¡/* + 1, 2 */ ¡¡¡¡short s3;¡¡¡¡/* + 3, 2 */ ¡¡¡¡int i4;¡¡¡¡/* + 5, 4 */ ¡¡¡¡char c5;¡¡¡¡/* + 9, 1 */ } STRUCT1;¡¡¡¡¡¡¡¡/* =10 */ ¼ÂºÝ¤Ë¤Ï¡¢³Æ¥Õ¥£¡¼¥ë¥É¤Î¥ª¥Õ¥»¥Ã¥È¤È¥µ¥¤¥º¡¢¤ª¤è¤Ó¹½Â¤ÂÎ¥µ¥¤¥º¤Ï¼¡¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£ [ËÜÅö¤ÎÇÛÃÖ] typedef struct _STRUCT1 { ¡¡¡¡char c1;¡¡¡¡/* + 0, 1 */ ¡¡¡¡(¥Ñ¥Ç¥£¥ó¥°)¡¡/* + 1, 1 */ ¡¡¡¡short s2;¡¡¡¡/* + 2, 2 */ ¡¡¡¡short s3;¡¡¡¡/* + 4, 2 */ ¡¡¡¡(¥Ñ¥Ç¥£¥ó¥°)¡¡/* + 6, 2 */ ¡¡¡¡int i4;¡¡¡¡/* + 8, 4 */ ¡¡¡¡char c5;¡¡¡¡/* +12, 1 */ ¡¡¡¡(¥Ñ¥Ç¥£¥ó¥°)¡¡/* +13, 3 */ } STRUCT1;¡¡¡¡¡¡¡¡/* =16 */ s2¥Õ¥£¡¼¥ë¥É(2¥Ð¥¤¥ÈÀ°¿ô)¤ËÃíÌܤ·¤Æ¤¯¤À¤µ¤¤¡£ [¸í¤Ã¤¿ÇÛÃÖ]¤Ç¤Ï¡¢s2¥Õ¥£¡¼¥ë¥É¤¬¥ª¥Õ¥»¥Ã¥È1(2¤ÎÇÜ¿ô¤Ç¤Ê¤¤)¤«¤é»Ï¤Þ¤Ã¤Æ¤¤¤Þ¤¹¡£ 2¤ÎÇÜ¿ô¤Ç¤Ê¤¤¥¢¥É¥ì¥¹¤ËÃÖ¤«¤ì¤¿2¥Ð¥¤¥ÈÀ°¿ô¤ÎÆÉ¤ß½ñ¤­¤Ï¡¢CPU¤Î¼ïÎà¤Ë¤è¤Ã¤Æ¤Ï¤Ç¤­¤Ê¤«¤Ã¤¿¤ê¡¢¤Ç¤­¤Æ¤â¸úΨ¤¬°­¤«¤Ã¤¿¤ê¤·¤Þ¤¹¡£ ¤½¤³¤Ç¡¢2¥Ð¥¤¥ÈÀ°¿ô¤¬2¤ÎÇÜ¿ô¤Î¥¢¥É¥ì¥¹¤«¤é»Ï¤Þ¤ë¤è¤¦¡¢s2¥Õ¥£¡¼¥ë¥É¤ÎľÁ°¤Ë°ÅÌۤζõÇòÎΰ褬Äɲ䵤ì¤ë¤Î¤Ç¤¹¡£ °ÅÌۤζõÇòÎΰè¤Î¤³¤È¤ò¡¢¡È¥Ñ¥Ç¥£¥ó¥°¡É(µÍ¤áʪ)¤È¸Æ¤ó¤À¤ê¤·¤Þ¤¹¡£ i4¥Õ¥£¡¼¥ë¥É(4¥Ð¥¤¥ÈÀ°¿ô)¤Ë¤Ä¤¤¤Æ¤âƱÍͤǤ¹¡£ 4¤ÎÇÜ¿ô¤Ç¤Ê¤¤¥¢¥É¥ì¥¹¤ËÃÖ¤«¤ì¤¿4¥Ð¥¤¥ÈÀ°¿ô¤ÎÆÉ¤ß½ñ¤­¤Ï¡¢CPU¤Î¼ïÎà¤Ë¤è¤Ã¤Æ¤Ï¤Ç¤­¤Ê¤«¤Ã¤¿¤ê¡¢¤Ç¤­¤Æ¤â¸úΨ¤¬°­¤«¤Ã¤¿¤ê¤·¤Þ¤¹¡£ ¤½¤³¤Ç¡¢4¥Ð¥¤¥ÈÀ°¿ô¤¬4¤ÎÇÜ¿ô¤Î¥¢¥É¥ì¥¹¤«¤é»Ï¤Þ¤ë¤è¤¦¡¢i4¥Õ¥£¡¼¥ë¥É¤ÎľÁ°¤Ë¥Ñ¥Ç¥£¥ó¥°¤¬Äɲ䵤ì¤Þ¤¹¡£ °ì¸«¡¢¹½Â¤ÂÎËöÈø¤Î¥Ñ¥Ç¥£¥ó¥°¤ÏÉÔÍפ˸«¤¨¤Þ¤¹¡£ ¤Ê¤¼¤³¤ì¤¬É¬Íפ«¤È¤¤¤¦¤È¡¢¹½Â¤ÂÎÇÛÎó¤òÄêµÁ¤·¤¿¤È¤­¤Î¤¿¤á¤Ç¤¹¡£ ¤â¤·¤â¹½Â¤ÂÎËöÈø¤Î¶õÇòÎΰ褬¤Ê¤«¤Ã¤¿¤È¤¹¤ë¤È¡¢¼¡¤Î¤è¤¦¤Ê¹½Â¤ÂÎÇÛÎó¤òÄêµÁ¤·¤¿¤È¤­¤Ë¡¢ STRUCT1 struct1[2]; ¥á¥â¥ê¾å¤ÎÇÛÃ֤ϼ¡¤Î¤è¤¦¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¤¤Þ¤¹¡£ [¸í¤Ã¤¿ÇÛÃÖ] // struct1[0] char c1;¡¡¡¡/* + 0, 1 */ (¥Ñ¥Ç¥£¥ó¥°)¡¡/* + 1, 1 */ short s2;¡¡¡¡/* + 2, 2 */ short s3;¡¡¡¡/* + 4, 2 */ (¥Ñ¥Ç¥£¥ó¥°)¡¡/* + 6, 2 */ int i4;¡¡¡¡/* + 8, 4 */ char c5;¡¡¡¡/* +12, 1 */ // struct1[1] char c1;¡¡¡¡/* +13, 1 */ (¥Ñ¥Ç¥£¥ó¥°)¡¡/* +14, 1 */ short s2;¡¡¡¡/* +15, 2 */ short s3;¡¡¡¡/* +17, 2 */ (¥Ñ¥Ç¥£¥ó¥°)¡¡/* +19, 2 */ int i4;¡¡¡¡/* +21, 4 */ char c5;¡¡¡¡/* +25, 1 */ struct1[0]¤ÏŬÀڤʥե£¡¼¥ë¥ÉÇÛÃ֤Ǥ¹¤¬¡¢struct1[1]¤Îs2¤äs3¡¢i4¤ÎÇÛÃÖ¤¬Å¬ÀڤǤ¢¤ê¤Þ¤»¤ó¡£ s2¤Ès3¤Ï2¥Ð¥¤¥ÈÀ°¿ô¤Ê¤Î¤Ë2¤ÎÇÜ¿ô¥¢¥É¥ì¥¹¤ËÇÛÃÖ¤µ¤ì¤º¡¢i4¤Ï4¥Ð¥¤¥ÈÀ°¿ô¤Ê¤Î¤Ë4¤ÎÇÜ¿ô¥¢¥É¥ì¥¹¤ËÇÛÃÖ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£ ¤³¤Î¤è¤¦¤ÊÌäÂê¤òÈò¤±¤ë¤¿¤á¡¢¹½Â¤ÂÎ¥µ¥¤¥º¤¬¡Ö¹½Â¤ÂΤÎÃæ¤Î¤¤¤Á¤Ð¤óÂ礭¤Ê¥Õ¥£¡¼¥ë¥É¤Î¥µ¥¤¥º¤ÎÇÜ¿ô¡×¤Ë¤Ê¤ë¤è¤¦¡¢¹½Â¤ÂΤÎËöÈø¤Ë¤â¥Ñ¥Ç¥£¥ó¥°¤¬Äɲ䵤ì¤Þ¤¹¡£ [Àµ¤·¤¤ÇÛÃÖ] // struct1[0] char c1;¡¡¡¡/* + 0, 1 */ (¥Ñ¥Ç¥£¥ó¥°)¡¡/* + 1, 1 */ short s2;¡¡¡¡/* + 2, 2 */ short s3;¡¡¡¡/* + 4, 2 */ (¥Ñ¥Ç¥£¥ó¥°)¡¡/* + 6, 2 */ int i4;¡¡¡¡/* + 8, 4 */ char c5;¡¡¡¡/* +12, 1 */ (¥Ñ¥Ç¥£¥ó¥°)¡¡/* +13, 3 */ // struct1[1] char c1;¡¡¡¡/* +16, 1 */ (¥Ñ¥Ç¥£¥ó¥°)¡¡/* +17, 1 */ short s2;¡¡¡¡/* +18, 2 */ short s3;¡¡¡¡/* +20, 2 */ (¥Ñ¥Ç¥£¥ó¥°)¡¡/* +22, 2 */ int i4;¡¡¡¡/* +24, 4 */ char c5;¡¡¡¡/* +28, 1 */ (¥Ñ¥Ç¥£¥ó¥°)¡¡/* +29, 3 */ °Ê¾å¤Î¤è¤¦¤Ë¡¢¥³¥ó¥Ñ¥¤¥é¤¬¼«Æ°Åª¤Ë¥Ñ¥Ç¥£¥ó¥°¤òÄɲ䷤ơ¢³Æ¥Õ¥£¡¼¥ë¥É¤ÎÇÛÃÖ¤òŬÀÚ¤ËÊݤĤ³¤È¤ò¡¢¡È¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¡É¤È¸Æ¤ó¤À¤ê¤·¤Þ¤¹¡£ ¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£ ¢£°ìÈÌŪ¤ÊÏáÁ¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¤òÍÞÀ©¤¹¤ë¢£ ¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£ Ä̾ï¤Ï¡¢¥³¥ó¥Ñ¥¤¥é¤¬¼«Æ°Åª¤Ë¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¤ò¹Ô¤Ã¤Æ¤¯¤ì¤ë¤Î¤Ç¡¢¥×¥í¥°¥é¥Þ¤ÏÆÃ¤Ëµ¤¤Ë¤¹¤ëɬÍפϤ¢¤ê¤Þ¤»¤ó¡£ ¤¬¡¢µ©¤Ë¡¢¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¤¬¹Ô¤ï¤ì¤Æ¤Ïº¤¤ë¾ì¹ç¤¬¤¢¤ê¤Þ¤¹¡£ ¥Í¥Ã¥È¥ï¡¼¥¯¤ä¥Ç¥Ð¥¤¥¹¤È¤ÎÄÌ¿®¤Ê¤É¡¢¤¢¤é¤«¤¸¤á»ÅÍͤǷè¤á¤é¤ì¤¿¥Õ¥£¡¼¥ë¥ÉÇÛÃ֤ι½Â¤ÂΤòÁ÷¼õ¿®¤¹¤ë¾ì¹ç¤Ç¤¹¡£ ¥Í¥Ã¥È¥ï¡¼¥¯¤ä¥Ç¥Ð¥¤¥¹¤È¤ÎÄÌ¿®¤Ç¤Ï¡¢ÄÌ¿®¥Ç¡¼¥¿Î̤ò¾¯¤Ê¤¯¤¹¤ë¤¿¤á¤Ë¡¢2¥Ð¥¤¥ÈÀ°¿ô¤ä4¥Ð¥¤¥ÈÀ°¿ô¤â¥Ñ¥Ç¥£¥ó¥°Ìµ¤·¤Ç¤Ó¤Ã¤Á¤êµÍ¤á¹þ¤Þ¤ì¤Æ¤¤¤ë¾ì¹ç¤¬Â¿¤¤¤Ç¤¹¡£ ¥á¥â¥ê¾å¤Ë¹½Â¤ÂΤòºî¤Ã¤Æ¤ª¤¤¤Æ¡¢¤½¤Î¥á¥â¥ê¥¤¥á¡¼¥¸¤òľÀÜÁ÷¿®¤¹¤ë¾ì¹ç¤ä¡¢¥á¥â¥ê¾å¤Î¹½Â¤ÂÎÊÑ¿ô¤ËľÀܼõ¿®¤¹¤ë¾ì¹ç¡¢ ¹½Â¤ÂΤΥե£¡¼¥ë¥ÉÇÛÃ֤Ϥ¢¤é¤«¤¸¤á·è¤á¤é¤ì¤¿»ÅÍͤˤ­¤Ã¤Á¤ê¹ç¤Ã¤Æ¤¤¤Ê¤±¤ì¤Ð¤¤¤±¤Þ¤»¤ó¡£ ¤¿¤È¤¨¤Ð¡¢MMC(Multi Media Card)¤È¤ÎÄÌ¿®¤Ç¤Ï¡¢¼¡¤Î¤è¤¦¤Ê¹½Â¤ÂΤλÅÍͤ¬Äê¤á¤é¤ì¤Æ¤¤¤Þ¤¹¡£ (¤Þ¤É¤«¤ÎÀ¤³¦¤µ¤ó¤Î¡¢MMCÂбþ¥«¡¼¥Í¥ë¤Î¥½¡¼¥¹¤«¤é°úÍѤµ¤»¤Æ¤¤¤¿¤À¤­¤Þ¤·¤¿) [Àµ¤·¤¤ÇÛÃÖ] //CID(Card IDentification number)¡¡¥«¡¼¥ÉID¥ì¥¸¥¹¥¿¾ðÊó¹½Â¤ÂÎ typedef struct tag_MMC_CID_INFO { ¡¡¡¡unsigned char ucMID;¡¡¡¡¡¡// + 0, 1: ManufactureID(8bit) ¡¡¡¡unsigned short usOID;¡¡¡¡¡¡// + 1, 2: OEM/Application ID(16bit) ¡¡¡¡unsigned char ucPNM[6]; ¡¡// + 3, 6: Product name(48bit) ¡¡¡¡unsigned char ucPRV;¡¡¡¡¡¡// + 9, 1: Product revision(8bit) ¡¡¡¡unsigned long ulPSN;¡¡¡¡¡¡// +10, 4: Product serial number(32bit) ¡¡¡¡unsigned char ucMDT;¡¡¡¡¡¡// +14, 1: Manufacturing date(8bit) ¡¡¡¡unsigned char ucCRC;¡¡¡¡¡¡// +15, 1: 7-bit CRC checksum(7bit) } MMC_CID_INFO; ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡// =16 ¤È¤³¤í¤¬¡¢¥³¥ó¥Ñ¥¤¥é¤Ë¤è¤Ã¤Æ¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¤¬¹Ô¤ï¤ì¤ë¤È¡¢¼ÂºÝ¤ÎÇÛÃ֤ϼ¡¤Î¤è¤¦¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¤¤Þ¤¹¡£ [¸í¤Ã¤¿ÇÛÃÖ] //CID(Card IDentification number)¡¡¥«¡¼¥ÉID¥ì¥¸¥¹¥¿¾ðÊó¹½Â¤ÂÎ typedef struct tag_MMC_CID_INFO { ¡¡¡¡unsigned char ucMID;¡¡¡¡¡¡// + 0, 1: ManufactureID(8bit) ¡¡¡¡(¥Ñ¥Ç¥£¥ó¥°) // + 1, 1: ¡¡¡¡unsigned short usOID;¡¡¡¡¡¡// + 2, 2: OEM/Application ID(16bit) ¡¡¡¡unsigned char ucPNM[6]; ¡¡// + 4, 6: Product name(48bit) ¡¡¡¡unsigned char ucPRV;¡¡¡¡¡¡// +10, 1: Product revision(8bit) ¡¡¡¡(¥Ñ¥Ç¥£¥ó¥°) // +11, 1: ¡¡¡¡unsigned long ulPSN;¡¡¡¡¡¡// +12, 4: Product serial number(32bit) ¡¡¡¡unsigned char ucMDT;¡¡¡¡¡¡// +16, 1: Manufacturing date(8bit) ¡¡¡¡unsigned char ucCRC;¡¡¡¡¡¡// +17, 1: 7-bit CRC checksum(7bit) ¡¡¡¡(¥Ñ¥Ç¥£¥ó¥°) // +18, 2: } MMC_CID_INFO; ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡// =20 ¤³¤ì¤Ç¤Ï¥À¥á¤Ç¤¹¡£ ¤½¤³¤Ç¡¢¥³¥ó¥Ñ¥¤¥é¤Ë¤è¤ë¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¤òÍÞÀ©¤·¡¢¥Ñ¥Ç¥£¥ó¥°¤ò¤Ê¤¯¤¹ÊýË¡¤¬ÍѰդµ¤ì¤Æ¤¤¤Þ¤¹¡£ ¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¤òÍÞÀ©¤¹¤ëÊýË¡¤Ï¡¢¥³¥ó¥Ñ¥¤¥éËè¤Ë°ã¤Ã¤Æ¤¤¤Þ¤¹¡£ ¤¿¤È¤¨¤Ð¡¢Visual C++¤Î¾ì¹ç¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¤·¤Þ¤¹¡£ #pragma pack(1) //CID(Card IDentification number)¡¡¥«¡¼¥ÉID¥ì¥¸¥¹¥¿¾ðÊó¹½Â¤ÂÎ typedef struct tag_MMC_CID_INFO { ¡¡¡¡unsigned char ucMID;¡¡¡¡¡¡// + 0, 1: ManufactureID(8bit) ¡¡¡¡unsigned short usOID;¡¡¡¡¡¡// + 1, 2: OEM/Application ID(16bit) ¡¡¡¡unsigned char ucPNM[6]; ¡¡// + 3, 6: Product name(48bit) ¡¡¡¡unsigned char ucPRV;¡¡¡¡¡¡// + 9, 1: Product revision(8bit) ¡¡¡¡unsigned long ulPSN;¡¡¡¡¡¡// +10, 4: Product serial number(32bit) ¡¡¡¡unsigned char ucMDT;¡¡¡¡¡¡// +14, 1: Manufacturing date(8bit) ¡¡¡¡unsigned char ucCRC;¡¡¡¡¡¡// +15, 1: 7-bit CRC checksum(7bit) } MMC_CID_INFO; ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡// =16 #pragma pack() GCC¤Î¾ì¹ç¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¤·¤Þ¤¹¡£ //CID(Card IDentification number)¡¡¥«¡¼¥ÉID¥ì¥¸¥¹¥¿¾ðÊó¹½Â¤ÂÎ typedef struct tag_MMC_CID_INFO { ¡¡¡¡unsigned char ucMID;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// + 0, 1: ManufactureID(8bit) ¡¡¡¡unsigned short usOID;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// + 1, 2: OEM/Application ID(16bit) ¡¡¡¡unsigned char ucPNM[6]; ¡¡¡¡¡¡¡¡¡¡// + 3, 6: Product name(48bit) ¡¡¡¡unsigned char ucPRV;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// + 9, 1: Product revision(8bit) ¡¡¡¡unsigned long ulPSN;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +10, 4: Product serial number(32bit) ¡¡¡¡unsigned char ucMDT;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +14, 1: Manufacturing date(8bit) ¡¡¡¡unsigned char ucCRC;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +15, 1: 7-bit CRC checksum(7bit) } __attribute__((packed)) MMC_CID_INFO; // =16 ¢¨¸·Ì©¤Ë¸À¤¦¤È¡¢MMC¤È¤ÎÄÌ¿®¥Ç¡¼¥¿¤Ï¥Ð¥¤¥È½ç¤¬¥â¥È¥í¡¼¥éʤӤǡ¢Pentium¤äS1C33(P/ECE¤ÎCPU)¤Î¥¤¥ó¥Æ¥ëʤӤȤϵդǤ¹¡£ ¡¡¤À¤«¤é¡¢¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¤À¤±Ìµ¤¯¤·¤Æ¤â¡¢¥á¥â¥ê¥¤¥á¡¼¥¸¤½¤Î¤Þ¤Þ¤ÇÁ÷¼õ¿®¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó¡£ ¡¡¤¬¡¢ÀâÌÀ¤ò´Êñ¤Ë¤¹¤ë¤¿¤á¤Ë¡¢¤³¤³¤Ç¤Ï¥Ð¥¤¥È½ç¤Î°ã¤¤¤Ï¹Í¤¨¤Ê¤¤¤³¤È¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡£ ¤½¤ì¤Ç¤Ï¡¢ËÜÅö¤Ë¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¤¬ÍÞÀ©¤µ¤ì¤Æ¤¤¤ë¤«¡¢³Îǧ¤·¤Æ¤ß¤Þ¤·¤ç¤¦¡£ ¥Æ¥¹¥È¤Î¤¿¤á¤Ë¡¢¥á¥â¥ê¾å¤Ë½é´ü²½ºÑ¤ß¤Î¹½Â¤ÂΤòÍѰդ·¡¢¤½¤ÎÆâÍÆ¤ò1¥Ð¥¤¥È¤Å¤Äɽ¼¨¤·¤Æ¤ß¤ë¤³¤È¤Ë¤·¤Þ¤¹¡£ ¤Þ¤º¤Ï¡¢¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¤ò¡úÍÞÀ©¤·¤Ê¤¤¡ú¾ì¹ç¤Î¥á¥â¥êÆâÍÆ¤ò³Î¤«¤á¤Æ¤ß¤Þ¤¹¡£ [Windows PC & Visual C++ 6.0¡¢¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¤¢¤ê] #include //CID(Card IDentification number)¡¡¥«¡¼¥ÉID¥ì¥¸¥¹¥¿¾ðÊó¹½Â¤ÂÎ typedef struct tag_MMC_CID_INFO { ¡¡¡¡unsigned char¡¡ ucMID;¡¡¡¡¡¡// + 0, 1: ManufactureID(8bit) ¡¡¡¡unsigned short¡¡usOID;¡¡¡¡¡¡// + 2, 2: OEM/Application ID(16bit) ¡¡¡¡unsigned char¡¡ ucPNM[6];¡¡ // + 4, 6: Product name(48bit) ¡¡¡¡unsigned char¡¡ ucPRV;¡¡¡¡¡¡// +10, 1: Product revision(8bit) ¡¡¡¡unsigned long¡¡ ulPSN;¡¡¡¡¡¡// +12, 4: Product serial number(32bit) ¡¡¡¡unsigned char¡¡ ucMDT;¡¡¡¡¡¡// +16, 1: Manufacturing date(8bit) ¡¡¡¡unsigned char¡¡ ucCRC;¡¡¡¡¡¡// +17, 1: 7-bit CRC checksum(7bit) } MMC_CID_INFO;¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // =20 MMC_CID_INFO cid = { ¡¡¡¡0xff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned char¡¡ ucMID;¡¡¡¡// + 0, 1: ManufactureID(8bit) ¡¡¡¡0xffff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned short¡¡usOID;¡¡¡¡// + 2, 2: OEM/Application ID(16bit) ¡¡¡¡{ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }, // unsigned char¡¡ ucPNM[6]; // + 4, 6: Product name(48bit) ¡¡¡¡0xff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned char¡¡ ucPRV;¡¡¡¡// +10, 1: Product revision(8bit) ¡¡¡¡0xffffffff, ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡// unsigned long¡¡ ulPSN;¡¡¡¡// +12, 4: Product serial number(32bit) ¡¡¡¡0xff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned char¡¡ ucMDT;¡¡¡¡// +16, 1: Manufacturing date(8bit) ¡¡¡¡0xff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned char¡¡ ucCRC;¡¡¡¡// +17, 1: 7-bit CRC checksum(7bit) }; int main() { ¡¡¡¡int i; ¡¡¡¡unsigned char* p; ¡¡¡¡p = (unsigned char*)&cid; ¡¡¡¡printf("size = %d\n", sizeof(MMC_CID_INFO)); ¡¡¡¡for(i = 0; i < sizeof(MMC_CID_INFO); i++) { ¡¡¡¡¡¡¡¡printf("%02x ", p[i]); ¡¡¡¡} ¡¡¡¡return 0; } ------------------------------------------------------------------------------------------- ¢£¢£ ·ë²Ì ¢£¢£ size = 20 ff 00 ff ff ff ff ff ff ff ff ff 00 ff ff ff ff ff ff 00 00 ------------------------------------------------------------------------------------------- ¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¤¢¤ê¤Ê¤Î¤Ç¡¢¥Ñ¥Ç¥£¥ó¥°¤¬Äɲäµ¤ì¤Æ¤¤¤Þ¤¹¡£(00¤ÎÉôʬ) ¹½Â¤ÂÎ¥µ¥¤¥º¤â¥Ñ¥Ç¥£¥ó¥°¤ÎʬÁý¤¨¤Æ¡¢MMC»ÅÍͤè¤ê¤â4¥Ð¥¤¥È¿¤¤20¥Ð¥¤¥È¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£ ¼¡¤Ë¡¢¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¤ò¡úÍÞÀ©¤·¤¿¡ú¾ì¹ç¤Î¥á¥â¥êÆâÍÆ¤ò³Î¤«¤á¤Æ¤ß¤Þ¤¹¡£ [Windows PC & Visual C++ 6.0¡¢¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È̵¤·] #include #pragma pack(1) //CID(Card IDentification number)¡¡¥«¡¼¥ÉID¥ì¥¸¥¹¥¿¾ðÊó¹½Â¤ÂÎ typedef struct tag_MMC_CID_INFO { ¡¡¡¡unsigned char¡¡ ucMID;¡¡¡¡¡¡// + 0, 1: ManufactureID(8bit) ¡¡¡¡unsigned short¡¡usOID;¡¡¡¡¡¡// + 1, 2: OEM/Application ID(16bit) ¡¡¡¡unsigned char¡¡ ucPNM[6];¡¡ // + 3, 6: Product name(48bit) ¡¡¡¡unsigned char¡¡ ucPRV;¡¡¡¡¡¡// + 9, 1: Product revision(8bit) ¡¡¡¡unsigned long¡¡ ulPSN;¡¡¡¡¡¡// +10, 4: Product serial number(32bit) ¡¡¡¡unsigned char¡¡ ucMDT;¡¡¡¡¡¡// +14, 1: Manufacturing date(8bit) ¡¡¡¡unsigned char¡¡ ucCRC;¡¡¡¡¡¡// +15, 1: 7-bit CRC checksum(7bit) } MMC_CID_INFO;¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // =16 #pragma pack() MMC_CID_INFO cid = { ¡¡¡¡0xff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned char¡¡ ucMID;¡¡¡¡// + 0, 1: ManufactureID(8bit) ¡¡¡¡0xffff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned short¡¡usOID;¡¡¡¡// + 1, 2: OEM/Application ID(16bit) ¡¡¡¡{ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }, // unsigned char¡¡ ucPNM[6]; // + 3, 6: Product name(48bit) ¡¡¡¡0xff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned char¡¡ ucPRV;¡¡¡¡// + 9, 1: Product revision(8bit) ¡¡¡¡0xffffffff, ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡// unsigned long¡¡ ulPSN;¡¡¡¡// +10, 4: Product serial number(32bit) ¡¡¡¡0xff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned char¡¡ ucMDT;¡¡¡¡// +14, 1: Manufacturing date(8bit) ¡¡¡¡0xff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned char¡¡ ucCRC;¡¡¡¡// +15, 1: 7-bit CRC checksum(7bit) }; int main() { ¡¡¡¡int i; ¡¡¡¡unsigned char* p; ¡¡¡¡p = (unsigned char*)&cid; ¡¡¡¡printf("size = %d\n", sizeof(MMC_CID_INFO)); ¡¡¡¡for(i = 0; i < sizeof(MMC_CID_INFO); i++) { ¡¡¡¡¡¡¡¡printf("%02x ", p[i]); ¡¡¡¡} ¡¡¡¡return 0; } ------------------------------------------------------------------------------------------- ¢£¢£ ·ë²Ì ¢£¢£ size = 16 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ------------------------------------------------------------------------------------------- ¥Ñ¥Ç¥£¥ó¥°¤¬¾Ã¤¨¤Æ¡¢¹½Â¤ÂÎ¥µ¥¤¥º¤âMMC»ÅÍͤɤª¤ê¤Î16¥Ð¥¤¥È¤Ë¤Ê¤ê¤Þ¤·¤¿¡£ GCC¤Î¾ì¹ç¤âƱÍͤǤ¹¡£ ¤Þ¤º¤Ï¡¢¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¤ò¡úÍÞÀ©¤·¤Ê¤¤¡ú¾ì¹ç¡£ [Linux PC & GCC 3.3.3¡¢¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¤¢¤ê] #include //CID(Card IDentification number)¡¡¥«¡¼¥ÉID¥ì¥¸¥¹¥¿¾ðÊó¹½Â¤ÂÎ typedef struct tag_MMC_CID_INFO { ¡¡¡¡unsigned char¡¡ ucMID;¡¡¡¡¡¡// + 0, 1: ManufactureID(8bit) ¡¡¡¡unsigned short¡¡usOID;¡¡¡¡¡¡// + 2, 2: OEM/Application ID(16bit) ¡¡¡¡unsigned char¡¡ ucPNM[6];¡¡ // + 4, 6: Product name(48bit) ¡¡¡¡unsigned char¡¡ ucPRV;¡¡¡¡¡¡// +10, 1: Product revision(8bit) ¡¡¡¡unsigned long¡¡ ulPSN;¡¡¡¡¡¡// +12, 4: Product serial number(32bit) ¡¡¡¡unsigned char¡¡ ucMDT;¡¡¡¡¡¡// +16, 1: Manufacturing date(8bit) ¡¡¡¡unsigned char¡¡ ucCRC;¡¡¡¡¡¡// +17, 1: 7-bit CRC checksum(7bit) } MMC_CID_INFO;¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // =20 MMC_CID_INFO cid = { ¡¡¡¡0xff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned char¡¡ ucMID;¡¡¡¡// + 0, 1: ManufactureID(8bit) ¡¡¡¡0xffff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned short¡¡usOID;¡¡¡¡// + 2, 2: OEM/Application ID(16bit) ¡¡¡¡{ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }, // unsigned char¡¡ ucPNM[6]; // + 4, 6: Product name(48bit) ¡¡¡¡0xff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned char¡¡ ucPRV;¡¡¡¡// +10, 1: Product revision(8bit) ¡¡¡¡0xffffffff, ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡// unsigned long¡¡ ulPSN;¡¡¡¡// +12, 4: Product serial number(32bit) ¡¡¡¡0xff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned char¡¡ ucMDT;¡¡¡¡// +16, 1: Manufacturing date(8bit) ¡¡¡¡0xff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned char¡¡ ucCRC;¡¡¡¡// +17, 1: 7-bit CRC checksum(7bit) }; int main() { ¡¡¡¡int i; ¡¡¡¡unsigned char* p; ¡¡¡¡p = (unsigned char*)&cid; ¡¡¡¡printf("size = %d\n", sizeof(MMC_CID_INFO)); ¡¡¡¡for(i = 0; i < sizeof(MMC_CID_INFO); i++) { ¡¡¡¡¡¡¡¡printf("%02x ", p[i]); ¡¡¡¡} ¡¡¡¡return 0; } ------------------------------------------------------------------------------------------- ¢£¢£ ·ë²Ì ¢£¢£ size = 20 ff 00 ff ff ff ff ff ff ff ff ff 00 ff ff ff ff ff ff 00 00 ------------------------------------------------------------------------------------------- ¼¡¤Ë¡¢¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¤ò¡úÍÞÀ©¤·¤¿¡ú¾ì¹ç¡£ [Linux PC & GCC 3.3.3¡¢¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È̵¤·] #include //CID(Card IDentification number)¡¡¥«¡¼¥ÉID¥ì¥¸¥¹¥¿¾ðÊó¹½Â¤ÂÎ typedef struct tag_MMC_CID_INFO { ¡¡¡¡unsigned char¡¡ ucMID;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// + 0, 1: ManufactureID(8bit) ¡¡¡¡unsigned short¡¡usOID;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// + 1, 2: OEM/Application ID(16bit) ¡¡¡¡unsigned char¡¡ ucPNM[6];¡¡¡¡¡¡¡¡¡¡ // + 3, 6: Product name(48bit) ¡¡¡¡unsigned char¡¡ ucPRV;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// + 9, 1: Product revision(8bit) ¡¡¡¡unsigned long¡¡ ulPSN;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +10, 4: Product serial number(32bit) ¡¡¡¡unsigned char¡¡ ucMDT;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +14, 1: Manufacturing date(8bit) ¡¡¡¡unsigned char¡¡ ucCRC;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +15, 1: 7-bit CRC checksum(7bit) } __attribute__((packed)) MMC_CID_INFO; // =16 MMC_CID_INFO cid = { ¡¡¡¡0xff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned char¡¡ ucMID;¡¡¡¡// + 0, 1: ManufactureID(8bit) ¡¡¡¡0xffff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned short¡¡usOID;¡¡¡¡// + 1, 2: OEM/Application ID(16bit) ¡¡¡¡{ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }, // unsigned char¡¡ ucPNM[6]; // + 3, 6: Product name(48bit) ¡¡¡¡0xff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned char¡¡ ucPRV;¡¡¡¡// + 9, 1: Product revision(8bit) ¡¡¡¡0xffffffff, ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡// unsigned long¡¡ ulPSN;¡¡¡¡// +10, 4: Product serial number(32bit) ¡¡¡¡0xff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned char¡¡ ucMDT;¡¡¡¡// +14, 1: Manufacturing date(8bit) ¡¡¡¡0xff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned char¡¡ ucCRC;¡¡¡¡// +15, 1: 7-bit CRC checksum(7bit) }; int main() { ¡¡¡¡int i; ¡¡¡¡unsigned char* p; ¡¡¡¡p = (unsigned char*)&cid; ¡¡¡¡printf("size = %d\n", sizeof(MMC_CID_INFO)); ¡¡¡¡for(i = 0; i < sizeof(MMC_CID_INFO); i++) { ¡¡¡¡¡¡¡¡printf("%02x ", p[i]); ¡¡¡¡} ¡¡¡¡return 0; } ------------------------------------------------------------------------------------------- ¢£¢£ ·ë²Ì ¢£¢£ size = 16 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ------------------------------------------------------------------------------------------- ´üÂÔÄ̤ê¤Ç¤¹¡£ ¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¤òÍÞÀ©¤¹¤ë¤³¤È¤ò¡¢¡È¹½Â¤ÂΥѥ寡ɤȸƤó¤À¤ê¤·¤Þ¤¹¡£ ¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£ ¢££Ð¡¿£Å£Ã£Å¤Î¾ì¹ç¡ÁÌäÂêȯÀ¸!!¢£ ¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£ ¾å½Ò¤ÎGCC¤ÎÎã¤Ï¡¢PC¾å¤ÇLinux(FedoraCore2)¤ò»È¤Ã¤Æ¹Ô¤¤¤Þ¤·¤¿¡£ ¤µ¤Æ¡¢P/ECE³«È¯´Ä¶­¤ÎC¥³¥ó¥Ñ¥¤¥é¤âGCC¤Ç¤¹¡£ ¤Á¤ç¤Ã¤È¥Ð¡¼¥¸¥ç¥ó¤¬¸Å¤¤¤±¤É¡¢PC¾å¤ÇLinux¤ò»È¤Ã¤¿¾ì¹ç¤ÈƱ¤¸·ë²Ì¤¬´üÂÔ¤µ¤ì¤Þ¤¹¡£ ¤Þ¤º¤Ï¡¢¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¤ò¡úÍÞÀ©¤·¤Ê¤¤¡ú¾ì¹ç¡£ [P/ECE & pcc33.exe¡¢¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¤¢¤ê] #include unsigned char vbuff[128 * 88]; //CID(Card IDentification number)¡¡¥«¡¼¥ÉID¥ì¥¸¥¹¥¿¾ðÊó¹½Â¤ÂÎ typedef struct tag_MMC_CID_INFO { ¡¡¡¡unsigned char¡¡ ucMID;¡¡¡¡¡¡// + 0, 1: ManufactureID(8bit) ¡¡¡¡unsigned short¡¡usOID;¡¡¡¡¡¡// + 2, 2: OEM/Application ID(16bit) ¡¡¡¡unsigned char¡¡ ucPNM[6];¡¡ // + 4, 6: Product name(48bit) ¡¡¡¡unsigned char¡¡ ucPRV;¡¡¡¡¡¡// +10, 1: Product revision(8bit) ¡¡¡¡unsigned long¡¡ ulPSN;¡¡¡¡¡¡// +12, 4: Product serial number(32bit) ¡¡¡¡unsigned char¡¡ ucMDT;¡¡¡¡¡¡// +16, 1: Manufacturing date(8bit) ¡¡¡¡unsigned char¡¡ ucCRC;¡¡¡¡¡¡// +17, 1: 7-bit CRC checksum(7bit) } MMC_CID_INFO;¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // =20 MMC_CID_INFO cid = { ¡¡¡¡0xff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned char¡¡ ucMID;¡¡¡¡// + 0, 1: ManufactureID(8bit) ¡¡¡¡0xffff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned short¡¡usOID;¡¡¡¡// + 2, 2: OEM/Application ID(16bit) ¡¡¡¡{ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }, // unsigned char¡¡ ucPNM[6]; // + 4, 6: Product name(48bit) ¡¡¡¡0xff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned char¡¡ ucPRV;¡¡¡¡// +10, 1: Product revision(8bit) ¡¡¡¡0xffffffff, ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡// unsigned long¡¡ ulPSN;¡¡¡¡// +12, 4: Product serial number(32bit) ¡¡¡¡0xff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned char¡¡ ucMDT;¡¡¡¡// +16, 1: Manufacturing date(8bit) ¡¡¡¡0xff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned char¡¡ ucCRC;¡¡¡¡// +17, 1: 7-bit CRC checksum(7bit) }; void pceAppInit() { ¡¡¡¡pceLCDSetBuffer(vbuff); ¡¡¡¡pceLCDDispStart(); } void pceAppProc(int count) { ¡¡¡¡int i; ¡¡¡¡unsigned char* p; ¡¡¡¡memset(vbuff, 0, sizeof vbuff); ¡¡¡¡pceFontSetType(2); ¡¡¡¡pceFontSetPos(0, 0); ¡¡¡¡p = (unsigned char*)&cid; ¡¡¡¡pceFontPrintf("size = %d\n", sizeof(MMC_CID_INFO)); ¡¡¡¡for(i = 0; i < sizeof(MMC_CID_INFO); i++) { ¡¡¡¡¡¡¡¡pceFontPrintf("%02x ", p[i]); ¡¡¡¡} ¡¡¡¡pceLCDTrans(); } void pceAppExit() { } ------------------------------------------------------------------------------------------- ¢£¢£ ·ë²Ì ¢£¢£ size = 20 ff 00 ff ff ff ff ff ff ff ff ff 00 ff ff ff ff ff ff 00 00 ------------------------------------------------------------------------------------------- ¤¢¤È¤Ï¡¢¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¤ò¡úÍÞÀ©¤·¤¿¡ú¾ì¹ç¤¬´üÂÔÄ̤ê¤Î·ë²Ì¤Ê¤é¤Ð¡¢Á´¤Æ£Ï£Ë¤Ê¤Î¤Ç¤¹¤¬¡¦¡¦¡¦ [P/ECE & pcc33.exe¡¢¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È̵¤·] #include unsigned char vbuff[128 * 88]; //CID(Card IDentification number)¡¡¥«¡¼¥ÉID¥ì¥¸¥¹¥¿¾ðÊó¹½Â¤ÂÎ typedef struct tag_MMC_CID_INFO { ¡¡¡¡unsigned char¡¡ ucMID;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// + 0, 1: ManufactureID(8bit) ¡¡¡¡unsigned short¡¡usOID;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// + 1, 2: OEM/Application ID(16bit) ¡¡¡¡unsigned char¡¡ ucPNM[6];¡¡¡¡¡¡¡¡¡¡ // + 3, 6: Product name(48bit) ¡¡¡¡unsigned char¡¡ ucPRV;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// + 9, 1: Product revision(8bit) ¡¡¡¡unsigned long¡¡ ulPSN;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +10, 4: Product serial number(32bit) ¡¡¡¡unsigned char¡¡ ucMDT;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +14, 1: Manufacturing date(8bit) ¡¡¡¡unsigned char¡¡ ucCRC;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +15, 1: 7-bit CRC checksum(7bit) } __attribute__((packed)) MMC_CID_INFO; // =16 MMC_CID_INFO cid = { ¡¡¡¡0xff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned char¡¡ ucMID;¡¡¡¡// + 0, 1: ManufactureID(8bit) ¡¡¡¡0xffff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned short¡¡usOID;¡¡¡¡// + 1, 2: OEM/Application ID(16bit) ¡¡¡¡{ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }, // unsigned char¡¡ ucPNM[6]; // + 3, 6: Product name(48bit) ¡¡¡¡0xff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned char¡¡ ucPRV;¡¡¡¡// + 9, 1: Product revision(8bit) ¡¡¡¡0xffffffff, ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡// unsigned long¡¡ ulPSN;¡¡¡¡// +10, 4: Product serial number(32bit) ¡¡¡¡0xff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned char¡¡ ucMDT;¡¡¡¡// +14, 1: Manufacturing date(8bit) ¡¡¡¡0xff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned char¡¡ ucCRC;¡¡¡¡// +15, 1: 7-bit CRC checksum(7bit) }; void pceAppInit() { ¡¡¡¡pceLCDSetBuffer(vbuff); ¡¡¡¡pceLCDDispStart(); } void pceAppProc(int count) { ¡¡¡¡int i; ¡¡¡¡unsigned char* p; ¡¡¡¡memset(vbuff, 0, sizeof vbuff); ¡¡¡¡pceFontSetType(2); ¡¡¡¡pceFontSetPos(0, 0); ¡¡¡¡p = (unsigned char*)&cid; ¡¡¡¡pceFontPrintf("size = %d\n", sizeof(MMC_CID_INFO)); ¡¡¡¡for(i = 0; i < sizeof(MMC_CID_INFO); i++) { ¡¡¡¡¡¡¡¡pceFontPrintf("%02x ", p[i]); ¡¡¡¡} ¡¡¡¡pceLCDTrans(); } void pceAppExit() { } ------------------------------------------------------------------------------------------- ¢£¢£ ·ë²Ì ¢£¢£ size = 16 ff 00 ff ff ff ff ff ff ff ff ff 00 ff ff ff ff ------------------------------------------------------------------------------------------- ÌäÂêȯÀ¸¤Ç¤¹!! ¹½Â¤ÂÎ¥µ¥¤¥º¤Ï³Î¤«¤Ë»ÅÍͤɤª¤ê¤Î16¥Ð¥¤¥È¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤Î¤Ç¤¹¤¬¡¢¤Ê¤¼¤«¥Ñ¥Ç¥£¥ó¥°¤¬»Ä¤Ã¤Æ¤¤¤Þ¤¹¡£ ¤ï¤«¤ê¤ä¤¹¤¤¤è¤¦¤Ë¡¢·ë²Ì½ÐÎϤòʤÓÂØ¤¨¤Æ¤ß¤Þ¤¹¡£ ------------------------------------------------------------------------------------------- ¢£¢£ ·ë²Ì ¢£¢£ size = 16 ff¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡// + 0, 1: ManufactureID(8bit) 00¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡// + 1, 1: ¤Ê¤¼¤«¥Ñ¥Ç¥£¥ó¥°¤¬»Ä¤Ã¤Æ¤¤¤ë¡© ff ff¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // + 2, 2: OEM/Application ID(16bit) ff ff ff ff ff ff¡¡ // + 4, 6: Product name(48bit) ff¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +10, 1: Product revision(8bit) 00¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +11, 1: ¤Ê¤¼¤«¥Ñ¥Ç¥£¥ó¥°¤¬»Ä¤Ã¤Æ¤¤¤ë¡© ff ff ff ff¡¡¡¡¡¡¡¡ // +12, 4: Product serial number(32bit) ??¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +??, 1: Manufacturing date(8bit) ¤Ï¤É¤³¤Ø¹Ô¤Ã¤¿¡© ??¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +??, 1: 7-bit CRC checksum(7bit) ¤Ï¤É¤³¤Ø¹Ô¤Ã¤¿¡© ------------------------------------------------------------------------------------------- ¤¤¤Ã¤¿¤¤¤É¤¦¤Ê¤Ã¤Æ¤¤¤ë¤Î¤Ç¤·¤ç¤¦¡© ¤³¤ÎÌäÂê¡¢P/ECE³«È¯´Ä¶­¤ÎC¥³¥ó¥Ñ¥¤¥é(gcc33.exe)¤È¥¢¥»¥ó¥Ö¥é(as33.exe)¤Î¶¨Ä´¤¬¾å¼ê¤¯¤¤¤Ã¤Æ¤¤¤Ê¤¤¤³¤È¤¬¸¶°ø¤Ê¤Î¤Ç¤¹¡£ ¾Ü¤·¤¯¤Ï¡¢¼¡²ó¤Ë¡£ (³¤­¤Þ¤¹¡Ä) * Sat May 16 00:00:00 JST 2004 Naoyuki Sawa - Zlib¤ò¼ÂÁõ¤·¤Æ¤ß¤ë#2 Á°²ó¤Ï¡¢¾Ê¥á¥â¥ê¤ÊZlibŸ³«¥ë¡¼¥Á¥ó¤ò¼ÂÁõ¤·¤Æ¤ß¤Þ¤·¤¿¡£ ¤Þ¤¿¡¢¤½¤Î¥ë¡¼¥Á¥ó¤ò»È¤Ã¤ÆZlib·Á¼°¤Î°µ½Ì¥Õ¥¡¥¤¥ë¤òŸ³«¤·¡¢²èÌÌɽ¼¨¤¹¤ë¥µ¥ó¥×¥ë¤òºîÀ®¤·¤Þ¤·¤¿¡£ ¤·¤«¤·¤Ê¤¬¤é¡¢Zlib·Á¼°¤Î°µ½Ì¥Õ¥¡¥¤¥ë¤Ï¡¢¤½¤Î¤Þ¤Þ¤Ç¤Ï¾¯¡¹»È¤¤¤Å¤é¤¤Ì̤¬¤¢¤ê¤Þ¤¹¡£ ¤¤¤Á¤Ð¤ó¤ÎÌäÂê¤Ï¡¢Zlib·Á¼°¤ËÂбþ¤·¤¿°µ½Ì¡¦Å¸³«¥Ä¡¼¥ë¤¬ÉáµÚ¤·¤Æ¤¤¤Ê¤¤¡¢¤È¤¤¤¦ÅÀ¤Ç¤¹¡£ Zlib¤Î»ÅÍͽñ¤Ë¤è¤ë¤È¡¢¼Â¤Ï¡ÖZlib·Á¼°¡×¤È¤Ï¡¢°µ½ÌÊýË¡¤Þ¤Ç´Þ¤á¤¿»ÅÍͤǤϤʤ¤¤½¤¦¤Ç¤¹¡£ °µ½ÌÊýË¡¤ò¼¨¤·¤¿¥Ø¥Ã¥À¤È¡¢°µ½Ì¥Ç¡¼¥¿ËÜÂΡ¢¤½¤·¤Æ¸¡ººÍÑ¥³¡¼¥É¤ÎʤӤò´ûÄꤷ¤Æ¤¤¤ë¤À¤±¤Î»ÅÍͤǤ¹¡£ ¿Þ¤Ç¼¨¤¹¤È¡¢¤³¤ó¤Ê´¶¤¸¤Ç¤¹¡£ ¡Ü¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡Ü ¡Ã£Ú£ì£é£â¥Ø¥Ã¥À¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã¢«Zlib»ÅÍÍ ¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü ¡Ã£Ú£ì£é£â¥Ø¥Ã¥À¤Ë½ñ¤¤¤Æ¤¢¤ë°µ½ÌÊýË¡¤ò»È¤Ã¤¿¡¢°µ½Ì¥Ç¡¼¥¿¡Ã ¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü ¡Ã¸¡ººÍÑ¥³¡¼¥É¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã¢«Zlib»ÅÍÍ ¡Ü¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡Ü Windows WAV¥Õ¥¡¥¤¥ë·Á¼°¤¬¡¢PCM·Á¼°¡¦ADPCM·Á¼°¡¦MP3·Á¼°¤Ê¤É¡¢¤¤¤í¤¤¤í¤ÊÆâÉô·Á¼°¤ò»ý¤Ã¤Æ¤¤¤ë¤Î¤Ë»÷¤Æ¤¤¤Þ¤¹¡£ ¤µ¤Æ¡¢¸½ºß¤Î¤È¤³¤íZlib·Á¼°¤ÇÍøÍѲÄǽ¤Ê°µ½ÌÊýË¡¤È¤·¤Æ¤Ï¡¢¡ÖDeflate°µ½Ì·Á¼°¡×¤À¤±¤¬µ¬Äꤵ¤ì¤Æ¤¤¤Þ¤¹¡£ °ìÈ̤ËZlib·Á¼°¤È¸Æ¤Ð¤ì¤ë¤Î¤Ï¡¢¸·Ì©¤Ë¤Ï¡ÖDeflate°µ½Ì·Á¼°¤Î°µ½Ì¥Ç¡¼¥¿¤ò»ý¤Ã¤¿¡¢Zlib·Á¼°¤Î¥Õ¥¡¥¤¥ë¡×¤Î¤³¤È¤À¤Ã¤¿¤Î¤Ç¤¹¡£ ¤â¤Á¤í¤ó¡¢Á°²ó¼ÂÁõ¤·¤¿ZlibŸ³«¥ë¡¼¥Á¥ó¤â¡¢Deflate°µ½Ì·Á¼°¤Ë´ð¤¯¤â¤Î¤Ç¤¹¡£ Àè¤Û¤É¤Î¿Þ¤ò½ñ¤­Ä¾¤¹¤È¡¢¼¡¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£ ¡Ü¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡Ü ¡Ã£Ú£ì£é£â¥Ø¥Ã¥À¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã¢«Zlib»ÅÍÍ ¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü ¡Ã£Ä£å£æ£ì£á£ô£å·Á¼°¤Î°µ½Ì¥Ç¡¼¥¿¡Ã ¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü ¡Ã¸¡ººÍÑ¥³¡¼¥É¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã¢«Zlib»ÅÍÍ ¡Ü¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡Ü Zlib·Á¼°¤Î°µ½Ì¥Õ¥¡¥¤¥ë¤ò°·¤¦¤Ë¤Ï¡¢°µ½Ì¡¦Å¸³«¥Ä¡¼¥ë¤¬Zlib·Á¼°¤Î¥Ø¥Ã¥À¤ä¸¡ººÍÑ¥³¡¼¥É¤òǧ¼±¤Ç¤­¤Ê¤±¤ì¤Ð¤¤¤±¤Þ¤»¤ó¡£ Ê£¿ô¤Î·Á¼°¤ËÂбþ¤·¤¿°µ½Ì¡¦Å¸³«¥Ä¡¼¥ë¤ÏÍÍ¡¹¤¢¤ê¤Þ¤¹¤¬¡¢Zlib·Á¼°¤ò°·¤¦¤³¤È¤Î¤Ç¤­¤ë¥Ä¡¼¥ë¤Ï¸«¤Ä¤±¤é¤ì¤Þ¤»¤ó¤Ç¤·¤¿¡£ Ëͤϡ¢¤³¤Á¤é¤Î¥µ¥ó¥×¥ë¥×¥í¥°¥é¥à¤ò¤½¤Î¤Þ¤ÞZlib°µ½Ì¡¦Å¸³«¥Ä¡¼¥ë¤È¤·¤Æ»È¤ï¤»¤ÆÄº¤¤¤Æ¤¤¤Þ¤¹¡£ ¡ÖHaruhiko Okumura's Home Page(http://www.matsusaka-u.ac.jp/~okumura/)¡×¤µ¤ó¤Î¥µ¥¤¥È¤Î¡¢ ¡Özlib ÆþÌç(http://www.matsusaka-u.ac.jp/~okumura/compression/zlib.html)¡×¤Î¥Ú¡¼¥¸¤Î¡¢ ¡Öcomptest.c(http://www.matsusaka-u.ac.jp/~okumura/compression/comptest.c)¡×¡£ ¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤¿¤á¤Ë¤Ï¡¢¥ª¥ê¥¸¥Ê¥ë¤ÎZlib(http://www.gzip.org/zlib/)¤¬É¬ÍפǤ¹¡£ ¤µ¤Æ¡¢Zlib·Á¼°¤è¤ê¤â°µÅÝŪ¤Ë¥á¥¸¥ã¡¼¤Ê°µ½Ì¥Õ¥¡¥¤¥ë·Á¼°¤È¤·¤Æ¡¢¡ÖZip·Á¼°¡×¤¬¤¢¤ê¤Þ¤¹¡£ Zip·Á¼°¤â¡¢Zlib·Á¼°¤ÈƱ¤¸¤¯¡¢°µ½ÌÊýË¡¤Þ¤Ç¤òÄê¤á¤¿»ÅÍͤǤϤ¢¤ê¤Þ¤»¤ó¡£ ÍÍ¡¹¤Ê°µ½ÌÊýË¡¤ò»È¤Ã¤¿°µ½Ì¥Ç¡¼¥¿¤Î³ÊǼÊýË¡¤ä¡¢¥Õ¥¡¥¤¥ë¾ðÊó¤òÉղ乤ëÊýË¡Åù¤òÄê¤á¤¿»ÅÍͤǤ¹¡£ Zip·Á¼°¤¬°·¤¦¡ÈÍÍ¡¹¤Ê°µ½ÌÊýË¡¡É¤ÎÃæ¤Ç¤âÆÃ¤ËÎɤ¯ÍøÍѤµ¤ì¤ë¤Î¤¬¡¢Á°½Ð¤Î¡ÖDeflate°µ½Ì·Á¼°¡×¤Ç¤¹¡£ Ʊ¤¸Deflate°µ½Ì·Á¼°¤ò»È¤Ã¤¿Zlib·Á¼°¤ÈZip·Á¼°¤Ï¡¢¥¬¥ï¤¬°ã¤¦¤À¤±¤ÇËܼÁ¤Ï¤Û¤È¤ó¤ÉƱ¤¸¡¢¤È¸À¤¨¤Þ¤¹¡£ Zlib·Á¼°¤È°ã¤Ã¤Æ¡¢Zip·Á¼°¤ÏÊ£¿ô¤Î¥Õ¥¡¥¤¥ë¤ò¤Þ¤È¤á¤Æ³ÊǼ¤Ç¤­¤ë¤Î¤Ç¡¢¿Þ¤Ç¼¨¤¹¤È¤³¤ó¤Ê´¶¤¸¤Ë¤Ê¤ê¤Þ¤¹¡£ ¡Ü¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡Ü ¡Ã£Ú£é£ð¥Õ¥¡¥¤¥ë¥Ø¥Ã¥À£±¡¢¸¡ººÍÑ¥³¡¼¥É¤â´Þ¤à¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã¢«Zip»ÅÍÍ ¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü ¡Ã£Ú£é£ð¥Õ¥¡¥¤¥ë¥Ø¥Ã¥À£±¤Ë½ñ¤¤¤Æ¤¢¤ë°µ½ÌÊýË¡¤ò»È¤Ã¤¿¡¢°µ½Ì¥Ç¡¼¥¿£±¡Ã ¡Ü¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡Ü ¡Ã£Ú£é£ð¥Õ¥¡¥¤¥ë¥Ø¥Ã¥À£²¡¢¸¡ººÍÑ¥³¡¼¥É¤â´Þ¤à¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã¢«Zip»ÅÍÍ ¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü ¡Ã£Ú£é£ð¥Õ¥¡¥¤¥ë¥Ø¥Ã¥À£²¤Ë½ñ¤¤¤Æ¤¢¤ë°µ½ÌÊýË¡¤ò»È¤Ã¤¿¡¢°µ½Ì¥Ç¡¼¥¿£²¡Ã ¡Ü¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡Ü ¡Ã¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¦¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã ¡Ã¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¦¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã ¡Ã¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¦¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã ¡Ü¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡Ü ¡Ã£Ú£é£ð¥Õ¥¡¥¤¥ë¥Ø¥Ã¥À£Î¡¢¸¡ººÍÑ¥³¡¼¥É¤â´Þ¤à¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã¢«Zip»ÅÍÍ ¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü ¡Ã£Ú£é£ð¥Õ¥¡¥¤¥ë¥Ø¥Ã¥À£Î¤Ë½ñ¤¤¤Æ¤¢¤ë°µ½ÌÊýË¡¤ò»È¤Ã¤¿¡¢°µ½Ì¥Ç¡¼¥¿£Î¡Ã ¡Ü¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡Ü ¡Ã¤½¤Î¾¤Î£Ú£é£ð¥Õ¥¡¥¤¥ë¾ðÊó¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã¢«Zip»ÅÍÍ ¡Ü¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡Ü ¤¢¤ëZip¥Õ¥¡¥¤¥ëÆâ¤Î°µ½Ì¥Ç¡¼¥¿¤¬¡¢Á´¤ÆDeflate°µ½Ì·Á¼°¤òÍøÍѤ·¤Æ¤¤¤¿¤Ê¤é¤Ð¡¢Àè¤Û¤É¤Î¿Þ¤Ï¼¡¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£ ¡Ü¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡Ü ¡Ã£Ú£é£ð¥Õ¥¡¥¤¥ë¥Ø¥Ã¥À£±¡¢¸¡ººÍÑ¥³¡¼¥É¤â´Þ¤à¡Ã¢«Zip»ÅÍÍ ¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü ¡Ã£Ä£å£æ£ì£á£ô£å·Á¼°¤Î°µ½Ì¥Ç¡¼¥¿£±¡¡¡¡¡¡¡¡¡¡¡Ã ¡Ü¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡Ü ¡Ã£Ú£é£ð¥Õ¥¡¥¤¥ë¥Ø¥Ã¥À£²¡¢¸¡ººÍÑ¥³¡¼¥É¤â´Þ¤à¡Ã¢«Zip»ÅÍÍ ¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü ¡Ã£Ä£å£æ£ì£á£ô£å·Á¼°¤Î°µ½Ì¥Ç¡¼¥¿£²¡¡¡¡¡¡¡¡¡¡¡Ã ¡Ü¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡Ü ¡Ã¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¦¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã ¡Ã¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¦¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã ¡Ü¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡Ü ¡Ã£Ú£é£ð¥Õ¥¡¥¤¥ë¥Ø¥Ã¥À£Î¡¢¸¡ººÍÑ¥³¡¼¥É¤â´Þ¤à¡Ã¢«Zip»ÅÍÍ ¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü ¡Ã£Ä£å£æ£ì£á£ô£å·Á¼°¤Î°µ½Ì¥Ç¡¼¥¿£Î¡¡¡¡¡¡¡¡¡¡¡Ã ¡Ü¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡Ü ¡Ã¤½¤Î¾¤Î£Ú£é£ð¥Õ¥¡¥¤¥ë¾ðÊó¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã¢«Zip»ÅÍÍ ¡Ü¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡Ü Zip¥Õ¥¡¥¤¥ë¤Ë³ÊǼ¤¹¤ë°µ½Ì¥Ç¡¼¥¿¤Î·Á¼°¤È¤·¤Æ¤Ï¡¢Deflate°µ½Ì·Á¼°°Ê³°¤Ë¤â¤¤¤¯¤Ä¤«¤Î°µ½ÌÊýË¡¤¬µ¬Äꤵ¤ì¤Æ¤¤¤Þ¤¹¡£ ¤·¤«¤·¡¢¼ê¸µ¤Ë¤¢¤ë¿¤¯¤ÎZip¥Õ¥¡¥¤¥ë¤òÄ´¤Ù¤Æ¤ß¤¿¤È¤³¤í¡¢¼ÂºÝ¤Ë»È¤ï¤ì¤Æ¤¤¤¿°µ½ÌÊýË¡¤ÏÆó¼ïÎà¤À¤±¤Ç¤·¤¿¡£ ¡¦Ìµ°µ½Ì ¡¦Deflate°µ½Ì·Á¼° ½¾¤Ã¤Æ¡¢¤³¤ì¤éÆó¼ïÎà¤Î°µ½Ì·Á¼°¤ËÂбþ¤¹¤ë¤À¤±¤Ç¡¢¼ÂÍѾå¤Ï½¼Ê¬¤ÊZipŸ³«¥ë¡¼¥Á¥ó¤È¤Ê¤ë¤Ï¤º¤Ç¤¹¡£ ̵°µ½Ì·Á¼°¤Ë¤Ä¤¤¤Æ¤Ï¡¢³ÊǼ¤µ¤ì¤Æ¤¤¤ë¥Ç¡¼¥¿¤ò¤½¤Î¤Þ¤Þ¥³¥Ô¡¼¤¹¤ë¤À¤±¤Ç¤¹¡£ Deflate°µ½Ì·Á¼°¤Ë¤Ä¤¤¤Æ¤Ï¡¢Á°²óºîÀ®¤·¤¿ZlibŸ³«¥ë¡¼¥Á¥ó¤ÎÆâÉô½èÍý¤¬Î®ÍѤǤ­¤½¤¦¤Ç¤¹¡£ Zlib¥Ø¥Ã¥À¤È¸¡ºº¥³¡¼¥É¤ò°·¤Ã¤Æ¤¤¤ëÉôʬ¤Î¥×¥í¥°¥é¥à¤ò¾¯¤·½¤Àµ¤¹¤ë¤À¤±¤Ç¡¢ZipŸ³«¥ë¡¼¥Á¥ó¤òºîÀ®¤Ç¤­¤Þ¤·¤¿¡£ ZipŸ³«¥ë¡¼¥Á¥ó¤òÍøÍѤ·¤¿¥µ¥ó¥×¥ë¤Ï¤³¤Á¤é¡£ P/ECEÍѤÈWindowsÍѤΥƥ¹¥È¥×¥í¥°¥é¥à¤òÍѰդ·¤Þ¤·¤¿¡£ P/ECEÍѥƥ¹¥È¥×¥í¥°¥é¥à¤Ï¡¢Zip¥Õ¥¡¥¤¥ë¤Ë³ÊǼ¤µ¤ì¤¿²èÁü¥Õ¥¡¥¤¥ë¤ò¡¢¼¡¡¹¼«Æ°Åª¤Ëɽ¼¨¤·¤Þ¤¹¡£ Windows¥Æ¥¹¥È¥×¥í¥°¥é¥àÍѤϡ¢Zip¥Õ¥¡¥¤¥ë¤Ë³ÊǼ¤µ¤ì¤¿¥Õ¥¡¥¤¥ë°ìÍ÷¤«¤é¡¢ÁªÂò¤µ¤ì¤¿²èÁü¤òŸ³«¤·¤ÆÉ½¼¨¤·¤Þ¤¹¡£ http://www.piece-me.org/archive/pzltest-20040316-piece.zip http://www.piece-me.org/archive/pzltest-20040316-win32.zip Á°²ó¤Èº£²ó¤È¤Ç¡¢Zlib/ZipŸ³«¥ë¡¼¥Á¥ó¤ò¼ÂÁõ¤·¤Æ¤ß¤Þ¤·¤¿¡£ Æóǯ¶á¤¯¡¢¤è¤¯¤ï¤«¤é¤Ê¤¤¤Þ¤Þ¤Ë»È¤Ã¤Æ¤¤¤¿Zlib¥é¥¤¥Ö¥é¥ê¤Ç¤·¤¿¤¬¡¢º£²ó¤Î¥×¥í¥°¥é¥ß¥ó¥°¤Ç¤ä¤Ã¤ÈÍý²ò¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤·¤¿¡£ Zlib/Zip·Á¼°¤Î»ÅÁȤߤòÍý²ò¤¹¤ë¤¿¤á¤Ë¡¢°Ê²¼¤Îµ­»ö¤¬¤È¤Æ¤â»²¹Í¤Ë¤Ê¤ê¤Þ¤·¤¿¡£ ¤ªÎé¤ò¿½¤·¾å¤²¤ë¤È¤È¤â¤Ë¡¢¤´¾Ò²ð¤µ¤»¤ÆÄº¤­¤Þ¤¹¡£ ¡ÖLabVIEW¾ðÊó¸ò´¹¤Î¥Ú¡¼¥¸(http://www.asahi-net.or.jp/~WR9K-OOHS/)¡×¤µ¤ó¤Î¥µ¥¤¥È¤Î¡¢ ¡Ö¥Ê¥¤¥¸¥§¥ë»³¸ý¥³¡¼¥Ê¡¼(http://www.asahi-net.or.jp/~WR9K-OOHS/Pages/Nigel's/nigel.html)¡×¤Î¥Ú¡¼¥¸¡£ Zlib¤Î»ÅÍͽñ¤Î¡¢¤¤¤Á¤Ð¤ó½ÅÍפÊÉôʬ¤Ë´Ø¤¹¤ëÏÂÌõ¤¬¤¢¤ê¤Þ¤¹¡£ ¤Þ¤¿¡¢°µ½Ìµ»Ë¡¤Î¾ÜºÙ¤Ë¤Ä¤¤¤Æ¡¢¤ï¤«¤ê¤ä¤¹¤¯ÏÀ¤¸¤é¤ì¤Æ¤¤¤Þ¤¹¡£ °µ½Ìµ»Ë¡°Ê³°¤Ë¤â¡¢¶½Ì£¿¼¤¤µ­»ö¤¬¤¿¤¯¤µ¤ó¤¢¤ê¤Þ¤¹¡£ ¡Ö£Ë£Ï£Î£Å's £Ä¡ÝStation(http://kone.vis.ne.jp/)¡×¤µ¤ó¤Î¥µ¥¤¥È¤Î¡¢ ¡Öµ¤¤Þ¤°¤ì¤Êµº¤ì¸À(http://kone.vis.ne.jp/diary/)¡×¤Î¥Ú¡¼¥¸¡£ CRC¤Î·×»»ÊýË¡¤¬¡¢½ç¤òÄɤäƲòÀ⤵¤ì¤Æ¤¤¤Þ¤¹¡£ Zip·Á¼°¤Ç»È¤ï¤ì¤Æ¤¤¤ëCRC-32¤Î·×»»ÊýË¡¡¢Â¿¤¯¤Î¼ÂÁõÎã¤Ï¥Æ¡¼¥Ö¥ë¤òÍøÍѤ·¤Æ¤¤¤Þ¤¹¤¬¡¢¤½¤Î¥Æ¡¼¥Ö¥ë¤Ï¤É¤³¤«¤é½Ð¤Æ¤¯¤ë¤Î¤«¡© ¤³¤Á¤é¤Î¥Ú¡¼¥¸¤òÆÉ¤ó¤Çµ¿Ì䤬²ò·è¤·¤Þ¤·¤¿¡£ º£²ó¤ÎºîÀ®¤·¤¿ZipŸ³«¥ë¡¼¥Á¥ó¤Ï¡¢¥Æ¡¼¥Ö¥ë¤òÍøÍѤ·¤Ê¤¤´ðËÜŪ¤ÊÊýË¡¤Ç¼ÂÁõ¤·¤Æ¤ß¤Þ¤·¤¿¡£ * Sat May 13 16:00:00 JST 2004 Naoyuki Sawa - Zlib¤ò¼ÂÁõ¤·¤Æ¤ß¤ë#1 2002ǯ6·î14Æü¡Á17Æü¤ÎP/ECE¸¦µæµ­Ï¿¡Özlib¤ò»È¤¦#1¡Á3¡×¤Ë¤Æ¡¢P/ECEÍÑ¥×¥í¥°¥é¥à¤ÇZlib¤ò»È¤¦ÊýË¡¤òÄ´¤Ù¤Þ¤·¤¿¡£ ¤½¤Î¸å¡¢¤¤¤¯¤Ä¤«¤Î¼«ºî¥×¥í¥°¥é¥à¤Ç¡¢¼ÂºÝ¤ËZlib¤òÍøÍѤ·¤Þ¤·¤¿¡£ ¤½¤ì¤é¤Ï°ì±þ¾å¼ê¤¯Æ°ºî¤·¤¿¤Î¤Ç¤¹¤¬¡¢P/ECEÍÑ¥×¥í¥°¥é¥à¤Ç¤ÏZlib¤¬»È¤¤¤Å¤é¤¤¤È´¶¤¸¤ëÅÀ¤â¤¤¤¯¤Ä¤«¤¢¤ê¤Þ¤·¤¿¡£ ¤¤¤Á¤Ð¤ó¤ÎÌäÂê¤Ï¡¢¡Özlib¤ò»È¤¦#1¡Á3¡×¤Ç¤â½ñ¤¤¤¿¤è¤¦¤Ë¡¢¥á¥â¥ê¾ÃÈñÎ̤¬Â¿¤¹¤®¤ëÅÀ¤Ç¤¹¡£ °µ½Ì¥Ç¡¼¥¿¤ò³ÊǼ¤·¤Æ¤ª¤¯ÆþÎϥХåե¡¡¢Å¸³«¥Ç¡¼¥¿¤òºîÀ®¤¹¤ë¤¿¤á¤Î½ÐÎϥХåե¡¤Î¾¤Ë¡¢Ìó35¥­¥í¥Ð¥¤¥È¤Îºî¶ÈÍÑ¥á¥â¥ê¤¬É¬ÍפǤ¹¡£ P/ECEÍÑ¥×¥í¥°¥é¥à¤Ç¤Ï¡¢¼ÂºÝ¤ËÍøÍѤ¹¤ë°µ½Ì¥Ç¡¼¥¿¤äŸ³«¥Ç¡¼¥¿¤Ï¤µ¤Û¤ÉÂ礭¤¯¤¢¤ê¤Þ¤»¤ó¡£¤¿¤¤¤Æ¤¤¿ô¥­¥í¥Ð¥¤¥ÈÄøÅ٤Ǥ¹¡£ ¤½¤ì¤è¤ê¤â¡¢ZlibÆâÉô¤Î°ì»þŪ¤Êºî¶ÈÍÑ¥á¥â¥ê¤Î¤¿¤á¤Ë¡¢35¥­¥í¥Ð¥¤¥È¤âɬÍפʤΤ¬¤«¤Ê¤ê¸·¤·¤¤¤È¤³¤í¤Ç¤¹¡£ Zlib¤¬ºî¶ÈÍÑ¥á¥â¥ê¤ò³ÎÊݤǤ­¤Ê¤¤¤È¡¢Å¸³«½èÍý¤¬¼ºÇÔ¤·¤Æ¤·¤Þ¤¤¤Þ¤¹¡£ ¤½¤Î¸å¡ÖP/ECE HAND BOOK¡×¤Ë¡¢P/ECE¥«¡¼¥Í¥ë¥½¡¼¥¹¤ÎŸ³«¥ë¡¼¥Á¥ó¤ò»È¤¦ÊýË¡¤¬·ÇºÜ¤µ¤ì¤Þ¤·¤¿¡£ P/ECE¥«¡¼¥Í¥ë¥½¡¼¥¹¤ÎŸ³«¥ë¡¼¥Á¥ó¤âƱ¤¸Zlib¤Ç¤¹¤¬¡¢P/ECE¤Î¥á¥â¥ê¹½À®¤ËÆÃ²½¤·¤Æ¤¤¤Æ¡¢¤è¤ê¾¯¤Ê¤¤¥á¥â¥ê¤ÇŸ³«½èÍý¤¬²Äǽ¤Ç¤¹¡£ ¤Þ¤¿¡¢¡ÖP/ECE HAND BOOK¡×¤ÎÊýË¡¤ò¸µ¤Ë¤·¤Æ¡¢Ê£¿ô¤Î°µ½Ì¥Õ¥¡¥¤¥ë¤ò¤Þ¤È¤á¤Æ°·¤¦ÊýË¡¤¬¡¢ ¡Ö¤Æ¤È¤é¡ú¤Ý¤Ã¤È(http://www.zurachu.net/)¡×¤µ¤ó¤Î¥µ¥¤¥È¤Ç¾Ò²ð(http://www.zurachu.net/piece/tips/ppack.html)¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ Zlib¤Ë¤³¤À¤ï¤é¤Ê¤±¤ì¤Ð¡¢¤è¤ê¹â®¤Ê°µ½Ì¡¦Å¸³«ÊýË¡¤¬¡Öp/ware(http://park17.wakwak.com/~hitode/piece/index.html)¡×¤µ¤ó¤Î¥µ¥¤¥È¤Ç ¾Ò²ð(http://park17.wakwak.com/~hitode/piece/index.html#plz)¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ ¤³¤ì¤é¤ÎÊýË¡¤ò»È¤ï¤»¤Æ¤â¤é¤¨¤Ð¼ÂÍѾå¤ÏÌäÂê²ò·è¤Ê¤Î¤Ç¤¹¤¬¡¢¤â¤¦¾¯¤·¤À¤±ÁǤÎZlib¤Ë¤³¤À¤ï¤Ã¤Æ¤ß¤¿¤¤¤È»×¤¤¤Þ¤¹¡£ ¤½¤â¤½¤âËͤ¬Zlib¤ÎÆâÉôưºî¤òÍý²ò¤·¤Ê¤¤¤Þ¤Þ»È¤Ã¤Æ¤¤¤¿¤Î¤¬ÌäÂê¤Ê¤Î¤Ç¡¢¤³¤Îµ¡²ñ¤ËÊÙ¶¯¤·¤Æ¤ß¤è¤¦¤È¤¤¤¦¤ï¤±¤Ç¤¹¡£ ¤µ¤Æ¡¢¤Ê¤¼Zlib¤Ï¤³¤ó¤Ê¤ËÂ礭¤Êºî¶ÈÍÑ¥á¥â¥ê¤òɬÍפȤ¹¤ë¤Î¤Ç¤·¤ç¤¦¤«¡© Zlib¤Î°µ½Ì¡¦Å¸³«¥¢¥ë¥´¥ê¥º¥à¤Ï¡¢¡Ö¥Ï¥Õ¥Þ¥óÉ乿²½¡×¤È¡Ö¥¹¥é¥¤¥É¼­½ñ°µ½Ì¡×¤Ë´ð¤Å¤¤¤Æ¤¤¤Þ¤¹¡£ ¥Ï¥Õ¥Þ¥óÉ乿²½¤Ï¡¢ÉÑÈˤ˸½¤ì¤ëÃͤ˾®¤µ¤ÊÉ乿¡¢µ©¤Ë¸½¤ì¤ëÃͤËÂ礭¤ÊÉ乿¤ò³ä¤ê¿¶¤Ã¤Æ¡¢Á´ÂΤΥµ¥¤¥º¤ò¾®¤µ¤¯¤¹¤ëÊýË¡¤Ç¤¹¡£ ¥Ï¥Õ¥Þ¥óÉ乿²½¤ÎŸ³«½èÍý¤Ë¤Ï¡¢¡Ö¥Ï¥Õ¥Þ¥óÌڡפȤ¤¤¦¥Ç¡¼¥¿¹½Â¤¤¬ÍøÍѤµ¤ì¤Þ¤¹¡£ ¡Ö¥Ï¥Õ¥Þ¥óÌڡפϡ¢¥Ï¥Õ¥Þ¥óÉ乿¤«¤é¸µ¤ÎÃͤËÊÑ´¹¤¹¤ë¤¿¤á¤Î¼­½ñ¤È¤Ê¤ê¤Þ¤¹¡£ ¡Ö¥Ï¥Õ¥Þ¥óÌڡפòºîÀ®¤¹¤ë¤¿¤á¤Ë¡¢¤¤¤¯¤é¤«¤Î¥á¥â¥ê¤¬É¬ÍפǤ¹¡£ ¤³¤ì¤¬¡¢Zlib¤¬Â礭¤Êºî¶ÈÍÑ¥á¥â¥ê¤òɬÍפȤ¹¤ëÍýͳ¤Î°ì¤ÄÌܤǤ¹¡£ ¤·¤«¤·¼ÂºÝ¤Ë¤Ï¡¢Zlib¤ÇÍøÍѤµ¤ì¤ë¡Ö¥Ï¥Õ¥Þ¥óÌڡפϤµ¤Û¤ÉÂ礭¤Ê¥Ç¡¼¥¿¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£¤»¤¤¤¼¤¤¿ô¥­¥í¥Ð¥¤¥ÈÄøÅ٤Ǥ¹¡£ ¤è¤êÂ礭¤Ê¥á¥â¥ê¤òɬÍפȤ·¤Æ¤¤¤ë¤Î¤Ï¡¢¥¹¥é¥¤¥É¼­½ñ°µ½Ì¥¢¥ë¥´¥ê¥º¥à¤ÇÍøÍѤµ¤ì¤ë¡Ö¥¹¥é¥¤¥ÉÁë¡×¥Ç¡¼¥¿¹½Â¤¤Ç¤¹¡£ ¥¹¥é¥¤¥É¼­½ñ°µ½Ì¤È¤Ï¡¢Æ±¤¸¥Ñ¥¿¡¼¥ó¤Î¥Ç¡¼¥¿Ê¤Ӥòµ÷Î¥¤ÈŤµ¤ËÃÖ¤­´¹¤¨¤Æ¡¢Á´ÂΤΥµ¥¤¥º¤ò¾®¤µ¤¯¤¹¤ëÊýË¡¤Ç¤¹¡£ Î㤨¤Ð¡Ö012345678901234¡×¤È¤¤¤¦¥Ç¡¼¥¿Ê¤Ӥ¬¤¢¤Ã¤¿¾ì¹ç¡¢¼¡¤Î¤è¤¦¤Ê´¶¤¸¤Ç°µ½Ì¤·¤Þ¤¹¡£ ¡Ö0123456789¡¢10ʸ»úÁ°¤«¤é¡¢5ʸ»ú·«¤êÊÖ¤·¡× ¤È¤³¤í¤Ç¡¢Zlib¤Î¼ÂÁõ¤ÏÆþÎϤâ½ÐÎϤâ´ðËÜŪ¤Ë¥¹¥È¥ê¡¼¥ß¥ó¥°¤Ç¤¹¡£ ¤Ä¤Þ¤ê¡¢°ìÅÙÆÉ¤ß¹þ¤ó¤À¥Ç¡¼¥¿¤ÏºÆ¤ÓÆÉ¤ß¹þ¤á¤Ê¤¤¡¢°ìÅÙ½ÐÎϤ·¤¿¥Ç¡¼¥¿¤Ï¤â¤¦Ëº¤ì¤¿¡¢¤È¤¤¤¦¤ï¤±¤Ç¤¹¡£ ¤·¤«¤·¡¢10ʸ»úÁ°¤Î¥Ç¡¼¥¿¤ò¤â¤¦°ìÅÙ½ÐÎϤ¹¤ë¤¿¤á¤Ë¤Ï¡¢10ʸ»úÁ°¤Ë½ÐÎϤ·¤¿¥Ç¡¼¥¿¤ò³Ð¤¨¤Æ¤ª¤«¤Ê¤±¤ì¤Ð¤¤¤±¤Þ¤»¤ó¡£ ¤½¤³¤Ç¡¢¤¤¤¯¤é¤«¤Î½ÐÎϥХåե¡¤òÍѰդ·¡¢²áµî²¿Ê¸»úʬ¤«¤Î½ÐÎÏÍúÎò¤òµ­²±¤·¤Æ¤ª¤­¤Þ¤¹¡£ ¤³¤ì¤ò¡Ö¥¹¥é¥¤¥ÉÁë¡×¤È¸Æ¤Ó¤Þ¤¹¡£ Zlib¤Î»ÅÍͤǤϡ¢ºÇÂç¤Ç¡Ö3Ëü2Àéʸ»úÁ°¤«¤é¡¢258ʸ»ú·«¤êÊÖ¤·¡×¤È¤¤¤¦»Ø¼¨¤¬Í­¤êÆÀ¤ë¤³¤È¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£ ½¾¤Ã¤Æ¡¢²áµî3Ëü2Àéʸ»úʬ¤Î½ÐÎÏÍúÎò¤òµ­²±¤·¤Æ¤ª¤«¤Ê¤±¤ì¤Ð¤¤¤±¤Þ¤»¤ó¡£ ¤Ä¤Þ¤ê¡¢32¥­¥í¥Ð¥¤¥È¤Î¥¹¥é¥¤¥ÉÁ뤬ɬÍפȤʤê¤Þ¤¹¡£ ¤³¤ì¤Çµ¿Ì䤬²ò·è¤·¤Þ¤·¤¿¡£35¥­¥í¥Ð¥¤¥È¤Îºî¶ÈÍÑ¥á¥â¥ê¤ÎÂçÉôʬ¤Ï¡¢¥¹¥é¥¤¥ÉÁë¤Ë»È¤ï¤ì¤Æ¤¤¤¿¤Î¤Ç¤¹¡£ ¤µ¤Æ¡¢¤µ¤­¤Û¤É¡ÈZlib¤Î¼ÂÁõ¤ÏÆþÎϤâ½ÐÎϤâ´ðËÜŪ¤Ë¥¹¥È¥ê¡¼¥ß¥ó¥°¡É¤À¤«¤é¥¹¥é¥¤¥ÉÁ뤬ɬÍס¢¤È½ñ¤­¤Þ¤·¤¿¡£ ¤è¤ê¸ÂÄꤹ¤ë¤È¡¢¡È½ÐÎϤ¬¥¹¥È¥ê¡¼¥ß¥ó¥°¤À¤«¤é¡É½ÐÎÏÍúÎò¤òµ­²±¤·¤Æ¤ª¤¯¤¿¤á¤Ë¥¹¥é¥¤¥ÉÁ뤬ɬÍפȤʤê¤Þ¤¹¡£ ¤Ç¤Ï¡¢½ÐÎϤò¥¹¥È¥ê¡¼¥ß¥ó¥°¤Ë¤¹¤ëɬÍפϤ¢¤ë¤Î¤Ç¤·¤ç¤¦¤«¡© Ëͤ¬ºî¤Ã¤¿P/ECE¡õZlib»ÈÍÑ¤Î¥×¥í¥°¥é¥à¤Ç¡¢½ÐÎÏ¥¹¥È¥ê¡¼¥ß¥ó¥°¤ò³èÍѤ·¤¿¥±¡¼¥¹¤Ï¤¿¤Ã¤¿°ìÅÙ¤À¤±¤Ç¤·¤¿¡£ ¡ÖVGM¥×¥ì¥¤¥ä¡¼¡×¤Ç¤¹¡£ VGM¥×¥ì¥¤¥ä¡¼¤Ç¤Ï¡¢VGZ·Á¼°¤Ç°µ½Ì¤µ¤ì¤¿±éÁեǡ¼¥¿¤ò¾¯¤·¤Å¤ÄŸ³«¤·¤Ê¤¬¤é±éÁÕ½èÍý¤ò¹Ô¤¤¤Þ¤·¤¿¡£ ¤·¤«¤·¤³¤ì¤È¤ÆÁ´Å¸³«¥Ç¡¼¥¿¤Ï½¼Ê¬P/ECE¤Î¥á¥â¥ê¤Ë¼ý¤Þ¤ëÄøÅ٤Υµ¥¤¥º¤Ç¡¢¤à¤·¤íºî¶ÈÍÑ¥á¥â¥ê¤ÎÊý¤¬Â礭¤¤¤°¤é¤¤¤Ç¤¹¡£ ¤Ä¤Þ¤ê¡¢P/ECE¾å¤ÇZlib¤Î½ÐÎÏ¥¹¥È¥ê¡¼¥ß¥ó¥°¤¬É¬ÍפȤʤ륱¡¼¥¹¤Ï¤Ê¤«¤Ã¤¿¡¢¤È¸À¤¨¤Þ¤¹¡£ ¤è¤êÂ礭¤Ê°µ½Ì¡¦Å¸³«¥Ç¡¼¥¿¤ò°·¤¦¡¢PC¾å¤Î¥×¥í¥°¥é¥à¤Ç¤Ï¤¤¤¯¤Ö¤ó»ö¾ð¤âÊѤï¤Ã¤Æ¤¯¤ë¤Î¤Ç¤·¤ç¤¦¤¬¡¢ ¾¯¤Ê¤¯¤È¤â¥²¡¼¥à¥×¥í¥°¥é¥à¤Ë¤ª¤¤¤Æ¤ÏÁ´¥Ç¡¼¥¿¤ò¥ª¥ó¥á¥â¥ê¤ËŸ³«¤¹¤ë¥±¡¼¥¹¤¬ÂçÉôʬ¤Ê¤Î¤Ç¤Ï¤Ê¤¤¤«¤È»×¤¤¤Þ¤¹¡£ ¤½¤ó¤Ê¤ï¤±¤Ç¡¢¤É¤¦¤ä¤éZlib¤Î½ÐÎÏ¥¹¥È¥ê¡¼¥ß¥ó¥°¤ÏËͤˤÏɬÍפʤ¤¤è¤¦¤Ç¤¹¡£ Zlib¤Î½ÐÎÏ¥¹¥È¥ê¡¼¥ß¥ó¥°¤ò¤È¤ê¤ä¤á¤Æ¡¢ºî¶ÈÍÑ¥á¥â¥ê¤ÎɬÍ×Î̤ò¸º¤é¤¹¤³¤È¤Ë¤·¤Þ¤·¤¿¡£ ¤µ¤Ã¤½¤¯Zlib¤Î¥½¡¼¥¹²þ¤¤Ë¤È¤ê¤«¤«¤Ã¤¿¤Î¤Ç¤¹¤¬¡¦¡¦¡¦Æñ²ò¤Ç¤¹(^^; ZlibŸ³«¤Î¼ê½ç¤Ï¡¢¤µ¤Û¤ÉÊ£»¨¤Ê¤â¤Î¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£ ËܲȡÖThe gzip home page(http://www.gzip.org/)¡×¤µ¤ó¤Î¥µ¥¤¥È¤Î¡¢Zlib Home Site(http://www.gzip.org/zlib/)¡× ¢ª¡Özlib Documentation(http://www.gzip.org/zlib/zlib_docs.html)¡×¤Î¥Ú¡¼¥¸¤«¤é¡¢Zlib¤Î»ÅÍͽñ¤¬Æþ¼ê¤Ç¤­¤Þ¤¹¡£ ¥Ï¥Õ¥Þ¥óÌÚºîÀ®¤Î¤È¤³¤í¤¬Â¿¾¯¥È¥ê¥Ã¥­¡¼¤Ç¤¹¤±¤ì¤É¡¢¤½¤ì°Ê³°¤Ï²ò¤ê°×¤¯¤Æ¥·¥ó¥×¥ë¤Ê»ÅÍͤǤ¹¡£ ¤Ë¤â´Ø¤ï¤é¤ºZlib¤Î¥½¡¼¥¹¤¬Æñ²ò¤Ê¤Î¤Ï¡¢°Ü¿¢À­¤È¹â®²½¤Î¤¿¤á¡¢¥×¥í¥°¥é¥à¤¬Ê£»¨²½¤·¤Æ¤¤¤ë¤Î¤¬¸¶°ø¤Î¤è¤¦¤Ç¤¹¡£ ÆÃ¤Ë¥Ï¥Õ¥Þ¥óÉü¹æ½èÍý¤Î¹â®²½¤Ë´Ø¤·¤Æ¤ÏÁêÅö¤ËÎϤ¬Æþ¤Ã¤Æ¤¤¤ë¤è¤¦¤Ç¡¢¥½¡¼¥¹Á´ÂΤΤ«¤Ê¤ê¤ÎÉôʬ¤òÀê¤á¤Æ¤¤¤Þ¤¹¡£ ¤³¤ì¤é¤ÎÊ£»¨¤Ê¥ë¡¼¥Á¥ó¤Ë±Æ¶Á¤òÍ¿¤¨¤Ê¤¤¤è¤¦¡¢½ÐÎÏ¥¹¥È¥ê¡¼¥ß¥ó¥°¤À¤±¤ò¼è¤ê¤ä¤á¤ë¤Î¤Ï¡¢¤Á¤ç¤Ã¤È´í¸±¤Ê´¶¤¸¤Ç¤¹¡£ ¤½¤³¤Çº£²ó¤Ï¡¢Zlib¤Î¥½¡¼¥¹¤ò²þ¤¤¹¤ë¤Î¤Ç¤Ï¤Ê¤¯¡¢¼«Á°¤ÇºÆ¼ÂÁõ¤·¤Æ¤ß¤ë¤³¤È¤Ë¤·¤Þ¤·¤¿¡£ ¤Ç¤­¤¢¤¬¤Ã¤¿¤Î¤¬¤³¤Á¤é¤Ç¤¹¡£ http://www.piece-me.org/archive/pzltest-20040313-piece.zip http://www.piece-me.org/archive/pzltest-20040313-win32.zip (¥Õ¥¡¥¤¥ëÆâÍÆ¤Ï¡¢README.TXT¤ò¤´Í÷²¼¤µ¤¤¡£¾ÜºÙ¤Ï¼¡²ó¤Ë¡£) ¢¨2004/03/14Äɵ­: ¥Ð¥°½¤Àµ¤ª¤è¤ÓºÆÄ´À°¤·¤Þ¤·¤¿¡£ ¡¡¤³¤Îµ­»ö¤Î¤¤¤Á¤Ð¤óºÇ¸å¤Ë¡¢¹¹¿·ÈǤÎURL¤¬¤¢¤ê¤Þ¤¹¡£ P/ECEÍѤÈWindowsÍѤΥƥ¹¥È¥×¥í¥°¥é¥à¤òÍѰդ·¤Æ¤ß¤Þ¤·¤¿¡£ ¤¤¤º¤ì¤âZlib°µ½Ì¤µ¤ì¤¿²èÁü¥Õ¥¡¥¤¥ë¤òŸ³«¤·¡¢²èÌÌɽ¼¨¤¹¤ë¥Æ¥¹¥È¥×¥í¥°¥é¥à¤Ç¤¹¡£ ¥Æ¥¹¥È¥×¥í¥°¥é¥à¤ÏP/ECEÍѤÈWindowsÍѤÇÊÌ¡¹¤Ç¤¹¤¬¡¢ZlibŸ³«¥ë¡¼¥Á¥ó¤Î¥½¡¼¥¹¤Ï¤Û¤Ü¶¦Ä̤ȤʤäƤ¤¤Þ¤¹¡£ ½ÐÎÏ¥¹¥È¥ê¡¼¥ß¥ó¥°¤ò¼è¤ê¤ä¤á¤¿¤Î¤Ç¡¢¥¹¥é¥¤¥ÉÁ뤬ÉÔÍפȤʤꡢºî¶ÈÍÑ¥á¥â¥ê¤Ï8¥­¥í¥Ð¥¤¥ÈÄøÅ٤˸º¤ê¤Þ¤·¤¿¡£ ¤â¤Ã¤È¸º¤é¤·¤Æ¤âÂç¾æÉפ½¤¦¤Ê¤Î¤Ç¤¹¤¬¡¢¤½¤ì¤Ïº£¸å¤ÎÄ´À°²ÝÂê¤Ç¤¹¡£ ¥ª¥ê¥¸¥Ê¥ë¤ÎZlib¤È°Û¤Ê¤ê¡¢°Ü¿¢À­¡¦¹â®²½¤Ë´Ø¤¹¤ëÉôʬ¤Ï¥Ð¥Ã¥µ¥ê¤Ç¤¹¡£ °Ü¿¢À­¤Ë´Ø¤·¤Æ¤Ï¡¢ËͤÏÅöÌÌP/ECE¡¢Windows¡¢¤¢¤ÈPCÍѤÎLinux¤°¤é¤¤¤Çư¤±¤Ð½¼Ê¬¤Ê¤Î¤Ç¡¢¤Û¤È¤ó¤É²¿¤â¹Í¤¨¤Æ¤¤¤Þ¤»¤ó¡£ 32¥Ó¥Ã¥È´Ä¶­¤Ç¡¢¥Ð¥¤¥È¥ª¡¼¥À¡¼¤â¥ê¥È¥ë¥¨¥ó¥Ç¥£¥¢¥ó¤Ë·è¤áÂǤÁ¤Ç¤¹¡£ ¹â®²½¤âÁ´¤¯¹Ô¤Ã¤Æ¤¤¤Þ¤»¤ó¤¬¡¢P/ECE¤Ç°·¤¦ÄøÅ٤Υǡ¼¥¿¥µ¥¤¥º¤Ê¤é¤Ð¡¢¤¢¤Þ¤ê°ã¤¤¤Ï´¶¤¸¤é¤ì¤Ê¤¤¤Ï¤º¤Ç¤¹¡£ Âç¤Þ¤«¤Ë¸À¤Ã¤Æ¡¢1ÉÃÅö¤ê10¡Á15¥­¥í¥Ð¥¤¥È¤°¤é¤¤¤ÎŸ³«Â®ÅÙ¤À¤È»×¤¤¤Þ¤¹¡£ ŰÄìŪ¤Ë´ÊÁDz½¤·¤¿¤Î¤Ç¡¢¥×¥í¥°¥é¥à¥µ¥¤¥º¤Ï¥Ø¥Ã¥À¤È¥½¡¼¥¹¹ç¤ï¤»¤Æ1000¹ÔÄøÅ٤˾®¤µ¤¯¤Ê¤ê¤Þ¤·¤¿¡£ ¥ª¥ê¥¸¥Ê¥ë¤ÎZlib¤â¡¢¤â¤È¤â¤È¤Ï¤³¤ì¤°¤é¤¤´ÊÁǤÀ¤Ã¤¿¤È»×¤¦¤Î¤Ç¤¹¡£ Ť¯»È¤ï¤ì¤Æ¤¤¤í¤¤¤í¤Ê´Ä¶­¤Ë°Ü¿¢¤µ¤ì¡¢¤Þ¤¿¶¯ÎϤ˹⮲½¤µ¤ì¤¿·ë²Ì¡¢¸½ºß¤Î¤è¤¦¤ËÊ£»¨¤Ê¼ÂÁõ¤Ë¤Ê¤Ã¤¿¤Î¤Ç¤·¤ç¤¦¡£ º£²ó¼ÂÁõ¤·¤¿Zlib¥ë¡¼¥Á¥ó¤Ï¡¢¸À¤ï¤ÐÀèÁÄ´Ô¤ê¤Î¤è¤¦¤Ê¤â¤Î¤Ç¤¹¡£ P/ECE¤°¤é¤¤¤Îµ¬ÌϤδĶ­¤Ë¤Ï¡¢¤³¤ì¤°¤é¤¤´ÊÁǤʼÂÁõ¤Ç½¼Ê¬¤Ê¤Î¤Ç¤Ï¤Ê¤¤¤«¤Ê¤¡¡¢¤È»×¤¤¤Þ¤·¤¿¡£ ¡¦¡¦¡¦¤È¡¢¼ÂÁõ¤·¤Æ¤ß¤Æ¤«¤éP/ECE¥«¡¼¥Í¥ë¥½¡¼¥¹¤ÎŸ³«¥ë¡¼¥Á¥ó¤òÆÉ¤ßÊÖ¤¹¤È¡¢¿Þ¤é¤º¤â»÷¤¿´¶¤¸¤Ë¤Ê¤Ã¤Æ¤Þ¤¹¤Í¡£ ¹Í¤¨¤ë¤³¤È¤ÏƱ¤¸¤Ç¤¹¤Í¤§(^^; ¡Ê³¤­¤Þ¤¹¡Ä¡Ë ---------------------------------------------------------------------------------------------------- 2004/03/14Äɵ­: ¡¦¥Ð¥°½¤Àµ¤·¤Þ¤·¤¿¡£ ¡¡Â礭¤Ê°µ½Ì¥Ç¡¼¥¿¤òŸ³«¤¹¤ë¤È¡¢Å¸³«½èÍý¤Ë¼ºÇÔ¤·¤Æ¤·¤Þ¤Ã¤Æ¤¤¤¿¥Ð¥°¤ò½¤Àµ¤·¤Þ¤·¤¿¡£ ¡¦ºî¶ÈÍÑ¥á¥â¥ê¥µ¥¤¥º¤òÄ´À°¤·¤Þ¤·¤¿¡£ ¡¡ºòÆü¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ï¡¢¥Ï¥Õ¥Þ¥óÌÚºîÀ®¤Î¤¿¤á¤Ë8¥­¥í¥Ð¥¤¥È¤Îºî¶ÈÍÑ¥á¥â¥ê¤ò³ÎÊݤ·¤Æ¤¤¤Þ¤·¤¿¡£ ¡¡¤¤¤¯¤Ä¤«¤Î°µ½Ì¥Ç¡¼¥¿¤ò»î¤·¤Æ¤ß¤¿¤È¤³¤í¡¢¼ÂºÝ¤Ë»È¤ï¤ì¤Æ¤¤¤ë¤Î¤Ï¤½¤Î1/6ÄøÅ٤Ǥ·¤¿¡£ ¡¡¤Á¤ç¤Ã¤È;͵¤¬¤¢¤ê¤¹¤®¤ë¤Î¤Ç¡¢ºî¶ÈÍÑ¥á¥â¥ê¤òȾʬ¤Î4¥­¥í¥Ð¥¤¥È¤Ë¸º¤é¤·¤Æ¤ß¤Þ¤·¤¿¡£ ¡¡¤Þ¤À3ÇÜÄøÅÙ¤Î;͵¤¬¤¢¤ê¤Þ¤¹¤«¤é¡¢¤¿¤Ö¤óÂç¾æÉפÀ¤È¤Ï»×¤¤¤Þ¤¹¤¬¡¢¤Á¤ç¤Ã¤ÈÃí°Õ¤¬É¬ÍפǤ¹¡£ ¡¡¥ª¥ê¥¸¥Ê¥ë¤ÎZlib¤Ç¤â¡¢¥Ï¥Õ¥Þ¥óÌÚºîÀ®¤Î¤¿¤á¤Îºî¶ÈÍÑ¥á¥â¥ê¥µ¥¤¥º¤Ï¡¢¼Â¸³¤Ç·è¤á¤Æ¤¤¤ë¤è¤¦¤Ç¤¹¡£ ¡¡ºî¶ÈÍÑ¥á¥â¥ê¤ÎºÇÂçɬÍ×¥µ¥¤¥º¤Ï¡¢ÍýÏÀ¤Çµá¤á¤é¤ì¤Ê¤¤¤ß¤¿¤¤¤Ç¤¹¡£ ¥À¥¦¥ó¥í¡¼¥É¤Ï¤³¤Á¤é¡§ http://www.piece-me.org/archive/pzltest-20040314-piece.zip http://www.piece-me.org/archive/pzltest-20040314-win32.zip ---------------------------------------------------------------------------------------------------- * Tue Dec 23 08:00:00 JST 2003 Naoyuki Sawa - ¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¤Î¸íưºî#4 ¡ÊÁ°²ó¤«¤é¤Î³¤­¡Ä¡Ë °ú¤­Â³¤­¡¢¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¤ÎľÁ°¤Ë¥á¥â¥ê¥¢¥¯¥»¥¹Ì¿Îá¤òÃÖ¤¤¤¿¾ì¹ç¤Î¡¢¸íưºî¤Î̵ͭ¤ò¼Â¸³¤·¤Þ¤¹¡£ Á°¡¹²ó¤Ï¡Öjp.d %rb¡×¡¢Á°²ó¤Ï¡Öcall.d %rb¡×¡Öret.d¡×¤Ë¤Ä¤¤¤ÆÄ´¤Ù¤Þ¤·¤¿¡£ º£²ó¤Ï¡¢»Ä¤ê¤Î¡Öjp.d sign8¡×¡Öjr.d sign8¡×¡Öcall.d sign8¡×¤Ë¤Ä¤¤¤ÆÄ´¤Ù¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡û¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá ¡¡¡¡¡¡¡¡ 1. jp.d sign8 ¡¡¡¡¡¡¡¡ 2. jr.d sign8 ¡¡¡¡¡¡¡¡ 3. call.d sign8 ¡¡¡¡¡¡¡¡¡û¥á¥â¥ê¥¢¥¯¥»¥¹Ì¿Îá ¡¡¡¡¡¡¡¡ 1. ld.b [%rb], %rs ¡¡¡¡¡¡¡¡ 2. ld.ub [%rb], %rs ¡¡¡¡¡¡¡¡ 3. ld.h [%rb], %rs ¡¡¡¡¡¡¡¡ 4. ld.uh [%rb], %rs ¡¡¡¡¡¡¡¡ 5. ld.w [%rb], %rs ¡¡¡¡¡¡¡¡ 6. ld.b %rd, [%rb] ¡¡¡¡¡¡¡¡ 7. ld.h %rd, [%rb] ¡¡¡¡¡¡¡¡ 8. ld.w %rd, [%rb] ¡¡¡¡¡¡¡¡¡ûʬ´ô¸µ¡¦Ê¬´ôÀè ¡¡¡¡¡¡¡¡ 1. ¹â®RAM ¡¡¡¡¡¡¡¡ 2. SRAM ¡¡¡¡¡¡¡¡¡û¥á¥â¥ê¥¢¥¯¥»¥¹Àè ¡¡¡¡¡¡¡¡ 1. ¹â®RAM ¡¡¡¡¡¡¡¡ 2. SRAM Á°²ó¤Þ¤Ç¤È°Û¤Ê¤ê¡¢Ê¬´ô¸µ¤Èʬ´ôÀè¤Î¥á¥â¥ê¤Î¼ïÎब°ã¤¦¥Ñ¥¿¡¼¥ó¤Ë¤Ä¤¤¤Æ¤Ï¼Â¸³¤·¤Æ¤¤¤Þ¤»¤ó¡£ ¡Öjp.d sign8¡×¡Öjr.d sign8¡×¡Öcall.d sign8¡×¤ÏÁ°¸å256¥Ð¥¤¥È¤Þ¤Ç¤ÎÈϰϤˤ·¤«Ê¬´ô¤Ç¤­¤Ê¤¤¤¿¤á¡¢ ¹â®RAM(0x0000¡Á0x1fff)¤«¤éSRAM(0x100000¡Á0x13ffff)¤Ø¡¢¤¢¤ë¤¤¤ÏSRAM¤«¤é¹â®RAM¤Ø¤Ï¡¢±ó¤¹¤®¤ÆÊ¬´ô¤Ç¤­¤Ê¤¤¤«¤é¤Ç¤¹¡£ ¡Ê¡Öext¡×Ì¿Îá¤ÈÁȤ߹ç¤ï¤»¤ì¤ÐÁ°¸å256¥Ð¥¤¥È°Ê¾å¤ÎÈϰϤËʬ´ô¤Ç¤­¤Þ¤¹¤¬¡¢¥á¥â¥ê¥¢¥¯¥»¥¹Ì¿Îá¤È¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¤Î´Ö¤Ë¡Öext¡×Ì¿Î᤬Æþ¤ê¤Þ¤¹¡£ ¡¡¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¤ÎľÁ°¤Ë¥á¥â¥ê¥¢¥¯¥»¥¹Ì¿Î᤬¤¢¤ë¾õ¶·¤À¤±¤ò¥Æ¥¹¥È¤·¤Æ¤¤¤ë¤Î¤Ç¡¢¡Öext¡×Ì¿Îá¤ò¶´¤à¥±¡¼¥¹¤Ïº£²ó¤Ï½ü³°¤¹¤ë¤³¤È¤Ë¤·¤Þ¤·¤¿¡£¡Ë ¸¡¾ÚÍÑ¥×¥í¥°¥é¥à¤Ï¤³¤Á¤é¡§ ¡¡¡¡¡¡¡¡¡Öjp.d sign8¡×¡¡¡¡¡¡ http://www.piece-me.org/archive/delyerr4-20031223.zip ¡¡¡¡¡¡¡¡¡Öjr.d sign8¡× http://www.piece-me.org/archive/delyerr5-20031223.zip ¡¡¡¡¡¡¡¡¡Öcall.d sign8¡×¡¡¡¡ http://www.piece-me.org/archive/delyerr6-20031223.zip ¸¡¾ÚÍÑ¥×¥í¥°¥é¥à¤Î·ë²Ì½ÐÎÏ¥Õ¥¡¥¤¥ë(À¸¤ÎCSV·Á¼°)¤Ï¤³¤Á¤é¡§ ¡¡¡¡¡¡¡¡¡Öjp.d sign8¡×¡¡¡¡¡¡ http://www.piece-me.org/piece-lab/delyerr4-20031223-result.csv ¡¡¡¡¡¡¡¡¡Öjr.d sign8¡× http://www.piece-me.org/piece-lab/delyerr5-20031223-result.csv ¡¡¡¡¡¡¡¡¡Öcall.d sign8¡×¡¡¡¡ http://www.piece-me.org/piece-lab/delyerr6-20031223-result.csv ½ÐÎÏ·ë²Ì¥Õ¥¡¥¤¥ë¤òÆÉ¤ß¤ä¤¹¤¤¤è¤¦¤Ë²Ã¹©¤·¤Æ¤ß¤¿¤Î¤¬¤³¤Á¤é¡§ ¡¡¡¡¡¡¡¡¡Öjp.d sign8¡×¡¡¡¡¡¡ http://www.piece-me.org/piece-lab/delyerr4-20031223-kekka.csv ¡¡¡¡¡¡¡¡¡Öjr.d sign8¡× http://www.piece-me.org/piece-lab/delyerr5-20031223-kekka.csv ¡¡¡¡¡¡¡¡¡Öcall.d sign8¡×¡¡¡¡ http://www.piece-me.org/piece-lab/delyerr6-20031223-kekka.csv ·ë²Ì¡¢ ¡¡¡¡¡¡¡¡-------------------------------- ¡¡¡¡¡¡¡¡Á´¤Æ¤ÎÁȤ߹ç¤ï¤»¤Ç¡¢¸íưºî̵¤·¡ª ¡¡¡¡¡¡¡¡-------------------------------- ¡Öjp.d sign8¡×¡Öjr.d sign8¡×¡Öcall.d sign8¡×¤Ï¤¤¤º¤ì¤âÈó¾ï¤Ë»ÈÍÑÉÑÅ٤ι⤤¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¤Ç¡¢¤³¤ì¤Þ¤Ç¤Ë¤â¿ÍѤ·¤Æ¤¤¤Þ¤¹¡£ ¤³¤ì¤Þ¤Ç¤Î»ÈÍѤˤª¤¤¤ÆÆÃ¤ËÌäÂê¤ÏȯÀ¸¤·¤Æ¤¤¤Ê¤«¤Ã¤¿¤Î¤Ç¡¢¸íưºî¾ò·ï¤¬Â¸ºß¤·¤Ê¤¤¤Î¤âͽÁÛÄ̤ê¤Ç¤·¤¿¡£ -------------------------------------------------------------------------------------------------- °Ê¾å¡¢»Í²ó¤ËÅϤäơ¢¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¤Î¸íưºî¾ò·ï¤òÄ´¤Ù¤Æ¤­¤Þ¤·¤¿¡£ ¤Þ¤ÀÁ´¤Æ¤Î¥á¥â¥ê¥¢¥¯¥»¥¹Ì¿Îá¤äÁ´¤Æ¤Î¾ò·ï¤ÎÁȤ߹ç¤ï¤»¤ò»î¤·¤¿¤ï¤±¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¤¬¡¢¤È¤ê¤¢¤¨¤º¤³¤³¤ÇÁí³ç¤·¤Æ¤ß¤Þ¤¹¡£ ·ë¶É¡¢¥Þ¥Ë¥å¥¢¥ë¤Ëµ­ºÜ¤µ¤ì¤Æ¤¤¤Ê¤¤¸íưºî¾ò·ï¤¬Â¸ºß¤¹¤ë¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¤Ï¡¢¡Öjp.d %rb¡×¤À¤±¤Ç¤·¤¿¡£ ¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¤ò»È¤Ã¤Æ¥×¥í¥°¥é¥à¤òºÇŬ²½¤¹¤ë¾ì¹ç¤Ë¡¢Ãí°Õ¤·¤Ê¤±¤ì¤Ð¤¤¤±¤Ê¤¤¥ë¡¼¥ë¤Ï¼¡¤ÎÄ̤ê¤Ç¤¹¡§ ¡¡¡¡¡¡¡¡¡Ø¡Öjp.d %rb¡×Ì¿Îá¤ÎľÁ°¤Ë¥á¥â¥ê¥¢¥¯¥»¥¹Ì¿Îá¤òÃÖ¤¤¤Æ¤Ï¤¤¤±¤Ê¤¤¡Ù ¤È¤ê¤¢¤¨¤º¤³¤Î¥ë¡¼¥ë¤Ë½¾¤Ã¤Æ¤ª¤±¤Ð¡¢¸íưºî¤¹¤ë¤³¤È¤Ï¤Ê¤¤¤È»×¤¤¤Þ¤¹¡£ ¤è¤ê¾Ü¤·¤¤¸íưºî¾ò·ï¤Ë¤Ä¤¤¤Æ¤Ï¡¢Á°¡¹²ó¤Î¸¦µæµ­Ï¿¡Ø¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¤Î¸íưºî#2¡Ù¤ò¤´»²¾È¤¯¤À¤µ¤¤¡£ ¤³¤Î¥ë¡¼¥ë¡¢S1C33209 CPU¤Î¥Þ¥Ë¥å¥¢¥ë¤Ë¤ÏºÜ¤Ã¤Æ¤¤¤Þ¤»¤ó¡£ ¥Þ¥Ë¥å¥¢¥ë¤Îµ­ºÜϳ¤ì¤«¡¢¤¢¤ë¤¤¤ÏÁÛÄê³°¤Î¸íưºî¤Ê¤Î¤«¡¦¡¦¡¦¤¤¤º¤ì¤Ë¤»¤è¡¢´í¸±ÅÙ¡ÖÂç¡×¤Ç¤¹¡£ * Mon Dec 22 22:00:00 JST 2003 Naoyuki Sawa - ¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¤Î¸íưºî#3 ¡ÊÁ°²ó¤«¤é¤Î³¤­¡Ä¡Ë Á°²ó¤Ï¡¢¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¡Öjp.d %rb¡×¤ÎľÁ°¤Ë¥á¥â¥ê¥¢¥¯¥»¥¹Ì¿Îá¤òÃÖ¤¤¤¿¾ì¹ç¤Î¡¢¸íưºî¤Î̵ͭ¤ò¼Â¸³¤·¤Þ¤·¤¿¡£ ¤½¤Î·ë²Ì¡¢¤¤¤¯¤Ä¤«¤ÎÁȤ߹ç¤ï¤»¤Ç¸íưºî¤¹¤ë¤³¤È¤¬¤ï¤«¤ê¡¢ ¡Ø¡Öjp.d %rb¡×Ì¿Îá¤ÎľÁ°¤Ë¥á¥â¥ê¥¢¥¯¥»¥¹Ì¿Îá¤òÃÖ¤¤¤Æ¤Ï¤¤¤±¤Ê¤¤¡Ù ¤È¤¤¤¦·ëÏÀ¤¬ÆÀ¤é¤ì¤Þ¤·¤¿¡£ º£²ó¤Ï¡¢¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¡Öcall.d %rb¡×¤È¡Öret.d¡×¤Ë¤Ä¤¤¤Æ¡¢Æ±Íͤ˼¸³¤·¤Æ¤ß¤ë¤³¤È¤Ë¤·¤Þ¤¹¡£ Á°²ó¼Â¸³¤·¤¿¡Öjp.d %rb¡×Ì¿Îá¡¢¼Â¤Ï¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¤ÎÃæ¤Ç¤Ï¤¤¤Á¤Ð¤ó»ÈÍÑÉÑÅÙ¤¬Ä㤤¤Ç¤¹¡£ ¡Öjp %rb¡×¤ò»È¤¦¾ìÌ̤ϥơ¼¥Ö¥ë¥¸¥ã¥ó¥×½èÍý¤°¤é¤¤¤·¤«¤Ê¤¯¡¢C¸À¸ì¤Ç¤Ïswitchʸ¤ËÁêÅö¤·¤Þ¤¹¡£ switchʸ¤Î¼Â¹ÔÀ­Ç½¤¬¥×¥í¥°¥é¥àÁ´ÂΤÎÀ­Ç½¤ËÂ礭¤¯±Æ¶Á¤¹¤ë¤è¤¦¤Ê¥±¡¼¥¹¤Ï¡¢Èæ³ÓŪ¾¯¤Ê¤¤¤È»×¤¤¤Þ¤¹¡£ ½¾¤Ã¤Æ¡¢¡Öjp %rb¡×¤ò¡Öjp.d %rb¡×¤ËÃÖ¤­´¹¤¨¤Æ¤Þ¤Ç½èÍý®ÅÙ¤ò²Ô¤°¤è¤¦¤Ê¾ìÌ̤⡢¤¢¤Þ¤ê¤Ê¤¤¤È»×¤¦¤«¤é¤Ç¤¹¡£ ¡Öjp.d %rb¡×¤Ë³Ó¤Ù¤Æ¡¢¡Öcall.d %rb¡×¤È¡Öret.d¡×¤Î»ÈÍÑÉÑÅ٤ϤϤ뤫¤Ë¹â¤¤¤Ç¤¹¡£ ¡Öcall.d %rb¡×¤Ï´Ø¿ô¥Ý¥¤¥ó¥¿¸Æ¤Ó½Ð¤·¤Ë¸Â¤é¤º¡¢ÉÑÈˤ˻Ȥ¦´Ø¿ô¤Î¥¢¥É¥ì¥¹¤ò¥ì¥¸¥¹¥¿¤ËÊÝ»ý¤¹¤ë¤è¤¦¤Ê¥±¡¼¥¹¤ÇÉѽФ·¤Þ¤¹¡£ ¡Öret.d¡×¤Ï¡¦¡¦¡¦¼Â¤ÏËͤϤ¢¤Þ¤ê»È¤Ã¤Æ¤¤¤Ê¤¤¤Î¤Ç¤¹¤¬¡¢EPSON¼Ò½ãÀµ¥é¥¤¥Ö¥é¥ê¤Î½ü»»¥ë¡¼¥Á¥ó¤¬¤³¤ì¤òÍ­¸ú³èÍѤ·¤Æ¤¤¤Þ¤¹¡£ °ÊÁ°¤Î¸¦µæµ­Ï¿¡Ø¼Â¤Ï¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¡Ù¤Î²ó¤ò¤´»²¾È¤¯¤À¤µ¤¤¡£ ¤È¤¤¤¦¤ï¤±¤Ç¡¢¡Öcall.d %rb¡×¡Öret.d¡×¤ÎľÁ°¤Ë¥á¥â¥ê¥¢¥¯¥»¥¹Ì¿Îá¤òÃÖ¤¤¤¿¾ì¹ç¤Î¡¢¸íưºî¤Î̵ͭ¤ò¼Â¸³¤·¤Æ¤ß¤Þ¤·¤¿¡£ ¡¡¡¡¡¡¡¡¡û¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá ¡¡¡¡¡¡¡¡ 1. call.d %rb ¡¡¡¡¡¡¡¡ 2. ret.d ¡¡¡¡¡¡¡¡¡û¥á¥â¥ê¥¢¥¯¥»¥¹Ì¿Îá ¡¡¡¡¡¡¡¡ 1. ld.b [%rb], %rs ¡¡¡¡¡¡¡¡ 2. ld.ub [%rb], %rs ¡¡¡¡¡¡¡¡ 3. ld.h [%rb], %rs ¡¡¡¡¡¡¡¡ 4. ld.uh [%rb], %rs ¡¡¡¡¡¡¡¡ 5. ld.w [%rb], %rs ¡¡¡¡¡¡¡¡ 6. ld.b %rd, [%rb] ¡¡¡¡¡¡¡¡ 7. ld.h %rd, [%rb] ¡¡¡¡¡¡¡¡ 8. ld.w %rd, [%rb] ¡¡¡¡¡¡¡¡¡ûʬ´ô¸µ ¡¡¡¡¡¡¡¡ 1. ¹â®RAM ¡¡¡¡¡¡¡¡ 2. SRAM ¡¡¡¡¡¡¡¡¡ûʬ´ôÀè ¡¡¡¡¡¡¡¡ 1. ¹â®RAM ¡¡¡¡¡¡¡¡ 2. SRAM ¡¡¡¡¡¡¡¡¡û¥á¥â¥ê¥¢¥¯¥»¥¹Àè ¡¡¡¡¡¡¡¡ 1. ¹â®RAM ¡¡¡¡¡¡¡¡ 2. SRAM ¸¡¾ÚÍÑ¥×¥í¥°¥é¥à¤Ï¤³¤Á¤é¡§ ¡¡¡¡¡¡¡¡¡Öcall.d %rb¡× http://www.piece-me.org/archive/delyerr2-20031222.zip ¡¡¡¡¡¡¡¡¡Öret.d¡×¡¡¡¡¡¡http://www.piece-me.org/archive/delyerr3-20031222.zip ¸¡¾ÚÍÑ¥×¥í¥°¥é¥à¤Î·ë²Ì½ÐÎÏ¥Õ¥¡¥¤¥ë(À¸¤ÎCSV·Á¼°)¤Ï¤³¤Á¤é¡§ ¡¡¡¡¡¡¡¡¡Öcall.d %rb¡× http://www.piece-me.org/piece-lab/delyerr2-20031222-result.csv ¡¡¡¡¡¡¡¡¡Öret.d¡×¡¡¡¡¡¡http://www.piece-me.org/piece-lab/delyerr3-20031222-result.csv ½ÐÎÏ·ë²Ì¥Õ¥¡¥¤¥ë¤òÆÉ¤ß¤ä¤¹¤¤¤è¤¦¤Ë²Ã¹©¤·¤Æ¤ß¤¿¤Î¤¬¤³¤Á¤é¡§ ¡¡¡¡¡¡¡¡¡Öcall.d %rb¡× http://www.piece-me.org/piece-lab/delyerr2-20031222-kekka.csv ¡¡¡¡¡¡¡¡¡Öret.d¡×¡¡¡¡¡¡http://www.piece-me.org/piece-lab/delyerr3-20031222-kekka.csv ·ë²Ì¡¢ ¡¡¡¡¡¡¡¡-------------------------------- ¡¡¡¡¡¡¡¡Á´¤Æ¤ÎÁȤ߹ç¤ï¤»¤Ç¡¢¸íưºî̵¤·¡ª ¡¡¡¡¡¡¡¡-------------------------------- ¡Ê¤Þ¤À¥á¥â¥ê¥¢¥¯¥»¥¹Ì¿Îá¡Öpushn %rs¡×¡Öpopn %rd¡×¤È¤ÎÁȤ߹ç¤ï¤»¤ò»î¤·¤Æ¤¤¤Þ¤»¤¬¡¢Â¿Ê¬Âç¾æÉפ¸¤ã¤Ê¤¤¤«¤Ê¡©¤È»×¤¤¤Þ¤¹¡£¡Ë ¤³¤ì¤Ï½õ¤«¤ê¤Þ¤·¤¿¡ª Á°½Ò¤ÎÄ̤ꡢ¼êºî¶È¤ÇºÇŬ²½¤ò¹Ô¤¦¾ì¹ç¤Ë¡Öcall.d %rb¡×¡Öret.d¡×¤ò»È¤¦¥±¡¼¥¹¤Ï¡¢¡Öjp.d %rb¡×¤è¤ê¤â¤º¤Ã¤È¿¤¤¤Ç¤¹¡£ ¡Öcall.d %rb¡×¤È¡Öret.d¡×¤Ë¸íưºî¾ò·ï¤¬¤¢¤Ã¤¿¤é¡¢¤«¤Ê¤ê¥ä¥Ð¥¤¤³¤È¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤È¤³¤í¤Ç¤·¤¿¡£ ¡¡¡¡¡¡¡¡¡Ø¡Öcall.d %rb¡×¡Öret.d¡×¤Î»ÈÍѤˤª¤¤¤Æ¤Ï¡¢»ÅÍͳ°¤Î¸íưºî¤ò¿´ÇÛ¤¹¤ëɬÍפϤ¢¤ê¤Þ¤»¤ó¡Ù ¤µ¤Æ¡¢»Ä¤ë¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¤Ï¡Öjp.d sign8¡×¡Öjr.d sign8¡×¡Öcall.d sign8¡×¤Ç¤¹¡£ ¤³¤ì¤é¤ÎÌ¿Îá¤âÈó¾ï¤Ë»ÈÍÑÉÑÅÙ¤¬¹â¤¤¤Ç¤¹¤¬¡¢¤³¤ì¤Þ¤Ç¤Ë¤µ¤ó¤¶¤ó»È¤Ã¤ÆÆÃ¤ËÌäÂ꤬½Ð¤Æ¤¤¤Ê¤¤¤Î¤Ç¡¢Â¿Ê¬Âç¾æÉפÀ¤È»×¤¤¤Þ¤¹¡£ ¼¡²ó¡¢¼Â¸³Í½Äê¤Ç¤¹¡£ (³¤­¤Þ¤¹¡Ä) * Sat Dec 20 12:00:00 JST 2003 Naoyuki Sawa - ¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¤Î¸íưºî#2 ¡ÊÁ°²ó¤«¤é¤Î³¤­¡Ä¡Ë ²¿Ä̤꤫¤Î¥Ñ¥¿¡¼¥ó¤Ç¸¡¾Ú¤ò¹Ô¤Ã¤Æ¤ß¤¿¤È¤³¤í¡¢¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Î᤬¸íưºî¤¹¤ë¾ò·ï¤¬¤ª¤Ü¤í¤²¤Ë¸«¤¨¤Æ¤­¤Þ¤·¤¿¡£ ¤½¤Î¾ò·ï¤È¤Ï¡¢¤ª¤ª¤è¤½¼¡¤Î¤è¤¦¤Ê¤â¤Î¤Ç¤¹¡£ ¡¡¡¡¡¡¡¡¡Ø¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¤ÎľÁ°¤Ë¥á¥â¥ê¥¢¥¯¥»¥¹Ì¿Î᤬¤¢¤ë¤È¡¢¥Ç¥£¥ì¥¤¥ÉÌ¿Î᤬¼Â¹Ô¤µ¤ì¤Ê¤¤¤³¤È¤¬¤¢¤ë¡Ù Á°²ó¤Ï¥¤¥ó¥¿¡¼¥í¥Ã¥¯¾ò·ï¤Ë¤Ä¤¤¤Æ¾Ü¤·¤¯¿¨¤ì¤Þ¤·¤¿¤¬¡¢¤É¤¦¤ä¤é¥¤¥ó¥¿¡¼¥í¥Ã¥¯¤Î̵ͭ¤Ï´Ø·¸¤Ê¤¤´¶¤¸¤Ç¤¹¡£ Î㤨¤Ð¡¢¼¡¤Î¤è¤¦¤Ê¥³¡¼¥É¤ò¹â®RAM¤ËÃÖ¤¤¤Æ¼Â¹Ô¤·¤¿¾ì¹ç¤Ë¤â¸íưºî¤È¤Ê¤ê¡¢¥Ç¥£¥ì¥¤¥ÉÌ¿Î᤬¼Â¹Ô¤µ¤ì¤Þ¤»¤ó¡£ ¡¡¡¡¡¡¡¡; ¤¢¤é¤«¤¸¤á%r10¤Ëʬ´ôÀ襢¥É¥ì¥¹¤¬Æþ¤Ã¤Æ¤¤¤ë¤â¤Î¤È¤·¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡xld.w %r4, 0x100000 ¡¡¡¡¡¡¡¡xld.w %r5, [%r4+100]¡¡; ľÁ°¤Ë¥á¥â¥ê¥¢¥¯¥»¥¹Ì¿Î᤬¤¢¤ë¤È¡Ä ¡¡¡¡¡¡¡¡jp.d %r10¡¡¡¡¡¡¡¡¡¡¡¡ ; ¥¤¥ó¥¿¡¼¥í¥Ã¥¯¤·¤Æ¤¤¤Ê¤¯¤Æ¤â¡Ä ¡¡¡¡¡¡¡¡add %r6, 1¡¡¡¡¡¡¡¡¡¡¡¡; ¡ú¼Â¹Ô¤µ¤ì¤Ê¤¤!!¡ú ͽÁ۰ʾå¤Ë¡¢¸íưºî¤Î±Æ¶Á¤ò¼õ¤±¤ëÈϰϤ¬¹­¤¤¤è¤¦¤Êµ¤¤¬¤·¤Æ¤­¤Þ¤·¤¿¡£ ¤³¤ì¤Ï¾ÜºÙ¤Ë¸¡¾Ú¤·¤Æ¤ß¤ëɬÍפ¬¤¢¤ê¤½¤¦¤Ç¤¹¡£ ¤½¤ì¤Ç¤Ï¡¢¤É¤ì¤°¤é¤¤¤Î¥Ñ¥¿¡¼¥ó¤ò¸¡¾Ú¤¹¤ëɬÍפ¬¤¢¤ë¤Î¤Ç¤·¤ç¤¦¤«¡© ¾¯¤Ê¤¯¸«ÀѤâ¤Ã¤Æ¤â¡¢¼¡¤Ëµó¤²¤ë¤°¤é¤¤¤Î¸¡¾Ú¤ÏɬÍפ½¤¦¤Ç¤¹¡£ ¡¡¡¡¡¡¡¡¡û¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá ¡¡¡¡¡¡¡¡ 1. jp.d %rb ¡¡¡¡¡¡¡¡ 2. call.d %rb ¡¡¡¡¡¡¡¡ 3. ret.d ¡¡¡¡¡¡¡¡ 4. jp.d sign8 ¡¡¡¡¡¡¡¡ 5. jr.d sign8 ¡¡¡¡¡¡¡¡ 6. call.d sign8 ¡¡¡¡¡¡¡¡¡û¥á¥â¥ê¥¢¥¯¥»¥¹Ì¿Îá ¡¡¡¡¡¡¡¡ 1. ld.b [%rb], %rs ¡¡¡¡¡¡¡¡ 2. ld.ub [%rb], %rs ¡¡¡¡¡¡¡¡ 3. ld.h [%rb], %rs ¡¡¡¡¡¡¡¡ 4. ld.uh [%rb], %rs ¡¡¡¡¡¡¡¡ 5. ld.w [%rb], %rs ¡¡¡¡¡¡¡¡ 6. ld.b %rd, [%rb] ¡¡¡¡¡¡¡¡ 7. ld.h %rd, [%rb] ¡¡¡¡¡¡¡¡ 8. ld.w %rd, [%rb] ¡¡¡¡¡¡¡¡ 9. pushn %rs ¡¡¡¡¡¡¡¡10. popn %rd ¡¡¡¡¡¡¡¡¡ûʬ´ô¸µ ¡¡¡¡¡¡¡¡ 1. ¹â®RAM ¡¡¡¡¡¡¡¡ 2. SRAM ¡¡¡¡¡¡¡¡¡ûʬ´ôÀè ¡¡¡¡¡¡¡¡ 1. ¹â®RAM ¡¡¡¡¡¡¡¡ 2. SRAM ¡¡¡¡¡¡¡¡¡û¥á¥â¥ê¥¢¥¯¥»¥¹Àè ¡¡¡¡¡¡¡¡ 1. ¹â®RAM ¡¡¡¡¡¡¡¡ 2. SRAM 6¡ß10¡ß2¡ß2¡ß2¡á480Ä̤ê¡Ä¤Á¤ç¤Ã¤Èµ¤¤¬±ó¤¯¤Ê¤Ã¤Æ¤­¤Þ¤·¤¿(^^; ¤µ¤é¤ËÍߤò¸À¤¨¤Ð¡¢ ¡¡¡¡¡¡¡¡¡¦³ÆÌ¿Î᤬extÌ¿Îá¤òȼ¤Ã¤Æ¤¤¤ë¤«Èݤ« ¡¡¡¡¡¡¡¡¡¦Ê¬´ôÀè¤ÎºÇ½é¤Ë¤¢¤ëÌ¿Îá¤Î¼ïÎà¤Ë¤è¤Ã¤Æ°ã¤¤¤Ï¤¢¤ë¤« Åù¤Î¾ò·ï¤âÊѤ¨¤Æ»î¤·¤Æ¤ß¤¿¤¤¤È¤³¤í¤Ç¤¹¡£ ¤Ç¤â¡¢¤¤¤­¤Ê¤êÁ´Éô¤Ï̵Íý¤½¤¦¤Ê¤Î¤Ç¡¢¤È¤ê¤¢¤¨¤ºº£²ó¤Ï¼¡¤ÎÁȤ߹ç¤ï¤»¤À¤±¸¡¾Ú¤·¤Æ¤ß¤ë¤³¤È¤Ë¤·¤Þ¤·¤¿¡£ ¡¡¡¡¡¡¡¡¡û¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá ¡¡¡¡¡¡¡¡ 1. jp.d %rb ¡¡¡¡¡¡¡¡¡û¥á¥â¥ê¥¢¥¯¥»¥¹Ì¿Îá ¡¡¡¡¡¡¡¡ 1. ld.b [%rb], %rs ¡¡¡¡¡¡¡¡ 2. ld.ub [%rb], %rs ¡¡¡¡¡¡¡¡ 3. ld.h [%rb], %rs ¡¡¡¡¡¡¡¡ 4. ld.uh [%rb], %rs ¡¡¡¡¡¡¡¡ 5. ld.w [%rb], %rs ¡¡¡¡¡¡¡¡ 6. ld.b %rd, [%rb] ¡¡¡¡¡¡¡¡ 7. ld.h %rd, [%rb] ¡¡¡¡¡¡¡¡ 8. ld.w %rd, [%rb] ¡¡¡¡¡¡¡¡¡ûʬ´ô¸µ ¡¡¡¡¡¡¡¡ 1. ¹â®RAM ¡¡¡¡¡¡¡¡ 2. SRAM ¡¡¡¡¡¡¡¡¡ûʬ´ôÀè ¡¡¡¡¡¡¡¡ 1. ¹â®RAM ¡¡¡¡¡¡¡¡ 2. SRAM ¡¡¡¡¡¡¡¡¡û¥á¥â¥ê¥¢¥¯¥»¥¹Àè ¡¡¡¡¡¡¡¡ 1. ¹â®RAM ¡¡¡¡¡¡¡¡ 2. SRAM 1¡ß8¡ß2¡ß2¡ß2¡á64Ä̤ꡣ ¤³¤ì¤À¤±¤Ç¤â¡¢¤¢¤ëÄøÅ٤η¹¸þ¤Ï¤Ä¤«¤á¤ë¤Î¤Ç¤Ï¤Ê¤¤¤«¤È»×¤¤¤Þ¤¹¡£ ¸¡¾ÚÍÑ¥×¥í¥°¥é¥à¤Ï¤³¤Á¤é¡§ ¡¡¡¡¡¡¡¡http://www.piece-me.org/archive/delyerr1-20031220.zip ¸¡¾ÚÍÑ¥×¥í¥°¥é¥à¤Î·ë²Ì½ÐÎÏ¥Õ¥¡¥¤¥ë(À¸¤ÎCSV·Á¼°)¤Ï¤³¤Á¤é¡§ ¡¡¡¡¡¡¡¡http://www.piece-me.org/piece-lab/delyerr1-20031220-result.csv ½ÐÎÏ·ë²Ì¥Õ¥¡¥¤¥ë¤òÆÉ¤ß¤ä¤¹¤¤¤è¤¦¤Ë²Ã¹©¤·¤Æ¤ß¤¿¤Î¤¬¤³¤Á¤é¡§ ¡¡¡¡¡¡¡¡http://www.piece-me.org/piece-lab/delyerr1-20031220-kekka.csv Microsoft ExcelÅù¤Î¥¹¥×¥ì¥Ã¥É¥·¡¼¥È¥½¥Õ¥È¤ÇÆÉ¤ó¤Ç¤¯¤À¤µ¤¤¡£ ½ÐÎÏ·ë²Ì¤«¤é¡¢¤¤¤¯¤Ä¤«¤Î¥ë¡¼¥ë¤¬¸«¤Æ¼è¤ì¤Þ¤¹¡£ ---------------------------- ʬ´ôÀè¥á¥â¥ê¤Î¼ïÎà¤Ï´Ø·¸¤Ê¤¤ ---------------------------- ʬ´ôÀè¥á¥â¥ê¤Î¼ïÎà(¹â®RAM/SRAM)¤À¤±¤¬°Û¤Ê¤ê¡¢Â¾¤Î¾ò·ï¤¬Á´¤ÆÆ±¤¸¥±¡¼¥¹¤Ç¤Ï¡¢É¬¤ºÆ±¤¸·ë²Ì¤È¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£ ʬ´ôÀè¥á¥â¥ê¤¬¹â®RAM¤Î¾ì¹ç¤ËÀµ¾ïưºî¤Ê¤é¡¢Ê¬´ôÀè¥á¥â¥ê¤òSRAM¤ËÊѤ¨¤Æ¤ß¤Æ¤âÀµ¾ïưºî¡£ ʬ´ôÀè¥á¥â¥ê¤¬¹â®RAM¤Î¾ì¹ç¤Ë¸íưºî¤Ê¤é¡¢Ê¬´ôÀè¥á¥â¥ê¤òSRAM¤ËÊѤ¨¤Æ¤ß¤Æ¤â¸íưºî¡£ ¤³¤Î¥ë¡¼¥ë¤«¤é¿ä¬¤¹¤ë¤È¡¢¤¿¤Ö¤óʬ´ôÀè¤ÎºÇ½é¤Ë¤¢¤ëÌ¿Îá¤Î¼ïÎà¤â´Ø·¸¤Ê¤¤¤ó¤¸¤ã¤Ê¤¤¤«¤Ê¡©¤È»×¤¤¤Þ¤¹¡£ -------------------------------- ¥á¥â¥ê¥¢¥¯¥»¥¹¤Î¥µ¥¤¥º¤Ï´Ø·¸¤Ê¤¤ -------------------------------- ¥á¥â¥ê¥¢¥¯¥»¥¹¤Î¥µ¥¤¥º(BYTE/UNSIGNED BYTE/HALF/UNSIGNED HALF/WORD)¤À¤±¤¬°Û¤Ê¤ê¡¢Â¾¤Î¾ò·ï¤¬Á´¤ÆÆ±¤¸¥±¡¼¥¹¤Ç¤Ï¡¢É¬¤ºÆ±¤¸·ë²Ì¤È¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£ SRAM¤Ø¤Î¥á¥â¥ê¥¢¥¯¥»¥¹¤Î¾ì¹ç¡¢¥á¥â¥ê¥¢¥¯¥»¥¹¤Î¥µ¥¤¥º¤Ë¤è¤Ã¤Æ¥¿¥¤¥ß¥ó¥°¤¬°Û¤Ê¤ë¤Î¤Ç¤¹¤¬¡¢¤½¤ì¤Ï¸íưºî¤Î¾ò·ï¤Ë¤Ï´Ø·¸¤Ê¤¤¤è¤¦¤Ç¤¹¡£ ----------------------------------------- ʬ´ô¸µ¥á¥â¥ê¤¬¹â®RAM¤Ê¤é¡¢É¬¤º¸íưºî¤¹¤ë ----------------------------------------- º£²ó¤ÎºÇ½é¤ËÄ󼨤·¤¿¡¢¸íưºî¤¹¤ë¥³¡¼¥É¤Î¾ò·ï¤¬¤³¤ì¤ËÁêÅö¤·¤Þ¤¹¡£ ¹â®RAM¤ËžÁ÷¤·¤Æ»È¤¦¥×¥í¥°¥é¥à¤òºÇŬ²½¤¹¤ë¾ì¹ç¤Ï¡¢¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¤ÎľÁ°¤Ë¥á¥â¥ê¥¢¥¯¥»¥¹Ì¿Îá¤òÃÖ¤«¤Ê¤¤¤è¤¦¡¢Ãí°Õ¤·¤Ê¤±¤ì¤Ð¤¤¤±¤Þ¤»¤ó¡£ ---------------------------------------------------------------- ½ñ¤­¹þ¤ß¥¢¥¯¥»¥¹Àè¥á¥â¥ê¤Èʬ´ô¸µ¥á¥â¥ê¤¬¶¦¤ËSRAM¤Ê¤é¡¢¸íưºî¤¹¤ë ---------------------------------------------------------------- º£²ó¤Î¸¡¾Ú¤Ç¿·¤¿¤Ë¸«¤Ä¤±¤¿¸íưºî¾ò·ï¤Ç¤¹¡£ Î㤨¤Ð¡¢¼¡¤Î¤è¤¦¤Ê¥³¡¼¥É¤òSRAM¾å¤Ç¼Â¹Ô¤¹¤ë¤È¸íưºî¤·¡¢¥Ç¥£¥ì¥¤¥ÉÌ¿Î᤬¼Â¹Ô¤µ¤ì¤Þ¤»¤ó¡£ ¡¡¡¡¡¡¡¡; ¤¢¤é¤«¤¸¤á%r10¤Ëʬ´ôÀ襢¥É¥ì¥¹¤¬Æþ¤Ã¤Æ¤¤¤ë¤â¤Î¤È¤·¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡xld.w %r4, 0x130000¡¡ ; ¥¢¥¯¥»¥¹Àè¥á¥â¥ê¡áSRAM ¡¡¡¡¡¡¡¡xld.w [%r4], %r5¡¡¡¡¡¡; ¥á¥â¥ê¥¢¥¯¥»¥¹¡á½ñ¤­¹þ¤ß ¡¡¡¡¡¡¡¡jp.d %r10 ¡¡¡¡¡¡¡¡add %r6, 1¡¡¡¡¡¡¡¡¡¡¡¡; ¡ú¼Â¹Ô¤µ¤ì¤Ê¤¤!!¡ú ¤Ê¤ª¡¢¤³¤Î¥³¡¼¥É¤ò¹â®RAM¾å¤Ç¼Â¹Ô¤·¤¿¾ì¹ç¤ÏÁ°½Ð¤Î¾ò·ï¤Ë°ìÃפ·¡¢¤ä¤Ï¤ê¸íưºî¤·¤Þ¤¹¡£ ¤Ä¤Þ¤ê¡¢SRAM¤Ø¤Î½ñ¤­¹þ¤ß¤Îľ¸å¤Ë¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¤òÃÖ¤¤¤¿¾ì¹ç¤Ï¡¢¹â®RAM¤ËžÁ÷¤·¤Æ¼Â¹Ô¤¹¤ë¥×¥í¥°¥é¥à¤Ç¤Ê¤¯¤Æ¤â¸íưºî¤¹¤ë¡¢¤È¤¤¤¦¤³¤È¤Ç¤¹¡£ º£²ó¤Î¸¡¾Ú¤Î¤Þ¤È¤á¤Ç¤¹¡£ ½ÐÎÏ·ë²Ì¤ò¸«¤ë¤È¡¢¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¤ÎľÁ°¤Ë¥á¥â¥ê¥¢¥¯¥»¥¹Ì¿Îá¤òÃÖ¤¤¤Æ¤â¸íưºî¤·¤Ê¤¤¥±¡¼¥¹¤Ï¤¤¤¯¤Ä¤«Â¸ºß¤·¤Þ¤¹¡£ Î㤨¤Ð¡¢Ê¬´ô¸µ¥×¥í¥°¥é¥à¤¬SRAM¾å¤Ë¤¢¤ê¡¢¤«¤Ä¡¢Ä¾Á°¤Î¥á¥â¥ê¥¢¥¯¥»¥¹¤¬ÆÉ¤ß¹þ¤ß¤Ê¤é¤Ð¡¢¸íưºî¤·¤Þ¤»¤ó¡£ ¤·¤«¤·¤Ê¤¬¤é¡¢ºÇ¸å¤Ëµó¤²¤¿¤è¤¦¤ÊÆÃ¼ì¾ò·ï²¼¤Ç¸íưºî¤¹¤ë¥±¡¼¥¹¤¬¤¢¤ë¤¿¤á¡¢°ÂÁ´¤Î¤¿¤á¤Ë¤Ï¼¡¤Ë¼¨¤¹Ã±½ã¤Ê¥ë¡¼¥ë¤Ë½¾¤Ã¤Æ¤ª¤¯¤Î¤¬Îɤµ¤½¤¦¤Ç¤¹¡£ ¡¡¡¡¡¡¡¡¡Ø¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¤ÎľÁ°¤Ë¤Ï¥á¥â¥ê¥¢¥¯¥»¥¹Ì¿Îá¤òÃÖ¤«¤Ê¤¤¡Ù ¤µ¤Æ¡¢º£²ó¤Ï¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¡Öjp.d %d¡×¤Ë¤Ä¤¤¤Æ¤À¤±¼Â¸³¤·¤Þ¤·¤¿¤¬¡¢Â¾¤Î¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¡Öcall.d %rb¡×¤ä¡Öjr.d sign8¡×Åù¤Ç¤Ï¤É¤¦¤Ç¤·¤ç¤¦¤«¡© ¤³¤ì¤Þ¤Ç¤Î·Ð¸³¤«¤é¿ä¬¤¹¤ë¤È¡¢¡Öjr.d sign8¡×¤ÏľÁ°¤Ë¥á¥â¥ê¥¢¥¯¥»¥¹Ì¿Î᤬¤¢¤Ã¤Æ¤âÂç¾æÉפ½¤¦¤Êµ¤¤¬¤¹¤ë¤Î¤Ç¤¹¤¬¡¦¡¦¡¦ ¼¡²ó¤Ï¡¢¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¤Î¼ïÎà¤òÊѤ¨¤Æ»î¤·¤Æ¤ß¤è¤¦¤È»×¤¤¤Þ¤¹¡£ (³¤­¤Þ¤¹¡Ä) * Wed Dec 17 12:55:00 JST 2003 Naoyuki Sawa - ¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¤Î¸íưºî#1 ¡Ö¥¿¥ó¥¯¥Ð¥¿¥ê¥¢¥ó/EMU¡×¤Ë¤Æ¡¢6502¥¨¥ß¥å¥ì¡¼¥·¥ç¥ó¹â®²½¤Î¤¿¤á¤Ë¼êºî¶È¤Ç¥¢¥»¥ó¥Ö¥é¥×¥í¥°¥é¥à¤ÎºÇŬ²½¤ò¹Ô¤Ã¤¿¤Î¤Ç¤¹¤¬¡¢¼Â¤Ï¤«¤Ê¤ê¥Ï¥Þ¥ê¤Þ¤·¤¿¡£ ÌäÂê¤Î¸Ä½ê¤ÏÈæ³ÓŪ¾®¤µ¤Ê¥µ¥Ö¥ë¡¼¥Á¥ó¤Ç¡¢²¿ÅÙ¸«Ä¾¤·¤Æ¤â´Ö°ã¤Ã¤Æ¤¤¤Ê¤¤¤Ï¤º¤Ê¤Î¤Ë¡¢¤É¤¦¤ä¤Ã¤Æ¤â´üÂÔÄ̤ê¤Îưºî¤ò¤·¤Ê¤¤¤Î¤Ç¤¹¡£ »ÈÍÑÉÑÅ٤ι⤤¥µ¥Ö¥ë¡¼¥Á¥ó¤À¤Ã¤¿¤Î¤Ç¹â®RAM¤ËžÁ÷¤·¤Æ¼Â¹Ô¤·¤Æ¤¤¤¿¤È¤³¤í¤ò¡¢»î¤·¤ËSRAM¤ËÌᤷ¤Æ¤ß¤ë¤È¤Ê¤¼¤«ÌäÂê¤Ê¤¯¼Â¹Ô¤Ç¤­¤Æ¤·¤Þ¤¦¡¦¡¦¡¦²¿¸Î¡© »¶¡¹Çº¤ó¤ÀËö¤Ë¡¢¤É¤¦¤ä¤é¸¶°ø¤é¤·¤­¤â¤Î¤¬ÄϤá¤Þ¤·¤¿¡£S1C33209 CPU¥³¥¢¤Î¡ú¸íưºî¡ú¡¢¤µ¤â¤Ê¤¯¤ÐCPU¥Þ¥Ë¥å¥¢¥ë¤Î¡úµ­ºÜϳ¤ì¡ú¤Ã¤Ý¤¤¤Ç¤¹¡£ º£²ó¤Ï¡¢¤³¤Î·ï¤Ë¤Ä¤¤¤Æµ­Ï¿¤·¤Æ¤ª¤³¤¦¤È»×¤¤¤Þ¤¹¡£ P/ECE¤ÎCPU S1C33209¤Ï¡¢Â¿¤¯¤Î°ìÈÌŪ¤ÊRISC¥×¥í¥»¥Ã¥µ¤ÈƱ¤¸¤¯¡¢¡Ö¥Ç¥£¥ì¥¤¥Éʬ´ôµ¡Ç½¡×¤òÈ÷¤¨¤Æ¤¤¤Þ¤¹¡£ ¥Ç¥£¥ì¥¤¥Éʬ´ôµ¡Ç½¤Ë¤Ä¤¤¤Æ¤Ï¡¢°ÊÁ°¤Î¸¦µæµ­Ï¿¡Ø¼Â¤Ï¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¡Ù¤Ç¤â¿¨¤ì¤Þ¤·¤¿¤Î¤Ç¡¢¤½¤Á¤é¤âÊ»¤»¤Æ¤´»²¾È¤¯¤À¤µ¤¤¡£ º£²óÌäÂê¤È¤Ê¤Ã¤¿¸Ä½ê¤Ï¡¢¼¡¤Î¤è¤¦¤Ê½èÍý¤ò¹Ô¤¦Éôʬ¤Ç¤·¤¿¡£(¢¨¤«¤Ê¤ê´Êά²½¤·¤Æ¤¤¤Þ¤¹) ¡¡¡¡¡¡¡¡¡Ø6502µ¡³£¸ìÌ¿Îá¤ò1¥Ð¥¤¥ÈÆÉ¤ß¹þ¤ß¡¢¤½¤ÎÆâÍÆ¤Ë¤è¤Ã¤ÆÊ¬´ô¤¹¤ë¡Ù C¸À¸ì¤Ç½ñ¤¯¤È¡¢¤³¤ó¤Ê´¶¤¸¤Î½èÍý¤Ç¤¹¡£ -------------------------------------------------------------------------------------------------- ¡¡¡¡¡¡¡¡unsigned char* pc = ...; ¡¡¡¡¡¡¡¡switch(*pc++) { ¡¡¡¡¡¡¡¡case 0: ...; break; ¡¡¡¡¡¡¡¡case 1: ...; break; ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡... ¡¡¡¡¡¡¡¡case 9: ...; break; ¡¡¡¡¡¡¡¡} -------------------------------------------------------------------------------------------------- ¤³¤ì¤ò¥¢¥»¥ó¥Ö¥é¤Ç½ñ¤¯¤È¡¢¼¡¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£ -------------------------------------------------------------------------------------------------- 1|¡¡¡¡¡¡¡¡¡¡; 2|¡¡¡¡¡¡¡¡¡¡; %r0¥ì¥¸¥¹¥¿¤ËÊÑ¿ôpc¤¬³ä¤êÅö¤Æ¤é¤ì¤Æ¤¤¤ë¤â¤Î¤È¤·¤Þ¤¹¡£ 3|¡¡¡¡¡¡¡¡¡¡; 4|¡¡¡¡¡¡¡¡¡¡ld.ub %r1, [%r0]¡¡¡¡¡¡¡¡; code = *pc 5|¡¡¡¡¡¡¡¡¡¡xld.w %r2, TABLE¡¡¡¡¡¡¡¡; addr = TABLE[code] 6|¡¡¡¡¡¡¡¡¡¡sll %r1, 2 7|¡¡¡¡¡¡¡¡¡¡add %r1, %r2 8|¡¡¡¡¡¡¡¡¡¡ld.w %r3, [%r1] 9|¡¡¡¡¡¡¡¡¡¡jp.d %r3¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; goto addr 10|¡¡¡¡¡¡¡¡¡¡add %r0, 1¡¡¡¡¡¡¡¡¡¡¡¡¡¡; pc++ 11|¡¡¡¡¡¡¡¡¡¡ 12|¡¡TABLE:¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; switchÍÑ¥¸¥ã¥ó¥×¥Æ¡¼¥Ö¥ë 13|¡¡¡¡¡¡¡¡¡¡.word CASE0 14|¡¡¡¡¡¡¡¡¡¡.word CASE1 15|¡¡¡¡¡¡¡¡¡¡... 16|¡¡¡¡¡¡¡¡¡¡.word CASE9 17|¡¡¡¡¡¡¡¡ 18|¡¡CASE0: 19|¡¡¡¡¡¡¡¡¡¡...¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ ; code=0¤Î¾ì¹ç¤Î½èÍý 20|¡¡CASE1: 21|¡¡¡¡¡¡¡¡¡¡...¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ ; code=1¤Î¾ì¹ç¤Î½èÍý 22|¡¡¡¡¡¡¡¡¡¡... 23|¡¡CASE9: 24|¡¡¡¡¡¡¡¡¡¡...¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ ; code=9¤Î¾ì¹ç¤Î½èÍý -------------------------------------------------------------------------------------------------- ¢¨¤³¤ì°Ê¹ß¤ÎÀâÌÀ¤Ç¸Ä¡¹¤ÎÌ¿Îá¤Ë¤Ä¤¤¤Æ¼Â¹Ô¥µ¥¤¥¯¥ë¿ô¤òÄ´¤Ù¤Æ¹Ô¤­¤Þ¤¹¤¬¡¢¤È¤ê¤¢¤¨¤º¥á¥â¥ê¥¢¥¯¥»¥¹»þ¤Î¥¦¥§¥¤¥È¥µ¥¤¥¯¥ë¤Ï½ü³°¤·¤Æ¹Í¤¨¤Þ¤¹¡£ 9¡Á10¹ÔÌܤˤ´ÃíÌܤ¯¤À¤µ¤¤¡£ ¥Ç¥£¥ì¥¤¥Éʬ´ôµ¡Ç½¤ò»È¤Ã¤Æ¡¢¥¸¥ã¥ó¥×Ì¿Îá¤ò1¥µ¥¤¥¯¥ë¹â®²½¤·¤Æ¤¤¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡jp.d %r3¡¡¡¡¡¡¡¡; 1¥µ¥¤¥¯¥ë ¡¡¡¡¡¡¡¡add %r0, 1¡¡¡¡¡¡; 1¥µ¥¤¥¯¥ë ¤â¤·¥Ç¥£¥ì¥¤¥Éʬ´ôµ¡Ç½¤ò»È¤ï¤º¤ËÉáÄ̤˽ñ¤±¤Ð¡¢¼¡¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡add %r0, 1¡¡¡¡¡¡; 1¥µ¥¤¥¯¥ë ¡¡¡¡¡¡¡¡jp %r3¡¡¡¡¡¡¡¡¡¡; 2¥µ¥¤¥¯¥ë ½¾¤Ã¤Æ¡¢¥Ç¥£¥ì¥¤¥Éʬ´ôµ¡Ç½¤ò»È¤Ã¤¿Êý¤¬1¥µ¥¤¥¯¥ë®¤¯¤Ê¤ê¤Þ¤¹¡£ ¡¦¡¦¡¦¤È¸À¤¤¤¿¤¤¤È¤³¤í¤Ç¤¹¤¬¡¢¼Â¤Ï¤³¤Î¾ì¹ç¤Ë¸Â¤Ã¤Æ¸À¤¨¤Ð¡¢¥Ç¥£¥ì¥¤¥Éʬ´ôµ¡Ç½¤ò»È¤Ã¤¿¾ì¹ç¤È»È¤ï¤Ê¤¤¾ì¹ç¤Î¥µ¥¤¥¯¥ë¿ô¤ÏÊѤï¤é¤Ê¤¤¤Î¤Ç¤¹¡£ 8¡Á9¹ÔÌܤˤ´ÃíÌܤ¯¤À¤µ¤¤¡£ ¡¡¡¡¡¡¡¡08|¡¡¡¡¡¡¡¡ld.w %r3, [%r1] ¡¡¡¡¡¡¡¡09|¡¡¡¡¡¡¡¡jp.d %r3 8¹ÔÌܤǥá¥â¥ê¤«¤éÆÉ¤ß¹þ¤ó¤À%r3¤ÎÃͤò¡¢Ä¾¸å¤Ë9¹ÔÌܤΥ¸¥ã¥ó¥×Ì¿Îá¤ÇÈô¤ÓÀ襢¥É¥ì¥¹¤È¤·¤Æ»²¾È¤·¤Æ¤¤¤Þ¤¹¡£ S1C33209 CPU¤Ç¤Ï¤³¤Î¤è¤¦¤Ê½èÍý¤ò¹Ô¤Ã¤¿¾ì¹ç¤Ë¡Ö¥¤¥ó¥¿¡¼¥í¥Ã¥¯¡×¤È¸Æ¤Ð¤ì¤ëÃٱ䤬ȯÀ¸¤·¡¢Ì¿Îá¤Î¼Â¹Ô»þ´Ö¤¬1¥µ¥¤¥¯¥ëŤ¯¤Ê¤ë¤Î¤Ç¤¹¡£ ¾Ü¤·¤¯¤Ï¡ÖS1C33000¥³¥¢CPU¥Þ¥Ë¥å¥¢¥ë(33000Core-J.pdf)¡×34¥Ú¡¼¥¸¡Ø3.2 ¥×¥í¥°¥é¥à¼Â¹Ô¾õÂÖ (7) ¥¤¥ó¥¿¡¼¥í¥Ã¥¯¤Ë¤è¤ëÃÙ±ä¡Ù¤ò¤´»²¾È¤¯¤À¤µ¤¤¡£ ·ë¶É¡¢9¡Á10¹ÔÌܤÎËÜÅö¤Î¼Â¹Ô¥µ¥¤¥¯¥ë¿ô¤Ï¼¡¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡jp.d %r3¡¡¡¡¡¡¡¡; 1¥µ¥¤¥¯¥ë¡Ü1¥µ¥¤¥¯¥ë(¥¤¥ó¥¿¡¼¥í¥Ã¥¯) ¡¡¡¡¡¡¡¡add %r0, 1¡¡¡¡¡¡; 1¥µ¥¤¥¯¥ë ¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¤ò»È¤ï¤Ê¤¤¾ì¹ç¤Ï¡¢¥¸¥ã¥ó¥×Ì¿Îá¤Î¼Â¹Ô»þ´Ö¤¬1¥µ¥¤¥¯¥ëŤ¤Âå¤ï¤ê¤Ë¥¤¥ó¥¿¡¼¥í¥Ã¥¯¤ÏȯÀ¸¤»¤º¡¢ ¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¤ò»È¤Ã¤¿¾ì¹ç¤Ï¡¢¥¸¥ã¥ó¥×Ì¿Îá¤Î¼Â¹Ô»þ´Ö¤¬1¥µ¥¤¥¯¥ëû¤¤Âå¤ï¤ê¤Ë¥¤¥ó¥¿¡¼¥í¥Ã¥¯¤¬È¯À¸¤·¤Þ¤¹¡£ ½¾¤Ã¤Æ¤³¤Î¾ì¹ç¤Ë¸Â¤Ã¤Æ¸À¤¨¤Ð¡¢¤É¤Á¤é¤ÎÊýË¡¤ò»È¤Ã¤Æ¤âÁ´ÂΤΥµ¥¤¥¯¥ë¿ô¤Ï3¥µ¥¤¥¯¥ë¤È¤Ê¤ê¡¢¼Â¹Ô®ÅÙ¤ÏÆ±¤¸¤Ç¤¹¡£ ¤Ç¤Ï¤Ê¤¼¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¤ò»È¤¦Êý¤Î¥×¥í¥°¥é¥à¤òºÎÍѤ·¤¿¤«¤È¸À¤¦¤È¡¢¼¡¤Î¤è¤¦¤ÊȽÃǤˤè¤ê¤Þ¤¹¡£ ¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¤ò»È¤ï¤Ê¤¤Êý¤Î¹ç·×¼Â¹Ô¥µ¥¤¥¯¥ë¿ô¤Ï¡¢É¬¤º3¥µ¥¤¥¯¥ë¤È¤Ê¤ê¤Þ¤¹¡£Îã³°¤Ï¤¢¤ê¤Þ¤»¤ó¡£ ¤½¤ì¤ËÂФ·¡¢¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¤ò»È¤Ã¤¿¾ì¹ç¤Î¹ç·×¼Â¹Ô¥µ¥¤¥¯¥ë¿ô¤Ï¡¢Èó¾ï¤Ë¹¬±¿¤Ê¾ì¹ç¤Ë2¥µ¥¤¥¯¥ë¤È¤Ê¤ë²ÄǽÀ­¤¬¤¢¤ê¤Þ¤¹¡£ ¤É¤ó¤Ê¹¬±¿¤«¤È¸À¤¤¤Þ¤¹¤È¡¢8¡Á9¹ÔÌܤδ֤˳ä¤ê¹þ¤ß¤¬È¯À¸¤·¤¿¾ì¹ç¤Ç¤¹¡£ 8¹ÔÌܤÎÌ¿Îá¼Â¹Ôľ¸å¤Ë¥¿¥¤¥Þ¤ä¥µ¥¦¥ó¥ÉÅù¤Î³ä¤ê¹þ¤ß¤¬È¯À¸¤¹¤ë¤È¡¢8¹ÔÌܤÈ9¹ÔÌܤδ֤dzä¤ê¹þ¤ß½èÍý¤ò¹Ô¤¦¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£ ¤¹¤ë¤È¡¢8¹ÔÌܤǥá¥â¥ê¤«¤éÆÉ¤ß¹þ¤ó¤À%r3¤ÎÃͤò¡¢¡Öľ¸å¤Ë¡×9¹ÔÌܤǻ²¾È¤¹¤ë¤ï¤±¤Ç¤Ï¤Ê¤¯¤Ê¤ê¤Þ¤¹¡£ ½¾¤Ã¤Æ9¹ÔÌܤǥ¤¥ó¥¿¡¼¥í¥Ã¥¯¤ÏȯÀ¸¤»¤º¡¢9¹ÔÌܤÈ10¹ÔÌܤιç·×¼Â¹Ô¥µ¥¤¥¯¥ë¿ô¤Ï2¥µ¥¤¥¯¥ë¤È¤Ê¤ê¤Þ¤¹¡£ ¡¦¡¦¡¦¤È¤Ï¸À¤¨¤³¤ó¤Ê¹¬±¿¤ÏÌÇ¿¤Ë¤¢¤ë¤ï¤±¤Ç¤Ê¤·¡¢Á´ÂΤήÅÙ¤«¤é¸«¤ì¤Ð 0.00...01% ÄøÅ٤ΰ㤤¤Ç¤·¤«¤Ê¤¤¤Ç¤·¤ç¤¦¡£ ¤É¤Á¤é¤ÎÊýË¡¤ò»È¤¦¤«¤ÏÁ´¤¯¡Èµ¤Ê¬¤ÎÌäÂê¡É¤Ç¤¢¤ê¡¢½ÅÍפʤΤϡ¢¤É¤Á¤é¤ÎÊýË¡¤Ç¤âÀµ¤·¤¯Æ°¤¯¡¢¤È¤¤¤¦¤³¤È¤Ç¤¹¡£ ¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¡¡¤³¤³¤Þ¤Ç¤ÏÌäÂꤢ¤ê¤Þ¤»¤ó¡£»ÅÍÍÄ̤ê¤Îưºî¤Ç¤¹¡£ÌäÂê¤Ï¤³¤³¤«¤é¡¡¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£ ¤È¤³¤í¤¬¼Â¤Ï¡¢¤¢¤ë¾ò·ï¤¬½Å¤Ê¤Ã¤¿¾ì¹ç¤Ë¡¢¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¤ò»È¤¦Êý¤Î¥×¥í¥°¥é¥à¤ÏÀµ¤·¤¯Æ°¤«¤Ê¤¯¤Ê¤ê¤Þ¤¹¡£ ¤¢¤ë¾ò·ï¤È¤Ï¡¢ ¡¡¡¡¡¡¡¡¤³¤Î¥µ¥Ö¥ë¡¼¥Á¥ó¤ò¹â®RAM¾å¤Ç¼Â¹Ô¤·¤¿¾ì¹ç ¤Ç¤¹¡£¤ï¤¶¤ï¤¶¼êºî¶È¤ÇºÇŬ²½¤¹¤ë¤«¤é¤Ë¤Ï¹â®À­¤¬É¬Íפʥµ¥Ö¥ë¡¼¥Á¥ó¤Ç¤¢¤ê¡¢¤â¤Á¤í¤ó¹â®RAM¤ËžÁ÷¤·¤Æ¼Â¹Ô¤¹¤ë¤Ç¤·¤ç¤¦¡£ º£²ó¤¬Àµ¤Ë¤³¤Î¥±¡¼¥¹¤ËÁêÅö¤·¤Þ¤·¤¿¡£ ¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¤ò»È¤¦Êý¤Î¥×¥í¥°¥é¥à¤ò¹â®RAM¤ËÃÖ¤¤¤Æ¼Â¹Ô¤¹¤ë¤È¡¢¼¡¤Î¤è¤¦¤Ê¿¶¤ëÉñ¤¤¤È¤Ê¤ê¤Þ¤¹¡£(¢¨¥µ¥¤¥¯¥ë¿ô¤Ï¿ä¬¤Ç¤¹) ¡¡¡¡¡¡¡¡ 8|¡¡¡¡¡¡¡¡ld.w %r3, [%r1]¡¡¡¡¡¡; 1¥µ¥¤¥¯¥ë ¡¡¡¡¡¡¡¡ 9|¡¡¡¡¡¡¡¡jp.d %r3¡¡¡¡¡¡¡¡¡¡¡¡ ; 1¥µ¥¤¥¯¥ë¡Ü1¥µ¥¤¥¯¥ë(¥¤¥ó¥¿¡¼¥í¥Ã¥¯) ¡¡¡¡¡¡¡¡¡¡|¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ ; ¡ú¤³¤³¤Ç¥¸¥ã¥ó¥×¤·¤Æ¤·¤Þ¤¦!!¡ú ¡¡¡¡¡¡¡¡10|¡¡¡¡¡¡¡¡add %r0, 1¡¡¡¡¡¡¡¡¡¡ ; ¡ú¼Â¹Ô¤µ¤ì¤Þ¤»¤ó!!¡ú ¤¹¤Ê¤ï¤Á¡¢¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¤Ç¤¢¤ë¤Ï¤º¤Î10¹ÔÌÜ¡Öadd %r0, 1¡×¤¬¼Â¹Ô¤µ¤ì¤Ê¤¤¤Î¤Ç¤¹¡£ C¸À¸ì¤ËÎ㤨¤ë¤È¡¢ ¡¡¡¡¡¡¡¡switch(*pc++) { ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡... ¡¡¡¡¡¡¡¡} ¤È½ñ¤¤¤¿¤Ä¤â¤ê¤¬¼ÂºÝ¤Îưºî¤Ï ¡¡¡¡¡¡¡¡switch(*pc) { ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡... ¡¡¡¡¡¡¡¡} ¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¦¡¢¤È¤¤¤¦»öÂÖ¡£Àµ¤·¤¤·ë²Ì¤¬ÆÀ¤é¤ì¤ë¤Ï¤º¤â¤¢¤ê¤Þ¤»¤ó¡£ ¤³¤ì¤Ï´í¸±¤Ç¤¹!! ¤â¤¦¾¯¤·¾Ü¤·¤¯¡¢¾É¾õ¤¬È¯¸½¤¹¤ë¾ò·ï¤òÄ´¤Ù¤Æ¤ª¤¯É¬Íפ¬¤¢¤ê¤½¤¦¤Ç¤¹¡£ (³¤­¤Þ¤¹¡Ä) * Mon May 5 05:30:00 JST 2003 Naoyuki Sawa - ·Ù¹ð¤ÎÈϰϤ¬°ã¤¦ ºòÆü½ñ¤¤¤¿¡Öµ÷Î¥¤òµá¤á¤ë¡Ê¸íº¹¡ÞÌ󣱡ó¡¦30¥Ó¥Ã¥ÈÈǡˡפΥ¢¥»¥ó¥Ö¥é¥×¥í¥°¥é¥à¡¢¼Â¤Ï¤«¤Ê¤ê¥Ï¥Þ¥ê¤Þ¤·¤¿¡£ ¤É¤¦¤ä¤Ã¤Æ¤â·ë²Ì¤¬¹ç¤ï¤º¡¢¤µ¤ó¤¶¤óǺ¤ó¤ÀËö¤Ë¸«¤Ä¤±¤¿¸¶°ø¤Ï¼¡¤Î¤è¤¦¤Ê¤â¤Î¤Ç¤·¤¿¡£ Àµ¤·¤¯¤Ï ¡¡¡¡¡¡¡¡xld.w %r13, 55 ¤È½ñ¤¯¤Ù¤­¤È¤³¤í¤ò ¡¡¡¡¡¡¡¡ld.w %r13, 55 ¤È½ñ¤¤¤Æ¤·¤Þ¤Ã¤Æ¤¤¤¿¤Î¤Ç¤¹¡£ P/ECE¤ÎCPU S1C33¤ÎÌ¿Î᥻¥Ã¥È¤Ï¡¢¤¿¤¤¤Æ¤¤¤Î¾ì¹ç¡¢Â¨ÃͤË6¥Ó¥Ã¥È¤Þ¤Ç¤Î¿ôÃͤ·¤«»ØÄê¤Ç¤­¤Þ¤»¤ó¡£ ¤½¤ì°Ê¾å¤Î¥Ó¥Ã¥È¿ô¤Î¨Ãͤò»È¤¤¤¿¤¤¾ì¹ç¤Ï¡¢extÌ¿Îá¤ò»È¤Ã¤Æ·å¤ò³ÈÄ¥¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ ¾å¤ÎÎã¤Ëµó¤²¤¿¡Öld¡×Ì¿Îá¤Î¾ì¹ç¡¢Â¨ÃͤˤÏÉ乿ÉÕ¤­6¥Ó¥Ã¥È¤Þ¤Ç¤·¤«»ØÄê¤Ç¤­¤Þ¤»¤ó¡£ É乿ÉÕ¤­6¥Ó¥Ã¥È¤Çɽ¸½¤Ç¤­¤ë¿ôÃͤÏ-32¡Á31¤Ç¤¹¤Î¤Ç¡¢ ¡¡¡¡¡¡¡¡¡¦ ¡¡¡¡¡¡¡¡¡¦ ¡¡¡¡¡¡¡¡¡¦ ¡¡¡¡¡¡¡¡ld.w %r13, 34 ¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª ¡¡¡¡¡¡¡¡ld.w %r13, 33 ¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª ¡¡¡¡¡¡¡¡ld.w %r13, 32 ¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª ¡¡¡¡¡¡¡¡ld.w %r13, 31 ¡¡¡¡¡¡¡¡¡¡; Àµ¤·¤¤ ¡¡¡¡¡¡¡¡ld.w %r13, 30 ¡¡¡¡¡¡¡¡¡¡; Àµ¤·¤¤ ¡¡¡¡¡¡¡¡ld.w %r13, 29 ¡¡¡¡¡¡¡¡¡¡; Àµ¤·¤¤ ¡¡¡¡¡¡¡¡¡¦ ¡¡¡¡¡¡¡¡¡¦ ¡¡¡¡¡¡¡¡¡¦ ¡¡¡¡¡¡¡¡ld.w %r13, 1¡¡¡¡¡¡¡¡¡¡¡¡; Àµ¤·¤¤ ¡¡¡¡¡¡¡¡ld.w %r13, 0¡¡¡¡¡¡¡¡¡¡¡¡; Àµ¤·¤¤ ¡¡¡¡¡¡¡¡ld.w %r13, -1 ¡¡¡¡¡¡¡¡¡¡; Àµ¤·¤¤ ¡¡¡¡¡¡¡¡¡¦ ¡¡¡¡¡¡¡¡¡¦ ¡¡¡¡¡¡¡¡¡¦ ¡¡¡¡¡¡¡¡ld.w %r13, -30¡¡¡¡¡¡¡¡¡¡; Àµ¤·¤¤ ¡¡¡¡¡¡¡¡ld.w %r13, -31¡¡¡¡¡¡¡¡¡¡; Àµ¤·¤¤ ¡¡¡¡¡¡¡¡ld.w %r13, -32¡¡¡¡¡¡¡¡¡¡; Àµ¤·¤¤ ¡¡¡¡¡¡¡¡ld.w %r13, -33¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª ¡¡¡¡¡¡¡¡ld.w %r13, -34¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª ¡¡¡¡¡¡¡¡ld.w %r13, -35¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª ¡¡¡¡¡¡¡¡¡¦ ¡¡¡¡¡¡¡¡¡¦ ¡¡¡¡¡¡¡¡¡¦ ¤È¤Ê¤ê¤Þ¤¹¡£ ¤Þ¤¿Ê̤ÎÎã¤È¤·¤Æ¡¢¡Öadd¡×Ì¿Îá¤Ê¤É¤Ï¨ÃͤËÉ乿¤Ê¤·6¥Ó¥Ã¥È¤Þ¤Ç¤Î¿ôÃͤ·¤«»ØÄê¤Ç¤­¤Þ¤»¤ó¡£ É乿¤Ê¤·6¥Ó¥Ã¥È¤Çɽ¸½¤Ç¤­¤ë¿ôÃͤÏ0¡Á63¤Ç¤¹¤Î¤Ç¡¢ ¡¡¡¡¡¡¡¡¡¦ ¡¡¡¡¡¡¡¡¡¦ ¡¡¡¡¡¡¡¡¡¦ ¡¡¡¡¡¡¡¡add %r13, 66¡¡¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª ¡¡¡¡¡¡¡¡add %r13, 65¡¡¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª ¡¡¡¡¡¡¡¡add %r13, 64¡¡¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª ¡¡¡¡¡¡¡¡add %r13, 63¡¡¡¡¡¡¡¡¡¡¡¡; Àµ¤·¤¤ ¡¡¡¡¡¡¡¡add %r13, 62¡¡¡¡¡¡¡¡¡¡¡¡; Àµ¤·¤¤ ¡¡¡¡¡¡¡¡add %r13, 61¡¡¡¡¡¡¡¡¡¡¡¡; Àµ¤·¤¤ ¡¡¡¡¡¡¡¡¡¦ ¡¡¡¡¡¡¡¡¡¦ ¡¡¡¡¡¡¡¡¡¦ ¡¡¡¡¡¡¡¡add %r13, 1 ¡¡¡¡¡¡¡¡¡¡¡¡; Àµ¤·¤¤ ¡¡¡¡¡¡¡¡add %r13, 0 ¡¡¡¡¡¡¡¡¡¡¡¡; Àµ¤·¤¤ ¡¡¡¡¡¡¡¡add %r13, -1¡¡¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª ¡¡¡¡¡¡¡¡add %r13, -2¡¡¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª ¡¡¡¡¡¡¡¡add %r13, -3¡¡¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª ¡¡¡¡¡¡¡¡¡¦ ¡¡¡¡¡¡¡¡¡¦ ¡¡¡¡¡¡¡¡¡¦ ¤È¤Ê¤ê¤Þ¤¹¡£ ¤µ¤Æ¡¢º£²ó¤Î¥ß¥¹ ¡¡¡¡¡¡¡¡ld.w %r13, 55 ¤Ï¡¢¡Öld¡×Ì¿Î᤬°·¤¨¤ëÉ乿ÉÕ¤­6¥Ó¥Ã¥È¤ÎÈϰϡÊ-32¡Á31¡Ë¤ò³°¤ì¤¿Â¨ÃÍ¡Ê55¡Ë¤ò»ØÄꤷ¤Æ¤·¤Þ¤Ã¤¿¤³¤È¤Ç¤¹¡£ ³Î¤«¤ËÅöÊý¤Î¥ß¥¹¤Ê¤Î¤Ç¤¹¤¬¡¢ËÜÍè¡¢¤³¤¦¤¤¤¦¥ß¥¹¤ËÂФ·¤Æ¤Ï¥¢¥»¥ó¥Ö¥é¤¬·Ù¹ð¤òȯ¤¹¤ë¤³¤È¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡ÖWarning: Numeric range.¡§¥¤¥ó¥¹¥È¥é¥¯¥·¥ç¥ó¥ª¥Ú¥é¥ó¥É¤Î¿ôÃͤ¬ÉÔÀµ¤Ç¤¹¡£¡× ¡¡¡¡¡¡¡¡S1C33 Family C¥³¥ó¥Ñ¥¤¥é¥Ñ¥Ã¥±¡¼¥¸¥Þ¥Ë¥å¥¢¥ë Ver.4 (S5U1C33000C_J.pdf) 179¥Ú¡¼¥¸¤è¤ê ¤È¤³¤í¤¬¡¢¥¢¥»¥ó¥Ö¥é¤Ï¾å¤Î¥³¡¼¥É¤ËÂФ·¤Æ·Ù¹ð¤òȯ¤·¤Þ¤»¤ó¤Ç¤·¤¿¡£ ¤½¤·¤Æ¡¢55¤ò̵Íý¤ä¤êÉ乿ÉÕ¤­6¥Ó¥Ã¥È¤È²ò¼á¤·¤¿Ãͤǡ¢Ì¿Îᥳ¡¼¥É¤òÀ¸À®¤·¤Æ¤·¤Þ¤Ã¤Æ¤¤¤¿¤Î¤Ç¤¹¡£ ¡¡¡¡¡¡¡¡ld.w %r13, -9 ¡¡¡¡¡¡¡¡¡¡; -9 ¡Ä 55¤ò̵Íý¤ä¤êÉ乿ÉÕ¤­6¥Ó¥Ã¥È¤È²ò¼á¤·¤¿ÃÍ ¤Ê¤¼·Ù¹ð¤¬È¯¤»¤é¤ì¤Ê¤«¤Ã¤¿¤Î¤Ç¤·¤ç¤¦¤«¡© ¤¤¤¯¤Ä¤«»î¤·¤Æ¤ß¤¿¤È¤³¤í¡¢S1C33 CPU¤Î¥¢¥»¥ó¥Ö¥éas33.exe¤Ï¡¢·Ù¹ð¤È¤¹¤ë¿ôÃͤÎÈϰϤò´Ö°ã¤¨¤Æ¤¤¤ë¤è¤¦¤Ç¤¹¡£ ¡Öld¡×Ì¿Îá¤È¤¤¤í¤¤¤í¤Ê¿ôÃͤòÁȤ߹ç¤ï¤»¤Æ¡¢·Ù¹ð¤¬È¯¤»¤é¤ì¤ë¤«¤É¤¦¤«¤ò»î¤·¤Æ¤ß¤Þ¤·¤¿¡£ ¡¡¡¡¡¡¡¡¡¦ ¡¡¡¡¡¡¡¡¡¦ ¡¡¡¡¡¡¡¡¡¦ ¡¡¡¡¡¡¡¡ld.w %r13, 66 ¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª¡¡¡¡¡¡; ·Ù¹ð¤¢¤ê ¡¡¡¡¡¡¡¡ld.w %r13, 65 ¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª¡¡¡¡¡¡; ·Ù¹ð¤¢¤ê ¡¡¡¡¡¡¡¡ld.w %r13, 64 ¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª¡¡¡¡¡¡; ·Ù¹ð¤¢¤ê ¡¡¡¡¡¡¡¡ld.w %r13, 63 ¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª¡¡¡¡¡¡; ·Ù¹ð¤Ê¤·¡ª´í¸±¡ª ¡¡¡¡¡¡¡¡ld.w %r13, 62 ¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª¡¡¡¡¡¡; ·Ù¹ð¤Ê¤·¡ª´í¸±¡ª ¡¡¡¡¡¡¡¡ld.w %r13, 61 ¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª¡¡¡¡¡¡; ·Ù¹ð¤Ê¤·¡ª´í¸±¡ª ¡¡¡¡¡¡¡¡¡¦ ¡¡¡¡¡¡¡¡¡¦ ¡¡¡¡¡¡¡¡¡¦ ¡¡¡¡¡¡¡¡ld.w %r13, 34 ¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª¡¡¡¡¡¡; ·Ù¹ð¤Ê¤·¡ª´í¸±¡ª ¡¡¡¡¡¡¡¡ld.w %r13, 33 ¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª¡¡¡¡¡¡; ·Ù¹ð¤Ê¤·¡ª´í¸±¡ª ¡¡¡¡¡¡¡¡ld.w %r13, 32 ¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª¡¡¡¡¡¡; ·Ù¹ð¤Ê¤·¡ª´í¸±¡ª ¡¡¡¡¡¡¡¡ld.w %r13, 31 ¡¡¡¡¡¡¡¡¡¡; Àµ¤·¤¤¡¡¡¡¡¡¡¡; ·Ù¹ð¤Ê¤· ¡¡¡¡¡¡¡¡ld.w %r13, 30 ¡¡¡¡¡¡¡¡¡¡; Àµ¤·¤¤¡¡¡¡¡¡¡¡; ·Ù¹ð¤Ê¤· ¡¡¡¡¡¡¡¡ld.w %r13, 29 ¡¡¡¡¡¡¡¡¡¡; Àµ¤·¤¤¡¡¡¡¡¡¡¡; ·Ù¹ð¤Ê¤· ¡¡¡¡¡¡¡¡¡¦ ¡¡¡¡¡¡¡¡¡¦ ¡¡¡¡¡¡¡¡¡¦ ¡¡¡¡¡¡¡¡ld.w %r13, 1¡¡¡¡¡¡¡¡¡¡¡¡; Àµ¤·¤¤¡¡¡¡¡¡¡¡; ·Ù¹ð¤Ê¤· ¡¡¡¡¡¡¡¡ld.w %r13, 0¡¡¡¡¡¡¡¡¡¡¡¡; Àµ¤·¤¤¡¡¡¡¡¡¡¡; ·Ù¹ð¤Ê¤· ¡¡¡¡¡¡¡¡ld.w %r13, -1 ¡¡¡¡¡¡¡¡¡¡; Àµ¤·¤¤¡¡¡¡¡¡¡¡; ·Ù¹ð¤Ê¤· ¡¡¡¡¡¡¡¡¡¦ ¡¡¡¡¡¡¡¡¡¦ ¡¡¡¡¡¡¡¡¡¦ ¡¡¡¡¡¡¡¡ld.w %r13, -30¡¡¡¡¡¡¡¡¡¡; Àµ¤·¤¤¡¡¡¡¡¡¡¡; ·Ù¹ð¤Ê¤· ¡¡¡¡¡¡¡¡ld.w %r13, -31¡¡¡¡¡¡¡¡¡¡; Àµ¤·¤¤¡¡¡¡¡¡¡¡; ·Ù¹ð¤Ê¤· ¡¡¡¡¡¡¡¡ld.w %r13, -32¡¡¡¡¡¡¡¡¡¡; Àµ¤·¤¤¡¡¡¡¡¡¡¡; ·Ù¹ð¤Ê¤· ¡¡¡¡¡¡¡¡ld.w %r13, -33¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª¡¡¡¡¡¡; ·Ù¹ð¤Ê¤· ¡¡¡¡¡¡¡¡ld.w %r13, -34¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª¡¡¡¡¡¡; ·Ù¹ð¤Ê¤· ¡¡¡¡¡¡¡¡ld.w %r13, -35¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª¡¡¡¡¡¡; ·Ù¹ð¤Ê¤· ¡¡¡¡¡¡¡¡¡¦ ¡¡¡¡¡¡¡¡¡¦ ¡¡¡¡¡¡¡¡¡¦ 32¡Á63¤Þ¤Ç¤Î¿ôÃͤ¬¡¢Àµ¤·¤¤Ì¿Îᥳ¡¼¥É¤¬À¸À®¤µ¤ì¤Ê¤¤¤Ë¤â´Ø¤ï¤é¤ºÌµ·Ù¹ð¤È¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£ ¡Öadd¡×Ì¿Îá¤Ë¤Ä¤¤¤Æ¤âƱÍͤ˻¤Æ¤ß¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¦ ¡¡¡¡¡¡¡¡¡¦ ¡¡¡¡¡¡¡¡¡¦ ¡¡¡¡¡¡¡¡add %r13, 66¡¡¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª¡¡¡¡¡¡; ·Ù¹ð¤¢¤ê ¡¡¡¡¡¡¡¡add %r13, 65¡¡¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª¡¡¡¡¡¡; ·Ù¹ð¤¢¤ê ¡¡¡¡¡¡¡¡add %r13, 64¡¡¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª¡¡¡¡¡¡; ·Ù¹ð¤¢¤ê ¡¡¡¡¡¡¡¡add %r13, 63¡¡¡¡¡¡¡¡¡¡¡¡; Àµ¤·¤¤¡¡¡¡¡¡¡¡; ·Ù¹ð¤Ê¤· ¡¡¡¡¡¡¡¡add %r13, 62¡¡¡¡¡¡¡¡¡¡¡¡; Àµ¤·¤¤¡¡¡¡¡¡¡¡; ·Ù¹ð¤Ê¤· ¡¡¡¡¡¡¡¡add %r13, 61¡¡¡¡¡¡¡¡¡¡¡¡; Àµ¤·¤¤¡¡¡¡¡¡¡¡; ·Ù¹ð¤Ê¤· ¡¡¡¡¡¡¡¡¡¦ ¡¡¡¡¡¡¡¡¡¦ ¡¡¡¡¡¡¡¡¡¦ ¡¡¡¡¡¡¡¡add %r13, 1 ¡¡¡¡¡¡¡¡¡¡¡¡; Àµ¤·¤¤¡¡¡¡¡¡¡¡; ·Ù¹ð¤Ê¤· ¡¡¡¡¡¡¡¡add %r13, 0 ¡¡¡¡¡¡¡¡¡¡¡¡; Àµ¤·¤¤¡¡¡¡¡¡¡¡; ·Ù¹ð¤Ê¤· ¡¡¡¡¡¡¡¡add %r13, -1¡¡¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª¡¡¡¡¡¡; ·Ù¹ð¤Ê¤·¡ª´í¸±¡ª ¡¡¡¡¡¡¡¡add %r13, -2¡¡¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª¡¡¡¡¡¡; ·Ù¹ð¤Ê¤·¡ª´í¸±¡ª ¡¡¡¡¡¡¡¡add %r13, -3¡¡¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª¡¡¡¡¡¡; ·Ù¹ð¤Ê¤·¡ª´í¸±¡ª ¡¡¡¡¡¡¡¡¡¦ ¡¡¡¡¡¡¡¡¡¦ ¡¡¡¡¡¡¡¡¡¦ ¡¡¡¡¡¡¡¡add %r13, -30 ¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª¡¡¡¡¡¡; ·Ù¹ð¤Ê¤·¡ª´í¸±¡ª ¡¡¡¡¡¡¡¡add %r13, -31 ¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª¡¡¡¡¡¡; ·Ù¹ð¤Ê¤·¡ª´í¸±¡ª ¡¡¡¡¡¡¡¡add %r13, -32 ¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª¡¡¡¡¡¡; ·Ù¹ð¤Ê¤·¡ª´í¸±¡ª ¡¡¡¡¡¡¡¡add %r13, -33 ¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª¡¡¡¡¡¡; ·Ù¹ð¤¢¤ê ¡¡¡¡¡¡¡¡add %r13, -34 ¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª¡¡¡¡¡¡; ·Ù¹ð¤¢¤ê ¡¡¡¡¡¡¡¡add %r13, -35 ¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª¡¡¡¡¡¡; ·Ù¹ð¤¢¤ê ¡¡¡¡¡¡¡¡¡¦ ¡¡¡¡¡¡¡¡¡¦ ¡¡¡¡¡¡¡¡¡¦ -32¡Á-1¤Þ¤Ç¤Î¿ôÃͤ¬¡¢Àµ¤·¤¤Ì¿Îᥳ¡¼¥É¤¬À¸À®¤µ¤ì¤Ê¤¤¤Ë¤â´Ø¤ï¤é¤ºÌµ·Ù¹ð¤È¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£ ¤É¤¦¤ä¤éas33.exe¤Ï¡¢Ì¿Îá¤Ë¤è¤Ã¤ÆÍ­¸ú¤Ê¿ôÃͤÎÈϰϤ¬°ã¤¦¤³¤È¤ò˺¤ì¡¢¾ï¤Ë-32¡Á63¤¬Àµ¤·¤¤¿ôÃͤÎÈϰϤÀ¤È»×¤Ã¤Æ¤·¤Þ¤Ã¤Æ¤¤¤ë¤è¤¦¤Ç¤¹¡£ º£²ó¤Ï¾®¤µ¤Ê¥×¥í¥°¥é¥à¤À¤Ã¤¿¤Î¤Ç´Ö°ã¤¤¤Ëµ¤ÉÕ¤¤¤¿¤â¤Î¤Î¡¢Â礭¤Ê¥×¥í¥°¥é¥à¤Ç´Ö°ã¤Ã¤¿¥³¡¼¥É¤¬Ìµ·Ù¹ð¤ÇÄ̤äƤ·¤Þ¤Ã¤Æ¤¤¤¿¤éޥޥޥ ¤³¤Î´í¸±¤ò²óÈò¤¹¤ë¤Ë¤Ï¡¢¡Öld¡×¤ä¡Öadd¡×Åù¤ÎÌ¿Îá¤Ç¨Ãͤò»È¤¦¾ì¹ç¤Ï¡¢¤¿¤È¤¨¾®¤µ¤ÊÃͤǤâ¾ï¤Ë¡Öxld¡×¡Öxand¡×Åù¤Èɽµ­¤·¤Þ¤·¤ç¤¦¡£ ³ÆÌ¿Îá¤ÎÍ­¸ú¤Ê¿ôÃÍÈϰϤòͤ¨¤ë¤È¡¢¥³¥ó¥Ñ¥¤¥é¤¬¼«Æ°Åª¤Ë¡Öext¡×Ì¿Îá¤òÉղ䷤ơ¢¸í¤Ã¤¿Ì¿Îᥳ¡¼¥É¤ÎÀ¸À®¤òËɤ¤¤Ç¤¯¤ì¤Þ¤¹¡£ * Sun May 4 15:00:00 JST 2003 Naoyuki Sawa - µ÷Î¥¤òµá¤á¤ë¡Ê¸íº¹¡ÞÌ󣱡ó¡¦30¥Ó¥Ã¥ÈÈÇ¡Ë P/ware¤µ¤ó¡Êhttp://www.aw.wakwak.com/~hitode/piece/¡Ë¤Î¥Ú¡¼¥¸¤Î¡¢ µ÷Î¥¤òµá¤á¤ë¡Êhttp://www.aw.wakwak.com/~hitode/piece/index.html#dist2¡Ë¹â®¤ÊÊýË¡¤¬¹¹¿·¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ ¤Þ¤º¡¢Á°²ó¤ÈƱ¤¸¸íº¹¡ÞÌó£´¡ó¤ÎÊýË¡¤Ç¡¢¤è¤êÀºÅ٤ι⤤·¸¿ô¤¬¸ø³«¤µ¤ì¤Þ¤·¤¿¡£ Á°²ó¤Î¥×¥í¥°¥é¥à¤ò¡¢¿·¤·¤¤·¸¿ô¤Çºî¤êľ¤·¤¿¤â¤Î¤¬¤³¤Á¤é¡£ ¡¡¡¡¡¡¡¡http://www.piece-me.org/archive/hypot2a-20030504.zip ¤µ¤é¤Ë¡¢¡Ö¸íº¹Ì󣱡ó¡×¤È¡Ö¸íº¹Ìó£°¡¥£²¡ó¡×¤Î·×»»ÊýË¡¤¬Äɲäµ¤ì¤Æ¤¤¤Þ¤¹¡£ ¸íº¹Ì󣱡ó¤ÎÊýË¡¤¬¡¢Â®ÅÙ¤ÈÀºÅ٤ΥХé¥ó¥¹¤¬¼è¤ì¤Æ¤¤¤Æ¡¢Îɤµ¤½¤¦¤Ç¤¹¡£ ¤½¤³¤Çº£²ó¤Ï¡¢¸íº¹Ì󣱡ó¤Î·×»»ÊýË¡¤Î30¥Ó¥Ã¥ÈÈǤòºî¤Ã¤Æ¤ß¤Þ¤·¤¿¡£ ¡¡¡¡¡¡¡¡/* ¸¶ÅÀ¤ÈÅÀ (x, y) ¤Îµ÷Î¥¤òµá¤á¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡ * [in] ¡¡¡¡¡¡¡¡ *¡¡¡¡¡¡x, y¡¡¡¡¡¡¡¡¡¡¡¡µ÷Î¥¤òµá¤á¤ëºÂɸ ¡¡¡¡¡¡¡¡ * [out] ¡¡¡¡¡¡¡¡ *¡¡¡¡¡¡Ìá¤êÃÍ¡¡¡¡¡¡¡¡¡¡¸¶ÅÀ¤ÈÅÀ (x, y) ¤Îµ÷Î¥ ¡¡¡¡¡¡¡¡ * [note] ¡¡¡¡¡¡¡¡ *¡¡¡¡¡¡* µ÷Î¥¤Î¶á»÷¤ò¤â¤È¤á¤ë·×»»¼°¡§ ¡¡¡¡¡¡¡¡ *¡¡¡¡¡¡¡¡¡¡¡¡¡¡|x|>|y|¤Î¤È¤­¡¢|x|+((|y|*|y|/|x|*55)>>7) ¡¡¡¡¡¡¡¡ *¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ê¸íº¹¤Ï¡ÞÌ󣱡ó¡Ë ¡¡¡¡¡¡¡¡ */ ¡¡¡¡¡¡¡¡int hypot4(int x, int y); ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡asm(" ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡.code ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡.align 1 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡.global hypot4 ¡¡¡¡¡¡¡¡hypot4: ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ld.w %r10, %r12¡¡¡¡¡¡¡¡¡¡; if(x == 0 && y == 0) return 0 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡or %r10, %r13 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡jreq hypot4_exit ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡cmp %r12, 0¡¡¡¡¡¡¡¡¡¡¡¡¡¡; %r12 = |x| ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡jrge 3 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ not %r12, %r12 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ add %r12, 1 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡cmp %r13, 0¡¡¡¡¡¡¡¡¡¡¡¡¡¡; %r13 = |y| ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡jrge 3 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ not %r13, %r13 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ add %r13, 1 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡cmp %r12, %r13 ¡¡¡¡¡¡¡¡¡¡; if(|x| < |y|) %r12 exch %r13 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡jrge 4 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ xor %r13, %r12 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ xor %r12, %r13 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ xor %r13, %r12 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mltu.w %r13, %r13¡¡¡¡¡¡¡¡; %r5:%r4 = |y|^2 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ld.w %r4, %alr ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ld.w %r5, %ahr ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡xld.w %r13, 55 ¡¡¡¡¡¡¡¡¡¡; %r6:%r5:%r4 = |y|^2 * 55 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mltu.w %r4, %r13 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ld.w %r4, %alr ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ld.w %r6, %ahr ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mltu.w %r5, %r13 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ld.w %r5, %alr ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡add %r5, %r6 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡;{{ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡jruge.d 3¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; (!C) ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ ld.w %r6, %ahr ¡¡¡¡¡¡¡¡; (undoc'd delay) ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ add %r6, 1 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡;}}¤Þ¤¿¤Ï{{ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡;ld.w %r6, %ahr ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡;adc %r6, %r8¡¡¡¡¡¡¡¡¡¡¡¡; -gp=0x0 ¤òÁÛÄê ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡;}} ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ld.w %r13, %r5 ¡¡¡¡¡¡¡¡¡¡; %r5:%r4 = (|y|^2 * 55) >> 7 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡xsll %r13, 25 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡xsrl %r4, 7 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡or %r4, %r13 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡xsll %r6, 25 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡xsrl %r5, 7 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡or %r5, %r6 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ld.w %alr, %r4 ¡¡¡¡¡¡¡¡¡¡; %alr = ((|y|^2 * 55) >> 7) / |x| ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡div0u %r12 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ld.w %ahr, %r5 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡div1 %r12¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; 1 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡div1 %r12¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; 2 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡div1 %r12¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; 3 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡div1 %r12¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; 4 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡div1 %r12¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; 5 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡div1 %r12¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; 6 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡div1 %r12¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; 7 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡div1 %r12¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; 8 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡div1 %r12¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; 9 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡div1 %r12¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; 10 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡div1 %r12¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; 11 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡div1 %r12¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; 12 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡div1 %r12¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; 13 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡div1 %r12¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; 14 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡div1 %r12¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; 15 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡div1 %r12¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; 16 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡div1 %r12¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; 17 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡div1 %r12¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; 18 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡div1 %r12¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; 19 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡div1 %r12¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; 20 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡div1 %r12¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; 21 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡div1 %r12¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; 22 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡div1 %r12¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; 23 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡div1 %r12¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; 24 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡div1 %r12¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; 25 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡div1 %r12¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; 26 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡div1 %r12¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; 27 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡div1 %r12¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; 28 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡div1 %r12¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; 29 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡div1 %r12¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; 30 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡div1 %r12¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; 31 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡div1 %r12¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; 32 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ld.w %r10, %alr¡¡¡¡¡¡¡¡¡¡; %r10 = ((|y|^2 * 55) >> 7) / |x| + |x| ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡add %r10, %r12 ¡¡¡¡¡¡¡¡hypot4_exit: ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ret ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡"); ¥ª¥ê¥¸¥Ê¥ë¤Î·×»»¼°¤Ï ¡¡¡¡¡¡¡¡|x|+((|y|*|y|/|x|*55)>>7) ¤Ê¤Î¤Ç¤¹¤¬¡¢|y|*|y| ¤È |x| ¤ÎÃͤ¬¶á¤¤¤È¤­¤Ë¸íº¹¤¬Â礭¤¯¤Ê¤ê¡¢Î㤨¤Ð (-13, 8) ¤ÇÌó£·¡ó¤Î¸íº¹¤¬È¯À¸¤·¤Æ¤·¤Þ¤¤¤Þ¤¹¡£ ¤½¤³¤Ç¡¢¤Á¤ç¤Ã¤È·×»»¼°¤ò¥¢¥ì¥ó¥¸¤·¤Æ¡¢ ¡¡¡¡¡¡¡¡|x|+((|y|*|y|*55>>7)/|x|) ¤È¤·¤Æ¤ß¤Þ¤·¤¿¡£ ¤³¤Î´Ø¿ô¤ò´Þ¤à¡¢Æ°ºî¸¡¾ÚÍÑ¥×¥í¥°¥é¥à¤Ï¤³¤Á¤é¡£ ¡¡¡¡¡¡¡¡http://www.piece-me.org/archive/hypot4-20030504.zip Á°²ó¤ÈƱ¤¸¤¯¡¢¥é¥ó¥À¥à¤ÊºÂɸ (x, y) ¤È¸¶ÅÀ (0, 0) ´Ö¤Îµ÷Î¥¤òµá¤á¡¢ËÜÅö¤ÎÃÍ¤È¤Î¸íº¹¤òɽ¼¨¤·¤Þ¤¹¡£ 10Ëü²óÄøÅÙ·«¤êÊÖ¤·¤Æ¤ß¤¿¤È¤³¤í¡¢¤Û¤È¤ó¤É¡Þ£±¡ó°ÊÆâ¤Ë¼ý¤Þ¤ê¡¢ºÇ°­¤Ç¤â£±¡¥£µ¡ó¤òͤ¨¤ë¤³¤È¤Ï¤¢¤ê¤Þ¤»¤ó¤Ç¤·¤¿¡£ Á°²ó¤Î£´¡ó¡¦30¥Ó¥Ã¥ÈÈǤϡ¢°ì²ó¤¢¤¿¤êÌó30¥µ¥¤¥¯¥ëÁ°¸å¤Ç´°Î»¤·¤Æ¤¤¤Þ¤·¤¿¡£ º£²ó¤Î£±¡ó¡¦30¥Ó¥Ã¥ÈÈǤϡ¢°ì²ó¤¢¤¿¤êÌó90¥µ¥¤¥¯¥ëÁ°¸å¤«¤«¤Ã¤Æ¤·¤Þ¤¤¤Þ¤¹¡£ ¡Ê¤¤¤º¤ì¤â¥½¡¼¥¹¥³¡¼¥É¾å¤Ç¤Î¹ç·×Ãͤǡ¢¼Â¬ÃͤǤϤ¢¤ê¤Þ¤»¤ó¡£¥á¥â¥ê¥¦¥§¥¤¥ÈÅù¤â¹Íθ¤·¤Æ¤¤¤Þ¤»¤ó¡£¡Ë ¤·¤«¤·¤Ê¤¬¤é¡¢»°ÇÜÄøÅÙ¤ÎÃÙ¤µ¤Ç»ÍÇܤÎÀºÅÙ¤¬ÆÀ¤é¤ì¤ë¤Î¤Ê¤é¡¢£±¡óÈǤÎÊý¤ò»È¤ª¤¦¤«¤Ê¡©¤È»×¤¤¤Þ¤·¤¿¡£ * Sat May 3 08:50:00 JST 2003 Naoyuki Sawa - µ÷Î¥¤òµá¤á¤ë¡Ê30¥Ó¥Ã¥ÈÈÇ¡Ë P/ware¤µ¤ó¡Êhttp://www.aw.wakwak.com/~hitode/piece/¡Ë¤Î¥Ú¡¼¥¸¤Ç¡¢ µ÷Î¥¤òµá¤á¤ë¡Êhttp://www.aw.wakwak.com/~hitode/piece/index.html#dist¡Ë¹â®¤ÊÊýË¡¤¬ÀâÌÀ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ ÆÃ¤Ë¡¢¸íº¹£´¡ó¤Î¶á»÷¼°¤ò»È¤Ã¤¿ÊýË¡ hypot2() ¤¬»²¹Í¤Ë¤Ê¤ê¤Þ¤¹¡£ ËͤϤ³¤ì¤Þ¤Ç¥Þ¥È¥â¤ËÊ¿Êýº¬¤ò·×»»¤·¤Æ¤Þ¤·¤¿¡¦¡¦¡¦¤³¤ì¤«¤é¤Ï¤³¤ÎÊýË¡¤ò»È¤ï¤»¤ÆÄº¤­¤Þ¤¹¡£ Àè¤Î¥Ú¡¼¥¸¤Ë¤âÀâÌÀ¤µ¤ì¤Æ¤¤¤ëÄ̤ꡢhypot2() ¤Ï (x, y) ¤¬ 16¥Ó¥Ã¥È¤Þ¤Ç¤Î¿ôÃͤǤʤ¤¤ÈÀµ¤·¤¯Æ°¤­¤Þ¤»¤ó¡£ ¸ÇÄê¾®¿ôÅÀ¿ô¤Ê¤É¤ò»È¤Ã¤Æ¤¤¤ë¤È¡¢16¥Ó¥Ã¥È°Ê¾å¤ÎºÂɸÃͤäµ÷Î¥¤¬É¬ÍפˤʤäƤ¯¤ë¤³¤È¤â·ë¹½¤¢¤ê¤Þ¤¹¡£ ¤½¤³¤Ç¡¢¸íº¹¤òÁý¤ä¤µ¤º¤Ë¡¢30¥Ó¥Ã¥È¤Þ¤Ç¤Î (x, y) ¤ËÂбþ¤·¤¿ÈǤòºî¤Ã¤Æ¤ß¤Þ¤·¤¿¡£ ¤Ê¤¼30¥Ó¥Ã¥È¤Þ¤Ç¤Ê¤Î¤«¡Ê31¥Ó¥Ã¥È¤ä32¥Ó¥Ã¥È¤ÎºÂɸÃͤˤÏÂбþ¤Ç¤­¤Ê¤¤¤Î¤«¡Ë¤È¤¤¤¦¤È¡¢ 31¥Ó¥Ã¥È°Ê¾å¤ÎºÂɸÃͤǤϷë²Ì¤Îµ÷Î¥¤½¤Î¤â¤Î¤¬32¥Ó¥Ã¥ÈÉ乿ÉÕ¤­À°¿ô¤ò¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤·¤Æ¤·¤Þ¤¦¤«¤é¤Ç¤¹¡£ ¡¡¡¡¡¡¡¡/* ¸¶ÅÀ¤ÈÅÀ (x, y) ¤Îµ÷Î¥¤òµá¤á¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡ * [in] ¡¡¡¡¡¡¡¡ *¡¡¡¡x, y¡¡¡¡¡¡¡¡¡¡¡¡µ÷Î¥¤òµá¤á¤ëºÂɸ ¡¡¡¡¡¡¡¡ * [out] ¡¡¡¡¡¡¡¡ *¡¡¡¡Ìá¤êÃÍ¡¡¡¡¡¡¡¡¡¡¸¶ÅÀ¤ÈÅÀ (x, y) ¤Îµ÷Î¥ ¡¡¡¡¡¡¡¡ * [note] ¡¡¡¡¡¡¡¡ *¡¡¡¡* µ÷Î¥¤Î¶á»÷¤ò¤â¤È¤á¤ë·×»»¼°¡§ ¡¡¡¡¡¡¡¡ *¡¡¡¡¡¡|x|>|y|¤Î¤È¤­¡¢|x|*0.9604+|y|*0.3978 ¡¡¡¡¡¡¡¡ *¡¡¡¡¡¡¡Ê¸íº¹¤Ï¡ÞÌó£´¡ó¡Ë ¡¡¡¡¡¡¡¡ */ ¡¡¡¡¡¡¡¡int hypot2(int x, int y); ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡asm(" ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡.align 1 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡.global hypot2 ¡¡¡¡¡¡¡¡hypot2: ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡cmp %r12, 0 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡; %r12 = |x| ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡jrge 3 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ not %r12, %r12 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ add %r12, 1 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡cmp %r13, 0 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡; %r13 = |y| ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡jrge 3 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ not %r13, %r13 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ add %r13, 1 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡cmp %r12, %r13¡¡¡¡¡¡¡¡¡¡¡¡; if(|x| < |y|) %r12 exch %r13 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡jrge 4 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ xor %r13, %r12 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ xor %r12, %r13 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ xor %r13, %r12 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡xld.w %r4, 0xf5dcc63f ¡¡¡¡; %r10 = |x| * (0.9604 << 32) ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mltu.w %r12, %r4 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ld.w %r10, %ahr ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡xld.w %r4, 0x65d63886 ¡¡¡¡; %r10 += |y| * (0.3978 << 32) ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mltu.w %r13, %r4 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ld.w %r4, %ahr ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡add %r10, %r4 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ret ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡"); »È¤¤Êý¤Ï¥ª¥ê¥¸¥Ê¥ë¤Î hypot2() ¤ÈƱ¤¸¤Ç¤¹¡£ ¤³¤Î´Ø¿ô¤ò´Þ¤à¡¢Æ°ºî¸¡¾ÚÍÑ¥×¥í¥°¥é¥à¤Ï¤³¤Á¤é¡£ ¡¡¡¡¡¡¡¡http://www.piece-me.org/archive/hypot-20030503.zip ¥é¥ó¥À¥à¤ÊºÂɸ (x, y) ¤È¸¶ÅÀ (0, 0) ´Ö¤Îµ÷Î¥¤òµá¤á¡¢ËÜÅö¤ÎÃÍ¤È¤Î¸íº¹¤òɽ¼¨¤·¤Þ¤¹¡£ 10000²óÄøÅÙ·«¤êÊÖ¤·¤Æ¤ß¤¿¤È¤³¤í¡¢³Î¤«¤Ë¸íº¹¤¬¡Þ£´¡ó¤òͤ¨¤ë¤³¤È¤Ï¤¢¤ê¤Þ¤»¤ó¤Ç¤·¤¿¡£ ;Ã̤ʤ¬¤é¡¢¥¤¥ó¥é¥¤¥ó¥¢¥»¥ó¥Ö¥é asm("¡Á") ¤ò´Ø¿ôÄêµÁ¤Î³°Â¦¤Ç»È¤Ã¤Æ¤¤¤ëÅÀ¤Ë¤´ÃíÌܤ¯¤À¤µ¤¤¡£ C¥³¥ó¥Ñ¥¤¥é¤¬°ÅÌÛ¤ËÀ¸À®¤¹¤ë¥³¡¼¥É¤Î¿´ÇÛ¤ò¤·¤Ê¤¯¤Æ¤¤¤¤¤Î¤Ç¡¢ËͤϺǶᤳ¤ÎÊýË¡¤ò¹¥¤ó¤Ç»È¤Ã¤Æ¤Þ¤¹¡£ ¡ÊñÆÈ¤Î¥¢¥»¥ó¥Ö¥é¥½¡¼¥¹¤Ëʬ¤±¤ë¤Î¤¬ÌÌÅݤʤΤǡ¦¡¦¡¦(^^;¡Ë * Fri Apr 12 20:30:00 JST 2003 Naoyuki Sawa - ¼Â¤Ï¥Ç¥£¥ì¥¤¥ÉÌ¿Îá P/ECE¤ÎCPU S1C33209¤Ï¡¢RISC CPU¤ÎÆÃħ¤Î¤Ò¤È¤Ä¡¢¡Ö¥Ç¥£¥ì¥¤¥Éʬ´ôµ¡Ç½¡×¤ò»ý¤Ã¤Æ¤¤¤Þ¤¹¡£ ¥Ç¥£¥ì¥¤¥Éʬ´ôµ¡Ç½¤È¤Ï¡¢Ê¬´ôÌ¿Îá¤Î¼Â¹Ô¤è¤êÀè¤Ëʬ´ôÌ¿Îá¤Îľ¸å¤ÎÌ¿Îá¤ò¼Â¹Ô¤·¡¢¼Â¹Ô¸úΨ¤ò²Ô¤°µ¡Ç½¤Ç¤¹¡£ ¥Ç¥£¥ì¥¤¥Éʬ´ôµ¡Ç½¤ò»È¤¦Ê¬´ôÌ¿Îá¤ò¡¢¡Ö¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¡×¤È¸Æ¤Ó¤Þ¤¹¡£ ¤Þ¤¿¡¢¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¤Îľ¸å¤ËÃÖ¤«¤ì¤ëÌ¿Îá¤ò¡¢¡Ö¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¡×¤È¸Æ¤Ó¤Þ¤¹¡£ ¤Û¤È¤ó¤É¤Îʬ´ôÌ¿Îá¤Ï¡¢¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¤È¤·¤ÆÍøÍѲÄǽ¤Ç¤¹¡£ ¤·¤«¤·¡¢¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¤È¤·¤ÆÍøÍѲÄǽ¤ÊÌ¿Îá¤Ï¤¢¤ëÄøÅٸ¤é¤ì¤Æ¤¤¤Þ¤¹¡£ ñ½ã¤Ê¥ì¥¸¥¹¥¿´Ö¥í¡¼¥ÉÌ¿Îá¤ä²Ã¸º»»¡¦ÏÀÍý±é»»Ì¿Îá¤Ï¡¢¤À¤¤¤¿¤¤¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¤È¤·¤ÆÍøÍѲÄǽ¤Ê¤Î¤Ç¤¹¤¬¡¢ ľ´¶¤ËÈ¿¤·¤Æ¥Ç¥£¥ì¥¤¥ÉÉԲĤÊÌ¿Îá¤â¤¤¤¯¤Ä¤«¤¢¤ë¤Î¤ÇÃí°Õ¤¬É¬ÍפǤ¹¡£ Î㤨¤Ð¡¢É乿³ÈÄ¥¡¦¥¼¥í³ÈÄ¥¤òȼ¤¦¥ì¥¸¥¹¥¿´Ö¥í¡¼¥ÉÌ¿Î᤬¥Ç¥£¥ì¥¤¥ÉÉԲĤȤ¤¤¦¤Î¤Ï¡¢¤Á¤ç¤Ã¤È¸ÍÏǤ¤¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡ld.b %rd, %rs ¡¡¡¡¡¡¡¡¡ß¥Ç¥£¥ì¥¤¥ÉÉÔ²Ä ¡¡¡¡¡¡¡¡ld.ub %rd, %rs¡¡¡¡¡¡¡¡¡ß¥Ç¥£¥ì¥¤¥ÉÉÔ²Ä ¡¡¡¡¡¡¡¡ld.h %rd, %rs ¡¡¡¡¡¡¡¡¡ß¥Ç¥£¥ì¥¤¥ÉÉÔ²Ä ¡¡¡¡¡¡¡¡ld.uh %rd, %rs¡¡¡¡¡¡¡¡¡ß¥Ç¥£¥ì¥¤¥ÉÉÔ²Ä ¡¡¡¡¡¡¡¡ld.w %rd, %rs ¡¡¡¡¡¡¡¡¡û¥Ç¥£¥ì¥¤¥É²Äǽ ¤½¤Î¾¤Ë¡¢ÈÆÍѥ쥸¥¹¥¿¤ÈÆÃ¼ì¥ì¥¸¥¹¥¿´Ö¤Î¥í¡¼¥ÉÌ¿Îá¤â¥Ç¥£¥ì¥¤¥ÉÉԲĤȤʤäƤ¤¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡ld.w %rd, %ss ¡¡¡¡¡¡¡¡¡ß¥Ç¥£¥ì¥¤¥ÉÉÔ²Ä ¡¡¡¡¡¡¡¡ld.w %sd, %rs ¡¡¡¡¡¡¡¡¡ß¥Ç¥£¥ì¥¤¥ÉÉÔ²Ä ÈÆÍѥ쥸¥¹¥¿¤ÈÆÃ¼ì¥ì¥¸¥¹¥¿´Ö¤Î¥í¡¼¥ÉÌ¿Î᤬¥Ç¥£¥ì¥¤¥ÉÉԲĤȤ¤¤¦¤Î¤Ï¡¢´¶³ÐŪ¤ËÍý²ò¤Ç¤­¤Ê¤¯¤â¤¢¤ê¤Þ¤»¤ó¡£ ¡¦¡¦¡¦¤È»×¤Ã¤Æ¤¤¤¿¤Î¤Ç¤¹¤¬¡¢¼Â¤Ï¥Ç¥£¥ì¥¤¥É²Äǽ¤Ç¤·¤¿¡£ º£²ó¤Ï¡¢¤³¤Î·ï¤Ë¤Ä¤¤¤Æµ­Ï¿¤·¤Æ¤ª¤³¤¦¤È»×¤¤¤Þ¤¹¡£ S1C33000¥³¥¢CPU¥Þ¥Ë¥å¥¢¥ë¤Ë¤è¤ë¤È¡¢¡Öld.w %rd,%ss¡×¡Öld.w %sd,%rs¡×¤Ï¥Ç¥£¥ì¥¤¥ÉÉԲĤȤʤäƤ¤¤Þ¤¹¡£ ¡Ê33000Core-J.pdf p.112¡Öld.w %rd,%ss¡×, p.117¡Öld.w %sd,%rs¡×, Appendix-1¡ÖQuick Reference¡×»²¾È¡Ë ¤·¤«¤·¼ÂºÝ¤Ë¤Ï¡¢¤³¤ì¤é¤ÎÌ¿Îá¤â¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¤È¤·¤ÆÍøÍѤǤ­¤ë¤è¤¦¤Ç¤¹¡£ ¤Ê¤¼¤Ê¤é¡¢EPSON¼Ò½ãÀµ¥é¥¤¥Ö¥é¥ê¤Î½ü»»¥ë¡¼¥Á¥ó¤¬¡¢¤³¤ì¤é¤ò¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¤È¤·¤Æ»È¤Ã¤Æ¤¤¤ë¤«¤é¤Ç¤¹¡£ Î㤨¤Ð¡¢É乿ÉÕ¤­½ü»»¥ë¡¼¥Á¥ó¤Ï¼¡¤Î¤è¤¦¤Ë¼ÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡__divsi3: ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ld.w %alr, %r12 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡div0s %r13 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ld.w %r4, 0x4 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ld.w %r5, %psr ¡¡¡¡¡¡¡¡__divsi3_loop_start: ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡div1 %r13 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡div1 %r13 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡div1 %r13 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡div1 %r13 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡div1 %r13 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡div1 %r13 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡div1 %r13 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡div1 %r13 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡sub %r4, 0x1 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡jrne.d __divsi3_loop_start¡¡¡¡¡¡<= ¼¡¤ÎÌ¿Î᤬¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¤Ë¤Ê¤ê¤Þ¤¹ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ld.w %psr, %r5¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡<= ld.w %sd(0),%rs(5) ¤ËÁêÅö¤·¤Þ¤¹ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡div2s %r13 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡div3 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ret.d ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡<= ¼¡¤ÎÌ¿Î᤬¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¤Ë¤Ê¤ê¤Þ¤¹ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ld.w %r10, %alr ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡<= ld.w %rd(10),%ss(2) ¤ËÁêÅö¤·¤Þ¤¹ S1C33000¥³¥¢CPU¥Þ¥Ë¥å¥¢¥ë¤Ë¤è¤ë¤È¡¢µ¬Äê¤Î¥Ç¥£¥ì¥¤¥É²Äǽ¤ÊÌ¿Îá°Ê³°¤ò¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¤È¤·¤ÆÍѤ¤¤¿¾ì¹ç¡¢ ¡Öưºî¤¬ÉÔ°ÂÄê¤È¤Ê¤ë¡×(p.30¡Ö¥Ç¥£¥ì¥¤¥Éʬ´ôµ¡Ç½¡×»²¾È¡Ë¤È¤¢¤ê¤Þ¤¹¡£ Á°½Ò¤Î½ü»»¥ë¡¼¥Á¥ó¤Î¥±¡¼¥¹¤Ï¤¿¤Þ¤¿¤Þư¤¤¤Æ¤¤¤Æ¡¢Ê̤ÎÌ¿ÎáÊÂ¤Ó¤Ç¤Ï¡ÖÆ°ºî¤¬ÉÔ°ÂÄê¤È¤Ê¤ë¡×²ÄǽÀ­¤â¤¢¤ë¤Î¤Ç¤¹¤¬¡¢ ¤ï¤¶¤ï¤¶¤½¤ó¤Ê´í¸±¤Ê¼ÂÁõ¤ò¤¹¤ë¤È¤Ï¹Í¤¨¤Å¤é¤¤¤Î¤Ç¡¢¤¿¤Ö¤ó¤¤¤Ä¤Ç¤â¥Ç¥£¥ì¥¤¥É²Äǽ¤Ê¤ó¤¸¤ã¤Ê¤¤¤«¤Ê¡¢¤È»×¤¤¤Þ¤¹¡£ * Fri Feb 14 12:30:00 JST 2003 Naoyuki Sawa - memcpy()¤Ç¥¢¥É¥ì¥¹ÉÔÀ°Îã³° ¡Ø£Ø£Í¥×¥ì¥¤¥ä¡¼¡ÙºîÀ®¤Ë¤ª¤¤¤Æ¡¢¤Ê¤«¤Ê¤«¾Ã¤¨¤Ê¤¤¡Ö¥¢¥É¥ì¥¹ÉÔÀ°Îã³°¡×¤ËǺ¤Þ¤µ¤ì¤Þ¤·¤¿¡£ º£²ó¤Ï¡¢¤½¤ÎÅ¿Ëö¤ò¤Þ¤È¤á¤Æ¤ª¤³¤¦¤È»×¤¤¤Þ¤¹¡£ P/ECE¤ÎCPU¡¦S1C33209¤Ï¡¢¡ÖÉÔÀ°¥¢¥É¥ì¥¹¡×¤«¤é¤Î¥Ç¡¼¥¿ÆÉ¤ß½Ð¤·¤ò¹Ô¤ª¤¦¤È¤¹¤ë¤È¡¢¡Ö¥¢¥É¥ì¥¹ÉÔÀ°Îã³°¡×¤òȯÀ¸¤·¤Þ¤¹¡£ ¡ÖÉÔÀ°¥¢¥É¥ì¥¹¡×¤È¤Ï¡¢ÆÉ¤ß½Ð¤½¤¦¤È¤·¤Æ¤¤¤ë¥Ç¡¼¥¿·¿¤Î¥µ¥¤¥º¤ÎÇÜ¿ô¤Ë¤Ê¤Ã¤Æ¤¤¤Ê¤¤¥¢¥É¥ì¥¹¤Î¤³¤È¤Ç¤¹¡£ Î㤨¤Ð¡¢int·¿¥Ç¡¼¥¿¤òÆÉ¤ß½Ð¤¹¾ì¹ç¡¢int¤Ï4¥Ð¥¤¥È¤Ç¤¹¤Î¤Ç¡¢ÆÉ¤ß½Ð¤¹¥¢¥É¥ì¥¹¤â4¤ÎÇÜ¿ô¤Ç¤Ê¤±¤ì¤Ð¤¤¤±¤Þ¤»¤ó¡£ ƱÍͤˡ¢short·¿¥Ç¡¼¥¿¤òÆÉ¤ß½Ð¤¹¾ì¹ç¤Ï¡¢short¤¬2¥Ð¥¤¥È¤Ç¤¹¤«¤é¡¢ÆÉ¤ß½Ð¤¹¥¢¥É¥ì¥¹¤â2¤ÎÇÜ¿ô¤Ç¤Ê¤±¤ì¤Ð¤¤¤±¤Þ¤»¤ó¡£ ¡Ö¥¢¥É¥ì¥¹ÉÔÀ°Îã³°¡×¤¬È¯À¸¤¹¤ë¤È¡¢²èÌ̤ˤϡÖAddress error exception¡×¤Èɽ¼¨¤µ¤ì¡¢¥ê¥»¥Ã¥È¤ò²¡¤¹¤·¤«¤Ê¤¯¤Ê¤ê¤Þ¤¹¡£ °Ê²¼¤Ë¡¢¡Ö¥¢¥É¥ì¥¹ÉÔÀ°Îã³°¡×¤òȯÀ¸¤¹¤ë¥³¡¼¥ÉÎã¤ò¡¢¤¤¤¯¤Ä¤«¼¨¤·¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡int *p, v; p = (int*)0x120000; v = *p;¡¡¡¡/* 0x120000ÈÖÃϤÏ4¤ÎÇÜ¿ô¤Ê¤Î¤Ç¡¢¡Ö¥¢¥É¥ì¥¹ÉÔÀ°Îã³°¡×¤ÏȯÀ¸¤·¤Þ¤»¤ó */ ¡¡¡¡¡¡¡¡int *p, v; p = (int*)0x120001; v = *p;¡¡¡¡/* ¡Ö¥¢¥É¥ì¥¹ÉÔÀ°Îã³°¡×¤¬È¯À¸¤·¤Þ¤¹¡ª */ ¡¡¡¡¡¡¡¡int *p, v; p = (int*)0x120002; v = *p;¡¡¡¡/* ¡Ö¥¢¥É¥ì¥¹ÉÔÀ°Îã³°¡×¤¬È¯À¸¤·¤Þ¤¹¡ª */ ¡¡¡¡¡¡¡¡int *p, v; p = (int*)0x120003; v = *p;¡¡¡¡/* ¡Ö¥¢¥É¥ì¥¹ÉÔÀ°Îã³°¡×¤¬È¯À¸¤·¤Þ¤¹¡ª */ ¡¡¡¡¡¡¡¡int *p, v; p = (int*)0x120004; v = *p;¡¡¡¡/* 0x120004ÈÖÃϤÏ4¤ÎÇÜ¿ô¤Ê¤Î¤Ç¡¢¡Ö¥¢¥É¥ì¥¹ÉÔÀ°Îã³°¡×¤ÏȯÀ¸¤·¤Þ¤»¤ó */ ¡¡¡¡¡¡¡¡shrot *p, v; p = (shrot*)0x120000; v = *p;¡¡¡¡/* 0x120000ÈÖÃϤÏ2¤ÎÇÜ¿ô¤Ê¤Î¤Ç¡¢¡Ö¥¢¥É¥ì¥¹ÉÔÀ°Îã³°¡×¤ÏȯÀ¸¤·¤Þ¤»¤ó */ ¡¡¡¡¡¡¡¡shrot *p, v; p = (shrot*)0x120001; v = *p;¡¡¡¡/* ¡Ö¥¢¥É¥ì¥¹ÉÔÀ°Îã³°¡×¤¬È¯À¸¤·¤Þ¤¹¡ª */ ¡¡¡¡¡¡¡¡shrot *p, v; p = (shrot*)0x120002; v = *p;¡¡¡¡/* 0x120002ÈÖÃϤÏ2¤ÎÇÜ¿ô¤Ê¤Î¤Ç¡¢¡Ö¥¢¥É¥ì¥¹ÉÔÀ°Îã³°¡×¤ÏȯÀ¸¤·¤Þ¤»¤ó */ Ä̾ï¤Î¥×¥í¥°¥é¥à¤Ç¤Ï¡¢¡Ö¥¢¥É¥ì¥¹ÉÔÀ°Îã³°¡×¤ËÃí°Õ¤¹¤ëɬÍפϤ¢¤ê¤Þ¤»¤ó¡£ int¥Ç¡¼¥¿¤Ï4¤ÎÇÜ¿ô¥¢¥É¥ì¥¹¤Ë¡¢short¥Ç¡¼¥¿¤Ï2¤ÎÇÜ¿ô¥¢¥É¥ì¥¹¤Ë¡¢¥³¥ó¥Ñ¥¤¥é¤¬Å¬ÀÚ¤ËÇÛÃÖ¤·¤Æ¤¯¤ì¤ë¤«¤é¤Ç¤¹¡£ Ãí°Õ¤¬É¬Íפˤʤë¤Î¤Ï¡¢¤¢¤é¤«¤¸¤á·è¤á¤é¤ì¤¿·Á¼°¤ò»ý¤Ä¥Ç¡¼¥¿¹½Â¤¤«¤é¡¢¥Ç¡¼¥¿¤òÆÉ¤ß½Ð¤¹¾ì¹ç¤Ç¤¹¡£ º£²óÌäÂê¤È¤Ê¤Ã¤¿XM·Á¼°¤Î¥Ç¡¼¥¿¹½Â¤¤¬¤Þ¤µ¤Ë¤½¤ì¤Ç¤¹¡£ XM·Á¼°¤Î¥Ç¡¼¥¿¹½Â¤¤Ç¤Ï¡¢´ñ¿ô¸Ä¤Îchar·¿¥Ç¡¼¥¿¤Îľ¸å¤Ë¡¢¶õÇò¤Ê¤·¤Çint·¿¥Ç¡¼¥¿¤¬ÇÛÃÖ¤µ¤ì¤Æ¤¤¤¿¤ê¤·¤Þ¤¹¡£ ¤Ä¤Þ¤ê¡¢int·¿¤Î¥Ç¡¼¥¿¤¬¡ÖÉÔÀ°¥¢¥É¥ì¥¹¡×¤ËÇÛÃÖ¤µ¤ì¤Æ¤¤¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£ ¥á¥â¥ê¾å¤ËÆÉ¤ß¹þ¤ó¤ÀXM·Á¼°¤Î¥Ç¡¼¥¿¹½Â¤¤«¤é¡¢¤³¤Î¤è¤¦¤Êint·¿¥Ç¡¼¥¿¤òÆÉ¤ß½Ð¤½¤¦¤È¤¹¤ë¤È¡¢¡Ö¥¢¥É¥ì¥¹ÉÔÀ°Îã³°¡×¤¬È¯À¸¤·¤Þ¤¹¡£ =============================================================================================================================== ¡ÖÉÔÀ°¥¢¥É¥ì¥¹¡×¤«¤é¤ÎÆÉ¤ß½Ð¤·¤¬¤Ç¤­¤Ê¤¤¡¢¤È¤¤¤¦À©Ìó¤ò»ý¤Ä¤Î¤Ï¡¢S1C33209¤À¤±¤¬ÆÃÊ̤ǤϤ¢¤ê¤Þ¤»¤ó¡£ ¤¤¤Á¤Ð¤ó¥á¥¸¥ã¡¼¤ÊPentium¥·¥ê¡¼¥ºCPU¤Ë¤Ï¤³¤ÎÀ©Ì󤬤ʤ¤¤â¤Î¤Î¡¢Â¾¤Î¿¤¯¤ÎCPU¤ÏƱÍͤÎÀ©Ìó¤ò»ý¤Ã¤Æ¤¤¤Þ¤¹¡£ ¤Ç¤¹¤«¤é¡¢¡ÖÉÔÀ°¥¢¥É¥ì¥¹¡×¤Ë¥Ç¡¼¥¿¤¬ÇÛÃÖ¤µ¤ì¤Æ¤¤¤ë²ÄǽÀ­¤Î¤¢¤ë¤è¤¦¤Ê¥Ç¡¼¥¿¹½Â¤¤«¤é¥Ç¡¼¥¿ÆÉ¤ß½Ð¤·¤ò¹Ô¤¦¾ì¹ç¤Ï¡¢ ¡Ö¥¢¥É¥ì¥¹ÉÔÀ°Îã³°¡×¤¬È¯À¸¤·¤Ê¤¤¤è¤¦¡¢¥×¥í¥°¥é¥à¦¤ÇÂн褷¤Ê¤±¤ì¤Ð¤¤¤±¤Þ¤»¤ó¡£ ¤¤¤Á¤Ð¤ó¥ª¡¼¥½¥É¥Ã¥¯¥¹¤Ê¤Î¤Ï¡¢¼¡¤Î¤è¤¦¤ÊÊýË¡¤Ç¤¹¡£ ¤É¤ó¤Ê¥¢¥É¥ì¥¹¤«¤é¤Ç¤â¡Ö¥¢¥É¥ì¥¹ÉÔÀ°Îã³°¡×¤Ê¤·¤Ëint·¿¥Ç¡¼¥¿¤òÆÉ¤ß½Ð¤»¤ë¤è¤¦¤Ê¡¢Êä½õ´Ø¿ô¤òÍѰդ·¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡int read_int(const int* p) { ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡const char* pp = (const char*)p; ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡return (pp[0] << 24) | (pp[1] << 16) | (pp[2] << 8) | (pp[3]); ¡¡¡¡¡¡¡¡} 4¥Ð¥¤¥È¤ÎÆÉ¤ß½Ð¤·¤ò1¥Ð¥¤¥È¤Å¤Ä¹Ô¤Ã¤Æ¤«¤é¡¢int·¿¤ËÁȤßΩ¤Æ¤ÆÊÖ¤·¤Þ¤¹¡£ 1¥Ð¥¤¥È¤Å¤Ä¤ÎÆÉ¤ß½Ð¤·¤Ê¤é¤Ð¡¢ÀäÂФˡ֥¢¥É¥ì¥¹ÉÔÀ°Îã³°¡×¤ÏȯÀ¸¤·¤Þ¤»¤ó¡£¡Ê1¤ÎÇÜ¿ô¤Ç¤Ê¤¤¥¢¥É¥ì¥¹¤Ï¤Ê¤¤¤«¤é¡Ë ¤³¤ÎÊä½õ´Ø¿ô¤ò»È¤¨¤Ð¡¢°ú¿ôp¤Ë¤É¤ó¤Ê¥¢¥É¥ì¥¹¤¬»ØÄꤵ¤ì¤¿¤È¤·¤Æ¤â¡¢¤½¤³¤«¤éint·¿¤Î¥Ç¡¼¥¿¤¬ÆÉ¤ß½Ð¤»¤ë¤ï¤±¤Ç¤¹¡£ ¤½¤ì¤Ç¤Ï¡¢¤³¤ÎÊä½õ´Ø¿ô¤ò»È¤Ã¤Æ¡¢Àè¤Û¤Éµó¤²¤¿Îã¤ò½ñ¤­Ä¾¤·¤Æ¤ß¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡int *p, v; p = (int*)0x120000; v = read_int(p);¡¡¡¡/* £Ï£Ë¡ª */ ¡¡¡¡¡¡¡¡int *p, v; p = (int*)0x120001; v = read_int(p);¡¡¡¡/* £Ï£Ë¡ª */ ¡¡¡¡¡¡¡¡int *p, v; p = (int*)0x120002; v = read_int(p);¡¡¡¡/* £Ï£Ë¡ª */ ¡¡¡¡¡¡¡¡int *p, v; p = (int*)0x120003; v = read_int(p);¡¡¡¡/* £Ï£Ë¡ª */ ¡¡¡¡¡¡¡¡int *p, v; p = (int*)0x120004; v = read_int(p);¡¡¡¡/* £Ï£Ë¡ª */ =============================================================================================================================== °Ê¾å¤ÎÊýË¡¤¬¡¢¥ª¡¼¥½¥É¥Ã¥¯¥¹¤«¤ÄÀµ¤·¤¤ÊýË¡¤Ç¤¹¡£ ¡¦¡¦¡¦¤¬¡¢¤·¤«¤·¡£Ëͤϥº¥Ü¥é¤Ê¤Î¤Ç¡¢read_int()¤ò¼¡¤Î¤è¤¦¤ËÄêµÁ¤·¤Æ¤·¤Þ¤¤¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡int read_int(const int* p) { int v; memcpy(&v, p, sizeof v); return v; } ¤É¤³¤é¤Ø¤ó¤¬¥º¥Ü¥é¤«¤È¤¤¤¤¤Þ¤¹¤È¡¢¤¤¤í¤¤¤í¤Ê·¿¤Î¤¿¤á¤ÎÊä½õ´Ø¿ô¤òÄɲ乤ë¾ì¹ç¡¢µ¡³£Åª¤Ê½ñ¤­´¹¤¨¤ÇÂбþ¤Ç¤­¤ëÅÀ¤Ç¤¹¡£ ¡¡¡¡¡¡¡¡ int read_int (const int * p) { int v; memcpy(&v, p, sizeof v); return v; } ¡¡¡¡¡¡¡¡ short read_short (const short * p) { short v; memcpy(&v, p, sizeof v); return v; } ¡¡¡¡¡¡¡¡unsigned int read_unsigned_int (const unsigned int * p) { unsigned int v; memcpy(&v, p, sizeof v); return v; } ¡¡¡¡¡¡¡¡unsigned short read_unsigned_short(const unsigned short * p) { unsigned short v; memcpy(&v, p, sizeof v); return v; } ¡¡¡¡¡¡¡¡ float read_float (const float * p) { float v; memcpy(&v, p, sizeof v); return v; } ¡¡¡¡¡¡¡¡ double read_double (const double* p) { double v; memcpy(&v, p, sizeof v); return v; } ¤Á¤Ê¤ß¤Ë¡¢¥ª¡¼¥½¥É¥Ã¥¯¥¹¤ÊÊýË¡¤Çread_short()¤äread_double()¤ò¼ÂÁõ¤¹¤ë¤È¡¢¤³¤¦¤Ê¤ê¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡short read_short(const short* p) { ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡const char* pp = (const char*)p; ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡return (pp[0] << 8) | (pp[3]); ¡¡¡¡¡¡¡¡} ¡¡¡¡¡¡¡¡float read_double(const double* p) { ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡const char* pp = (const char*)p; ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡char v[8]; ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡v[0] = pp[0]; ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡v[1] = pp[1]; ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡v[2] = pp[2]; ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡v[3] = pp[3]; ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡v[4] = pp[4]; ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡v[5] = pp[5]; ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡v[6] = pp[6]; ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡v[7] = pp[7]; ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡return *(double*)v; ¡¡¡¡¡¡¡¡} ¤Þ¤¢¤³¤ÎÄøÅ٤Ǥ¹¤Î¤ÇÂ礷¤¿¼ê´Ö¤Ç¤Ï¤Ê¤¤¤Î¤Ç¤¹¤¬¡¢¤³¤ÎÄøÅ٤μê´Ö¤âÀˤ·¤à¤Û¤É¥º¥Ü¥é¤À¤È¤¤¤¦¡Ä(^^; ¤³¤ì¤Þ¤ÇP/ECE°Ê³°¤Î´Ä¶­¤Ç¤â¡¢memcpy()¤ò»È¤Ã¤¿¥º¥Ü¥éÈÇÊä½õ´Ø¿ô¤ò»È¤Ã¤Æ¤¤¤Þ¤·¤¿¤·¡¢¤½¤ì¤Ç¾å¼ê¤¯¤¤¤Ã¤Æ¤¤¤ë¤È»×¤Ã¤Æ¤¤¤Þ¤·¤¿¡£ ¡¦¡¦¡¦¤¬¡¢¤½¤ì¤Ï´Ö°ã¤¤¤Ç¤·¤¿¡£ =============================================================================================================================== ¥º¥Ü¥éÈÇÊä½õ´Ø¿ô¤Ï¡¢memcpy()¤¬ÆâÉô¤Ç¥Ç¡¼¥¿¤ò1¥Ð¥¤¥È¤Å¤Ä¥³¥Ô¡¼¤·¤Æ¤¯¤ì¤ë¤³¤È¤òÁ°Äó¤È¤·¤Æ¤¤¤Þ¤¹¡£ ¤¤¤ä¡¢Îɤ¯½ÐÍ褿memcpy()¤Î¼ÂÁõ¤Î¾ì¹ç¡¢»ØÄꤵ¤ì¤¿Å¾Á÷¸µ¡¦Å¾Á÷À襢¥É¥ì¥¹¤ÈžÁ÷¥µ¥¤¥º¤Ë¤è¤Ã¤Æ¤Ï¡¢ ¿ô¥Ð¥¤¥È¤Å¤Ä¤Î¥³¥Ô¡¼¤ò¹Ô¤Ã¤Æ½èÍý¤ò¹â®²½¤¹¤ë¤È¤Ïʹ¤¤¤Æ¤¤¤Þ¤·¤¿¤¬¡¢ ¾¯¤Ê¤¯¤È¤â¡Ö¥¢¥É¥ì¥¹ÉÔÀ°Îã³°¡×¤¬È¯À¸¤¹¤ë¤è¤¦¤ÊÊýË¡¤ÏºÎ¤é¤ì¤Ê¤¤¤â¤Î¤È»×¤¤¹þ¤ó¤Ç¤¤¤Þ¤·¤¿¡£ ¤È¤³¤í¤¬¡¢¥³¥ó¥Ñ¥¤¥é¤Ë¤è¤ëºÇŬ²½¤¬Íí¤ó¤Ç¤¯¤ë¤È¡¢É¬¤º¤·¤â¤½¤¦¤È¤Ï¸À¤¨¤Ê¤¤¤è¤¦¤Ê¤Î¤Ç¤¹¡£ ¤½¤ì¤Ç¤Ï¤Þ¤º¡¢¡Ö¥¢¥É¥ì¥¹ÉÔÀ°Îã³°¡×¤òȯÀ¸¤¹¤ëmemcpy()¤Î»ÈÍÑÎã¤ò¼¨¤·¤Þ¤¹¡£ ------------------------------------------------------------------------------------------------------------------------------- ¡¡¡¡¡¡¡¡#include ¡¡¡¡¡¡¡¡#include ¡¡¡¡¡¡¡¡ ¡¡¡¡¡¡¡¡volatile int* ptr; ¡¡¡¡¡¡¡¡volatile int val; ¡¡¡¡¡¡¡¡volatile char data[] = { 0,1,2,3,4,5 }; ¡¡¡¡¡¡¡¡/* ¤³¤³¤òÆÉ¤ß¤Þ¤¹ ~~~~~~~ */ ¡¡¡¡¡¡¡¡ ¡¡¡¡¡¡¡¡int read_int(const int* p) { int v; memcpy(&v, p, sizeof v); return v; } ¡¡¡¡¡¡¡¡ ¡¡¡¡¡¡¡¡void pceAppInit() { } ¡¡¡¡¡¡¡¡void pceAppExit() { } ¡¡¡¡¡¡¡¡void pceAppProc(int count) { ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ptr = (int*)&data[1]; ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡val = read_int(ptr); ¡¡¡¡¡¡¡¡} ------------------------------------------------------------------------------------------------------------------------------- ÊÑ¿ô¤Ëvolatile»ØÄê¤òÄɲ䷤Ƥ¤¤ë¤Î¤Ï¡¢ºÇŬ²½¤Ë¤è¤Ã¤ÆÆÉ¤ß½Ð¤·½èÍý¤½¤Î¤â¤Î¤¬ºï¤é¤ì¤Æ¤·¤Þ¤ï¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¤¿¤á¤Ç¤¹¡£ ÆÃ¤Ë½ÅÍפʰÕÌ£¤Ï¤¢¤ê¤Þ¤»¤ó¡£ ¤µ¤Æ¡¢¤³¤Î¥×¥í¥°¥é¥à¤òºÇŬ²½¥ª¥×¥·¥ç¥ó¡Ö-O2¡×¤ò»ØÄꤷ¤Æ¥³¥ó¥Ñ¥¤¥ë¤·¤Þ¤¹¡£ ¤½¤·¤Æ¼Â¹Ô¤¹¤ë¤È¡¦¡¦¡¦¡Ö¥¢¥É¥ì¥¹ÉÔÀ°Îã³°¡×¤¬È¯À¸¤·¤Þ¤¹¡ª ¡Ö-ls¡×¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¤Æ¥·¥ó¥Ü¥ë¥Õ¥¡¥¤¥ë¤òºîÀ®¤·¤Æ¤ß¤ë¤È¡¢data[]ÇÛÎó¤Ï0x100264ÈÖÃϤ˳ÎÊݤµ¤ì¤Æ¤¤¤Þ¤·¤¿¡£ ¥×¥í¥°¥é¥à¤Ç¤Ï&data[1]¤«¤éÆÉ¤ß½Ð¤½¤¦¤È¤·¤Æ¤¤¤ë¤Î¤Ç¡¢¤Ä¤Þ¤ê0x100265ÈÖÃϤ«¤éint·¿¥Ç¡¼¥¿¤òÆÉ¤ß½Ð¤·¤Æ¤¤¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£ ¤½¤Î¤Þ¤ÞÆÉ¤ß½Ð¤·¤¿¤Î¤Ç¤Ï¡Ö¥¢¥É¥ì¥¹ÉÔÀ°Îã³°¡×¤¬È¯À¸¤¹¤ë¤Î¤ÏɬÁ³¤Ç¤¹¤¬¡¢º£²ó¤Ï¤Á¤ã¤ó¤ÈÊä½õ´Ø¿ô¤ò»È¤Ã¤Æ¤¤¤Þ¤¹¡£ ¤Ë¤â¤«¤«¤ï¤é¤º¡Ö¥¢¥É¥ì¥¹ÉÔÀ°Îã³°¡×ȯÀ¸¡£¤Ê¤¼¡© =============================================================================================================================== memcpy()¤Î¤È¤³¤í¤Ç¡¢¥³¥ó¥Ñ¥¤¥é¤Ï¤É¤Î¤è¤¦¤Ê¥³¡¼¥É¤òÀ¸À®¤·¤Æ¤¤¤ë¤Î¤Ç¤·¤ç¤¦¤«¡© ¡Ö-b¡×¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¤Æ¡¢¥³¥ó¥Ñ¥¤¥é¤¬À¸À®¤·¤¿¥¢¥»¥ó¥Ö¥é¥½¡¼¥¹¤ò³Îǧ¤·¤Æ¤ß¤Þ¤¹¡£ ¢¨ÆÉ¤ß¤ä¤¹¤¤¤è¤¦¤Ë¡¢¾¯¤·ÊÔ½¸¤·¤Æ¤¢¤ê¤Þ¤¹¡£ ----------------------------------------[S1C33ÍÑgcc¤ÎÀ¸À®¥³¡¼¥É]--------------------------------------------------------------- ¡¡¡¡¡¡¡¡read_int: ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡xsub %sp, %sp, 4 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡xld.w %r10, [%r12] ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡xld.w [%sp], %r10 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡xadd %sp, %sp, 4 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ret ¡¡¡¡¡¡¡¡ ¡¡¡¡¡¡¡¡pceAppProc: ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡xld.w %r12, data+1 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡xld.w [ptr], %r12 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡xcall read_int ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡xld.w [val], %r10 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ret ------------------------------------------------------------------------------------------------------------------------------- ¤Ê¤ó¤È¡¢Ã±¤Ê¤ëint·¿¥Ç¡¼¥¿¤ÎÆÉ¤ß½Ð¤·¡¦³ÊǼ¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤Ã¤Æ¤¤¤Þ¤¹¡ª ¡Ö¥¢¥É¥ì¥¹ÉÔÀ°Îã³°¡×¤¬È¯À¸¤¹¤ë¤ï¤±¤Ç¤¹¡£ ¤³¤ì¤ÏÌÀ¤é¤«¤Ë¡¢¥³¥ó¥Ñ¥¤¥é¤ÎºÇŬ²½¤Ë¤è¤ëÉûºîÍѤǤ¹¡£ ¤Ç¤Ï¡¢¤³¤Î¤è¤¦¤ÊºÇŬ²½¤¬¹Ô¤ï¤ì¤ë¤Î¤Ï ¡¦P/ECE¤Î¥³¥ó¥Ñ¥¤¥é¡ÊS1C33ÍÑgcc¡Ë¤¬ÆÃÊ̤ʤΤǤ·¤ç¤¦¤«¡© ¡¦¤½¤ì¤È¤â¡¢gcc¤Ê¤é¤É¤ì¤Ç¤â¤½¤¦¤Ê¤Î¤Ç¤·¤ç¤¦¤«¡© ¡¦¤¢¤ë¤¤¤Ï¡¢¤É¤Î¥³¥ó¥Ñ¥¤¥é¤Ç¤â¤¿¤¤¤Æ¤¤¤³¤¦¤Ê¤ë¤Î¤Ç¤·¤ç¤¦¤«¡© ¤Þ¤º¤Ï¡¢Â¾¤ÎCPUÍѤÎgcc¤Ç³Îǧ¤·¤Æ¤ß¤Þ¤¹¡£ SPARCÍÑgcc¤ÇƱÍÍ¤Î¥×¥í¥°¥é¥à¤ò»î¤·¤Æ¤ß¤ë¤È¡¢¤ä¤Ï¤ê¡Ö¥¢¥É¥ì¥¹ÉÔÀ°Îã³°¡×¤Ë¤Ê¤ê¤Þ¤·¤¿¡£ ¡ÊLinux¾å¤Ç»î¤·¤¿¤Î¤Ç¡¢²èÌÌɽ¼¨¤Ï¡ÖBus Error¡×¤È¤Ê¤ê¤Þ¤¹¡£¡Ë ¥³¥ó¥Ñ¥¤¥é¤¬À¸À®¤·¤¿¥¢¥»¥ó¥Ö¥é¥½¡¼¥¹¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£ ¢¨ÆÉ¤ß¤ä¤¹¤¤¤è¤¦¤Ë¡¢¾¯¤·ÊÔ½¸¤·¤Æ¤¢¤ê¤Þ¤¹¡£ ----------------------------------------[SPARCÍÑgcc¤ÎÀ¸À®¥³¡¼¥É]--------------------------------------------------------------- ¡¡¡¡¡¡¡¡read_int: ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡retl ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ld [%o0], %o0 ¡¡¡¡¡¡¡¡ ¡¡¡¡¡¡¡¡main: ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡save %sp, -104, %sp ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡sethi %hi(data+1), %o0 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡call read_int,0 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡or %o0, %lo(data+1), %o0 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ret ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡restore %g0, %o0, %o0 ------------------------------------------------------------------------------------------------------------------------------- Ëͤϡ¢SPARC¥×¥í¥»¥Ã¥µ¤Î¥¢¥»¥ó¥Ö¥é¤Ï¤¼¤ó¤¼¤óÆÉ¤á¤Þ¤»¤ó¤¬¡¢read_int()¤¬1¥Ð¥¤¥È¤Å¤Ä¥³¥Ô¡¼¤·¤Æ¤¤¤Ê¤¤¤Î¤Ï¤ï¤«¤ê¤Þ¤¹¡£ ¡Ê¤¢¤È;Ã̤Ǥ¹¤¬¡¢¥Ç¥£¥ì¥¤¥¹¥í¥Ã¥È¤Ë¤è¤ëºÇŬ²½¤ÇÌ¿Îá¤Î½çÈÖ¤¬Æþ¤ìÂØ¤ï¤Ã¤¿¤ê¤·¤Æ¤¤¤ë¤Î¤¬¸«¤¨¤Þ¤¹¡£ ¡¡¤Þ¤¿¡¢P/ECE¤ÎS1C33ÍÑgcc¤Ï¡¢SPARCÍÑgcc¤Ë³Ó¤Ù¤Æ¡¢ÉÔÍ×¤Ê¥í¡¼¥«¥ëÊÑ¿ô¤Îºï½ü¤Ë¤è¤ëºÇŬ²½¤¬¤Þ¤À¤Þ¤À¼å¤¤¤³¤È¤â¤ï¤«¤ê¤Þ¤¹¡£¡Ë ¤É¤¦¤ä¤égcc¤ò»È¤Ã¤ÆºÇŬ²½¥³¥ó¥Ñ¥¤¥ë¤ò¹Ô¤¦¤È¡¢¤À¤¤¤¿¤¤Æ±¤¸¤è¤¦¤Ê·ë²Ì¤Ë¤Ê¤ë¤è¤¦¤Ç¤¹¡£ ¤½¤ì¤Ç¤Ï¡¢Ê̤Υ³¥ó¥Ñ¥¤¥é¤Ç¤Ï¤É¤¦¤Ç¤·¤ç¤¦¤«¡© VisualC++6.0¤ò»È¤Ã¤Æ¡¢Æ±ÍÍ¤Î¥×¥í¥°¥é¥à¤ò¥³¥ó¥Ñ¥¤¥ë¤·¤Æ¤ß¤Þ¤¹¡£ ºÇŬ²½¥ª¥×¥·¥ç¥ó¤Ï¡¢Release¥Ó¥ë¥É¤Î½é´üÀßÄê¤Î¤Þ¤Þ¤È¤·¤Þ¤·¤¿¡£ ¢¨ÆÉ¤ß¤ä¤¹¤¤¤è¤¦¤Ë¡¢¾¯¤·ÊÔ½¸¤·¤Æ¤¢¤ê¤Þ¤¹¡£ ----------------------------------------[PentiumÍÑVisualC++6.0¤ÎÀ¸À®¥³¡¼¥É]---------------------------------------------------- ¡¡¡¡¡¡¡¡read_int: ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mov eax, dword ptr [esp+4] ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mov eax, dword ptr [eax] ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ret ¡¡¡¡¡¡¡¡ ¡¡¡¡¡¡¡¡main: ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡push offset data+1 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡call read_int ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡add esp, 4 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ret ------------------------------------------------------------------------------------------------------------------------------- Ʊ¤¸¤Ç¤¹¡£¤ä¤Ï¤ê¡¢read_int()¤Ï1¥Ð¥¤¥È¤Å¤Ä¥³¥Ô¡¼¤·¤Æ¤¤¤Þ¤»¤ó¡£ ¡Ê¤¿¤À¤·Pentium¤Î¾ì¹ç¤Ï¤½¤â¤½¤â¡Ö¥¢¥É¥ì¥¹ÉÔÀ°Îã³°¡×¤ÎÀ©Ì󤬤¢¤ê¤Þ¤»¤ó¤Î¤Ç¡¢¤³¤Î¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤·¤Æ¤âÌäÂê¤Ï½Ð¤Þ¤»¤ó¡£¡Ë ¤É¤¦¤ä¤é¤É¤Î¥³¥ó¥Ñ¥¤¥é¤Ç¤â¡¢memcpy()¤¬ºÇŬ²½¤µ¤ì¤ÆÉÔÀ°¥¢¥É¥ì¥¹¤«¤é¤ÎÆÉ¤ß½Ð¤·¤¬È¯À¸¤¹¤ë²ÄǽÀ­¤Ï¤¢¤ë¤è¤¦¤Ç¤¹¡£ ¤·¤«¤·¡¢¤³¤ó¤Ê½ÅÂç¤ÊÌäÂê¤Ë¤³¤ì¤Þ¤Çµ¤¤¬ÉÕ¤«¤Ê¤«¤Ã¤¿¤È¤Ï¡¦¡¦¡¦ Î㤨¤Ð¡¢P/ECE¤Ç²¾ÁÛVRAM¤Î(0,1)¡Á(0,4)¤Î¥Ô¥¯¥»¥ë¤ò(1,1)¡Á(1,4)¤Ø¥³¥Ô¡¼¤·¤è¤¦¤È¤·¤¿¤é¡¢¡Ö¥¢¥É¥ì¥¹ÉÔÀ°Îã³°¡×¤Ë¤Ê¤ë¤Î¤Ç¤·¤ç¤¦¤«¡© ------------------------------------------------------------------------------------------------------------------------------- ¡¡¡¡¡¡¡¡#include ¡¡¡¡¡¡¡¡ ¡¡¡¡¡¡¡¡unsigned char vbuff[128 * 88]; ¡¡¡¡¡¡¡¡ ¡¡¡¡¡¡¡¡void pceAppInit() { ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡pceLCDSetBuffer(vbuff); ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡pceLCDDispStart(); ¡¡¡¡¡¡¡¡} ¡¡¡¡¡¡¡¡void pceAppExit() { } ¡¡¡¡¡¡¡¡void pceAppProc(int count) { ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡unsigned char *src, *dst; ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡src = &vbuff[ 1]; ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡dst = &vbuff[129]; ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡memcpy(dst, src, 4); ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡pceLCDTrans(); ¡¡¡¡¡¡¡¡} ------------------------------------------------------------------------------------------------------------------------------- »î¤·¤Æ¤ß¤ë¤È¡¦¡¦¡¦¡Ö¥¢¥É¥ì¥¹ÉÔÀ°Îã³°¡×¤ÏȯÀ¸¤·¤Þ¤»¤ó¡£ ¤½¤ê¤ã¤¢¡¡¡¢¤³¤ì¤Ç¡Ö¥¢¥É¥ì¥¹ÉÔÀ°Îã³°¡×¤¬È¯À¸¤¹¤ë¤Î¤Ê¤é¡¢¤È¤Ã¤¯¤Ëµ¤ÉÕ¤¤¤Æ¤¤¤ë¤Ï¤º¤Ç¤¹¤è¤Í¡£ À¸À®¤µ¤ì¤ë¥³¡¼¥É¤Ï¼¡¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£ ¢¨ÆÉ¤ß¤ä¤¹¤¤¤è¤¦¤Ë¡¢¾¯¤·ÊÔ½¸¤·¤Æ¤¢¤ê¤Þ¤¹¡£ ------------------------------------------------------------------------------------------------------------------------------- ¡¡¡¡¡¡¡¡pceAppProc: ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡xld.w %r13, vbuff+1 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡xadd %r12, %r13, 128 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡xld.w %r14, 0x00000004 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡xcall memcpy ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡xcall pceLCDTrans ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ret ------------------------------------------------------------------------------------------------------------------------------- Ʊ¤¸4¥Ð¥¤¥È¤Î¥³¥Ô¡¼¤Ê¤Î¤Ë¡¢¤³¤Á¤é¤Ï¤Á¤ã¤ó¤Èmemcpy()´Ø¿ô¤¬¸Æ¤Ó½Ð¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ ¡Ö¥¢¥É¥ì¥¹ÉÔÀ°Îã³°¡×¤Ë¤Ê¤ëÎã¤È¤Î°ã¤¤¤Ï¡¦¡¦¡¦memcpy()¤ËÅϤ·¤Æ¤¤¤ë¥Ý¥¤¥ó¥¿¤Î·¿¤Ç¤·¤ç¤¦¤«¡© ¤½¤ì¤Ç¤Ï¡¢¥×¥í¥°¥é¥à¤ò¼¡¤Î¤è¤¦¤ËÊѹ¹¤·¤Æ¡¢¤â¤¦¤¤¤Á¤É»î¤·¤Æ¤ß¤Þ¤¹¡£ ------------------------------------------------------------------------------------------------------------------------------- ¡¡¡¡¡¡¡¡#include ¡¡¡¡¡¡¡¡ ¡¡¡¡¡¡¡¡unsigned char vbuff[128 * 88]; ¡¡¡¡¡¡¡¡ ¡¡¡¡¡¡¡¡void pceAppInit() { ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡pceLCDSetBuffer(vbuff); ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡pceLCDDispStart(); ¡¡¡¡¡¡¡¡} ¡¡¡¡¡¡¡¡void pceAppExit() { } ¡¡¡¡¡¡¡¡void pceAppProc(int count) { ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡int *src, *dst; ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡src = (int*)&vbuff[ 1]; ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡dst = (int*)&vbuff[129]; ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡memcpy(dst, src, 4); ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡pceLCDTrans(); ¡¡¡¡¡¡¡¡} ------------------------------------------------------------------------------------------------------------------------------- ¤Ç¡¢¼Â¹Ô¤·¤Æ¤ß¤ë¤È¡¦¡¦¡¦¡Ö¥¢¥É¥ì¥¹ÉÔÀ°Îã³°¡×¤¬È¯À¸¤·¤Þ¤·¤¿¡ª À¸À®¤µ¤ì¤ë¥³¡¼¥É¤Ï¼¡¤ÎÄ̤ꡣ ¢¨ÆÉ¤ß¤ä¤¹¤¤¤è¤¦¤Ë¡¢¾¯¤·ÊÔ½¸¤·¤Æ¤¢¤ê¤Þ¤¹¡£ ------------------------------------------------------------------------------------------------------------------------------- ¡¡¡¡¡¡¡¡pceAppProc: ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡xld.w %r11, vbuff+1 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡xld.w %r10, [%r11] ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡xld.w [%r11+128], %r10 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡xcall pceLCDTrans ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ret ------------------------------------------------------------------------------------------------------------------------------- vbuff[1]¤Î°ÌÃÖ¤«¤éint·¿¤ÇÆÉ¤ß½Ð¤·¤ò¹Ô¤¤¡¢vbuff[1+128]¤Î°ÌÃ֤˳ÊǼ¤·¤è¤¦¤È¤·¤Æ¤¤¤Þ¤¹¡£ ¤Ê¤ó¤È¤Ê¤¯¸«¤¨¤Æ¤­¤Þ¤·¤¿¡£ ¡¡¡¡¡¡¡¡memcpy()¤Ëint*·¿¤Î¥Ý¥¤¥ó¥¿¤òÅϤ¹¤È¡¢Ã±¤Ê¤ëint·¿¥Ç¡¼¥¿¤ÎÆÉ¤ß½Ð¤·¤È¤·¤ÆºÇŬ²½¤µ¤ì¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ ¡¡¡¡¡¡¡¡¤½¤ÎºÝ¡¢¥Ý¥¤¥ó¥¿¤¬¡ÖÉÔÀ°¥¢¥É¥ì¥¹¡×¤ò»Ø¤·¤Æ¤¤¤ë¤«¤É¤¦¤«¤ÏÄ´¤Ù¤é¤ì¤Ê¤¤¡£ ¡¡¡¡¡¡¡¡·ë²Ì¡¢¥Ý¥¤¥ó¥¿¤¬¡ÖÉÔÀ°¥¢¥É¥ì¥¹¡×¤ò»Ø¤·¤Æ¤¤¤¿¤Ê¤é¡¢¡Ö¥¢¥É¥ì¥¹ÉÔÀ°Îã³°¡×¤¬È¯À¸¤¹¤ë¡£ P/ECE¤Î²¾ÁÛVRAM¤ò°·¤¦¾ì¹ç¤Ï¡¢¤¿¤¤¤Æ¤¤unsigned char*·¿¤Î¥Ý¥¤¥ó¥¿¤òÅϤ¹¤Î¤Ç¡¢ÌäÂê¤Ë¤Ê¤é¤Ê¤«¤Ã¤¿¤Î¤Ç¤¹¤Í¡£ =============================================================================================================================== ²óÈòÊýË¡¤Ï¼¡¤Î¤È¤ª¤ê¤Ç¤¹¡£ £±¡¥¥ª¡¼¥½¥É¥Ã¥¯¥¹¤Êread_int()¤ò»È¤¦¡£ ¡¡¡¡¤Ä¤Þ¤ê¡¢memcpy()¤ò»È¤ï¤º¡¢ÌÀ¼¨Åª¤Ë1¥Ð¥¤¥È¤Å¤ÄÆÉ¤ß½Ð¤·¤Æ¡¢ÁȤßΩ¤Æ¤ë¡£ £²¡¥¥º¥Ü¥éÈÇread_int()¤Î°ú¿ô·¿¤òÊѹ¹¤¹¤ë¡£ ¡¡¡¡½¤Àµ¸å¤Îread_int()¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡int read_int(const void* p) { int v; memcpy(&v, p, sizeof v); return v; } ¡¡¡¡¡Ø£Ø£Í¥×¥ì¥¤¥ä¡¼¡Ù¤Ç¤Ï¡¢¤³¤ÎÊýË¡¤Ç²ò·è¤·¤Þ¤·¤¿¡£ £³¡¥ºÇŬ²½¤·¤Ê¤¤¡£ ¡¡¡¡¡Ö-O2¡×¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¤Þ¤»¤ó¡£¤·¤«¤·¤³¤ì¤Ï¡¢¸½¼ÂŪ¤ÊÊýË¡¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£ ¡¡¡¡S1C33ÍÑgcc¤Ë¤Ï¡Ö-mno-memcpy¡×¤È¤¤¤¦¥ª¥×¥·¥ç¥ó¤¬¤¢¤ê¤Þ¤¹¡£ ¡¡¡¡gcc33¥³¥Þ¥ó¥É¤Î»È¤¤Êýɽ¼¨¤Ë¤Ï¡Öinline functions 'strcpy' and 'memcpy'¡×¤È½ñ¤«¤ì¤Æ¤ª¤ê¡¢ ¡¡¡¡¤³¤Î¥³¥ó¥Ñ¥¤¥ë¥ª¥×¥·¥ç¥ó¤ò»È¤Ã¤Æmemcpy()¤ÎºÇŬ²½¤À¤±¤òÀ©¸æ¤Ç¤­¤½¤¦¤Ë¸«¤¨¤Þ¤¹¡£ ¡¡¡¡¤¬¡¢¼ÂºÝ¤Ë¤Ï¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢memcpy()¤ÎºÇŬ²½¤Ë¤Ï´Ø·¸¤Ê¤¤¤è¤¦¤Ç¤¹¡£ ¡¡¡¡¡¡¡¡gcc33 -S -O sample.c ¡¡¡¡¡¡¡¡gcc33 -S -O -mmemcpy sample.c ¡¡¡¡¡¡¡¡gcc33 -S -O -mno-memcpy sample.c ¡¡¡¡¤¤¤º¤ì¤ÎÊýË¡¤Ç¥³¥ó¥Ñ¥¤¥ë¤·¤Æ¤âmemcpy()¤ÏºÇŬ²½¤µ¤ì¤Æ¤·¤Þ¤¤¡¢¡Ö¥¢¥É¥ì¥¹ÉÔÀ°Îã³°¡×¤¬È¯À¸¤·¤Þ¤¹¡£ ¡¡¡¡¤½¤â¤½¤âpcc33·Ðͳ¤Ç¤Ï¡¢gcc33¤Ë¤³¤Î¥ª¥×¥·¥ç¥ó¤òÅϤ»¤Þ¤»¤ó¡£ ¡¡¡¡¤½¤ì¤Ë¡¢°ìÉô¤Îmemcpy()ºÇŬ²½¤Ë¤è¤ëÌäÂê¤ò²óÈò¤¹¤ë¤¿¤á¤À¤±¤Ë¡¢Á´Éô¤ÎºÇŬ²½¤òÍÞÀ©¤·¤Æ¤·¤Þ¤¦¤È¤¤¤¦¤Î¤Ï¤ä¤ê¤¹¤®¤Ç¤¹¡£ =============================================================================================================================== ¤µ¤Æ¡¢¥³¥ó¥Ñ¥¤¥é¤Ë¥±¥Á¤òÉÕ¤±¤ë¤Î¤â¿È¤ÎÄøÃΤ餺¤Ç¤¹¤¬¡¢¤·¤«¤·¤³¤ì¤Ï¤Á¤ç¤Ã¤ÈǼÆÀ¤¤¤«¤Ê¤¤¤è¤¦¤Êµ¤¤â¤·¤Þ¤¹¡£ memcpy()¤òºÇŬ²½¤·¤Æ¤¯¤ì¤ë¤Î¤Ï¤¢¤ê¤¬¤¿¤¤¤Î¤Ç¤¹¤±¤ì¤É¡¢memcpy()¤Î¥×¥í¥È¥¿¥¤¥×¤Ï¤â¤È¤â¤È¼¡¤Î¤è¤¦¤Ê¤â¤Î¤Ç¤¹¡£ ¡¡¡¡¡¡¡¡void* memcpy(void* dst, const void* src, size_t len); memcpy()¼«¿È¤Ï¡¢¼õ¤±¼è¤Ã¤¿¥Ý¥¤¥ó¥¿¤ÎÀµ³Î¤Ê·¿¤òÃΤäƤ¤¤Æ¤Ï¤¤¤±¤Ê¤¤¤Ï¤º¤Ç¤¹¡£ int*·¿¥Ý¥¤¥ó¥¿¤À¤«¤éºÇŬ²½¤¹¤ë¤È¤«¡¢char*·¿¥Ý¥¤¥ó¥¿¤À¤«¤éºÇŬ²½¤·¤Ê¤¤¡¢¤È¤¤¤¦¤ä¤êÊý¤ÏÉԲĤÀ¤È»×¤¦¤Î¤Ç¤¹¤¬¡Ä £Ã¸À¸ì»ÅÍÍŪ¤Ë¤Ï¤É¤¦¤Ê¤Î¤Ç¤·¤ç¤¦¤«¡© ¤â¤·¤«¤·¤¿¤é¡¢int*·¿¥Ý¥¤¥ó¥¿¤Ë¡ÖÉÔÀ°¥¢¥É¥ì¥¹¡×¤òÂåÆþ¤·¤¿»þÅÀ¤Ç´û¤Ë£Ã¸À¸ì»ÅÍͰãÈ¿¤Ê¤Î¤Ç¤·¤ç¤¦¤«¡© Í×Ä´ºº¤Ç¤¹¡£ * Wed Dec 25 00:00:00 JST 2002 Naoyuki Sawa - ISD¥Þ¥Ë¥å¥¢¥ë#3 ¡ÊÁ°²ó¤«¤é¤Î³¤­¡Ä¡Ë º£²ó¤Ï¡¢»Ä¤ê»°¤Ä¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¥³¥Þ¥ó¥É¤Ë¤Ä¤¤¤Æ¤Ç¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡=r¡¡¡¡¡¡¡¡¥Õ¥¡¥¤¥ë¤òÆÉ¤ß½Ð¤·¤Þ¤¹¡£¡ÊP/ECE¢ªPC¡Ë ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡=d¡¡¡¡¡¡¡¡P/ECE¾å¤Î¥Õ¥¡¥¤¥ë¤òºï½ü¤·¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡=i¡¡¡¡¡¡¡¡¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ò½é´ü²½¤·¤Þ¤¹¡£ ¤·¤«¤·¤Ê¤¬¤é¤³¤ì¤é»°¤Ä¤Î¥³¥Þ¥ó¥É¤Ï¡¢Á°²ó¤ÎÆó¤Ä¤Ë³Ó¤Ù¤Æ¤«¤Ê¤ê»ÈÍÑÉÑÅÙ¤¬Ä㤤¤Ç¤¹¡£ Î㤨¤ÐËͤξì¹ç¡¢¼Â¸³°Ê³°¤Ç¡Ö=r¡×¡Ö=d¡×¤Ï»È¤Ã¤¿¤³¤È¤¬¤Ê¤¯¡¢¡Ö=i¡×¤Ï°ì²ó»È¤Ã¤¿¤À¤±¤Ç¤¹¡£ ¤Ç¤¹¤Î¤Ç¡¢¤³¤ì¤é»°¤Ä¤Î¥³¥Þ¥ó¥É¤Ë¤Ä¤¤¤Æ¤Ï¤¶¤Ã¤Èή¤·¤Æ¤·¤Þ¤¦¤³¤È¤Ë¤·¤Þ¤·¤ç¤¦¡£ ¥³¥Þ¥ó¥É¡Ö=r¡×¤È¡Ö=d¡×¤Ç¤Î¥Õ¥¡¥¤¥ë»ØÄê¤Ë´Ø¤¹¤ë¥ë¡¼¥ë¤Ï¡¢¥³¥Þ¥ó¥É¡Ö=w¡×¤Î¾ì¹ç¤ÈƱ¤¸¤Ê¤Î¤Ç¡¢ ¥³¥Þ¥ó¥É¡Ö=r¡×¤È¡Ö=d¡×¤Ë´Ø¤¹¤ëº£²ó¤ÎÀâÌÀ¤Ï¡¢Á°²ó¤Î¥³¥Þ¥ó¥É¡Ö=w¡×¤ÎÀâÌÀ¤È¤Û¤È¤ó¤ÉƱ¤¸¤Ç¤¹¡£ ¼ÂºÝ¡¢º£²ó¤ÎÀâÌÀ¤ÎÂçÉôʬ¤ÏÁ°²ó¤Î¥³¥Ô¡¼¤Ê¤Î¤Ç¤¹¤¬(^^;¡¢Ç°¤Î¤¿¤á¡¢³ÆÆþÎÏÎã¤Îưºî³Îǧ¤Ï¹Ô¤¤¤Þ¤·¤¿¡£ ------------------------------------------------------------------------------------------------------------------------------- -------------------- =r¡§¥Õ¥¡¥¤¥ëÆÉ¤ß½Ð¤· -------------------- ½ñ¼°¡§¡¡¡¡¡¡¡¡¡¡=r <¥Õ¥¡¥¤¥ë̾> P/ECE¾å¤Ë¤¢¤ë¥Õ¥¡¥¤¥ë¤ò¡¢PC¤ËÆÉ¤ß½Ð¤·¤Þ¤¹¡£ PC¾å¤Ë´û¤ËƱ̾¤Î¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤·¤¿¾ì¹ç¤Ï¡¢´û¸¤Î¥Õ¥¡¥¤¥ë¤Ë¾å½ñ¤­¤·¤Þ¤¹¡£ Î㣱¡§¡¡¡¡¡¡¡¡¡¡=r date.pex ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡P/ECE¾å¤Ë¤¢¤ë¡Ödate.pex¡×¤ò¡¢PC¤Î¸½ºß¤Îºî¶È¥Õ¥©¥ë¥À¤Ë¡Ödate.pex¡×¤È¤¤¤¦¥Õ¥¡¥¤¥ë̾¤ÇÆÉ¤ß½Ð¤·¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÆÉ¤ß½Ð¤·¤ËÀ®¸ù¤¹¤ë¤È¡¢¼¡¤Î¤è¤¦¤Ê½ÐÎϤ¬²èÌ̤Ëɽ¼¨¤µ¤ì¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡reading 'date.pex' done ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡date.pex¤¬Â¸ºß¤·¤Ê¤¤¾ì¹ç¤Ï¡¢ÆÉ¤ß½Ð¤·¤Ë¼ºÇÔ¤·¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡²èÌ̤ˤϲ¿¤âɽ¼¨¤µ¤ì¤º¡¢¤¹¤°¤Ë¼¡¤Î¥³¥Þ¥ó¥ÉÂÔ¤Á¥×¥í¥ó¥×¥È¡Ö>¡×¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£ Î㣲¡§¡¡¡¡¡¡¡¡¡¡=r date ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡P/ECE¾å¤Ë¡Ödate.pex¡×¤¬¤¢¤ì¤Ð¡¢PC¤Î¸½ºß¤Îºî¶È¥Õ¥©¥ë¥À¤Ë¡Ödate.pex¡×¤È¤¤¤¦¥Õ¥¡¥¤¥ë̾¤ÇÆÉ¤ß½Ð¤·¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¥Õ¥¡¥¤¥ë̾¤Î³ÈÄ¥»Ò¤ò¾Êά¤¹¤ë¤È¡¢³ÈÄ¥»Ò¡Ö.pex¡×¤¬¼«Æ°Åª¤ËÊä¤ï¤ì¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¤â¤·P/ECE¾å¤Ë³ÈÄ¥»Ò¤Ê¤·¤Î¡Ödate¡×¤È¤¤¤¦¥Õ¥¡¥¤¥ë¤¬¤¢¤ê¡¢¤³¤ì¤òÆÉ¤ß¹þ¤ß¤¿¤«¤Ã¤¿¤Î¤À¤È¤·¤Æ¤â¡¢ISD¤¬¡Ö.pex¡×¤òÊä¤Ã¤Æ¤·¤Þ¤¤¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡½¾¤Ã¤ÆISD¤Î¡Ö=r¡×¥³¥Þ¥ó¥É¤Ç¤Ï¡¢³ÈÄ¥»Ò¤Î¤Ê¤¤¥Õ¥¡¥¤¥ë̾¤ò»ý¤Ä¥Õ¥¡¥¤¥ë¤òÆÉ¤ß½Ð¤¹¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡³ÈÄ¥»Ò¤Ê¤·¤Î¥Õ¥¡¥¤¥ë¤òÆÉ¤ß½Ð¤½¤¦¤È¤·¤Æ¼ºÇÔ¤·¤¿ÍͻҤò¡¢¼¡¤Ë¼¨¤·¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡C:\>isd ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡PIECE Monitor version 1.07 (C)2001-2002 by MIO.H¡¡¡¡¡¡¡¡ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡>=¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÄP/ECE¾å¤Î¥Õ¥¡¥¤¥ë¥ê¥¹¥È¤ò¼èÆÀ¤·¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡+ 0: 2703 startup.pex ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡+ 1: 1221 date¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ä³ÈÄ¥»Ò¤Ê¤·¤Î¡Ödate¡×¤È¤¤¤¦¥Õ¥¡¥¤¥ë¤¬¤¢¤ê¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ 85 sectors (348160 bytes) free¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡>=r date¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ä¡Ödate¡×¤òÆÉ¤ß½Ð¤·¤Æ¤ß¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡> ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÄISD¤Ï¡Ödate.pex¡×¤òÆÉ¤ß½Ð¤½¤¦¤È¤·¤Æ¼ºÇÔ¤·¡¢²¿¤âɽ¼¨¤µ¤ì¤Þ¤»¤ó¡£ Î㣳¡§¡¡¡¡¡¡¡¡¡¡=r readme.txt ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ö.pex¡×°Ê³°¤Î³ÈÄ¥»Ò¤ò»ý¤Ä¥Õ¥¡¥¤¥ë¤òÆÉ¤ß½Ð¤¹¾ì¹ç¤Ï¡¢³ÈÄ¥»Ò¤ò¾Êά¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡É¬¤º¡¢³ÈÄ¥»Ò¤Þ¤Ç´Þ¤á¤Æ»ØÄꤷ¤Æ¤¯¤À¤µ¤¤¡£ Î㣴¡§¡¡¡¡¡¡¡¡¡¡=rdate.pex ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¥³¥Þ¥ó¥É¡Ö=w¡×¤Î¾ì¹ç¤ÈƱ¤¸¤¯¡¢¡Ö=r¡×¤È¥Õ¥¡¥¤¥ë̾¤Î´Ö¤Î¶õÇòʸ»ú¤Ï¡¢¤¢¤Ã¤Æ¤â¤Ê¤¯¤Æ¤â¹½¤¤¤Þ¤»¤ó¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¤³¤ÎÎã¤Î¤è¤¦¤Ë¡¢¡Ö=r¡×¤È¥Õ¥¡¥¤¥ë̾¤ò³¤±¤Æ½ñ¤¤¤Æ¤âÂç¾æÉפǤ¹¡£ °Ê²¼¤Ï°­¤¤Îã¤Ç¤¹¡£ Î㣵¡§¡¡¡¡¡¡¡¡¡¡=r hello.pex world.pex ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ê£¿ô¤Î¥Õ¥¡¥¤¥ë¤ò°ìÅÙ¤ËÆÉ¤ß½Ð¤¹¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¤³¤ÎÎã¤Î¾ì¹ç¡¢¡Öhello.pex¡×¤ÏÆÉ¤ß½Ð¤µ¤ì¤Þ¤¹¤¬¡¢¡Öworld.pex¡×¤Î»ØÄê¤Ï´°Á´¤Ë̵»ë¤µ¤ì¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¤¹¤Ê¤ï¤Á¡¢ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡=r hello.pex ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¤È»ØÄꤷ¤¿¤Î¤ÈÁ´¤¯Æ±¤¸·ë²Ì¤È¤Ê¤ê¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Öworld.pex¡×¤ò»ØÄꤷ¤¿¤³¤È¤ËÂФ¹¤ë¥¨¥é¡¼¤ä·Ù¹ðÅù¤âɽ¼¨¤µ¤ì¤Þ¤»¤ó¡£ Î㣶¡§¡¡¡¡¡¡¡¡¡¡=w *.pex ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¥ï¥¤¥ë¥É¥«¡¼¥É¤Ë¤è¤ë¥Õ¥¡¥¤¥ë»ØÄê¤Ï¤Ç¤­¤Þ¤»¤ó¡£ ---------------- =d¡§¥Õ¥¡¥¤¥ëºï½ü ---------------- ½ñ¼°¡§¡¡¡¡¡¡¡¡¡¡=d <¥Õ¥¡¥¤¥ë̾> P/ECE¾å¤Ë¤¢¤ë¥Õ¥¡¥¤¥ë¤òºï½ü¤·¤Þ¤¹¡£ Î㣱¡§¡¡¡¡¡¡¡¡¡¡=d date.pex ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡P/ECE¾å¤Ë¤¢¤ë¡Ödate.pex¡×¤òºï½ü¤·¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ºï½ü¤ËÀ®¸ù¤¹¤ë¤È¡¢¼¡¤Î¤è¤¦¤Ê½ÐÎϤ¬²èÌ̤Ëɽ¼¨¤µ¤ì¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡FlashErase c28000 0 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡FlashWrite c28000 130000 1000 0 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡date.pex¤¬Â¸ºß¤·¤Ê¤¤¾ì¹ç¤Ï¡¢ºï½ü¤Ë¼ºÇÔ¤·¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡²èÌ̤ˤϲ¿¤âɽ¼¨¤µ¤ì¤º¡¢¤¹¤°¤Ë¼¡¤Î¥³¥Þ¥ó¥ÉÂÔ¤Á¥×¥í¥ó¥×¥È¡Ö>¡×¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£ Î㣲¡§¡¡¡¡¡¡¡¡¡¡=d date ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡P/ECE¾å¤Ë¡Ödate.pex¡×¤¬¤¢¤ì¤Ð¡¢¡Ödate.pex¡×¤òºï½ü¤·¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¥Õ¥¡¥¤¥ë̾¤Î³ÈÄ¥»Ò¤ò¾Êά¤¹¤ë¤È¡¢³ÈÄ¥»Ò¡Ö.pex¡×¤¬¼«Æ°Åª¤ËÊä¤ï¤ì¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¤â¤·P/ECE¾å¤Ë³ÈÄ¥»Ò¤Ê¤·¤Î¡Ödate¡×¤È¤¤¤¦¥Õ¥¡¥¤¥ë¤¬¤¢¤ê¡¢¤³¤ì¤òºï½ü¤·¤¿¤«¤Ã¤¿¤Î¤À¤È¤·¤Æ¤â¡¢ISD¤¬¡Ö.pex¡×¤òÊä¤Ã¤Æ¤·¤Þ¤¤¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡½¾¤Ã¤ÆISD¤Î¡Ö=d¡×¥³¥Þ¥ó¥É¤Ç¤Ï¡¢³ÈÄ¥»Ò¤Î¤Ê¤¤¥Õ¥¡¥¤¥ë̾¤ò»ý¤Ä¥Õ¥¡¥¤¥ë¤òºï½ü¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡³ÈÄ¥»Ò¤Ê¤·¤Î¥Õ¥¡¥¤¥ë¤òºï½ü¤·¤è¤¦¤È¤·¤Æ¼ºÇÔ¤·¤¿ÍͻҤò¡¢¼¡¤Ë¼¨¤·¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡C:\>isd ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡PIECE Monitor version 1.07 (C)2001-2002 by MIO.H¡¡¡¡¡¡¡¡ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡>=¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÄP/ECE¾å¤Î¥Õ¥¡¥¤¥ë¥ê¥¹¥È¤ò¼èÆÀ¤·¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡+ 0: 2703 startup.pex ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡+ 1: 1221 date¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ä³ÈÄ¥»Ò¤Ê¤·¤Î¡Ödate¡×¤È¤¤¤¦¥Õ¥¡¥¤¥ë¤¬¤¢¤ê¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ 85 sectors (348160 bytes) free¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡>=d date¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ä¡Ödate¡×¤òºï½ü¤·¤Æ¤ß¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡> ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÄISD¤Ï¡Ödate.pex¡×¤òºï½ü¤·¤è¤¦¤È¤·¤Æ¼ºÇÔ¤·¡¢²¿¤âɽ¼¨¤µ¤ì¤Þ¤»¤ó¡£ Î㣳¡§¡¡¡¡¡¡¡¡¡¡=d readme.txt ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ö.pex¡×°Ê³°¤Î³ÈÄ¥»Ò¤ò»ý¤Ä¥Õ¥¡¥¤¥ë¤òºï½ü¤¹¤ë¾ì¹ç¤Ï¡¢³ÈÄ¥»Ò¤ò¾Êά¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡É¬¤º¡¢³ÈÄ¥»Ò¤Þ¤Ç´Þ¤á¤Æ»ØÄꤷ¤Æ¤¯¤À¤µ¤¤¡£ Î㣴¡§¡¡¡¡¡¡¡¡¡¡=ddate.pex ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¥³¥Þ¥ó¥É¡Ö=w¡×¤ä¡Ö=r¡×¤Î¾ì¹ç¤ÈƱ¤¸¤¯¡¢¡Ö=d¡×¤È¥Õ¥¡¥¤¥ë̾¤Î´Ö¤Î¶õÇòʸ»ú¤Ï¡¢¤¢¤Ã¤Æ¤â¤Ê¤¯¤Æ¤â¹½¤¤¤Þ¤»¤ó¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¤³¤ÎÎã¤Î¤è¤¦¤Ë¡¢¡Ö=d¡×¤È¥Õ¥¡¥¤¥ë̾¤ò³¤±¤Æ½ñ¤¤¤Æ¤âÂç¾æÉפǤ¹¡£ °Ê²¼¤Ï°­¤¤Îã¤Ç¤¹¡£ Î㣵¡§¡¡¡¡¡¡¡¡¡¡=d hello.pex world.pex ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ê£¿ô¤Î¥Õ¥¡¥¤¥ë¤ò°ìÅ٤˺ï½ü¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¤³¤ÎÎã¤Î¾ì¹ç¡¢¡Öhello.pex¡×¤Ïºï½ü¤µ¤ì¤Þ¤¹¤¬¡¢¡Öworld.pex¡×¤Î»ØÄê¤Ï´°Á´¤Ë̵»ë¤µ¤ì¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¤¹¤Ê¤ï¤Á¡¢ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡=d hello.pex ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¤È»ØÄꤷ¤¿¤Î¤ÈÁ´¤¯Æ±¤¸·ë²Ì¤È¤Ê¤ê¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Öworld.pex¡×¤ò»ØÄꤷ¤¿¤³¤È¤ËÂФ¹¤ë¥¨¥é¡¼¤ä·Ù¹ðÅù¤âɽ¼¨¤µ¤ì¤Þ¤»¤ó¡£ Î㣶¡§¡¡¡¡¡¡¡¡¡¡=w *.pex ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¥ï¥¤¥ë¥É¥«¡¼¥É¤Ë¤è¤ë¥Õ¥¡¥¤¥ë»ØÄê¤Ï¤Ç¤­¤Þ¤»¤ó¡£ -------------------------- =i¡§¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à½é´ü²½ -------------------------- ½ñ¼°¡§¡¡¡¡¡¡¡¡¡¡=i P/ECE¤Î¥Õ¥é¥Ã¥·¥å¥á¥â¥ê¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ò½é´ü²½¤·¤Þ¤¹¡£ Îã¡§¡¡¡¡¡¡¡¡¡¡¡¡=i ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡P/ECE¤Î¥Õ¥é¥Ã¥·¥å¥á¥â¥ê¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ò½é´ü²½¤·¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡³Îǧ¤Î¤¿¤á¡¢ISD¤«¤é¼¡¤Î¤è¤¦¤ÊÌ䤤¹ç¤ï¤»¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Init file system. Sure?(Y/N) ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ËÜÅö¤Ë½é´ü²½¤·¤Æ¤è¤±¤ì¤Ð¡Öy¡×¡¢¤ä¤Ã¤Ñ¤ê¤ä¤á¤ë¤Ê¤é¡Öy¡×°Ê³°¤Î¥­¡¼¤ò²¡¤·¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Öy¡×¥­¡¼¤ò²¡¤¹¤È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤¬½é´ü²½¤µ¤ì¡¢¼¡¤Î¤è¤¦¤Ê½ÐÎϤ¬²èÌ̤Ëɽ¼¨¤µ¤ì¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡FlashErase c28000 0 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡FlashWrite c28000 130000 1000 0 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Öy¡×°Ê³°¤Î¥­¡¼¤ò²¡¤·¤Æ½é´ü²½¤ò¼è¤ê¤ä¤á¤¿¾ì¹ç¤Ï¡¢¤Ê¤¼¤«¥Õ¥¡¥¤¥ë°ìÍ÷¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡È½é´ü²½¤·¤Ê¤«¤Ã¤¿¤Î¤Ç¤´°Â¿´¤ò¡É¤È¤¤¤¦¥á¥Ã¥»¡¼¥¸¤Ç¤·¤ç¤¦¤«¡©(^^; ¤Ê¤Ë¤«¤ÎÇï»Ò¤ËP/ECE¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤¬²õ¤ì¤Æ¤·¤Þ¤Ã¤¿¾ì¹ç¤Ï¡¢¥³¥Þ¥ó¥É¡Ö=i¡×¤Ç²óÉü¤Ç¤­¤ë²ÄǽÀ­¤¬¤¢¤ê¤Þ¤¹¡£ ¤¿¤À¤·¡¢P/ECE¾å¤Î¥Õ¥¡¥¤¥ë¤ÏÁ´¤Æ¾Ã¤¨¤Æ¤·¤Þ¤¤¤Þ¤¹¤Î¤Ç¡¢¤´Ãí°Õ¤¯¤À¤µ¤¤¡£ ¤Þ¤¿¡¢¡ÖP/ECE¥«¡¼¥Í¥ë¡¦¥¢¥Ã¥×¥Ç¡¼¥È¡×(WinPku.exe)¤ä¡ÖP/ECE¥³¥ß¥å¥Ë¥±¡¼¥¿¡×(WinIsd.exe)¤ò»È¤Ã¤Æ¡¢ ¤¦¤Ã¤«¤ê2MBÈÇP/ECE¤Ë¥«¡¼¥Í¥ë¥¢¥Ã¥×¥Ç¡¼¥È¤ò¤«¤±¤Æ¤·¤Þ¤Ã¤¿¾ì¹ç¤Ë¤â¡¢¥³¥Þ¥ó¥É¡Ö=i¡×¤Î¤ªÀ¤Ïäˤʤ뤳¤È¤Ë¤Ê¤ê¤Þ¤¹¡£ ¡ÖP/ECE¥«¡¼¥Í¥ë¡¦¥¢¥Ã¥×¥Ç¡¼¥È¡×¤ä¡ÖP/ECE¥³¥ß¥å¥Ë¥±¡¼¥¿¡×¤Ç¥«¡¼¥Í¥ë¥¢¥Ã¥×¥Ç¡¼¥È¤ò¹Ô¤¦¤È¡¢ 512KB°Ê¹ß¤Î¥»¥¯¥¿¤¬¡È̵¸ú¤Ê¥»¥¯¥¿¡É¤È¥Þ¡¼¥¯¤µ¤ì¤Æ¤·¤Þ¤¤¡¢¤»¤Ã¤«¤¯¤Î2MBÈÇP/ECE¤¬Ä̾ï¤Î512KBÈÇP/ECE¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¤¤Þ¤¹¡£ 2MBÈÇP/ECE¤ËÌ᤹¤Ë¤Ï¡¢¡ÖFLASH2MB¸þ¤±²þ¤¥«¡¼¥Í¥ëµÚ¤Ó¥·¥¹¥Æ¥à¡×¤Îreadme.txt¥Õ¥¡¥¤¥ë¤Ë½ñ¤«¤ì¤Æ¤¤¤ë¤è¤¦¤Ë¡¢ 2MBÈÇ¥«¡¼¥Í¥ë¤òžÁ÷¤·¤¿¸å¡¢2MBÍÑISD¤Î¥³¥Þ¥ó¥É¡Ö=i¡×¤Ç¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ò½é´ü²½¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ 2MBÈÇ¥«¡¼¥Í¥ë¤òžÁ÷¤·¤¿¤À¤±¤Ç¤Ï¡¢512KB°Ê¹ß¤Î¥»¥¯¥¿¤ÏÍ­¸ú¤Ë¤Ê¤ê¤Þ¤»¤ó¡ª ËͤâÀèÆü¤³¤ì¤ò¤ä¤Ã¤Æ¤·¤Þ¤Ã¤Æ¡¢¤Á¤ç¤Ã¤È¥Ï¥Þ¥ê¤Þ¤·¤¿¡£ »²¾È¡§¡¡¡¡¡¡¡¡¡¡¡ÖÏ»ÇÈÍ夵¤ó¤Î¥¹¥Ú¡¼¥¹¡×¡Êhttp://rokuhara.jp.org¡Ë ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢ª¡Ö¤á¤Ã¤Á¤ã¹¬¤»FRASH¥á¥â¥ê4Çܲ½·×²è¡×¡Êhttp://www2s.biglobe.ne.jp/~rokuhara/piece/flash2mb.htm¡Ë ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢ª¡ÖFLASH2MB¸þ¤±²þ¤¥«¡¼¥Í¥ëµÚ¤Ó¥·¥¹¥Æ¥à¡×¡Êhttp://www2s.biglobe.ne.jp/~rokuhara/piece/flash2mb.lzh¡Ë ------------------------------------------------------------------------------------------------------------------------------- ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¥³¥Þ¥ó¥É¤Ï°Ê¾å¤Ç¤¹¡£ ¼¡²ó¤Ï¡¢¥á¥â¥ê¥À¥ó¥×Åù¤ÎÄã¿å½à¥³¥Þ¥ó¥É¤Ë¤Ä¤¤¤Æ¸«¤Æ¤¤¤³¤¦¤È»×¤¤¤Þ¤¹¡£ ¡Ê³¤­¤Þ¤¹¡Ä¡Ë * Sun Dec 22 08:26:00 JST 2002 Naoyuki Sawa - ISD¥Þ¥Ë¥å¥¢¥ë#2 ¡ÊÁ°²ó¤«¤é¤Î³¤­¡Ä¡Ë º£²ó¤Ï¡¢ISD¥³¥Þ¥ó¥É¤ÎÃæ¤Ç¤âÆÃ¤Ë»ÈÍÑÉÑÅÙ¤¬¹â¤¤¤È»×¤ï¤ì¤ë¡¢¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¥³¥Þ¥ó¥É¤Ë¤Ä¤¤¤Æ¸«¤Æ¤¤¤­¤Þ¤¹¡£ ¤½¤ÎÁ°¤Ë¡¢¥³¥Þ¥ó¥ÉÀâÌÀÁ´È̤˴ؤ¹¤ëÃí°ÕÅÀ¤Ç¤¹¡£ ISD¤Ï´û¤Ë¡ÖÆþÎÏ¥ª¥Ú¥ì¡¼¥·¥ç¥ó¥â¡¼¥É¡×¤Ç¥³¥Þ¥ó¥ÉÂÔ¤Á¾õÂ֤ˤʤäƤ¤¤ë¤â¤Î¤È²¾Äꤷ¤Æ¡¢ÀâÌÀ¤ò¹Ô¤¦¤³¤È¤Ë¤·¤Þ¤¹¡£ ISD¤Îµ¯Æ°¡¦½ªÎ»¼ê½ç¤Ë¤Ä¤¤¤Æ¤Ï¡¢¥³¥Þ¥ó¥ÉÆþÎÏÎã¤Ë´Þ¤á¤Þ¤»¤ó¡£ Î㤨¤Ð¡¢¼¡¤Î¤è¤¦¤Ê¥³¥Þ¥ó¥ÉÆþÎÏÎ㤬¤¢¤Ã¤¿¾ì¹ç¡¢ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡=d hello.pex ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡=w world.pex ISD¤Îµ¯Æ°¡¦½ªÎ»¼ê½ç¤â´Þ¤á¤ë¤È¡¢¼ÂºÝ¤Ë¤Ï¼¡¤Î¤è¤¦¤Ë¥¿¥¤¥×¤·¤Æ¤¯¤À¤µ¤¤¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡isd ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ä¡ÖÆþÎÏ¥ª¥Ú¥ì¡¼¥·¥ç¥ó¥â¡¼¥É¡×¤ÇISD¤òµ¯Æ°¤·¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡=d hello.pex¡¡¡¡¡¡¡¡ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡=w world.pex¡¡¡¡¡¡¡¡ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡q ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÄISD¤ò½ªÎ»¤·¤Þ¤¹¡£ ¡ÖÆþÎÏ¥ª¥Ú¥ì¡¼¥·¥ç¥ó¥â¡¼¥É¡×¤Ë¤Ä¤¤¤Æ¤Ï¡¢Á°²ó¤ÎÀâÌÀ¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ ------------------------------------------------------------------------------------------------------------------------------- ======================== ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¥³¥Þ¥ó¥É ======================== ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¥³¥Þ¥ó¥É¤Ï¡¢¥Õ¥¡¥¤¥ë°ìÍ÷ɽ¼¨¤ä¥Õ¥¡¥¤¥ëžÁ÷¤Ê¤É¡¢¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ë´Ø¤¹¤ëÁàºî¤ò¹Ô¤¦¥³¥Þ¥ó¥É¤Ç¤¹¡£ Á´Éô¤Ç£µ¤Ä¤Î¥³¥Þ¥ó¥É¤¬¤¢¤ê¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡= ¡¡¡¡¡¡¡¡¥Õ¥¡¥¤¥ë°ìÍ÷¤òɽ¼¨¤·¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡=w¡¡¡¡¡¡¡¡¥Õ¥¡¥¤¥ë¤ò½ñ¤­¹þ¤ß¤Þ¤¹¡£¡ÊPC¢ªP/ECE¡Ë ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡=r¡¡¡¡¡¡¡¡¥Õ¥¡¥¤¥ë¤òÆÉ¤ß½Ð¤·¤Þ¤¹¡£¡ÊP/ECE¢ªPC¡Ë ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡=d¡¡¡¡¡¡¡¡P/ECE¾å¤Î¥Õ¥¡¥¤¥ë¤òºï½ü¤·¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡=i¡¡¡¡¡¡¡¡¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ò½é´ü²½¤·¤Þ¤¹¡£ ¤´Í÷¤Î¤è¤¦¤Ë¡¢¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¥³¥Þ¥ó¥É¤ÏÁ´¤Æ¡Ö=¡×¤Ç»Ï¤Þ¤ê¤Þ¤¹¡£ ¤È¤³¤í¤Ç¡¢ISD¤Î¥Ø¥ë¥×¡Ê¥³¥Þ¥ó¥É¡Ö?¡×¤Çɽ¼¨¤µ¤ì¤Þ¤¹¡Ë¤ò¸«¤ë¤È¡¢¤â¤¦°ì¤Ä¡Ö=¡×¤Ç»Ï¤Þ¤ë¥³¥Þ¥ó¥É¤¬ºÜ¤Ã¤Æ¤¤¤Þ¤¹¡£ »þ¹ïÀßÄꥳ¥Þ¥ó¥É¡Ö=t¡×¤Ç¤¹¡£ ¤¬¡¢¤³¤ì¤ÏISD¥Ø¥ë¥×¤Î¥ß¥¹¥×¥ê¥ó¥È¤Ç¡¢Àµ¤·¤¤»þ¹ïÀßÄꥳ¥Þ¥ó¥É¤Ï¡Öt¡×¤Ç¤¹¡£ »þ¹ïÀßÄꥳ¥Þ¥ó¥É¡Öt¡×¤Ë¤Ä¤¤¤Æ¤Ï¡¢¼¡²ó°Ê¹ß¤ËÀâÌÀ¤·¤Þ¤¹¡£ --------------- =¡§¥Õ¥¡¥¤¥ë°ìÍ÷ --------------- ½ñ¼°¡§¡¡¡¡¡¡¡¡¡¡= P/ECE¾å¤Ë¤¢¤ë¥Õ¥¡¥¤¥ë°ìÍ÷¤È¡¢³«¤­¥»¥¯¥¿¿ô¡¦¥Ð¥¤¥È¿ô¤òɽ¼¨¤·¤Þ¤¹¡£ Î㣱¡§¡¡¡¡¡¡¡¡¡¡= ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡½ÐÎÏ·ë²Ì¤Ï¼¡¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡+ 0: 2703 startup.pex ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡+ 1: 92352 rt.pex ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡+ 2: 11408 rt.fpk ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡+ 3: 57400 padv.pex ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡+ 4:137719 padv.fpk ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ 11 sectors (45056 bytes) free ¥Õ¥¡¥¤¥ë°ìÍ÷¥³¥Þ¥ó¥É¤Ë¤Ä¤¤¤Æ¤Ï¡¢ÆÃ¤ËÃí°ÕÅÀ¤â¤¢¤ê¤Þ¤»¤ó¡£ ¥Õ¥¡¥¤¥ë°ìÍ÷¤ÏP/ECE¥³¥ß¥å¥Ë¥±¡¼¥¿Åù¤ò»È¤Ã¤Æ¤â¸«¤é¤ì¤ë¤Î¤Ç¤¹¤¬¡¢ISD¤Î¥Õ¥¡¥¤¥ë°ìÍ÷¥³¥Þ¥ó¥É¤â°Õ³°¤ÈÊØÍø¤Ç¤¹¡£ ɸ½à¤Î³«È¯´Ä¶­¤ò»È¤Ã¤ÆP/ECE¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ÎºîÀ®¤ò¹Ô¤¦¾ì¹ç¡¢¤Û¤È¤ó¤É¤Îºî¶È¤ÏDOSÁë¤Ç¤Îºî¶È¤È¤Ê¤ê¤Þ¤¹¡£ ¤½¤ÎºÝ¡¢¥Õ¥¡¥¤¥ë°ìÍ÷¤ò¸«¤ë¤¿¤á¤À¤±¤ËP/ECE¥³¥ß¥å¥Ë¥±¡¼¥¿¤òµ¯Æ°¤·¤Ê¤¯¤Æ¤â¡¢¥³¥Þ¥ó¥É¥×¥í¥ó¥×¥È¤«¤é ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡isd = ¤È¥¿¥¤¥×¤¹¤ë¤À¤±¤Ç¡¢P/ECE¾å¤Î¥Õ¥¡¥¤¥ë°ìÍ÷¤¬Ä´¤Ù¤é¤ì¤Þ¤¹¡£ DOS¤Î¡ÖDIR¡×¥³¥Þ¥ó¥É¤ÈƱ¤¸´¶³Ð¤Ç¤¹¤Í¡£ -------------------- =w¡§¥Õ¥¡¥¤¥ë½ñ¤­¹þ¤ß -------------------- ½ñ¼°¡§¡¡¡¡¡¡¡¡¡¡=w <¥Õ¥¡¥¤¥ë̾> PC¾å¤Ë¤¢¤ë¥Õ¥¡¥¤¥ë¤ò¡¢P/ECE¤Ë½ñ¤­¹þ¤ß¤Þ¤¹¡£ P/ECE¾å¤Ë´û¤ËƱ̾¤Î¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤·¤¿¾ì¹ç¤Ï¡¢´û¸¤Î¥Õ¥¡¥¤¥ë¤Ë¾å½ñ¤­¤·¤Þ¤¹¡£ Î㣱¡§¡¡¡¡¡¡¡¡¡¡=w date.pex ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¸½ºß¤Îºî¶È¥Õ¥©¥ë¥À¤Ë¤¢¤ë¡Ödate.pex¡×¤ò¡¢P/ECE¤Ë½ñ¤­¹þ¤ß¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡½ñ¤­¹þ¤ß¤ËÀ®¸ù¤¹¤ë¤È¡¢¼¡¤Î¤è¤¦¤Ê½ÐÎϤ¬²èÌ̤Ëɽ¼¨¤µ¤ì¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡date.pex ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡FlashErase c77000 0 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡FlashWrite c77000 130000 4c5 0 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡FlashErase c28000 0 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡FlashWrite c28000 130000 1000 0 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡date.pex¤¬Â¸ºß¤·¤Ê¤¤¾ì¹ç¤Ï¡¢½ñ¤­¹þ¤ß¤Ë¼ºÇÔ¤·¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¥Õ¥¡¥¤¥ë̾¤À¤±¤¬²èÌ̤Ëɽ¼¨¤µ¤ì¡¢¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸Åù¤ÏÆÃ¤Ëɽ¼¨¤µ¤ì¤Ê¤¤¤Î¤ÇÍ×Ãí°Õ¤Ç¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡date.pex ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¶õ¤­ÍÆÎ̤¬Â­¤ê¤Ê¤¯¤Æ½ñ¤­¹þ¤ß¤Ë¼ºÇÔ¤·¤¿¾ì¹ç¤Ï¡¢¤Á¤ã¤ó¤È¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤âɽ¼¨¤µ¤ì¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡date.pex ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¶õ¤­¤¬Â­¤ê¤Þ¤»¤ó¡£ Î㣲¡§¡¡¡¡¡¡¡¡¡¡=w C:\usr\PIECE\app\date.pex ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÖC:\usr\PIECE\app\date.pex¡×¤ò¡¢P/ECE¤Ë½ñ¤­¹þ¤ß¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¸½ºß¤Îºî¶È¥Õ¥©¥ë¥À°Ê³°¤Î¾ì½ê¤Ë¤¢¤ë¥Õ¥¡¥¤¥ë¤ò½ñ¤­¹þ¤à¤È¤­¤Ï¡¢¤³¤ÎÎã¤Î¤è¤¦¤Ë¥Õ¥ë¥Ñ¥¹¤Ç»ØÄꤷ¤Æ¤¯¤À¤µ¤¤¡£ Î㣳¡§¡¡¡¡¡¡¡¡¡¡=w date ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¸½ºß¤Îºî¶È¥Õ¥©¥ë¥À¤Ë¡Ödate.pex¡×¤¬¤¢¤ì¤Ð¡¢¡Ödate.pex¡×¤òP/ECE¤Ë½ñ¤­¹þ¤ß¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¥Õ¥¡¥¤¥ë̾¤Î³ÈÄ¥»Ò¤ò¾Êά¤¹¤ë¤È¡¢³ÈÄ¥»Ò¡Ö.pex¡×¤¬¼«Æ°Åª¤ËÊä¤ï¤ì¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¤â¤·ËÜÅö¤Ë¡Ödate¡×¤È¤¤¤¦¥Õ¥¡¥¤¥ë¤ò½ñ¤­¹þ¤ß¤«¤Ã¤¿¤Î¤À¤È¤·¤Æ¤â¡¢ISD¤¬¡Ö.pex¡×¤òÊä¤Ã¤Æ¤·¤Þ¤¤¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡½¾¤Ã¤ÆISD¤Î¡Ö=w¡×¥³¥Þ¥ó¥É¤Ç¤Ï¡¢³ÈÄ¥»Ò¤Î¤Ê¤¤¥Õ¥¡¥¤¥ë̾¤ò»ý¤Ä¥Õ¥¡¥¤¥ë¤ò½ñ¤­¹þ¤à¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó¡ª Î㣴¡§¡¡¡¡¡¡¡¡¡¡=w readme.txt ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ö.pex¡×°Ê³°¤Î³ÈÄ¥»Ò¤ò»ý¤Ä¥Õ¥¡¥¤¥ë¤ò½ñ¤­¹þ¤à¾ì¹ç¤Ï¡¢³ÈÄ¥»Ò¤ò¾Êά¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡É¬¤º¡¢³ÈÄ¥»Ò¤Þ¤Ç´Þ¤á¤Æ»ØÄꤷ¤Æ¤¯¤À¤µ¤¤¡£ Î㣵¡§¡¡¡¡¡¡¡¡¡¡=wdate.pex ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¼Â¤Ï¡¢¡Ö=w¡×¤È¥Õ¥¡¥¤¥ë̾¤Î´Ö¤Î¶õÇòʸ»ú¤Ï¡¢¤¢¤Ã¤Æ¤â¤Ê¤¯¤Æ¤â¹½¤¤¤Þ¤»¤ó¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¤³¤ÎÎã¤Î¤è¤¦¤Ë¡¢¡Ö=w¡×¤È¥Õ¥¡¥¤¥ë̾¤ò³¤±¤Æ½ñ¤¤¤Æ¤âÂç¾æÉפǤ¹¡£ °Ê²¼¤Ï°­¤¤Îã¤Ç¤¹¡£ Î㣶¡§¡¡¡¡¡¡¡¡¡¡=w hello.pex world.pex ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ê£¿ô¤Î¥Õ¥¡¥¤¥ë¤ò°ìÅ٤˽ñ¤­¹þ¤à¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¤³¤ÎÎã¤Î¾ì¹ç¡¢¡Öhello.pex¡×¤Ï½ñ¤­¹þ¤Þ¤ì¤Þ¤¹¤¬¡¢¡Öworld.pex¡×¤Î»ØÄê¤Ï´°Á´¤Ë̵»ë¤µ¤ì¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¤¹¤Ê¤ï¤Á¡¢ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡=w hello.pex ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¤È»ØÄꤷ¤¿¤Î¤ÈÁ´¤¯Æ±¤¸·ë²Ì¤È¤Ê¤ê¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Öworld.pex¡×¤ò»ØÄꤷ¤¿¤³¤È¤ËÂФ¹¤ë¥¨¥é¡¼¤ä·Ù¹ðÅù¤âɽ¼¨¤µ¤ì¤Þ¤»¤ó¡£ Î㣷¡§¡¡¡¡¡¡¡¡¡¡=w *.pex ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¥ï¥¤¥ë¥É¥«¡¼¥É¤Ë¤è¤ë¥Õ¥¡¥¤¥ë»ØÄê¤Ï¤Ç¤­¤Þ¤»¤ó¡£ ¥Õ¥¡¥¤¥ë½ñ¤­¹þ¤ß¥³¥Þ¥ó¥É¤¬Ìò¤ËΩ¤Ä¤Î¤Ï¡¢Makefile¤Çpex¤òP/ECE¤ËžÁ÷¤¹¤ë¾ì¹ç¤Ç¤¹¡£ Î㤨¤Ð¼¡¤Î¤è¤¦¤ÊÆâÍÆ¤ÎMakefile¤¬¤¢¤Ã¤¿¾ì¹ç ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡all: hello.srf ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡pex: hello.pex ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡hello.srf: hello.c ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡pcc33 hello.c ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡hello.pex: hello.srf ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ppack -e hello.srf -ohello.pex ¡Ömake¡×¤Ç¡Öhello.srf¡×¤¬ºîÀ®¤µ¤ì¡¢¡Ömake pex¡×¤Ç¡Öhello.pex¡×¤¬À¸À®¤µ¤ì¤Þ¤¹¡£ P/ECE¤Ø¤Îpex¥Õ¥¡¥¤¥ëžÁ÷¤â¼«Æ°²½¤¹¤ë¤¿¤á¤Ë¤Ï¡¢¼¡¤ÎÆó¹Ô¤òÄɲä·¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡all: hello.srf ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡pex: hello.pex ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡hello.srf: hello.c ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡pcc33 hello.c ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡hello.pex: hello.srf ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ppack -e hello.srf -ohello.pex ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡install: hello.pex¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢«¤³¤ì¤òÄɲà ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡isd =w hello.pex¡¡¡¡¡¡¡¡¡¡¡¡¢«¤³¤ì¤òÄɲà ¡Ömake install¡×¤È¥¿¥¤¥×¤¹¤ì¤Ð¡¢¡Öhello.pex¡×¤ÎºîÀ®¡¦Å¾Á÷¤Þ¤Ç¤¬¼«Æ°Åª¤Ë¹Ô¤ï¤ì¤Þ¤¹¡£ hello.pex¤«¤éÍøÍѤ¹¤ë¥Ç¡¼¥¿¥Õ¥¡¥¤¥ëÅù¤¬¤¢¤ë¾ì¹ç¤Ï¡¢¥Ç¡¼¥¿¥Õ¥¡¥¤¥ë¤ÎžÁ÷¤âÄɲ䷤Ƥª¤­¤Þ¤·¤ç¤¦¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡all: hello.srf ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡pex: hello.pex ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡hello.srf: hello.c ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡pcc33 hello.c ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡hello.pex: hello.srf ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ppack -e hello.srf -ohello.pex ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡install: hello.pex ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡isd =w hello.pex ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡isd =w hell_dat.fpk¡¡¡¡¡¡¡¡¢«¤³¤ì¤òÄɲà ------------------------------------------------------------------------------------------------------------------------------- ¤Á¤ç¤Ã¤ÈŤ¯¤Ê¤Ã¤¿¤Î¤Ç¡¢º£²ó¤Ï¤³¤³¤Þ¤Ç¤Ç¤¹¡£ »Ä¤ê£³¤Ä¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¥³¥Þ¥ó¥É¤Ë¤Ä¤¤¤Æ¤Ï¡¢¼¡²ó¤Ø¡£ ¡Ê¡Ä³¤­¤Þ¤¹¡Ë * Fri Dec 20 12:30:00 JST 2002 Naoyuki Sawa - ISD¥Þ¥Ë¥å¥¢¥ë#1 P/ECE³«È¯¥Ä¡¼¥ë¤ÎÃæ¤Ç¤âÆÃ¤Ë½ÅÍפʤΤ¬¡¢USBžÁ÷¥Ä¡¼¥ë/´Ê°×¥â¥Ë¥¿¡¼¡ØISD¡Ù¤Ç¤¹¡£ ÃÏÌ£¤Ê¤¬¤éÈó¾ï¤Ë¿µ¡Ç½¤Ç¡¢PC¦¤Î¥Ä¡¼¥ë¤È¤·¤ÆÉ¬Íפʵ¡Ç½¤ò¤Û¤È¤ó¤ÉÁ´ÉôÈ÷¤¨¤Æ¤¤¤Þ¤¹¡£ ¥Ð¡¼¥¸¥ç¥ó¥Á¥§¥Ã¥¯¡¢¥Õ¥¡¥¤¥ëžÁ÷¡¢²èÌÌ¥­¥ã¥×¥Á¥ã¡¢¥×¥í¥°¥é¥à¤Î°ì»þÄä»ß¡¢¥«¡¼¥Í¥ë¹¹¿·¤Ê¤É¤¬¡¢¤³¤ì°ì¤Ä¤Ç¤Þ¤«¤Ê¤¨¤Þ¤¹¡£ ¥³¥Þ¥ó¥É¥é¥¤¥ó¥Ä¡¼¥ë¤ò¹¥¤à³«È¯¼Ô¤µ¤ó¤Ï¡¢´û¤Ë»È¤¤¤³¤Ê¤·¤Æ¤ª¤é¤ì¤ë¤Î¤Ç¤Ï¤Ê¤¤¤Ç¤·¤ç¤¦¤«¡£ ISD¤ò»È¤¦ºÝ¤ÎÌäÂêÅÀ¤È¤·¤Æ¡¢P/ECE³«È¯´Ä¶­¤Ë¤ÏISD¤Î¾Ü¤·¤¤ÀâÌÀ¤¬Æþ¤Ã¤Æ¤¤¤Ê¤¤¡¢¤È¤¤¤¦ÅÀ¤¬µó¤²¤é¤ì¤Þ¤¹¡£ ISD¤Î¥½¡¼¥¹¡ÊC:\usr\PIECE\tools\isd¡Ë¤ä¡¢¡Öisd ?¡×¤Çɽ¼¨¤µ¤ì¤ë¥Ø¥ë¥×¤Ç½¼Ê¬¤È¤â¸À¤¨¤Þ¤¹¤¬¡¢¤ä¤Ï¤ê¤Þ¤È¤Þ¤Ã¤¿ÀâÌÀ¤¬Íߤ·¤¤¤È¤³¤í¤Ç¤¹¡£ ¡ÊËͤϤ¿¤Þ¤Ë¤·¤«ISD¤ò»È¤ï¤Ê¤¤¤Î¤Ç¡¢¤½¤Î¤¿¤Ó¤Ë»È¤¤Êý¤ò˺¤ì¤Æ¡¢ISD¤Î¥½¡¼¥¹¤òÆÉ¤ß¤«¤¨¤·¤¿¤ê¤·¤Æ¤Þ¤¹¡Ä(^^;¡Ë ¤½¤³¤Ç¡¢º£²ó¤è¤ê¿ô²ó¤Ëʬ¤±¤Æ¡¢ISD¤Î»È¤¤Êý¤ò¤Þ¤È¤á¤Æ¤ß¤è¤¦¤È»×¤¤¤Þ¤¹¡£ º£²ó¤Ï¤Þ¤º¡¢ISD¤Îµ¯Æ°ÊýË¡¤Ë¤Ä¤¤¤Æ¤Ç¤¹¡£ ------------------------------------------------------------------------------------------------------------------------------- ======== µ¯Æ°ÊýË¡ ======== ISD¤Ï¡¢»°¤Ä¤Îµ¯Æ°¥â¡¼¥É¤ò»ý¤Ã¤Æ¤¤¤Þ¤¹¡£ ¡¦¡Ö¥×¥í¥°¥é¥à¼Â¹Ô¥â¡¼¥É¡× ¡¦¡Ö°ú¿ô¥ª¥Ú¥ì¡¼¥·¥ç¥ó¥â¡¼¥É¡× ¡¦¡ÖÆþÎÏ¥ª¥Ú¥ì¡¼¥·¥ç¥ó¥â¡¼¥É¡× ¤Ç¤¹¡£ ¢¨¡Ö°ú¿ô¥ª¥Ú¥ì¡¼¥·¥ç¥ó¥â¡¼¥É¡×¤È¡ÖÆþÎÏ¥ª¥Ú¥ì¡¼¥·¥ç¥ó¥â¡¼¥É¡×¤Î¥Í¡¼¥ß¥ó¥°¤Ï¡¢ISD¤Î¥½¡¼¥¹¤Î¥³¥á¥ó¥È¤ËͳÍ褷¤Þ¤¹¡£ ¡¡¡Ö¥×¥í¥°¥é¥à¼Â¹Ô¥â¡¼¥É¡×¤ÏÊØµ¹¾å¡¢Ëͤ¬¾¡¼ê¤Ë̾ÉÕ¤±¤Þ¤·¤¿¡£ -------------------- ¥×¥í¥°¥é¥à¼Â¹Ô¥â¡¼¥É -------------------- µ¯Æ°ÊýË¡£±¡§¡¡¡¡isd [#<¥Ç¥Ð¥¤¥¹ÈÖ¹æ>] -run µ¯Æ°ÊýË¡£²¡§¡¡¡¡isd [#<¥Ç¥Ð¥¤¥¹ÈÖ¹æ>] -run µ¯Æ°ÊýË¡£³¡§¡¡¡¡isd [#<¥Ç¥Ð¥¤¥¹ÈÖ¹æ>] -run srf¥Õ¥¡¥¤¥ë¤òľÀܼ¹Ԥ¹¤ë¥â¡¼¥É¤Ç¤¹¡£ srf¥Õ¥¡¥¤¥ë¤Î¼Â¹Ô³«»Ï¸å¡¢ISD¤Ï¤¹¤°¤Ë½ªÎ»¤·¤Þ¤¹¡£ µ¯Æ°ÊýË¡£±¤Î¤è¤¦¤Ë¡¢srf¥Õ¥¡¥¤¥ë̾¤ò»ØÄꤹ¤ë¤È¡¢¤½¤Îsrf¥Õ¥¡¥¤¥ë¤ò¼Â¹Ô¤·¤Þ¤¹¡£ Î㣱¡§¡¡¡¡¡¡¡¡¡¡isd -run C:\usr\PIECE\app\hello\hello.srf ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÖC:\usr\PIECE\app\hello\hello.srf¡×¤ò¼Â¹Ô¤·¤Þ¤¹¡£ µ¯Æ°ÊýË¡£²¤Î¤è¤¦¤Ë¡¢srf¥Õ¥¡¥¤¥ë¤Î³ÈÄ¥»Ò¡Ö.srf¡×¤ò¾Êά¤·¤Æ¤â¹½¤¤¤Þ¤»¤ó¡£ Î㣲¡§¡¡¡¡¡¡¡¡¡¡isd -run C:\usr\PIECE\app\hello\hello ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÖC:\usr\PIECE\app\hello\hello.srf¡×¤ò¼Â¹Ô¤·¤Þ¤¹¡£ µ¯Æ°ÊýË¡£³¤Î¤è¤¦¤Ë¡¢¥Õ¥¡¥¤¥ë̾¤Î»ØÄê¤ò´°Á´¤Ë¾Êά¤¹¤ë¤È¡¢¸½ºß¤Îºî¶È¥Õ¥©¥ë¥À¤«¤ésrf¥Õ¥¡¥¤¥ë¤òõ¤·¤Æ¡¢ºÇ½é¤Ë¸«¤Ä¤«¤Ã¤¿srf¥Õ¥¡¥¤¥ë¤ò¼Â¹Ô¤·¤Þ¤¹¡£ ¸½ºß¤Îºî¶È¥Õ¥©¥ë¥À¤ËÊ£¿ô¤Îsrf¥Õ¥¡¥¤¥ë¤¬¤¢¤Ã¤¿¾ì¹ç¤Ï¡¢¤É¤Îsrf¥Õ¥¡¥¤¥ë¤¬¼Â¹Ô¤µ¤ì¤ë¤«¤Ïͽ¬¤Ç¤­¤Þ¤»¤ó¡£ Î㣳¡§¡¡¡¡¡¡¡¡¡¡C: ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡cd \usr\PIECE\app\hello\ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡isd -run ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÖC:\usr\PIECE\app\hello\¡×¥Õ¥©¥ë¥À¤ÎÃæ¤Ë¤¢¤ë¡Öhello.srf¡×¤ò¼Â¹Ô¤·¤Þ¤¹¡£ P/ECE¤¬Ê£¿ôÂæÀܳ¤µ¤ì¤Æ¤¤¤ë¤È¤­¤Ï¡¢¥Ç¥Ð¥¤¥¹ÈÖ¹æ¤ò»ØÄꤷ¤Æ¡¢ÆóÂæÌܰʹߤÎP/ECE¤Çsrf¥Õ¥¡¥¤¥ë¤ò¼Â¹Ô¤¹¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¡£ ¥Ç¥Ð¥¤¥¹ÈÖ¹æ¤Ï¡¢0¤¬°ìÂæÌܤÎP/ECE¡¢1¤¬ÆóÂæÌܤÎP/ECE¡¢2¤¬»°ÂæÌܤÎP/ECE¡¢...¤òɽ¤·¤Þ¤¹¡£ ¥Ç¥Ð¥¤¥¹ÈÖ¹æ¤ò»ØÄꤷ¤Ê¤±¤ì¤Ð¡¢°ìÂæÌܤÎP/ECE¤Çsrf¥Õ¥¡¥¤¥ë¤ò¼Â¹Ô¤·¤Þ¤¹¡£ ¥Ç¥Ð¥¤¥¹ÈÖ¹æ¤ò»ØÄꤹ¤ë¤³¤È¤ÏÌÇ¿¤Ë¤¢¤ê¤Þ¤»¤ó¤¬¡¢ÀÖ³°ÀþÄÌ¿®¥×¥í¥°¥é¥à¤Ê¤É¤ò³«È¯¤·¤Æ¤¤¤ë¾ì¹ç¤Ï¤³¤Îµ¡Ç½¤¬ÊØÍø¤Ë»È¤¨¤Þ¤¹¡£ Makefile¤ä¥Ð¥Ã¥Á¥Õ¥¡¥¤¥ë¤Ê¤É¤Ë¡¢ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡isd #0 -run ir.srf ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡isd #1 -run ir.srf ¤È½ñ¤¤¤Æ¤ª¤¯¤È¡¢¡Öir.srf¡×¤òÆóÂæ¤ÎP/ECE¤Ç¼Â¹Ô¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ ¡Ö¥×¥í¥°¥é¥à¼Â¹Ô¥â¡¼¥É¡×¤Ë¤Ä¤¤¤Æ¤Ï¡¢°Ê¾å¤Ç¤¹¡£ ¡Ö¥×¥í¥°¥é¥àµ¯Æ°¥â¡¼¥É¡×¤ò´Êñ¤Ë»È¤¦¤¿¤á¤Ë¡¢¥Ð¥Ã¥Á¥Õ¥¡¥¤¥ë¡ÖC:\usr\PIECE\bin\run.bat¡×¤¬ÍѰդµ¤ì¤Æ¤¤¤Þ¤¹¡£ ¡ÖC:\usr\PIECE\bin\run.bat¡×¤ÎÆâÍÆ¤Ï¡¢¼¡¤Î¤È¤ª¤ê¤Ç¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡@isd -run %1 srf¥Õ¥¡¥¤¥ë¤ò¼Â¹Ô¤¹¤ë¤¿¤á¤Ë¤è¤¯¡Örun¡×¥³¥Þ¥ó¥É¤ò»È¤¤¤Þ¤¹¤¬¡¢¡Örun¡×¥³¥Þ¥ó¥É¤ÏISD¤Î¡Ö¥×¥í¥°¥é¥à¼Â¹Ô¥â¡¼¥É¡×¤ÎÊÌ̾¤Ê¤Î¤Ç¤¹¡£ ¤Á¤Ê¤ß¤ËÀèÆ¬¤Î¡Ö@¡×¤Ï¡¢¥Ð¥Ã¥Á¥Õ¥¡¥¤¥ë¤ÎÃæ¤«¤é¼Â¹Ô¤¹¤ë¥³¥Þ¥ó¥É̾¤ò¡¢²èÌ̤Ëɽ¼¨¤·¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¤¿¤á¤Îµ­¹æ¤Ç¤¹¡£ ¤À¤«¤é¡¢¡Örun¡×¥³¥Þ¥ó¥É¤ò»È¤Ã¤Æ¤â¡¢¥Ð¥Ã¥Á¥Õ¥¡¥¤¥ë¤ÎÃæ¤«¤éISD¤ò¸Æ¤ó¤Ç¤¤¤ëÍͻҤϲèÌ̤Ëɽ¼¨¤µ¤ì¤Þ¤»¤ó¡£ ------------------------ °ú¿ô¥ª¥Ú¥ì¡¼¥·¥ç¥ó¥â¡¼¥É ------------------------ µ¯Æ°ÊýË¡£±¡§¡¡¡¡isd [#¥Ç¥Ð¥¤¥¹ÈÖ¹æ] <¥³¥Þ¥ó¥É> µ¯Æ°ÊýË¡£²¡§¡¡¡¡isd [#¥Ç¥Ð¥¤¥¹ÈÖ¹æ] <¥³¥Þ¥ó¥É>;<¥³¥Þ¥ó¥É>;... ISD¤Ø¤Î¥³¥Þ¥ó¥É¤ò¡¢ISDµ¯Æ°»þ¤Ë¤¤¤Ã¤·¤ç¤Ë»ØÄꤹ¤ë¥â¡¼¥É¤Ç¤¹¡£ ³Æ¥³¥Þ¥ó¥É¤ò¼Â¹Ô¸å¡¢ISD¤Ï¤¹¤°¤Ë½ªÎ»¤·¤Þ¤¹¡£ ¤Ê¤ª¡¢¥Ç¥Ð¥¤¥¹ÈÖ¹æ¤Ë¤Ä¤¤¤Æ¤Ï¡Ö¥×¥í¥°¥é¥à¼Â¹Ô¥â¡¼¥É¡×¤ÈƱ¤¸¤Ç¤¹¤Î¤Ç¡¢ÀâÌÀ¤ò¾Êά¤·¤Þ¤¹¡£ µ¯Æ°ÊýË¡£±¤Ï¡¢¥³¥Þ¥ó¥É¤ò°ì¤Ä¤À¤±»ØÄꤹ¤ë¡¢¤¤¤Á¤Ð¤ó´ðËÜŪ¤ÊÊýË¡¤Ç¤¹¡£ Î㣱¡Ý£±¡§¡¡¡¡¡¡isd v ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡P/ECE¥«¡¼¥Í¥ë¤Î¥Ð¡¼¥¸¥ç¥ó¾ðÊó¤òɽ¼¨¤·¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¥³¥Þ¥ó¥É¡Öv¡×¤Ï¡¢¥Ð¡¼¥¸¥ç¥ó¾ðÊó¤òɽ¼¨¤¹¤ë¤¿¤á¤Î¥³¥Þ¥ó¥É¤Ç¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ê¢¨¸Ä¡¹¤Î¥³¥Þ¥ó¥É¤Î¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï¸å½Ò¤·¤Þ¤¹¡£°Ê²¼Æ±ÍÍ¡Ë ¥³¥Þ¥ó¥É¤¬¶õÇò¤ò´Þ¤à¾ì¹ç¤Ï¡¢¥³¥Þ¥ó¥ÉÁ´ÂΤò¡Ö"¡×¤Ç°Ï¤à¤Î¤¬°ìÈÌŪ¤Ç¤¹¤¬¡¢É¬¿Ü¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£ Î㣱¡Ý£²¡§¡¡¡¡¡¡isd "d 100000" ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡isd d 100000 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¤É¤Á¤é¤âƱ¤¸¤¯¡¢0x100000ÈÖÃϤ«¤é128¥Ð¥¤¥Èʬ¤Î¥á¥â¥êÆâÍÆ¤ò¥Ð¥¤¥Ê¥ê¥À¥ó¥×¤·¤Þ¤¹¡£ ¥³¥Þ¥ó¥É¡Öd¡×¤Ï¡¢¥á¥â¥êÆâÍÆ¤ò¥Ð¥¤¥Ê¥ê¥À¥ó¥×¤¹¤ë¤¿¤á¤Î¥³¥Þ¥ó¥É¤Ç¤¹¡£ Í­¸ú¤Ê¥³¥Þ¥ó¥É¤Î¸å¤í¤ËÉÔÍפÊʸ»úÎ󤬤¯¤Ã¤Ä¤¤¤Æ¤¤¤Æ¤â¡¢·Ù¹ð¤â¤Ê¤¯Ã±¤Ë̵»ë¤µ¤ì¤Þ¤¹¤¬¡¢¤³¤Î¤Õ¤ë¤Þ¤¤¤Ë°Í¸¤¹¤ë¤Î¤Ï˾¤Þ¤·¤¯¤¢¤ê¤Þ¤»¤ó¡£ ¼¡¤ÎÎã¤Ï¡¢´Ö°ã¤Ã¤¿¥³¥Þ¥ó¥É»ØÄê¤ÎÎã¤Ç¤¹¡£ Î㣱¡Ý£³¡§¡¡¡¡¡¡isd vHOGE ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¥³¥Þ¥ó¥É¡Öv¡×¤Î¸å¤Î¡ÖHOGE¡×¤Ï̵»ë¤µ¤ì¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Öisd v¡×¤È»ØÄꤷ¤¿¤Î¤ÈƱ¤¸·ë²Ì¤È¤Ê¤ê¡¢¡ÖHOGE¡×¤ËÂФ¹¤ë·Ù¹ð¤Ê¤É¤âɽ¼¨¤µ¤ì¤Þ¤»¤ó¡£ °ìÅÙ¤ËÊ£¿ô¤Î¥³¥Þ¥ó¥É¤ò»ØÄꤹ¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¡£ Ê£¿ô¤Î¥³¥Þ¥ó¥É¤ò»ØÄꤹ¤ë¾ì¹ç¤Ï¡¢µ¯Æ°ÊýË¡£²¤Î¤è¤¦¤Ë¡¢³Æ¥³¥Þ¥ó¥É¤ò¡Ö;¡×¤Ç¶èÀڤäÆÊ¤٤ޤ¹¡£ Î㣲¡Ý£±¡§¡¡¡¡¡¡isd v;= ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¥Ð¡¼¥¸¥ç¥ó¾ðÊó¤È¡¢¥Õ¥¡¥¤¥ë°ìÍ÷¤òɽ¼¨¤·¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¥³¥Þ¥ó¥É¡Ö=¡×¤Ï¡¢¥Õ¥¡¥¤¥ë°ìÍ÷¤òɽ¼¨¤¹¤ë¤¿¤á¤Î¥³¥Þ¥ó¥É¤Ç¤¹¡£ ¥³¥Þ¥ó¥ÉʤӤ¬¶õÇò¤ò´Þ¤à¾ì¹ç¤Ï¡¢¥³¥Þ¥ó¥ÉʤÓÁ´ÂΤò¡Ö"¡×¤Ç°Ï¤à¤Î¤¬°ìÈÌŪ¤Ç¤¹¤¬¡¢É¬¿Ü¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£ Î㣲¡Ý£²¡§¡¡¡¡¡¡isd "d 100000;d 200000" ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡isd d 100000;d 200000 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¤É¤Á¤é¤âƱ¤¸¤¯¡¢0x100000ÈÖÃϤ«¤é¤Î128¥Ð¥¤¥Èʬ¤Î¥á¥â¥êÆâÍÆ¤ò¥Ð¥¤¥Ê¥ê¥À¥ó¥×¤·¡¢ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Â³¤±¤Æ¡¢0x200000ÈÖÃϤ«¤é¤Î128¥Ð¥¤¥Èʬ¤Î¥á¥â¥êÆâÍÆ¤ò¥Ð¥¤¥Ê¥ê¥À¥ó¥×¤·¤Þ¤¹¡£ ¥³¥Þ¥ó¥É¤ò¶èÀÚ¤ë¡Ö;¡×¤Îº¸±¦¤Ë¤Ï¡¢¶õÇòʸ»ú¤òÃÖ¤«¤Ê¤¤¤Û¤¦¤¬¤¤¤¤¤Ç¤·¤ç¤¦¡£ ¼ÂºÝ¤Ë¤Ï¡¢¡Ö;¡×º¸Â¦¤Ë¤Ï¶õÇò¤ò´Þ¤á¤Æ¤É¤ó¤Êʸ»ú¤¬¤¢¤Ã¤Æ¤â̵»ë¤µ¤ì¤ë¤Î¤Ç¤¹¤¬¡¢¤³¤Î¤Õ¤ë¤Þ¤¤¤Ë°Í¸¤¹¤ë¤Î¤Ï˾¤Þ¤·¤¯¤¢¤ê¤Þ¤»¤ó¡£ ¡Ö;¡×¤Î±¦Â¦¤Ë¶õÇòʸ»ú¤òÃÖ¤¤¤¿¾ì¹ç¤Ï¡¢·Ù¹ð¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£ ¼¡¤ÎÎã¤Ï¡¢´Ö°ã¤Ã¤¿¥³¥Þ¥ó¥É»ØÄê¤ÎÎã¤Ç¤¹¡£ Î㣲¡Ý£³¡§¡¡¡¡¡¡isd vHOGE;= ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Î㣱¡Ý£³¤ÈƱ¤¸¤¯¡¢¥³¥Þ¥ó¥É¡Öv¡×¤Î¸å¤Î¡ÖHOGE¡×¤Ï̵»ë¤µ¤ì¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Öisd v;=¡×¤È»ØÄꤷ¤¿¤Î¤ÈƱ¤¸·ë²Ì¤È¤Ê¤ê¡¢¡ÖHOGE¡×¤ËÂФ¹¤ë·Ù¹ð¤Ê¤É¤âɽ¼¨¤µ¤ì¤Þ¤»¤ó¡£ Î㣲¡Ý£´¡§¡¡¡¡¡¡isd "v ; =" isd v ; = ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¤É¤Á¤é¤âƱ¤¸¤¯¡¢¡Ö;¡×¤Î¸å¤í¤Ë¤¢¤ë¶õÇòʸ»ú¤ËÂФ·¤Æ¡¢¼¡¤Î¤è¤¦¤Ê·Ù¹ð¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡skip ' ' ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡·Ù¹ð¤Ï½Ð¤ë¤â¤Î¤Î¥³¥Þ¥ó¥É¼«ÂΤÏÀµ¤·¤¯¼Â¹Ô¤µ¤ì¡¢¥Ð¡¼¥¸¥ç¥ó¾ðÊó¤È¥Õ¥¡¥¤¥ë°ìÍ÷¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ö;¡×¤Îº¸Â¦¤Ë¤¢¤ë¶õÇòʸ»ú¤ËÂФ·¤Æ¤Ï¡¢·Ù¹ð¤Ïɽ¼¨¤µ¤ì¤Þ¤»¤ó¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¶õÇòʸ»ú¤À¤«¤é̵»ë¤µ¤ì¤¿¤Î¤Ç¤Ï¤Ê¤¯¡¢¡Ö;¡×¤Îº¸Â¦¤Ë¤Ï¤É¤ó¤Êʸ»ú¤¬¤¢¤Ã¤Æ¤â̵»ë¤µ¤ì¤ë¤Î¤Ç¤¹¡£¡Ê¶õÇò¤âHOGE¤âƱ¤¸¤Ç¤¹¡Ë ------------------------ ÆþÎÏ¥ª¥Ú¥ì¡¼¥·¥ç¥ó¥â¡¼¥É ------------------------ µ¯Æ°ÊýË¡¡§¡¡¡¡¡¡isd [#<¥Ç¥Ð¥¤¥¹ÈÖ¹æ>] ISD¤Ø¤Î¥³¥Þ¥ó¥É¤ò¡¢ÂÐÏ÷Á¼°¤Ç°ì¹Ô¤Å¤Ä»ØÄꤹ¤ë¥â¡¼¥É¤Ç¤¹¡£ ¤³¤Î¥â¡¼¥É¤ÇISD¤òµ¯Æ°¤¹¤ë¤È¡¢P/ECE¤ËÀܳ¸å¡¢¥×¥í¥ó¥×¥È¤òɽ¼¨¤·¤Æ¥³¥Þ¥ó¥ÉÂÔ¤Á¼õ¤±¾õÂ֤Ȥʤê¤Þ¤¹¡£ ¥³¥Þ¥ó¥É¡Öq¡×¡Ê½ªÎ»¡Ë¤ò»ØÄꤹ¤ë¤Þ¤Ç¡¢ISD¤Ï½ªÎ»¤·¤Þ¤»¤ó¡£ ¤Ê¤ª¡¢¥Ç¥Ð¥¤¥¹ÈÖ¹æ¤Ë¤Ä¤¤¤Æ¤Ï¡Ö¥×¥í¥°¥é¥à¼Â¹Ô¥â¡¼¥É¡×¤ÈƱ¤¸¤Ç¤¹¤Î¤Ç¡¢ÀâÌÀ¤ò¾Êά¤·¤Þ¤¹¡£ Î㣱¡§¡¡¡¡¡¡¡¡¡¡isd ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡v ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡= ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡q ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡°ì¹ÔÌÜ¡§¡ÖÆþÎÏ¥ª¥Ú¥ì¡¼¥·¥ç¥ó¥â¡¼¥É¡×¤ÇISD¤òµ¯Æ°¤·¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Æó¹ÔÌÜ¡§¥³¥Þ¥ó¥É¡Öv¡×¤ò»ØÄꤷ¡¢¥Ð¡¼¥¸¥ç¥ó¾ðÊó¤òɽ¼¨¤·¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡»°¹ÔÌÜ¡§¥³¥Þ¥ó¥É¡Ö=¡×¤ò»ØÄꤷ¡¢¥Õ¥¡¥¤¥ë°ìÍ÷¤òɽ¼¨¤·¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡»Í¹ÔÌÜ¡§¥³¥Þ¥ó¥É¡Öq¡×¤ò»ØÄꤷ¡¢ISD¤ò½ªÎ»¤·¤Þ¤¹¡£ ¡Ö°ú¿ô¥ª¥Ú¥ì¡¼¥·¥ç¥ó¥â¡¼¥É¡×¤ÈƱ¤¸¤¯¡¢¡ÖÆþÎÏ¥ª¥Ú¥ì¡¼¥·¥ç¥ó¥â¡¼¥É¡×¤Ç¤â°ìÅÙ¤ËÊ£¿ô¤Î¥³¥Þ¥ó¥É¤ò»ØÄê¤Ç¤­¤Þ¤¹¡£ Î㣲¡§¡¡¡¡¡¡¡¡¡¡isd ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡v;= ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡d 100000;d 200000 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡q ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡°ì¹ÔÌÜ¡§¡ÖÆþÎÏ¥ª¥Ú¥ì¡¼¥·¥ç¥ó¥â¡¼¥É¡×¤ÇISD¤òµ¯Æ°¤·¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Æó¹ÔÌÜ¡§¥Ð¡¼¥¸¥ç¥ó¾ðÊó¤òɽ¼¨¤·¡¢Â³¤±¤Æ¤Ç¥Õ¥¡¥¤¥ë°ìÍ÷¤òɽ¼¨¤·¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡»°¹ÔÌÜ¡§0x100000ÈÖÃϤ«¤é¤Î128¥Ð¥¤¥Èʬ¤ò¥Ð¥¤¥Ê¥ê¥À¥ó¥×¤·¡¢Â³¤±¤Æ0x200000ÈÖÃϤ«¤é¤Î128¥Ð¥¤¥Èʬ¤ò¥Ð¥¤¥Ê¥ê¥À¥ó¥×¤·¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡»Í¹ÔÌÜ¡§¥³¥Þ¥ó¥É¡Öq¡×¤ò»ØÄꤷ¡¢ISD¤ò½ªÎ»¤·¤Þ¤¹¡£ ¡Ö°ú¿ô¥ª¥Ú¥ì¡¼¥·¥ç¥ó¥â¡¼¥É¡×¤Ç¤Ï¡¢¥³¥Þ¥ó¥É¤ò¡Ö"¡×¤Ç°Ï¤Ã¤Æ¤Ï¤¤¤±¤Þ¤»¤ó¡£ ¼¡¤ÎÎã¤Ï¡¢´Ö°ã¤Ã¤¿¥³¥Þ¥ó¥É»ØÄê¤ÎÎã¤Ç¤¹¡£ Î㣳¡§¡¡¡¡¡¡¡¡¡¡isd ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡"v;=" ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡q ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Æó¹ÔÌÜÀèÆ¬¤Î¡Ö"¡×¤ËÂФ¹¤ë·Ù¹ð¤¬É½¼¨¤µ¤ì¡¢¼¡¤Ë¡Ö;¡×¤¬¸«¤Ä¤«¤ë¤Þ¤Ç¤ÎÁ´¤Æ¤Îʸ»ú¤¬Ìµ»ë¤µ¤ì¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡½¾¤Ã¤Æ¡¢¥³¥Þ¥ó¥É¡Öv¡×¤Ï¼Â¹Ô¤µ¤ì¤º¡¢¥Ð¡¼¥¸¥ç¥ó¾ðÊó¤Ïɽ¼¨¤µ¤ì¤Þ¤»¤ó¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ö;¡×¤Î¸å¤í¤Ë¤¢¤ë¥³¥Þ¥ó¥É¡Ö=¡×¤Ï¼Â¹Ô¤µ¤ì¤Þ¤¹¡£ ------------------------------------------------------------------------------------------------------------------------------- ¼¡²ó¤Ï¡¢³Æ¥³¥Þ¥ó¥É¤Î¾ÜºÙ¤Ë¤Ä¤¤¤Æ¸«¤Æ¤¤¤³¤¦¤È»×¤¤¤Þ¤¹¡£ ¡Ê³¤­¤Þ¤¹¡Ä¡Ë * Thu Dec 12 06:30:00 JST 2002 Naoyuki Sawa - strtok()¤ËÂçÌäÂê S1C33 Family C¥³¥ó¥Ñ¥¤¥é¥Ñ¥Ã¥±¡¼¥¸¡ÊP/ECE¤Îɸ½à£Ã¥é¥¤¥Ö¥é¥ê¡Ë¤Îstrtok()´Ø¿ô¤Ë¤Ï¡¢½ÅÂç¤ÊÌäÂ꤬¤¢¤ê¤Þ¤¹¡£ »ØÄꤷ¤¿Ê¸»úÎó¤Î½ªÃ¼¤òÆÍ¤­È´¤±¤Æ¥È¡¼¥¯¥óʬ³ä¤ò³¤±¤Æ¤·¤Þ¤¦¡¢¤È¤¤¤¦¤â¤Î¤Ç¤¹¡£ --------------------------------------------------------------------------------------------------- ¤Þ¤º¡¢PC¾å¤ÎC¥³¥ó¥Ñ¥¤¥é¤ò»È¤Ã¤Æ¡¢¼¡¤Î¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤·¤Æ¤ß¤Þ¤·¤ç¤¦¡£ #include #include #include char s1[] = "a/b/c\0d/e/f"; int main() { ¡¡¡¡¡¡¡¡char* p; ¡¡¡¡¡¡¡¡p = strtok(s1, "/"); ¡¡¡¡¡¡¡¡while(p != NULL) { ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡fprintf(stderr, "(%s)", p); ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡p = strtok(NULL, "/"); ¡¡¡¡¡¡¡¡} ¡¡¡¡¡¡¡¡fprintf(stderr, "\n"); ¡¡¡¡¡¡¡¡return 0; } ʸ»úÎós1¤ÎÃæ¤Î¡Ö/¡×¤Ç¶èÀÚ¤é¤ì¤¿³ÆÉôʬ¤ò¡¢½ç¤Ë¡Ö(¡×¡Á¡Ö)¡×¤Ç°Ï¤Ã¤ÆÉ½¼¨¤¹¤ë¥×¥í¥°¥é¥à¤Ç¤¹¡£ ʸ»úÎós1¤Ï¡Öa/b/c\0d/e/f¡×¤Ç¤¹¤¬¡¢¡Öc¡×¤Î¸å¤í¤Î¥Ì¥ëʸ»ú¤Ç½ªÃ¼¤·¤Æ¤¤¤ë¤Î¤Ç¡¢¡Öa/b/c¡×¤ÈÅù²Á¤Ç¤¹¡£ ½¾¤Ã¤Æ¡¢·ë²Ì¤Ï¼¡¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£ ¡Ö(a)(b)(c)¡× --------------------------------------------------------------------------------------------------- ¤Ç¤Ï¼¡¤Ë¡¢P/ECE¤Ç¼¡¤Î¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤·¤Æ¤ß¤Þ¤·¤ç¤¦¡£ ¥½¡¼¥¹¤Î¥À¥¦¥ó¥í¡¼¥É¤Ï¤³¤Á¤é¡§¡¡http://www.piece-me.org/archive/strtok1-20021212-src.zip #include #include #include #include unsigned char vbuff[DISP_X * DISP_Y]; /* ²¾ÁÛVRAM */ char s1[] = "a/b/c\0d/e/f"; void pceAppInit() { ¡¡¡¡¡¡¡¡char* p; ¡¡¡¡¡¡¡¡/* °ìÈÌŪ¤Ê½é´ü²½ */ ¡¡¡¡¡¡¡¡pceLCDDispStop(); ¡¡¡¡¡¡¡¡pceLCDSetBuffer(vbuff); ¡¡¡¡¡¡¡¡pceLCDDispStart(); /* ²èÌÌ¥¯¥ê¥¢ */ ¡¡¡¡¡¡¡¡memset(vbuff, 0, sizeof vbuff); ¡¡¡¡¡¡¡¡pceFontSetPos(0, 0); ¡¡¡¡¡¡¡¡/*{{¤³¤ÎÉôʬ¤¬¼Â¸³¥³¡¼¥É¤ÎËÜÂΤǤ¹*/ ¡¡¡¡¡¡¡¡p = strtok(s1, "/"); ¡¡¡¡¡¡¡¡while(p != NULL) { ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡pceFontPrintf("(%s)", p); ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡p = strtok(NULL, "/"); ¡¡¡¡¡¡¡¡} ¡¡¡¡¡¡¡¡/*}}¤³¤ÎÉôʬ¤¬¼Â¸³¥³¡¼¥É¤ÎËÜÂΤǤ¹*/ ¡¡¡¡¡¡¡¡/* ²èÌÌžÁ÷ */ ¡¡¡¡¡¡¡¡pceLCDTrans(); } void pceAppProc(int count) { /* SELECT¥Ü¥¿¥ó¤¬²¡¤µ¤ì¤¿¤é½ªÎ»¤·¤Þ¤¹ */ if(pcePadGet() & TRG_SELECT) pceAppReqExit(0); } void pceAppExit() { } ¼Â¸³ÆâÍÆ¤ÏPCÍÑ¤Î¥×¥í¥°¥é¥à¤ÈƱ¤¸¤Ç¤¹¤Î¤Ç¡¢¡Ö(a)(b)(c)¡×¤Èɽ¼¨¤µ¤ì¤ë¤Ï¤º¤Ç¤¹¤¬¡¢¼ÂºÝ¤Ë¤Ï¡¢ ¡Ö(a)(b)(c)(d)(e)(f)¡× ¤Èɽ¼¨¤µ¤ì¤Æ¤·¤Þ¤¤¤Þ¤¹¡ª --------------------------------------------------------------------------------------------------- S1C33 Family C¥³¥ó¥Ñ¥¤¥é¥Ñ¥Ã¥±¡¼¥¸¤Îstrtok()´Ø¿ô¤Ï¡¢Ê¸»úÎó½ªÃ¼¤Î¥Ì¥ëʸ»ú¤Î¸¡½Ð¤ËÌäÂ꤬¤¢¤ê¤Þ¤¹¡£ ¤É¤¦¤ä¤é¡¢¥Ì¥ëʸ»ú¤¬Æó¤Ä°Ê¾åϢ³¤·¤Æ¤¤¤¿¾ì¹ç¤Ë¤Î¤ß¡¢Ê¸»úÎó½ªÃ¼¤òǧ¼±¤¹¤ë¤è¤¦¤Ç¤¹¡£ Î㤨¤Ð¡¢Àè¤Û¤É¤Î¥×¥í¥°¥é¥à¤Ç¡¢ char s1[] = "a/b/c\0d/e/f"; ¤ò¡¢ char s1[] = "a/b/c\0\0d/e/f"; ¤ËÊѹ¹¤¹¤ë¤È¡¢ ¡Ö(a)(b)(c)¡× ¤Èɽ¼¨¤µ¤ì¤Þ¤¹¡£ Àè¤Û¤É¤Î¥×¥í¥°¥é¥à¤Ç¡¢É½¼¨¤¬¡Ö(f)¡×¤Þ¤Ç¤Ç½ª¤ï¤Ã¤Æ¤¤¤¿¤Î¤â¡¢¤¿¤Þ¤¿¤Þ¡Öf¡×¤Î¸å¤í¤Ë¥Ì¥ëʸ»ú¤¬¤¤¤¯¤Ä¤« ʤó¤Ç¤¤¤¿¤¿¤á¤Ç¡¢¤â¤·¤½¤¦¤Ê¤Ã¤Æ¤¤¤Ê¤±¤ì¤Ð±Ê±ó¤Ë½ª¤ï¤é¤º¡¢ ¡Ö(a)(b)(c)(d)(e)(f)(¥´¥ß)(¥´¥ß)(¥´¥ß)...¡× ¤Èɽ¼¨¤µ¤ì¤Æ¤·¤Þ¤Ã¤Æ¤¤¤¿¤Ç¤·¤ç¤¦¡£ --------------------------------------------------------------------------------------------------- ·ëÏÀ¡§ S1C33 Family C¥³¥ó¥Ñ¥¤¥é¥Ñ¥Ã¥±¡¼¥¸¤Îstrtok()´Ø¿ô¤Ï¡¢»È¤Ã¤Æ¤Ï¤¤¤±¤Þ¤»¤ó¡£ ²óÈòÊýË¡¡§ ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥×¥í¥°¥é¥à¤ÎÃæ¤Çstrtok()¤ò¼ÂÁõ¤·¤Æ¡¢¥é¥¤¥Ö¥é¥êÆâ¤Îstrtok()¤òÃÖ¤­´¹¤¨¤Æ¤·¤Þ¤¤¤Þ¤·¤ç¤¦¡£ char* strtok(char* s1, const char* s2) { /* find next token in s1[] delimited by s2[] */ ¡¡¡¡¡¡¡¡static char* ssave = ""; /* for safety */ ¡¡¡¡¡¡¡¡char *sbegin, *send; ¡¡¡¡¡¡¡¡sbegin = s1 ? s1 : ssave; ¡¡¡¡¡¡¡¡sbegin += strspn(sbegin, s2); ¡¡¡¡¡¡¡¡if(*sbegin == '\0') { /* end of scan */ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ssave = ""; /* for safety */ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡return NULL; ¡¡¡¡¡¡¡¡} ¡¡¡¡¡¡¡¡send = sbegin + strcspn(sbegin, s2); ¡¡¡¡¡¡¡¡if(*send != '\0') *send++ = '\0'; ¡¡¡¡¡¡¡¡ssave = send; ¡¡¡¡¡¡¡¡return sbegin; } // P.J.¥×¥é¥¦¥¬¡¼Ãø¡Öɸ½à£Ã¥é¥¤¥Ö¥é¥ê ANSI/ISO/JIS Cµ¬³Ê¡×¡Ê¥È¥Ã¥Ñ¥ó¡Ë // ½éÈÇ 467¥Ú¡¼¥¸ ¿Þ14.20 strtok.c ¤ò¤½¤Ã¤¯¤ê¤½¤Î¤Þ¤Þ»È¤ï¤»¤ÆÄº¤­¤Þ¤·¤¿¡£ ¤½¤¦¤¤¤¨¤Ð¡¢¤ª¤Ç¥Þ¥ë¤Î¥½¡¼¥¹¤âɸ½à¤Îstrtok()¤ò»È¤ï¤º¡¢¼«Á°¤Îstrtok()´Ø¿ô¤òÍѰդ·¤Æ¤½¤ì¤ò»È¤Ã¤Æ¤¤¤Þ¤·¤¿¡£ ¡Ê\usr\PIECE\app\odemaru\piece_ex.c 56¹ÔÌÜ¡Á PIECE_StrTok()´Ø¿ô¡Ë ɸ½àstrtok()´Ø¿ô¤ÎÌäÂê¤ò²óÈò¤¹¤ë¤¿¤á¤À¤Ã¤¿¤Î¤Ç¤¹¤Í¡£ * Sun Oct 13 10:03:00 JST 2002 Naoyuki Sawa - 64¥Ó¥Ã¥ÈÀ°¿ô±é»»¥é¥¤¥Ö¥é¥ê C¸À¸ì¤Ç64¥Ó¥Ã¥ÈÀ°¿ô±é»»¤ò¹Ô¤¦¤Ë¤Ï¡Ölong long¡×¤ò»È¤¤¤Þ¤¹¡£Éä¹æÌµ¤·¤Î¾ì¹ç¤Ï¡Öunsigned long long¡×¤Ç¤¹¡£ ¡Ölong long¡×·¿¤Ï¡¢1999ǯ¤Ë¼è¤ê·è¤á¤é¤ì¤¿¿·¤·¤¤C¸À¸ìµ¬³Ê¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë»ÅÍͤǤ¹¡£ P/ECE¤ÎC¥³¥ó¥Ñ¥¤¥é¤Ï¸Å¤¤C¸À¸ìµ¬³Ê¤Ë±è¤Ã¤Æºî¤é¤ì¤Æ¤¤¤Þ¤¹¤¬¡¢¡Ölong long¡×·¿¤Ï´û¤Ë¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ ¤½¤ì¤Ç¤Ï¡¢64¥Ó¥Ã¥ÈÀ°¿ô±é»»¤ò»î¤·¤Æ¤ß¤Þ¤·¤ç¤¦¡£¼¡¤Î¤è¤¦¤Ê¥×¥í¥°¥é¥à¤ò½ñ¤¤¤Æ¡§ void smain() { long long a, b, c; a = 15372468987LL; b = 12345678901LL; c = a + b; } ¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤È... test1.o: Warning: Unresolved external symbol '__adddi3'. ¤¢¤ì¡©¥ê¥ó¥¯¥¨¥é¡¼¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¤¤Þ¤·¤¿¡£__adddi3¤È¤¤¤¦´Ø¿ô¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¡¢¤È¸À¤Ã¤Æ¤¤¤Þ¤¹¡£ ¤½¤ó¤Ê´Ø¿ô¤Ï¸Æ¤ó¤À³Ð¤¨¤¬¤Ê¤¤¤Î¤Ç¤¹¤¬¡¢¤³¤ì¤Ï¤¤¤Ã¤¿¤¤¤É¤¦¤¤¤¦¤³¤È¤Ç¤·¤ç¤¦¤«¡© - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - P/ECE¤ÎCPU S1C33209¤Ï¡¢64¥Ó¥Ã¥ÈÀ°¿ô±é»»¤ò¹Ô¤¦¤¿¤á¤Î¥Ï¡¼¥É¥¦¥§¥¢¤ò»ý¤Ã¤Æ¤¤¤Þ¤»¤ó¡£ 64¥Ó¥Ã¥ÈÀ°¿ô±é»»¤ÏľÀÜ¥¢¥»¥ó¥Ö¥é¥³¡¼¥É¤ËÊÑ´¹¤µ¤ì¤ë¤Î¤Ç¤Ï¤Ê¤¯¡¢64¥Ó¥Ã¥ÈÀ°¿ô±é»»¤ò¹Ô¤¦´Ø¿ô¤Î¸Æ¤Ó½Ð¤·¤ËÃÖ¤­´¹¤¨¤é¤ì¤Þ¤¹¡£ Î㤨¤Ð¡¢Àè¤Û¤É¤Î¥×¥í¥°¥é¥à¤Î¡Öc = a + b¡×¤ÎÉôʬ¤Ï¡¢¼¡¤Î¤è¤¦¤Ê¥¢¥»¥ó¥Ö¥é¥³¡¼¥É¤Ë¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤Þ¤¹¡£ xld.w %r12,[%sp+12] /* (%r13,%r12) ¤Ë­¤µ¤ì¤ë¿ô(a)¤òÆþ¤ì¤Þ¤¹¡£ */ xld.w %r13,[%sp+16] xld.w %r14,[%sp+20] /* (%r15,%r14) ¤Ë­¤¹¿ô(b)¤òÆþ¤ì¤Þ¤¹¡£ */ xld.w %r15,[%sp+24] xcall __adddi3 /* (%r11,%r10) = (%r13,%r12) + (%r15,%r14) ¤ò¹Ô¤¦¥µ¥Ö¥ë¡¼¥Á¥ó */ xld.w [%sp+28],%r10 /* ·ë²Ì¤ò¥á¥â¥ê¤Ë½ñ¤­Ìᤷ¤Þ¤¹¡£ */ xld.w [%sp+32],%r11 ¤Á¤Ê¤ß¤Ë¡¢´Ø¿ô¸Æ¤Ó½Ð¤·¤ËÃÖ¤­´¹¤¨¤é¤ì¤ë¤Î¤Ï64¥Ó¥Ã¥ÈÀ°¿ô±é»»¤Ë¸Â¤Ã¤¿¤³¤È¤Ç¤Ï¤Ê¤¯¡¢ ÉâÆ°¾®¿ôÅÀ±é»»¤ä32¥Ó¥Ã¥È½ü»»¤Ê¤É¤â¡¢¼Â¤Ï´Ø¿ô¸Æ¤Ó½Ð¤·¤ËÃÖ¤­´¹¤¨¤é¤ì¤Æ¤¤¤ë¤Î¤Ç¤¹¡£ 32¥Ó¥Ã¥È½ü»»¤Ë´Ø¤·¤Æ¤Ï¡¢CPU¤¬½ü»»Ì¿Îá¤ò»ý¤Ã¤Æ¤¤¤Þ¤¹¤¬¡¢35Ì¿Îá¤âɬÍפȤ·¤Þ¤¹¡£ ¤¢¤Á¤³¤Á¤Ç32¥Ó¥Ã¥È½ü»»¤ò¹Ô¤¦¾ì¹ç¡¢¤½¤Î¾ì¤½¤Î¾ì¤ËŸ³«¤·¤Æ¤¤¤Æ¤Ï¥×¥í¥°¥é¥à¥µ¥¤¥º¤¬Èó¾ï¤ËÂ礭¤¯¤Ê¤Ã¤Æ¤·¤Þ¤¦¤Î¤Ç¡¢ ¥×¥í¥°¥é¥à¥µ¥¤¥º¤ò¾®¤µ¤¯¤¹¤ë¤¿¤á¤Ë¡¢¤Þ¤È¤á¤Æ´Ø¿ô¸Æ¤Ó½Ð¤·¤Ë¤·¤Æ¤¤¤ë¤Î¤Ç¤¹¤Í¡£ ÉâÆ°¾®¿ôÅÀ±é»»¤ò¹Ô¤¦´Ø¿ô¡Ê__addsf3¤ä__divsf3¤Ê¤É¡Ë¤Ï¡¢ÉâÆ°¾®¿ôÅÀ±é»»¥é¥¤¥Ö¥é¥ê¤È¤·¤Æ¡¢\usr\PIECE\lib\fp.lib ¤ËÆþ¤Ã¤Æ¤¤¤Þ¤¹¡£ 32¥Ó¥Ã¥È½ü»»¤ò¹Ô¤¦´Ø¿ô¡Ê__divsi3¤ä__modsi3¤Ê¤É¡Ë¤Ï¡¢À°¿ô¾ê;±é»»¥é¥¤¥Ö¥é¥ê¤È¤·¤Æ¡¢\usr\PIECE\lib\idiv.lib ¤ËÆþ¤Ã¤Æ¤¤¤Þ¤¹¡£ ¤³¤Î¤¢¤¿¤ê¤ÎÀâÌÀ¤Ï¡¢ ¡ØS1C33 Family C¥³¥ó¥Ñ¥¤¥é¥Ñ¥Ã¥±¡¼¥¸ ¥Þ¥Ë¥å¥¢¥ë¡Ù¡Ê\usr\PIECE\docs\datasheet\EPSON\S5U1C33000C_J.pdf¡Ë £·¡¥¥¨¥ß¥å¥ì¡¼¥·¥ç¥ó¥é¥¤¥Ö¥é¥ê¡Ê93¡Á95¥Ú¡¼¥¸¡Ë ¤ËºÜ¤Ã¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢¤´»²¾È¤¯¤À¤µ¤¤¡£ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ¤½¤ì¤Ç¤Ï¡¢64¥Ó¥Ã¥ÈÀ°¿ô±é»»¤ò¹Ô¤¦´Ø¿ô¤Ï¡¢¤É¤Î¥é¥¤¥Ö¥é¥ê¤ËÆþ¤Ã¤Æ¤¤¤ë¤Î¤Ç¤·¤ç¤¦¤«¡© ¡¦¡¦¡¦Æþ¤Ã¤Æ¤¤¤Þ¤»¤ó¡ª Æþ¤Ã¤Æ¤¤¤Ê¤¤¤Î¤Ç¤¹¡£ C¥³¥ó¥Ñ¥¤¥é¤Ï³Î¤«¤Ë¡Ölong long¡×¤òǧ¼±¤·¡¢64¥Ó¥Ã¥ÈÀ°¿ô±é»»´Ø¿ô¤ò¸Æ¤Ó½Ð¤¹¥¢¥»¥ó¥Ö¥é¥³¡¼¥É¤òÀ¸À®¤·¤Æ¤¤¤ë¤Î¤Ç¤¹¤¬¡¢ ´Î¿´¤Î64¥Ó¥Ã¥ÈÀ°¿ô±é»»¥é¥¤¥Ö¥é¥ê¤¬Ä󶡤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£ P/ECE¤ÎCD-ROM¤ËÆþ¤ì˺¤ì¤¿¡¢¤È¤¤¤¦¤ï¤±¤Ç¤Ï¤Ê¤µ¤½¤¦¤Ç¤¹¡£ Àè¤Û¤É¤Î»ñÎÁ¤Ç¤â¡¢64¥Ó¥Ã¥ÈÀ°¿ô±é»»¥é¥¤¥Ö¥é¥ê¤Ë¤Ä¤¤¤Æ¤ÏÁ´¤¯¿¨¤ì¤é¤ì¤Æ¤¤¤Þ¤»¤ó¤«¤é¡¢ ¤É¤¦¤ä¤é¡¢EPSON¤µ¤ó¤ÎC¥³¥ó¥Ñ¥¤¥é¥Ñ¥Ã¥±¡¼¥¸ÇÛÉÛ¥»¥Ã¥È¤Ë¤â¤È¤â¤È´Þ¤Þ¤ì¤Æ¤¤¤Ê¤¤¤è¤¦¤Ç¤¹¡£ C¥³¥ó¥Ñ¥¤¥é¤ÏÂбþ¤·¤Æ¤¤¤ë¤Î¤Ë¡¢¥é¥¤¥Ö¥é¥ê¤¬Ä󶡤µ¤ì¤Æ¤¤¤Ê¤¤¡¢¤È¤¤¤¦¤Î¤Ï¤É¤¦¤¤¤¦¤³¤È¤Ç¤·¤ç¤¦¤«¡© ¹Í¤¨¤é¤ì¤ë¤Î¤Ï¡¢C¥³¥ó¥Ñ¥¤¥é¤Î¡Ölong long¡×Âбþ¤¬ÉÔ½¼Ê¬¤Ç¡¢¥é¥¤¥Ö¥é¥ê¤òÍѰդ·¤¿¤À¤±¤Ç¤ÏÀµ¤·¤¯»È¤¨¤Ê¤¤¤¿¤á¡¢ 64¥Ó¥Ã¥ÈÀ°¿ô±é»»¥é¥¤¥Ö¥é¥ê¤âºî¤Ã¤¿¤±¤ÉÇÛÉÛ¤·¤Ê¤«¤Ã¤¿¡¢¤È¤¤¤¦¥±¡¼¥¹¤Ç¤¹¡£ ¤·¤«¤·¤Ê¤¬¤é¡¢¤¤¤¯¤Ä¤«¥×¥í¥°¥é¥à¤ò½ñ¤¤¤Æ»î¤·¤Æ¤ß¤¿¸Â¤ê¤Ç¤Ï¡¢À¸À®¤µ¤ì¤ë¥³¡¼¥É¤ËÆÃ¤ËÌäÂ꤬¤¢¤ë¤è¤¦¤Ë¤Ï¸«¤¨¤Þ¤»¤ó¤Ç¤·¤¿¡£ ¤½¤³¤Ç¡¢64¥Ó¥Ã¥ÈÀ°¿ô±é»»¥é¥¤¥Ö¥é¥ê¤ò¼«Á°¤ÇÍѰդ·¤Æ¤ß¤ë¤³¤È¤Ë¤·¤Þ¤·¤¿¡£ 64¥Ó¥Ã¥ÈÀ°¿ô±é»»¤Î´Ø¿ô̾¤Ï¼¡¤Î¤È¤ª¤ê¤Ç¤¹¡§ __negdi2 (%r11,%r10) ¢« -(%r13,%r12) __adddi3 (%r11,%r10) ¢« (%r13,%r12) + (%r15,%r14) __subdi3 (%r11,%r10) ¢« (%r13,%r12) - (%r15,%r14) __muldi3 (%r11,%r10) ¢« (%r13,%r12) * (%r15,%r14) __divdi3 (%r11,%r10) ¢« (%r13,%r12) / (%r15,%r14) ¢¨É乿ÉÕ¤­ __udivdi3 (%r11,%r10) ¢« (%r13,%r12) / (%r15,%r14) ¢¨Éä¹æÌµ¤· __moddi3 (%r11,%r10) ¢« (%r13,%r12) % (%r15,%r14) ¢¨É乿ÉÕ¤­ __umoddi3 (%r11,%r10) ¢« (%r13,%r12) % (%r15,%r14) ¢¨Éä¹æÌµ¤· ¤³¤ì¤é¤Î´Ø¿ô¤ò¼ÂÁõ¤·¤¿¥½¡¼¥¹¤Ï¤³¤Á¤é¡£¥Æ¥¹¥ÈÍÑ¥×¥í¥°¥é¥à¤â´Þ¤ó¤Ç¤¤¤Þ¤¹¡§ http://www.piece-me.org/archive/int64-20021013-src.zip ¥Æ¥¹¥È¥×¥í¥°¥é¥à¤Î·ë²Ì¤Î²èÌ̤Ϥ³¤¦¤Ê¤ê¤Þ¤¹¡§ http://www.piece-me.org/int64-20021013.png ¤È¤ê¤¢¤¨¤º¡¢¤Á¤ã¤ó¤Èư¤¤¤Æ¤¤¤ë¤ß¤¿¤¤¤Ç¤¹¤Í¡£ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - º£²ó¼ÂÁõ¤·¤¿64¥Ó¥Ã¥ÈÀ°¿ô±é»»¥é¥¤¥Ö¥é¥ê¤Ë¤Ï¡¢¤Þ¤À¼¡¤Î¤è¤¦¤ÊÌäÂêÅÀ¡¦ÉÔ°ÂÅÀ¤¬¤¢¤ê¤Þ¤¹¡£ °ìÉô̤¼ÂÁõ¤Î´Ø¿ô¤¬¤¢¤ê¤Þ¤¹ -------------------------- ÉâÆ°¾®¿ôÅÀ¢Î64¥Ó¥Ã¥ÈÀ°¿ô¤ÎÊÑ´¹¤ò¹Ô¤¦¤¿¤á¤Î´Ø¿ô¤ò¤Þ¤À¼ÂÁõ¤·¤Æ¤¤¤Þ¤»¤ó¡£ ÉâÆ°¾®¿ôÅÀ¢Î64¥Ó¥Ã¥ÈÀ°¿ô¤ÎÊÑ´¹¤ËɬÍפʴؿô¤Ï¡¢__fixsfdi,__fixunssfdi,__floatdisf¤Ç¤¹¡£ ÉâÆ°¾®¿ôÅÀ¤¬Íí¤ó¤Ç¤¯¤ë¤È¤Á¤ç¤Ã¤ÈÌÌÅݤʤΤȡ¢¤³¤Î¤è¤¦¤Ê·¿ÊÑ´¹¤ÏÅöÌÌɬÍפʤ¤¤È¹Í¤¨¤¿¤Î¤Ç¡¢º£²ó¤Ï¼ÂÁõ¤·¤Þ¤»¤ó¤Ç¤·¤¿¡£ ¤Þ¤¿¡¢¤Ê¤¼¤«ÉâÆ°¾®¿ôÅÀ¢Î64¥Ó¥Ã¥ÈÀ°¿ô¤ÎÊÑ´¹»þ¤Ë__cmpdi2¤È¤¤¤¦´Ø¿ô¤¬¸Æ¤Ð¤ì¤ë¤³¤È¤â¤¢¤ê¤Þ¤¹¡£ ´Ø¿ô̾¤«¤é¿ä¬¤¹¤ë¤È¡Ölong long¡×Ʊ»Î¤ÎÈæ³Ó¤Î¤è¤¦¤Ç¤¹¤¬¡¢ Ä̾ï¤Î¡Ölong long¡×Ʊ»Î¤ÎÈæ³Ó¤Ï´Ø¿ô¸Æ¤Ó½Ð¤·¤ËÃÖ¤­´¹¤¨¤é¤ì¤º¡¢Ä¾ÀÜ¥¢¥»¥ó¥Ö¥é¥³¡¼¥É¤ËŸ³«¤µ¤ì¤Æ¤¤¤ë¤Î¤Ç¤¹¡£ Î㤨¤Ð¡¢¼¡¤Î¤è¤¦¤Ê¥×¥í¥°¥é¥à¤Ï¡§ void test(long long a, long long b) { if(a > b) return; ... } ľÀÜ¥¢¥»¥ó¥Ö¥é¥³¡¼¥É¤ËŸ³«¤µ¤ì¤Þ¤¹¡£__cmpdi2¤Ï¸Æ¤Ð¤ì¤Æ¤¤¤Þ¤»¤ó¡£ cmp %r13,%r15 /* ¾å°Ì32¥Ó¥Ã¥È¤ÎÈæ³Ó */ xjrgt __L1 xjrne __L2 cmp %r12,%r14 /* ²¼°Ì32¥Ó¥Ã¥È¤ÎÈæ³Ó */ xjrugt __L1 __L2: ... __L1: ret ͽÁۤǤ¹¤¬¡¢¤¿¤Ö¤óÀΤÏÄ̾ï¤Î¡Ölong long¡×Ʊ»Î¤ÎÈæ³Ó¤â__cmpdi2¤Î¸Æ¤Ó½Ð¤·¤ËÊÑ´¹¤µ¤ì¤Æ¤¤¤¿¤Î¤À¤È»×¤¤¤Þ¤¹¡£ ¤½¤Î¸å¡¢C¥³¥ó¥Ñ¥¤¥é¤ÎºÇŬ²½¤Ë¤è¤ê¡¢¸úΨ¤ÎÎɤ¤¥³¡¼¥É¤¬À¸À®¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¡¢ Ä̾ï¤ÎÈæ³Ó¤Ï´Ø¿ô¸Æ¤Ó½Ð¤·¤Ç¤Ï¤Ê¤¯¡¢Ä¾ÀÜ¥¢¥»¥ó¥Ö¥é¥³¡¼¥É¤ËŸ³«¤µ¤ì¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¤Î¤Ç¤Ï¤Ê¤¤¤Ç¤·¤ç¤¦¤«¡£ ÉâÆ°¾®¿ôÅÀ¢Î64¥Ó¥Ã¥ÈÀ°¿ô¤ÎÃæ¤ÎÈæ³Ó½èÍý¡Ê¤Ê¤¼·¿ÊÑ´¹¤ËÈæ³Ó¤¬É¬ÍפʤΤ«¤è¤¯¤ï¤«¤Ã¤Æ¤¤¤Ê¤¤¤Î¤Ç¤¹¤¬(^^;¡Ë¤Ï¡¢ ²¿¤é¤«¤ÎÍýͳ¤Ë¤è¤ê¡Ê¤â¤·¤«¤·¤¿¤éºÇŬ²½Ëº¤ì¡©¡ËÀΤÎ̾»Ä¤Ç__cmpdi2¤Î¸Æ¤Ó½Ð¤·¤Î¤Þ¤Þ¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤Î¤Ç¤Ï¤Ê¤¤¤«¤È»×¤¤¤Þ¤¹¡£ %r4¤È%r12¡Á%r15¤¬Ç˲õ¤µ¤ì¤Þ¤¹ ----------------------------- S1C33 Family C¥³¥ó¥Ñ¥¤¥é¤Î´Ø¿ô¸Æ¤Ó½Ð¤·µ¬Ìó¤Ë¤è¤ê¡¢´Ø¿ô¤Ï%r4¡Á%7¡¦%r12¡Á%r15¤òÇ˲õ¤·¤Æ¤â¤¤¤¤¤³¤È¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£ º£²ó¼ÂÁõ¤·¤¿64¥Ó¥Ã¥ÈÀ°¿ô±é»»¥é¥¤¥Ö¥é¥ê¤â¡¢¤³¤ì¤é¤Î¥ì¥¸¥¹¥¿¤òºî¶ÈÍѤ˻Ȥ¦¤Î¤Ç¡¢¸Æ¤Ó½Ð¤µ¤ì¤¿¤È¤­¤ÎÃͤòÊÝ»ý¤·¤Þ¤»¤ó¡£ ¤¿¤Ö¤ó¤³¤ì¤ÇÌäÂê¤Ê¤¤¤È¤Ï»×¤¦¤Î¤Ç¤¹¤¬¡¢ÉâÆ°¾®¿ôÅÀ±é»»¥é¥¤¥Ö¥é¥ê¤äÀ°¿ô¾ê;±é»»¥é¥¤¥Ö¥é¥ê¡¢64¥Ó¥Ã¥ÈÀ°¿ô±é»»¥é¥¤¥Ö¥é¥ê¤Ï C¥³¥ó¥Ñ¥¤¥é¤½¤Î¤â¤Î¤Ë¿¼¤¯´Ø¤ï¤Ã¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢¤â¤·¤«¤·¤¿¤éC¥³¥ó¥Ñ¥¤¥é¤Ï¤³¤ì¤é¤Î¥é¥¤¥Ö¥é¥ê´Ø¿ô¤ËÂФ·¤Æ¡¢ Ä̾ï¤Î´Ø¿ô¤È¤Ï°Û¤Ê¤ë¡¢ÆÃÊ̤ʴؿô¸Æ¤Ó½Ð¤·µ¬Ìó¤ò´üÂÔ¤·¤Æ¤¤¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡£ ¤â¤·¤âC¥³¥ó¥Ñ¥¤¥é¤¬¤³¤ì¤é¤Î´Ø¿ô¤ËÂФ·¤Æ¡ÈÁ´¥ì¥¸¥¹¥¿¤¬Êݸ¤µ¤ì¤ë¤³¤È¡É¤ò´üÂÔ¤·¤Æ¤¤¤¿¾ì¹ç¡¢ ͽ´ü¤·¤Ê¤¤¥ì¥¸¥¹¥¿¤¬Ç˲õ¤µ¤ì¤Æ¤·¤Þ¤¦¤³¤È¤Ë¤è¤Ã¤Æ¡¢´Ö°ã¤Ã¤¿Æ°ºî¤ò°ú¤­µ¯¤³¤¹²ÄǽÀ­¤¬¤¢¤ê¤Þ¤¹¡£ ¤³¤ì¤Þ¤Ç¼Â¸³¤·¤¿¤È¤³¤íÌäÂê¤Ê¤¤¤Î¤Ç¡¢¤¿¤Ö¤óÂç¾æÉפÀ¤È¤Ï»×¤¦¤Î¤Ç¤¹¤¬¡¢¡ØS1C33 Family C¥³¥ó¥Ñ¥¤¥é¥Ñ¥Ã¥±¡¼¥¸ ¥Þ¥Ë¥å¥¢¥ë¡Ù¤Ë ¤³¤ÎÅÀ¤Ë´Ø¤¹¤ëÀâÌÀ¤¬¤Ê¤¤¤¿¤á¡¢¤Þ¤À¾¯¤·É԰¤Ǥ¹¡£ ¾è»»¡¦½ü»»¤ÏÃÙ¤¤¤Ç¤¹ -------------------- ¾è»»¥ë¡¼¥Á¥ó¡Ê__muldi3¡Ë¤Ï¡¢¸ÅŵŪ¤Ê£±¥Ó¥Ã¥È¤Å¤Ä¤ÎÉ®»»Êý¼°¤òºÎ¤Ã¤Æ¤¤¤Þ¤¹¡£ S1C33 CPU¤Î¾è»»Ì¿Îá¤òÍøÍѤ·¤Æ¡¢32¥Ó¥Ã¥È¤Å¤Ä¤Þ¤È¤á¤Æ·×»»¤¹¤ì¤Ð¡¢¤â¤Ã¤È¹â®²½¤Ç¤­¤ë¤È»×¤¤¤Þ¤¹¡£ ½ü»»¡¦¾ê;¥ë¡¼¥Á¥ó¡Ê__divdi3¡¤__moddi3¤Ê¤É¡Ë¤Ï¡¢S1C33 CPU¤Îdiv0s¡¤div1¡¤div2s¡¤div3sÌ¿Îá¤Îưºî¤ò¤½¤Ã¤¯¤ê¤½¤Î¤Þ¤Þ¿¿»÷¤Æºî¤ê¤Þ¤·¤¿¡£ ¤³¤ì¤é¤ÎÌ¿Î᤬32¥Ó¥Ã¥È¤Ç½èÍý¤·¤Æ¤¤¤ë¤È¤³¤í¤ò¡¢Ã±¤Ë64¥Ó¥Ã¥Èʬ¹Ô¤¦¤è¤¦¤Ë³ÈÄ¥¤·¤¿¤À¤±¤Ç¤¹¡£ div1Ì¿Îá¤Ê¤É¤¬¥Ï¡¼¥É¥¦¥§¥¢¤Ç¹Ô¤Ã¤Æ¤¤¤ë½èÍý¤ò¥½¥Õ¥È¥¦¥§¥¢¤ËÃÖ¤­´¹¤¨¤Þ¤·¤¿¤Î¤Ç¡¢1¥Ó¥Ã¥ÈÅö¤¿¤ê10ÇܰʾåÃÙ¤¯¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£ ¤µ¤é¤Ë¥Ó¥Ã¥È¿ô¤¬2ÇܤǤ¹¤Î¤Ç¡¢20Çܰʾ塣¾¤Î½èÍý¤â¹Í¤¨¤ë¤È¡¢30Çܰʾå¤ÏÃÙ¤¯¤Ê¤Ã¤Æ¤¤¤ë¤È»×¤¤¤Þ¤¹¡£ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ¥Ð¥°¡¦¹â®²½ÊýË¡¤Ê¤É¡¢¤ªµ¤ÉÕ¤­¤ÎÅÀ¤¬¤¢¤ê¤Þ¤·¤¿¤é¡¢¤´°ìÊ󤯤À¤µ¤ì¤Ð¹¬¤¤¤Ç¤¹¡£ 64¥Ó¥Ã¥ÈÀ°¿ô±é»»¤¬¼ÂºÝ¤Ë¤É¤ÎÄøÅÙɬÍפʤΤ«¡©¤È¹Í¤¨¤ë¤È¡¢¤¢¤Þ¤êÎϤòÆþ¤ì¤ëÉôʬ¤Ç¤Ï¤Ê¤¤¤è¤¦¤Êµ¤¤â¤·¤Þ¤¹¤¬¡¢ ¼ÂÍÑÀ­¤Ï¤È¤â¤«¤¯¡¢¾®¤µ¤Ê¥µ¥Ö¥ë¡¼¥Á¥ó¤Î¥¢¥»¥ó¥Ö¥é¥³¡¼¥Ç¥£¥ó¥°¤Ï³Ú¤·¤¤¤Ç¤¹¤è¤Í¡£ * Thu Sep 19 12:30:00 JST 2002 Naoyuki Sawa - calloc()¤¬¼ºÇÔ¤¹¤ë ---- ¾õ¶· ---- ɸ½à£Ã¥é¥¤¥Ö¥é¥ê¤Ë¤Ï¡¢¼ç¤ËÆó¼ïÎà¤Î¥á¥â¥ê³ä¤êÅö¤Æ´Ø¿ô¤¬¤¢¤ê¤Þ¤¹¡£ malloc()¤Ècalloc()¤Ç¤¹¡£ malloc()¤¬Ã±¤Ë¥á¥â¥ê¤ò³ä¤êÅö¤Æ¤ë¤À¤±¤Ê¤Î¤ËÂФ·¡¢calloc()¤Ï³ä¤êÅö¤Æ¤¿¥á¥â¥ê¤Î¥¼¥í¥¯¥ê¥¢¤â¹Ô¤Ã¤Æ¤¯¤ì¤Þ¤¹¡£ ¥×¥í¥°¥é¥à¦¤Ç¥¼¥í¥¯¥ê¥¢¤ò¹Ô¤ï¤Ê¤¯¤ÆºÑ¤àʬcalloc()¤ÎÊý¤¬ÊØÍø¤Ê¤Î¤Ç¡¢malloc()¤è¤ê¤âcalloc()¤ÎÊý¤ò¹¥¤ó¤Ç»È¤Ã¤Æ¤¤¤¿¤Î¤Ç¤¹¤¬¡¢ P/ECE³«È¯´Ä¶­¤Îcalloc()¡Ê°Ê²¼¡¢P/ECEÈÇcalloc()¤È¸Æ¤Ö¤³¤È¤Ë¤·¤Þ¤¹¡Ë¤Ë¤Ï¤Á¤ç¤Ã¤ÈÍî¤È¤··ê¤¬¤¢¤ë¤³¤È¤Ëµ¤ÉÕ¤­¤Þ¤·¤¿¡£ Ʊ¤¸¥µ¥¤¥º¤Î¥á¥â¥ê³ä¤êÅö¤Æ¤Ç¡¢malloc()¤ò»È¤¨¤ÐÀ®¸ù¤¹¤ë¤Î¤Ëcalloc()¤ò»È¤¦¤È¼ºÇÔ¤¹¤ë¤³¤È¤¬¤¢¤ë¡¢¤È¤¤¤¦¤â¤Î¤Ç¤¹¡£ ¥µ¥ó¥×¥ë¥×¥í¥°¥é¥à¤òÍѰդ·¤Þ¤·¤¿¡£ http://www.piece-me.org/archive/calloc-20020919-src.zip ¤³¤Î¥µ¥ó¥×¥ë¥×¥í¥°¥é¥à¤Ï¡¢16¥­¥í¥Ð¥¤¥È¤Î¥Ò¡¼¥×Îΰ褫¤é¡¢¸Þ¼ïÎà¤ÎÊýË¡¤Ç8¥­¥í¥Ð¥¤¥È¤Î¥á¥â¥ê³ä¤êÅö¤Æ¤ò»î¹Ô¤·¤Þ¤¹¡£ ¸Þ¼ïÎà¤ÎÊýË¡¤Ï¡¢¼¡¤Î¤è¤¦¤Ê¤â¤Î¤Ç¤¹¡£ £±¡¥¡¡calloc(2048, 4) 4¥Ð¥¤¥È¡ß2048¸Ä¤Î¥á¥â¥ê³ä¤êÅö¤Æ £²¡¥¡¡calloc(4, 2048) 2048¥Ð¥¤¥È¡ß4¸Ä¤Î¥á¥â¥ê³ä¤êÅö¤Æ £³¡¥¡¡calloc(8192, 1) 1¥Ð¥¤¥È¡ß8192¸Ä¤Î¥á¥â¥ê³ä¤êÅö¤Æ £´¡¥¡¡calloc(1, 8192) 8192¥Ð¥¤¥È¡ß1¸Ä¤Î¥á¥â¥ê³ä¤êÅö¤Æ £µ¡¥¡¡malloc(8192) 8192¥Ð¥¤¥È¤Î¥á¥â¥ê³ä¤êÅö¤Æ ¤¤¤º¤ì¤â·ë²ÌŪ¤Ë¤Ï8¥­¥í¥Ð¥¤¥È¤Î¥á¥â¥ê³ä¤êÅö¤Æ¤¬¹Ô¤ï¤ì¤ë¤Ï¤º¤Ê¤Î¤Ç¡¢¤¹¤Ù¤ÆÀ®¸ù¤¹¤ë¤Ï¤º¤Ç¤¹¡£ ¤È¤³¤í¤¬¡¢¥µ¥ó¥×¥ë¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤·¤Æ¤ß¤ë¤È¡¢ £³¡¥¡¡calloc(8192, 1) 1¥Ð¥¤¥È¡ß8192¸Ä¤Î¥á¥â¥ê³ä¤êÅö¤Æ ¤¬¼ºÇÔ¤¹¤ë¤Î¤Ç¤¹¡£ ¤½¤ì°Ê³°¤Î£±¡¤£²¡¤£´¡¤£µ¤ÏÀ®¸ù¤·¤Þ¤¹¡£¤Ê¤¼¤Ç¤·¤ç¤¦¤«¡© ---- ¸¶°ø ---- calloc()¤Î°ú¿ô»ÅÍͤϡ¢¼¡¤Î¤È¤ª¤ê¤Ç¤¹¡£ void* calloc(size_t num, size_t size); num Í×ÁÇ¿ô size ³ÆÍ×ÁǤΥХ¤¥Èñ°Ì¤Ç¤ÎŤµ °ìÈÌŪ¤Ê½èÍý·Ï¤Îcalloc()¤Î¼ÂÁõ¤Ï¡¢¤À¤¤¤¿¤¤¼¡¤Î¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£ void* calloc(size_t num, size_t size) { int n; void* p; n = num * size; /* ³ä¤êÅö¤Æ¥Ð¥¤¥È¿ô¤ò·×»» */ p = malloc(n); /* ³ä¤êÅö¤Æ¤ò¹Ô¤Ã¤Æ¤ß¤ë */ if(p != NULL) memset(p, 0, n); /* À®¸ù¤Ê¤é¥¼¥í¥¯¥ê¥¢ */ return p; } ¤È¤³¤í¤¬¡¢P/ECEÈÇcalloc()¤Î¼ÂÁõ¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤ß¤¿¤¤¤Ç¤¹¡£ void* calloc(size_t num, size_t size) { int n; void* p; size = size + 3 & ~3; /* Í×ÁÇ¥µ¥¤¥º¤ò4¥Ð¥¤¥Èñ°Ì¤ËÀÚ¤ê¾å¤² */ n = num * size; /* ³ä¤êÅö¤Æ¥Ð¥¤¥È¿ô¤ò·×»» */ p = malloc(n); /* ³ä¤êÅö¤Æ¤ò¹Ô¤Ã¤Æ¤ß¤ë */ if(p != NULL) memset(p, 0, n); /* À®¸ù¤Ê¤é¥¼¥í¥¯¥ê¥¢ */ return p; } ³ä¤êÅö¤Æ¥Ð¥¤¥È¿ô¤ò·×»»¤¹¤ëÁ°¤Ë¡¢Í×ÁÇ¥µ¥¤¥º¤ò4¥Ð¥¤¥Èñ°Ì¤ËÀÚ¤ê¾å¤²¤Æ¤¤¤Þ¤¹¡£ ¤³¤ì¤òƧ¤Þ¤¨¤Æ¡¢Àè¤Û¤É¤Î¸Þ¼ïÎà¤Î³ä¤êÅö¤ÆÊýË¡¤Ç¤½¤ì¤¾¤ì²¿¥Ð¥¤¥È¤Î³ä¤êÅö¤Æ¤¬¹Ô¤ï¤ì¤è¤¦¤È¤·¤Æ¤¤¤¿¤Î¤«¤ò¹Í¤¨¤Æ¤ß¤ë¤È¡¢ £±¡¥¡¡calloc(2048, 4) 4¥Ð¥¤¥È¡ß2048¸Ä¤Î¥á¥â¥ê³ä¤êÅö¤Æ ¢ª (4+3&~3) * 2048 = 4 * 2048 = 8192[¥Ð¥¤¥È] £²¡¥¡¡calloc(4, 2048) 2048¥Ð¥¤¥È¡ß4¸Ä¤Î¥á¥â¥ê³ä¤êÅö¤Æ ¢ª (2048+3&~3) * 4 = 2048 * 4 = 8192[¥Ð¥¤¥È] £³¡¥¡¡calloc(8192, 1) 1¥Ð¥¤¥È¡ß8192¸Ä¤Î¥á¥â¥ê³ä¤êÅö¤Æ ¢ª (1+3&~3) * 8192 = 4 * 8192 = 32768[¥Ð¥¤¥È] £´¡¥¡¡calloc(1, 8192) 8192¥Ð¥¤¥È¡ß1¸Ä¤Î¥á¥â¥ê³ä¤êÅö¤Æ ¢ª (8192+3&~1) * 1 = 8192 * 1 = 8192[¥Ð¥¤¥È] £µ¡¥¡¡malloc(8192) 8192¥Ð¥¤¥È¤Î¥á¥â¥ê³ä¤êÅö¤Æ ¢ª 8192[¥Ð¥¤¥È] £³¤À¤±¤¬32KB¤â¤Î³ä¤êÅö¤Æ¤ò¹Ô¤ª¤¦¤È¤·¤Æ¤¤¤Þ¤¹¡£ ¥Ò¡¼¥×Îΰè¤Ï16KB¤·¤«½àÈ÷¤·¤Æ¤¤¤Þ¤»¤ó¤«¤é¡¢¤Ê¤ë¤Û¤É¼ºÇÔ¤¹¤ë¤Ï¤º¤Ç¤¹¡£ ¥Ò¡¼¥×Îΰ褬32KB°Ê¾å¤¢¤ì¤ÐÀ®¸ù¤·¤Þ¤¹¤¬¡¢24KBʬ¤â¤ÎÎΰ褬̵Â̤ˤʤäƤ·¤Þ¤¤¤Þ¤¹¡£ ¤Ç¤Ï¤Ê¤¼P/ECEÈÇcalloc()¤Ï¡¢¤ï¤¶¤ï¤¶Í×ÁÇ¥µ¥¤¥º¤ò4¥Ð¥¤¥Èñ°Ì¤ËÀÚ¤ê¾å¤²¤Æ¤¤¤ë¤Î¤Ç¤·¤ç¤¦¤«¡© ³Î¤«¤Ëcalloc()¤Î»ÅÍͤǤϡ¢³ä¤êÅö¤Æ¤é¤ì¤¿³ÆÍ×ÁǤ¬Å¬ÀڤʥХ¤¥È¶­³¦¤ËÇÛÃÖ¤µ¤ì¤ë¤è¤¦¡¢°ú¿ôsize¤Ë¤è¤Ã¤Æ³ä¤êÅö¤Æ¥µ¥¤¥º¤òÄ´À°¤·¤Æ¤â¹½¤ï¤Ê¤¤¤³¤È¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£ ¤¿¤Ö¤ó¡¢int¡¤short¡¤char·¿¤Î¥á¥ó¥ÐÊÑ¿ô¤¬º®ºß¤·¤Æ¤¤¤ë¹½Â¤ÂΤΤ¿¤á¤ÎÇÛθ¤À¤È»×¤¤¤Þ¤¹¡£ struct TEST { int a; /* +0¡Á3 */ char b; /* +4 */ }; /* =5¥Ð¥¤¥È */ ¹½Â¤ÂÎTEST¤Î¥µ¥¤¥º¤Ï5¥Ð¥¤¥È¤Ê¤Î¤Ç¡Ê¢¨¼Â¤Ï¤½¤¦¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£¸å½Ò¤·¤Þ¤¹¡Ë¡¢¤¹¤­´Ö¤Ê¤¯Ê¤٤ë¤È¡¢¥á¥ó¥ÐÊÑ¿ôa¤Ï5¥Ð¥¤¥È¤´¤È¤ËÇÛÃÖ¤µ¤ì¤Æ¤·¤Þ¤¤¤Þ¤¹¡£ S1C33 CPU¤Ç¤Ï¡¢intÊÑ¿ô¤Ï4¥Ð¥¤¥È¶­³¦¤ËÇÛÃÖ¤µ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¤¤¤±¤Þ¤»¤ó¡£ Æó¤ÄÌܰʹߤÎÍ×ÁǤΥá¥ó¥ÐÊÑ¿ôa¤Ï4¥Ð¥¤¥È¶­³¦¤ËÇÛÃÖ¤µ¤ì¤Æ¤¤¤Ê¤¤¤Î¤Ç¡¢ÆÉ¤ß½ñ¤­¤·¤è¤¦¤È¤¹¤ë¤È¥¢¥É¥ì¥¹¥¨¥é¡¼¤¬È¯À¸¤·¤Æ¤·¤Þ¤¤¤Þ¤¹¡£ struct TEST +=========+ +0 | | | int a | | | | | +---------+ +4 | char b | +=========+ +5 <- Æó¤ÄÌܤÎÍ×ÁǤΥá¥ó¥ÐÊÑ¿ôa¤Ë¥¢¥¯¥»¥¹¤¹¤ë¤È¥¢¥É¥ì¥¹¥¨¥é¡¼¡ª | | | int a | | | | | +---------+ +9 | char b | +=========+ +10 : : ¥¢¥É¥ì¥¹¥¨¥é¡¼¤òËɤ°¤Ë¤Ï¡¢¥á¥ó¥ÐÊÑ¿ôb¤Î¸å¤í¤Ë3¥Ð¥¤¥Èʬ¤Î¥Ñ¥Ç¥£¥ó¥°¡ÊµÍ¤áʪ¡Ë¤òÄɲ䷤ơ¢¹½Â¤ÂÎTEST¤Î¥µ¥¤¥º¤ò4¤ÎÇÜ¿ô¤Ë¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ struct TEST +=========+ +0 | | | int a | | | | | +---------+ +4 | char b | +---------+ +5 | | | µÍ¤áʪ | | | +=========+ +8 <- £Ï£Ë¡ª | | | int a | | | | | +---------+ +12 | char b | +---------+ +13 | | | µÍ¤áʪ | | | +=========+ +16 : : P/ECEÈÇcalloc()¤Ï¡¢¤³¤Î¥Ñ¥Ç¥£¥ó¥°¤Îʬ¤Î¥µ¥¤¥º¤ò¹Íθ¤·¤Æ¡¢Í×ÁÇ¥µ¥¤¥º¤ò4¥Ð¥¤¥Èñ°Ì¤ËÀÚ¤ê¾å¤²¤Æ¤¤¤ë¤Î¤À¤È»×¤¤¤Þ¤¹¡£ ¤·¤«¤·¤Ê¤¬¤é¼ÂºÝ¤Ë¤Ï¡¢¤³¤Î¤è¤¦¤ÊÇÛθ¤ÏÉÔÍפǤ¹¡£ ¹½Â¤ÂΤγƥá¥ó¥Ð¤¬Å¬ÀڤʥХ¤¥È¶­³¦¤ËÇÛÃÖ¤µ¤ì¤ë¤è¤¦¤Ë¥Ñ¥Ç¥£¥ó¥°¤òÄɲ乤ë¤Î¤Ï¡¢¥é¥¤¥Ö¥é¥ê´Ø¿ô¤ÎÌò³ä¤Ç¤Ï¤Ê¤¯£Ã¥³¥ó¥Ñ¥¤¥é¤ÎÌò³ä¤À¤«¤é¤Ç¤¹¡£ Àè¤Û¤É¤Î¹½Â¤ÂÎTEST¤Î¥µ¥¤¥º¤òÄ´¤Ù¤Æ¤ß¤ë¤È¡¢ sizeof(struct TEST) ¢ª 8 8¥Ð¥¤¥È¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£ ¹½Â¤ÂÎTEST¤ÎÇÛÎó¤òºîÀ®¤·¤¿¾ì¹ç¤Ë¡¢Æó¤ÄÌܰʹߤÎÍ×ÁǤΥá¥ó¥ÐÊÑ¿ôa¤¬4¥Ð¥¤¥È¶­³¦¤ËÇÛÃÖ¤µ¤ì¤ë¤è¤¦¡¢ºÇ¸å¤Ë3¥Ð¥¤¥È¤Î¥Ñ¥Ç¥¤¥ó¥°¤¬Äɲ䵤줿¤«¤é¤Ç¤¹¡£ ñ¤Ë¼¡¤Î¤è¤¦¤Ë½ñ¤¯¤À¤±¤ÇÂç¾æÉפǤ¹¡£ calloc(num, sizeof(struct TEST));¡¡¢«Æ±¤¸¢ª¡¡calloc(num, 8); ¤È¤¤¤¦¤ï¤±¤Ç¡¢P/ECEÈÇcalloc()¤Î¼ÂÁõ¤ÏÌÀ¤é¤«¤Ë´Ö°ã¤¤¤È¤¤¤¦¤ï¤±¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£ ŬÀڤʥХ¤¥È¶­³¦¤Ø¤ÎÇÛÃÖ¤ò¿´ÇÛ¤·¤¹¤®¤¿¤¢¤Þ¤ê¡¢³ä¤êÅö¤Æ¥µ¥¤¥º¤¬Â礭¤¯¤Ê¤ê¤¹¤®¤Æ¤·¤Þ¤Ã¤¿¤À¤±¤Ç¤¹¡£ ¤·¤«¤·¡¢1¥Ð¥¤¥Èñ°Ì¤Î¥á¥â¥ê³ä¤êÅö¤Æ¡Ê¤¤¤Á¤Ð¤ó¤è¤¯»È¤¦¥Ñ¥¿¡¼¥ó¤Ç¤¹¡Ë¤¬¾ï¤Ë3Çܤâ¤Î̵Â̤ÊÎΰè¤òȼ¤¦¤È¤¤¤¦¤Î¤Ï¡¢¤Á¤ç¤Ã¤È¥­¥Ó¥·¥¤¤È¤³¤í¤Ç¤¹¡£ calloc(1000, sizeof(char)) /* 1000ʸ»úʬ¤Î¥á¥â¥ê³ä¤êÅö¤Æ¡£¤·¤«¤·¼ÂºÝ¤Ë¤Ï4000ʸ»úʬ¡ª3000ʸ»úʬ¤Ï̵ÂÌ */ ---- Âкö ---- ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥×¥í¥°¥é¥à¤ÎÃæ¤Çcalloc()¤ò¼ÂÁõ¤·¤Æ¡¢¥é¥¤¥Ö¥é¥êÆâ¤Îcalloc()¤òÃÖ¤­´¹¤¨¤Æ¤·¤Þ¤¤¤Þ¤·¤ç¤¦¡£ void* calloc(size_t num, size_t size) { int n; void* p; n = num * size; /* ³ä¤êÅö¤Æ¥Ð¥¤¥È¿ô¤ò·×»» */ p = malloc(n); /* ³ä¤êÅö¤Æ¤ò¹Ô¤Ã¤Æ¤ß¤ë */ if(p != NULL) memset(p, 0, n); /* À®¸ù¤Ê¤é¥¼¥í¥¯¥ê¥¢ */ return p; } * Fri Aug 15 12:30:00 JST 2002 Naoyuki Sawa - C¥³¥ó¥Ñ¥¤¥é¤ÎºÇŬ²½¥ß¥¹¡¦¥ì¥Ý¡¼¥È P/ECE³«È¯´Ä¶­¤ÎC¥³¥ó¥Ñ¥¤¥é¤Î¡¢ºÇŬ²½¥ß¥¹¤Ë¤è¤ëÉÔ¶ñ¹ç¥ì¥Ý¡¼¥È¤Ç¤¹¡£ ¤Þ¤º¡¢Ëͤ¬ºî¤í¤¦¤È¤·¤¿´Ø¿ô¡Öhit_test()¡×¤Ë¤Ä¤¤¤ÆÀâÌÀ¤·¤Þ¤¹¡£ ¤³¤Î´Ø¿ô¤ÎÌÜŪ¤Ï¡¢È×Ì̾å¤Ë4¡ß4¤Î¥³¥Þ¤¬ÃÖ¤±¤ë¤«¤É¤¦¤«¡©¤òÄ´¤Ù¤ë¤³¤È¤Ç¤¹¡£ ¥³¥Þ¤òÃÖ¤­¤¿¤¤°ÌÃ֤κ¸¾åºÂɸ¤ò»ØÄꤷ¤Æ¡¢ÃÖ¤±¤ë¤Ê¤é0¡¢ÃÖ¤±¤Ê¤±¤ì¤Ð1¤òÊÖ¤·¤Þ¤¹¡£ ÃÖ¤±¤Ê¤¤Íýͳ¤È¤·¤Æ¤Ï¡¢¼¡¤Î¤è¤¦¤Ê¤â¤Î¤¬¤¢¤ê¤Þ¤¹¡£ ¡¦»ØÄꤵ¤ì¤¿ºÂɸ¤òº¸¾å¸¶ÅÀ¤È¤¹¤ë4¡ß4¤ÎÈϰϤ¬¡¢È×Ì̤ò¤Ï¤ß½Ð¤·¤Æ¤¤¤ë¾ì¹ç¡£ ¡¦»ØÄꤵ¤ì¤¿ºÂɸ¤òº¸¾å¸¶ÅÀ¤È¤¹¤ë4¡ß4¤ÎÈϰϤˡ¢´û¤Ë¥³¥Þ¤¬ÃÖ¤«¤ì¤Æ¤¤¤ë¾ì¹ç¡£ ¤³¤Î´Ø¿ô¤ò»È¤Ã¤ÆÉÔ¶ñ¹ç¤òºÆ¸½¤¹¤ë¡¢¥µ¥ó¥×¥ë¥×¥í¥°¥é¥à¤ò¼¨¤·¤Þ¤¹¡£ (¥×¥í¥¸¥§¥¯¥È°ì¼°¤Ï¤³¤Á¤é: http://www.piece-me.org/archive/forbug-20020815-src.zip) --------------------------------------------------------------------------------------------------- C01| /* C02| * forbug.c C03| * C04| * for()ʸ¤ÎºÇŬ²½¥Ð¥°ºÆ¸½¥×¥í¥°¥é¥à C05| * Copyright (C) 2002 Naoyuki Sawa C06| * C07| * * Thu Aug 15 04:30:00 JST 2002 Naoyuki Sawa C08| * - ºîÀ®³«»Ï¡£ C09| */ C10| #include C11| C12| /* ºÇŬ²½¥³¥ó¥Ñ¥¤¥ë¡ÊÌäÂêȯÀ¸¤¹¤ë¡Ë¡§ C13| * pcc33 -b -gp=0x0 -near -O2 -Wall forbug.c pat.c C14| * ºÇŬ²½¤·¤Ê¤¤¥³¥ó¥Ñ¥¤¥ë¡ÊÌäÂêȯÀ¸¤·¤Ê¤¤¡Ë¡§ C15| * pcc33 -b -gp=0x0 -near -Wall forbug.c pat.c C16| */ C17| C18| /* 16x16¥Þ¥¹¤ÎÈ×ÌÌÄêµÁ C19| * ³Æ°ÌÃÖ¤ÎÍ×ÁǤ¬¡¢0¤Ê¤é¥³¥Þ¤¬ÃÖ¤«¤ì¤Æ¤¤¤Þ¤»¤ó¡£ C20| * 1¤Ê¤é¥³¥Þ¤¬ÃÖ¤«¤ì¤Æ¤¤¤Þ¤¹¡£ C21| */ C22| #define COLS 16 C23| #define ROWS 16 C24| unsigned char field[COLS][ROWS]; C25| C26| /* (x,y)¡Á(x+3,y+3)¤Î4x4¥Þ¥¹¤ÎÈϰϤˡ¢´û¤Ë¥³¥Þ¤¬ÃÖ¤«¤ì¤Æ¤¤¤ë¤«¤òÄ´¤Ù¤Þ¤¹¡£ C27| * * (x,y)¡Á(x+3,y+3)¤Î°ìÉô¤Ç¤âÈ×Ì̤ò¤Ï¤ß½Ð¤·¤Æ¤¤¤¿¤é¡¢1¤òÊÖ¤·¤Þ¤¹¡£ C28| * (x,y)¡Á(x+3,y+3)¤ÎÈϰϤˤҤȤĤǤ⥳¥Þ¤¬ÃÖ¤«¤ì¤Æ¤¤¤¿¤é¡¢1¤òÊÖ¤·¤Þ¤¹¡£ C29| * * (x,y)¡Á(x+3,y+3)¤¬È×ÌÌÆâ¤Ç¡¢¤½¤ÎÈϰϤˤҤȤĤ⥳¥Þ¤¬¤Ê¤¤¾ì¹ç¤Î¤ß¡¢0¤òÊÖ¤·¤Þ¤¹¡£ C30| */ C31| int C32| hit_test(int x, int y) C33| { C34| int x0, y0; /* ½Ä²£¤Î¥ë¡¼¥×¥«¥¦¥ó¥¿ */ C35| int x1, y1; /* È×Ì̤òÁöºº¤¹¤ëºÂɸÊÑ¿ô */ C36| C37| for(y0 = 0, y1 = y; y0 < 4; y0++, y1++) { C38| if(y1 < 0 || ROWS - 1 < y1) { /* ½Ä¤Ï¤ß½Ð¤·¥Á¥§¥Ã¥¯ */ C39| return 1; /* ¤Ï¤ß½Ð¤·¤Æ¤¿¤é1¤òÊÖ¤¹ */ C40| } C41| for(x0 = 0, x1 = x; x0 < 4; x0++, x1++) { C42| if(x1 < 0 || COLS - 1 < x1) { /* ²£¤Ï¤ß½Ð¤·¥Á¥§¥Ã¥¯ */ C43| return 1; /* ¤Ï¤ß½Ð¤·¤Æ¤¿¤é1¤òÊÖ¤¹ */ C44| } C45| if(field[y1][x1]) { /* ´û¤Ë¥³¥Þ¤¬ÃÖ¤«¤ì¤Æ¤ë¤«¥Á¥§¥Ã¥¯ */ C46| return 1; /* ÃÖ¤«¤ì¤Æ¤¿¤é1¤òÊÖ¤¹ */ C47| } C48| } C49| } C50| C51| return 0; C52| } C53| C54| void C55| smain() C56| { C57| int retval; C58| C59| /* (-1,8)¡Á(2,11)¤Î4x4¤ÎÈϰϤ¬È×ÌÌÆâ¤Ç¡¢¤Ò¤È¤Ä¤â¥³¥Þ¤¬ÃÖ¤«¤ì¤Æ¤¤¤Ê¤¤¤«¡© C60| * ÌÀ¤é¤«¤ËÈ×Ì̳°¡Êº¸¤Ë¤Ï¤ß½Ð¤·¤Æ¤¤¤ë¡Ë¤Ê¤Î¤Ç¡¢1¤¬µ¢¤ë¤Ï¤º¤Ê¤Î¤Ç¤¹¤¬¡¢ C61| * ºÇŬ²½¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤È0¤¬µ¢¤Ã¤Æ¤­¤Þ¤¹! C62| */ C63| retval = hit_test(-1, 8); C64| cls(); C65| printnum(retval); C66| while(!pad()) { } C67| } --------------------------------------------------------------------------------------------------- hit_test()´Ø¿ô¤Ï¡¢ÆÃ¤ËÊ£»¨¤Ê½èÍý¤ò¹Ô¤Ã¤Æ¤¤¤ë¤ï¤±¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£ ¥²¡¼¥à¤Ë¸Â¤é¤Ê¤¤¡¢¤´¤¯°ìÈÌŪ¤Ê½Å¤Ê¤êȽÄê¤Î¥í¥¸¥Ã¥¯¤À¤È»×¤¤¤Þ¤¹¡£ ¤È¤³¤í¤¬¡¢¤³¤Î¥½¡¼¥¹¤ò¡Ö-O2¡×¥ª¥×¥·¥ç¥óÉÕ¤­¤ÇºÇŬ²½¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤È¡¢Àµ¤·¤¤·ë²Ì¤¬µ¢¤Ã¤Æ¤­¤Þ¤»¤ó¡£ ¥µ¥ó¥×¥ë¥×¥í¥°¥é¥à¤Ç¤Ï¡¢(-1,8)¤ò´ð½à¤È¤¹¤ë4¡ß4¤ÎÈϰϤ˥֥í¥Ã¥¯¤¬ÃÖ¤±¤ë¤«¤É¤¦¤«¤òȽÄꤷ¤Æ¤¤¤Þ¤¹¡£ ÌÀ¤é¤«¤Ëº¸Â¦¤Ë¤Ï¤ß½Ð¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢C42¹ÔÌܤÎȽÄê¤Ë°ú¤Ã¤«¤«¤ê¡¢¡Ö¥³¥Þ¤¬ÃÖ¤±¤Ê¤¤¡á1¡×¤¬µ¢¤Ã¤Æ¤¯¤ë¤Ï¤º¤Ç¤¹¡£ ¤·¤«¤·¼ÂºÝ¤Ë»î¤·¤Æ¤ß¤ë¤È¡¢¡Ö¥³¥Þ¤¬ÃÖ¤±¤ë¡á0¡×¤¬µ¢¤Ã¤Æ¤¯¤ë¤Î¤Ç¤¹¡£ »î¤·¤Ë¡Ö-O2¡×¥ª¥×¥·¥ç¥ó̵¤·¤ÇºÇŬ²½¤·¤Ê¤¤¥³¥ó¥Ñ¥¤¥ë¤ò¹Ô¤Ã¤Æ¤ß¤ë¤È¡¢Àµ¤·¤¯1¤¬µ¢¤Ã¤Æ¤­¤Þ¤¹¡£ ¤È¤¤¤¦¤³¤È¤Ï¡¢¤É¤¦¤ä¤éC¥³¥ó¥Ñ¥¤¥é¤ÎºÇŬ²½¥ß¥¹¤Î¤è¤¦¤Ç¤¹¡£ ¤½¤³¤Ç¡¢¾åµ­hit_test()´Ø¿ô¤òºÇŬ²½¥³¥ó¥Ñ¥¤¥ë¤·¤¿¾ì¹ç¤Î¡¢¥¢¥»¥ó¥Ö¥é¥½¡¼¥¹¤òÄ´¤Ù¤Æ¤ß¤Þ¤·¤¿¡£ --------------------------------------------------------------------------------------------------- A01| /* int hit_test(int x, int y) A02| * [in] A03| * r12 x A04| * r13 y A05| * [out] A06| * r10 result A07| */ A08| .align 1 A09| .global hit_test A10| hit_test: A11| ; .frame %sp,4,$31 # vars= 0, regs= 1/0, args= 0, extra= 0 A12| ; .mask 0x80000000,-4 A13| ; .fmask 0x00000000,0 A14| ld.w %r5,0x0 /* r5 <- 0 (r5¤¬ÊÑ¿ôy0¤ËÂбþ) */ A15| xld.w %r11,field /* r11 <- &field[0][0] */ A16| ld.w %r10,%r13 /* r10 <- y */ A17| xsll %r10,4 /* r10 <- y * 16 */ A18| add %r10,%r11 /* r10 <- &field[y][0] */ A19| __L5: A20| xcmp %r13,15 /* IF y > 15 THEN L16 */ A21| xjrugt __L16 /* (Éä¹æÌµ¤·Èæ³Ó¤Ê¤Î¤Ç¡¢y<0¤Î¾ì¹ç¤â¤³¤ì¤ÇȽÄê¤Ç¤­¤Þ¤¹) */ A22| ld.w %r14,0x0 /* r14 <- 0 (r14¤¬ÊÑ¿ôx0¤ËÂбþ) */ A23| ld.w %r11,%r12 /* r11 <- x */ A24| add %r11,%r10 /* r11 <- &field[y][ x] */ A25| xadd %r4,%r10,15 /* r4 <- &field[y][15] */ A26| __L10: A27| cmp %r11,%r4 /* IF &field[y][x] > &field[y][15] THEN L16 */ A28| xjrugt __L16 /* (¢¨¤³¤³¤¬ÌäÂꡪ¤³¤ì¤Ç¤Ïx<0¤Î¾ì¹ç¤òȽÄê¤Ç¤­¤Þ¤»¤ó) */ A29| xld.ub %r15,[%r11] /* r15 <- field[y][x] */ A30| cmp %r15,0x0 /* IF field[y][x] = 0 THEN L9 */ A31| xjreq __L9 A32| __L16: A33| xld.w %r10,0x00000001 /* return 1 */ A34| xjp __L15 A35| __L9: A36| xadd %r14,%r14,1 /* r14 <- r14 + 1 (r14¤¬ÊÑ¿ôx0¤ËÂбþ) */ A37| xadd %r11,%r11,1 /* r11 <- &field[y][x+1,2,3] (¥Ý¥¤¥ó¥¿¤ò±¦ÎÙ¤Ø) */ A38| xcmp %r14,3 /* IF x0 <= 3 THEN L10 */ A39| xjrle __L10 A40| xadd %r5,%r5,1 /* r5 <- r5 + 1 (r5¤¬ÊÑ¿ôy0¤ËÂбþ) */ A41| xadd %r10,%r10,16 /* r10 <- &field[y+1,2,3][0] (¥Ý¥¤¥ó¥¿¤ò²¼ÎÙ¤Ø) */ A42| xadd %r13,%r13,1 /* y <- y + 1 */ A43| xcmp %r5,3 /* IF y0 <= 3 THEN L5 */ A44| xjrle __L5 A45| ld.w %r10,%r15 /* return 0 (r15¤Ïɬ¤º0¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£A30¡ÁA31¹Ô»²¾È) */ A46| __L15: A47| ret --------------------------------------------------------------------------------------------------- ¤Þ¤ºÃíÌܤ·¤Æ¤¤¤¿¤À¤­¤¿¤¤ÅÀ¤Ï¡¢¸µ¤ÎC¥½¡¼¥¹¤Î½ÄÊý¸þ¤Ï¤ß½Ð¤·È½Äê¥í¥¸¥Ã¥¯¡§ C38| if(y1 < 0 || ROWS - 1 < y1) { /* ½Ä¤Ï¤ß½Ð¤·¥Á¥§¥Ã¥¯ */ ¤¬¡¢¼¡¤Î¤è¤¦¤ËºÇŬ²½¤µ¤ì¤Æ¤¤¤ëÅÀ¤Ç¤¹¡£ A20| xcmp %r13,15 /* IF y > 15 THEN L16 */ A21| xjrugt __L16 /* (Éä¹æÌµ¤·Èæ³Ó¤Ê¤Î¤Ç¡¢y<0¤Î¾ì¹ç¤â¤³¤ì¤ÇȽÄê¤Ç¤­¤Þ¤¹) */ ¤³¤ì¤ÏÌäÂꤢ¤ê¤Þ¤»¤ó¡£ if((int)y1 < 0 || 15 < (int)y1) { ... } /* ¸µ¤ÎC¥½¡¼¥¹¤Î¥í¥¸¥Ã¥¯ */ ¤È¡¢ if(15 < (unsigned)y1) { ... } /* ºÇŬ²½¤µ¤ì¤¿¥¢¥»¥ó¥Ö¥é¥½¡¼¥¹¤Î¥í¥¸¥Ã¥¯ */ ¤Ï¡¢Åù²Á¤À¤«¤é¤Ç¤¹¡£ Î㤨¤Ð¡¢¡Öy1 = -1¡×¤Î¾ì¹ç¡¢¸µ¤ÎC¥½¡¼¥¹¤Î¥í¥¸¥Ã¥¯¤Ç¤Ï¡Ö-1 < 0¡×¤Ç¾ò·ï¤¬À®Î©¤·¤Þ¤¹¡£ -1¤ÏÉä¹æÌµ¤·À°¿ô¤È¸«¤Ê¤»¤Ð0xffffffff¤Ê¤Î¤Ç¡¢¥¢¥»¥ó¥Ö¥é¤Î¥í¥¸¥Ã¥¯¤Ç¤â¡Ö15 < 0xffffffff¡×¤ÇÀ®Î©¤·¤Þ¤¹¡£ ¤È¤¤¤¦¤ï¤±¤Ç¡¢½ÄÊý¸þ¤Î¤Ï¤ß½Ð¤·È½Äê¤Ë¤ÏÌäÂꤢ¤ê¤Þ¤»¤ó¡£ ÌäÂê¤Ï¡¢²£Êý¸þ¤Î¤Ï¤ß½Ð¤·È½Äê¤Ç¤¹¡£ ¸µ¤ÎC¥½¡¼¥¹¤Î²£Êý¸þ¤Ï¤ß½Ð¤·È½Äê¥í¥¸¥Ã¥¯¡§ C42| if(x1 < 0 || COLS - 1 < x1) { /* ²£¤Ï¤ß½Ð¤·¥Á¥§¥Ã¥¯ */ ¤¬¡¢¼¡¤Î¤è¤¦¤ËºÇŬ²½¤µ¤ì¤Æ¤¤¤ëÅÀ¤ËÃíÌܤ·¤Æ¤¯¤À¤µ¤¤¡£ A27| cmp %r11,%r4 /* IF &field[y][x] > &field[y][15] THEN L16 */ A28| xjrugt __L16 /* (¢¨¤³¤³¤¬ÌäÂꡪ¤³¤ì¤Ç¤Ïx<0¤Î¾ì¹ç¤òȽÄê¤Ç¤­¤Þ¤»¤ó) */ ¤³¤ì¤Ï¥À¥á¤Ç¤¹¡ª XºÂɸ¤½¤Î¤Þ¤Þ¤Ç¤ÎÈæ³Ó¤Ç¤Ï¤Ê¤¯¡¢È×ÌÌ¾å¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ë¤·¤¿¸å¤Ç¡¢¥¢¥É¥ì¥¹ÃͤòÈæ³Ó¤¹¤ë¤è¤¦¤ËºÇŬ²½¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ ¥¢¥É¥ì¥¹ÃͤÇÈæ³Ó¤¹¤ë¤Î¤Ï¹½¤ï¤Ê¤¤¤Î¤Ç¤¹¤¬¡¢¥¢¥É¥ì¥¹Èæ³Ó¤ÈÀè¤Û¤É¤ÎÉä¹æÌµ¤·Èæ³Ó¤Ë¤è¤ëºÇŬ²½¤ÎÊýË¡¤ÏÊ»ÍѤǤ­¤Þ¤»¤ó¡£ Î㤨¤Ð¡Ö&field[0][0] = 0x110000, x = -1, y = 8¡×¤Î¾ì¹ç¡¢ºÇŬ²½¸å¤Î¥í¥¸¥Ã¥¯¤Ç¤Ï¼¡¤Î¤è¤¦¤ÊȽÄê¤ò¹Ô¤Ã¤Æ¤·¤Þ¤¤¤Þ¤¹¡£ IF &field[8][-1] > &field[8][15] THEN L16 ¥¢¥É¥ì¥¹ÃͤòŸ³«¤¹¤ë¤È¡¢ IF 0x11007f > 0x11008f THEN L16 ËÜÅö¤ÏL16¤ØÊ¬´ô¤·¤Ê¤±¤ì¤Ð¤¤¤±¤Ê¤¤¤Î¤Ç¤¹¤¬¡¢¤³¤Î¥í¥¸¥Ã¥¯¤Ç¤Ïº¸Â¦¤Ø¤Î¤Ï¤ß½Ð¤·¤¬È½Äê¤Ç¤­¤Þ¤»¤ó¡£ ¤À¤«¤é¥µ¥ó¥×¥ë¥×¥í¥°¥é¥à¤Î·ë²Ì¤¬¡¢¡Ö¥³¥Þ¤¬ÃÖ¤±¤Ê¤¤¡á1¡×¤Ç¤Ï¤Ê¤¯¡¢¡Ö¥³¥Þ¤¬ÃÖ¤±¤ë¡á0¡×¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¦¤Î¤Ç¤¹¡£ ¥³¥ó¥Ñ¥¤¥é¤ÎºÇŬ²½¥ß¥¹¤È¤¤¤¦¤Î¤Ï¡¢P/ECE¤ÎC¥³¥ó¥Ñ¥¤¥é¤Ë¸Â¤é¤º¡¢¤è¤¯¤¢¤ë¤³¤È¤Ç¤¹¡£ ºÇŬ²½¥ß¥¹¤¬È¯À¸¤¹¤ë¾õ¶·¤È¡¢²óÈòÊýË¡¤¬¤­¤Á¤ó¤È¤ï¤«¤Ã¤Æ¤¤¤ì¤Ð¡¢½ÅÂç¤ÊÌäÂê¤Ë¤Ï¤Ê¤ê¤Þ¤»¤ó¡£ ¤¬¡¢º£²ó¤Î¥±¡¼¥¹¤Ç¤Á¤ç¤Ã¤È¥­¥Ó¥·¥¤¤Ê¤¢...¤È´¶¤¸¤ë¤Î¤Ï¡¢ ¤¢¤Þ¤ê¤Ë¤âÉáÄ̤Υ±¡¼¥¹¤ÇÌäÂ꤬À¸¤¸¤Æ¤¤¤ë¤¿¤á¡¢¤É¤¦¤¤¤¦¾õ¶·¤ÇºÇŬ²½¥ß¥¹¤¬È¯À¸¤¹¤ë¤Î¤«¿ä¬¤Ç¤­¤Ê¤¤ÅÀ¡£ ¤Þ¤¿¡¢ÌäÂê¤òȯÀ¸¤¹¤ë¥³¡¼¥É¤¬¤½¤â¤½¤âñ½ã¤Ç¤¹¤Î¤Ç¡¢Ê̤ÎÊýË¡¤ËÃÖ¤­´¹¤¨¤Æ¤â³Î¼Â¤Ë²óÈò¤Ç¤­¤½¤¦¤Ë¤Ê¤¤ÅÀ¤Ç¤¹¡£ for()¤Î¤«¤Ã¤³¤ÎÃæ¤Ë¡Ö,¡×¤ò»È¤Ã¤Æ¥Þ¥ë¥Á¥¹¥Æ¡¼¥È¥á¥ó¥È¤ò½ñ¤¯¤Î¤¬¥Þ¥º¥¤¤Î¤«¤È¹Í¤¨¤Æ¡¢¼¡¤Î¤è¤¦¤Ë½ñ¤­´¹¤¨¤Æ¤ß¤Þ¤·¤¿¡£ --------------------------------------------------------------------------------------------------- /* ¤³¤¦½ñ¤­´¹¤¨¤Æ¤â¥À¥á¤ÊÎ㡪 */ int hit_test(int x, int y) { int x0, y0; /* ½Ä²£¤Î¥ë¡¼¥×¥«¥¦¥ó¥¿ */ int x1, y1; /* È×Ì̤òÁöºº¤¹¤ëºÂɸÊÑ¿ô */ y1 = y; for(y0 = 0; y0 < 4; y0++) { if(y1 < 0 || ROWS - 1 < y1) { /* ½Ä¤Ï¤ß½Ð¤·¥Á¥§¥Ã¥¯ */ return 1; /* ¤Ï¤ß½Ð¤·¤Æ¤¿¤é1¤òÊÖ¤¹ */ } x1 = x; for(x0 = 0; x0 < 4; x0++) { if(x1 < 0 || COLS - 1 < x1) { /* ²£¤Ï¤ß½Ð¤·¥Á¥§¥Ã¥¯ */ return 1; /* ¤Ï¤ß½Ð¤·¤Æ¤¿¤é1¤òÊÖ¤¹ */ } if(field[y1][x1]) { /* ´û¤Ë¥³¥Þ¤¬ÃÖ¤«¤ì¤Æ¤ë¤«¥Á¥§¥Ã¥¯ */ return 1; /* ÃÖ¤«¤ì¤Æ¤¿¤é1¤òÊÖ¤¹ */ } x1++; } y1++; } return 0; } --------------------------------------------------------------------------------------------------- ¤¬¡¢·ë²Ì¤ÏƱ¤¸¡£ ¤ä¤Ã¤Ñ¤êº¸Êý¸þ¤Î¤Ï¤ß½Ð¤·È½Äê¤Ë¼ºÇÔ¤·¡¢¡Ö¥³¥Þ¤¬ÃÖ¤±¤ë¡á0¡×¤¬µ¢¤Ã¤Æ¤­¤Þ¤¹¡£ ¤¤¤í¤¤¤í»î¤·¤¿·ë²Ì¡¢ºÇŬ²½¥ß¥¹¤Ë¼ºÇÔ¤·¤Ê¤¤½ñ¤­Êý¤Î°ìÎã¤È¤·¤Æ¡¢¼¡¤Î¤è¤¦¤ÊC¥½¡¼¥¹¤Ê¤éOK¤ß¤¿¤¤¤Ç¤¹¡§ --------------------------------------------------------------------------------------------------- /* °ì±þ¡¢¤³¤¦½ñ¤­´¹¤¨¤ì¤ÐOK¤ß¤¿¤¤... */ int hit_test(int x, int y) { #define x1 (x + x0) #define y1 (y + y0) int x0, y0; /* ½Ä²£¤Î¥ë¡¼¥×¥«¥¦¥ó¥¿ */ for(y0 = 0; y0 < 4; y0++) { if(y1 < 0 || ROWS - 1 < y1) { /* ½Ä¤Ï¤ß½Ð¤·¥Á¥§¥Ã¥¯ */ return 1; /* ¤Ï¤ß½Ð¤·¤Æ¤¿¤é1¤òÊÖ¤¹ */ } for(x0 = 0; x0 < 4; x0++) { if(x1 < 0 || COLS - 1 < x1) { /* ²£¤Ï¤ß½Ð¤·¥Á¥§¥Ã¥¯ */ return 1; /* ¤Ï¤ß½Ð¤·¤Æ¤¿¤é1¤òÊÖ¤¹ */ } if(field[y1][x1]) { /* ´û¤Ë¥³¥Þ¤¬ÃÖ¤«¤ì¤Æ¤ë¤«¥Á¥§¥Ã¥¯ */ return 1; /* ÃÖ¤«¤ì¤Æ¤¿¤é1¤òÊÖ¤¹ */ } } } return 0; #undef x1 #undef y1 } --------------------------------------------------------------------------------------------------- °ì±þ¡¢Àµ¤·¤¤·ë²Ì¡Ö¥³¥Þ¤¬ÃÖ¤±¤Ê¤¤¡á1¡×¤¬µ¢¤Ã¤Æ¤­¤Þ¤¹¡£ ¤·¤«¤·¤³¤ì¤Ï¡¢hit_test()´Ø¿ô¤Î¾ì¹ç¤Ï¤¿¤Þ¤¿¤ÞºÇŬ²½¥ß¥¹¤Ë°ú¤Ã¤«¤«¤é¤Ê¤¯¤Ê¤Ã¤¿¤È¤¤¤¦¤À¤±¤Ç¡¢ º¬ËÜŪ¤Ê²ò·è¤Ë¤Ï¤Ê¤Ã¤Æ¤¤¤Þ¤»¤ó¡£ ¤³¤ÎÉÔ¶ñ¹ç¤Î³Î¼Â¤Ê²óÈòÊýË¡¤ò¤´Â¸ÃΤΤ«¤¿¤¬¤ª¤é¤ì¤Þ¤·¤¿¤é¡¢¤¼¤Ò¶µ¤¨¤Æ¤¯¤À¤µ¤¤¡£ ¤è¤í¤·¤¯¤ª´ê¤¤¤¤¤¿¤·¤Þ¤¹¡£ ¤µ¤Æ¡¢º£²ó¤Î¥ì¥Ý¡¼¥È¤Ç¸À¤¤¤¿¤¤¤Î¤Ï¡¢¡ÖP/ECE¤ÎC¥³¥ó¥Ñ¥¤¥é¤Ï¥À¥á¡×¤È¤¤¤¦¤³¤È¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£ Á°½Ò¤ÎÄ̤ꡢ¤É¤ó¤Ê¥³¥ó¥Ñ¥¤¥é¤Ë¤â¿¤«¤ì¾¯¤Ê¤«¤ìºÇŬ²½¥ß¥¹¤Ï¤¢¤ë¤È»×¤¤¤Þ¤¹¡£ P/ECE¤Î¾ì¹ç¤ËÌäÂê¤Ê¤Î¤Ï¡¢¸½»þÅÀ¤Ç¤ÏC¥³¥ó¥Ñ¥¤¥é¤ÎÁªÂò»è¤¬¤Ê¤¯¡¢ÉÕ°¤ÎC¥³¥ó¥Ñ¥¤¥é¤ò»È¤¦¤·¤«¤Ê¤¤¤³¤È¤Ç¤¹¡£ ¤Þ¤¿¡¢C¥³¥ó¥Ñ¥¤¥é¤ËÉÔ¶ñ¹ç¤¬¤¢¤Ã¤Æ¤â¡¢¥Ð¡¼¥¸¥ç¥ó¥¢¥Ã¥×¤Ç½¤Àµ¤µ¤ì¤ë¸«¹þ¤ß¤¬¤Û¤È¤ó¤É¤Ê¤¤¤³¤È¤Ç¤¹¡£ ¤â¤·¤«¤·¤¿¤éEPSON¤µ¤ó¤Ï¿·¤·¤¤¥Ð¡¼¥¸¥ç¥ó¤ÎC¥³¥ó¥Ñ¥¤¥é¤òÇÛÉÛ¤·¤Æ¤¤¤ë¤Î¤«¤âÃΤì¤Þ¤»¤ó¤¬¡¢ ¥¨¥ó¥É¥æ¡¼¥¶¡¼¤¬C¥³¥ó¥Ñ¥¤¥é¤À¤±¤òÆþ¼ê¤¹¤ë¤Î¤Ï¤«¤Ê¤êº¤Æñ¤À¤È»×¤ï¤ì¤Þ¤¹¡£ ¤Ê¤±¤ì¤Ðºî¤ë¤·¤«¤¢¤ê¤Þ¤»¤ó¡£ ¿·¤·¤¤gcc¤òS1C33 CPUÍѤ˰ܿ¢¡Äµ¤¤¬±ó¤¯¤Ê¤ê¤½¤¦¤Ç¤¹¤¬¡¢¼ÂºÝ¤Ë¾¤ÎCPUÍѤ˰ܿ¢¤Ê¤µ¤Ã¤Æ¤¤¤ë¥æ¡¼¥¶¡¼¤µ¤ó¤â ÂçÀª¤¤¤é¤Ã¤·¤ã¤¤¤Þ¤¹¤Î¤Ç¡¢ÉÔ²Äǽ¤Ç¤Ï¤Ê¤¤¤Ï¤º¡£ ¤Þ¤¿ÁÔÂç¤ÊÌÜɸ¤¬¤Ç¤­¤Æ¤·¤Þ¤¤¤Þ¤·¤¿¡£ ÁȤ߹þ¤ßCPU¤ÎÊÙ¶¯¡¦USB¤ÎÊÙ¶¯¡¦ÅŻҲóÏ©¤ÎÊÙ¶¯¤Î¸å¤Ï¥³¥ó¥Ñ¥¤¥é¤Î°Ü¿¢¡Ä¤ä¤ë¤³¤ÈÌÜÇò²¡¤·¤Ç¤¹(^^; * Fri Jul 19 05:00:00 JST 2002 Naoyuki Sawa - ¥³¥Ô¡¼¤¹¤ë¤Î¤Ï instdef.c ¤À¤± ¼«ºî¥×¥í¥°¥é¥à¤Ë²»³Ú¥é¥¤¥Ö¥é¥ê¤òÁȤ߹þ¤à¾ì¹ç¡¢P/ECE³«È¯´Ä¶­¤Î¥Õ¥©¥ë¥À¤«¤é¥×¥í¥°¥é¥àºîÀ®ÍѤΥե©¥ë¥À¤Ø¡¢ ¤¤¤¯¤Ä¤«¤Î¥Õ¥¡¥¤¥ë¤ò¥³¥Ô¡¼¤·¤Ê¤±¤ì¤Ð¤¤¤±¤Þ¤»¤ó¡£ ¤ª¤µ¤ó¤Ý°½¹á¤Î¥Á¥å¡¼¥È¥ê¥¢¥ë¤Ç¤Ï¡¢¼¡¤Î¤è¤¦¤Ë»Ø¼¨¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ °½¹á¤Î²èÁü¥Õ¥¡¥¤¥ë¤¬¤¢¤ë¥Õ¥©¥ë¥À¡Êɸ½à¤Ç¤Ïc:\usr\piece\docs\tutorial\ayaka¡Ë¤Ë¡Öwavetbl¡×¤È¤¤¤¦ ¥Õ¥©¥ë¥À¤¬¤¢¤ê¤Þ¤¹¤Î¤Ç¡¢¤½¤ÎÃæ¿È¤Î¡Öwavetbl.c¡×¤È¡Ösnd¥Õ¥©¥ë¥À¡×¤òµ®Êý¤Îºî¶È¥Õ¥©¥ë¥À¡Êayaka¡Ë¤Ë ¥³¥Ô¡¼¤·¤Æ¤¯¤À¤µ¤¤¡£ ¡ÊC:\usr\PIECE\HTML\tutorial_f.htm ¡Ú°½¹á¤¬Ê⤯¥×¥í¥°¥é¥à¤Ë²»³Ú¤òÄɲ乤ë¡Û ¤è¤ê¡Ë ¤Þ¤¿¡¢P/ECE Hand Book¤Ç¤Ï¡¢¼¡¤Î¤è¤¦¤Ë»Ø¼¨¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ sysdev\music\makefile sysdev\music\wavetable.c sysdev\music\instdef.c sysdev\music\musdef.h sysdev\music\wave\*.* ¡ÊP/ECE Hand Book ¡Ø³«È¯Tips¡Ù ²»³Ú¤ò±éÁÕ¤·¤¿¤¤ (p.098) ¤è¤ê¡Ë Ëͤϵ­²±ÎϤ¬¤è¤¯¤Ê¤¤¤Î¤Ç¡¢Æó¤Ä°Ê¾å¤Î¥Õ¥¡¥¤¥ë̾¤Ï³Ð¤¨¤Æ¤é¤ì¤Þ¤»¤ó(^^; ²»³Ú¥é¥¤¥Ö¥é¥ê¤ò»È¤Ã¤¿Îý½¬¥×¥í¥°¥é¥à¤òºî¤ë¤¿¤Ó¤Ë¡¢¤³¤ì¤é¤Î»ñÎÁ¤òÆÉ¤ßÊÖ¤·¤Æ¥³¥Ô¡¼¤¹¤ë¥Õ¥¡¥¤¥ë¤òÄ´¤Ù¤Æ¤¤¤Þ¤·¤¿¡£ Ëè²óƱ¤¸¥Õ¥¡¥¤¥ë¤ò¥³¥Ô¡¼¤·¤Ê¤±¤ì¤Ð¤¤¤±¤Ê¤¤¤Î¤Ê¤é¡¢¤Ê¤¼¥é¥¤¥Ö¥é¥ê¤ËÆþ¤ì¤Æ¤ª¤¤¤Æ¤¯¤ì¤Ê¤«¤Ã¤¿¤Î¤Ç¤·¤ç¤¦¤«¡© ¡¦¡¦¡¦¼Â¤ÏÆþ¤Ã¤Æ¤¤¤Þ¤·¤¿¡£ ¼«ºî¥×¥í¥°¥é¥à¤Ë²»³Ú¥é¥¤¥Ö¥é¥ê¤òÁȤ߹þ¤¿¤á¤Ë¡¢P/ECE³«È¯´Ä¶­¤«¤é¥³¥Ô¡¼¤¹¤ëɬÍפ¬¤¢¤ë¥Õ¥¡¥¤¥ë¤Ï¡¢ sysdev\music\instdef.c ¤³¤ì¤Ò¤È¤Ä¤À¤±¤Ç¤¹¡£ instdef.c¤À¤±¤ò¥³¥Ô¡¼¤·¤¿¥µ¥ó¥×¥ë¥×¥í¥°¥é¥à¡¢¥½¡¼¥¹¤Ï¤³¤Á¤é¡§ http://www.piece-me.org/archive/musprg1-20020719-src.zip instdef.c¤ÎÃæ¤Ë¤Ï¡¢²»¿§¥Æ¡¼¥Ö¥ë¤À¤±¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ INST *inst[] = { ... }; ²»¿§¥Æ¡¼¥Ö¥ë¤Ï¾®¤µ¤¤¤Î¤Ç¡¢instdef.c¥Õ¥¡¥¤¥ë¼«ÂΤò¥³¥Ô¡¼¤·¤Ê¤¯¤Æ¤â¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥×¥í¥°¥é¥à¤Î¥½¡¼¥¹¤ÎÃæ¤Ë instdef.c¤ÎÆâÍÆ¤À¤±¤ò¥«¥Ã¥È¡õ¥Ú¡¼¥¹¥È¤·¤Æ¤·¤Þ¤Ã¤Æ¤âÎɤ¤¤È»×¤¤¤Þ¤¹¡£ ²»¿§¥Ç¡¼¥¿ËÜÂΤÏmuslib.lib¤ÎÃæ¤Ë¤¢¤ê¡¢²»¿§¥Æ¡¼¥Ö¥ë¤«¤é»²¾È¤µ¤ì¤Æ¤¤¤ë²»¿§¥Ç¡¼¥¿¤À¤±¤¬¡¢¼ÂºÝ¤Ë¥ê¥ó¥¯¤µ¤ì¤Þ¤¹¡£ ¤µ¤Æ¡¢instdef.c¤Î²»¿§¥Æ¡¼¥Ö¥ë¤ÏÁ´¤Æ¤Î²»¿§¤Ø¤Î»²¾È¤ò´Þ¤ó¤Ç¤¤¤Þ¤¹¤Î¤Ç¡¢instdef.c¤ÎÆâÍÆ¤ò¤½¤Î¤Þ¤Þ»È¤¦¤È¡¢ muslib.lib¤ÎÃæ¤Ë¤¢¤ëÁ´¤Æ¤Î²»¿§¥Ç¡¼¥¿¤¬¥ê¥ó¥¯¤µ¤ì¤Æ¤·¤Þ¤¤¤Þ¤¹¡£ ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Î¶Ê¥Ç¡¼¥¿¤¬»È¤Ã¤Æ¤¤¤Ê¤¤²»¿§¥Ç¡¼¥¿¤ò¥ê¥ó¥¯¤¹¤ë¤È¡¢¥×¥í¥°¥é¥à¤¬ÌµÂ̤ËÂ礭¤¯¤Ê¤Ã¤Æ¤·¤Þ¤¤¤Þ¤¹¡£ ÉÔÍפʲ»¿§¤òºï½ü¤·¤Æ¥×¥í¥°¥é¥à¤ò¾®¤µ¤¯¤¹¤ëÊýË¡¤¬¡¢"P/ECE" Official WebPage ³«È¯¼Ô·Ç¼¨ÈÄ ¤ËºÜ¤Ã¤Æ¤¤¤Þ¤¹¡£ »²¾Èµ­»ö¤Ï¤³¤Á¤é¡§ http://www.piece-me.com/kyview/article/d/devpiece/8/opcilm/index.html ²»¿§¥Æ¡¼¥Ö¥ë¤òÊÔ½¸¤·¤Æ¡¢ÉÔÍפʲ»¿§¤Ø¤Î»²¾È¤òºï½ü¤·¤Æ¤·¤Þ¤¤¤Þ¤·¤ç¤¦¡£ ÉÔÍפʲ»¿§¤ò¥ê¥ó¥¯¤·¤Ê¤¤¥µ¥ó¥×¥ë¥×¥í¥°¥é¥à¡¢¥½¡¼¥¹¤Ï¤³¤Á¤é¡§ http://www.piece-me.org/archive/musprg2-20020719-src.zip Àè¤Û¤É¤Î¥×¥í¥°¥é¥à¤ÏSRF¥Õ¥¡¥¤¥ë¥µ¥¤¥º¤¬48KB¤°¤é¤¤¤¢¤ê¤Þ¤·¤¿¤¬¡¢²»¿§¤ò¸º¤é¤¹¤È8KBÄøÅ٤˾®¤µ¤¯¤Ê¤ê¤Þ¤·¤¿¡£ * Mon Jul 15 21:23:00 JST 2002 Naoyuki Sawa - 1.25¤Î1¾è¤Ï¥¼¥í¡© "P/ECE" Official WebPage ³«È¯¼Ô·Ç¼¨ÈĤˤƼÁÌ䤵¤»¤ÆÄº¤¤¤¿·ï¤ÎÈ÷˺Ͽ¤Ç¤¹¡£¸µµ­»ö¤Ï¤³¤Á¤é¡£ http://www.piece-me.com/kyview/article/d/devpiece/10/kaxilm/index.html ¤´²óÅú¤¯¤À¤µ¤Ã¤¿¡¢£±£¶¤Ó¤Ã¤È¤µ¤ó(http://www.interq.or.jp/www-user/wanderer/)¤Ë´¶¼Õ¤¤¤¿¤·¤Þ¤¹¡£ ¡ÖS1C33 Family C¥³¥ó¥Ñ¥¤¥é¥Ñ¥Ã¥±¡¼¥¸¡×¤Îpow()´Ø¿ô¤Ï¡¢¤Á¤ç¤Ã¤ÈÉÔ¶ñ¹ç¤¬¤¢¤ë¤è¤¦¤Ç¤¹¡£ ÆÃÄê¤Î¾õ¶·¤Ç¡¢¤¼¤ó¤¼¤ó´Ö°ã¤Ã¤¿ÃÍ(¥¼¥í)¤òÊÖ¤¹¤³¤È¤¬¤¢¤ê¤Þ¤¹¡£ Èù̯¤Ê¥³¡¼¥Ç¥£¥ó¥°¤Î°ã¤¤¤Ç¡¢¾É¾õ¤¬È¯À¸¤·¤¿¤ê¤·¤Ê¤«¤Ã¤¿¤ê¤¹¤ë¤è¤¦¤Ç¡¢¸¶°øÉÔÌÀ¤Ç¤¹¡£ ºÆ¸½¥×¥í¥°¥é¥à¤Ï¤³¤Á¤é¡§ http://www.piece-me.org/archive/powtest-src.zip "P/ECE" Official WebPage ³«È¯¼Ô·Ç¼¨ÈĤˤƥ¢¥É¥Ð¥¤¥¹Äº¤¤¤¿²óÈòÊýË¡¤Ï¼¡¤Î¤È¤ª¤ê¤Ç¤¹¡£ pow()¤òľÀܸƤ֤ΤǤϤʤ¯¡¢pow()¤ò¸Æ¤Ó½Ð¤¹¤À¤±¤Îñ½ã¤Ê´Ø¿ôpow_wrap()¤ò·Ðͳ¤µ¤»¤Þ¤¹¡£ ¤Ä¤Þ¤ê¡¢ fn() { ... c = pow(a, b); ... } ¤ÎÉôʬ¤ò¡¢ double pow_wrap(double x, double y) { return pow(x, y); } fn() { ... c = pow_wrap(a, b); ... } ¤ËÊѹ¹¤¹¤ë¤Î¤Ç¤¹¡£¤Ê¤¼¤³¤ì¤Ç¼£¤ë¤Î¤«¤µ¤Ã¤Ñ¤ê¤ï¤«¤ê¤Þ¤»¤ó¤¬¡Ä(^^; ²óÈòÊýË¡¥µ¥ó¥×¥ë¥×¥í¥°¥é¥à¤Ï¤³¤Á¤é¡§ http://www.piece-me.org/archive/powtest2-src.zip ¸½ºß¤Î¤È¤³¤í¤³¤ÎÊýË¡¤Ç²óÈò¤Ç¤­¤Æ¤¤¤Þ¤¹¤¬¡¢¸¶°øÉÔÌÀ¤Ê¤À¤±¤ËÉÔµ¤Ì£¤Ç¤¹¡£ pow()¤Ø¤Î¥Ñ¥é¥á¡¼¥¿¤Î¼è¤êÆÀ¤ëÈϰϤ¬Í½Â¬¤Ç¤­¤º¡¢¼è¤êÆÀ¤ë¥Ñ¥é¥á¡¼¥¿¤ÎÈϰϤËÂФ·¤Æ ½¼Ê¬¤Ê¥Æ¥¹¥È¤¬¤Ç¤­¤Ê¤¤¥±¡¼¥¹¤Ç¤Ï¡¢¤Ê¤ë¤Ù¤¯pow()¤Ï»È¤ï¤Ê¤¤Êý¤¬Îɤµ¤½¤¦¤Ç¤¹¡£ Äɵ­¡§¤â¤¦°ì¤Ä¤Î²óÈòÊýË¡ ¡Öpow(x, y)¡×¤Ï¡Öexp(log(x) * (y)¡×¤ËŸ³«¤Ç¤­¤ë¤½¤¦¤Ç¤¹¡£¡ÊWeb¤Ç¡È¤Ù¤­¾è¡É¤Ë¤Ä¤¤¤ÆÄ´¤Ù¤Þ¤·¤¿¡Ë ¤â¤·¤â¡¢pow()´Ø¿ôñÂΤËÌäÂ꤬¤¢¤ë¤Î¤Ê¤é¤Ð¡¢pow()´Ø¿ô¤ò»È¤ï¤Ê¤±¤ì¤ÐÌäÂê¤ò²óÈò¤Ç¤­¤ë¤Ï¤º¤Ç¤¹¡£ ¤½¤³¤Ç¡¢#include ¤Îľ¸å¤Ç¼¡¤Î¤è¤¦¤ËÄêµÁ¤·¤Æ¡¢pow()¤òÃÖ¤­´¹¤¨¤Æ¤·¤Þ¤¤¤Þ¤¹¡£ #include #define pow(x,y) (exp(log(x) * (y))) /* pow()¤ò»È¤ï¤Ê¤¤¤Ù¤­¾è¤Î·×»» */ ¥µ¥ó¥×¥ë¥×¥í¥°¥é¥à¤Ï¤³¤Á¤é¡§ http://www.piece-me.org/archive/powtest3-src.zip ¤³¤ÎÊýË¡¤Ç¤âÌäÂê²óÈò¤Ç¤­¤ë¤³¤È¤ò³Îǧ¤·¤Þ¤·¤¿¤¬¡¢´Ø¿ô¸Æ¤Ó½Ð¤·¤¬Áý¤¨¤ë¤¿¤á¡¢ Á°½Ò¤Î²óÈòÊýË¡¤è¤ê¤â¤«¤Ê¤ê¼Â¹Ô®ÅÙ¤¬ÃÙ¤¯¤Ê¤Ã¤Æ¤·¤Þ¤¤¤Þ¤¹¡£ ®ÅÙ¤¬Í׵ᤵ¤ì¤ë¾ìÌ̤Ǥϡ¢Á°½Ò¤Î²óÈòÊýË¡¤ò»È¤Ã¤¿Êý¤¬¤¤¤¤¤È»×¤¤¤Þ¤¹¡£ ¤È¤³¤í¤Ç¡¢¥ê¥ó¥«¤ÎÀ¸À®¤¹¤ë¥Þ¥Ã¥×¥Õ¥¡¥¤¥ë¤«¤é¡¢pow()´Ø¿ô¤Î¥µ¥¤¥º¤òÄ´¤Ù¤¿¤È¤³¤í¡¢¤«¤Ê¤êÂ礭¤¤¤Ç¤¹¡£ ¼¡¤Î¤è¤¦¤Ê¡¢Ã±½ã¤Ê¼ÂÁõ¤Ç¤Ï¤Ê¤¤¤è¤¦¤Ç¤¹¡£ double pow(double x, double y) { return exp(log(x) * y); } ¤¿¤Ö¤ó¹â®²½¤Î¤¿¤á¡¢Ê£»¨¤ËºÇŬ²½¤µ¤ì¤¿¼ÂÁõ¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤Î¤À¤È»×¤¤¤Þ¤¹¡£ ¤½¤³¤Ë¡¢ÌäÂêȯÀ¸¤Î¸¶°ø¤¬¤¢¤ë¤Î¤Ç¤Ï¤Ê¤¤¤Ç¤·¤ç¤¦¤«¡© * Sat Jul 6 22:38:00 JST 2002 Naoyuki Sawa - PCEWAVEINFO¤Ï³«Êü¤µ¤ì¤Ê¤¤ ºòǯ12·î25Æü¤Î¸¦µæµ­Ï¿¡ÖPCEWAVEINFO¤ÏautoÊÑ¿ô¤Ë¤·¤Æ¤Ï¤¤¤±¤Ê¤¤¡×¤Ç¡¢ pceWaveDataOut()¤ËÅϤ¹PCEWAVEINFO¹½Â¤ÂΤϡ¢autoÊÑ¿ô¤Ë¤·¤Æ¤Ï¤¤¤±¤Ê¤¤Íýͳ¤òÄ´¤Ù¤Þ¤·¤¿¡£ pceWaveDataOut()¤ÏºÆÀ¸½ªÎ»»þ¤Ë¡¢PCEWAVEINFO¹½Â¤ÂΤÎstat¥á¥ó¥Ð¤ËPW_STAT_END¤ò½ñ¤­¹þ¤à¤Î¤Ç¡¢ pceWaveDataOut()¤ËÅϤ·¤¿PCEWAVEINFO¹½Â¤ÂΤΥá¥â¥êÎΰè¤òÊ̤ÎÍÑÅӤ˺ÆÍøÍѤ·¤¿¤ê¤·¤Æ¤¤¤ë¤È¡¢ ¤½¤ÎÎΰè¤ËPW_STAT_END¤¬½ñ¤­¹þ¤Þ¤ì¤Æ¡¢¥Ç¡¼¥¿¤¬²õ¤ì¤Æ¤·¤Þ¤¦¡¢¤È¤¤¤¦Íýͳ¤Ç¤·¤¿¡£ ¤½¤Î¸å¡¢BIOS 1.14¤«¤é1.18¤Ø¤Î¥¢¥Ã¥×¥°¥ì¡¼¥É»þ¤Ë¡¢¤³¤ÎÌäÂê¤Ï½¤Àµ¤µ¤ì¤Þ¤·¤¿¡£ BIOS 1.18¤Î¹¹¿·ÆâÍÆ¡Êhttp://www.piece-me.com/dl/update118.html¡Ë¤Ë¤Ï¡¢¼¡¤Î¤è¤¦¤Êµ­½Ò¤¬¤¢¤ê¤Þ¤¹¡£ ¡ü¥Ð¥°¥Õ¥£¥Ã¥¯¥¹ ¡¦WaveºÆÀ¸¤Ç²òÊüºÑ¤ß¤Î¥Ð¥Ã¥Õ¥¡¤Ë½ñ¤­¹þ¤à¥Ð¥°½¤Àµ ¤Þ¤¿¡¢¥«¡¼¥Í¥ë¥½¡¼¥¹¡Êc:\usr\piece\sysdev\pcekn\snd.c¡Ë¤Ë¤â¡¢¼¡¤Î¤è¤¦¤Ê¥³¥á¥ó¥È¤¬¤¢¤ê¤Þ¤¹¡£ v1.16 2002.01.05 MIO.H ²òÊüºÑ¤ß¤Î¥Ð¥Ã¥Õ¥¡¤Ë½ñ¤­¹þ¤à¥Ð¥°½¤Àµ ¤½¤·¤Æ¼ÂºÝ¤Ë¡¢¥«¡¼¥Í¥ë¥½¡¼¥¹¤â½¤Àµ¤µ¤ì¤Æ¤¤¤ë¤è¤¦¤Ç¤¹¡£¡Êsnd.c¤Î286¹ÔÌܤÈ349¹ÔÌÜ¡Ë //newp->stat = PW_STAT_START; Íפé¤Ê¤¤ //wp->pwiee->stat = PW_STAT_END; Íפé¤Ê¤¤ ¤³¤Î¤è¤¦¤Ë¡¢PCEWAVEINFO¹½Â¤ÂΤγ«ÊüÌäÂ꤬½¤Àµ¤µ¤ì¤¿¤³¤È¤ÏÃΤäƤ¤¤¿¤Î¤Ç¤¹¤¬¡¢ ¤Á¤«¤´¤í¤Ï¡¢¸ú²Ì²»ÉÕ¤­¤Î¥×¥í¥°¥é¥à¤ÏÁ´Éô¥·¥ó¥×¥ë¥é¥¤¥Ö¥é¥ê¤ÇÁȤó¤Ç¤¤¤¿¤Î¤Ç¡¢ ËÜÅö¤ËPCEWAVEINFO¹½Â¤ÂΤòautoÊÑ¿ô¤Ë¤·¤ÆpceWaveDataOut()¤¬»È¤¨¤ë¤Î¤«¤É¤¦¤«¡¢ ¼Â¸³¤·¤Æ¤¤¤Þ¤»¤ó¤Ç¤·¤¿¡£ ÀèÆü¤«¤é¡¢µ×¤·¤Ö¤ê¤Ë¥³¥¢API¤ò»È¤Ã¤Æ¥×¥í¥°¥é¥à¤òÁȤó¤Ç¤¤¤Þ¤¹¡£ ¤Ç¡¢PCEWAVEINFO¹½Â¤ÂΤòautoÊÑ¿ô¤Ë¤·¤ÆpceWaveDataOut()¤ò»È¤Ã¤Æ¤ß¤Þ¤·¤¿¡£ ¡¦¡¦¡¦¤ä¤Ã¤Ñ¤êÍî¤Á¤Þ¤¹¡¦¡¦¡¦ ¤Ê¤¼¡©¥«¡¼¥Í¥ë¥½¡¼¥¹¤ò¸«¤ë¸Â¤ê¡¢ÌäÂê¤Î¤«½ê¤Ï½¤Àµ¤µ¤ì¤Æ¤¤¤ë¤è¤¦¤Ç¤¹¤¬¡Ä ¸¶°ø¤Ï¡¢stat¥á¥ó¥Ð¤Ø¤Î¡Ö½ñ¹þ¤ß¡×¤Ç¤Ï¤Ê¤¯¡¢pfEndProc¥á¥ó¥Ð¤Î¡Ö»²¾È¡×¤Ë¤¢¤ê¤Þ¤·¤¿¡£ PCEWAVEINFO¤ÎpfEndProc¤Ë´Ø¿ô¥¢¥É¥ì¥¹¤ò»ØÄꤷ¤Æ¤ª¤¯¤È¡¢WAVE¥Ç¡¼¥¿¤¬ºÆÀ¸½ªÎ»¤·¤¿¤È¤­¤Ë´Ø¿ô¤¬¥³¡¼¥ë¥Ð¥Ã¥¯¤µ¤ì¤Þ¤¹¡£ pfEndProc¤¬NULL¤Ê¤é¡¢¥³¡¼¥ë¥Ð¥Ã¥¯¤Ï¹Ô¤ï¤ì¤Þ¤»¤ó¡£ ¤¤¤º¤ì¤Ë¤»¤è¡¢¥µ¥¦¥ó¥É¥É¥é¥¤¥Ð¤Ï¤É¤³¤«¤ËpfEndProc¤ÎÆâÍÆ¤òÊݸ¤·¤Æ¤ª¤«¤Ê¤±¤ì¤Ð¤¤¤±¤Þ¤»¤ó¡£ ¤È¤³¤í¤¬¸½ºß(1.18)¤Î¼ÂÁõ¤Ç¤Ï¡¢ºÆÀ¸½ªÎ»»þ¤Ë¡¢pceWaveDataOut()¤ËÅϤµ¤ì¤¿¥Ý¥¤¥ó¥¿¤ò·Ðͳ¤·¤ÆpfEndProc¤ÎÆâÍÆ¤ò »²¾È¤·¤Æ¤·¤Þ¤Ã¤Æ¤¤¤Þ¤¹¡£ ¶ñÂÎŪ¤Ë¤Ï¡¢pceWaveDataOut()¤ËÅϤµ¤ì¤¿¥Ý¥¤¥ó¥¿¤¬¡¢WAVEPLAY.pwi00¤Ë¤½¤Î¤Þ¤ÞÊݸ¤µ¤ì(snd.c:setpwi())¡¢ ºÆÀ¸½ªÎ»»þ¤ËWAVEPLAY.pwiee¤Ë°Ü¤µ¤ì(snd.c:make_xwave())¡¢¤³¤Îpwiee¤ò·Ðͳ¤·¤ÆpfEndProc¤¬»²¾È¤µ¤ì¤Þ¤¹(snd.c:make_xwave())¡£ pceWaveDataOut()¤ËÅϤµ¤ì¤¿¥Ý¥¤¥ó¥¿¤Î»Ø¤¹Àè¤ÎPCEWAVEINFO¹½Â¤ÂΤϴû¤Ë³«Êü¤µ¤ì¤Æ¤¤¤ë¤³¤È¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤Î¤Ç¡¢ pfEndProc¥á¥ó¥Ð¤Î¥á¥â¥êÎΰè¤â¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ë¤è¤Ã¤ÆÊ̤ÎÍÑÅӤ˺ÆÍøÍѤµ¤ì¡¢ÆâÍÆ¤ÏÊѤï¤Ã¤Æ¤¤¤ë¤Ï¤º¤Ç¤¹¡£ ¤½¤Î·ë²Ì¡¢´Ø¿ô¥¢¥É¥ì¥¹¤¸¤ã¤Ê¤¤¥Ç¡¼¥¿¤ò´Ø¿ô¥¢¥É¥ì¥¹¤È¤·¤Æ¼èÆÀ¤·¤Æ¤·¤Þ¤¤¡¢¤Ç¤¿¤é¤á¤Ê¥¢¥É¥ì¥¹¤Ø¤Î´Ø¿ô¸Æ¤Ó½Ð¤·¤ò ¹Ô¤Ã¤Æ¤·¤Þ¤¤¡¢TRAP¤¬È¯À¸¤¹¤ë¤Î¤Ç¤¹¡£ ¤³¤ì¤Ï¡¢autoÊÑ¿ô¤Î·ï¤È¤ÏÊ̤ÎÌäÂê¤Ç¤¹¡£ ¤¿¤È¤¨PCEWAVEINFO¹½Â¤ÂΤò¥°¥í¡¼¥Ð¥ëÊÑ¿ô¤ä¥¹¥¿¥Æ¥£¥Ã¥¯ÊÑ¿ô¤Ë¤·¤Æ¤¤¤Æ¤â¡¢ ºÆÀ¸½ªÎ»¤¹¤ë¤Þ¤Ç¤ÏPCEWAVEINFO¹½Â¤ÂÎ¤ÎÆâÍÆ¤ò¤¦¤«¤Ä¤ËÊѹ¹¤Ç¤­¤Þ¤»¤ó¡£ ºÆÀ¸Ãæ¤ÎPCEWAVEINFO¡ÊËÜÅö¤Ê¤é¤ÐPCEWAVEINFO¤Ï¨ºÂ¤Ë³«Êü¤µ¤ì¤ë¤Ï¤º¤Ê¤Î¤Ç¡¢¡ÈºÆÀ¸Ãæ¤ÎPCEWAVEINFO¡É¤È¤¤¤¦³µÇ°¼«ÂÎ ¤¢¤ê¤¨¤Ê¤¤¤Î¤Ç¤¹¤¬¡Ä¡Ë¤ÎpfEndProc¥á¥ó¥Ð¤ò½ñ¤­´¹¤¨¤Æ¤·¤Þ¤¦¤È¡¢pceWaveDataOut()¤ò¸Æ¤ó¤À¤È¤­¤ÎpfEndProc¤Ç¤Ï¤Ê¤¯¡¢ ½ñ¤­´¹¤¨¤¿¸å¤ÎpfEndProc¤Ë½¾¤Ã¤Æ¥³¡¼¥ë¥Ð¥Ã¥¯¤¬¹Ô¤ï¤ì¤Æ¤·¤Þ¤¦¤Î¤Ç¤¹¡£ ¼Â¸³¥×¥í¥°¥é¥à¤òºîÀ®¤·¤Æ¤ß¤Þ¤·¤¿¡£ ¥Ð¥¤¥Ê¥ê¡§ http://www.piece-me.org/archive/endproc-20020706-bin.zip ¥½¡¼¥¹¡¡¡§ http://www.piece-me.org/archive/endproc-20020706-src.zip ¡¦PCEWAVEINFO¹½Â¤ÂΤϥ°¥í¡¼¥Ð¥ëÊÑ¿ô¤Ë¤·¤Æ¤¢¤ê¤Þ¤¹¡£ ¡¦£Á¥Ü¥¿¥ó¤ò²¡¤¹¤È¡¢É½¼¨¥á¥Ã¥»¡¼¥¸¤ò¡ÖºÆÀ¸Ãæ¤Ç¤¹¡×¤ËÀßÄꤷ¤¿¸å¡¢£±ÉÃÄøÅ٤θú²Ì²»¤òºÆÀ¸³«»Ï¤·¤Þ¤¹¡£ ¡¡PCEWAVEINFO.pfEndProc=NULL¤Ë¤·¤Æ¤¢¤ê¤Þ¤¹¤Î¤Ç¡¢ºÆÀ¸½ªÎ»»þ¤Ë¤Ï¥³¡¼¥ë¥Ð¥Ã¥¯¤Ï¹Ô¤ï¤ì¤º¡¢²¿¤âµ¯¤³¤ê¤Þ¤»¤ó¡£ ¡¡ºÆÀ¸½ªÎ»¤·¤Æ¤â¡¢É½¼¨¥á¥Ã¥»¡¼¥¸¤Ï¡ÖºÆÀ¸Ãæ¤Ç¤¹¡×¤Î¤Þ¤Þ¤Ç¤¹¡£ ¡¦£Â¥Ü¥¿¥ó¤ò²¡¤¹¤È¡¢PCEWAVEINFO.pfEndProc¤Ë´Ø¿ô¥¢¥É¥ì¥¹¤òÀßÄꤷ¤Þ¤¹¡£ ¡¡¤½¤Î´Ø¿ô¤Ç¤Ï¡¢É½¼¨¥á¥Ã¥»¡¼¥¸¤ò¡ÖºÆÀ¸½ªÎ»¤·¤Þ¤·¤¿¡×¤ËÊѹ¹¤·¤Þ¤¹¡£ ¡¦£Á¥Ü¥¿¥ó¤ò²¡¤·¤Æ¸ú²Ì²»¤¬ºÆÀ¸¤µ¤ì¤Æ¤¤¤ë¤¢¤¤¤À¤Ë¡¢£Â¥Ü¥¿¥ó¤ò²¡¤·¤ÆpfEndProc¤òÀßÄꤷ¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£ ¡¡ºÆÀ¸½ªÎ»»þ¤Ë¡¢É½¼¨¥á¥Ã¥»¡¼¥¸¤¬¡ÖºÆÀ¸½ªÎ»¤·¤Þ¤·¤¿¡×¤ËÊѤï¤ê¤Þ¤¹¡£ ¡¡pceWaveDataOut()¤ò¸Æ¤ó¤À¸å¤ÎPCEWAVEINFO.pfEndProc¤Ø¤ÎÊѹ¹¤¬¡¢È¿±Ç¤µ¤ì¤Æ¤·¤Þ¤¦¤³¤È¤¬³Îǧ¤Ç¤­¤Þ¤¹¡£ ²óÈòÊýË¡¤Ï¡¢¼¡¤Î¤È¤ª¤ê¤Ç¤¹¡£ ¡¦PCEWAVEINFO¹½Â¤ÂΤϥ°¥í¡¼¥Ð¥ëÊÑ¿ô¤Þ¤¿¤Ï¥¹¥¿¥Æ¥£¥Ã¥¯ÊÑ¿ô¤Ë¤¹¤ë¡£ ¡¡°ÊÁ°¤ÎautoÊÑ¿ô¤Î·ï¤È¤ÏÊÌÌäÂê¤Ç¤¹¤¬¡¢ºÆÀ¸½ªÎ»»þ¤Þ¤ÇpfEndProc¤ÎÆâÍÆ¤òÊÝ»ý¤·¤Ê¤±¤ì¤Ð¤¤¤±¤Ê¤¤¤Î¤Ç¡¢ ¡¡¤ä¤Ï¤êautoÊÑ¿ô¤Ë¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó¡£ ¡¦ºÆÀ¸½ªÎ»¤Þ¤Ç¡¢PCEWAVEINFO¤ÎÆâÍÆ¤ò½ñ¤­´¹¤¨¤Æ¤Ï¤¤¤±¤Ê¤¤¡£ ¡¡PCEWAVEINFO¹½Â¤ÂΤ¬¥°¥í¡¼¥Ð¥ëÊÑ¿ô¤Þ¤¿¤Ï¥¹¥¿¥Æ¥£¥Ã¥¯ÊÑ¿ô¤Ê¤Î¤Ç¡¢Ëè²ó»È¤¤¤Þ¤ï¤¹¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¤¬¡¢ ¡¡¿·¤·¤¤WAVE¾ðÊó¤Î¥»¥Ã¥È¥¢¥Ã¥×Á°¤ËÁ°²ó¤ÎºÆÀ¸¤¬´°Î»¤·¤Æ¤¤¤Ê¤±¤ì¤Ð¤¤¤±¤Þ¤»¤ó¡£ ¡¦ºÆÀ¸´°Î»ÂÔ¤Á¤ò¹Ô¤ï¤Ê¤¤¾ì¹ç¤Ï¡¢pceWaveAbort()¤Ç³Î¼Â¤ËºÆÀ¸Ää»ß¤·¤Æ¤«¤é¡¢PCEWAVEINFO¤ÎÆâÍÆ¤ò½ñ¤­´¹¤¨¤Þ¤¹¡£ ¡¡ PCEWAVEINFO¤Î¥»¥Ã¥È¥¢¥Ã¥×¢ªpceWaveAbort()¢ªpceWaveDataOut() /* °­¤¤Îã */ ¡¡¤È¤¤¤¦½ç¤Ç¤Ï¥À¥á¤Ç¤¹¡ª ¡¡ pceWaveAbort()¢ªPCEWAVEINFO¤Î¥»¥Ã¥È¥¢¥Ã¥×¢ªpceWaveDataOut() /* Îɤ¤Îã */ ¡¡¤È¤¤¤¦¼ê½ç¤Ç¹Ô¤ï¤Ê¤±¤ì¤Ð¤¤¤±¤Þ¤»¤ó¡£ * Sat Jul 6 22:38:00 JST 2002 Naoyuki Sawa - ²»¿§¥Ù¥ó¥Á¥Þ¡¼¥¯#2 º£²ó¤Ï¡¢¥ê¥Õ¥¡¥ì¥ó¥¹¤Îµ­½Ò¤ËÈ¿¤·¤Æ¡Ö¹â®¡×²»¿§¤¬Ä̾ï¤Î²»¿§¤è¤ê¤â®¤¤¸¶°ø¤òÄ´¤Ù¤ëͽÄê¤Ç¤·¤¿¡£ ¤·¤«¤·¡¢¼ÂºÝ¤Ë²»¿§½èÍý¤ò¹Ô¤Ã¤Æ¤¤¤ë c:\usr\piece\sysdev\music\musfast.s ¤ò¾¯¤·¸«¤Æ¤ß¤¿¤È¤³¤í¡¢ ¡Ö¹â®¡×²»¿§¤ÎÊý¤¬Â®¤¤¤Î¤ÏÄ´¤Ù¤ë¤Þ¤Ç¤â¤Ê¤¯°ìÌÜÎÆÁ³¤Ç¤¹¡£ ¤É¤¦¤ä¤é¡¢¡Ö¹â®¡×²»¿§¤ÎÊý¤¬ÃÙ¤¤¡¢¤È¤¤¤¦¤Î¤Ï¡¢¥ê¥Õ¥¡¥ó¥ì¥ó¥¹¤Îñ½ã¤Ê½ñ¤­´Ö°ã¤¤¤À¤Ã¤¿¤è¤¦¤Ç¤¹¡£ ¤È¤¤¤¦¤ï¤±¤Ç¡¢²»¿§¥Ù¥ó¥Á¥Þ¡¼¥¯¤ÎÏÃÂê¤Ï¤³¤³¤Þ¤Ç¤Ë¤·¤Æ¡¢º£²ó¤ÏÊ̤ÎÏÃÂê¤ò¼è¤ê¾å¤²¤Æ¤ß¤¿¤¤¤È»×¤¤¤Þ¤¹¡£ ¾å¤Îµ­»ö¤Ø¤É¤¦¤¾¡£ * Fri Jul 5 00:00:00 JST 2002 Naoyuki Sawa - ²»¿§¥Ù¥ó¥Á¥Þ¡¼¥¯#1 ¡ÖP/ECE Hand Book¡×¤Î¡Ø½é¿´¼Ô¤Î¤¿¤á¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¹ÖºÂ¡¦P/ECE¤Ç²»³Ú¤ò³Ú¤·¤â¤¦¡ª¡Ù¤òÆÉ¤ó¤Ç¡¢ MML¤Î»È¤¤Êý¤òÊÙ¶¯Ãæ¤Ç¤¹¡£ P/ECE³«È¯´Ä¶­¤Î²»³Ú¥é¥¤¥Ö¥é¥ê¥Þ¥Ë¥å¥¢¥ë¤Ç¤ÏÍý²ò¤·¤Å¤é¤«¤Ã¤¿ÅÀ¤â¡¢¤ï¤«¤ê¤ä¤¹¤¯²òÀ⤵¤ì¤Æ¤¤¤Þ¤¹¡£ ÆÃ¤Ë¡¢¥ê¥º¥à¥Ñ¡¼¥È¤Î²òÀ⤬½¨°ï¡ª ¤³¤ì¤Þ¤Ç¡Ö!!¡×¤ä¡Ö?¡×¤Î°ÕÌ£¤¬¤è¤¯¤ï¤«¤é¤º¡¢¤É¤³¤«¤Ë½ñ¤¤¤Æ¤¢¤ëÀâÌÀ¤ò¸«Íî¤È¤·¤Æ¤ë¤Î¤«¤Ê¡Ä¤È»×¤Ã¤Æ¤¤¤Þ¤·¤¿¡£ ¤³¤Îµ­»ö¤Ç¤Ï¡Ö!!¡×¤ä¡Ö?¡×¤Ê¤É¤ÎÆæ¤Êɽµ­Ë¡¤Ï»È¤ï¤º¡¢¡ÖF =1¡×¤â»È¤ï¤º¤Ë¡¢¥ê¥º¥à¥Ñ¡¼¥È¤òµ­½Ò¤·¤Æ¤¤¤Þ¤¹¡£ ¥ê¥º¥à²»¿§¤â¾¤Î²»¿§¤ÈƱ¤¸¤è¤¦¤Ë°·¤¦¡£µ¤ÉÕ¤¤¤Æ¤ß¤ì¤Ð´Êñ¤Ê¤³¤È¤À¤Ã¤¿¤Î¤Ç¤¹¤¬¡¢Ìܤ«¤éÎڤǤ¹¡£ Ëͤϡ¢²»³Ú¤Ï¤¼¤ó¤¼¤ó¥À¥á¡ÊMSX¤Î²»³Ú´Ä¶­¡ÖMuSICA¡×¤ò¤Á¤ç¤Ã¤È¤«¤¸¤Ã¤¿¤À¤±¡Ë¤Ê¤Î¤Ç¤¹¤¬¡¢ ¤³¤Îµ¡²ñ¤Ë¤â¤¦°ìÅÙ¥Á¥ã¥ì¥ó¥¸¤·¤Æ¤ß¤è¤¦¤«¤Ê¡¢¤È¤¤¤¦µ¤¤Ë¤Ê¤Ã¤Æ¤­¤Æ¤Þ¤¹¡£ ¤È¸À¤Ã¤¿Ëµ¤«¤é¡¢²»³Ú¤½¤Î¤â¤Î¤òÎ¥¤ì¤ÆºÙ¤«¤¤ÏÃ¤ËÆþ¤Ã¤Æ¹Ô¤¯¤Î¤Ç¤¹¤¬(^^; ¡ØP/ECE¤Ç²»³Ú¤ò³Ú¤·¤â¤¦¡ª¡Ù¤Îµ­»ö¤Î²»¿§¤Ë´Ø¤¹¤ëÀâÌÀ¤Ë¤Ï¡¢¼¡¤Î¤è¤¦¤Êµ­½Ò¤¬¤¢¤ê¤Þ¤¹¡£ ̾Á°¤Ë¡Ö¹â®¡×¤¬ÉÕ¤¯²»¿§¤ÎÊý¤¬½èÍý¤¬½Å¤¤¤Î¤Ç¡¢ ½èÍý¤ò·Ú¤¯¤¹¤ë¤¿¤á¤Ë¤Ï¡Ö¹â®¡×¤¬ÉÕ¤«¤Ê¤¤²»¿§¤ò»È¤Ã¤¿Êý¤¬¤¤¤¤ ¡Ê086¥Ú¡¼¥¸¤¢¤¿¤ê¤ÎÍ×Ìó¡Ë ¤Ä¤Þ¤ê¡¢²»¿§@0,@1,@2¤ò»È¤¦¤È¥²¡¼¥à¤¬ÃÙ¤¯¤Ê¤ë¤Î¤Ç¡¢@3,@4,@5¤ò»È¤¨¡¢¤È¤¤¤¦¤³¤È¤Ç¤¹¤Í¡£ P/ECE³«È¯´Ä¶­¤Î²»³Ú¥é¥¤¥Ö¥é¥ê¥Þ¥Ë¥å¥¢¥ë¤Ë¤â¡¢Æ±Íͤε­½Ò¤¬¤¢¤ê¤Þ¤¹¡£ ¤·¤«¤·¡¢¤Á¤ç¤Ã¤ÈÂԤäƤ¯¤À¤µ¤¤¡£¡Ö¹â®¡×²»¿§¤ÎÊý¤¬¡ÖÄ㮡ס©²¿¤È¤Ê¤¯Ä¾´¶¤ËÈ¿¤·¤Þ¤¹¡£ ¤È¤¤¤¦¤ï¤±¤Ç¡¢³Î¤«¤á¤Æ¤ß¤ë¤³¤È¤Ë¤·¤Þ¤·¤¿¡£ Ʊ¤¸¶Ê¤Ç¡¢²»¿§¤À¤±¤òÊѤ¨¤¿¥Ç¡¼¥¿¤ò¡¢6¤Ä¤Î²»¿§Ê¬ÍѰդ·¤Þ¤¹¡£ ¤½¤ì¤é¤Î¶Ê¤òBGM¤Ëή¤·¤Ê¤¬¤é¡¢¥×¥í¥°¥é¥à¤Ç1000Ëü²ó¶õ¥ë¡¼¥×¤ò²ó¤·¤Æ¡¢½êÍ×»þ´Ö¤ò·×¤ê¤Þ¤¹¡£ ¶õ¥ë¡¼¥×¤¬²ó¤Ã¤Æ¤¤¤ë´Ö¤ÏpceAppProc()¤òÈ´¤±¤Þ¤»¤ó¤Î¤Ç¡¢²»³Ú¥é¥¤¥Ö¥é¥ê¤Î½èÍý¤Î½Å¤µ¤¬Ä¾ÀܱƶÁ¤¹¤ë¤Ï¤º¤Ç¤¹¡£ ¼Â¸³¥×¥í¥°¥é¥à¤Ï¤³¤Á¤é¡§ ¥Ð¥¤¥Ê¥ê¡¡http://www.piece-me.org/archive/musbench-20020705-bin.zip ¥½¡¼¥¹¡¡¡¡http://www.piece-me.org/archive/musbench-20020705-src.zip ¾å²¼¥«¡¼¥½¥ë¤Ç¶Ê¤òÊѹ¹¤·¡¢A¥Ü¥¿¥ó¤Ç·×¬³«»Ï¤ò³«»Ï¤·¤Þ¤¹¡£ ·×¬½ªÎ»¤·¤¿¤é¡¢½êÍ×»þ´Ö¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£ ·ë²Ì¤Ï¼¡¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤·¤¿¡£ ¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ü ¡Ã¡¡¡¡¡¡¡¡¡¡£Â£Ç£Í¡¡¡¡¡¡¡¡¡¡¡Ã½êÍ×»þ´Ö¡Ã ¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ü ¡Ã²»³Ú¤Ê¤·¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã10.158Éáà ¡Ã²»¿§£°¤Î¶Ê¡§¶ë·ÁÇÈ(¹â®)¡¡¡Ã13.741Éáà ¡Ã²»¿§£±¤Î¶Ê¡§¤Î¤³¤®¤ê(¹â®)¡Ã14.616Éáà ¡Ã²»¿§£²¤Î¶Ê¡§»°³ÑÇÈ(¹â®)¡¡¡Ã14.976Éáà ¡Ã²»¿§£³¤Î¶Ê¡§¶ë·ÁÇÈ¡¡¡¡¡¡¡¡¡Ã26.240Éáà ¡Ã²»¿§£´¤Î¶Ê¡§¤Î¤³¤®¤ê¡¡¡¡¡¡¡Ã26.241Éáà ¡Ã²»¿§£µ¤Î¶Ê¡§»°³ÑÇÈ¡¡¡¡¡¡¡¡¡Ã26.245Éáà ¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ü ½êÍ×»þ´Ö¤¬¾¯¤Ê¤¤¤Û¤É¡¢½èÍý¤¬·Ú¤¤¤³¤È¤ò¼¨¤·¤Þ¤¹¡£ 1000Ëü²ó¤Î¶õ¥ë¡¼¥×¤Î½èÍý¤ÏÊѲ½¤·¤Ê¤¤¤Î¤Ç¡¢½êÍ×»þ´Ö¤Îº¹¤Ï²»³Ú¥é¥¤¥Ö¥é¥ê¤Î½èÍý»þ´Ö¤Îº¹¡£ ²»¿§°Ê³°¤Î¶Ê¥Ç¡¼¥¿¤ÏƱ¤¸¤Ç¤¹¤Î¤Ç¡¢¤¹¤Ê¤ï¤Á¡¢²»¿§¤Î½èÍý¤Î½Å¤µ¤Îº¹¤È¤¤¤¦¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£ ·ë²Ì¤ò¸«¤ë¤È¡¢Ì¾Á°¤Ë¡Ö¹â®¡×¤¬ÉÕ¤¯²»¿§¤ÎÊý¤¬°µÅÝŪ¤Ë½èÍý¤¬·Ú¤¤¡á¡Ö¹â®¡×¤Ç¤¹¡£ ¡Ö¹â®¡×²»¿§¤ÎÊý¤¬¡Ö¹â®¡×¤È¤¤¤¦¡¢Ç¼ÆÀ¤Î¤¤¤¯·ë²Ì¤¬ÆÀ¤é¤ì¤Þ¤·¤¿¡£ ¤Ê¤¼¡¢²»¿§¤Ë¤è¤Ã¤Æ¤³¤ó¤Ê¤Ë¤â½èÍý¤Î½Å¤µ¤¬°ã¤Ã¤Æ¤¯¤ë¤Î¤Ç¤·¤ç¤¦¤«¡© ¡Ê³¤­¤Þ¤¹¡Ä¡Ë * Fri Jun 17 00:00:00 JST 2002 Naoyuki Sawa - zlib¤ò»È¤¦#3 ¡Ê¡ÄÁ°²ó¤«¤é¤Î³¤­¡Ë Á°¡¹²ó¤Î¡Özlib¤ò»È¤¦#1¡×¤Ç¡¢¤³¤ó¤Ê¤³¤È¤ò½ñ¤­¤Þ¤·¤¿¡£ | pceZlibExpand()¤ò¥³¥Ô¡¼¡§ | pceZlibExpand()¤Î¥½¡¼¥¹¤ò¥¢¥×¥ê¥±¥·¥ç¥ó¥×¥í¥°¥é¥à¤Ë¥³¥Ô¡¼¤·¤Æ»È¤¦¡¢¤È¤¤¤¦¼ê¤Ï¤É¤¦¤Ç¤·¤ç¤¦¤«¡£ | ²Äǽ¤À¤È¤Ï»×¤¦¤Î¤Ç¤¹¤¬¡¢ËͤÏÃÇǰ¤·¤Þ¤·¤¿¡£ | pceZlibExpand()¤Ïpex¥Õ¥¡¥¤¥ë¤ÎŸ³«¤ËÆÃ²½¤·¤Æ¤¤¤Æ¡¢¤Á¤ç¤Ã¤ÈÆÃ¼ì¤Ê¥á¥â¥ê³ä¤êÅö¤Æ¾õ¶·¤òÁ°Äó¤È¤·¤Æºî¤é¤ì¤Æ¤¤¤ë¤è¤¦¤Ç¤¹¡£ pceZlibExpand()¤Î»ÈÍѤϤ¢¤­¤é¤á¤Æ¡¢Á°²ó¡Özlib¤ò»È¤¦#2¡×¤Ç¡¢¥ª¥ê¥¸¥Ê¥ë¤Îzlib¥é¥¤¥Ö¥é¥ê¤ò»È¤Ã¤Æ¤ß¤Þ¤·¤¿¡£ ¤·¤«¤·¼Â¤Ï¡¢zlib¥é¥¤¥Ö¥é¥ê¤ò¤½¤Î¤Þ¤Þ»È¤¦ÊýË¡¤Ë¤Ï¡¢¤Á¤ç¤Ã¤ÈÌäÂ꤬¤¢¤Ã¤¿¤Î¤Ç¤¹¡£ zlib¤ÎŸ³«¥ë¡¼¥Á¥ó¤ò»È¤¦¤Ë¤Ï¡¢£±£µ¡Á£³£µKBÄøÅ٤κî¶ÈÎΰ褬ɬÍ× ºÇ¶á¤ÎPC¤Ï¿ôÉ´MB¤â¤ÎRAM¤ò»ý¤Ã¤Æ¤¤¤ë¤Î¤Ç¡¢¤³¤ÎÄøÅ٤Υá¥â¥ê¾ÃÈñ¤ÏÌäÂê¤Ë¤Ê¤é¤Ê¤¤¤Î¤Ç¤¹¤¬¡¢ P/ECE¤Ï¸µ¡¹256KB¤·¤«RAM¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¤Î¤Ç¡¢35KB¤â¤Î¥á¥â¥ê¾ÃÈñ¤Ï¤«¤Ê¤ê¤­¤Ó¤·¤¤¤Ç¤¹¡£ pceZlibExpand()¤ÏRAM¤¬¾¯¤Ê¤¤´Ä¶­¤ËÆÃ²½¤·¤¿¤Ä¤¯¤ê¤Ë¤Ê¤Ã¤Æ¤¤¤Æ¡¢¥á¥â¥ê¾ÃÈñ¤Ï¤«¤Ê¤ê¾®¤µ¤¯ÍÞ¤¨¤é¤ì¤Æ¤¤¤ë¤ß¤¿¤¤¤Ç¤¹¡£ ¤Ç¤­¤ì¤ÐpceZlibExpand()¤ò»È¤¤¤¿¤¤¤È¤³¤í¤Ê¤Î¤Ç¤¹¤¬¡¢¤É¤¦¤â»È¤¤Êý¤¬¤è¤¯¤ï¤«¤é¤Ê¤¤¡Ä ¤È»×¤Ã¤Æ¤¤¤¿¤È¤³¤í¡¢¡Ö¤Ñ¤º¤ë¤ÎP/ECE (http://www.marchen.to/~piece/)¡×¤Î¤Þ¤«¤Ù¤Ò¤í¤·¤µ¤ó¤«¤é¡¢ ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥×¥í¥°¥é¥à¤ËpceZlibExpand()¤òÁȤ߹þ¤àÊýË¡¤Ë¤Ä¤¤¤Æ¡¢¥µ¥ó¥×¥ë¥×¥í¥°¥é¥àÅù¤Î¾ðÊó¤ò夭¤Þ¤·¤¿¡£ ¤µ¤Ã¤½¤¯ÁȤ߹þ¤ó¤Ç¤ß¤¿¤È¤³¤í¡¢³Î¤«¤ËpceZlibExpand()¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤Þ¤·¤¿¡£¤Þ¤«¤Ù¤µ¤ó¡¢¤¢¤ê¤¬¤È¤¦¤´¤¶¤¤¤Þ¤·¤¿¡£ ¤È¤¤¤¦¤ï¤±¤Ç¡¢¼«ºî¥×¥í¥°¥é¥à¤ÎŸ³«¥ë¡¼¥Á¥ó¤Ï¡¢zlib¥é¥¤¥Ö¥é¥ê¤«¤épceZlibExpand()¤ØÀÚ¤êÂØ¤¨¤ë¤³¤È¤Ë¤·¤Þ¤·¤¿¡£ pceZlibExpand()¤ÎÁȤ߹þ¤ßÊý¤Ë¤Ä¤¤¤Æ¤Ï¡¢£¶·î£²£¸ÆüȯÇä¤Î¡ÖP/ECE Hand Book¡×¤ò¤´Í÷²¼¤µ¤¤¡£¡Ê¤Ê¤ó¤Æ¤¤¤¤¥¿¥¤¥ß¥ó¥°¡Ä¡Ë zlib¥é¥¤¥Ö¥é¥ê¤ÎÊý¤â¡¢¤â¤¦¤Á¤ç¤Ã¤È¤À¤±»È¤¤¹þ¤ó¤Ç¤ß¤è¤¦¤È»×¤¤¤Þ¤¹¡£ * Fri Jun 15 22:00:00 JST 2002 Naoyuki Sawa - zlib¤ò»È¤¦#2 ¡Ê¡ÄÁ°²ó¤«¤é¤Î³¤­¡Ë P/ECEÍÑzlib¥é¥¤¥Ö¥é¥ê¤òºî¤ê¤Þ¤·¤ç¤¦¡£¼ê½ç¤Ï¼¡¤ÎÄ̤ꡣ zlib¤Î¥½¡¼¥¹°ì¼°¤ò¥À¥¦¥ó¥í¡¼¥É¤·¤Þ¤¹ ------------------------------------ zlib¤ÎËܲȥµ¥¤¥È¡Özlib Home Page¡×¤«¤é¡¢zlib¤Î¥½¡¼¥¹°ì¼°¤ò¥À¥¦¥ó¥í¡¼¥É¤·¤Þ¤¹¡£ http://www.gzip.org/zlib/ zlib¤Î¥½¡¼¥¹°ì¼°¤Ï¡¢¤¤¤¯¤Ä¤«¤Î¥ß¥é¡¼¥µ¥¤¥È¤«¤é¥À¥¦¥ó¥í¡¼¥É¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ Ëͤϡ¢¤³¤Á¤é¤Î¥ß¥é¡¼¥µ¥¤¥È¤òÍøÍѤµ¤»¤Æ¤â¤é¤¤¤Þ¤·¤¿¡£ http://www.libpng.org/pub/png/src/zlib-1.1.4.tar.gz ¥½¡¼¥¹°ì¼°¤òŸ³«¤·¤Þ¤¹ ---------------------- ¥À¥¦¥ó¥í¡¼¥É¤·¤¿¥Õ¥¡¥¤¥ë¤òŸ³«¤·¤Æ¤¯¤À¤µ¤¤¡£ ¡Özlib-1.1.4¡×¤È¤¤¤¦Ì¾Á°¤Î¥Õ¥©¥ë¥À¤¬¤Ç¤­¤Æ¡¢¤½¤ÎÃæ¤Ë¥½¡¼¥¹°ì¼°¤¬Å¸³«¤µ¤ì¤Þ¤¹¡£ P/ECEÍÑMakefile¤òÍѰդ·¤Þ¤¹ --------------------------- zlib-1.1.4¥Õ¥©¥ë¥À¤ÎÃæ¤Ë¤Ï´û¤ËMakefile¤¬¤¢¤ê¤Þ¤¹¤¬¡¢P/ECE³«È¯´Ä¶­¤Ç¤Ï¤½¤Î¤Þ¤Þ»È¤¦¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó¡£ ¥³¥ó¥Ñ¥¤¥é¥ª¥×¥·¥ç¥ó¤ä¥é¥¤¥Ö¥é¥ê¹½ÃÛÍѤΥ³¥Þ¥ó¥É¤Ê¤É¤¬¡¢P/ECE³«È¯´Ä¶­¤È¤Ï°ã¤Ã¤Æ¤¤¤ë¤«¤é¤Ç¤¹¡£ ½¤Àµ¤¹¤ë¤è¤ê¤â¡¢½ñ¤­Ä¾¤·¤¿Êý¤¬Á᤽¤¦¤Ç¤¹¡£ ¤È¤¤¤¦¤ï¤±¤Ç¡¢½ñ¤­Ä¾¤·¤Æ¤ß¤¿¤Î¤¬¤³¤Á¤é¡§¡ÊÁ°²ó¡¢¾Ò²ð¤·¤¿¤Î¤ÈƱ¤¸¤â¤Î¤Ç¤¹¡Ë http://www.piece-me.org/archive/zlib-1.1.4-piece.mk ¥À¥¦¥ó¥í¡¼¥É¤·¤¿¤é¡¢¥Õ¥¡¥¤¥ë̾¤ò¡ÖMakefile¡×¤ËÊѹ¹¤·¤Æ¤¯¤À¤µ¤¤¡£ ¤½¤·¤Æ¡¢zlib-1.1.4¥Õ¥©¥ë¥À¤ÎÃæ¤ÎMakefile¤Ë¡¢¾å½ñ¤­¥³¥Ô¡¼¤·¤Æ¤¯¤À¤µ¤¤¡£ ¥³¥ó¥Ñ¥¤¥ë¤·¤Þ¤¹ ---------------- ¥³¥Þ¥ó¥É¥×¥í¥ó¥×¥È¤ò³«¤­¡¢zlib-1.1.4¥Õ¥©¥ë¥À¤ÎÃæ¤Ø°Üư¤·¤Æ¡¢¡Ömake¡×¤È¥¿¥¤¥×¤·¤Æ¤¯¤À¤µ¤¤¡£ ¤·¤Ð¤é¤¯ÂԤäơ¢¡ÖLibrarian Completed¡×¤È¤¤¤¦¥á¥Ã¥»¡¼¥¸¤¬½Ð¤¿¤é¡¢¥³¥ó¥Ñ¥¤¥ë´°Î»¤Ç¤¹¡£ ɬÍפʥե¡¥¤¥ë¤À¤±¼è¤ê½Ð¤·¤Þ¤¹ ------------------------------ zlib-1.1.4¥Õ¥©¥ë¥À¤ÎÃæ¤Ë¤Ï¡¢¤¿¤¯¤µ¤ó¤Î¥Õ¥¡¥¤¥ë¤¬¤¢¤ê¤Þ¤¹¤¬¡¢ ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤«¤ézlib¥é¥¤¥Ö¥é¥ê¤ò»È¤¦¤¿¤á¤Ë¡¢¤³¤ì¤é¤¬Á´¤ÆÉ¬Íפʤ櫓¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£ ɬÍפʥե¡¥¤¥ë¤Ï¡¢¼¡¤Î»°¤Ä¤À¤±¤Ç¤¹¡§ zlib.h ¡Ä ºÇ½é¤«¤é¤¢¤ê¤Þ¤¹¡£ zutil.h ¡Ä ºÇ½é¤«¤é¤¢¤ê¤Þ¤¹¡£ libz.lib ¡Ä ¤µ¤Ã¤­¥³¥ó¥Ñ¥¤¥ë¤·¤Æ¤Ç¤­¤¿¥é¥¤¥Ö¥é¥ê¤¬¤³¤ì¤Ç¤¹¡£ ¾¤Î¥Õ¥¡¥¤¥ë¤Ïº£¤Î¤È¤³¤íɬÍפʤ¤¤Î¤Ç¡¢¾Ã¤·¤Æ¤·¤Þ¤Ã¤Æ¤âÂç¾æÉפǤ¹¡£ ¤½¤ì¤Ç¤Ï¡¢zlib¥é¥¤¥Ö¥é¥ê»È¤Ã¤Æ¡¢°µ½Ì¤µ¤ì¤¿²èÁü¥Õ¥¡¥¤¥ë¤òŸ³«¤·¡¢²èÌ̤Ëɽ¼¨¤·¤Æ¤ß¤Þ¤¹¡£ ¥µ¥ó¥×¥ë¥×¥í¥°¥é¥à¤Ï¤³¤Á¤é¡§ http://www.piece-me.org/archive/zapp-20020615-src.zip ¡Ê³¤­¤Þ¤¹¡Ä¡Ë * Fri Jun 14 22:20:00 JST 2002 Naoyuki Sawa - zlib¤ò»È¤¦#1 P/ECE¤Î¼Â¹Ô¥Õ¥¡¥¤¥ë(°Ê²¼¡¢pex¥Õ¥¡¥¤¥ë¤È¸Æ¤Ó¤Þ¤¹)¤Ï¡¢¥Õ¥é¥Ã¥·¥å¥á¥â¥ê¤ÎÍÆÎ̤òÀáÌ󤹤뤿¤á¤Ë¡¢zlib¤Ç°µ½Ì¤·¤Æ¤¢¤ê¤Þ¤¹¡£ Ä̾ï¤Îpex¥Õ¥¡¥¤¥ëºîÀ®¼ê½ç¤Ç¤Ï¡¢¥³¥ó¥Ñ¥¤¥ë¡¦¥ê¥ó¥¯¤·¤Æ¤Ç¤­¤¿¥Õ¥¡¥¤¥ë(*.srf)¡¢¥¿¥¤¥È¥ëʸ»ú¡¢¥¢¥¤¥³¥ó¥Ç¡¼¥¿(*.pid)¤ò¡¢ ppack.exe¤ò»È¤Ã¤Æ¤Þ¤È¤á¤Æ¡¢pex¥Õ¥¡¥¤¥ë¤ËÊÑ´¹¤·¤Þ¤¹¡£ ¤³¤Î¤È¤­¡¢srf¥Õ¥¡¥¤¥ë¤ÎÉôʬ¤¬¡¢zlib¤Ë¤è¤Ã¤Æ°µ½Ì¤µ¤ì¤Þ¤¹¡£ pex¥Õ¥¡¥¤¥ë¤¬°µ½Ì¤µ¤ì¤Æ¤¤¤ë¤Î¤Ç¡¢P/ECE¾å¤Ç¼Â¹Ô¤¹¤ë¤¿¤á¤Ë¤Ï¡¢¤³¤ì¤òŸ³«¤·¤Ê¤±¤ì¤Ð¤¤¤±¤Þ¤»¤ó¡£ P/ECE¥«¡¼¥Í¥ë¤Ë¤Ï¡¢pex¥Õ¥¡¥¤¥ë¤òŸ³«¤¹¤ë¤¿¤á¤Î´Ø¿ô¡ÖpceZlibExpand()¡×¤¬ÍѰդµ¤ì¤Æ¤¤¤Þ¤¹¡£(inflate.c) »Äǰ¤Ê¤¬¤é¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥×¥í¥°¥é¥à¤«¤épceZlibExpand()¤ò¸Æ¤Ó½Ð¤¹¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó¡£ ¤â¤·¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤«¤é¤âpceZlibExpand()¤Î¤è¤¦¤Ê°µ½Ì¥Õ¥¡¥¤¥ëŸ³«API¤¬»È¤¨¤¿¤Ê¤é¡¢Ìò¤ËΩ¤Ä¾ìÌ̤Ϥ«¤Ê¤ê¤¢¤ë¤È»×¤¤¤Þ¤¹¡£ Î㤨¤Ð¡¢¥°¥é¥Õ¥£¥Ã¥¯¥Ç¡¼¥¿¤ä²»³Ú¥Ç¡¼¥¿¤ò¥×¥í¥°¥é¥à¤È¤¤¤Ã¤·¤ç¤Ë¥³¥ó¥Ñ¥¤¥ë¡¦¥ê¥ó¥¯¤»¤º¡¢ ÆÈΩ¤·¤¿ÊÌ¥Õ¥¡¥¤¥ë(*.pgd,*.pmd)¤Ë¤·¤¿¤ê¡¢¤Þ¤È¤á¤Æ¥Õ¥¡¥¤¥ë¥Ñ¥Ã¥¯·Á¼°(*.fpk)¤Ë¤¹¤ë¤³¤È¤¬¤¢¤ê¤Þ¤¹¡£ ¥×¥í¥°¥é¥à¤È¥Ç¡¼¥¿¤òʬ¤±¤ë¤È¡¢¾ìÌÌ¡¦¾ìÌ̤ÇɬÍפʥǡ¼¥¿¤À¤±¤ò¥í¡¼¥É¤Ç¤­¤ë¤Î¤Ç¡¢¤¿¤¯¤µ¤ó¤Î¥Ç¡¼¥¿¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ ¤·¤«¤·¤³¤ÎÊýË¡¤Ç¤Ï¡¢¥Ç¡¼¥¿¥Õ¥¡¥¤¥ë¤Ë¤Ïppack.exe¤Ë¤è¤ë°µ½Ì¤¬¤«¤«¤é¤Ê¤¤¤Î¤Ç¡¢Á´¤Æpex¥Õ¥¡¥¤¥ë¤ËµÍ¤á¹þ¤ó¤À¾ì¹ç¤Ë³Ó¤Ù¤Æ¡¢ ¥Õ¥é¥Ã¥·¥å¥á¥â¥êÍÆÎ̤ò¤ò¤¿¤¯¤µ¤ó¾ÃÈñ¤¹¤ë¡¢¤È¤¤¤¦·çÅÀ¤¬¤¢¤ê¤Þ¤¹¡£ ¤â¤·°µ½Ì¥Õ¥¡¥¤¥ëŸ³«API¤¬»È¤¨¤¿¤Ê¤é¡¢¥Ç¡¼¥¿¥Õ¥¡¥¤¥ë¤â°µ½Ì¤·¤Æ¤ª¤¤¤Æ¡¢É¬ÍפÊÉôʬ¤À¤±¤òŸ³«¤·¤Ê¤¬¤é¥í¡¼¥É¤¹¤ë¤³¤È¤Ç¡¢ ¥Õ¥é¥Ã¥·¥å¥á¥â¥êÍÆÎ̤òÀáÌó¤Ç¤­¤ë¤Ï¤º¤Ç¤¹¡£ Á°½Ò¤ÎÄ̤ꡢ¸½¾õ¤Ç¤Ï¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥×¥í¥°¥é¥à¤«¤épceZlibExpand()¤ò¸Æ¤Ö¤³¤È¤¬¤Ç¤­¤Ê¤¤¤Î¤Ç¡¢¼«Á°¤ÇÍѰդ·¤Þ¤·¤ç¤¦¡£ ¤¤¤¯¤Ä¤«¡¢ÊýË¡¤¬¤¢¤ê¤Þ¤¹¡£ ¤ª¤Ç¥Þ¥ë°µ½Ì¤ò»È¤¦¡§ ¤ª¤Ç¥Þ¥ë¤Ï¡¢Èó¾ï¤Ë¤¿¤¯¤µ¤ó¤Î¥°¥é¥Õ¥£¥Ã¥¯¥Ç¡¼¥¿¤ò»È¤¦¤¿¤á¤Ë¡¢¥Ç¡¼¥¿¥Õ¥¡¥¤¥ë(odemaru.grp)¤ò°µ½Ì¤·¤Æ»ý¤Ã¤Æ¤¤¤Þ¤¹¡£ °µ½Ì¤·¤Æ¤âP/ECE¤Î¥Õ¥é¥Ã¥·¥å¥á¥â¥êÍÆÎ̤®¤ê¤®¤ê¤Ç¤¹¤¬¡Ä ¤ª¤Ç¥Þ¥ë¤Î¥Ç¡¼¥¿¥Õ¥¡¥¤¥ë¤Ï¡¢pex¥Õ¥¡¥¤¥ë¤Î°µ½Ì¤Ë»È¤ï¤ì¤Æ¤¤¤ëzlib¤È¤Ï°ã¤¦¡¢ÆÈ¼«¤ÎÊýË¡¤Ç°µ½Ì¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ Ÿ³«¥×¥í¥°¥é¥à¤Ï¡¢¤ª¤Ç¥Þ¥ë¤Î¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë¤Î¤Ç¡¢¤³¤ì¤ò¥³¥Ô¡¼¤·¤Æ»È¤¦¤³¤È¤¬¤Ç¤­¤½¤¦¤Ç¤¹¡£ ¤¬¡¢»Äǰ¤Ê¤¬¤é¡¢°µ½Ì¥×¥í¥°¥é¥à¤¬¤¢¤ê¤Þ¤»¤ó¡£ ¤è¤Ã¤Æ¡¢¤³¤ÎÊýË¡¤ÏµÑ²¼¤Ç¤¹¡£ pceZlibExpand()¤ò¥³¥Ô¡¼¡§ pceZlibExpand()¤Î¥½¡¼¥¹¤ò¥¢¥×¥ê¥±¥·¥ç¥ó¥×¥í¥°¥é¥à¤Ë¥³¥Ô¡¼¤·¤Æ»È¤¦¡¢¤È¤¤¤¦¼ê¤Ï¤É¤¦¤Ç¤·¤ç¤¦¤«¡£ ²Äǽ¤À¤È¤Ï»×¤¦¤Î¤Ç¤¹¤¬¡¢ËͤÏÃÇǰ¤·¤Þ¤·¤¿¡£ pceZlibExpand()¤Ïpex¥Õ¥¡¥¤¥ë¤ÎŸ³«¤ËÆÃ²½¤·¤Æ¤¤¤Æ¡¢¤Á¤ç¤Ã¤ÈÆÃ¼ì¤Ê¥á¥â¥ê³ä¤êÅö¤Æ¾õ¶·¤òÁ°Äó¤È¤·¤Æºî¤é¤ì¤Æ¤¤¤ë¤è¤¦¤Ç¤¹¡£ zlib¤ò»È¤¦¡§ ¤È¤¤¤¦¤ï¤±¤Ç¡¢º£²ó¤Ïzlib¤ÎÊÙ¶¯¤â·ó¤Í¤Æ¡¢¥ª¥ê¥¸¥Ê¥ë¤Îzlib¥½¡¼¥¹¤«¤éP/ECEÍÑzlib¥é¥¤¥Ö¥é¥ê¤ò¹½ÃÛ¤·¤Æ¤ß¤ë¤³¤È¤Ë¤·¤Þ¤·¤¿¡£ ¤³¤ì¤Þ¤Ç¡¢zlib¤ò»È¤Ã¤¿¥¢¥×¥ê¥±¡¼¥·¥ç¥ó(gzip¤äunzip¤Ê¤É¤Î°µ½Ì¡¦Å¸³«¥Ä¡¼¥ë¡¢png²èÁü·Á¼°¤Ê¤É)¤Ï¤¤¤í¤¤¤í»È¤Ã¤Æ¤­¤Þ¤·¤¿¤¬¡¢ zlib¥é¥¤¥Ö¥é¥ê¤½¤Î¤â¤Î¤ò¥×¥í¥°¥é¥à¤«¤éľÀÜÍøÍѤ·¤¿¤³¤È¤Ï¤Ê¤«¤Ã¤¿¤Î¤Ç¡¢¤¤¤¤µ¡²ñ¤Ç¤¹¡£ P/ECEÍÑzlib¥é¥¤¥Ö¥é¥ê¤ò¹½ÃÛ¤¹¤ë¡¢¤È¤¤¤Ã¤Æ¤â¡¢ÆÃ¤ËÆñ¤·¤¤ÅÀ¤Ï¤¢¤ê¤Þ¤»¤ó¤Ç¤·¤¿¡£ ¥½¡¼¥¹°ì¼°¤ò¥À¥¦¥ó¥í¡¼¥É¤·¤Æ¡¢P/ECEÍѤÎMakefile¤ò½ñ¤¤¤¿¤À¤±¤Ç¤¹¡£ ¥×¥í¥°¥é¥à½¤Àµ¤Ê¤É¤Î°Ü¿¢ºî¶È¤Ï¡¢°ìÀÚɬÍפ¢¤ê¤Þ¤»¤ó¤Ç¤·¤¿¡£ P/ECEÍÑzlib¥é¥¤¥Ö¥é¥ê¹½ÃÛÍѤÎMakefile¤Ï¤³¤Á¤é http://www.piece-me.org/archive/zlib-1.1.4-piece.mk ¾Ü¤·¤¯¤Ï¼¡²ó¤Ë¡£ ¡Ê³¤­¤Þ¤¹¡Ä¡Ë * Wed Jun 12 21:30:00 JST 2002 Naoyuki Sawa - S1C3320£¸(#2) ¡Ê¡ÄÁ°²ó¤«¤é¤Î³¤­¡Ë ¡ÖS1C33208¡×¤È¡ÖS1C33209¡×¤ÎÆÃħ¤ò¡¢¥Ç¡¼¥¿¥·¡¼¥È¤ÇÈæ³Ó¤·¤Æ¤ß¤Þ¤·¤¿¡£ ¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü ¡Ã¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£Ó£±£Ã£³£³£²£°£¸¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£Ó£±£Ã£³£³£²£°£¹¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã ¡Ü¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡Ü¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡Ü¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡Ü ¡Ã£Ã£Í£Ï£Ó¡¡£Ì£Ó£É¡¡£³£²¥Ó¥Ã¥ÈÊÂÎó½èÍý¡Ã£Ó£±£Ã£³£³£°£°£°¡Ê¡á£Å£°£Ã£³£³£°£°£°¡Ë£Ò£É£Ó£Ã¥³¥¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã¢«¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã ¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü ¡Ã¥á¥¤¥ó¥¯¥í¥Ã¥¯¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã£¶£°£Í£È£ú¡Ê£Í£á£ø¡¥¡¢³°Éô¥¯¥í¥Ã¥¯ÆþÎÏ¡¡£±£µ£Í£È£ú¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã¢«¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã ¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü ¡Ã¥µ¥Ö¥¯¥í¥Ã¥¯¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã£³£²¡¥£·£¶£¸£ë£È£ú¡Ê£Ô£ù£ð¡¥¡Ë¡¡¿å¾½È¯¿®¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã¢«¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã ¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü ¡ÃÌ¿Î᥻¥Ã¥È¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã£±£¶¥Ó¥Ã¥È¸ÇÄêĹ¡¢Ä¾¸òÀ­¤ÎÎɤ¤£±£°£µ¼ïÎà¤ÎÌ¿Îá¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã¢«¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã ¡Ã¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÃÀÑϱ黻̿Îá¡Ê£Í£Á£ÃÌ¿Îá¡¡£²¥µ¥¤¥¯¥ë¼Â¹Ô¡Ë¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã ¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü ¡ÃÆâ¢£Ò£Á£ÍÍÆÎÌ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã£¸¡¤£±£¹£²¥Ð¥¤¥È¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã¢«¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã ¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü ¡Ã¥¯¥í¥Ã¥¯¥¿¥¤¥Þ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã£±£ã£è¡¥¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã¢«¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã ¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü ¡Ã¥×¥í¥°¥é¥Þ¥Ö¥ë¥¿¥¤¥Þ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã£¸¥Ó¥Ã¥È¡ß£´£ã£è¡¥¡¢£±£¶¥Ó¥Ã¥È¡ß£¶£ã£è¡¥¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã£¸¥Ó¥Ã¥È¡ß£¶£ã£è¡¥¡¢£±£¶¥Ó¥Ã¥È¡ß£¶£ã£è¡¥¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã ¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü ¡Ã£Ð£×£Í¥¿¥¤¥Þ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã£±£¶¥Ó¥Ã¥È¥×¥í¥°¥é¥Þ¥Ö¥ë¥¿¥¤¥Þ¤Ë¤è¤ê¼Â¸½¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã¡Êµ­ºÜ̵¤·¡Ë¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã ¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü ¡Ã¥¦¥©¥Ã¥Á¥É¥Ã¥°¥¿¥¤¥Þ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã£±£¶¥Ó¥Ã¥È¥×¥í¥°¥é¥Þ¥Ö¥ë¥¿¥¤¥Þ¤Ë¤è¤ê¼Â¸½¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã¢«¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã ¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü ¡Ã¥·¥ê¥¢¥ë¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¡¡¡¡¡¡¡¡¡¡¡¡¡Ã£²£ã£è¡¥¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã£´£ã£è¡¥¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã ¡Ã¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã¥¯¥í¥Ã¥¯Æ±´ü¼°¡¦Ä´ÊâÆ±´ü¼°¤òÁªÂò²Äǽ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã¥¯¥í¥Ã¥¯Æ±´ü¼°¡¦Ä´ÊâÆ±´ü¼°¤òÁªÂò²Äǽ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã ¡Ã¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÃÀÖ³°Àþ¡Ê£É£ò£Ä£Á¡Ë¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤È¤·¤Æ¤â»ÈÍѲÄǽ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÃÀÖ³°Àþ¡Ê£É£ò£Ä£Á¡Ë¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤È¤·¤Æ¤â»ÈÍѲÄǽ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã ¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü ¡Ã£±£°¥Ó¥Ã¥È£Á¡¿£ÄÊÑ´¹´ï¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÃÃà¼¡Èæ³ÓÊý¼°¡¡ÆþÎÏ£¸£ã£è¡¥¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã¢«¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã ¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü ¡Ã¹â®£Ä£Í£Á¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã£´£ã£è¡¥¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã¢«¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã ¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü ¡Ã¥¤¥ó¥Æ¥ê¥¸¥§¥ó¥È£Ä£Í£Á¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã£±£²£¸£ã£è¡¥¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã¢«¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã ¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü ¡ÃÈÆÍÑÆþ½ÐÎϥݡ¼¥È¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÃÆþÎÏ£±£³¥Ó¥Ã¥È¡¢½ÐÎÏ£²£¹¥Ó¥Ã¥È¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã¢«¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã ¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü ¡Ã³ä¤ê¹þ¤ß¥³¥ó¥È¥í¡¼¥é¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã³°Éô³ä¹þ¤ß¡§£±£°¼ïÎà¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã¢«¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã ¡Ã¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÃÆâÉô³ä¹þ¤ß¡§£²£¹¼ïÎà¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã ¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü ¡Ã³°Éô¥Ð¥¹¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¡¡¡¡¡¡¡¡¡¡¡¡¡Ã¥¢¥É¥ì¥¹£²£´¥Ó¥Ã¥È¡¢¥Ç¡¼¥¿£±£¶¥Ó¥Ã¥È¡¢¥Á¥Ã¥×¥¤¥Í¡¼¥Ö¥ë£·ËÜ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã¢«¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã ¡Ã¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã£Ä£Ò£Á£Í¡¢¥Ð¡¼¥¹¥È£Ò£Ï£Íľ·ë²Äǽ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã ¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü ¡Ã½Ð²Ù·ÁÂÖ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã£Ñ£Æ£Ð£µ¡Ý£±£²£¸£ð£é£î¡¿£Ñ£Æ£Ð£±£µ¡Ý£±£²£¸£ð£é£î¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã¢«¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã ¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü ¡ÃÅŸ»Å۵¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÃÆâÉôưºîÅ۵¡§£±¡¥£¸¡Á£³¡¥£¶£Ö¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã¢«¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã ¡Ã¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã£É¡¿£ÏÅ۵¡¡¡§£±¡¥£¸¡Á£µ¡¥£µ£Ö¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã ¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü ¡Ã¾ÃÈñÅÅή¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã£È£Á£Ì£Ô»þ¡§£²£·¦Ì£Á¡Ê£³¡¥£³£Ö¡¢£³£²¡¥£·£¶£¸£ë£È£ú¡¡¥¯¥í¥Ã¥¯¥¿¥¤¥Þưºî¡¡£Ô£ù£ð¡¥¡Ë¡Ã£Ó£Ì£Å£Å£Ð»þ¡§£±£°¦Ì£Á¡¡¡¡¡Ê£³¡¥£³£Ö¡¢£³£²¡¥£·£¶£¸£ë£È£ú¡¡¥¯¥í¥Ã¥¯¥¿¥¤¥Þưºî¡¡£Ô£ù£ð¡¥¡Ë¡Ã ¡Ã¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã¡¡¡¡¡¡¡¡¡¡¡¡¡§£²¡¥£µ¦Ì£Á¡¡¡Ê£²¡¥£°£Ö¡¢£³£²¡¥£·£¶£¸£ë£È£ú¡¡¥¯¥í¥Ã¥¯¥¿¥¤¥Þưºî¡¡£Ô£ù£ð¡¥¡Ë¡Ã ¡Ã¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÃÄÌ¾ïÆ°ºî»þ¡§£¶£µ£í£Á¡Ê£³¡¥£³£Ö¡¢£µ£°£Í£È£ú¡¡£Ô£ù£ð¡¥¡Ë¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÃÄÌ¾ïÆ°ºî»þ¡¡¡§£¶£µ£í£Á¡¡¡¡¡Ê£³¡¥£³£Ö¡¢£µ£°£Í£È£ú¡¡£Ô£ù£ð¡¥¡Ë¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã ¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü ¤´Í÷¤ÎÄ̤ê¤Û¤È¤ó¤ÉƱ¤¸¤Ç¤¹¤¬¡¢¤¤¤¯¤Ä¤«°ã¤Ã¤Æ¤¤¤ë¹àÌܤ⤢¤ê¤Þ¤¹¡£ ¤³¤ì¤é¤Î¹àÌܤ¬¡¢S1C33208¤«¤éS1C33209¤Ø¤ÎÊѹ¹ÅÀ¤Ê¤Î¤Ç¤·¤ç¤¦¤«¡© ¡¦PWM¥¿¥¤¥Þ ¡¡S1C33208¤Î¥Ç¡¼¥¿¥·¡¼¥È¤Ë¤Ïµ­ºÜ¤¬¤¢¤ë¤Î¤Ë¡¢S1C33209¤Î¥Ç¡¼¥¿¥·¡¼¥È¤Ë¤Ïµ­ºÜ¤¬¤¢¤ê¤Þ¤»¤ó¤Ç¤·¤¿¡£ ¡¡¤·¤«¤·¤³¤ì¤Ïñ¤Ë¡¢S1C33209¥Ç¡¼¥¿¡¼¥È¤Îµ­ºÜϳ¤ì¡Ê¤Þ¤¿¤Ïñ¤Ë¡ÈÆÃħ¡É¤«¤é³°¤·¤¿¤À¤±¡Ë¤À¤È»×¤¤¤Þ¤¹¡£ ¡¡¸½¤ËP/ECE¤Ï¡¢16¥Ó¥Ã¥È¥×¥í¥°¥é¥Þ¥Ö¥ë¥¿¥¤¥Þ¤ò»È¤Ã¤Æ¡¢PWMÊý¼°¤Î¥µ¥¦¥ó¥É½ÐÎϤò¹Ô¤Ã¤Æ¤¤¤Þ¤¹¡£ ¡¡¤È¤¤¤¦¤ï¤±¤Ç¡¢PWM¥¿¥¤¥Þ¤Ë´Ø¤·¤Æ¤Ï¡¢S1C33208¤ÈS1C33209¤ÏƱ¤¸¤È¹Í¤¨¤Æ¤¤¤¤¤È»×¤¤¤Þ¤¹¡£ ¡¦¾ÃÈñÅÅή ¡¡ÄÌ¾ïÆ°ºî»þ¤Î¾ÃÈñÅÅή¤ÏƱ¤¸¤Ç¤¹¤¬¡¢¾ÊÅÅÎϥ⡼¥É¤Î¾ÃÈñÅÅή¤Îµ­ºÜ¤¬°Û¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£ ¡¡S1C33208¤ÏHALT»þ¡Ê¤Á¤ç¤Ã¤È¾ÊÅÅÎϤʥ⡼¥É¡Ë¡¢S1C33209¤ÏSLEEP»þ¡Ê¤¹¤´¤¯¾ÊÅÅÎϤʥ⡼¥É¡Ë¤ÎÃͤʤΤǡ¢Ã±½ã¤ËÈæ³Ó¤Ç¤­¤Þ¤»¤ó¡£ ¡¡S1C33209¤Î¥Ç¡¼¥¿¥·¡¼¥È¤Ë¤ÏÍÍ¡¹¤Ê¾ò·ï¤Ç¤ÎHALT»þ¤Î¾ÃÈñÅÅή¤âºÜ¤Ã¤Æ¤¤¤ë¤Î¤Ç¡¢Èæ³Ó¤Ï²Äǽ¤À¤È»×¤¦¤Î¤Ç¤¹¤¬¡¢Ãμ±ÉÔ­¤Ç¤è¤¯¤ï¤«¤ê¤Þ¤»¤ó¤Ç¤·¤¿¡£ ¡¡ËͤˤϤޤÀ¡¢¾ÃÈñÅÅή¤òµ¤¤Ë¤¹¤ë¤Û¤É¤Î¥Ï¡¼¥ÉÃ챤¬¤Ê¤¤¤Î¤Ç¡¢¤³¤ÎÏÃÂê¤Ï¤Þ¤¿¤¤¤º¤ì¶½Ì£¤¬½Ð¤¿¤È¤­¤Ë¼è¤ê¾å¤²¤ë¤³¤È¤Ë¤·¤Þ¤¹¡£ ¡¦¥×¥í¥°¥é¥Þ¥Ö¥ë¥¿¥¤¥Þ ¡¡8¥Ó¥Ã¥È¥¿¥¤¥Þ¤¬ÁýÀߤµ¤ì¡¢S1C33208¤Î4¥Á¥ã¥Í¥ë¤«¤é¡¢S1C33209¤Ç¤Ï6¥Á¥ã¥Í¥ë¤Ë¤Ê¤ê¤Þ¤·¤¿¡£ ¡¡¿·¤·¤¯Äɲ䵤줿¤Î¤Ï¡¢Ch.4¤ÈCh.5¤Ç¤¹¡£ ¡¡S1C33209¥Ç¡¼¥¿¥·¡¼¥È¤ÎI/O¥Ý¡¼¥È¥¢¥É¥ì¥¹É½¤ò¸«¤ë¤È¡¢Ch.0¡Á3¤ÎÀßÄêÍÑI/O¥Ý¡¼¥È¤Ïʤó¤Ç½¸¤Þ¤Ã¤Æ¤¤¤ë¤Î¤Ë¡¢ ¡¡Ch.4¡Á5ÀßÄêÍÑI/O¥Ý¡¼¥È¤À¤±¤¬Î¥¤ì¤¿¤È¤³¤í¤Ë¤¢¤Ã¤¿¤ê¤¹¤ë¤Î¤Ï¡¢¸å¤«¤éÄɲ䵤줿¤«¤é¤À¤Ã¤¿¤Î¤Ç¤¹¤Í¡£ ¡¡¤µ¤Æ¡¢¡ÖP/ECE¸¦µæ¼¼¡ÁS1C33ʬ¼¼ 8¥Ó¥Ã¥È¥×¥í¥°¥é¥Þ¥Ö¥ë¥¿¥¤¥Þ¡×¤Î²ó¡§ http://www.piece-me.org/piece-lab/s1c33/20020115.html ¡¡¤Ç¤â¼è¤ê¾å¤²¤Þ¤·¤¿¤è¤¦¤Ë¡¢Ch.4¡Á5¤Ï¡¢Ch.0¡Á3¤Ë³Ó¤Ù¤Æ¡¢¤Á¤ç¤Ã¤Èµ¡Ç½¤¬¸ÂÄꤵ¤ì¤Æ¤¤¤Þ¤¹¡£ ¡¡Ã¼»Ò¤Ø¤Î¥¯¥í¥Ã¥¯½ÐÎϤ䡢¥¿¥¤¥Þ³ä¤ê¹þ¤ß¤ÎȯÀ¸¸»¤È¤·¤ÆÍøÍѤǤ­¤Ê¤¤¡Ê¤Þ¤¿¤ÏÍøÍѤ·¤Å¤é¤¤¡Ë¤Î¤Ç¤¹¡£ ¡¡Ch.4¡Á5¤òÄɲä·¤¿ÌÜŪ¤Ï²¿¤À¤Ã¤¿¤Î¤Ç¤·¤ç¤¦¤«¡©¤½¤ì¤Ï¡Ä ¡¦¥·¥ê¥¢¥ë¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹ ¡¡¥·¥ê¥¢¥ë¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤¬ÁýÀߤµ¤ì¡¢S1C33208¤Î2¥Á¥ã¥Í¥ë¤«¤é¡¢S1C33209¤Ç¤Ï4¥Á¥ã¥Í¥ë¤ËÇÜÁý¤·¤Þ¤·¤¿¡£ ¡¡¤Ê¤ë¤Û¤É¡¢·×¬µ¡´ï¤ò¤Ä¤Ê¤¤¤À¤ê¤¹¤ë¾ì¹ç¡¢2¥Á¥ã¥Í¥ë¤Ç¤Ï¤Á¤ç¤Ã¤È¤³¤³¤í¤â¤È¤Ê¤¤¡£ ¡¡4¥Á¥ã¥Í¥ëÍߤ·¤¤¡¢¤È¤¤¤¦Í×˾¤¬¤¢¤Ã¤¿¤Î¤«¤âÃΤì¤Þ¤»¤ó¡£ ¡¡¿·¤·¤¯Äɲ䵤줿¤Î¤ÏCh.2¤ÈCh.3¤Ç¡¢´û¸¤ÎCh.0¡Á1¤ÈƱ¤¸µ¡Ç½¤òÈ÷¤¨¤Æ¤¤¤Þ¤¹¡£ ¡¡¥·¥ê¥¢¥ë¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤ò»È¤¦¤Ë¤Ï¡¢¤É¤³¤«¤é¤«¥¯¥í¥Ã¥¯¤ò¶¡µë¤·¤Ê¤±¤ì¤Ð¤¤¤±¤Þ¤»¤ó¡£ ¡¡ÆâÉô¥¯¥í¥Ã¥¯¤ò»È¤¦¾ì¹ç¡¢¥·¥ê¥¢¥ë¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹Ch.0¤Ï8¥Ó¥Ã¥È¥¿¥¤¥ÞCh.2¤«¤é¡£ ¡¡¥·¥ê¥¢¥ë¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹Ch.1¤Ï8¥Ó¥Ã¥È¥¿¥¤¥ÞCh.3¤«¤é¡¢¥¯¥í¥Ã¥¯¶¡µë¤òÆÀ¤Þ¤¹¡£ ¡¡8¥Ó¥Ã¥È¥¿¥¤¥ÞCh.0¤ÈCh.1¤Ï´û¤ËÍÑÅÓ¤¬·è¤Þ¤Ã¤Æ¤¤¤Þ¤¹¡ÊDRAM¥ê¥Õ¥ì¥Ã¥·¥å¡¢A/DÊÑ´¹³«»Ï¥È¥ê¥¬¡¢OSC3¤Îȯ¿®°ÂÄêÂÔ¤Á»þ´Ö¤Ê¤É¡Ë¤Î¤Ç¡¢ ¡¡8¥Ó¥Ã¥È¥¿¥¤¥ÞCh.0¡Á1¤ò»È¤Ã¤Æ¥·¥ê¥¢¥ë¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹Ch.2¡Á3¤Ë¥¯¥í¥Ã¥¯¤ò¶¡µë¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó¡£ ¡¡¤Þ¤¿¡¢16¥Ó¥Ã¥È¥¿¥¤¥Þ¤ÏÈÆÍÑŪ¤Ê¤Ä¤¯¤ê¤Ê¤Î¤Ç¡¢¥·¥ê¥¢¥ë¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ø¤Î¥¯¥í¥Ã¥¯¶¡µë¤Î¤è¤¦¤ÊÀìÍÑŪ¤ÊÍÑÅӤˤÏÉÔ¸þ¤­¤Î¤è¤¦¤Ç¤¹¡£ ¡¡¤½¤³¤Ç¡¢¥·¥ê¥¢¥ë¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹Ch.2¡Á3¤Ø¤Î¥¯¥í¥Ã¥¯¶¡µë¤Î¤¿¤á¤Ë¡¢8¥Ó¥Ã¥È¥¿¥¤¥Þ¤Ë¤âCh.4¡Á5¤¬Äɲ䵤줿¤Î¤À¤È»×¤¤¤Þ¤¹¡£ ¡¡¤³¤ÎÍÑÅÓ¤ËÆÃ²½¤·¤Æ¤¤¤ë¤Î¤Ç¡¢Â¾¤Î´û¸¤Î8¥Ó¥Ã¥È¥¿¥¤¥ÞCh.0¡Á3¤è¤ê¤âµ¡Ç½¤¬¸ÂÄꤵ¤ì¤Æ¤¤¤ë¤Î¤Ç¤¹¤Í¡£ ·ëÏÀ¡£S1C33208¤«¤éS1C33209¤Ø¤ÎÊѹ¹ÅÀ¡§ ¡Ö¥·¥ê¥¢¥ë¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤¬¡¢£²¥Á¥ã¥Í¥ë¤«¤é£´¥Á¥ã¥Í¥ë¤ËÁý¤¨¤Þ¤·¤¿¡£¡× ¡ÊÁý¤¨¤¿¥Á¥ã¥Í¥ë¤Î¤¿¤á¤Ë¡¢£¸¥Ó¥Ã¥È¥¿¥¤¥Þ¤â£²¥Á¥ã¥Í¥ëÄɲ䵤ì¤Þ¤·¤¿¡£¡Ë * Tue Jun 11 21:00:00 JST 2002 Naoyuki Sawa - S1C3320£¸(#1) P/ECE¤ÎCPU¡ÖS1C33209¡×¤Î¼þÊÕ²óÏ©¤òľÀÜÁàºî¤¹¤ë¼Â¸³¥×¥í¥°¥é¥à¤òºîÀ®¤¹¤ë¤¿¤á¤Ë¡¢ I/O¥Ý¡¼¥È¥¢¥É¥ì¥¹ÄêµÁ¥Õ¥¡¥¤¥ë¡Öc33208.h¡×¤ò»È¤Ã¤Æ¤­¤Þ¤·¤¿¡£ ¤³¤ÎÄêµÁ¥Õ¥¡¥¤¥ë¡¢Ì¾Á°¤«¤é¤â¤ï¤«¤ë¤è¤¦¤Ë¡¢S1C33209ÍѤǤϤ¢¤ê¤Þ¤»¤ó¡£ Ʊ¤¸S1C33¥·¥ê¡¼¥º¤ÎCPU¤Ç¤¹¤¬¡¢S1C33209¤è¤ê¤âµì¤¤¥â¥Ç¥ë¡ÖS1C33208¡×ÍѤÎÄêµÁ¥Õ¥¡¥¤¥ë¤Ç¤¹¡£ c33208.h¤ÎÆâÍÆ¤È¡¢S1C33209¤Î¥Ç¡¼¥¿¥·¡¼¥È¤ò¸«³Ó¤Ù¤¿¤È¤³¤í¡¢Î¾¼Ô¤ÎÆâÍÆ¤ÎÂçÉôʬ¤Ï¹ç¤Ã¤Æ¤¤¤Þ¤¹¡£ ¤·¤«¤·°ìÉô¡¢¥Ç¡¼¥¿¥·¡¼¥È¤Ë¤ÏºÜ¤Ã¤Æ¤¤¤ë¤Î¤Ë¡¢c33208.h¤Ë¤ÏÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤I/O¥Ý¡¼¥È¤â¤¢¤ê¤Þ¤¹¡£ S1C33209¤¬S1C33208¤Î¥Þ¥¤¥Ê¡¼¥¢¥Ã¥×¥°¥ì¡¼¥ÉÈǤǤ¢¤ë¤³¤È¤Ï¤¿¤Ö¤ó´Ö°ã¤¤¤Ê¤¤¤Î¤Ç¤¹¤¬¡¢ ¶ñÂÎŪ¤Ë¤É¤³¤¬ÊѤï¤Ã¤¿¤«¡©¤Ë´Ø¤¹¤ë»ñÎÁ¤¬¡¢¤³¤ì¤Þ¤Ç¸«¤Ä¤±¤é¤ì¤Þ¤»¤ó¤Ç¤·¤¿¡£ ¤È¤¤¤¦¤Î¤â¡¢ËܲÈEPSON¤Î¥Ç¡¼¥¿¥·¡¼¥ÈÃÖ¤­¾ì¡§ ¥È¥Ã¥×¥Ú¡¼¥¸ http://www.epsondevice.com/domcfg.nsf -> ¥É¥­¥å¥á¥ó¥È http://www.epsondevice.com/www/jp/doc.nsf -> 32-bit¥Þ¥¤¥¯¥í¥³¥ó¥Ô¥å¡¼¥¿ (S1C33 Family) http://www.epsondevice.com/www/PDFS/epdoc.nsf/selectView?OpenForm&32mcu (2002/06/11¸½ºß) ¤Ë¤Ï¡¢´û¤ËS1C33208¤Ë´Ø¤¹¤ë»ñÎÁ¤Ï¤Ê¤¯¡¢Web¤ò¸¡º÷¤·¤Æ¤ß¤Æ¤â¡¢¤Û¤È¤ó¤É»ñÎÁ¤¬¸«¤Ä¤«¤é¤Ê¤¤¤Î¤Ç¤¹¡£ c33208.h¤ÎÃæ¤Î¥³¥á¥ó¥È¤«¤é¿ä»¡¤¹¤ë¤Ë¡¢S1C33208¤¬Åо줷¤¿¤Î¤Ï¤¿¤Ö¤ó1999ǯº¢¤À¤Ã¤¿¤È»×¤ï¤ì¤Þ¤¹¡£ ¤Þ¤¿¡¢¤³¤Á¤é¤Î¥í¡¼¥É¥Þ¥Ã¥×¡§ http://www.epson-esec2002.com/prdct/MCU.html (2002/06/11¸½ºß) ¤Ë¤è¤ë¤È¡¢S1C33209¤ÎÅоì¤Ï2001ǯ¤Ç¤¹¡£¡ÊP/ECE¤ÎÅоì¤ÈƱ¤¸Ç¯¤Ç¤¹¤Í¡Ë S1C33208¤ÏÆóǯ´Ö¤â»È¤ï¤ì¤Æ¤¤¤¿¤Ï¤º¤Ê¤Î¤Ë¡¢¤³¤Î¾ðÊó¤Î¾¯¤Ê¤µ¤Ï¤¤¤Ã¤¿¤¤¡Ä S1C33209¤â¸¡º÷¤Ë¥Ò¥Ã¥È¤¹¤ë¤Î¤Ï¤Û¤È¤ó¤ÉP/ECE¤¬¤é¤ß¤Ê¤Î¤Ç¡¢¤â¤È¤â¤È¥Þ¥¤¥Ê¡¼¤Ê¥·¥ê¡¼¥º¤Ê¤Î¤«¤â¡© Ⱦ¤Ð¤¢¤­¤é¤á¤Æ¤¤¤¿¤Î¤Ç¤¹¤¬¡¢º£Æü¡¢S1C33208¤Î¥Ç¡¼¥¿¥·¡¼¥È¤ò¸«¤Ä¤±¤ë¤³¤È¤¬¤Ç¤­¤Þ¤·¤¿¡£ ¤³¤ì¤Þ¤Ç¡ÖS1C33208¡×¤Î̾Á°¤Ç¸¡º÷¤·¤Æ¤¤¤¿¤Î¤¬¡¢¤Ê¤«¤Ê¤«¸«¤Ä¤±¤é¤ì¤Ê¤«¤Ã¤¿¸¶°ø¤Ç¤·¤¿¡£ µì̾¾Î¤Î¡ÖE0C33208¡×¤Ç¸¡º÷¤¹¤ì¤Ð¤è¤«¤Ã¤¿¤Î¤Ç¤¹¤Í¡£ ¾ðÊ󤬾¯¤Ê¤¤¤³¤È¤ËÊѤï¤ê¤Ï¤¢¤ê¤Þ¤»¤ó¡ÊGoogle¸¡º÷¤Ç¤¿¤Ã¤¿2¥Ú¡¼¥¸¡Ë¤¬¡¢ÀèÆ¬¤ËPDF¤¬¥Ò¥Ã¥È¤·¤Þ¤·¤¿¡£ ¤È¤¤¤¦¤ï¤±¤Ç¡¢S1C33208¡Êµì̾¾ÎE0C33208¡Ë¤Î¥Ç¡¼¥¿¥·¡¼¥È¤Ï¤³¤Á¤é¡§ http://www.2k1.co.uk/products/epson/downloads/ds_33208.pdf (2002/06/11¸½ºß) ¤Ê¤¼¤³¤³¤À¤±¤Ë»Ä¤Ã¤Æ¤¤¤ë¤Î¤«ÉԻ׵ĤǤ¹¤¬¡¢¤È¤ê¤¢¤¨¤º»Ä¤Ã¤Æ¤¤¤ë¤¦¤Á¤ËÊá³Í¤·¤Æ¤ª¤­¤Þ¤·¤ç¤¦¡£ S1C33208¤ÈS1C33209¤Î¥Ç¡¼¥¿¥·¡¼¥È¤ò¸«³Ó¤Ù¤ë¤È¡¢¤ä¤Ï¤ê¼þÊÕ²óÏ©¤¬¤¤¤¯¤Ä¤«¶¯²½¤µ¤ì¤Æ¤¤¤ë¤è¤¦¤Ç¤¹¡£ Á°ÃÖ¤­¤¬Ä¹¤¹¤®¤¿¤¿¤á¡¢ËÜÂê¤ËÆþ¤Ã¤¿¤È¤³¤í¤Çº£Æü¤Ï¤ª¤·¤Þ¤¤¡£ ¡Ê³¤­¤Þ¤¹¡Ä¡Ë * Sat Jun 01 20:35:00 JST 2002 Naoyuki Sawa - °ìÉô½ñ¤­´¹¤¨¤ÏÉÔ²Ä ºÇ¶á¤Ë¤Ê¤Ã¤Æ¡¢¤ä¤Ã¤ÈpceFile·ÏAPI¤ò»È¤¤»Ï¤á¤Þ¤·¤¿¡£ º£²ó¤Ï¡¢pceFileWriteSct()¤ò»È¤Ã¤Æ¤¤¤Æµ¤ÉÕ¤¤¤¿¤³¤È¤Î¥á¥â¤Ç¤¹¡£ ¥»¥¯¥¿¤Î°ìÉô¤À¤±¤ò¡¢pceFileWriteSct()¤ò»È¤Ã¤Æ½ñ¤­´¹¤¨¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó¡£ Î㤨¤Ð¡¢¼¡¤Î¤è¤¦¤ÊÆâÍÆ¤Î¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë¡Öhello.txt¡×¤òP/ECE¤ËžÁ÷¤·¤Æ¤ª¤­¤Þ¤¹¡£ hello, world ¤³¤Î¥Õ¥¡¥¤¥ë¤Î°ìÉô¤ò¡¢pceFileWriteSct()¤ò»È¤Ã¤Æ½ñ¤­´¹¤¨¤è¤¦¤È¤·¤Æ¤ß¤Þ¤¹¡£ pceFileOpen(&fa, "hello.txt", FOMD_WR); pceFileWriteSct(&fa, "HELL!", 0, 5); ÀèÆ¬¤«¤é£µÊ¸»úʬ¤Ë½ñ¤­¹þ¤ß¤Þ¤¹¤Î¤Ç¡¢·ë²Ì¤Ï HELL!, world ¤È¤Ê¤ê¤½¤¦¤Ë¸«¤¨¤Þ¤¹¤¬¡¢¼ÂºÝ¤Ë¤Ï¤³¤¦¤Ê¤ê¤Þ¤¹¡£ HELL! ¡¦¡¦¡¦¡¦ ¡ÖHELL!¡×¤è¤ê¤â¸å¤í¤Ï¡¢¥´¥ß¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¤¤Þ¤¹¡£ ¤Ê¤¼¤³¤¦¤Ê¤ë¤Î¤Ç¤·¤ç¤¦¤«¡© pceFileWriteSct()¤ÎÆâÉôưºî¤Ï¡¢¼¡¤Î¤è¤¦¤Ê¤â¤Î¤Ç¤¹¡£ ¡¦»ØÄꤵ¤ì¤¿¥»¥¯¥¿¤ò¡¢¤¤¤Ã¤¿¤ó¤¼¤ó¤Ö¾Ãµî¤¹¤ë¡£ ¡¦»ØÄꤵ¤ì¤¿Ä¹¤µ¤Îʬ¤À¤±¡¢¥Ç¡¼¥¿¤ò½ñ¤­¹þ¤à¡£ ½¾¤Ã¤Æ¡¢»ØÄꤵ¤ì¤¿¥»¥¯¥¿¤Î¤¦¤Á¡¢½ñ¤­¹þ¤Þ¤Ê¤«¤Ã¤¿Éôʬ¤Î´û¸¤Î¥Ç¡¼¥¿¤Ï¾Ãµî¤µ¤ì¤Æ¤·¤Þ¤¤¤Þ¤¹¡£ ¾Ãµî¤µ¤ì¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¤Ë¤Ï¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥×¥í¥°¥é¥à¦¤ÇÂкö¤·¤Ê¤±¤ì¤Ð¤¤¤±¤Ê¤¤¤è¤¦¤Ç¤¹¡£ ¡¦Êѹ¹¤·¤¿¤¤¥Ç¡¼¥¿¤ò´Þ¤à¥»¥¯¥¿Á´ÂÎ(4096¥Ð¥¤¥È)¤ò¡¢RAM¤ËÆÉ¤ß¹þ¤à¡£(pceFileReadSct»ÈÍÑ) ¡¦RAM¤ËÆÉ¤ß¹þ¤ó¤À¥Ç¡¼¥¿¤ò¡¢É¬Íפ˱þ¤¸¤ÆÊѹ¹¤¹¤ë¡£ ¡¦Êѹ¹¤¬½ª¤ï¤Ã¤¿¤é¡¢¥»¥¯¥¿Á´ÂÎ(4096¥Ð¥¤¥È)¤ò¥Õ¥¡¥¤¥ë¤Ë½ñ¤­Ì᤹¡£(pceFileWriteSct»ÈÍÑ) * Fri May 31 21:00:00 JST 2002 Naoyuki Sawa - make ¥á¥â P/ECE³«È¯´Ä¶­¤ËÆþ¤Ã¤Æ¤ë¡Ömake¡×¥æ¡¼¥Æ¥£¥ê¥Æ¥£¤Ï¡¢°ìÈÌŪ¤ÊUnix¾å¤Îmake¤ä¡¢VisualC++¤ÎnmakeÅù¤Ë³Ó¤Ù¤Æ¡¢ °ìÉô¡¢µ¡Ç½À©¸Â¤µ¤ì¤¿¤â¤Î¤È¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£ µ¡Ç½À©¸Â¤µ¤ì¤Æ¤¤¤ëÅÀ¤Ë¤Ä¤­¤Þ¤·¤Æ¤Ï¡¢Æ±¤¸¤¯P/ECE³«È¯´Ä¶­¤ËÆþ¤Ã¤Æ¤ë»ñÎÁ¤Î ¡ØS1C33¥Õ¥¡¥ß¥êC¥³¥ó¥Ñ¥¤¥é¥Ñ¥Ã¥±¡¼¥¸¥Þ¥Ë¥å¥¢¥ë¡Ù(C:\usr\PIECE\docs\datasheet\EPSON\S5U1C33000C_J.pdf) ¤Î¡Ö17.1 make (463¥Ú¡¼¥¸¡Á)¡×¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ Ψľ¤Ë¸À¤Ã¤Æ¡¢P/ECE³«È¯´Ä¶­¤Îmake¤Ï¡¢¤«¤Ê¤êµ¡Ç½À©¸Â¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ ¤Ç¤âËͤξì¹ç¡¢¸µ¡¹¡¢GNU make¤Ê¤É¤Î°ìÈÌŪ¤Êmake¤Ï¡¢µ¡Ç½Ë­ÉÙ¤¹¤®¤ÆÁ´Á³»È¤¤¤³¤Ê¤»¤Æ¤¤¤Þ¤»¤ó¤Ç¤·¤¿¡£ ²¿Å٥ޥ˥奢¥ë¤òÆÉ¤ó¤Ç¤â¡¢$*¤È$<¤È$@¤Î°ã¤¤¤¬³Ð¤¨¤é¤ì¤Ê¤«¤Ã¤¿¤ê¡Ä¡ÊºÐ¤«¤ÊTT¡Ë P/ECE³«È¯´Ä¶­¤Îmake¤°¤é¤¤¤¬¡¢ËͤˤϤÁ¤ç¤¦¤É¤¤¤¤¤«¤âÃΤì¤Þ¤»¤ó¡£ ¤µ¤Æ¡¢P/ECE³«È¯´Ä¶­¤Îmake¤ò»È¤Ã¤Æ¤¤¤Æ¡¢¤Á¤ç¤Ã¤Èµ¤ÉÕ¤¤¤¿¤³¤È¤ò¥á¥â¤·¤Æ¤ª¤­¤Þ¤¹¡£ ------------------------------------------------------------- ¥³¥á¥ó¥È¤Î³«»Ï¤ò¼¨¤¹¡Ö#¡×¤Ï¡¢¹Ô¤ÎÀèÆ¬¤Ë½ñ¤«¤Ê¤±¤ì¤Ð¤¤¤±¤Þ¤»¤ó ------------------------------------------------------------- Î㤨¤Ð¡¢Unix¾å¤Îmake¤Ê¤é¤Ð¡¢¼¡¤Î¤è¤¦¤Ê¥³¥á¥ó¥È¹Ô¤ò½ñ¤¯¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ all: # *** ¤³¤Î¹Ô¤Ï¥³¥á¥ó¥È *** echo "OK!" ¤·¤«¤·P/ECE¤Îmake¤Ç¤Ï¡¢¡Ö# *** ¤³¤Î¹Ô¤Ï¥³¥á¥ó¥È ***¡×¤ò¥³¥Þ¥ó¥É¤È¤·¤Æ¼Â¹Ô¤·¤è¤¦¤È¤·¤Æ¡¢¥¨¥é¡¼¤Ë¤Ê¤ê¤Þ¤¹¡£ VisualC++¤Înmake¤Ç¤â¡¢P/ECE¤Îmake¤Î¾ì¹ç¤ÈƱ¤¸¤è¤¦¤Ë¡¢¥¨¥é¡¼¤Ë¤Ê¤ê¤Þ¤¹¡£ ¤Ç¤Ï¡¢Unix¾å¤Îmake¤Ç¤Ï¡¢¤Ê¤¼¥¨¥é¡¼¤Ë¤Ê¤é¤Ê¤«¤Ã¤¿¤Î¤Ç¤·¤ç¤¦¤«¡© Unix¤Ç¤Ï¡¢¡Ö#¡×¤³¤Îʸ»ú¤¬¥á¥¤¥¯¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ë¥³¥á¥ó¥È³«»Ïʸ»ú¤Ç¤¢¤ë¤ÈƱ»þ¤Ë¡¢ ¥·¥§¥ë¤ËÂФ¹¤ë¥³¥á¥ó¥È³«»Ïʸ»ú¤Ç¤â¤¢¤ë¤«¤é¤Ç¤¹¡£ Unix¾å¤Îmake¤â¡¢¡Ö# *** ¤³¤Î¹Ô¤Ï¥³¥á¥ó¥È ***¡×¤ò¥³¥Þ¥ó¥É¤È¤·¤Æ¼Â¹Ô¤·¤è¤¦¤È¤·¤Þ¤¹¤¬¡¢ ¥³¥Þ¥ó¥É¤Î¼Â¹Ô¤òÃç²ð¤¹¤ë¥·¥§¥ë¤¬¡¢¡Ö#¡×¤³¤Îʸ»ú°Ê¹ß¤ò¥³¥á¥ó¥È¤È¸«¤Ê¤·¤Æ¼Î¤Æ¤Æ¤¯¤ì¤ë¤è¤¦¤Ç¤¹¡£ ¤Ä¤Þ¤ê¡¢Unix¾å¤Îmake¤Ç¥¨¥é¡¼¤Ê¤é¤Ê¤«¤Ã¤¿¤Î¤Ï¡¢¤¿¤Þ¤¿¤Þ¡¢¤È¸À¤¨¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡£ ¡Ê¡Ö#¡×¤¬¹Ô¤ÎÀèÆ¬¤Ë¤Ê¤±¤ì¤Ð¤¤¤±¤Ê¤¤¤Ã¤Æ¡¢P/ECE¤Îmake¤Ç¥¨¥é¡¼¤ËÁø¶ø¤¹¤ë¤Þ¤ÇÃΤê¤Þ¤»¤ó¤Ç¤·¤¿...(^^;¡Ë ¾å¤ÎÎã¤òÀµ¤·¤¯½ñ¤­Ä¾¤¹¤È¡¢¼¡¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£ all: # *** ¤³¤Î¹Ô¤Ï¥³¥á¥ó¥È *** echo "OK!" ¤Ê¤ó¤È¤Ê¤¯¸«¤Å¤é¤¤¤Ç¤¹¤¬¡¢»ÅÊý¤¬¤¢¤ê¤Þ¤»¤ó¡£ ¤¢¤ë¤¤¤Ï¼¡¤Î¤è¤¦¤Ê¼êÃʤǡ¢¹Ô¤ÎÅÓÃæ¤«¤é¥³¥á¥ó¥È¤ò»Ï¤á¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¤¬¡¢¤³¤³¤Þ¤Ç¤ä¤ëɬÍפϤʤµ¤½¤¦¡£ all: cmd /c rem *** ¤³¤Î¹Ô¤Ï¥³¥á¥ó¥È *** echo "OK!" ¤Ê¤ª¡¢°Í¸´Ø·¸¹Ô¤Ë´Ø¤·¤Æ¤Ï¡¢¹Ô¤ÎÅÓÃæ¤«¤é¡Ö#¡×¤Ç¥³¥á¥ó¥È¤ò»Ï¤á¤Æ¤âÂç¾æÉפǤ¹¡£ ¼¡¤ÎÎã¤Ï¡¢P/ECE¤Îmake¡¢nmake¡¢Unix¾å¤Îmake¤Î¤¤¤º¤ì¤Ç¤â¡¢Àµ¤·¤¯Æ°ºî¤·¤Þ¤¹¡£ all: # *** ¤³¤ÎÉôʬ¤Ï¥³¥á¥ó¥È *** echo "OK!" ---------------------------------------------------------------------- Ê̤Υե©¥ë¥À¤Ë¤¢¤ë¥á¥¤¥¯¥Õ¥¡¥¤¥ë¤ò¼Â¹Ô¤¹¤ë¤Ë¤Ï¡¢-C¥ª¥×¥·¥ç¥ó¤ò»È¤¤¤Þ¤¹ ---------------------------------------------------------------------- Unix¾å¤Îmake¤Ê¤é¡¢¼¡¤Î¤è¤¦¤Ë¤¹¤ë¤È¤³¤í¡¢ cd lib; make all P/ECE¤Îmake¤Ç¤Ï¥¨¥é¡¼¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¤¤Þ¤¹¡£ Windows¤Î¥·¥§¥ë¤Ï¡¢¡Ö;¡×¤ò»È¤Ã¤¿¥Þ¥ë¥Á¥¹¥Æ¡¼¥È¥á¥ó¥È¤ËÂбþ¤·¤Æ¤¤¤Ê¤¤¤¿¤á¤Ç¤¹¡£ P/ECE¤Îmake¤Ç¡¢¾å¤ÎÎã¤ÈƱ¤¸¤³¤È¤ò¹Ô¤¦¤Ë¤Ï¡¢ make -Clib all ¤È½ñ¤­¤Þ¤¹¡£ -C¥ª¥×¥·¥ç¥ó¤ò»È¤¦¤È¡¢»ØÄꤵ¤ì¤¿¥Õ¥©¥ë¥À¤Ø°Üư¤·¤Æ¤«¤é¥á¥¤¥¯¥Õ¥¡¥¤¥ë¤òÆÉ¤ß¹þ¤ß¤Þ¤¹¡£ -C¥ª¥×¥·¥ç¥ó¤Ï¡¢Unix¾å¤Îmake¤Ë¤Ï¤Ê¤¤¡¢P/ECE³«È¯´Ä¶­¤Îmake¤ËÆÃÍ­¤Î¥ª¥×¥·¥ç¥ó¤ß¤¿¤¤¤Ç¤¹¡£ * Fri May 26 00:00:00 JST 2002 Naoyuki Sawa - ´Ø¿ô¥¢¥É¥ì¥¹¤ò¥·¥ó¥Ü¥ëÄêµÁ¤·¤Æ¸Æ¤Ó½Ð¤¹ ¡Ö´Ø¿ô¥Ý¥¤¥ó¥¿·¿¤Ë¥­¥ã¥¹¥È¤·¤Æ¤Ï¤¤¤±¤Ê¤¤¡×¤Î²ó¡Ê°Ê²¼¡¢Á°²ó¤Èά¤·¤Þ¤¹¡Ë¤Î³¤­¤Ç¤¹¡£ ÀäÂÐ¥¢¥É¥ì¥¹call¤ò¹Ô¤¦¤Ë¤Ï¡¢¥¤¥ó¥é¥¤¥ó¥¢¥»¥ó¥Ö¥é¤ò»È¤Ã¤Æ¡¢¼¡¤Î¤è¤¦¤Ë¡§ asm("xld.w %r1, 0x00c034aa"); asm("call %r1"); ½ñ¤«¤Ê¤±¤ì¤Ð¤¤¤±¤Ê¤¤¡¢¤È¤¤¤¦¤Î¤¬¡¢Á°²ó¤Î·ëÏÀ¤Ç¤·¤¿¡£ ¤Á¤Ê¤ß¤Ë0x00c034aa¤Ï¡¢BIOS 1.18¤Ë¤ª¤±¤ë¡¢pceLCDTrans()¤Î¥¢¥É¥ì¥¹¤Ç¤¹¡£ ´Ø¿ô¥¢¥É¥ì¥¹¤òľÀÜ¥×¥í¥°¥é¥àÃæ¤Ëµ­½Ò¤¹¤ë¤È¡¢¥×¥í¥°¥é¥à¤¬ÆÉ¤ß¤Å¤é¤¯¤Ê¤ê¤Þ¤¹¡£ ¾å¤Î¥³¡¼¥É¤Ï¡¢¼¡¤Î¤è¤¦¤Ë½ñ¤±¤ì¤Ð¡¢ÆÉ¤ß¤ä¤¹¤¯¤Ê¤ë¤Ç¤·¤ç¤¦¡£ asm("xld.w %r1, pceLCDTrans"); asm("call %r1"); ¤½¤³¤Ç¤Þ¤º¤Ï¡¢¥«¡¼¥Í¥ëÆâ¤Î´Ø¿ô¥¢¥É¥ì¥¹°ìÍ÷¤òÄêµÁ¤·¤¿¡¢.h¥Õ¥¡¥¤¥ë¤òÍѰդ·¤Þ¤¹¡£ ¥«¡¼¥Í¥ëÆâ¤Î´Ø¿ô¥¢¥É¥ì¥¹¤Ï¡¢¡Öc:\usr\piece\sysdev\pcekn\pcekn.sym¡×¤«¤éÆÀ¤é¤ì¤Þ¤¹¤Î¤Ç¡¢ ¥¹¥¯¥ê¥×¥È¤ò»È¤Ã¤Æ.h¥Õ¥¡¥¤¥ë¤ËÊÑ´¹¤·¤Þ¤·¤ç¤¦¡£ pcekn.sym¤ò.h¥Õ¥¡¥¤¥ë¤ËÊÑ´¹¤¹¤ë¥¹¥¯¥ê¥×¥È¤Ï¤³¤Á¤é http://www.piece-me.org/archive/pcekn_sym.sed ¡Ê¢¨Á°²ó¤Î¥µ¥ó¥×¥ë¥×¥í¥°¥é¥à¤Î¤ª¤Þ¤±¥Õ¥©¥ë¥À¤ËÆþ¤Ã¤Æ¤¿¤Î¤È¡¢Æ±¤¸¤â¤Î¤Ç¤¹¡Ë »È¤¤Êý¤Ï¡¢¼¡¤ÎÄ̤ê¤Ç¤¹¡§ sed -nf pcekn_sym.sed c:\usr\piece\sysdev\pcekn\pcekn.sym > pcekn_sym.h ¡Ê¢¨P/ECE³«È¯´Ä¶­¤ò¡Öc:\usr\piece¡×°Ê³°¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤·¤¿¾ì¹ç¤Ï¡¢Å¬µ¹Êѹ¹¡Ë ¤³¤ì¤Ç¡¢¥«¡¼¥Í¥ëÆâ¤Î´Ø¿ô¥¢¥É¥ì¥¹°ìÍ÷¤òÄêµÁ¤·¤¿¡¢pcekn_sym.h¥Õ¥¡¥¤¥ë¤¬ºîÀ®¤µ¤ì¤Þ¤¹¡£ °Ê²¼¤Ë¡¢pcekn_sym.h¤Î°ìÉô¤ò¼¨¤·¤Þ¤¹¡§ #define pcekn_BootEntry00 0x00c02004 #define pcekn_BootEntry 0x00c02078 #define pcekn_pceGUID 0x00c02048 #define pcekn_InitVector 0x00c02208 #define pcekn_pceVectorSetTrap 0x00c021aa #define pcekn_pceVectorSetKs 0x00c021d2 #define pcekn_UnusedTrapVector 0x00c021fa #define pcekn_UnusedKsVector 0x00c021fe ¥·¥ó¥Ü¥ë̾¤ÎÀèÆ¬¤Ë¡Öpcekn_¡×¤È¤¤¤¦¥×¥ì¥Õ¥£¥¯¥¹¤òÉÕ¤±¤ÆÄêµÁ¤¹¤ë¤³¤È¤Ë¤·¤Þ¤·¤¿¡£ ¤³¤Î¤è¤¦¤Ë¤·¤¿Íýͳ¤Ï¡¢¥·¥ó¥Ü¥ë̾¤ò¤½¤Î¤Þ¤Þ»È¤¦¤È¡¢¸ø³«¤µ¤ì¤Æ¤¤¤ëAPI¤Î̾Á°¤È ¤Ö¤Ä¤«¤Ã¤Æ¤·¤Þ¤¦¤³¤È¤¬¤¢¤ë¤«¤é¤Ç¤¹¡£¡ÊpceVectorSetTrap¤äpceVectorSetKs¤¬¤½¤¦¤Ç¤¹¡Ë ¤µ¤Æ¡¢pcekn_sym.h¤ò»È¤Ã¤Æ¡¢¼¡¤Î¤è¤¦¤Ë½ñ¤¯¤³¤È¤¬½ÐÍè¤ë¤Ç¤·¤ç¤¦¤«¡§ #include "pcekn_sym.h" ¡Êά¡Ë asm("xld.w %r1, pcekn_pceLCDTrans"); asm("call %r1"); ¼Â¤Ï¡¢¤³¤Î¤è¤¦¤Ë½ñ¤¯¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó¡£ ¡Öpcekn_pceLCDTrans¡×¤È¤¤¤¦¥·¥ó¥Ü¥ë¤Ï¡¢C¥×¥ê¥×¥í¥»¥Ã¥µ¤Ë¤è¤Ã¤ÆÅ¸³«¤µ¤ì¤ë¤Î¤Ç¤¹¤¬¡¢ asm("¡Á")ʸ¤ÎÃæ¤Ïñ¤Ê¤ëʸ»úÎó¤È¸«¤Ê¤µ¤ì¤ë¤è¤¦¤Ç¡¢Å¸³«¤ÎÂоݳ°¤À¤«¤é¤Ç¤¹¡£ pcekn_pceLCDTrans¤Ï¡¢C¥×¥ê¥×¥í¥»¥Ã¥µ¤ÎÃʳ¬¤ÇŸ³«¤µ¤ì¤Ê¤±¤ì¤Ð¤¤¤±¤Þ¤»¤ó¡£ ¤½¤³¤Ç¡¢¼¡¤Î¤è¤¦¤Ê´Ø¿ô¤òÍѰդ·¤Þ¤¹¡£ int call(int addr) { asm("call %r12"); } S1C33¤Î»ÅÍͤǤϡ¢´Ø¿ô¤Ø¤Î°ú¿ô¤Ï¡¢%r12,%r13,%r14,%r15,¤ª¤è¤Ó¥¹¥¿¥Ã¥¯¤ËÅϤ¹¤³¤È¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£ °ú¿ôaddr¤Ï´û¤Ë%r12¥ì¥¸¥¹¥¿¤ËÆþ¤Ã¤Æ¤¤¤ë¤Î¤Ç¡¢¤½¤Î¤Þ¤Þ¡Öcall %r12¡×¤È¤¹¤ì¤Ð¤¤¤¤¤Î¤Ç¤¹¡£ ¤Þ¤¿¡¢S1C33¤Î»ÅÍͤǤϡ¢Ìá¤êÃͤ¬¤¢¤ë¾ì¹ç¡¢%r10,¤ª¤è¤Ó%r11¥ì¥¸¥¹¥¿¤ËÊÖ¤¹¤³¤È¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£ ¡Öcall %r12¡×¤Î¸Æ¤Ó½Ð¤·À褫¤é¤ÎÌá¤êÃͤϡ¢¤½¤Î¤Þ¤Þcall()´Ø¿ô¤Î¸Æ¤Ó½Ð¤·¸µ¤ØÊÖ¤µ¤ì¤ë¤Î¤Ç¤¹¡£ {{¤Á¤ç¤Ã¤È´ó¤êÆ»¡¢C¸À¸ì¤ÎÏà call()´Ø¿ô¤ÎÌá¤êÃͤϡ¢¾åµ­¤Î¤è¤¦¤Êư¤­¤Ë¤è¤Ã¤Æ¡¢Ä¾ÀÜ%r10¥ì¥¸¥¹¥¿¤Ë³ÊǼ¤µ¤ì¤ë¤¿¤á¡¢ int¤òÊÖ¤¹´Ø¿ô¤Ç¤¢¤ë¤Ë¤â¤«¤«¤ï¤é¤º¡¢returnÌ¿Î᤬¤¢¤ê¤Þ¤»¤ó¡£ C¸À¸ì¤Î¥×¥í¥°¥é¥à¤È¤·¤Æ¤Ï´Ö°ã¤Ã¤Æ¤¤¤ë¤è¤¦¤Ë¸«¤¨¡¢¥³¥ó¥Ñ¥¤¥é¤¬·Ù¹ð¤«¥¨¥é¡¼¤ò½Ð¤·¤½¤¦¤Ê¤â¤Î¤Ç¤¹¤¬¡¢ ¼ÂºÝ¤Ë¤Ï¡¢¥³¥ó¥Ñ¥¤¥é¤Ï·Ù¹ð¤â¥¨¥é¡¼¤â½Ð¤·¤Þ¤»¤ó¡£ ¤³¤Î¾ì¹ç¤Ï¡¢·Ù¹ð¤â¥¨¥é¡¼¤â½Ð¤Ê¤¯¤Æ¤¦¤ì¤·¤¤¤Î¤Ç¤¹¤¬¡¢¤Ê¤¼½Ð¤Ê¤«¤Ã¤¿¤Î¤Ç¤·¤ç¤¦¤«¡© ¡Ö¥×¥í¥°¥é¥ß¥ó¥°¸À¸ì£ÃÂ裲ÈǡפòÆÉ¤ßľ¤·¤Æ¤ß¤¿¤È¤³¤í¡¢¤É¤¦¤ä¤é¤³¤ì¤Ï¡¢C¸À¸ì¤È¤·¤ÆÀµ¤·¤¤¤è¤¦¤Ç¤¹¡£ ¡ØÃͤòÊÖ¤¹´Ø¿ô¤Ë¡Öreturn ¼°¡×¤¬¤Ê¤«¤Ã¤¿¤ê¡¢Ã±¤Ê¤ë¡Öreturn¡×¤ÇÈ´¤±¤¿¤ê¤¹¤ë¤Î¤Ï¡¢Ê¸Ë¡Åª¤Ë¤ÏÀµ¤·¤¤¡Ù ¤È¤¤¤¦¤³¤È¤¬¤ï¤«¤ê¤Þ¤·¤¿¡£¡Ê1.7¡Ö´Ø¿ô¡×¤Î¡¢31¡Á32¥Ú¡¼¥¸¤¢¤¿¤ê¤Ç¤¹¡Ë Î㤨¤Ð¼¡¤Î¤è¤¦¤Ê´Ø¿ô¤Ï¡¢¤¤¤º¤ì¤âC¸À¸ì¤Îʸˡ¤È¤·¤Æ¤ÏÀµ¤·¤¤¤Î¤Ç¤¹¡£ int sum(int a, int b) { } /* ¥´¥ß¤òÊÖ¤¹ */ int sum(int a, int b) { return; } /* ¥´¥ß¤òÊÖ¤¹ */ int sum(int a, int b) { return a + b; } /* Àµ¤·¤¤·ë²Ì¤òÊÖ¤¹ */ ¤¦¡Á¤à¡¢¤³¤ì¤ÏÃΤê¤Þ¤»¤ó¤Ç¤·¤¿¡£¸È©¤Ê¥³¡¼¥Ç¥£¥ó¥°¤Î¼êÃʤȤ·¤Æ¡¢»È¤¨¤½¤¦¤À¡Ä(^^; ¤Á¤Ê¤ß¤ËC++¸À¸ì¤Ç¤Ï¡¢Ê¸Ë¡¤Î»ÅÍͤ¬¸·¤·¤¯¤Ê¤Ã¤Æ¤¤¤ë¤Î¤Ç¡¢¥¨¥é¡¼¤Ë¤Ê¤ê¤Þ¤¹¡£ }}´ó¤êÆ»½ªÎ» call()´Ø¿ô¤òÍøÍѤ·¤Æ¡¢pceLCDTrans()¤ò¸Æ¤Ó½Ð¤¹¤Ë¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¤·¤Þ¤¹¡£ call(pcekn_pceLCDTrans); ºÇŬ²½¥ª¥×¥·¥ç¥ó¤ä¡¢¤½¤Î¾¤Î¥³¥ó¥Ñ¥¤¥ë¥ª¥×¥·¥ç¥ó¤òÉÕ¤±¤¿¤ê³°¤·¤¿¤ê¤·¤Æ»î¤·¤Æ¤ß¤¿¤È¤³¤í¡¢ ¤É¤Î¾ì¹ç¤Ë¤â¡¢Àµ¤·¤¯Æ°¤¯¤è¤¦¤Ç¤¹¡£ º£²ó¤Î¥µ¥ó¥×¥ë¥×¥í¥°¥é¥à¤Ï¤³¤Á¤é http://www.piece-me.org/archive/direct2-20020526.zip * Mon May 20 00:00:00 JST 2002 Naoyuki Sawa - ¥Õ¥¡¥¤¥ë¤«¤é°ìʸ»ú¤Å¤ÄÆÉ¤ß¹þ¤à P/ECE¤Ë¤Ï¡¢¥Õ¥¡¥¤¥ë¤«¤é¥Ç¡¼¥¿¤òÆÉ¤ß¹þ¤àAPI¡ÖpceFileReadSct()¡×¤¬¤¢¤ê¤Þ¤¹¡£ ¤³¤ÎAPI¤Î·çÅÀ¤È¤·¤Æ¡¢ ¥Õ¥¡¥¤¥ë¤Î£´£Ë£Âñ°Ì¤Î°ÌÃÖ¤«¤é¤·¤«ÆÉ¤ß¹þ¤ß³«»Ï¤Ç¤­¤Ê¤¤ ¤È¤¤¤¦ÅÀ¤¬µó¤²¤é¤ì¤Þ¤¹¡£Î㤨¤Ð¡¢ ¡Ö¥Õ¥¡¥¤¥ë¤ÎÀèÆ¬¤«¤é8191(=8KB-1)¥Ð¥¤¥ÈÌܤΥǡ¼¥¿¤ò1¥Ð¥¤¥È¤À¤±»È¤¤¤¿¤¤¡×¾ì¹ç¡¢ ¤¤¤Ã¤¿¤ó¡¢¥Ð¥Ã¥Õ¥¡¤Ë4096¥Ð¥¤¥ÈÌÜ¡Á8191¥Ð¥¤¥ÈÌܤΥǡ¼¥¿¤òÆÉ¤ß¹þ¤ó¤Ç¡¢ ¥Ð¥Ã¥Õ¥¡¤ÎÃæ¤Î4095¥Ð¥¤¥ÈÌܤò¼è¤ê½Ð¤¹¡¢¤Ê¤ó¤Æ¤³¤È¤ò¤·¤Ê¤±¤ì¤Ð¤¤¤±¤Þ¤»¤ó¡£ pceFileReadSct(&fa, buffer, 8191 / 4096, 4096); data = buffer[4095]; »þ´ÖŪ¤Ë¤â(1¥Ð¥¤¥È»È¤¤¤¿¤¤¤À¤±¤Ê¤Î¤Ë¡¢4KB¤ÎžÁ÷¤ò¹Ô¤Ã¤Æ¤¤¤Þ¤¹)¡¢ ¶õ´ÖŪ¤Ë¤â(1¥Ð¥¤¥È»È¤¤¤¿¤¤¤À¤±¤Ê¤Î¤Ë¡¢4KB¤Î¥Ð¥Ã¥Õ¥¡¤¬É¬ÍפǤ¹)¡¢Èó¾ï¤Ë¥à¥À¤Ç¤¹¡£ ¤½¤³¤Ç¡¢pceFileReadSct()¤Ë¤Ï¡¢¤³¤Î·çÅÀ¤òÄ¢¾Ã¤·¤Ë¤¹¤ë¡¢ÁÇÀ²¤é¤·¤¤µ¡Ç½¤¬È÷¤ï¤Ã¤Æ¤¤¤Þ¤¹¡£ ÆÉ¤ß¹þ¤à¥Ð¥Ã¥Õ¥¡¤Î¥¢¥É¥ì¥¹¤ËNULL¤ò»ØÄꤹ¤ë¤È¡¢¥Õ¥é¥Ã¥·¥å¥á¥â¥ê¾å¤Ç¤Î¥»¥¯¥¿¥¢¥É¥ì¥¹¤ò ľÀÜ¡¢ÆÀ¤ë¤³¤È¤¬½ÐÍè¤ë¤Î¤Ç¤¹¡£¸å¤Ï¡¢¥Õ¥é¥Ã¥·¥å¥á¥â¥ê¾å¤Î¥Ç¡¼¥¿¤ËľÀÜ¥¢¥¯¥»¥¹¤¹¤ì¤Ð£Ï£Ë¡£ ¤³¤Îµ¡Ç½¤òÍøÍѤ·¤Æ¡¢¥Õ¥¡¥¤¥ë¤«¤é°ìʸ»ú¤Å¤ÄÆÉ¤ß¹þ¤à¥µ¥ó¥×¥ë¥×¥í¥°¥é¥à¤òºî¤Ã¤Æ¤ß¤Þ¤·¤¿¡£ http://www.piece-me.org/archive/read-20020519.zip ¥Õ¥é¥Ã¥·¥å¥á¥â¥ê¾å¤Î¥Ç¡¼¥¿¤ËľÀÜ¥¢¥¯¥»¥¹¤Ç¤­¤ë¤³¤Îµ¡Ç½¡¢¤¹¤´¤¯µ¤¤ËÆþ¤Ã¤Æ¤Þ¤¹¡£ À߷׼ԤαÑÃǤËÇï¼ê¡ª º£²ó¤Î¥Í¥¿¤Ï¡¢¡Ö"P/ECE" Official WebPage¡×¤Î¡Ö³«È¯¼Ô·Ç¼¨Èġפè¤ê夭¤Þ¤·¤¿¡£ * Fri May 17 22:30:00 JST 2002 Naoyuki Sawa - ´Ø¿ô¥Ý¥¤¥ó¥¿·¿¤Ë¥­¥ã¥¹¥È¤·¤Æ¤Ï¤¤¤±¤Ê¤¤ Á°²ó¤Î¼Â¸³¤Ç¡¢InitFlashAcc()¤òľÀÜ¥¢¥É¥ì¥¹»ØÄꤷ¤Æ¡¢¸Æ¤Ó½Ð¤·¤Þ¤·¤¿¡£ ¤½¤Î¤È¤­µ¤ÉÕ¤¤¤¿¤Î¤Ç¤¹¤¬¡¢pcc33(P/ECE³«È¯´Ä¶­ÉÕ°¤Î£Ã¥³¥ó¥Ñ¥¤¥é)¤Ç¡¢ API¥¢¥É¥ì¥¹¤òľÀÜ»ØÄꤷ¤Æ¸Æ¤Ó½Ð¤¹¾ì¹ç¡¢Èù̯¤Ê¥³¡¼¥Ç¥£¥ó¥°¤Î°ã¤¤¤È ºÇŬ²½¤Î̵ͭ¤Ë¤è¤Ã¤Æ¡¢´üÂÔÄ̤ê¤Î·ë²Ì¤Ë¤Ê¤é¤Ê¤¤¤³¤È¤¬¤¢¤ë¤è¤¦¤Ç¤¹¡£ ·ëÏÀ¤«¤é¸À¤¤¤Þ¤¹¤È¡¢ ¡Ö´Ø¿ô¤Î¥¢¥É¥ì¥¹¤ò¼¨¤¹¿ôÃͤò¡¢´Ø¿ô¥Ý¥¤¥ó¥¿·¿¤Ë¥­¥ã¥¹¥È¤·¤Æ¤Ï¤¤¤±¤Ê¤¤¡× ¤ß¤¿¤¤¤Ç¤¹¡£ ¸·Ì©¤Ê£Ã¸À¸ì¤Î»ÅÍͤȤ·¤Æ¤Ï¡¢¤³¤ì¤ÏÀµ¤·¤¯Æ°¤«¤Ê¤¯¤ÆÀµ²ò¤Ê¤Î¤«¤âÃΤì¤Þ¤»¤ó¤¬¡¢ Á°½Ò¤ÎÄ̤ꡢÈù̯¤Ê¥³¡¼¥Ç¥£¥ó¥°¤Î°ã¤¤¤äºÇŬ²½¥ª¥×¥·¥ç¥ó¤Î̵ͭ¤Ë¤è¤Ã¤Æ¡¢ ư¤¤¤¿¤êư¤«¤Ê¤«¤Ã¤¿¤ê¤¹¤ë¤Î¤Ç¡¢¤Á¤ç¤Ã¤È¤Ä¤Þ¤Å¤­¤Þ¤·¤¿¡£ ¤½¤ì¤Ç¤Ï¡¢Îã¤òµó¤²¤Þ¤¹¡£ pceLCDTrans() API¤Î¥¢¥É¥ì¥¹¤Ï¡¢BIOS 1.18¤Ç¤Ï¡¢0x00c034aa¤È¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£ ¤³¤Î¥¢¥É¥ì¥¹¤òľÀܸƤӽФ¹£Ã¥×¥í¥°¥é¥à¤Ï¡¢Ä¾´¶Åª¤Ë¤Ï¼¡¤Î¤è¤¦¤Ë¤Ê¤ë¤Ç¤·¤ç¤¦¡£ <Îã1.c> ((void (*)())0x00c034aa)(); ¤È¤³¤í¤¬¤³¤ì¤Ï¡¢ºÇŬ²½¤Î̵ͭ¤Ë´Ø¤ï¤é¤º¡¢Àµ¤·¤¯Æ°ºî¤·¤Þ¤»¤ó¡£ pcc33¤Ë-b¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¤Æ¡¢£Ã¥³¥ó¥Ñ¥¤¥é¤¬À¸À®¤·¤¿¥¢¥»¥ó¥Ö¥é¥½¡¼¥¹¤ò ¸«¤Æ¤ß¤ë¤È¡¢¼¡¤Î¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£ <Îã1.ps> xcall 0x00c034aa °ì¸«¡¢Àµ¤·¤¯¸«¤¨¤Þ¤¹¤¬¡¢¼Â¤ÏÀµ¤·¤¯¤Ê¤¤¤Î¤Ç¤¹¡£ C33(P/ECE¤ÎCPU)¤Ç¤Ï¡¢Ä¾Ãͤò°ú¿ô¤Ë¼è¤ëcallÌ¿Îá¤Ï¡¢ÁêÂÐ¥¢¥É¥ì¥¹call¤Ç¤¹¡£ ¤Ä¤Þ¤ê¤³¤ì¤Ï¡¢¡Ö¤³¤ÎÌ¿Îá¤Î¼¡¤Î¥¢¥É¥ì¥¹¡Ü0x00c034aa¡×¤Ø¤ÎcallÌ¿Îá¤Ê¤Î¤Ç¤¹¡£ ¥³¥ó¥Ñ¥¤¥é¤«¥¢¥»¥ó¥Ö¥é¤¬¡¢0x00c034aa¤ÏÀäÂÐ¥¢¥É¥ì¥¹¤À¤Èǧ¼±¤·¤Æ¤¤¤ì¤Ð¡¢ ÁêÂÐ¥¢¥É¥ì¥¹¤Ø¤ÎÊÑ´¹¤¬´üÂԤǤ­¤ë¤Î¤Ç¤¹¤¬¡¢¤½¤¦¤Ï¤Ê¤Ã¤Æ¤¤¤Ê¤¤¤è¤¦¤Ç¤¹¡£ C33¤ÇÀäÂÐ¥¢¥É¥ì¥¹call¤ò¹Ô¤¦¤Ë¤Ï¡¢¥¢¥É¥ì¥¹Ãͤò¤¤¤Ã¤¿¤ó¥ì¥¸¥¹¥¿¤ËÂåÆþ¤·¡¢ ¥ì¥¸¥¹¥¿¤ò²ð¤·¤Æcall¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£¤½¤³¤Ç¡¢¼¡¤Î¤è¤¦¤Ë½ñ¤¤¤Æ¤ß¤Þ¤¹¡£ <Îã2.c> void (*fn)() = (void (*)())0x00c034aa; fn(); ¤¹¤ë¤È¡¢¤ª¤ª¤è¤½´üÂÔÄ̤ê¤Ë¡¢¼¡¤Î¤è¤¦¤Ê¥¢¥»¥ó¥Ö¥é¥½¡¼¥¹¤¬À¸À®¤µ¤ì¡¢ <Îã2.ps> xld.w [%sp+4],%r0 xld.w %r10,0x00c034aa xld.w [%sp],%r10 xld.w %r0,[%sp] call %r0 Àµ¤·¤¯Æ°ºî¤·¤Þ¤¹¡£¤É¤¦¤ä¤é¡¢¥¢¥É¥ì¥¹¤òľÀÜ»ØÄꤷ¤ÆAPI¤ò¸Æ¤Ó½Ð¤¹¤Ë¤Ï¡¢ ´Ø¿ô¥Ý¥¤¥ó¥¿·¿¤ÎÊÑ¿ô¤Ë¥¢¥É¥ì¥¹¤òÂåÆþ¤·¤Æ¤«¤é¡¢¸Æ¤Ó½Ð¤»¤Ð¤¤¤¤¤è¤¦¤Ç¤¹¡£ ¤È¤³¤í¤¬¡ª¡ª pcc33¤ËºÇŬ²½¥¹¥¤¥Ã¥Á-O2¤òÉÕ¤±¤ë¤È¡¢¤³¤ì¤âÀµ¤·¤¯Æ°¤«¤Ê¤¯¤Ê¤ê¤Þ¤¹¡£ -O2¤òÉÕ¤±¤Æ¥³¥ó¥Ñ¥¤¥ë¤·¤¿¾ì¹ç¤Î¥¢¥»¥ó¥Ö¥é¥½¡¼¥¹¤Ï¡¢¤³¤¦¤Ê¤ê¤Þ¤¹¡£ <Îã2.ps ºÇŬ²½> xcall 0x00c034aa ¤´Í÷¤ÎÄ̤ꡢÎã1¤ÈƱ¤¸¥¢¥»¥ó¥Ö¥é¥½¡¼¥¹¤¬À¸À®¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ ¥³¥ó¥Ñ¥¤¥é¤ÎºÇŬ²½¤Ë¤è¤ê¡¢ÊÑ¿ô¤Ø¤ÎÂåÆþ¤¬¾Êά¤µ¤ì¤Æ¤·¤Þ¤Ã¤¿¤«¤é¤Ç¤¹¡£ ¢¨¤½¤â¤½¤â£Ã¸À¸ì»ÅÍͤËÈ¿¤¹¤ë¤³¤È¤ò¤ä¤Ã¤Æ¤¤¤ë¤Î¤Ç¶¯¤¯¤Ï¸À¤¨¤Ê¤¤¤Î¤Ç¤¹¤¬¡¢ ¢¨¤³¤ÎºÇŬ²½¤ÏÌäÂê¤À¤È»×¤¤¤Þ¤¹¡£ ¢¨Á°½Ò¤ÎÄ̤ꡢC33¤Ç¤Ï¡Öcall ľÃ͡פȡÖcall ¥ì¥¸¥¹¥¿¡×¤Î¤Õ¤ë¤Þ¤¤¤Ï¡¢ ¢¨Á´¤¯°Û¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£ºÇŬ²½¤Ë¤è¤Ã¤Æ¡¢ ¢¨ ¡ÖľÃÍ -> ÊÑ¿ô; ÊÑ¿ô -> ¥ì¥¸¥¹¥¿; call ¥ì¥¸¥¹¥¿¡× ¢¨¤È¤¤¤¦½èÍý¤ò¡¢ ¢¨ ¡Öcall ľÃÍ¡× ¢¨¤ËÃÖ¤­´¹¤¨¤ë¤³¤È¤ÏÀäÂФ˽ÐÍè¤Ê¤¤¤Ï¤º¤Ç¤¹¡£¤·¤«¤·¡¢¼Â¸³·ë²Ì¤ò¸«¤ë¸Â¤ê¡¢ ¢¨pcc33¡Ê¤¬¸Æ¤Ó½Ð¤¹gcc33¡Ë¤Ï¡¢¤³¤ÎÃÖ¤­´¹¤¨¤ò¹Ô¤Ã¤Æ¤·¤Þ¤¦¤è¤¦¤Ç¤¹¡£ ·ë¶É¡¢ºÇŬ²½¤Î̵ͭ¤Ë¤è¤é¤ºÀµ¤·¤¯Æ°ºî¤µ¤»¤ë¤¿¤á¤Ë¤Ï¡¢¥¤¥ó¥é¥¤¥ó¥¢¥»¥ó¥Ö¥é¤Ç ½ñ¤¯¤·¤«¤Ê¤¤¤è¤¦¤Ç¤¹¡£ <Îã3.c> asm("xld.w %r1, 0x00c034aa"); asm("call %r1"); À¸À®¤µ¤ì¤¿¥¢¥»¥ó¥Ö¥é¥½¡¼¥¹¤Ï¡¢ÅöÁ³¡¢¼¡¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£ <Îã3.asm> xld.w %r1, 0x00c034aa call %r1 ºÇŬ²½¥¹¥¤¥Ã¥Á-O2¤òÉÕ¤±¤Æ¤â¡¢¤â¤Á¤í¤ó¡¢·ë²Ì¤ÏÊѤï¤ê¤Þ¤»¤ó¡£ <Îã3.asm ºÇŬ²½> xld.w %r1, 0x00c034aa call %r1 º£²ó¤Î¼Â¸³¥×¥í¥°¥é¥à¤Ï¤³¤Á¤é http://www.piece-me.org/archive/direct-20020517.zip * Thu May 16 12:00:00 JST 2002 Naoyuki Sawa - ¥Õ¥é¥Ã¥·¥å¥á¥â¥êAPI¤ò¥à¥ê¥ä¥ê»È¤¦ P/ECE¤¦¤¿¤ï¤ì¤ë¤â¤Î·×²è¤Î°ì´Ä¤Ç¡¢¥Õ¥é¥Ã¥·¥å¥á¥â¥ê¤ÎľÀܽñ¤­´¹¤¨¤ò»î¤·¤Þ¤·¤¿¡£ ¤Ê¤¼¤³¤ó¤Ê¤³¤È¤ò»î¤·¤¿¤«¤È¤¤¤¦¤È¡¢Â礭¤Ê²èÁü¥Ç¡¼¥¿¤ò¥Õ¥é¥Ã¥·¥å¥á¥â¥ê¾å¤Ë ÃÖ¤¤¤¿¤Þ¤ÞÍøÍѤ¹¤ë¤¿¤á¤Ë¡¢¼Â¹Ô»þ¤Ë¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥Ç¥Õ¥é¥°¤ò¹Ô¤¦¤¿¤á¤Ç¤¹¡£ ¤µ¤Æ¡¢¥Õ¥é¥Ã¥·¥å¥á¥â¥ê¤òľÀܽñ¤­´¹¤¨¤ë¤¿¤á¤ÎAPI¤È¤·¤Æ¡¢ pceFlashErase()¤ÈpceFlashWrite()¤¬ÍѰդµ¤ì¤Æ¤¤¤Þ¤¹¡£(¤¿¤À¤·Èó¸ø¼°¤Ç¤¹) pceFlashErase()¤ÈpceFlashWrite()¤Ï¡¢piece.h¤ËºÜ¤Ã¤Æ¤¤¤ë¤È¤³¤í¤ò¸«¤ë¤È¡¢ ¥æ¡¼¥¶¡¼¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤«¤é»È¤¨¤ë¤è¤¦¤Ë¸«¤¨¤Þ¤¹¤¬¡¢¼Â¤Ï»È¤¨¤Þ¤»¤ó¡£ ¥«¡¼¥Í¥ë¥µ¡¼¥Ó¥¹¥Ù¥¯¥¿¤ËÅÐÏ¿¤µ¤ì¤Æ¤¤¤Ê¤¤¤«¤é¤Ç¤¹¡£ pceFlashErase()¤ÈpceFlashWrite()¤ò¥«¡¼¥Í¥ë¥µ¡¼¥Ó¥¹¥Ù¥¯¥¿¤ËÅÐÏ¿¤¹¤ë¤¿¤á¤Î InitFlashAcc()¤ÏÄêµÁ¤µ¤ì¤Æ¤¤¤ë(fmacc.c)¤Î¤Ç¤¹¤¬¡¢¤É¤³¤«¤é¤â¸Æ¤Ð¤ì¤Æ¤¤¤Þ¤»¤ó¡£ ¤½¤Î¤¿¤á¡¢pceFlashErase()¤ÈpceFlashWrite()¤ËÂбþ¤¹¤ë¥Ù¥¯¥¿¥¨¥ó¥È¥ê¤Ï¡¢ ¥Ç¥Õ¥©¥ë¥È¤ÎUnusedKsVector()¤ò»Ø¤·¤¿¤Þ¤Þ¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£ UnusedKsVector()¤Ï²¿¤â¤»¤º¤Ë-1¤òÊÖ¤¹´Ø¿ô(pcekn.c)¤Ê¤Î¤Ç¡¢ ¥æ¡¼¥¶¡¼¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬pceFlashErase()¤äpceFlashWrite()¤ò¸Æ¤Ó½Ð¤¹¤È¡¢ ²¿¤â¤»¤º¤Ë-1¤òÊÖ¤¹¤À¤±¤Ê¤Î¤Ç¤¹¡£ BootEntry()½é´ü²½´Ø¿ô(pcekn.c)¤«¤é¡¢³Æ¼ï¥µ¥Ö¥·¥¹¥Æ¥à¤Î½é´ü²½¤¬¸Æ¤Ð¤ì¡¢ ¥«¡¼¥Í¥ë¥µ¡¼¥Ó¥¹¥Ù¥¯¥¿¤¬ÀßÄꤵ¤ì¤Þ¤¹¡£ InitFlashAcc()¤â¤³¤³¤«¤é¸Æ¤Ð¤ì¤ë¤Ù¤­¤À¤È»×¤¦¤Î¤Ç¤¹¤¬¡¢¸Æ¤Ó˺¤ì¤Ç¤·¤ç¤¦¤«¡£ ¤½¤ì¤È¤â¡¢¥Õ¥é¥Ã¥·¥å¥á¥â¥ê¤Î½ñ¤­´¹¤¨¤Ï´í¸±¤Ê¤Î¤Ç¡¢¥æ¡¼¥¶¡¼¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤«¤é ÍøÍѤǤ­¤Ê¤¤¤è¤¦¤Ë¡¢¤ï¤¶¤È¸Æ¤ó¤Ç¤¤¤Ê¤¤¤Î¤Ç¤·¤ç¤¦¤«¡£ ¥Ù¥¯¥¿¥¨¥ó¥È¥ê¤ÏÍѰդµ¤ì¤Æ¤¤¤ë¤È¤³¤í¤ò¸«¤ë¤È¡¢InitFlashAcc()¤Î¸Æ¤Ó˺¤ì¤Î ²ÄǽÀ­¤¬¹â¤¤¤è¤¦¤Ë»×¤¦¤Î¤Ç¤¹¤¬¡Ä¡Ê¤ï¤¶¤È¤À¤Ã¤¿¤é¤´¤á¤ó¤Ê¤µ¤¤¡Ë pceFlashErase()¤ÈpceFlashWrite()¤ò¥æ¡¼¥¶¡¼¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤«¤é»È¤¦¤Ë¤Ï¡¢ ²¿¤È¤«¤·¤ÆInitFlashAcc()¤ò¸Æ¤Ó½Ð¤·¡¢¥«¡¼¥Í¥ë¥µ¡¼¥Ó¥¹¥Ù¥¯¥¿¤òÀßÄꤷ¤Æ¤ä¤é¤Ê¤±¤ì¤Ð¤¤¤±¤Þ¤»¤ó¡£ º£²ó¤Ï¡¢Èó¾ï¤Ë´í¸±¤ÊÊýË¡¤Ç¤¹¤¬¡¢¥¢¥É¥ì¥¹·è¤áÂǤÁ¤Ç¸Æ¤Ó½Ð¤¹¤³¤È¤Ë¤·¤Þ¤·¤¿¡£ BIOS¤Î¥Ð¡¼¥¸¥ç¥ó¤¬ÊѤï¤ë¤È¡¢¥¢¥É¥ì¥¹¤â¤º¤ì¤ë¤Î¤Ç¡¢Â¿Ê¬Æ°¤«¤Ê¤¯¤Ê¤ë¤È»×¤¤¤Þ¤¹¡£ ¼Â¸³¥×¥í¥°¥é¥à¤Ï¤³¤Á¤é http://www.piece-me.org/archive/flash-20020516.zip ¼Â¸³ÍÑ¥Õ¥¡¥¤¥ë¤òºîÀ®¤·¡¢¤½¤ÎÆâÍÆ¤ò¡¢¥Õ¥¡¥¤¥ëAPI¤Ç¤Ï¤Ê¤¯¥Õ¥é¥Ã¥·¥å¥á¥â¥êAPI¤ò»È¤Ã¤Æ¡¢ ľÀܽñ¤­´¹¤¨¤Æ¤¤¤Þ¤¹¡£(¢¨Á°½Ò¤Î¤È¤ª¤ê¡¢BIOS 1.18 ÀìÍѤǤ¹¡ª) * Mon Feb 4 20:16:32 JST 2002 Naoyuki Sawa - ¥«¡¼¥Í¥ë¤¤¤Á¤ã¤â¤ó¥³¡¼¥Ê¡¼½ÐÄ¥Èǡʥ饤¥Ö¥é¥êÊÔ¡Ë µ×¡¹¤Ë¡¢¥·¥ó¥×¥ë¥é¥¤¥Ö¥é¥ê¤Ç¥ß¥Ë¥²¡¼¥à¤òºî¤Ã¤Æ¤ß¤è¤¦¤È»×¤¤¤Þ¤·¤¿¡£ PieceSystem Ver1.18¤ÇÄɲ䵤줿¡¢¥·¥ó¥×¥ë¥é¥¤¥Ö¥é¥ê¤Î¿·µ¡Ç½¤â»È¤Ã¤Æ¤ß¤¿¤¤¤Ç¤¹¤Í¡£... C:\usr\PIECE\lib\simple.lib: Warning: Unresolved external symbol 'va_end'. C:\usr\PIECE\lib\simple.lib: Warning: Unresolved external symbol 'va_start'. ...¤½¤ì°ÊÁ°¤ÎÌäÂê¤Ç¤·¤¿¡£¥ê¥ó¥¯¤Ç¤­¤Ê¤¯¤Ê¤Ã¤Æ¤Þ¤¹(;;) ºÆ¸½ÊýË¡¤Ï¼¡¤ÎÄ̤ê¤Ç¤¹¡£ÉÕ°¤Îsimple¥×¥í¥°¥é¥à¤Ç¡¢prog.txt¤ÎÆó¹ÔÌܤò¡¢ printstr("SKI GAME"); ¤«¤é¡¢ siprintf("SKI GAME"); ¤ËÊѹ¹¤·¤Æmake¤¹¤ë¤È¡¢¾åµ­¤Î¥á¥Ã¥»¡¼¥¸¤¬½Ð¤Æ¡¢¼Â¹Ô¥Õ¥¡¥¤¥ë¤ÏÀ¸À®¤µ¤ì¤Þ¤»¤ó¡£¡¡ Ëͤ¿¤Á¤ÎP/ECE³«È¯´Ä¶­¤Ç¤Ï¡¢va_start¤äva_end¤Ï¥Þ¥¯¥í¤È¤·¤ÆÄêµÁ¤µ¤ì¤Æ¤¤¤ë¤Î¤Ç¤¹¤¬¡¢ ¥·¥ó¥×¥ë¥é¥¤¥Ö¥é¥ê¤ÎºîÀ®´Ä¶­¤Ç¤Ï¡¢va_start¤äva_end¤¬´Ø¿ô¤Ë¤Ê¤Ã¤Æ¤¿¤Î¤«¤âÃΤì¤Þ¤»¤ó¡£ PieceSystem Ver1.18¤¬¥ê¥ê¡¼¥¹¤µ¤ì¤Æ¡¢¤â¤¦°ì½µ´Ö°Ê¾å·Ð¤Ã¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢ ¤È¤Ã¤¯¤Ëȯ³Ð¤·¤Æ¤¤¤ë¤È»×¤¤¤Þ¤¹¤·¡¢¼¡²ó¤Î¥ê¥ê¡¼¥¹¤Ç¤Ï½¤Àµ¤µ¤ì¤ë¤È»×¤¤¤Þ¤¹¤¬... ¥·¥ó¥×¥ë¥é¥¤¥Ö¥é¥ê¤Ï¤ª¼ê·Ú¡¦¹âµ¡Ç½¤Ç¡¢¤«¤Ê¤êµ¤¤ËÆþ¤Ã¤Æ¤¿¤À¤±¤Ë¡¢¤Á¤ç¤Ã¤ÈÄˤ¤¤È¤³¤í¤Ç¤¹¡£ * Tue Jan 29 20:20:03 JST 2002 Naoyuki Sawa - ¤ª¤Ç¥Þ¥ë¹â®ÈÇ ºòÆü¤Î¸¦µæµ­Ï¿¤Ç¤Á¤ç¤Ã¤Èͽ¹ð(?)¤·¤¿Ä̤ꡢ¤ª¤Ç¥Þ¥ë¤Ë¹â®ÈÇpceLCDDrawObject¤òÁȤ߹þ¤ó¤Ç¤ß¤Þ¤·¤¿¡£ ºòÆü¤Î»þÅÀ¤Ç¤Ï¡¢Å¾Á÷¸µ¥Ó¥Ã¥È¥Þ¥Ã¥×¤Ï2bit¥Ç¡¼¥¿maskÉÕ¤­¡¦È¿Å¾¤Ê¤·¡¢¤À¤±¤ËÂбþ¤·¤Æ¤¤¤Þ¤·¤¿¤¬¡¢ ¤ª¤Ç¥Þ¥ë¹â®ÈǤËÁȤ߹þ¤ó¤À¤â¤Î¤Ï¡¢Å¾Á÷¸µ¥Ó¥Ã¥È¥Þ¥Ã¥×¤Ï2bit¥Ç¡¼¥¿maskÉÕ¤­¡¢¤Þ¤¿¤Ï¡¢mask¤Ê¤·¡£ ¾å²¼º¸±¦È¿Å¾¤Ë¤âÂбþ¤·¤Þ¤·¤¿¡£¥³¡¼¥ÉŸ³«¤·¤Þ¤¯¤Ã¤¿·ë²Ì¡¢8KB¶á¤¤¥µ¥¤¥ºÁý²Ã¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¤¤Þ¤·¤¿¡£ ¥ª¥ê¥¸¥Ê¥ë¤ÎpceLCDDrawObject¤¬¡¢¤¢¤Þ¤ê¹â®²½¤µ¤ì¤Æ¤¤¤Ê¤«¤Ã¤¿Íýͳ¤¬¡¢¤è¤¯Íý²ò¤Ç¤­¤Þ¤·¤¿¡£ Á´¤Æ¤Î¥×¥í¥°¥é¥à¤¬¹â®ÉÁ²è¤òÍ׵᤹¤ë¤ï¤±¤Ç¤â¤Ê¤¤¤Î¤Ë¡¢¤¢¤Þ¤êÂ礭¤Ê¥ë¡¼¥Á¥ó¤Ë¤Ç¤­¤Ê¤¤¤Ç¤¹¤è¤Í¡£ ¤µ¤Æ¡¢¤ª¤Ç¥Þ¥ë¥Ù¥ó¥Á¤Î·ë²Ìȯɽ¤Ç¤¹¡£Æ±¤¸¥»¡¼¥Ö¥Ç¡¼¥¿¤ò»È¤Ã¤Æ¡¢¥µ¥¦¥ó¥ÉON¤Î¾õÂ֤Ǥª¤Ç¤«¤±¤·¡¢ ¤ª¤Ç¤«¤±³«»Ï¡Áµ¢´Ô¤Þ¤Ç¤Î»þ´Ö¤ò·×¬¤·¤Þ¤·¤¿¡£¥¢¥¤¥Æ¥àȯ¸«²ó¿ô¤Î°ã¤¤¤â±Æ¶Á¤·¤Þ¤¹¤¬¡¢¤¢¤ëÄøÅ٤ΠÌܰ¤ˤϤʤë¤È»×¤¤¤Þ¤¹¡£¤¢¡¢pceAppSetProcPeriod¤È¤«¤ÎÄ´À°¤Ï¤·¤Æ¤¤¤Ê¤¤¤Î¤Ç¡¢¿®¤¸¤Æ¤¯¤À¤µ¤¤(^^; STATUS: POW=652 INT=886 DEX=682 2930J ¥¢¥¯¥¢¥×¥é¥¹¥Ó¥ë¤Ø¤ª¤Ç¤«¤±¡Áµ¢´Ô¤Þ¤Ç ¤ª¤Ç¥Þ¥ë(ËÜʪ) -> £¸Ê¬£´£µÉà ¤ª¤Ç¥Þ¥ë¹â®ÈÇ -> £µÊ¬£µ£°Éà ¿ô»ú¤Ç¸«¤ë¤È¤¢¤Þ¤ê¹â®²½¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¤¬¡¢¥µ¥¦¥ó¥ÉOFF¤Ë¤«¤Ê¤ê¶á¤¤Â®Å٤ˤϤʤ俤Ȼפ¤¤Þ¤¹¡£ ¤â¤Ã¤È¤â¡¢¤ª¤Ç¥Þ¥ë¹â®ÈǤΰյÁ¤Ï¤½¤ì¼«ÂΤˤ¢¤ë¤Î¤Ç¤Ï¤Ê¤¯¡¢ ¡Ö¤³¤ì¤°¤é¤¤¤¢¤ª¤Ã¤Æ¤ª¤±¤Ð¡¢¤À¤ì¤«(ËܲȤǤâ²Ä)pceLCDDrawObject¤òŰÄìŪ¤Ë¹â®²½¤·¤Æ¤¯¤ì¤ë¤Î¤Ç¤Ï¡©¡× ¤È¤¤¤¦ÅÀ¤Ë¤¢¤Ã¤¿¤ê¤·¤Þ¤¹¡£¤è¤í¤·¤¯¤ª´ê¤¤¤·¤Þ¤¹¡Á(^^; * Tue Jan 29 20:20:03 JST 2002 Naoyuki Sawa - ¥«¡¼¥Í¥ë¤¤¤Á¤ã¤â¤ó¥³¡¼¥Ê¡¼½ÐÄ¥ÈÇ BIOS1.18¸½ºß¡¢pceLCDDrawObject¤Î2bit¥Ç¡¼¥¿(mask̵¤·)ÉÁ²è¤Ë¤ÏÉÔ¶ñ¹ç¤¬¤¢¤ë¤è¤¦¤Ç¤¹¡£ ºÆ¸½¥×¥í¥°¥é¥à¤Ï¤³¤Á¤é¡£(¤Þ¤¿¤Ï¡¢¥È¥Ã¥×¥Ú¡¼¥¸¤Î¥ê¥ó¥¯¤«¤é) http://www.piece-me.org/archive/drawerr-20020129.zip ºÆ¸½ÊýË¡¡§ drawerr.pex¤òžÁ÷¤·¡¢¼Â¹Ô¤·¤Æ¤¯¤À¤µ¤¤¡£64x16¥Ô¥¯¥»¥ë¤Î2bit¥Ç¡¼¥¿(mask̵¤·)¤òº¸±¦È¿Å¾¤ÇÉÁ²è¤¹¤ë¡¢Ã±½ã¤Ê¥×¥í¥°¥é¥à¤Ç¤¹¡£ ¥Ñ¥Ã¥É¤Î¾å²¼º¸±¦¤Ç¥­¥ã¥é¥¯¥¿¤òư¤«¤¹¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£º¸±¦¤Ëư¤«¤¹¤È¡¢»þ¡¹¥­¥ã¥é¥¯¥¿¤¬Êø¤ì¤ë¤Î¤¬³Îǧ¤Ç¤­¤ë¤È»×¤¤¤Þ¤¹¡£ ¥×¥í¥°¥é¥à¤ò½ªÎ»¤¹¤ë¤Ë¤Ï¡¢A¥Ü¥¿¥ó¤ò²¡¤·¤Æ¤¯¤À¤µ¤¤¡£ ¸¶°ø¡§ pceLCDDrawObject¤Ï¡¢2bit¥Ç¡¼¥¿(mask̵¤·)¤òÉÁ²è¤¹¤ë¤È¤­¡¢ÆÃÄê¤Î¾ò·ï¤Ç¹â®¥ë¡¼¥Á¥ó¤ò»È¤¦¤è¤¦¤Ëºî¤é¤ì¤Æ¤¤¤ë¤è¤¦¤Ç¤¹¡£ ¹â®¥ë¡¼¥Á¥ó¤¬»È¤ï¤ì¤ë¾ò·ï¤Ï¡¢ ¡¦Å¾Á÷ÀèXºÂɸ¤¬4¤ÎÇÜ¿ô¤Ç¤¢¤ë¤³¤È¡£ ¡¦Å¾Á÷¸µXºÂɸ¤¬4¤ÎÇÜ¿ô¤Ç¤¢¤ë¤³¤È¡£ ¡¦Å¾Á÷Éý¤¬4¤ÎÇÜ¿ô¤Ç¤¢¤ë¤³¤È¡£ ¤³¤ì¤é¤Î¾ò·ï¤¬Á´¤ÆËþ¤¿¤µ¤ì¤ë¤È¡¢¥Æ¡¼¥Ö¥ë¤òÍøÍѤ·¤Æ4¥Ô¥¯¥»¥ë¤Þ¤È¤á¤ÆÉÁ²è¤ò¹Ô¤¤¡¢»°ÇÜÄøÅ٤ι⮲½¤¬Ã£À®¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ ¤·¤«¤·¤Ê¤¬¤é¡¢º¸±¦È¿Å¾»þ¤Ë¤Ï4¥Ô¥¯¥»¥ë¤òº¸±¦µÕž¤·¤¿¥Æ¡¼¥Ö¥ë¤òÍøÍѤ¹¤Ù¤­¤Ê¤Î¤Ç¤¹¤¬¡¢¸½ºß¤Î¼ÂÁõ¤Ç¤Ï¤½¤¦¤Ê¤Ã¤Æ¤¤¤Þ¤»¤ó¡£ º¸±¦È¿Å¾¤·¤Ê¤¤¤È¤­¤ÈƱ¤¸¥Æ¡¼¥Ö¥ë¤ò»È¤Ã¤Æ¤·¤Þ¤Ã¤Æ¤¤¤ë¤¿¤á¡¢4¥Ô¥¯¥»¥ë°Üư¤¹¤ë¤´¤È¤Ë¥­¥ã¥é¥¯¥¿¤¬Êø¤ì¤ë·ë²Ì¤È¤Ê¤ê¤Þ¤¹¡£ ²óÈòÊýË¡¡§ ¤³¤ÎÉÔ¶ñ¹ç¤¬¸½ºß¤Þ¤Ç»Ä¤Ã¤Æ¤¤¤ë¤È¤¤¤¦¤³¤È¤Ï¡¢¤¢¤Þ¤ê2bit¥Ç¡¼¥¿(mask̵¤·)¤Ï»È¤ï¤ì¤Æ¤¤¤Ê¤¤¡¢¤È¤¤¤¦¤³¤È¤Ç¤·¤ç¤¦¤«¡© Ëͤ⤢¤Þ¤ê»È¤¤¤Þ¤»¤ó(^^; ¡¦2bit¥Ç¡¼¥¿(mask̵¤·)¤Ï»È¤ï¤Ê¤¤¡£2bit¥Ç¡¼¥¿maskÉÕ¤­¤ÇÂåÍѤ¹¤ë¡£¤¿¤À¤·¡¢¾¯¤·Â®ÅÙÄã²¼¤·¤Þ¤¹¡£ ¡¦2bit¥Ç¡¼¥¿(mask̵¤·)¤òÉÁ¤¯¤È¤­¤Ï¡¢º¸±¦È¿Å¾¤Ï»È¤ï¤Ê¤¤¡£ * Mon Jan 28 21:09:06 JST 2002 Naoyuki Sawa - ÆóÇÜ®¤¯¤Ê¤ê¤Þ¤·¤¿ ºòÆü¤Ë°ú¤­Â³¤­¡¢pceLCDDrawObject¤Î¹â®²½¤ÎÏÃÂê¤Ç¤¹¡£ ºòÆü¤Î¸¦µæµ­Ï¿¤Ç¤Ï¡¢´û¸¤ÎºÇŬ²½ºÑ¤ß¥ë¡¼¥Á¥ó¤ò»È¤ï¤»¤ÆÄº¤¯¤Î¤â¼ê¤«¤Ê¡¢¤È½ñ¤­¤Þ¤·¤¿¤¬¡¢ ¤Þ¤º¤ÏÎý½¬¤Î¤¿¤á¤Ë¡¢¼«Ê¬¤Ç¤â¼ÂÁõ¤·¤Æ¤ß¤ë¤³¤È¤Ë¤·¤Þ¤·¤¿¡£ ¹â®ÈÇpceLCDDrawObject¤òÁȤ߹þ¤ó¤À¥½¡¼¥¹¤Ï¤³¤Á¤é http://www.piece-me.org/archive/tstspd-20020128-src.zip ¹â®ÈÇpceLCDDrawObject¤ÎÉôʬ¤Ï¡¢¤³¤ó¤Ê´¶¤¸¤Ç¤¹¡£ ----------------------------------------------------------------------------- #define KSNO_LCDDrawObject 100 /* pceLCDDrawObject¤Î¥«¡¼¥Í¥ë¥µ¡¼¥Ó¥¹ÈÖ¹æ */ static int (*old_LCDDrawObject)(DRAW_OBJECT); /* ËÜʪ¤ÎpceLCDDrawObject¤òÊݸ */ static int new_LCDDrawObject(DRAW_OBJECT obj) { PIECE_VRAM dest; PIECE_BMP src; int n, x, y, step, dest_stride, src_stride; unsigned char *dest_buf, *src_mask, mask; unsigned short *src_buf, pixel; /* ñ½ãžÁ÷¤Ç¤Ê¤±¤ì¤Ð¡¢ËÜʪ¤ËǤ¤»¤Þ¤¹¡£ */ if(obj.param != DRW_NOMAL) return old_LCDDrawObject(obj); /* žÁ÷¸µ¥Ó¥Ã¥È¥Þ¥Ã¥×¾ðÊó¤ò¼èÆÀ¡£ * 2bit¥Þ¥¹¥¯ÉÕ¤­¥Ó¥Ã¥È¥Þ¥Ã¥×¤Ç¤Ê¤±¤ì¤Ð¡¢ËÜʪ¤ËǤ¤»¤Þ¤¹¡£ */ src = *obj.src; if(src.header.bpp != 2 || src.header.mask != 1) return old_LCDDrawObject(obj); /* žÁ÷ÀèVRAM¾ðÊó¤ò¼èÆÀ¡£ */ if(obj.dest != NULL) { dest = *obj.dest; } else { dest.w = DISP_X; dest.h = DISP_Y; dest.buf = pceLCDSetBuffer(INVALIDPTR); } /* žÁ÷À襯¥ê¥Ã¥Ô¥ó¥°¡£ */ if(obj.dx < obj.clip.left) { n = obj.clip.left - obj.dx; /* º¸¤Ë¤Ï¤ß½Ð¤¿¥Ô¥¯¥»¥ë¿ô */ obj.dx = obj.clip.left; obj.dw -= n; obj.sx += n; } if(obj.dx + obj.dw > obj.clip.right) { obj.dw = obj.clip.right - obj.dx; } if(obj.dw <= 0) return 0; /* ²èÌ̳° */ if(obj.dy < obj.clip.top) { n = obj.clip.top - obj.dy; /* ¾å¤Ë¤Ï¤ß½Ð¤¿¥Ô¥¯¥»¥ë¿ô */ obj.dy = obj.clip.top; obj.dh -= n; obj.sy += n; } if(obj.dy + obj.dh > obj.clip.bottom) { obj.dh = obj.clip.bottom - obj.dy; } if(obj.dh <= 0) return 0; /* ²èÌ̳° */ /* žÁ÷¸µ¥¯¥ê¥Ã¥Ô¥ó¥°¤Ï¹Ô¤¤¤Þ¤»¤ó¡£ * ¸µ¡¹»ØÄꤵ¤ì¤¿Å¾Á÷¸µ¶ë·Á¤¬Å¾Á÷¸µ¥Ó¥Ã¥È¥Þ¥Ã¥×Æâ¤Ë¼ý¤Þ¤Ã¤Æ¤¤¤¿¤Ê¤é¤Ð¡¢ * žÁ÷À襯¥ê¥Ã¥Ô¥ó¥°¤Ë¤è¤Ã¤ÆÅ¾Á÷¸µ¤¬¤Ï¤ß½Ð¤¹¤³¤È¤Ï¤¢¤ê¤¨¤Ê¤¤¤«¤é¤Ç¤¹¡£ * ¤·¤«¤·ËÜʪ¤ÏžÁ÷¸µ¥¯¥ê¥Ã¥Ô¥ó¥°¤â¹Ô¤Ã¤Æ¤¤¤ë¤Î¤Ç¡¢¤³¤ÎÅÀ¤ÏÈó¸ß´¹¤Ç¤¹¡£ */ /* žÁ÷Àè¥Ô¥¯¥»¥ë¥¢¥É¥ì¥¹¤òµá¤á¤Þ¤¹¡£ */ dest_buf = dest.buf + dest.w * obj.dy + obj.dx; dest_stride = dest.w /* ¥é¥¤¥ó¥¹¥È¥é¥¤¥É */ - obj.dw; /* °ì¹Ô¤Ç²¿²ó¿Ê¤à¤« */ /* žÁ÷¸µ¥Ô¥¯¥»¥ë¥¢¥É¥ì¥¹¤òµá¤á¤Þ¤¹¡£ */ n = (src.header.w * obj.sy + obj.sx) / 8; src_buf = (unsigned short*)src.buf + n; src_mask = src.mask + n; src_stride = (src.header.w + 7) / 8 /* ¥é¥¤¥ó¥¹¥È¥é¥¤¥É */ - ((obj.sx & 7) + obj.dw - 1) / 8; /* °ì¹Ô¤Ç²¿²ó¿Ê¤à¤« */ /* ~~~ 8¥¹¥Æ¥Ã¥×´°Î»»þ¤Ë¿Ê¤à¤Î¤Ç¤Ï¤Ê¤¯¡¢9¥¹¥Æ¥Ã¥×ÌܤÎÀèÆ¬¤Ç¿Ê¤à¤«¤é */ y = obj.dh; /* »Ä¤ê¥é¥¤¥ó¿ô */ do { /* 8¥Ô¥¯¥»¥ëñ°Ì¤Î¤¦¤Á¡¢²¿¥Ô¥¯¥»¥ëÌܤ«¤é³«»Ï¤¹¤ë¤«¡© */ step = obj.sx & 7; /* ³«»ÏÅÀ¤«¤é»Ï¤Þ¤ë¤«ÅÓÃæ¤«¤é»Ï¤Þ¤ë¤«¤ï¤«¤é¤Ê¤¤¤Î¤Ç¡¢ * ½é²ó¤Ï¤¿¤È¤¨step=0¤Ç¤â¡¢¤³¤³¤ÇºÇ½é¤Î¥Ç¡¼¥¿¤ò¼èÆÀ¤¹¤ë¤³¤È¤Ë¤·¤Þ¤¹¡£ * ¢¨P/ECE¥Ó¥Ã¥È¥Þ¥Ã¥×¤Î¥Ô¥¯¥»¥ëʤӤϡ¢MSB¦¤¬º¸¤Î¥Ô¥¯¥»¥ë¤Ê¤ó¤Ç¤¹¤Í¡£ * S1C33¤Ï¥ê¥È¥ë¥¨¥ó¥Ç¥£¥¢¥ó¤Ê¤ó¤À¤«¤é¡¢LSB¦¤òº¸¤Î¥Ô¥¯¥»¥ë¤Ë¤·¤¿Êý¤¬°·¤¤¤ä¤¹¤¤¤È»×¤¦¤Î¤Ç¤¹¤¬¡£ * WindowsBMP¤ÏMSB¦¤¬º¸¤Î¥Ô¥¯¥»¥ë¤Ê¤Î¤«¤Ê¡©¤â¤·¤½¤¦¤Ê¤é¤Ð¡¢BMP¤Î»ÅÍͤ˹ç¤ï¤»¤¿¤Î¤«¤âÃΤì¤Þ¤»¤ó¡£ */ pixel = *src_buf; /* ¥Ô¥¯¥»¥ëÊÂ¤Ó¤Ï MSB:45670123:LSB ¤Î½ç¤Ç¤¹ */ mask = *src_mask; /* ¥Ô¥¯¥»¥ëÊÂ¤Ó¤Ï MSB:01234567:LSB ¤Î½ç¤Ç¤¹ */ /* ²¿¥Ô¥¯¥»¥ëÌܤ«¤é³«»Ï¤¹¤ë¤«¤Ë¤è¤Ã¤Æ¡¢Å¬ÀڤʰÌÃÖ¤ØÈô¤Ó¹þ¤ß¤Þ¤¹¡£ */ x = obj.dw; /* »Ä¤ê¥Ô¥¯¥»¥ë¿ô */ switch(step) { LOOP: /* ½é²ó¤Ï¤³¤³¤ÏÈô¤Ó±Û¤·¤Þ¤¹ */ /* 8¥Ô¥¯¥»¥ëñ°Ì¤Î³«»ÏÅÀ¤Ç¡¢¼¡¤Î¥Ç¡¼¥¿¤ò¼èÆÀ¤·¤Þ¤¹¡£ */ pixel = *++src_buf; mask = *++src_mask; #define PIXEL(p, m) \ /* ÉÔÆ©ÌÀ¥Ô¥¯¥»¥ë¤Ê¤é¡¢ÉÁ¤­¤Þ¤¹¡£ */ \ if(mask >> (m) & 1) *dest_buf = pixel >> (p) * 2 & 3; \ dest_buf++; \ /* 1¥é¥¤¥óžÁ÷´°Î»¤·¤¿¤é¡¢È´¤±¤Þ¤¹¡£ */ \ if(--x == 0) break; case 0: PIXEL(3, 7); case 1: PIXEL(2, 6); case 2: PIXEL(1, 5); case 3: PIXEL(0, 4); case 4: PIXEL(7, 3); case 5: PIXEL(6, 2); case 6: PIXEL(5, 1); default/*7*/: PIXEL(4, 0); goto LOOP; #undef PIXEL } /* žÁ÷À衦žÁ÷¸µ¥Ô¥¯¥»¥ë¥¢¥É¥ì¥¹¤ò¼¡¤Î¥é¥¤¥ó¤Ø¿Ê¤á¤Þ¤¹¡£ */ dest_buf += dest_stride; src_buf += src_stride; src_mask += src_stride; } while(--y != 0); return 1; } void hook_LCDDrawObject() { /* pceLCDDrawObject¤ò¥Õ¥Ã¥¯¤·¤Þ¤¹¡£ */ old_LCDDrawObject = pceVectorSetKs(KSNO_LCDDrawObject, new_LCDDrawObject); } void unhook_LCDDrawObject() { /* pceLCDDrawObject¤ò¥Õ¥Ã¥¯²ò½ü¤·¤Þ¤¹¡£ */ pceVectorSetKs(KSNO_LCDDrawObject, old_LCDDrawObject); } ----------------------------------------------------------------------------- ¤µ¤Æ¡¢·ë²Ìȯɽ¤Ç¤¹¡£ ËÜʪpceLCD(È´¤­Í­¤ê) -> 21.207Éà ... 100% ¹â®pceLCD(È´¤­Í­¤ê) -> 9.718Éà ... 218% ¢¨¤³¤ì¤Ç¤¹¡ª pclSprite (È´¤­Í­¤ê) -> 6.091Éà ... 348% ¤Þ¤¢¤Þ¤¢¤Ç¤¹¡£¤À¤±¤É¡¢¥¹¥×¥é¥¤¥È¥é¥¤¥Ö¥é¥ê¤Ë¤Ï±ó¤¯µÚ¤Ó¤Þ¤»¤ó¡£ ¤·¤«¤â¡¢¥¹¥×¥é¥¤¥È¥é¥¤¥Ö¥é¥ê¤Î¥½¡¼¥¹¤Ë¤Ï¡Ö̤¹â®²½¡×¤È¥³¥á¥ó¥È¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ ¥¹¥×¥é¥¤¥È¥é¥¤¥Ö¥é¥ê¤Ï¡¢º£¸å¤Þ¤À¤Þ¤À®¤¯¤Ê¤ë¤È¤¤¤¦¤³¤È¤Ç¤·¤ç¤¦¤Í¡£¼ê¶¯¤¤¡ª ´ê¤ï¤¯¤Ð¡¢¤½¤Î;ÎϤǤÁ¤ç¤Ã¤È¤À¤±pceLCDDrawObject¤â¹â®²½¤·¤ÆÍߤ·¤¤¤È¤³¤í¤Ç¤¹¤¬...(^^; º£²ó¼ÂÁõ¤·¤¿¹â®ÈÇpceLCDDrawObject¤Ï¡¢¼¡¤Î¾ò·ï¤¬Ëþ¤¿¤µ¤ì¤¿¾ì¹ç¤Î¤ß¹â®¥ë¡¼¥Á¥ó¤òÍøÍѤ·¡¢ °ì¤Ä¤Ç¤âËþ¤¿¤µ¤ì¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï¡¢ËÜʪ¤ÎpceLCDDrawObject¤Ë½èÍý¤òǤ¤»¤ë¤è¤¦¤Ë¤·¤Þ¤·¤¿¡£ ¹â®¥ë¡¼¥Á¥ó¤¬ÍøÍѤµ¤ì¤ë¾ò·ï¤Ï¡¢¼¡¤ÎÄ̤ê¤Ç¤¹¡£ ¡¦pceLCDSetObject¤Ë»ØÄꤷ¤¿param¤¬¡¢DRW_NOMAL¤Ç¤¢¤ë¤³¤È¡£ ¡¦Å¾Á÷¸µ¥Ó¥Ã¥È¥Þ¥Ã¥×¤¬¡¢¡Ö2bit¥Ç¡¼¥¿maskÉÕ¤­¡×¤Ç¤¢¤ë¤³¤È¡£ ¤³¤Î¾ò·ï¤òËþ¤¿¤¹ÉÁ²èÍ×µá(¹â®¥ë¡¼¥Á¥ó¤¬ÍøÍѤµ¤ì¤Þ¤¹)¤Î²ó¿ô¤è¤ê¤â¡¢ ¾ò·ï¤òËþ¤¿¤µ¤Ê¤¤ÉÁ²èÍ×µá(ËÜʪ¤Ë½èÍý¤òǤ¤»¤Þ¤¹)¤Î²ó¿ô¤ÎÊý¤¬°µÅÝŪ¤Ë¿¤¤¾ì¹ç¤Ï¡¢ ¹â®ÈÇpceLCDDrawObject¤«¤éËÜʪ¤ÎpceLCDDrawObject¤ò¸Æ¤Ó½Ð¤¹½èÍý¤¬Áý¤¨¤ëʬ¡¢ ¸µ¡¹¤Î½èÍý®ÅÙ¤è¤ê¤âÃÙ¤¯¤Ê¤Ã¤Æ¤·¤Þ¤¦²ÄǽÀ­¤¬¤¢¤ê¤Þ¤¹¡£ ¤Þ¤¿¡¢ËÜʪ¤ÎpceLCDDrawObject¤Ë³Ó¤Ù¤Æ¡¢°ìÅÀ¡¢½èÍý¤ò¾Ê¤¤¤¿Éôʬ¤¬¤¢¤ê¤Þ¤¹¡£ ¤½¤ì¤Ï¡¢Å¾Á÷¸µ¥Ó¥Ã¥È¥Þ¥Ã¥×¤ËÂФ¹¤ëžÁ÷¸µ¶ë·Á¤Î¥¯¥ê¥Ã¥Ô¥ó¥°½èÍý¤Ç¤¹¡£ žÁ÷¸µ¶ë·Á¤Ë¡¢Å¾Á÷¸µ¥Ó¥Ã¥È¥Þ¥Ã¥×¤ò¤Ï¤ß½Ð