+===========+ |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); ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡