+===========+ |P/ECE¸¦µæ¼¼| +===========+ P/ECE¸¦µæµ­Ï¿ ============= * Thu Sep 09 00:00:00 JST 2021 Naoyuki Sawa - GNU Awk 3.1.7¤ÎÉÔ¶ñ¹ç¤ò²óÈò¤¹¤ë ËͤÏAwk¤¬¹¥¤­¤Ç¤¹¡£ P/ECE¤Î¥¢¥×¥ê³«È¯¤Ç¥Ç¡¼¥¿¤òºî¤ë»þ¤â¡¢»Å»ö¤Ç´Êñ¤Ê¥Æ¥­¥¹¥È½èÍý¤ò¤¹¤ë»þ¤â¡¢¤è¤¯Awk¤ò»È¤Ã¤Æ¤¤¤Þ¤¹¡£ ¤â¤Ã¤È¥â¥À¥ó¤Ê¥¹¥¯¥ê¥×¥È¸À¸ì¤âÊÙ¶¯¤·¤¿¤Î¤Ç¤¹¤±¤ì¤É¡¢¤·¤Ð¤é¤¯»È¤ï¤Ê¤¤¤È¤¹¤°¤Ë˺¤ì¤Æ¤·¤Þ¤Ã¤Æ¡¢¤Ä¤¤Awk¤ÈSed¤ËÌá¤Ã¤Æ¤·¤Þ¤¤¤Þ¤¹¡Ä(^^; Ëͤ¬»È¤Ã¤Æ¤¤¤ëAwk¤Ï¡¢¡ÖGNU Awk 3.1.7(windows special Nov 24 2009)¡×(gawk-mbcs-win32-20091124.zip)¤Ç¤¹¡£ ¸Å¤¤¥Ð¡¼¥¸¥ç¥ó¤Ê¤Î¤Ç¤¹¤±¤ì¤É¡¢¤â¤Ã¤Ñ¤é¥·¥Õ¥ÈJIS¤Î¥Æ¥­¥¹¥È¤À¤±¤ò°·¤¦¾å¤Ç¤Ï»È¤¤¾¡¼ê¤¬Îɤ¤¤Î¤Ç¡¢½ÅÊõ¤·¤Æ¤¤¤Þ¤¹¡£ ¤·¤«¤·»ÄÇ°¤Ê»ö¤Ë¡¢¥À¥¦¥ó¥í¡¼¥É¥Ú¡¼¥¸¤¬¸ø³«Ää»ßÃæ¤Ç¤¹¡£ ¡Ê»²¾È¡§¡Öcorbie¤Î¥Ö¥í¥°¡×(http://blog.livedoor.jp/corbie/)¤µ¤ó¤Î¡ÖWindowsÈÇgawkÁª¤Ó¡×(http://blog.livedoor.jp/corbie/archives/3924154.html)¤Îµ­»ö¡Ë ¤â¤¦¥À¥¦¥ó¥í¡¼¥É¤Ç¤­¤Ê¤µ¤½¤¦¤Ê¤Î¤Ç¡¢Âç»ö¤Ë»È¤Ã¤Æ¹Ô¤³¤¦¤È»×¤¤¤Þ¤¹¡£ Ĺ¤é¤¯»È¤Ã¤Æ¤­¤ÆÂ礭¤ÊÌäÂê¤Ïµ¯¤­¤Æ¤¤¤Ê¤«¤Ã¤¿¤Î¤Ç¤¹¤±¤ì¤É¡¢ºÇ¶á¡¢¥í¡¼¥«¥ëÇÛÎó¤ò»È¤¦¤ÈÉÔ¶ñ¹ç¤¬È¯À¸¤¹¤ë»ö¤Ëµ¤ÉÕ¤­¤Þ¤·¤¿¡£ Awk¤Ç¥í¡¼¥«¥ëÇÛÎó¤ò»È¤¦¤Ë¤Ï¡¢°Ê²¼¤Î¤è¤¦¤Ë¤·¤Þ¤¹¡£ ¢£¥Æ¥¹¥È­¡¡¡Àµ¾ï ¨¢BEGIN { ¨¢ a[1] = 100 ¨¢ print "¸Æ¤Ó½Ð¤·Á°: " a[1] ¨¢ test() ¨¢ print "¸Æ¤Ó½Ð¤·¸å: " a[1] ¨¢} ¨¢function test(a) { ¨¢ a[1] = 200 ¨¢ print "¸Æ¤Ó½Ð¤·Ãæ: " a[1] ¨¢} ¢¢·ë²Ì ¨¢¸Æ¤Ó½Ð¤·Á°: 100 ¨¢¸Æ¤Ó½Ð¤·Ãæ: 200 ¨¢¸Æ¤Ó½Ð¤·¸å: 100 ¤Þ¤¿¡¢ÇÛÎó¤ÎËöÈø¤ËÃͤòÄɲ䷤ƹԤ¯¤Ë¤Ï¡¢°Ê²¼¤Î¤è¤¦¤Ë¤¹¤ë»ö¤¬Â¿¤¤¤Ç¤¹¡£ ¢£¥Æ¥¹¥È­¢¡¡Àµ¾ï ¨¢BEGIN { ¨¢ delete a #//³Î¼Â¤Ë¶õ¤ÎÇÛÎó¤Ë¤¹¤ë¡£ ¨¢ a[length(a)+1] = 200 ¨¢ a[length(a)+1] = 300 ¨¢ a[length(a)+1] = 400 ¨¢ for(i = 1; i <= length(a); i++) { ¨¢ print i ": " a[i] ¨¢ } ¨¢} ¢¢·ë²Ì ¨¢1: 200 ¨¢2: 300 ¨¢3: 400 ­¡¤â­¢¤âÀµ¤·¤¯Æ°ºî¤¹¤ë¤Î¤Ç¤¹¤¬¡¢­¡¤È­¢¤òÁȤ߹ç¤ï¤»¤Æ¡¢¥í¡¼¥«¥ëÇÛÎó¤ÎËöÈø¤ËÃͤòÄɲ䷤ƹԤ³¤¦¤È¤¹¤ë¤È¡¢ÉÔ¶ñ¹ç¤¬È¯À¸¤·¤Þ¤·¤¿¡£ ¢£¥Æ¥¹¥È­£¡¡°Û¾ï ¨¢BEGIN { ¨¢ a[1] = 100 ¨¢ print "¸Æ¤Ó½Ð¤·Á°: " a[1] ¨¢ test() ¨¢ print "¸Æ¤Ó½Ð¤·¸å: " a[1] ¨¢} ¨¢function test(a,i) { ¨¢ delete a #//³Î¼Â¤Ë¶õ¤ÎÇÛÎó¤Ë¤¹¤ë¡£ ¨¢ a[length(a)+1] = 200 ¨¢ a[length(a)+1] = 300 ¨¢ a[length(a)+1] = 400 ¨¢ for(i = 1; i <= length(a); i++) { ¨¢ print i ": " a[i] ¨¢ } ¨¢} ¢¢·ë²Ì ¨¢¸Æ¤Ó½Ð¤·Á°: 100 ¨¢1: ¨¢2: 300 ¨¢3: 400 ¨¢4: ¨¢5: ¨¢6: ¨¢7: ¨¢8: ¨¢9: ¨¢10: ¨¢¡Ä½ª¤ï¤é¤Ê¤¤¡Ä Ä´ºº¤·¤¿½ê¡¢¤É¤¦¤ä¤é¡¢¥í¡¼¥«¥ëÇÛÎó¤ËÃͤò³ÊǼ¤¹¤ëÁ°¤Ëdelete¤¹¤ë¤È¡¢ÇÛÎó¤ÎÆâÉô¹½Â¤¤¬²õ¤ì¤Æ¡¢length()¤¬ÉÔÄê¤ÊÃͤòÊÖ¤¹¤è¤¦¤Ç¤¹¡£ ¢£¥Æ¥¹¥È­¤¡¡°Û¾ï ¨¢BEGIN { ¨¢ a[1] = 100 ¨¢ print "¸Æ¤Ó½Ð¤·Á°: " a[1] ¨¢ test() ¨¢ print "¸Æ¤Ó½Ð¤·¸å: " a[1] ¨¢} ¨¢function test(a) { ¨¢ delete a ¨¢ print "¸Æ¤Ó½Ð¤·Ãæ: " length(a) ¨¢} ¢¢·ë²Ì ¨¢¸Æ¤Ó½Ð¤·Á°: 100 ¨¢¸Æ¤Ó½Ð¤·Ãæ: 1804120 ¨¢¸Æ¤Ó½Ð¤·¸å: 100 ¤Á¤Ê¤ß¤Ë¡¢¥°¥í¡¼¥Ð¥ëÇÛÎó¤ËÃͤò³ÊǼ¤¹¤ëÁ°¤Ëdelete¤·¤Æ¤âÂç¾æÉפʤΤǡ¢¾åµ­¤ÎÉÔ¶ñ¹ç¤Ï¥í¡¼¥«¥ëÇÛÎó¤Î¾ì¹ç¤À¤±¤ËȯÀ¸¤¹¤ë¤è¤¦¤Ç¤¹¡£ ¢£¥Æ¥¹¥È­¥¡¡Àµ¾ï ¨¢BEGIN { ¨¢ a[1] = 100 ¨¢ print "¸Æ¤Ó½Ð¤·Á°: " a[1] ¨¢ test() ¨¢ print "¸Æ¤Ó½Ð¤·¸å: " a[1] ¨¢} ¨¢function test() { ¨¢ delete a ¨¢ print "¸Æ¤Ó½Ð¤·Ãæ: " length(a) ¨¢} ¢¢·ë²Ì ¨¢¸Æ¤Ó½Ð¤·Á°: 100 ¨¢¸Æ¤Ó½Ð¤·Ãæ: 0 ¨¢¸Æ¤Ó½Ð¤·¸å: ËͤϤ³¤ì¤Þ¤Ç¡¢¥í¡¼¥«¥ëÇÛÎó¤ò¤¢¤Þ¤ê»È¤ï¤º¤Ë¡¢¥°¥í¡¼¥Ð¥ëÇÛÎó¤Ð¤«¤ê»È¤Ã¤Æ¤¤¤¿¤Î¤Ç¡¢¤¿¤Þ¤¿¤ÞÉÔ¶ñ¹ç¤ËÁø¶ø¤·¤Æ¤¤¤Ê¤«¤Ã¤¿¤è¤¦¤Ç¤¹¡£ ¤¿¤á¤·¤Ë¡¢MinGWÈǤÎGNU Awk 3.1.7(gawk-3.1.7-1-msys-1.0.11)¤Ç¤â¥Æ¥¹¥È¤·¤Æ¤ß¤¿½ê¡¢Æ±¤¸ÉÔ¶ñ¹ç¤¬È¯À¸¤·¤Þ¤·¤¿¡£ ¤É¤¦¤ä¤é¡¢¡ÖGNU Awk 3.1.7(windows special Nov 24 2009)¡×¤ËÆÃÍ­¤ÎÉÔ¶ñ¹ç¤Ç¤Ï¤Ê¤¯¡¢¸µ¤ÎGNU Awk 3.1.7¤Ëµ¯°ø¤¹¤ëÉÔ¶ñ¹ç¤Î¤è¤¦¤Ç¤¹¡£ ¤Á¤Ê¤ß¤Ë¡¢¡ÖGNU Awk 4.1.4, API: 1.1¡×¤Ç¤ÏÉÔ¶ñ¹ç¤ÏȯÀ¸¤·¤Þ¤»¤ó¤Ç¤·¤¿¡£ GNU Awk 3.1.8°Ê¹ß¤Î¤É¤ì¤«¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç½¤Àµ¤µ¤ì¤¿¤Î¤À¤È»×¤¤¤Þ¤¹¡£ ¡ÊGNU Awk 3.1.8¤ÎChangeLog¤òÆɤó¤Ç¤ß¤¿¤Î¤Ç¤¹¤±¤ì¤É¡¢¤ï¤«¤ê¤Þ¤»¤ó¤Ç¤·¤¿¡Ä¡Ë ÉÔ¶ñ¹ç¤ò²óÈò¤¹¤ë¤¿¤á¤Ë¤Ï¡¢ËÜÍè¤Ï¡¢ÉáÃʻȤ¤¤ÎAwk¤ò¤â¤Ã¤È¿·¤·¤¤¥Ð¡¼¥¸¥ç¥ó¤ËÊѤ¨¤ë¤Ù¤­¤Ê¤Î¤Ç¤¹¡£ ¤Ç¤â¡¢¡ÖGNU Awk 3.1.7(windows special Nov 24 2009)¡×¤Ë´·¤ì²á¤®¤Æ¤¤¤Æ¡¢Èù̯¤ÊµóÆ°¤¬ÊѤï¤ë¤Î¤¬Éݤ¯¤Æ¡¢ÊѤ¨¤¿¤¯¤¢¤ê¤Þ¤»¤ó¡Ä ¤½¤³¤Ç¡¢¡ÖGNU Awk 3.1.7(windows special Nov 24 2009)¡×¤Î¤Þ¤Þ¤Ç¡¢ÉÔ¶ñ¹ç¤ò²óÈò¤¹¤ëÊýË¡¤ò¹Í¤¨¤Þ¤·¤¿¡£ ¥í¡¼¥«¥ëÇÛÎó¤ËÃͤò³ÊǼ¤¹¤ëÁ°¤Ëdelete¤¹¤ë¤ÈÉÔ¶ñ¹ç¤¬È¯À¸¤¹¤ë¤Î¤Ç¤¹¤«¤é¡¢delete¤¹¤ëÁ°¤Ë¥í¡¼¥«¥ëÇÛÎó¤ËÃͤò³ÊǼ¤¹¤ì¤ÐÎɤ¤¤Î¤Ç¤¹¡£ ¢£¥Æ¥¹¥È­¦¡¡Àµ¾ï ¨¢BEGIN { ¨¢ a[1] = 100 ¨¢ print "¸Æ¤Ó½Ð¤·Á°: " a[1] ¨¢ test() ¨¢ print "¸Æ¤Ó½Ð¤·¸å: " a[1] ¨¢} ¨¢function test(a) { ¨¢ a[1] = 1 #//¥À¥ß¡¼ ¨¢ delete a ¨¢ print "¸Æ¤Ó½Ð¤·Ãæ: " length(a) ¨¢} ¢¢·ë²Ì ¨¢¸Æ¤Ó½Ð¤·Á°: 100 ¨¢¸Æ¤Ó½Ð¤·Ãæ: 0 ¨¢¸Æ¤Ó½Ð¤·¸å: 100 ¢£¥Æ¥¹¥È­§¡¡Àµ¾ï ¨¢BEGIN { ¨¢ a[1] = 100 ¨¢ print "¸Æ¤Ó½Ð¤·Á°: " a[1] ¨¢ test() ¨¢ print "¸Æ¤Ó½Ð¤·¸å: " a[1] ¨¢} ¨¢function test(a,i) { ¨¢ a[1] = 1 #//¥À¥ß¡¼ ¨¢ delete a #//³Î¼Â¤Ë¶õ¤ÎÇÛÎó¤Ë¤¹¤ë¡£ ¨¢ a[length(a)+1] = 200 ¨¢ a[length(a)+1] = 300 ¨¢ a[length(a)+1] = 400 ¨¢ for(i = 1; i <= length(a); i++) { ¨¢ print i ": " a[i] ¨¢ } ¨¢} ¢¢·ë²Ì ¨¢¸Æ¤Ó½Ð¤·Á°: 100 ¨¢1: 200 ¨¢2: 300 ¨¢3: 400 ¨¢¸Æ¤Ó½Ð¤·¸å: 100 Àµ¤·¤¤·ë²Ì¤Ë¤Ê¤ê¤Þ¤·¤¿¡£ ˺¤ì¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¤¿¤á¤Ë¤Ï¡¢¾ï¤Ë´Ø¿ô¤ÎÀèƬ¤Ç¥í¡¼¥«¥ëÊÑ¿ô¤ò½é´ü²½¤¹¤ë¤Î¤ò¡¢Äê·¿¤È¤¹¤ì¤ÐÎɤ¤¤È»×¤¤¤Þ¤¹¡£ ¢£Äê·¿ ¨¢BEGIN { ¨¢ test(1,2,3) ¨¢} ¨¢function test(x,y,z,t1,t2,t3,a1,a2,a3) { #//x,y,z¤Ï°ú¿ô¡£t1,t2,t3¤Ï¥í¡¼¥«¥ëÊÑ¿ô¡£a1,a2,a3¤Ï¥í¡¼¥«¥ëÇÛÎó¡£ ¨¢ a1[1] = 1 #//¥À¥ß¡¼ ¨¢ delete a1 #//³Î¼Â¤Ë¶õ¤ÎÇÛÎó¤Ë¤¹¤ë¡£ ¨¢ a2[1] = 1 #//¥À¥ß¡¼ ¨¢ delete a2 #//³Î¼Â¤Ë¶õ¤ÎÇÛÎó¤Ë¤¹¤ë¡£ ¨¢ a3[1] = 1 #//¥À¥ß¡¼ ¨¢ delete a3 #//³Î¼Â¤Ë¶õ¤ÎÇÛÎó¤Ë¤¹¤ë¡£ ¨¢ ¡Ä ¨¢} °Ê²¼¡¢Ê䭤Ǥ¹¡£ ¥í¡¼¥«¥ëÇÛÎó¤ò»ÈÍѤ¹¤ëÁ°¤Îdelete¼«ÂΤ¬ÉÔÍפǤϡ©¤È»×¤ï¤ì¤ë¤«¤âÃΤì¤Þ¤»¤ó¤¬¡¢É¬ÍפǤ¹¡£ ¥í¡¼¥«¥ëÇÛÎó¤ò»ÈÍѤ¹¤ëÁ°¤Ëdelete¤·¤Æ¤ª¤«¤Ê¤¤¤È¡¢°Ê²¼¤Î¤è¤¦¤Ê¥³¡¼¥É¤¬¥¨¥é¡¼¤Ë¤Ê¤ê¤Þ¤¹¡£ ¢£¥Æ¥¹¥È­¨¡¡¥¨¥é¡¼ ¨¢BEGIN { ¨¢ a[1] = 100 ¨¢ print "¸Æ¤Ó½Ð¤·Á°: " a[1] ¨¢ test() ¨¢ print "¸Æ¤Ó½Ð¤·¸å: " a[1] ¨¢} ¨¢function test(a,n,i) { ¨¢ n = length(a) ¨¢ a[n+1] = 200 ¨¢ n = length(a) ¨¢ a[n+1] = 300 ¨¢ n = length(a) ¨¢ a[n+1] = 400 ¨¢ for(i = 1; i <= length(a); i++) { ¨¢ print i ": " a[i] ¨¢ } ¨¢} ¢¢·ë²Ì ¨¢¸Æ¤Ó½Ð¤·Á°: 100 ¨¢gawk: test8.awk:9: Ã×̿Ū: ¥¹¥«¥é¡¼¥Ñ¥é¥á¡¼¥¿ `a' ¤òÇÛÎó¤È¤·¤Æ»ÈÍѤ·¤Æ¤¤¤Þ¤¹¡£ ¥¨¥é¤Ë¤Ê¤ëÍýͳ¤Ï¡¢Ì¤»ÈÍѤÎÊÑ¿ô¤ËÂФ·¤Ælength()¤ò»È¤Ã¤¿»þÅÀ¤Ç¡¢¤½¤ÎÊÑ¿ô¤Ï¥¹¥«¥é¡¼ÊÑ¿ô¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¦¤«¤é¤Ç¤¹¡£ Àè¤Ëdelete¤·¤Æ¤ª¤±¤Ð¡¢¤½¤ÎÊÑ¿ô¤ÏÇÛÎóÊÑ¿ô¤Ë¤Ê¤ë¤Î¤Ç¡¢¾åµ­¤Î¥¨¥é¡¼¤ÏȯÀ¸¤·¤Þ¤»¤ó¡£ ¢£¥Æ¥¹¥È­©¡¡Àµ¾ï ¨¢BEGIN { ¨¢ a[1] = 100 ¨¢ print "¸Æ¤Ó½Ð¤·Á°: " a[1] ¨¢ test() ¨¢ print "¸Æ¤Ó½Ð¤·¸å: " a[1] ¨¢} ¨¢function test(a,n,i) { ¨¢ a[1] = 1 #//¥À¥ß¡¼ ¨¢ delete a #//³Î¼Â¤Ë¶õ¤ÎÇÛÎó¤Ë¤¹¤ë¡£ ¨¢ n = length(a) ¨¢ a[n+1] = 200 ¨¢ n = length(a) ¨¢ a[n+1] = 300 ¨¢ n = length(a) ¨¢ a[n+1] = 400 ¨¢ for(i = 1; i <= length(a); i++) { ¨¢ print i ": " a[i] ¨¢ } ¨¢} ¢¢·ë²Ì ¨¢¸Æ¤Ó½Ð¤·Á°: 100 ¨¢1: 200 ¨¢2: 300 ¨¢3: 400 ¨¢¸Æ¤Ó½Ð¤·¸å: 100 * Sun Jun 02 23:59:59 JST 2019 Naoyuki Sawa - ¹½Â¤Âΰú¿ô¤Î¸Æ¤Ó½Ð¤·µ¬Ì󤬥ޥ˥奢¥ë¤ÎÀâÌÀ¤È°ã¤¦ ¢¢¥Þ¥Ë¥å¥¢¥ë¤ËÀâÌÀ¤µ¤ì¤Æ¤¤¤ë¡¢¹½Â¤Âΰú¿ô¤Î¸Æ¤Ó½Ð¤·µ¬Ìó P/ECE³«È¯´Ä¶­¤ÎC¥³¥ó¥Ñ¥¤¥é¤Ï¡¢¹½Â¤Âΰú¿ô¤ò¥¹¥¿¥Ã¥¯¤ËÀѤó¤ÇÅϤ·¤Þ¤¹¡£ ¡ÖS5U1C33000C Manual (S1C33 Family C¥³¥ó¥Ñ¥¤¥é¥Ñ¥Ã¥±¡¼¥¸) (Ver.4)¡×(C:\usr\PIECE\docs\datasheet\EPSON\S5U1C33000C_J.pdf) p.85¡Ø6.5.4 ´Ø¿ô¸Æ¤Ó½Ð¤·¡Ù¡ü¹½Â¤Âΰú¿ô¤Î°·¤¤ ¨¢°ú¿ô¤¬¹½Â¤ÂΥǡ¼¥¿¤Î¾ì¹ç¡¢¹½Â¤ÂΤΥá¥ó¥Ð¡¼¤ÎÃͤϥ¹¥¿¥Ã¥¯¤ò²ð¤·¤ÆÅϤµ¤ì¤Þ¤¹¡£ ¨¢Îã: struct _foo { ¨¢ int a; ¨¢ short b; ¨¢ char c; ¨¢ }; ¨¢ callee(struct _foo foo, int d); ¨¢¾åµ­Îã¤Ç¤Ïd¤Î¤ß¤¬°ú¿ôÅϤ·Íѥ쥸¥¹¥¿(R12)¤Ë³ÊǼ¤µ¤ì¡¢foo¤Ï¤¹¤Ù¤Æ¥¹¥¿¥Ã¥¯¤Ë³ÊǼ¤µ¤ì¤Þ¤¹¡£ ¢¢¥Þ¥Ë¥å¥¢¥ë¤ËÀâÌÀ¤µ¤ì¤Æ¤¤¤Ê¤¤¡¢¹½Â¤Âΰú¿ô¤Î¸Æ¤Ó½Ð¤·µ¬Ìó ¤Û¤È¤ó¤É¤Î¾ì¹ç¤Ï¥Þ¥Ë¥å¥¢¥ë¤ÎÀâÌÀ¤É¤ª¤ê¤Î¥³¡¼¥É¤¬À¸À®¤µ¤ì¤ë¤Î¤Ç¤¹¤¬¡¢ÆÃÄê¤Î¥±¡¼¥¹¤ÇÀâÌÀ¤È°ã¤¦¥³¡¼¥É¤¬À¸À®¤µ¤ì¤ë»ö¤Ëµ¤ÉÕ¤­¤Þ¤·¤¿¡£ ÆÃÄê¤Î¥±¡¼¥¹¤È¤Ï¡¢¡Ø¹½Â¤ÂΤΥá¥ó¥Ð¤¬32¥Ó¥Ã¥È°ÊÆâ¤Ç¡¤³î¤Ä¡¤°ìÍ×ÁǤÀ¤±¤Ç¤¢¤ë¾ì¹ç¡Ù¤Ç¤¹¡£ ¨¢Îã: struct _foo { ¨¢ int a; //short¤Ç¤âchar¤Ç¤âƱ¤¸¡£ ¨¢ }; ¨¢ callee(struct _foo foo, int d); ¨¢¾åµ­Îã¤Ç¤Ï¡¢foo¤âd¤â°ú¿ôÅϤ·Íѥ쥸¥¹¥¿(R12,R13)¤Ë³ÊǼ¤µ¤ì¤Þ¤¹¡£ ¨¢Îã: struct _foo { ¨¢ int a[1]; //short¤Ç¤âchar¤Ç¤âƱ¤¸¡£ ¨¢ }; ¨¢ callee(struct _foo foo, int d); ¨¢¾åµ­Îã¤Ç¤â¡¢foo¤âd¤â°ú¿ôÅϤ·Íѥ쥸¥¹¥¿(R12,R13)¤Ë³ÊǼ¤µ¤ì¤Þ¤¹¡£ ¨¢Îã: struct _foo { ¨¢ int a[2]; //short¤Ç¤âchar¤Ç¤âƱ¤¸¡£ ¨¢ }; ¨¢ callee(struct _foo foo, int d); ¨¢¾åµ­Îã¤Ç¤Ïd¤Î¤ß¤¬°ú¿ôÅϤ·Íѥ쥸¥¹¥¿(R12)¤Ë³ÊǼ¤µ¤ì¡¢foo¤Ï¤¹¤Ù¤Æ¥¹¥¿¥Ã¥¯¤Ë³ÊǼ¤µ¤ì¤Þ¤¹¡£ ¨¢Îã: struct _foo { ¨¢ long long a; //a[1]¤Ç¤âa[2]¤Ç¤âƱ¤¸¡£ ¨¢ }; ¨¢ callee(struct _foo foo, int d); ¨¢¾åµ­Îã¤Ç¤Ïd¤Î¤ß¤¬°ú¿ôÅϤ·Íѥ쥸¥¹¥¿(R12)¤Ë³ÊǼ¤µ¤ì¡¢foo¤Ï¤¹¤Ù¤Æ¥¹¥¿¥Ã¥¯¤Ë³ÊǼ¤µ¤ì¤Þ¤¹¡£ ¢¢¸¡¾Ú ¤¤¤í¤¤¤í¤Ê¥Ñ¥¿¡¼¥ó¤Ç¸¡¾Ú¤·¤Æ¡¢¾åµ­¤Î¤È¤ª¤ê¤Î·ë²Ì¤Ë¤Ê¤ë»ö¤ò³Îǧ¤·¤Þ¤·¤¿¡£ ±¦Ã¼¤Ë¡Ö¢¨¡×¤òÉÕ¤±¤¿¥Ñ¥¿¡¼¥ó¤¬Á°½Ò¤Î¡ØÆÃÄê¤Î¥±¡¼¥¹¡Ù¤ËÁêÅö¤·¡¢¡ÖS5U1C33000C Manual¡×¤Ç¤ÏÀâÌÀ¤µ¤ì¤Æ¤¤¤Ê¤¤¸Æ¤Ó½Ð¤·µ¬Ìó¤È¤Ê¤ê¤Þ¤¹¡£ ¨®¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¸¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¸¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¸¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¯ ¨­¹½Â¤ÂÎ ¨¢´Ø¿ô ¨¢°ú¿ô¥ì¥¸¥¹¥¿ ¨¢Ìá¤êÃͥ쥸¥¹¥¿ ¨­ ¨·¨¡¨¡¨¡¨¡¨¡¨¨¨¡¨¡¨¡¨¨¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¨¨¡¨¡¨¡¨¨¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¨¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¨¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¨¨¡¨¡¨¨¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¨¨¡¨¡¨¹ ¨­Í×ÁǤη¿ ¨¢Í×ÁÇ¿ô¨¢ÄêµÁÎã ¨¢°ú¿ô ¨¢Ìá¤êÃͨ¢ÄêµÁÎã ¨¢%r12 ¨¢%r13 ¨¢%r14 ¨¢%r15¨¢[%sp+4¡Á] ¨¢%r10 ¨¢%r11¨­ ¨²¨¬¨¬¨¬¨¬¨¬¨»¨¬¨¬¨¬¨»¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨»¨¬¨¬¨¬¨¬¨¬¨¬¨»¨¬¨¬¨¬¨»¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨»¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨»¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨»¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨»¨¬¨¬¨»¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨»¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨»¨¬¨¬¨´ ¨­char ¨¢1 ¨¢struct _8_1 { int8_t a[1]; } ¨¢¹½Â¤ÂÎ ¨¢Ìµ¤· ¨¢void callee_8_1_V_(struct _8_1 s) ¨¢ºÇ¾å°Ì8¥Ó¥Ã¥È¤Ë¹½Â¤Âΰú¿ô¤ÎÃÍ ¨¢ ¨¢ ¨¢ ¨¢ ¨¢ ¨¢ ¨­¢¨ ¨­ ¨¢ ¨¢ ¨§¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¹ ¨­ ¨¢ ¨¢ ¨¢¹½Â¤ÂÎ,À°¿ô ¨¢ ¨¢void callee_8_1_VA(struct _8_1 s, int t) ¨¢ºÇ¾å°Ì8¥Ó¥Ã¥È¤Ë¹½Â¤Âΰú¿ô¤ÎÃÍ ¨¢À°¿ô°ú¿ô¤ÎÃÍ ¨¢ ¨¢ ¨¢ ¨¢ ¨¢ ¨­¢¨ ¨­ ¨¢ ¨¢ ¨§¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¹ ¨­ ¨¢ ¨¢ ¨¢À°¿ô,¹½Â¤ÂÎ ¨¢ ¨¢void callee_8_1_VB(int t, struct _8_1 s) ¨¢À°¿ô°ú¿ô¤ÎÃÍ ¨¢ºÇ¾å°Ì8¥Ó¥Ã¥È¤Ë¹½Â¤Âΰú¿ô¤ÎÃÍ ¨¢ ¨¢ ¨¢ ¨¢ ¨¢ ¨­¢¨ ¨­ ¨¢ ¨¢ ¨§¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¹ ¨­ ¨¢ ¨¢ ¨¢¹½Â¤ÂÎ ¨¢¹½Â¤ÂΨ¢struct _8_1 callee_8_1_S_(struct _8_1 s) ¨¢Ìá¤êÃͤò³ÊǼ¤¹¤ë¹½Â¤ÂΤΥݥ¤¥ó¥¿¨¢ºÇ¾å°Ì8¥Ó¥Ã¥È¤Ë¹½Â¤Âΰú¿ô¤ÎÃÍ ¨¢ ¨¢ ¨¢ ¨¢Ìá¤êÃͤò³ÊǼ¤·¤¿¹½Â¤ÂΤΥݥ¤¥ó¥¿¨¢ ¨­¢¨ ¨­ ¨¢ ¨¢ ¨§¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¹ ¨­ ¨¢ ¨¢ ¨¢¹½Â¤ÂÎ,À°¿ô ¨¢ ¨¢struct _8_1 callee_8_1_SA(struct _8_1 s, int t) ¨¢Ìá¤êÃͤò³ÊǼ¤¹¤ë¹½Â¤ÂΤΥݥ¤¥ó¥¿¨¢ºÇ¾å°Ì8¥Ó¥Ã¥È¤Ë¹½Â¤Âΰú¿ô¤ÎÃÍ ¨¢À°¿ô°ú¿ô¤ÎÃÍ ¨¢ ¨¢ ¨¢Ìá¤êÃͤò³ÊǼ¤·¤¿¹½Â¤ÂΤΥݥ¤¥ó¥¿¨¢ ¨­¢¨ ¨­ ¨¢ ¨¢ ¨§¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¹ ¨­ ¨¢ ¨¢ ¨¢À°¿ô,¹½Â¤ÂÎ ¨¢ ¨¢struct _8_1 callee_8_1_SB(int t, struct _8_1 s) ¨¢Ìá¤êÃͤò³ÊǼ¤¹¤ë¹½Â¤ÂΤΥݥ¤¥ó¥¿¨¢À°¿ô°ú¿ô¤ÎÃÍ ¨¢ºÇ¾å°Ì8¥Ó¥Ã¥È¤Ë¹½Â¤Âΰú¿ô¤ÎÃÍ ¨¢ ¨¢ ¨¢Ìá¤êÃͤò³ÊǼ¤·¤¿¹½Â¤ÂΤΥݥ¤¥ó¥¿¨¢ ¨­¢¨ ¨­ ¨§¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¹ ¨­ ¨¢2 ¨¢struct _8_2 { int8_t a[2]; } ¨¢¹½Â¤ÂÎ ¨¢Ìµ¤· ¨¢void callee_8_2_V_(struct _8_2 s) ¨¢ ¨¢ ¨¢ ¨¢ ¨¢¹½Â¤Âΰú¿ô¤ÎÃͨ¢ ¨¢ ¨­ ¨­ ¨¢ ¨¢ ¨§¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¹ ¨­ ¨¢ ¨¢ ¨¢¹½Â¤ÂÎ,À°¿ô ¨¢ ¨¢void callee_8_2_VA(struct _8_2 s, int t) ¨¢À°¿ô°ú¿ô¤ÎÃÍ ¨¢ ¨¢ ¨¢ ¨¢¹½Â¤Âΰú¿ô¤ÎÃͨ¢ ¨¢ ¨­ ¨­ ¨¢ ¨¢ ¨§¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¹ ¨­ ¨¢ ¨¢ ¨¢À°¿ô,¹½Â¤ÂÎ ¨¢ ¨¢void callee_8_2_VB(int t, struct _8_2 s) ¨¢À°¿ô°ú¿ô¤ÎÃÍ ¨¢ ¨¢ ¨¢ ¨¢¹½Â¤Âΰú¿ô¤ÎÃͨ¢ ¨¢ ¨­ ¨­ ¨¢ ¨¢ ¨§¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¹ ¨­ ¨¢ ¨¢ ¨¢¹½Â¤ÂÎ ¨¢¹½Â¤ÂΨ¢struct _8_2 callee_8_2_S_(struct _8_2 s) ¨¢Ìá¤êÃͤò³ÊǼ¤¹¤ë¹½Â¤ÂΤΥݥ¤¥ó¥¿¨¢ ¨¢ ¨¢ ¨¢¹½Â¤Âΰú¿ô¤ÎÃͨ¢Ìá¤êÃͤò³ÊǼ¤·¤¿¹½Â¤ÂΤΥݥ¤¥ó¥¿¨¢ ¨­ ¨­ ¨¢ ¨¢ ¨§¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¹ ¨­ ¨¢ ¨¢ ¨¢¹½Â¤ÂÎ,À°¿ô ¨¢ ¨¢struct _8_2 callee_8_2_SA(struct _8_2 s, int t) ¨¢Ìá¤êÃͤò³ÊǼ¤¹¤ë¹½Â¤ÂΤΥݥ¤¥ó¥¿¨¢À°¿ô°ú¿ô¤ÎÃÍ ¨¢ ¨¢ ¨¢¹½Â¤Âΰú¿ô¤ÎÃͨ¢Ìá¤êÃͤò³ÊǼ¤·¤¿¹½Â¤ÂΤΥݥ¤¥ó¥¿¨¢ ¨­ ¨­ ¨¢ ¨¢ ¨§¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¹ ¨­ ¨¢ ¨¢ ¨¢À°¿ô,¹½Â¤ÂÎ ¨¢ ¨¢struct _8_2 callee_8_2_SB(int t, struct _8_2 s) ¨¢Ìá¤êÃͤò³ÊǼ¤¹¤ë¹½Â¤ÂΤΥݥ¤¥ó¥¿¨¢À°¿ô°ú¿ô¤ÎÃÍ ¨¢ ¨¢ ¨¢¹½Â¤Âΰú¿ô¤ÎÃͨ¢Ìá¤êÃͤò³ÊǼ¤·¤¿¹½Â¤ÂΤΥݥ¤¥ó¥¿¨¢ ¨­ ¨·¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¹ ¨­short ¨¢1 ¨¢struct _16_1 { int16_t a[1]; }¨¢¹½Â¤ÂÎ ¨¢Ìµ¤· ¨¢void callee_16_1_V_(struct _16_1 s) ¨¢¾å°Ì16¥Ó¥Ã¥È¤Ë¹½Â¤Âΰú¿ô¤ÎÃÍ ¨¢ ¨¢ ¨¢ ¨¢ ¨¢ ¨¢ ¨­¢¨ ¨­ ¨¢ ¨¢ ¨§¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¹ ¨­ ¨¢ ¨¢ ¨¢¹½Â¤ÂÎ,À°¿ô ¨¢ ¨¢void callee_16_1_VA(struct _16_1 s, int t) ¨¢¾å°Ì16¥Ó¥Ã¥È¤Ë¹½Â¤Âΰú¿ô¤ÎÃÍ ¨¢À°¿ô°ú¿ô¤ÎÃÍ ¨¢ ¨¢ ¨¢ ¨¢ ¨¢ ¨­¢¨ ¨­ ¨¢ ¨¢ ¨§¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¹ ¨­ ¨¢ ¨¢ ¨¢À°¿ô,¹½Â¤ÂÎ ¨¢ ¨¢void callee_16_1_VB(int t, struct _16_1 s) ¨¢À°¿ô°ú¿ô¤ÎÃÍ ¨¢¾å°Ì16¥Ó¥Ã¥È¤Ë¹½Â¤Âΰú¿ô¤ÎÃÍ ¨¢ ¨¢ ¨¢ ¨¢ ¨¢ ¨­¢¨ ¨­ ¨¢ ¨¢ ¨§¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¹ ¨­ ¨¢ ¨¢ ¨¢¹½Â¤ÂÎ ¨¢¹½Â¤ÂΨ¢struct _16_1 callee_16_1_S_(struct _16_1 s) ¨¢Ìá¤êÃͤò³ÊǼ¤¹¤ë¹½Â¤ÂΤΥݥ¤¥ó¥¿¨¢¾å°Ì16¥Ó¥Ã¥È¤Ë¹½Â¤Âΰú¿ô¤ÎÃÍ ¨¢ ¨¢ ¨¢ ¨¢Ìá¤êÃͤò³ÊǼ¤·¤¿¹½Â¤ÂΤΥݥ¤¥ó¥¿¨¢ ¨­¢¨ ¨­ ¨¢ ¨¢ ¨§¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¹ ¨­ ¨¢ ¨¢ ¨¢¹½Â¤ÂÎ,À°¿ô ¨¢ ¨¢struct _16_1 callee_16_1_SA(struct _16_1 s, int t)¨¢Ìá¤êÃͤò³ÊǼ¤¹¤ë¹½Â¤ÂΤΥݥ¤¥ó¥¿¨¢¾å°Ì16¥Ó¥Ã¥È¤Ë¹½Â¤Âΰú¿ô¤ÎÃÍ ¨¢À°¿ô°ú¿ô¤ÎÃÍ ¨¢ ¨¢ ¨¢Ìá¤êÃͤò³ÊǼ¤·¤¿¹½Â¤ÂΤΥݥ¤¥ó¥¿¨¢ ¨­¢¨ ¨­ ¨¢ ¨¢ ¨§¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¹ ¨­ ¨¢ ¨¢ ¨¢À°¿ô,¹½Â¤ÂÎ ¨¢ ¨¢struct _16_1 callee_16_1_SB(int t, struct _16_1 s)¨¢Ìá¤êÃͤò³ÊǼ¤¹¤ë¹½Â¤ÂΤΥݥ¤¥ó¥¿¨¢À°¿ô°ú¿ô¤ÎÃÍ ¨¢¾å°Ì16¥Ó¥Ã¥È¤Ë¹½Â¤Âΰú¿ô¤ÎÃÍ ¨¢ ¨¢ ¨¢Ìá¤êÃͤò³ÊǼ¤·¤¿¹½Â¤ÂΤΥݥ¤¥ó¥¿¨¢ ¨­¢¨ ¨­ ¨§¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¹ ¨­ ¨¢2 ¨¢struct _16_2 { int16_t a[2]; }¨¢¹½Â¤ÂÎ ¨¢Ìµ¤· ¨¢void callee_16_2_V_(struct _16_2 s) ¨¢ ¨¢ ¨¢ ¨¢ ¨¢¹½Â¤Âΰú¿ô¤ÎÃͨ¢ ¨¢ ¨­ ¨­ ¨¢ ¨¢ ¨§¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¹ ¨­ ¨¢ ¨¢ ¨¢¹½Â¤ÂÎ,À°¿ô ¨¢ ¨¢void callee_16_2_VA(struct _16_2 s, int t) ¨¢À°¿ô°ú¿ô¤ÎÃÍ ¨¢ ¨¢ ¨¢ ¨¢¹½Â¤Âΰú¿ô¤ÎÃͨ¢ ¨¢ ¨­ ¨­ ¨¢ ¨¢ ¨§¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¹ ¨­ ¨¢ ¨¢ ¨¢À°¿ô,¹½Â¤ÂÎ ¨¢ ¨¢void callee_16_2_VB(int t, struct _16_2 s) ¨¢À°¿ô°ú¿ô¤ÎÃÍ ¨¢ ¨¢ ¨¢ ¨¢¹½Â¤Âΰú¿ô¤ÎÃͨ¢ ¨¢ ¨­ ¨­ ¨¢ ¨¢ ¨§¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¹ ¨­ ¨¢ ¨¢ ¨¢¹½Â¤ÂÎ ¨¢¹½Â¤ÂΨ¢struct _16_2 callee_16_2_S_(struct _16_2 s) ¨¢Ìá¤êÃͤò³ÊǼ¤¹¤ë¹½Â¤ÂΤΥݥ¤¥ó¥¿¨¢ ¨¢ ¨¢ ¨¢¹½Â¤Âΰú¿ô¤ÎÃͨ¢Ìá¤êÃͤò³ÊǼ¤·¤¿¹½Â¤ÂΤΥݥ¤¥ó¥¿¨¢ ¨­ ¨­ ¨¢ ¨¢ ¨§¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¹ ¨­ ¨¢ ¨¢ ¨¢¹½Â¤ÂÎ,À°¿ô ¨¢ ¨¢struct _16_2 callee_16_2_SA(struct _16_2 s, int t)¨¢Ìá¤êÃͤò³ÊǼ¤¹¤ë¹½Â¤ÂΤΥݥ¤¥ó¥¿¨¢À°¿ô°ú¿ô¤ÎÃÍ ¨¢ ¨¢ ¨¢¹½Â¤Âΰú¿ô¤ÎÃͨ¢Ìá¤êÃͤò³ÊǼ¤·¤¿¹½Â¤ÂΤΥݥ¤¥ó¥¿¨¢ ¨­ ¨­ ¨¢ ¨¢ ¨§¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¹ ¨­ ¨¢ ¨¢ ¨¢À°¿ô,¹½Â¤ÂÎ ¨¢ ¨¢struct _16_2 callee_16_2_SB(int t, struct _16_2 s)¨¢Ìá¤êÃͤò³ÊǼ¤¹¤ë¹½Â¤ÂΤΥݥ¤¥ó¥¿¨¢À°¿ô°ú¿ô¤ÎÃÍ ¨¢ ¨¢ ¨¢¹½Â¤Âΰú¿ô¤ÎÃͨ¢Ìá¤êÃͤò³ÊǼ¤·¤¿¹½Â¤ÂΤΥݥ¤¥ó¥¿¨¢ ¨­ ¨·¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¹ ¨­int ¨¢1 ¨¢struct _32_1 { int32_t a[1]; }¨¢¹½Â¤ÂÎ ¨¢Ìµ¤· ¨¢void callee_32_1_V_(struct _32_1 s) ¨¢¹½Â¤Âΰú¿ô¤ÎÃÍ ¨¢ ¨¢ ¨¢ ¨¢ ¨¢ ¨¢ ¨­¢¨ ¨­ ¨¢ ¨¢ ¨§¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¹ ¨­ ¨¢ ¨¢ ¨¢¹½Â¤ÂÎ,À°¿ô ¨¢ ¨¢void callee_32_1_VA(struct _32_1 s, int t) ¨¢¹½Â¤Âΰú¿ô¤ÎÃÍ ¨¢À°¿ô°ú¿ô¤ÎÃÍ ¨¢ ¨¢ ¨¢ ¨¢ ¨¢ ¨­¢¨ ¨­ ¨¢ ¨¢ ¨§¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¹ ¨­ ¨¢ ¨¢ ¨¢À°¿ô,¹½Â¤ÂÎ ¨¢ ¨¢void callee_32_1_VB(int t, struct _32_1 s) ¨¢À°¿ô°ú¿ô¤ÎÃÍ ¨¢¹½Â¤Âΰú¿ô¤ÎÃÍ ¨¢ ¨¢ ¨¢ ¨¢ ¨¢ ¨­¢¨ ¨­ ¨¢ ¨¢ ¨§¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¹ ¨­ ¨¢ ¨¢ ¨¢¹½Â¤ÂÎ ¨¢¹½Â¤ÂΨ¢struct _32_1 callee_32_1_S_(struct _32_1 s) ¨¢Ìá¤êÃͤò³ÊǼ¤¹¤ë¹½Â¤ÂΤΥݥ¤¥ó¥¿¨¢¹½Â¤Âΰú¿ô¤ÎÃÍ ¨¢ ¨¢ ¨¢ ¨¢Ìá¤êÃͤò³ÊǼ¤·¤¿¹½Â¤ÂΤΥݥ¤¥ó¥¿¨¢ ¨­¢¨ ¨­ ¨¢ ¨¢ ¨§¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¹ ¨­ ¨¢ ¨¢ ¨¢¹½Â¤ÂÎ,À°¿ô ¨¢ ¨¢struct _32_1 callee_32_1_SA(struct _32_1 s, int t)¨¢Ìá¤êÃͤò³ÊǼ¤¹¤ë¹½Â¤ÂΤΥݥ¤¥ó¥¿¨¢¹½Â¤Âΰú¿ô¤ÎÃÍ ¨¢À°¿ô°ú¿ô¤ÎÃÍ ¨¢ ¨¢ ¨¢Ìá¤êÃͤò³ÊǼ¤·¤¿¹½Â¤ÂΤΥݥ¤¥ó¥¿¨¢ ¨­¢¨ ¨­ ¨¢ ¨¢ ¨§¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¹ ¨­ ¨¢ ¨¢ ¨¢À°¿ô,¹½Â¤ÂÎ ¨¢ ¨¢struct _32_1 callee_32_1_SB(int t, struct _32_1 s)¨¢Ìá¤êÃͤò³ÊǼ¤¹¤ë¹½Â¤ÂΤΥݥ¤¥ó¥¿¨¢À°¿ô°ú¿ô¤ÎÃÍ ¨¢¹½Â¤Âΰú¿ô¤ÎÃÍ ¨¢ ¨¢ ¨¢Ìá¤êÃͤò³ÊǼ¤·¤¿¹½Â¤ÂΤΥݥ¤¥ó¥¿¨¢ ¨­¢¨ ¨­ ¨§¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¹ ¨­ ¨¢2 ¨¢struct _32_2 { int32_t a[2]; }¨¢¹½Â¤ÂÎ ¨¢Ìµ¤· ¨¢void callee_32_2_V_(struct _32_2 s) ¨¢ ¨¢ ¨¢ ¨¢ ¨¢¹½Â¤Âΰú¿ô¤ÎÃͨ¢ ¨¢ ¨­ ¨­ ¨¢ ¨¢ ¨§¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¹ ¨­ ¨¢ ¨¢ ¨¢¹½Â¤ÂÎ,À°¿ô ¨¢ ¨¢void callee_32_2_VA(struct _32_2 s, int t) ¨¢À°¿ô°ú¿ô¤ÎÃÍ ¨¢ ¨¢ ¨¢ ¨¢¹½Â¤Âΰú¿ô¤ÎÃͨ¢ ¨¢ ¨­ ¨­ ¨¢ ¨¢ ¨§¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¹ ¨­ ¨¢ ¨¢ ¨¢À°¿ô,¹½Â¤ÂÎ ¨¢ ¨¢void callee_32_2_VB(int t, struct _32_2 s) ¨¢À°¿ô°ú¿ô¤ÎÃÍ ¨¢ ¨¢ ¨¢ ¨¢¹½Â¤Âΰú¿ô¤ÎÃͨ¢ ¨¢ ¨­ ¨­ ¨¢ ¨¢ ¨§¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¹ ¨­ ¨¢ ¨¢ ¨¢¹½Â¤ÂÎ ¨¢¹½Â¤ÂΨ¢struct _32_2 callee_32_2_S_(struct _32_2 s) ¨¢Ìá¤êÃͤò³ÊǼ¤¹¤ë¹½Â¤ÂΤΥݥ¤¥ó¥¿¨¢ ¨¢ ¨¢ ¨¢¹½Â¤Âΰú¿ô¤ÎÃͨ¢Ìá¤êÃͤò³ÊǼ¤·¤¿¹½Â¤ÂΤΥݥ¤¥ó¥¿¨¢ ¨­ ¨­ ¨¢ ¨¢ ¨§¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¹ ¨­ ¨¢ ¨¢ ¨¢¹½Â¤ÂÎ,À°¿ô ¨¢ ¨¢struct _32_2 callee_32_2_SA(struct _32_2 s, int t)¨¢Ìá¤êÃͤò³ÊǼ¤¹¤ë¹½Â¤ÂΤΥݥ¤¥ó¥¿¨¢À°¿ô°ú¿ô¤ÎÃÍ ¨¢ ¨¢ ¨¢¹½Â¤Âΰú¿ô¤ÎÃͨ¢Ìá¤êÃͤò³ÊǼ¤·¤¿¹½Â¤ÂΤΥݥ¤¥ó¥¿¨¢ ¨­ ¨­ ¨¢ ¨¢ ¨§¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¹ ¨­ ¨¢ ¨¢ ¨¢À°¿ô,¹½Â¤ÂÎ ¨¢ ¨¢struct _32_2 callee_32_2_SB(int t, struct _32_2 s)¨¢Ìá¤êÃͤò³ÊǼ¤¹¤ë¹½Â¤ÂΤΥݥ¤¥ó¥¿¨¢À°¿ô°ú¿ô¤ÎÃÍ ¨¢ ¨¢ ¨¢¹½Â¤Âΰú¿ô¤ÎÃͨ¢Ìá¤êÃͤò³ÊǼ¤·¤¿¹½Â¤ÂΤΥݥ¤¥ó¥¿¨¢ ¨­ ¨·¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¹ ¨­long long ¨¢1 ¨¢struct _64_1 { int64_t a[1]; }¨¢¹½Â¤ÂÎ ¨¢Ìµ¤· ¨¢void callee_64_1_V_(struct _64_1 s) ¨¢ ¨¢ ¨¢ ¨¢ ¨¢¹½Â¤Âΰú¿ô¤ÎÃͨ¢ ¨¢ ¨­ ¨­ ¨¢ ¨¢ ¨§¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¹ ¨­ ¨¢ ¨¢ ¨¢¹½Â¤ÂÎ,À°¿ô ¨¢ ¨¢void callee_64_1_VA(struct _64_1 s, int t) ¨¢À°¿ô°ú¿ô¤ÎÃÍ ¨¢ ¨¢ ¨¢ ¨¢¹½Â¤Âΰú¿ô¤ÎÃͨ¢ ¨¢ ¨­ ¨­ ¨¢ ¨¢ ¨§¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¹ ¨­ ¨¢ ¨¢ ¨¢À°¿ô,¹½Â¤ÂÎ ¨¢ ¨¢void callee_64_1_VB(int t, struct _64_1 s) ¨¢À°¿ô°ú¿ô¤ÎÃÍ ¨¢ ¨¢ ¨¢ ¨¢¹½Â¤Âΰú¿ô¤ÎÃͨ¢ ¨¢ ¨­ ¨­ ¨¢ ¨¢ ¨§¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¹ ¨­ ¨¢ ¨¢ ¨¢¹½Â¤ÂÎ ¨¢¹½Â¤ÂΨ¢struct _64_1 callee_64_1_S_(struct _64_1 s) ¨¢Ìá¤êÃͤò³ÊǼ¤¹¤ë¹½Â¤ÂΤΥݥ¤¥ó¥¿¨¢ ¨¢ ¨¢ ¨¢¹½Â¤Âΰú¿ô¤ÎÃͨ¢Ìá¤êÃͤò³ÊǼ¤·¤¿¹½Â¤ÂΤΥݥ¤¥ó¥¿¨¢ ¨­ ¨­ ¨¢ ¨¢ ¨§¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¹ ¨­ ¨¢ ¨¢ ¨¢¹½Â¤ÂÎ,À°¿ô ¨¢ ¨¢struct _64_1 callee_64_1_SA(struct _64_1 s, int t)¨¢Ìá¤êÃͤò³ÊǼ¤¹¤ë¹½Â¤ÂΤΥݥ¤¥ó¥¿¨¢À°¿ô°ú¿ô¤ÎÃÍ ¨¢ ¨¢ ¨¢¹½Â¤Âΰú¿ô¤ÎÃͨ¢Ìá¤êÃͤò³ÊǼ¤·¤¿¹½Â¤ÂΤΥݥ¤¥ó¥¿¨¢ ¨­ ¨­ ¨¢ ¨¢ ¨§¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¹ ¨­ ¨¢ ¨¢ ¨¢À°¿ô,¹½Â¤ÂÎ ¨¢ ¨¢struct _64_1 callee_64_1_SB(int t, struct _64_1 s)¨¢Ìá¤êÃͤò³ÊǼ¤¹¤ë¹½Â¤ÂΤΥݥ¤¥ó¥¿¨¢À°¿ô°ú¿ô¤ÎÃÍ ¨¢ ¨¢ ¨¢¹½Â¤Âΰú¿ô¤ÎÃͨ¢Ìá¤êÃͤò³ÊǼ¤·¤¿¹½Â¤ÂΤΥݥ¤¥ó¥¿¨¢ ¨­ ¨­ ¨§¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¹ ¨­ ¨¢2 ¨¢struct _64_2 { int64_t a[2]; }¨¢¹½Â¤ÂÎ ¨¢Ìµ¤· ¨¢void callee_64_2_V_(struct _64_2 s) ¨¢ ¨¢ ¨¢ ¨¢ ¨¢¹½Â¤Âΰú¿ô¤ÎÃͨ¢ ¨¢ ¨­ ¨­ ¨¢ ¨¢ ¨§¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¹ ¨­ ¨¢ ¨¢ ¨¢¹½Â¤ÂÎ,À°¿ô ¨¢ ¨¢void callee_64_2_VA(struct _64_2 s, int t) ¨¢À°¿ô°ú¿ô¤ÎÃÍ ¨¢ ¨¢ ¨¢ ¨¢¹½Â¤Âΰú¿ô¤ÎÃͨ¢ ¨¢ ¨­ ¨­ ¨¢ ¨¢ ¨§¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¹ ¨­ ¨¢ ¨¢ ¨¢À°¿ô,¹½Â¤ÂÎ ¨¢ ¨¢void callee_64_2_VB(int t, struct _64_2 s) ¨¢À°¿ô°ú¿ô¤ÎÃÍ ¨¢ ¨¢ ¨¢ ¨¢¹½Â¤Âΰú¿ô¤ÎÃͨ¢ ¨¢ ¨­ ¨­ ¨¢ ¨¢ ¨§¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¹ ¨­ ¨¢ ¨¢ ¨¢¹½Â¤ÂÎ ¨¢¹½Â¤ÂΨ¢struct _64_2 callee_64_2_S_(struct _64_2 s) ¨¢Ìá¤êÃͤò³ÊǼ¤¹¤ë¹½Â¤ÂΤΥݥ¤¥ó¥¿¨¢ ¨¢ ¨¢ ¨¢¹½Â¤Âΰú¿ô¤ÎÃͨ¢Ìá¤êÃͤò³ÊǼ¤·¤¿¹½Â¤ÂΤΥݥ¤¥ó¥¿¨¢ ¨­ ¨­ ¨¢ ¨¢ ¨§¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¹ ¨­ ¨¢ ¨¢ ¨¢¹½Â¤ÂÎ,À°¿ô ¨¢ ¨¢struct _64_2 callee_64_2_SA(struct _64_2 s, int t)¨¢Ìá¤êÃͤò³ÊǼ¤¹¤ë¹½Â¤ÂΤΥݥ¤¥ó¥¿¨¢À°¿ô°ú¿ô¤ÎÃÍ ¨¢ ¨¢ ¨¢¹½Â¤Âΰú¿ô¤ÎÃͨ¢Ìá¤êÃͤò³ÊǼ¤·¤¿¹½Â¤ÂΤΥݥ¤¥ó¥¿¨¢ ¨­ ¨­ ¨¢ ¨¢ ¨§¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¹ ¨­ ¨¢ ¨¢ ¨¢À°¿ô,¹½Â¤ÂÎ ¨¢ ¨¢struct _64_2 callee_64_2_SB(int t, struct _64_2 s)¨¢Ìá¤êÃͤò³ÊǼ¤¹¤ë¹½Â¤ÂΤΥݥ¤¥ó¥¿¨¢À°¿ô°ú¿ô¤ÎÃÍ ¨¢ ¨¢ ¨¢¹½Â¤Âΰú¿ô¤ÎÃͨ¢Ìá¤êÃͤò³ÊǼ¤·¤¿¹½Â¤ÂΤΥݥ¤¥ó¥¿¨¢ ¨­ ¨±¨¬¨¬¨¬¨¬¨¬¨º¨¬¨¬¨¬¨º¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨º¨¬¨¬¨¬¨¬¨¬¨¬¨º¨¬¨¬¨¬¨º¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨º¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨º¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨º¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨º¨¬¨¬¨º¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨º¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨º¨¬¨¬¨° ¾å¤Îɽ¤Î¥¨¥¯¥»¥ëÈÇ¡§¡¡http://www.piece-me.org/piece-lab/struct/struct-20190602.xlsx ¸¡¾Ú¥×¥í¥°¥é¥à°ì¼°¡§¡¡http://www.piece-me.org/piece-lab/struct/struct-20190602.zip ¢¢¹½Â¤Âΰú¿ô¤¬¥ì¥¸¥¹¥¿¤Ë³ÊǼ¤µ¤ì¤ëÊý¼° ¤Á¤Ê¤ß¤Ë¡¢¡ØÆÃÄê¤Î¥±¡¼¥¹¡Ù¤Ë¤ª¤¤¤Æ¹½Â¤Âΰú¿ô¤¬¥ì¥¸¥¹¥¿¤Ë³ÊǼ¤µ¤ì¤ëÊý¼°¤â¡¢¾¯¡¹ÊѧŪ¤Ç¤¹¡£ 8¥Ó¥Ã¥È¤ä16¥Ó¥Ã¥È¤Î¹½Â¤ÂΤξì¹ç¡¢²¿¸Î¤«¡¢¾å°Ì¥Ó¥Ã¥È¦¤ËµÍ¤á¤Æ³ÊǼ¤µ¤ì¤ë¤Î¤Ç¤¹¡£ P/ECE¤ÎCPU S1C33¤Ï¥ê¥È¥ë¥¨¥ó¥Ç¥£¥¢¥ó¤Ç¡¢¤³¤ó¤Ê³ÊǼ¤Î»ÅÊý¤ò¤·¤Æ¤âÍøÅÀ¤Ï̵¤¤¤è¤¦¤Ë»×¤¤¤Þ¤¹¡£ ²¿¸Î¤³¤ó¤Ê¥³¡¼¥É¤¬À¸À®¤µ¤ì¤Æ¤¤¤ë¤Î¤«Ææ¤Ê¤Î¤Ç¤¹¤¬¡¢¤â¤·¤«¤¹¤ë¤È¡¢¸µ¤Ë¤Ê¤Ã¤¿C¥³¥ó¥Ñ¥¤¥é(MIPS¤Î¥Ó¥Ã¥°¥¨¥ó¥Ç¥£¥¢¥ó¥â¡¼¥É?)¤Î»ÅÍͤ¬¤½¤Î¤Þ¤Þ»Ä¤Ã¤Æ¤·¤Þ¤Ã¤Æ¤¤¤ë¤Î¤«¤âÃΤì¤Þ¤»¤ó¡£ ¼ÂºÝ¤ÎÆ°ºî¤È¤·¤Æ¤Ï¡¢¥Ó¥Ã¥È¥·¥Õ¥ÈÌ¿Î᤬Áý¤¨¤Æ¾¯¤·À­Ç½Äã²¼¤·¤Þ¤¹¤¬¡¢·ë²Ì¤Ë¤Ï±Æ¶Á¤¢¤ê¤Þ¤»¤ó¡£ ¢¢¹½Â¤ÂΤÎÌá¤êÃͤθƤӽФ·µ¬Ìó¤Ï¡¢¥Þ¥Ë¥å¥¢¥ë¤É¤ª¤ê ¹½Â¤Âΰú¿ô¤Î¸Æ¤Ó½Ð¤·µ¬Ì󤬡¢¡ØÆÃÄê¤Î¥±¡¼¥¹¡Ù¤Ë¤ª¤¤¤Æ¡¢¡ÖS5U1C33000C Manual¡×¤ÎÀâÌÀ¤È¤Ï°Û¤Ê¤ë¥³¡¼¥É¤¬À¸À®¤µ¤ì¤ë»ö¤òÀâÌÀ¤·¤Þ¤·¤¿¡£ °ìÊý¡¢¹½Â¤ÂΤÎÌá¤êÃͤθƤӽФ·µ¬Ìó¤Ë¤Ä¤¤¤Æ¤Ï¡¢Îã³°¤Ï̵¤¯¡¢¡ÖS5U1C33000C Manual¡×¤ÎÀâÌÀ¤É¤ª¤ê¤Ç¤¹¡£ ¤¿¤È¤¨¡¢¡Ø¹½Â¤ÂΤΥá¥ó¥Ð¤¬32¥Ó¥Ã¥È°ÊÆâ¤Ç¡¤³î¤Ä¡¤°ìÍ×ÁǤÀ¤±¤Ç¤¢¤ë¾ì¹ç¡Ù¤Ç¤¢¤Ã¤Æ¤â¡¢¾ï¤Ë¡¢ÀâÌÀ¤É¤ª¤ê¤Î¥³¡¼¥É¤¬À¸À®¤µ¤ì¤Þ¤¹¡£ ¹½Â¤ÂΤÎÌá¤êÃͤθƤӽФ·µ¬Ìó¤Ë¤Ä¤¤¤Æ¡¢¡ÖS5U1C33000C Manual¡×¤Î³ºÅö²Õ½ê¤ò°úÍѤ·¤Æ¤ª¤­¤Þ¤¹¡£ ¡ÖS5U1C33000C Manual (S1C33 Family C¥³¥ó¥Ñ¥¤¥é¥Ñ¥Ã¥±¡¼¥¸) (Ver.4)¡×(C:\usr\PIECE\docs\datasheet\EPSON\S5U1C33000C_J.pdf) p.85¡Ø6.5.4 ´Ø¿ô¸Æ¤Ó½Ð¤·¡Ù¡ü¹½Â¤ÂΤòÊÖ¤¹´Ø¿ô¤Ø¤Î°ú¿ôÅϤ· ¨¢¹½Â¤ÂΥǡ¼¥¿¤òÊÖ¤¹´Ø¿ô¤ò¸Æ¤Ó½Ð¤¹¾ì¹ç¡¢·ë²Ì¤ò³ÊǼ¤¹¤ë¹½Â¤ÂΤΥ¢¥É¥ì¥¹¤¬Âè1°ú¿ô¤È¤·¤ÆR12¥ì¥¸¥¹¥¿¤Ë³ÊǼ¤µ¤ì¡¢´Ø¿ô¤ËÅϤµ¤ì¤Þ¤¹¡£ ¨¢¤·¤¿¤¬¤Ã¤Æ¡¢¥½¡¼¥¹¾å¤Çµ­½Ò¤µ¤ì¤Æ¤¤¤ë°ú¿ô¤Ï1¤Ä¤º¤Ä·«¤ê²¼¤²¤é¤ì¤Þ¤¹¡£ ¨¢¡Áά¡Á ¨¢¸Æ¤Ó½Ð¤µ¤ì¤¿´Ø¿ô¤ÏÂè1°ú¿ô¤ÇÅϤµ¤ì¤¿¥Ý¥¤¥ó¥¿¤òÌá¤êÃͤȤ·¤ÆÊÖ¤·¤Þ¤¹¡£ ¢¢¤Þ¤È¤á ¸Æ¤Ó½Ð¤·Â¦´Ø¿ô¤â¡¤¸Æ¤Ó½Ð¤µ¤ì¤ë¦¤Î´Ø¿ô¤â¡¢Á´ÉôC¸À¸ì¤Ç½ñ¤¯¾ì¹ç¤Ï¡¢º£²óÀâÌÀ¤·¤¿ÅÀ¤Ë¤Ä¤¤¤Æ¡¢Æä˰ռ±¤¹¤ëɬÍפϤ¢¤ê¤Þ¤»¤ó¡£ ¸Æ¤Ó½Ð¤·Â¦´Ø¿ô¤È¡¤¸Æ¤Ó½Ð¤µ¤ì¤ë¦¤Î´Ø¿ô¤Î¸Æ¤Ó½Ð¤·µ¬Ì󤬰ìÃפ·¤Æ¤µ¤¨¤¤¤ì¤Ð¡¢ÌäÂê¤Ï̵¤¤¤«¤é¤Ç¤¹¡£ ¤·¤«¤·¡¢ÊÒÊý¤òC¸À¸ì¡¤ÊÒÊý¤ò¥¢¥»¥ó¥Ö¥é¤Ç½ñ¤¯¾ì¹ç¤Ï¡¢¡ØÆÃÄê¤Î¥±¡¼¥¹¡Ù¤ËÃí°Õ¤·¤Æ¡¢¥¢¥»¥ó¥Ö¥éÈǤδؿô¤ò½ñ¤¯É¬Íפ¬¤¢¤ê¤Þ¤¹¡£ * Wed Aug 30 02:13:02 JST 2017 Naoyuki Sawa - gcc33.exe¤¬switch¡Ácase¤ò̵Â̤ËÂ礭¤Ê¥¸¥ã¥ó¥×¥Æ¡¼¥Ö¥ë¤ËŸ³«¤¹¤ë ¢¢ÌäÂêÅÀ P/ECE³«È¯´Ä¶­¤Îgcc33.exe¤Ï¡¢switch¡Ácase¤ò¡¢ÌµÂ̤ËÂ礭¤Ê¥¸¥ã¥ó¥×¥Æ¡¼¥Ö¥ë¤ËŸ³«¤¹¤ë¾ì¹ç¤¬Í­¤ê¤Þ¤¹¡£ case¤ÎÃͤ¬¤¢¤ëÄøÅÙ¶¹¤¤ÈϰϤ˼ý¤Þ¤Ã¤Æ¤¤¤Æ¡¤¾°³î¤Ä¡¤Èô¤ÓÈô¤Ó¤Ç¤¢¤ë¾ì¹ç¤Ë¡¢¤½¤¦¤Ê¤ë»ö¤¬Â¿¤¤¤Ç¤¹¡£ ¤¿¤È¤¨¤Ð¡¢°Ê²¼¤ÎÎã¤Î¤è¤¦¤Ë¡¢ASCIIʸ»ú¤Î°ìÉô¤Îʸ»ú¤ËÂФ·¤Æ¡¢switch¡Ácase¤Ç½èÍý¤¹¤ë¾ì¹ç¤Ë¡¢¤½¤¦¤Ê¤ë»ö¤¬Â¿¤¤¤Ç¤¹¡£ ¢¢C¸À¸ì¥½¡¼¥¹ ¨¢ int test(char c) { ¨¢ int n; ¨¢ switch(c) { ¨¢ default: n = 0; break; ¨¢ case '0': n = 1; break; ¨¢ case 'A': n = 2; break; ¨¢ case 'B': n = 2; break; ¨¢ case 'a': n = 3; break; ¨¢ case 'b': n = 3; break; ¨¢ } ¨¢ return n; ¨¢ } ¢¢gcc33.exe¤¬À¸À®¤¹¤ë¥¢¥»¥ó¥Ö¥é¥³¡¼¥É ¨¢ .code ¨¢ .align 1 ¨¢ .global test ¨¢ test: ¨¢ xsub %r12,%r12,48 ¨¢ ld.b %r10,%r12 ¨¢ xcmp %r10,50 ¨¢ xjrugt __L72 ¨¢ xsll %r10,2 ¨¢ xld.w %r10,[%r10+__L78] ¨¢ jp %r10 ¨¢ .code ¨¢ .align 2 ¨¢ __L78: ¨¢ .word __L73 ¨¢ .word __L72 ¨¢ .word __L72 ¨¢ .word __L72 ¨¢ .word __L72 ¨¢ .word __L72 ¨¢ .word __L72 ¨¢ .word __L72 ¨¢ .word __L72 ¨¢ .word __L72 ¨¢ .word __L72 ¨¢ .word __L72 ¨¢ .word __L72 ¨¢ .word __L72 ¨¢ .word __L72 ¨¢ .word __L72 ¨¢ .word __L72 ¨¢ .word __L74 ¨¢ .word __L75 ¨¢ .word __L72 ¨¢ .word __L72 ¨¢ .word __L72 ¨¢ .word __L72 ¨¢ .word __L72 ¨¢ .word __L72 ¨¢ .word __L72 ¨¢ .word __L72 ¨¢ .word __L72 ¨¢ .word __L72 ¨¢ .word __L72 ¨¢ .word __L72 ¨¢ .word __L72 ¨¢ .word __L72 ¨¢ .word __L72 ¨¢ .word __L72 ¨¢ .word __L72 ¨¢ .word __L72 ¨¢ .word __L72 ¨¢ .word __L72 ¨¢ .word __L72 ¨¢ .word __L72 ¨¢ .word __L72 ¨¢ .word __L72 ¨¢ .word __L72 ¨¢ .word __L72 ¨¢ .word __L72 ¨¢ .word __L72 ¨¢ .word __L72 ¨¢ .word __L72 ¨¢ .word __L76 ¨¢ .word __L77 ¨¢ .code ¨¢ __L72: ¨¢ ld.w %r10,0 ¨¢ xjp __L71 ¨¢ __L73: ¨¢ xld.w %r10,1 ¨¢ xjp __L71 ¨¢ __L74: ¨¢ __L75: ¨¢ xld.w %r10,2 ¨¢ xjp __L71 ¨¢ __L76: ¨¢ __L77: ¨¢ xld.w %r10,3 ¨¢ __L71: ¨¢ ret ¼Â¹Ô®Å٤κÇŬ²½¤Î¤¿¤á¤È¤Ï¸À¤¨¡¢¾åµ­¤Î¥¢¥»¥ó¥Ö¥é¥³¡¼¥É¤Ï¡¢¤¤¤¯¤é¤Ê¤ó¤Ç¤â̵Â̤¬Â¿²á¤®¤Þ¤¹¡£ °ì¸«¡¢¤½¤ó¤Ê¤ËÂ礭¤¯¤Ê¤¤¤è¤¦¤Ë¸«¤¨¤ë¤«¤âÃΤì¤Þ¤»¤ó¤¬¡¢µ¡³£¸ìÌ¿Îá¤Î¹Ô¤Ï1¹Ô2¥Ð¥¤¥È¤Ç¤¢¤ë¤Î¤ËÂФ·¤Æ¡¢¥¸¥ã¥ó¥×¥Æ¡¼¥Ö¥ë¤Î¹Ô¤Ï1¹Ô4¥Ð¥¤¥È¤Ê¤Î¤Ç¡¢¸«¤¿Ìܰʾå¤ËÂ礭¤¯¤Æ̵Â̤¬Â¿¤¤¤Ç¤¹¡£ ¼ÂºÝ¤Î½ê¡¢Æä˹⮲½¤¬É¬ÍפʽèÍý¤ò½ü¤¤¤Æ¡¢¤Û¤È¤ó¤É¤Îswitch¡Ácase¤Î½èÍý¤Ï¡¢if¡Áelse if¤ÇÃ༡Èæ³Ó¤·¤Æ¤â½¼Ê¬¤Ê¼Â¹Ô®ÅÙ¤¬ÆÀ¤é¤ì¤ë»ö¤¬Â¿¤¤¤Ç¤¹¡£ ¤À¤«¤é¡¢Â®ÅÙ¤è¤ê¤â¥µ¥¤¥ºÀáÌó¤òÍ¥À褷¤Æ¥¢¥»¥ó¥Ö¥é¥³¡¼¥É¤òÀ¸À®¤·¤ÆÍߤ·¤¤¤Î¤Ç¤¹¤¬¡¢¤½¤¦¤Ï¤Ê¤Ã¤Æ¤¤¤Ê¤¤¤è¤¦¤Ç¤¹¡£ ¤Á¤Ê¤ß¤Ë¡¢¾åµ­¤Î¥¢¥»¥ó¥Ö¥é¥³¡¼¥É¤Ï¡¢¡Ö-O2¡×¥ª¥×¥·¥ç¥ó(®ÅÙºÇŬ²½)¤ò»ØÄꤷ¤Æ¥³¥ó¥Ñ¥¤¥ë¤·¤¿¤â¤Î¤Ç¤¹¤¬¡¢»î¤·¤Ë¡Ö-O1¡×¥ª¥×¥·¥ç¥ó(¥µ¥¤¥ººÇŬ²½)¤ò»ØÄꤷ¤Æ¤ß¤Æ¤âƱ¤¸¥³¡¼¥É¤¬À¸À®¤µ¤ì¤Þ¤·¤¿¡£ ¤É¤¦¤ä¤é¡¢P/ECE³«È¯´Ä¶­¤Îgcc33.exe¤Ï¡¢¾ï¤Ë¡¢¥µ¥¤¥ºÀáÌó¤è¤ê¤â¡¢Â®ÅÙ¤òÍ¥À褷¤ÆºÇŬ²½¤ò¹Ô¤Ã¤Æ¤¤¤ë¤è¤¦¤Ç¤¹¡£ ¡ßÂкö°Æ1(¼ºÇÔ) ̵Â̤ËÂ礭¤Ê¥¸¥ã¥ó¥×¥Æ¡¼¥Ö¥ë¤¬À¸À®¤µ¤ì¤ë¤Î¤òËɤ°ÊýË¡¤ò¡¢¹Í¤¨¤Æ¤ß¤Þ¤·¤¿¡£ ºÇ½é¤Ë¹Í¤¨¤¿ÊýË¡¤Ï¡¢gcc¤Ë¡¢¥¸¥ã¥ó¥×¥Æ¡¼¥Ö¥ë¤òÀ¸À®¤µ¤»¤Ê¤¤¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ëÊýË¡¤Ç¤¹¡£ ¢¢¡Ö3 GCC Command Options - 3.18 Options for Code Generation Conventions¡×(https://gcc.gnu.org/onlinedocs/gcc-5.3.0/gcc/Code-Gen-Options.html)¤è¤ê°úÍÑ: ¨¢-fno-jump-tables ¨¢ Do not use jump tables for switch statements even where it would be more efficient than other code generation strategies. ¨¢ This option is of use in conjunction with -fpic or -fPIC for building code that forms part of a dynamic linker and cannot reference the address of a jump table. ¨¢ On some targets, jump tables do not require a GOT and this option is not needed. ¤Þ¤µ¤Ëº£²ó¤ÎÌÜŪ¤Ë¤Ô¤Ã¤¿¤ê¤Ê¥ª¥×¥·¥ç¥ó¤Ê¤Î¤Ç¤¹¤¬¡¦¡¦¡¦»ÄÇ°¤Ê¤¬¤é¡¢»È¤¨¤Þ¤»¤ó¤Ç¤·¤¿¡£ ¤É¤¦¤ä¤é¡¢P/ECE³«È¯´Ä¶­¤Îgcc33.exe¤Ï¡¢¥Ð¡¼¥¸¥ç¥ó¤¬¸Å¤¤¤¿¤á¤«¡¢¡Ö-fno-jump-tables¡×¥ª¥×¥·¥ç¥ó¤ËÂбþ¤·¤Æ¤¤¤Ê¤¤¤ß¤¿¤¤¤Ç¤¹¡£ ¢¤Âкö°Æ2(¤¤¤Þ¤¤¤Á) ¼¡¤Ë¹Í¤¨¤¿ÊýË¡¤Ï¡¢switch¡Ácase¤ò¡¢if¡Áelse if¤Ë½ñ¤­´¹¤¨¤ëÊýË¡¤Ç¤¹¡£ ¢¢C¸À¸ì¥½¡¼¥¹ ¨¢ int test(char c) { ¨¢ int n; ¨¢ if(c == '0') { n = 1; } ¨¢ else if(c == 'A') { n = 2; } ¨¢ else if(c == 'B') { n = 2; } ¨¢ else if(c == 'a') { n = 3; } ¨¢ else if(c == 'b') { n = 3; } ¨¢ else { n = 0; } ¨¢ return n; ¨¢ } ¢¢gcc33.exe¤¬À¸À®¤¹¤ë¥¢¥»¥ó¥Ö¥é¥³¡¼¥É ¨¢ .code ¨¢ .align 1 ¨¢ .global test ¨¢ test: ¨¢ ld.b %r12,%r12 ¨¢ xcmp %r12,48 ¨¢ xjrne __L2 ¨¢ xld.w %r10,1 ¨¢ xjp __L3 ¨¢ __L2: ¨¢ xcmp %r12,65 ¨¢ xjreq __L12 ¨¢ xcmp %r12,66 ¨¢ xjrne __L6 ¨¢ __L12: ¨¢ xld.w %r10,2 ¨¢ xjp __L3 ¨¢ __L6: ¨¢ xcmp %r12,97 ¨¢ xjreq __L13 ¨¢ ld.w %r10,0 ¨¢ xcmp %r12,98 ¨¢ xjrne __L3 ¨¢ __L13: ¨¢ xld.w %r10,3 ¨¢ __L3: ¨¢ ret À¸À®¤µ¤ì¤ë¥¢¥»¥ó¥Ö¥é¥³¡¼¥É¤Ï¤³¤ì¤ÇÎɤ¤¤Î¤Ç¤¹¤¬¡¦¡¦¡¦ ´û¸¤Î¥½¡¼¥¹¤ÎÃæ¤Î¡¢switch¡Ácase¤Ç½ñ¤«¤ì¤Æ¤¤¤ëÉôʬ¤ò¡¢¼êºî¶È¤Çif¡Áelse if¤Ë½ñ¤­´¹¤¨¤ë¼ê´Ö¤ÎÌäÂ꤬ͭ¤ê¤Þ¤¹¡£ ¤À¤¤¤¿¤¤¡¢C¸À¸ì¥½¡¼¥¹¤ÎÃæ¤Çswitch¡Ácase¤ò»È¤Ã¤Æ¤¤¤ëÍýͳ¤Ï¡¢Â®ÅÙ¤ÎÌÜŪ¤è¤ê¤â¡¢½ñ¤­°×¤µ¡¤¸«°×¤µ¤Î¤¿¤á¤Ë¤½¤¦¤·¤Æ¤¤¤ë»ö¤¬Â¿¤¤¤Î¤Ç¡¢if¡Áelse if¤Ë½ñ¤­´¹¤¨¤ë¤È¸«¿É¤¯¤Ê¤Ã¤¿¤ê¥¨¥ó¥Ñ¥°¤Î´í¸±¤¬Í­¤ê¤Þ¤¹¡£ ¤À¤«¤é¡¢¤³¤ÎÊýË¡¤â˾¤Þ¤·¤¯¤¢¤ê¤Þ¤»¤ó¡£ ¡ûÂкö°Æ3(À®¸ù) ¤Ê¤ë¤Ù¤¯switch¡Ácase¤ò½ñ¤­´¹¤¨¤º¤Ë¡¢ºÇ¾®¸Â¤Î¼ê´Ö¤ÇÂкö½ÐÍè¤ëÊýË¡¤ò¸«ÉÕ¤±¤Þ¤·¤¿¡£ ¢¢C¸À¸ì¥½¡¼¥¹ ¨¢ int test(char c) { ¨¢ int n; ¨¢ switch(c) { ¨¢ case CHAR_MIN: /* FALLTHRU */ //¤ª¤Þ¤¸¤Ê¤¤ ¢«¢«¢«¢«¢«¢«¢«¢«¢«¢«¢«¢«¢«¢«¢«¢«¤³¤Î¹Ô¤òÄɲä·¤¿¤À¤±¡£ ¨¢ default: n = 0; break; ¨¢ case '0': n = 1; break; ¨¢ case 'A': n = 2; break; ¨¢ case 'B': n = 2; break; ¨¢ case 'a': n = 3; break; ¨¢ case 'b': n = 3; break; ¨¢ } ¨¢ return n; ¨¢ } ¢¢gcc33.exe¤¬À¸À®¤¹¤ë¥¢¥»¥ó¥Ö¥é¥³¡¼¥É ¨¢ .code ¨¢ .align 1 ¨¢ .global test ¨¢ test: ¨¢ ld.b %r12,%r12 ¨¢ xld.w %r10,65 ¨¢ cmp %r12,%r10 ¨¢ xjreq __L75 ¨¢ xjrgt __L80 ¨¢ xcmp %r12,-128 ¨¢ xjreq __L73 ¨¢ xcmp %r12,48 ¨¢ xjreq __L74 ¨¢ xjp __L73 ¨¢ __L80: ¨¢ xld.w %r10,97 ¨¢ cmp %r12,%r10 ¨¢ xjreq __L77 ¨¢ xjrgt __L81 ¨¢ xcmp %r12,66 ¨¢ xjreq __L76 ¨¢ xjp __L73 ¨¢ __L81: ¨¢ xcmp %r12,98 ¨¢ xjreq __L78 ¨¢ __L73: ¨¢ ld.w %r10,0 ¨¢ xjp __L71 ¨¢ __L74: ¨¢ xld.w %r10,1 ¨¢ xjp __L71 ¨¢ __L75: ¨¢ __L76: ¨¢ xld.w %r10,2 ¨¢ xjp __L71 ¨¢ __L77: ¨¢ __L78: ¨¢ xld.w %r10,3 ¨¢ __L71: ¨¢ ret ¡ÖÂкö°Æ2¡×¤Î¥¢¥»¥ó¥Ö¥é¥³¡¼¥É¤ËÈæ¤Ù¤ë¤È¡¢Â¿¾¯¡¢ÌµÂ̤ʥ³¡¼¥É¤¬À¸À®¤µ¤ì¤Æ¤¤¤Þ¤¹¤¬¡¢¸µ¤Î̵Â̤ËÂ礭¤Ê¥¸¥ã¥ó¥×¥Æ¡¼¥Ö¥ë¤è¤ê¤Ï¤À¤¤¤Ö¤ó¤Þ¤·¤Ê¤Î¤Ç¡¢Âкö¤È¤·¤Æ¤Ï¤³¤ì¤Ç½¼Ê¬¤À¤È»×¤¤¤Þ¤¹¡£ ¤³¤ÎÊýË¡¤ÇÊѹ¹¤·¤¿ÅÀ¤Ï¡¢¡Ödefault:¡×¤Î¾å¤Ë¥À¥ß¡¼¤Î¡Öcase CHAR_MIN:¡×¤òÄɲä·¤¿¤À¤±¤Ç¤¹¡£ ½èÍý¾å¤Ï¡Ödefault:¡×¤Ë¤Þ¤È¤á¤é¤ì¤ë¤Ï¤º¤Ê¤Î¤Ç¡¢¸µ¤ÈƱ¤¸¥³¡¼¥É¤¬À¸À®¤µ¤ì¤Æ¤âÉԻ׵ĤǤϤʤ¤¤Î¤Ç¤¹¤¬¡¢²¿¸Î¤«¾å¼ê¤¯¹Ô¤Ã¤Æ¡¢¥¸¥ã¥ó¥×¥Æ¡¼¥Ö¥ë¤Ë¤ÏŸ³«¤µ¤ì¤Ê¤¯¤Ê¤ë¤è¤¦¤Ç¤¹¡£ ¤É¤¦¤ä¤é¡¢gcc33.exe¤Ï¡¢½èÍý¤¬¤Þ¤È¤á¤é¤ì¤ë¤«¤É¤¦¤«¤Ë´Ø·¸Ìµ¤¯¡¢case¤ÎÃͤÎÃæ¤Ë¤¢¤ëÄøÅÙ¶¹¤¤ÈϰϤ«¤é³°¤ì¤ëÃÍ(¤³¤Î¾ì¹ç¤ÏCHAR_MIN)¤¬Í­¤ë¤È¡¢¥¸¥ã¥ó¥×¥Æ¡¼¥Ö¥ë¤ËŸ³«¤·¤Ê¤¯¤Ê¤ë¤è¤¦¤Ç¤¹¡£ ºÇŬ²½¤¬¼å¤¤¤È¤â¸À¤¨¤ë¤Î¤Ç¤¹¤¬¡¢º£²ó¤Ï¤½¤ÎÆÃÀ­¤òÍøÍѤ·¤Æ¡¢¾å¼ê¤¯¡¢ÌµÂ̤ËÂ礭¤Ê¥¸¥ã¥ó¥×¥Æ¡¼¥Ö¥ë¤ËŸ³«¤µ¤ì¤ë¤Î¤òËɤ°»ö¤¬½ÐÍè¤Þ¤·¤¿¡£ ¤Á¤Ê¤ß¤Ë¡¢º£²ó¤Ï¡Öcase CHAR_MIN:¡×¤È¤·¤Þ¤·¤¿¤¬¡¢¤³¤ÎÃͤˤÏÆä˰ÕÌ£¤Ï¤¢¤ê¤Þ¤»¤ó¡£ ´û¸¤Îcase¤ÎÃͤȤ·¤Æ»ÈÍѤµ¤ì¤Æ¤ª¤é¤º¡¢Â¾¤Îcase¤ÎÃͤ«¤é¤¢¤ëÄøÅÙÎ¥¤ì¤Æ¤¤¤ëÃͤʤé¤Ð¡¢²¿¤Ç¤â¹½¤¤¤Þ¤»¤ó¡£ ¤¿¤À¤·¡¢º£²ó¤Î¥±¡¼¥¹¤Ç¡Öcase 1000:¡×¤ä¡Öcase -1000:¡×Åù¤È¤·¤Æ¤·¤Þ¤¦¤È¡¢¡Öwarning: case value out of range¡×¤È¤¤¤¦·Ù¹ð¤¬½Ð¤Þ¤¹¡£ º£²ó¤Î¥±¡¼¥¹¤Ç¤Ï¡¢¡Öswitch(c)¡×¤ÎÊÑ¿ôc¤¬char·¿¤Ê¤Î¤Ç¡¢1000¤ä-1000¤Ë¤ÏÀ®¤êÆÀ¤Ê¤¤¤«¤é¤Ç¤¹¡£ º£²ó¤Ï¡¢ÊÑ¿ôc¤ÎÈÏ°ÏÆâ¤Ç¡¢¤Ê¤ë¤Ù¤¯Â¾¤Îcase¤ÎÃͤ«¤éÎ¥¤ì¤Æ¤¤¤ëÃͤȤ·¤Æ¡¢CHAR_MIN¤Ë¤·¤Þ¤·¤¿¡£ ¼ÂºÝ¤Ë¤Ï¡¢Âкö¤ò¹Ô¤¦¥½¡¼¥¹Ëè¤Ë¡¢Å¬ÀÚ¤ÊÃͤò¸¡Æ¤¤·¤Æ¡¢»î¤·¤Æ¤ß¤Æ¡¢À¸À®¤µ¤ì¤¿¥¢¥»¥ó¥Ö¥é¥³¡¼¥É¤ò¸«¤Æ¡¢ÌµÂ̤ËÂ礭¤Ê¥¸¥ã¥ó¥×¥Æ¡¼¥Ö¥ë¤¬À¸À®¤µ¤ì¤Æ¤¤¤Ê¤¤¤«¤ò³Îǧ¤·¤Æ²¼¤µ¤¤¡£ * Mon Aug 14 08:16:30 JST 2017 Naoyuki Sawa - ¥É¥é¥à²»¿§¤Î¥Î¥¤¥º ¢£ÌäÂêÅÀ P/ECE³«È¯´Ä¶­¤ËÉÕ°¤·¤Æ¤¤¤ë¡¢²»³Ú¥é¥¤¥Ö¥é¥ê¤Î¥É¥é¥à²»¿§¤Ï¡¢°ìÉô¤Î²»¿§¤Ç¥Î¥¤¥º¤¬ÌĤê¤Þ¤¹¡£ ¥Î¥¤¥º¤¬ÌĤ벻¿§¤Ï¡¢¡Öcrush cymbal¡×¤È¡Ösynth tom (hi)¡×¤È¡Ösynth tom (mid)¡×¤Ç¤¹¡£ ¡Ú¥Î¥¤¥º¤¬ÌĤë»ö¤ò³Îǧ¤¹¤ëMML¡Û ¨¢ ;¥É¥é¥à¥Ñ¡¼¥ÈÍÑ¥Þ¥¯¥íÀßÄê(C:\usr\PIECE\docs\TUTORIAL\AYAKA\sample.mml¤«¤é¥³¥Ô¡¼) ¨¢ !!bg @6 V125 ?o4c ; bass drum ¨¢ !!sg @8 V120 ?o4c ; snare drum 1 ¨¢ !!Sg @7 V115 ?o4c ; snare drum 2 ¨¢ !!og @9 V90 ?o4c ; open H.H. ¨¢ !!hg @10 V90 ?o4c ; closeH.H. ¨¢ !!cg @11 V110 ?o4c ; crush cymbal ¨¢ !!tg @13 V110 ?o4c ; synth tom (hi) ¨¢ !!ug @14 V110 ?o4c ; synth tom (mid) ¨¢ !!vg @15 V110 ?o4c ; synth tom (low) ¨¢ !!Cg @16 V120 ?o4c ; clap ¨¢ ¨¢ F =1 T150 l1 L !bg!sg!Sg!og!hg!cg!tg!ug!vg!Cg ¾åµ­¤ÎMML¤òºÆÀ¸¤¹¤ë¤È¡¢6²»ÌܤΡÖcrush cymbal¡×¤È7²»ÌܤΡÖsynth tom (hi)¡×¤È8²»ÌܤΡÖsynth tom (mid)¡×¤Î¡¢ÌĤ꽪¤ï¤ëÊÕ¤ê¤Ç¥Ö¥Á¥Ã¤È¤¤¤¦²»¤¬ÌĤë»ö¤¬³Îǧ½ÐÍè¤Þ¤¹¡£ ¤³¤ì¤Þ¤Çµ¤ÉÕ¤­¤Þ¤»¤ó¤Ç¤·¤¿¡¦¡¦¡¦ °¿¤¤¤Ï¡¢µ¤ÉÕ¤¤¤Æ¤¤¤¿¤±¤ì¤É¡¢¼ÂÍѾ夢¤Þ¤êÌäÂê¤Ë¤Ê¤é¤Ê¤¤¤Î¤Ç¡¢¸«²á¤´¤·¤Æ¤¤¤¿¤«¤âÃΤì¤Þ¤»¤ó¡£ ¤¿¤¤¤Æ¤¤¥É¥é¥à¥Ñ¡¼¥È¤Ï1¥È¥é¥Ã¥¯¤À¤±¤ÇÊ£¿ô¤Î¥É¥é¥à²»¤òϢ³¤ÇÌĤ餹¤Î¤Ç¡¢¾åµ­¤Î²»¿§¤Î¥Î¥¤¥º¤¬ÌĤëÁ°¤Ë¼¡¤Î¥É¥é¥à²»¤òÌĤ餷¤Æ¤¤¤ì¤Ð¡¢¼Â¼Á¥Î¥¤¥º¤ÏÌĤé¤Ê¤¤¤«¤é¤Ç¤¹¡£ ¢£¸¶°ø ¤Ç¤â¤ä¤Ã¤Ñ¤êµ¤¤Ë¤Ê¤ë¤Î¤Ç¡¢¸¶°ø¤òÄ´¤Ù¤Æ½¤Àµ¤¹¤ë»ö¤Ë¤·¤Þ¤·¤¿¡£ ¥É¥é¥à²»¿§¤ÎÇÛÎó¥Ç¡¼¥¿¤ò¸«¤Æ¤ß¤ë¤È¡¢ºÇ¸å¤ÎÊý¤Ë¡¢ÉÔ¼«Á³¤ÊÃͤ¬Æþ¤Ã¤Æ¤¤¤ë¤è¤¦¤Ç¤¹¡£ http://www.piece-me.org/piece-lab/wavetbl_bug/1_before_fix_h/cymbd_h.png http://www.piece-me.org/piece-lab/wavetbl_bug/1_before_fix_h/tomh1_h.png http://www.piece-me.org/piece-lab/wavetbl_bug/1_before_fix_h/tomm1_h.png ¤³¤ì¤é¤ÎÉÔ¼«Á³¤ÊÃͤòºï½ü¤¹¤ì¤Ð¡¢¤­¤Ã¤È¡¢¥Î¥¤¥º¤Ï¾Ã¤¨¤ë¤Ï¤º¤Ç¤¹¡£ ¤·¤«¤·¡¢¤Ê¤¼ÉÔ¼«Á³¤ÊÃͤ¬Æþ¤Ã¤Æ¤¤¤¿¤Î¤«¤¬¤ï¤«¤é¤Ê¤¤¤Î¤Ç¡¢Ã±½ã¤Ëqºï½ü¤·¤ÆÎɤ¤¤â¤Î¤«¤É¤¦¤«¡¢¾¯¤·Ì¤¤¤Þ¤¹¡£ ¤½¤³¤Ç¡¢¤³¤ì¤é¤ÎÉÔ¼«Á³¤ÊÃͤ¬²¿¤Ê¤Î¤«¡¢Ä´¤Ù¤Æ¤ß¤ë»ö¤Ë¤·¤Þ¤·¤¿¡£ ¤Þ¤º¡¢¥É¥é¥à²»¿§¤ÎÇÛÎó¥Ç¡¼¥¿¤ò¥Ð¥¤¥Ê¥ê¥Ç¡¼¥¿¤Ë½ÐÎϤ·¤Æ¡¢¥Ð¥¤¥Ê¥ê¥¨¥Ç¥£¥¿¤Ç¸«¤Æ¤ß¤Þ¤·¤¿¡£ http://www.piece-me.org/piece-lab/wavetbl_bug/2_before_fix_bin/cymbd_bin.png http://www.piece-me.org/piece-lab/wavetbl_bug/2_before_fix_bin/tomh1_bin.png http://www.piece-me.org/piece-lab/wavetbl_bug/2_before_fix_bin/tomm1_bin.png ¤¦¡Á¤à¡¢¤ï¤«¤ê¤Þ¤»¤ó¡£ ¼¡¤Ë¡¢(»×¤¤ÉÕ¤­¤Ç)¡¢¥É¥é¥à²»¿§¤ÎÇÛÎó¥Ç¡¼¥¿¤ÎÃͤò¡Ö+128¡×¤·¤Æ¡¢¥Ð¥¤¥Ê¥ê¥Ç¡¼¥¿¤Ë½ÐÎϤ·¤Æ¡¢¥Ð¥¤¥Ê¥ê¥¨¥Ç¥£¥¿¤Ç¸«¤Æ¤ß¤Þ¤·¤¿¡£ http://www.piece-me.org/piece-lab/wavetbl_bug/3_before_fix_bin_bias/cymbd_bin_bias.png http://www.piece-me.org/piece-lab/wavetbl_bug/3_before_fix_bin_bias/tomh1_bin_bias.png http://www.piece-me.org/piece-lab/wavetbl_bug/3_before_fix_bin_bias/tomm1_bin_bias.png ʸ»úÎ󤬸«¤¨¤Þ¤·¤¿¡£ ¤É¤¦¤ä¤é¡¢WAV¥Õ¥¡¥¤¥ë¤Î¥Ä¡¼¥ë¾ðÊó¤Î¥Á¥ã¥ó¥¯¤Î¤è¤¦¤Ç¤¹¡£ ¤À¤¤¤¿¤¤¡¢¸¶°ø¤¬¿ä¬½ÐÍè¤Þ¤·¤¿¡£ ¤­¤Ã¤È¡¢²»³Ú¥é¥¤¥Ö¥é¥ê¤Î¥É¥é¥à²»¿§¤òºî¤ë»þ¤Ë¡¢WAV¥Õ¥¡¥¤¥ë¤ò¼êºî¶È¤ÇÀÚ¤ê½Ð¤¹¤«¡¢´Ê°×Ū¤Ê¥¹¥¯¥ê¥×¥ÈÅù¤ò»È¤Ã¤Æ¡¢ÊÑ´¹¤·¤¿¤Î¤Ç¤Ï̵¤¤¤«¤È»×¤¤¤Þ¤¹¡£ ¤½¤Î»þ¤Ë¡¢WAV¥Õ¥¡¥¤¥ë¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë¡¢²»¥Ç¡¼¥¿°Ê³°¤Î¡¢¥Ä¡¼¥ë¾ðÊó¤Î¥Á¥ã¥ó¥¯¤ò¡¢(¤¦¤Ã¤«¤ê?)ºï½ü¤·Ëº¤ì¤Æ¤·¤Þ¤Ã¤¿¤Î¤Ç¤Ï¤Ê¤¤¤«¤È»×¤¤¤Þ¤¹¡£ ¤Á¤Ê¤ß¤Ë¡¢¤µ¤­¤Û¤É¤Ê¤¼¡¢¥É¥é¥à²»¿§¤ÎÇÛÎó¥Ç¡¼¥¿¤ÎÃͤò¡Ö+128¡×¤¹¤ë¤È¥Ä¡¼¥ë¾ðÊó¤Î¥Á¥ã¥ó¥¯¤¬¸«¤¨¤¿¤Î¤«¤È¸À¤¦¤È¡¢ WAV¥Õ¥¡¥¤¥ë¤Î8¥Ó¥Ã¥È·Á¼°¤Î²»¥Ç¡¼¥¿¤ÏÉä¹æ¤Ê¤·(0¡Á255)¤ÎÃͤǡ¢P/ECE²»³Ú¥é¥¤¥Ö¥é¥ê¤Î²»¿§¥Ç¡¼¥¿¤Ï8¥Ó¥Ã¥ÈÉä¹æÉÕ¤­(-128¡Á127)¤ÎÃͤÀ¤«¤é¤Ç¤¹¡£ ²»³Ú¥é¥¤¥Ö¥é¥ê¤Î¥É¥é¥à²»¿§¤òºî¤ë»þ¤Ë¡¢ÀÚ¤ê½Ð¤·¤¿¥Ç¡¼¥¿Á´ÂΤò128¥Ð¥¤¥¢¥¹¤·¤¿¤¿¤á¤Ë¡¢¥Ä¡¼¥ë¾ðÊó¤Î¥Á¥ã¥ó¥¯¤â128¥Ð¥¤¥¢¥¹¤µ¤ì¤Æʶ¤ì¤Æ¤·¤Þ¤Ã¤¿¤Î¤À¤È»×¤¤¤Þ¤¹¡£ ¢£Âкö ¥Î¥¤¥ºÉôʬ¤Î¥Ç¡¼¥¿¤¬¡¢ÉÔÍפʥǡ¼¥¿¤À¤È¤¤¤¦»ö¤¬¤ï¤«¤Ã¤¿¤Î¤Ç¡¢¿´Çۤʤ¯ºï½ü¤Ç¤­¤Þ¤¹¡£ ºï½ü¤¹¤ëÊýË¡¤Ï¡¢°Ê²¼¤ÎÄ̤ê¤Ç¤¹¡£ ¼«ºî¥×¥í¥°¥é¥à¤Ë²»³Ú¥é¥¤¥Ö¥é¥ê¤Î²»¿§¥Ç¡¼¥¿¤ò´Þ¤á¤ë»þ¤Ï¡¢P/ECE³«È¯´Ä¶­¤Î¥Õ¥©¥ë¥À¤«¤é¡¢²»¿§¥Ç¡¼¥¿¤Î¥Õ¥¡¥¤¥ë°ì¼°¤ò¥³¥Ô¡¼¤·¤ÆÍè¤Æ¤¤¤ë¤È»×¤¤¤Þ¤¹¡£ Î㤨¤Ð¡¢¡Ö/usr/PIECE/docs/TUTORIAL/AYAKA/wavetbl/¡×¥Õ¥©¥ë¥ÀÅù¤«¤é¤Ç¤¹¡£(º¸µ­°Ê³°¤Ë¤â²¿²Õ½ê¤«¤Î¥Õ¥©¥ë¥À¤ËÃÖ¤«¤ì¤Æ¤¤¤Þ¤¹¤¬¡¢¤É¤ì¤Ç¤âƱ¤¸¤Ç¤¹¡£) ¥³¥Ô¡¼¤·¤ÆÍ褿¥Õ¥¡¥¤¥ë¤Î¤¦¤Á¡¢¡Öi_CYMBD.h¡×¤È¡Öi_TOMH1.h¡×¤È¡Öi_TOMM1.h¡×¤ò¡¢²¼¿Þ¤Î¤è¤¦¤Ë½ñ¤­´¹¤¨¤ì¤Ðok¤Ç¤¹¡£ http://www.piece-me.org/piece-lab/wavetbl_bug/4_after_fix_h/cymbd_h_fix.png http://www.piece-me.org/piece-lab/wavetbl_bug/4_after_fix_h/tomh1_h_fix.png http://www.piece-me.org/piece-lab/wavetbl_bug/4_after_fix_h/tomm1_h_fix.png ¾åµ­¤ÎÂкö¤ò¹Ô¤Ã¤¿¸å¡¢ÀèÄø¤ÈƱ¤¸MML¤òºÆÀ¸¤·¤Æ¡¢¥Î¥¤¥º¤¬ÌĤé¤Ê¤¯¤Ê¤Ã¤¿»ö¤ò³Îǧ½ÐÍè¤Þ¤·¤¿¡£ ¢£¥À¥¦¥ó¥í¡¼¥É º£²ó»ÈÍѤ·¤¿¸¡¾Ú¥×¥í¥°¥é¥à°ì¼°¤Î¡¢¥À¥¦¥ó¥í¡¼¥É¤Ï¤³¤Á¤é¤Ç¤¹: ¥À¥¦¥ó¥í¡¼¥É¤Ï¤³¤Á¤é¡§¡¡http://www.piece-me.org/piece-lab/wavetbl_bug/wavetbl_bug-20170814-src.zip * Tue Oct 25 21:18:48 JST 2016 Naoyuki Sawa - sin()¤Î¥Ð¥° ¢£ÌäÂêÅÀ P/ECE³«È¯´Ä¶­¤ËÉÕ°¤·¤Æ¤¤¤ë¡¢EPSONÀ½C¥é¥¤¥Ö¥é¥ê¤Î¡¢¡Ösin()´Ø¿ô¡×¤Ë¤Ï¡¢¥Ð¥°¤¬¤¢¤ê¤Þ¤¹¡£ ¡Ø¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤¹¤ë±é»»¤¬Ä¾Á°¤Ëºß¤ë¤È¡¢sin()´Ø¿ô¤Î·ë²Ì¤¬ÉÔÀµ¤Ë¤Ê¤ë¡£¡Ù¤È¤¤¤¦¥Ð¥°¤Ç¤¹¡£ ¡Ú¥Ð¥°¤òºÆ¸½¤¹¤ë¥×¥í¥°¥é¥à¡Û ¨¢ #include ¨¢ #include ¨¢ #include ¨¢ #define NOPCESPRINTF ¨¢ #include ¨¢ unsigned char vbuff[128*88]; ¨¢ int errno, write; /* dummy */ ¨¢ void test(); ¨¢ void pceAppInit() { ¨¢ pceAppSetProcPeriod(255); ¨¢ pceLCDSetBuffer(vbuff); ¨¢ pceLCDDispStart(); ¨¢ pceFontSetPos(0, 0); ¨¢ test(); /* ¥Æ¥¹¥È¥ë¡¼¥Á¥ó¤ò¸Æ¤Ó½Ð¤¹ */ ¨¢ pceLCDTrans(); ¨¢ } ¨¢ void pceAppProc(int cnt) { /** no job **/ } ¨¢ void pceAppExit() { /** no job **/ } ¨¢ //¢¬¢¬¢¬¢¬¢¬¤³¤³¤Þ¤Ç¤ÏËÜÂê¤È´Ø·¸¤Î̵¤¤Äê·¿½èÍý¤Ç¤¹¡£¢¬¢¬¢¬¢¬¢¬ ¨¢ //¢­¢­¢­¢­¢­¢­¤³¤³¤«¤é¤¬ËÜÂê¤Î¥Æ¥¹¥È¥ë¡¼¥Á¥ó¤Ç¤¹¡£¢­¢­¢­¢­¢­¢­ ¨¢ volatile int x = (1<<30); ¨¢ void test() { ¨¢ char buf[100]; ¨¢ double s; ¨¢ x += x; /* ¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤¹¤ë±é»»¤¬Ä¾Á°¤Ëºß¤ë¤È¡Ä */ ¨¢ s = sin(1.57); /* sin()´Ø¿ô¤Î·ë²Ì¤¬ÉÔÀµ¢­¤Ë¤Ê¤ë¾ì¹ç¤¬Í­¤ë¡£ */ ¨¢ sprintf(buf, "%f", s); /* sin(¦Ð/2)=1¤Î¤Ï¤º¤Ê¤Î¤Ë¡Ö-1¡×¤Èɽ¼¨¤µ¤ì¤ë¡£ */ ¨¢ pceFontPutStr(buf); ¨¢ } ¾åµ­¤Î¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤¹¤ë¤È¡¢sin(¦Ð/2)=1¤Î¤Ï¤º¤Ê¤Î¤Ë¡¢¡Ö-1¡×¤Èɽ¼¨¤µ¤ì¤Þ¤¹¡£ ¢£¸¶°ø ¸¶°ø¤Ï¡¢EPSONÀ½C¥é¥¤¥Ö¥é¥ê¤Î¡Ösin()´Ø¿ô¡×¤Î¡¢¥Ð¥°¤Ç¤·¤¿¡£ ¥Ð¥°¤Î²Õ½ê¤Ï¡¢°Ê²¼¤ÎÄ̤ê¤Ç¤¹¡£±¦Â¦¤Î¥³¥á¥ó¥È¤ò»²¾È¤·¤Æ²¼¤µ¤¤¡£ ¡ÚEPSON¥é¥¤¥Ö¥é¥ê¤Î¡Ösin.s¡×¤ÎÀèƬÉôʬ¤òÈ´¿è¡Û ¨¢ ;============================================================================== ¨¢ ; Function: double sin(double x) ¨¢ ; ¨¢ ; Input: %r12: Argument x in radian double (low). ¨¢ ; %r13: Argument x in radian double (high). ¨¢ ; ¨¢ ; Output: %r10: Return value, sine of x in double (low). ¨¢ ; %r11: Return value, sine of x in double (high). ¨¢ ; ¨¢ .code ¨¢ .align 1 ¨¢ .global sin ¨¢ ¨¢ sin: ¨¨¤³¤³¤«¤é³«»Ï¤·¤Æ¡Ä ¨¢ pushn %r3 ; Save registers %r3...%r0. ¨¢ ¨¢ xsub %sp,%sp,20 ; Presearve working area in five words. ¨¢ ¨¢ ¨¢ ¨¢ ;[%sp+16] = Taylor series's sign parameter (high). ¨¢ ¨¢ ;[%sp+12] = Taylor series's sign parameter (low). ¨¢ ¨¢ ;[%sp+08] = Quadrant of trigonometric function (word). ¨¢ ¨¢ ;[%sp+07] = 2nd argument of modf, pointer to its fraction part (high). ¨¢ ¨¢ ;[%sp+00] = 2nd argument of modf, pointer to its fraction part (low). ¨¢ ¨¢ ¨¢ ¨¢ ld.w %r2,%r12 ; Low word of argument x. ¨¢ ¨¢ ld.w %r3,%r13 ; High word of argument x. ¨¢ ¨¢ ¨¢ ¨¢ ;##### REMOVED 12/08/1999 ############# ¨¢ ¨¢ ;# ; ¨¢ ¨¢ ;# ; Clear the sign bit of argument x in %r3:%r2 by shifting ¨¢ ¨¢ ;# ; to make it a plus value. ¨¢ ¨¢ ;# ; ¨¢ ¨¢ ;# sll %r3,1 ; Shift the argument x to the left one bit. ¨¢ ¨¢ ;# srl %r3,1 ; Shift the argument x to the right one bit. ¨¢ ¨¢ ;##### REMOVE END ##################### ¨¢ ¨¢ ¨¢ ¨¢ xld.w %r4,0x0 ; Initialize the quadrant to 0. ¨¢ ¨¢ xld.w [%sp+8],%r4 ; Initialize the quadrant to 0. ¨¢¡Ä¤³¤³¤Þ¤Ç¤Î´Ö¤Ë¡¢V¥Õ¥é¥°¤òÊѲ½¤µ¤»¤ëÌ¿Î᤬¸ºß¤·¤Þ¤»¤ó¡£ ¨¢ ¢­½¾¤Ã¤Æ¤³¤Î»þÅÀ¤Ç¡¢V¥Õ¥é¥°¤Ï´Ø¿ô¤¬¸Æ¤Ó½Ð¤µ¤ì¤¿»þ¤Î¤Þ¤Þ¤Ç¡¢Íפ¹¤ë¤Ë¡ÖÉÔÄê¡×¤Ç¤¹¡£ ¨¢ sra %r13,1 ; Check if x is minus? ¢«sraÌ¿Îá¤Ï¡¢Z¤ÈN¥Õ¥é¥°¤òÊѲ½¤µ¤»¤Þ¤¹¤¬¡¢V¥Õ¥é¥°¤ÏÊѲ½¤µ¤»¤Þ¤»¤ó¡£½¾¤Ã¤Æ¤³¤Î»þÅÀ¤Ç¤â¡¢V¥Õ¥é¥°¤Ï¡ÖÉÔÄê¡×¤Î¤Þ¤Þ¤Ç¤¹¡£ ¨¢ xjrge _ArgIsNotMinus ; Branch if plus or zero. ¢«xjrgeÌ¿Îá¤Îʬ´ô¾ò·ï¤Ï¡Ö!(N^V)¡×¤Ç¤¹¡£¡ØÉÔÄê¤ÊV¥Õ¥é¥°¤ò»²¾È¤·¤Æ¾ò·ïʬ´ô¤ò¹Ô¤Ã¤Æ¤¤¤ë¡Ù¤È¤¤¤¦¥Ð¥°¤Ç¤¹¡£ ¨¢ ; ¨¢ ; --- if the argument x is minus --- ¨¢ ; Clear the sign bit of argument x in %r3:%r2 by shifting ¨¢ ; to make it a plus value. ¨¢ ; ¨¢ sll %r3,1 ; Shift the argument x to the left one bit. ¨¢ srl %r3,1 ; Shift the argument x to the right one bit. ¨¢ ¨¢ xld.w %r4,0x2 ; Set the quadrant 2. ¨¢ xld.w [%sp+8],%r4 ; Set the quadrant 2. ¨¢ ; ¨¢ ; Mutiply the argument x by the constant 2*Pai ¨¢ ; ¨¢ _ArgIsNotMinus: ¨¢ ld.w %r12,%r2 ; Argument x (low). ¨¢ ld.w %r13,%r3 ; Argument x (high). ¨¢ xld.w %r14,TWO_PAI_L ; Multiplier, constant 2*Pai (low). ¨¢ xld.w %r15,TWO_PAI_H ; Multiplier, constant 2*Pai (high). ¨¢ ; ¨¢ xcall __muldf3 ; Calculate multiplication; argument x = x * (2 * Pai). ¨¢ ; The result product is %r11:%r10. ¨¢ ld.w %r2,%r10 ; Put result x in %r2 (low). ¨¢ ld.w %r3,%r11 ; Put result x in %r3 (high). ¨¢ ¨¢ (°Ê²¼Î¬) %r13¥ì¥¸¥¹¥¿¤ÎÀµÉé¤òȽÄꤹ¤ë¤Î¤Ë¡¢ ¡ß¸í ¨¢ sra %r13,1 ; %r13 >>= 1, %psr(Z) = !%r13, %psr(V) = %r13[31] ¨¢ xjrge _ArgIsNotMinus ; if(!(%psr(N)^%psr(V))) { goto _ArgIsNotMinus } ¤È¤·¤Æ¤¤¤ë¤Î¤¬´Ö°ã¤¤¤Ç¤¹¡£Àµ¤·¤¯¤Ï¡¢ ¡»Àµ ¨¢ cmp %r13,0 ; %psr(C) = 0, %psr(V) = 0, %psr(Z) = !%r13, %psr(N) = %r13[31] ¨¢ xjrge _ArgIsNotMinus ; if(!(%psr(N)^%psr(V))) { goto _ArgIsNotMinus } ¤È¤¹¤ë¤«¡¢Ëô¤Ï¡¢ ¡»Àµ ¨¢ add %r13,%r13 ; %psr(C) = %r13[31], %psr(V) = ?, %psr(Z) = ?, %psr(N) = ?, %r13 <<= 1 ¨¢ xjruge _ArgIsNotMinus ; if(!%psr(C)) { goto _ArgIsNotMinus } ¤È¤¹¤ë¤«¡¢Ëô¤Ï¡¢ ¡»Àµ ¨¢ scan1 %r13,%r13 ; %psr(C) = ?, %psr(V) = 0, %psr(Z) = %r13[31], %psr(N) = 0 ¨¢ xjrne _ArgIsNotMinus ; if(!%psr(Z)) { goto _ArgIsNotMinus } ¤È¤¹¤Ù¤­¤Ç¤¹¡£ ¤É¤ì¤ò»È¤Ã¤Æ¤â¸úΨ¤ÏƱ¤Ê¤Î¤Ç¡¢ÁÇľ¤Ë¡Öcmp %r13,0¡×¤ò»È¤¦¤Î¤¬¼«Á³¤À¤È»×¤¤¤Þ¤¹¡£ ¸µ¥½¡¼¥¹¤¬¡¢²¿¸Î¡¢¡Ösra¡×¤ò»È¤Ã¤ÆÉä¹æÈæ³Ó¤ò¤·¤è¤¦¤È¤·¤Æ¤¤¤¿¤Î¤«¤¬¡¢Ææ¤Ç¤¹¡£(¥·¥Õ¥È¤·¤¿Ãͤò¤½¤Î¸å¤Ç»È¤Ã¤Æ¤â¤¤¤Þ¤»¤ó¤·¡Ä) ¢£Âкö Æó¼ïÎà¤ÎÂкöÊýË¡¤¬¤¢¤ê¤Þ¤¹¡£ ¢¢Âкö­¡¡¡¤È¤ê¤¢¤¨¤º²óÈò¤¹¤ëÂкöÊýË¡ ¡Ösin()´Ø¿ô¡×¤ò¤¢¤Þ¤êÉÑÈˤ˻Ȥï¤Ê¤¤¾ì¹ç¤Ï¡¢¤½¤ÎÅÔÅÙÂкö¤¹¤ë¤Î¤¬¼ê¤Ã¼è¤êÁ᤯¤ÆÎɤ¤¤È»×¤¤¤Þ¤¹¡£ ¡Ösin(x) == cos(x-¦Ð/2)¡×¤Ç¤¹¤«¤é¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥×¥í¥°¥é¥à¤Î¥½¡¼¥¹¤ÎÃæ¤Ç¡¢¡Ösin()´Ø¿ô¡×¤ò°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤·¤Æ²¼¤µ¤¤¡£ ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥×¥í¥°¥é¥à¤Î¥½¡¼¥¹¤ÎÃæ¤Ç¡Ösin()´Ø¿ô¡×¤òÄêµÁ¤·¤Æ¤ª¤±¤Ð¡¢EPSON¥é¥¤¥Ö¥é¥ê¤Î¡Ösin()´Ø¿ô¡×¤Ï¥ê¥ó¥¯¤µ¤ì¤Þ¤»¤ó¡£ ¡Ú¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥×¥í¥°¥é¥à¤ÎÃæ¤ÇÄêµÁ¤¹¤ë¡Û ¨¢ double sin(double x) { return cos(x - 1.5707963267948966192313216916398); } ¢¢Âкö­¢¡¡º¬ËÜŪ¤Ë½¤Àµ¤¹¤ëÂкöÊýË¡ ¡Ösin()´Ø¿ô¡×¤òÉÑÈˤ˻Ȥ¦¾ì¹ç¤Ï¡¢¤½¤ÎÅÔÅپ嵭¤ÎÂкö¤ò¹Ô¤¦¤Î¤ÏÌÌÅݤÀ¤·¡¢¸«Íî¤È¤¹¤ª¤½¤ì¤¬¤¢¤ë¤Î¤Ç¡¢ EPSONÀ½C¥é¥¤¥Ö¥é¥ê¤Î¡Ösin()´Ø¿ô¡×¤ò½¤Àµ¤·¤Æ¡¢ÃÖ¤­´¹¤¨¤ëÊý¤¬°ÂÁ´¤Ç¤·¤ç¤¦¡£ ½¤Àµ¤·¤¿¡Ösin.s¡×¤ò¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤È°ì½ï¤Ë¥Ó¥ë¥É¤¹¤ì¤Ð¡¢ ¡Ö\usr\PIECE\lib\math.lib¡×¤ÎÃæ¤Ë¤¢¤ë¸µ¤Î¡Ösin()´Ø¿ô¡×¤è¤ê¤âÍ¥À褵¤ì¤Æ¡¢½¤Àµ¤·¤¿¡Ösin()´Ø¿ô¡×¤¬¥ê¥ó¥¯¤µ¤ì¤Þ¤¹¡£ ½¤Àµ¤·¤¿¡Ösin.s¡×¤Ï¤³¤Á¤é¡§¡¡http://www.piece-me.org/piece-lab/sinbug/sin.s ¢£¥À¥¦¥ó¥í¡¼¥É ¥Ð¥°ºÆ¸½¥×¥í¥°¥é¥à¤È¡¢Âкö¥×¥í¥°¥é¥à¤Î¥µ¥ó¥×¥ë¤Ï¡¢¤³¤Á¤é¤Ç¤¹¡£ ¥À¥¦¥ó¥í¡¼¥É¤Ï¤³¤Á¤é¡§¡¡http://www.piece-me.org/piece-lab/sinbug/sinbug-20161025-src.zip * Sat Aug 06 00:37:42 JST 2016 Naoyuki Sawa - int¤òlong long¤ËÉä¹æ³ÈÄ¥¤¹¤ë¡¢¿§¡¹¤ÊÊýË¡ ¥¢¥»¥ó¥Ö¥é¥×¥í¥°¥é¥à¤Ç¡¢int(32¥Ó¥Ã¥ÈÀ°¿ô)¤Èlong long(64¥Ó¥Ã¥ÈÀ°¿ô)¤òº®ºß¤·¤Æ·×»»¤¹¤ë¾ì¹ç¡¢int¤òlong long¤ËÉä¹æ³ÈÄ¥¤¹¤ëɬÍפ¬Í­¤ê¤Þ¤¹¡£ PC¤Îx86 CPU¤À¤È¡¢int¤òlong long¤ËÉä¹æ³ÈÄ¥¤¹¤ëÀìÍѤÎCDQÌ¿Î᤬ͭ¤Ã¤Æ¡¢¤¢¤Þ¤ê¹©ÉפÎ;ÃϤÏÍ­¤ê¤Þ¤»¤ó¡£ P/ECE¤ÎS1C33 CPU¤Ë¤Ï¡¢int¤òlong long¤ËÉä¹æ³ÈÄ¥¤¹¤ëÀìÍѤÎÌ¿Îá¤Ï̵¤¤¤Î¤Ç¡¢¿§¡¹¤ÊÊýË¡¤¬¹Í¤¨¤é¤ì¤ÆÌÌÇò¤¤¤Ç¤¹¡£ º£²ó¤Ï¡¢S1C33¤Ç¡¢int¤òlong long¤ËÉä¹æ³ÈÄ¥¤¹¤ë¡¢¿§¡¹¤ÊÊýË¡¤ò¾Ò²ð¤·¤Þ¤¹¡£ Îã¤È¤·¤Æ¡¢%r12¥ì¥¸¥¹¥¿¤ÎintÃͤκǾå°Ì¥Ó¥Ã¥È¤ò¡¢%r13¥ì¥¸¥¹¥¿¤ÎÁ´¥Ó¥Ã¥È¤ËÉä¹æ³ÈÄ¥¤·¤Æ¡¢%r13:%r12¥ì¥¸¥¹¥¿¤Îlong longÃͤȤ¹¤ë¥±¡¼¥¹¤ò¹Í¤¨¤Þ¤¹¡£ ­¡ÁÇľ¤ÊÊýË¡ver.1 ¨¢ ld.w %r13, %r12 ¨¢ xsra %r13, 31 °ì¸«¡¢Îɤµ¤½¤¦¤Ê¤Î¤Ç¤¹¤¬¡¢¼Â¤Ï¡¢¥³¡¼¥É¥µ¥¤¥º¤¬Â礭¤¯¤ÆÃÙ¤¤¡¢¤È¤¤¤¦ÌäÂ꤬ͭ¤ê¤Þ¤¹¡£ S1C33¤Ï°ìÅÙ¤Ë8¥Ó¥Ã¥È¤·¤«¥·¥Õ¥È½ÐÍè¤Ê¤¤¤¿¤á¡¢¾åµ­¤Î¥¢¥»¥ó¥Ö¥é¥×¥í¥°¥é¥à¤Ï¡¢¼ÂºÝ¤Ë¤Ï¡¢°Ê²¼¤ÎÌ¿Îá¤ËŸ³«¤µ¤ì¤ë¤«¤é¤Ç¤¹¡£ ¨¢ ld.w %r13, %r12 ;//2¥Ð¥¤¥È¡¢1¥µ¥¤¥¯¥ë ¨¢ sra %r13, 8 ;//2¥Ð¥¤¥È¡¢1¥µ¥¤¥¯¥ë ¨¢ sra %r13, 8 ;//2¥Ð¥¤¥È¡¢1¥µ¥¤¥¯¥ë ¨¢ sra %r13, 8 ;//2¥Ð¥¤¥È¡¢1¥µ¥¤¥¯¥ë ¨¢ sra %r13, 7 ;//2¥Ð¥¤¥È¡¢1¥µ¥¤¥¯¥ë ¥³¡¼¥É¥µ¥¤¥º¤Ï10¥Ð¥¤¥È¤Ç¡¢¼Â¹Ô»þ´Ö¤Ï5¥µ¥¤¥¯¥ë¤Ç¤¹¡£ ¤Þ¤¢¡¢¤³¤ì¤Ç¤â¹½¤ï¤Ê¤¤¤Î¤Ç¤¹¤¬¡¢¤â¤Ã¤È¾®¤µ¤¯¡¢¤â¤Ã¤ÈÁᤤÊýË¡¤¬Í­¤ë¤Î¤Ç¡¢¾åµ­¤ÎÊýË¡¤ÏµÑ²¼¤Ç¤¹¡£ ­¢ÁÇľ¤ÊÊýË¡ver.2 ¨¢ cmp %r12, 0 ;//2¥Ð¥¤¥È¡¢1¥µ¥¤¥¯¥ë ¨¢ jrge.d 3 ;//2¥Ð¥¤¥È¡¢1¥µ¥¤¥¯¥ë ¨¢ ld.w %r13, 0 ;//2¥Ð¥¤¥È¡¢1¥µ¥¤¥¯¥ë ¨¢ ld.w %r13, -1 ;//2¥Ð¥¤¥È¡¢1¥µ¥¤¥¯¥ë ʬ´ô¤·¤¿¾ì¹ç¤Ï¼Â¹Ô¤·¤Ê¤¤ ¥³¡¼¥É¥µ¥¤¥º¤Ï8¥Ð¥¤¥È¤Ç¡¢¼Â¹Ô»þ´Ö¤Ï¡Ö%r12¡æ0¡×¤Î¾ì¹ç3¥µ¥¤¥¯¥ë¡¤¡Ö%r12¡ã0¡×¤Î¾ì¹ç4¥µ¥¤¥¯¥ë¤Ç¤¹¡£ S1C33¤Ï¾ò·ïʬ´ô¤¬Áᤤ¤Î¤Ç¡¢¤³¤ì¤Ï¤«¤Ê¤êÎɤ¤ÊýË¡¤Ç¤¹¡£ ¡Öx = (¾ò·ï) ? (ÃÍA) : (ÃÍB)¡×¤Î½èÍý¤ò¥¢¥»¥ó¥Ö¥é¤Ç½ñ¤¯¾ì¹ç¡¢ÃÙ±äʬ´ô¤Îľ¸å¤ËÃÍA¤Î¥í¡¼¥É¤òÃÖ¤¤¤Æ¡¢¤µ¤é¤Ë¤½¤Îľ¸å¤ËÃÍB¤Î¥í¡¼¥É¤òÃÖ¤¯¡¢¤È¤¤¤¦¤Î¤¬ºÇŬ²½¤ÎÄêÈ֤Ǥ¹¡£ ­£¥­¥ã¥ê¡¼¥Õ¥é¥°¤ò»È¤Ã¤¿ÊýË¡ ¨¢ ld.w %r13, %r12 ;//2¥Ð¥¤¥È¡¢1¥µ¥¤¥¯¥ë ¨¢ add %r13, %r13 ;//2¥Ð¥¤¥È¡¢1¥µ¥¤¥¯¥ë ¨¢ ld.w %r13, 0 ;//2¥Ð¥¤¥È¡¢1¥µ¥¤¥¯¥ë ¨¢ sbc %r13, %r13 ;//2¥Ð¥¤¥È¡¢1¥µ¥¤¥¯¥ë ¥³¡¼¥É¥µ¥¤¥º¤Ï8¥Ð¥¤¥È¤Ç¡¢¼Â¹Ô»þ´Ö¤Ï4¥µ¥¤¥¯¥ë¤Ç¤¹¡£ ­¢¤ÎÊýË¡¤è¤ê¤â¡¢Ê¿¶Ñ0.5¥µ¥¤¥¯¥ëÃÙ¤¤¤Î¤Ç¡¢´º¤¨¤Æ¤³¤ÎÊýË¡¤ò»È¤¦É¬ÍפÏÍ­¤ê¤Þ¤»¤ó¡£(ÍøÅÀ¤¬Ìµ¤¤¤Î¤Ë¾Ò²ð¤·¤¿Íýͳ¤Ï¡¢¤³¤Î¸å­§¤Ç¡¦¡¦¡¦) ¡Öld.w %r13, %r12¡×¡Öadd %r13, %r13¡×¤Ç¡¢¸µ¤ÎÃͤκǾå°Ì¥Ó¥Ã¥È¤ò%psr(C)¤ËÁ÷¤ê¡¢¡Öld.w %r13, 0¡×¡Ösbc %r13, %r13¡×¤Ç¡¢¡Ö%r13 = 0 - 0 - %psr(C)¡×¤ËÁêÅö¤¹¤ë½èÍý¤ò¹Ô¤Ã¤Æ¤¤¤Þ¤¹¡£ ¸µ¤ÎÃͤκǾå°Ì¥Ó¥Ã¥È¤¬0¤À¤Ã¤¿¤é¡Ö%r13 = 0 - 0 - 0 = 0¡×¡¢¸µ¤ÎÃͤκǾå°Ì¥Ó¥Ã¥È¤¬1¤À¤Ã¤¿¤é¡Ö%r13 = 0 - 0 - 1 = -1¡×¤È¤Ê¤ê¤Þ¤¹¡£ ­¤Éä¹æ³ÈÄ¥¤òȼ¤¦Ì¿Îá¤òÍøÍѤ¹¤ëÊýË¡ver.1 ¨¢ ld.w %r13, 1 ;//2¥Ð¥¤¥È¡¢1¥µ¥¤¥¯¥ë ¨¢ mlt.w %r12, %r13 ;//2¥Ð¥¤¥È¡¢5¥µ¥¤¥¯¥ë ¨¢ ld.w %r13, %ahr ;//2¥Ð¥¤¥È¡¢1¥µ¥¤¥¯¥ë ¥³¡¼¥É¥µ¥¤¥º¤Ï6¥Ð¥¤¥È¤Ç¡¢¼Â¹Ô»þ´Ö¤Ï7¥µ¥¤¥¯¥ë¤Ç¤¹¡£ ¥³¡¼¥É¥µ¥¤¥º¤Ï¤³¤³¤Þ¤Ç¤ÎÃæ¤ÇºÇû¤Ç¤¹¤¬¡¢¼Â¹Ô»þ´Ö¤ÏÃÙ¤¤¤Î¤Ç¡¢¤¤¤Þ¤¤¤Á¤ÊÊýË¡¤Ç¤¹¡£ mlt.wÌ¿Îá¤Ï¡¢intÃͤÈintÃͤò³Ý¤±¤Ælong longÃͤˤ¹¤ë¤Î¤Ç¡¢¡Ö%r12¡ß1¡×¤ò¹Ô¤¨¤Ð¡¢%r12¤ÎºÇ¾å°Ì¥Ó¥Ã¥È¤¬¡¢¾è»»·ë²Ì¤Î%ahr:%alr¤Î¾å°Ì¥ï¡¼¥É(%ahr)¤Ë³ÈÄ¥¤µ¤ì¤ë»ÅÁȤߤǤ¹¡£ ­¥Éä¹æ³ÈÄ¥¤òȼ¤¦Ì¿Îá¤òÍøÍѤ¹¤ëÊýË¡ver.2 ¨¢ ld.w %alr, %r12 ;//2¥Ð¥¤¥È¡¢1¥µ¥¤¥¯¥ë ¨¢ div0s %r12 ;//2¥Ð¥¤¥È¡¢1¥µ¥¤¥¯¥ë ¨¢ ld.w %r13, %ahr ;//2¥Ð¥¤¥È¡¢1¥µ¥¤¥¯¥ë ¥³¡¼¥É¥µ¥¤¥º¤Ï6¥Ð¥¤¥È¤Ç¡¢¼Â¹Ô»þ´Ö¤Ï3¥µ¥¤¥¯¥ë¤Ç¤¹¡£ div0sÌ¿Îá¤ÏËÜÍè¤Ï½ü»»¤ÎÁ°½àÈ÷¤Î¤¿¤á¤ÎÌ¿Îá¤Ê¤Î¤Ç¤¹¤¬¡¢¤½¤Î»þ¤Ë%alr¤ÎºÇ¾å°Ì¥Ó¥Ã¥È¤¬%ahr¤ËÉä¹æ³ÈÄ¥¤µ¤ì¤ë»ö¤òÍøÍѤ·¤¿ÊýË¡¤Ç¤¹¡£ ºÇ½é¤Ï¡¢¤³¤ì¤¬ºÇÎɤÎÊýË¡¤«¤È»×¤Ã¤Æ¤¤¤¿¤Î¤Ç¤¹¤¬¡¢Ã×̿Ū¤ÊÌäÂ꤬ͭ¤ë»ö¤Ëµ¤ÉÕ¤­¤Þ¤·¤¿¡£ %r12¤¬0¤Î¾ì¹ç¤Ë¡¢¡Ödiv0s %r12¡×¤¬¥¼¥í½ü»»Îã³°¤òÅêÆþ¤·¤Æ¤·¤Þ¤¦ÌäÂê¤Ç¤¹¡£ ¤³¤ÎÍÑÅӤǤϡ¢div0sÌ¿Îá¤Î¥ª¥Ú¥é¥ó¥É¤Ï´Ø·¸Ìµ¤¤¤Î¤Ç¡¢%r12°Ê³°¤ò»ØÄꤷ¤Æ¤â¹½¤ï¤Ê¤¤¤Î¤Ç¤¹¤¬¡¢³Î¼Â¤Ë0°Ê³°¤Ç¤¢¤ë¥ì¥¸¥¹¥¿¤ÏÍ­¤ê¤Þ¤»¤ó¡£ ¡Á¡Öld.w %r13, 1¡×¡Ödiv0s %r13¡×¡Á¤Ê¤ó¤Æ¤·¤Æ¤·¤Þ¤¦¤È¡¢¥³¡¼¥É¥µ¥¤¥º¤È¼Â¹Ô»þ´Ö¤¬Áý¤¨¤ÆËÜËöžÅݤǤ¹¡£ ¤È¤¤¤¦Ìõ¤Ç¡¢¤³¤ÎÊýË¡¤Ï»È¤¨¤Þ¤»¤ó¡£ ­¦ÁÇľ¤ÊÊýË¡ver.1(²þÁ±ÈÇ) ¨¢ swap %r13, %r12 ;//2¥Ð¥¤¥È¡¢1¥µ¥¤¥¯¥ë ¨¢ ld.b %r13, %r13 ;//2¥Ð¥¤¥È¡¢1¥µ¥¤¥¯¥ë ¨¢ sra %r13, 7 ;//2¥Ð¥¤¥È¡¢1¥µ¥¤¥¯¥ë ¥³¡¼¥É¥µ¥¤¥º¤Ï6¥Ð¥¤¥È¤Ç¡¢¼Â¹Ô»þ´Ö¤Ï3¥µ¥¤¥¯¥ë¤Ç¤¹¡£ ¤³¤ì¤¬¡¢ºÇÎɤÎÊýË¡¤Î°ì¤Ä¤Ç¤¹¡£ ­¡¤Ç½Ò¤Ù¤¿Ä̤êP/ECE¤Ï¥·¥Õ¥ÈÌ¿Î᤬¼å¤¤¤Î¤¬·çÅÀ¤Ê¤Î¤Ç¤¹¤¬¡¢¤½¤Î·çÅÀ¤ò²óÈò¤¹¤ë¤¿¤á¤Ë¡¢swapÌ¿Îá¤Èld.bÌ¿Îá¤òÁȤ߹ç¤ï¤»¤Æ¥í¡¼¥É¤È24¥Ó¥Ã¥È¥·¥Õ¥È¤ò°ìµ¤¤Ë¹Ô¤Ã¤¿¤Î¤¬¡¢¤³¤ÎÊýË¡¤Ç¤¹¡£ swapÌ¿Îá¤Î¾¤Ë¤â¡¢mirrorÌ¿Îá¤änotÌ¿Îá¤Ï¥í¡¼¥É¤È¥Ó¥Ã¥È½èÍý¤òƱ»þ¤Ë¼Â¹Ô½ÐÍè¤ë¤Î¤Ç¡¢¿§¡¹¹©Éפ¬¸ú¤¤¤ÆÊØÍø¤ÊÌ¿Îá¤Ç¤¹¡£ ­§¥­¥ã¥ê¡¼¥Õ¥é¥°¤ò»È¤Ã¤¿ÊýË¡(²þÁ±ÈÇ) ¨¢ ld.w %r13, %r12 ;//2¥Ð¥¤¥È¡¢1¥µ¥¤¥¯¥ë ¨¢ add %r13, %r13 ;//2¥Ð¥¤¥È¡¢1¥µ¥¤¥¯¥ë ¨¢ sbc %r13, %r13 ;//2¥Ð¥¤¥È¡¢1¥µ¥¤¥¯¥ë ¥³¡¼¥É¥µ¥¤¥º¤Ï6¥Ð¥¤¥È¤Ç¡¢¼Â¹Ô»þ´Ö¤Ï3¥µ¥¤¥¯¥ë¤Ç¤¹¡£ ¤³¤ì¤â¡¢ºÇÎɤÎÊýË¡¤Î°ì¤Ä¤Ç¤¹¡£ ­£¤Î¥×¥í¥°¥é¥à¤ò¤è¤¯¸«¤ë¤È¡¢¡Öld.w %r13, 0¡×¤ÏÉÔÍפǤ¢¤ë»ö¤Ëµ¤ÉÕ¤­¤Þ¤·¤¿¡£ ¡Ö%r13 = 0 - 0 - %psr(C)¡×¤â¡¢¡Ö%r13 = ÉÔÄêÃÍ - ÉÔÄêÃÍ - %psr(C)¡×¤â¡¢·ë²Ì¤ÏƱ¤¸¤À¤«¤é¤Ç¤¹¡£('ÉÔÄêÃÍ'¤Ï¡¢Î¾Êý¤È¤âƱ¤¸ÃͤȤ¹¤ë) ¤È¤¤¤¦¤ï¤±¤Ç¡¢­£¤Î¥×¥í¥°¥é¥à¤«¤é°ìÌ¿Îáºï½ü¤·¤¿¤Î¤¬¡¢¤³¤ÎÊýË¡¤Ç¤¹¡£ ¢£¤Þ¤È¤á P/ECE¤ÎS1C33 CPU¤Ç¡¢int¤òlong long¤ËÉä¹æ³ÈÄ¥¤¹¤ëÊýË¡¤Ï¡¢¾åµ­¤Î­¦Ëô¤Ï­§¤ÎÊýË¡¤¬ºÇÎɤÀ¤È»×¤¤¤Þ¤¹¡£ * Fri May 27 23:10:38 JST 2016 Naoyuki Sawa - Ì¿Îᥨ¥¯¥¹¥¿¥ó¥À¡Öext33.exe¡×¤Î¥Ð¥° P/ECE³«È¯´Ä¶­¤Î¡¢Ì¿Îᥨ¥¯¥¹¥¿¥ó¥À¡Öext33.exe¡×¤Ë¤Ï¡¢¥Ð¥°¤¬Í­¤ê¤Þ¤¹¡£ ʸ»úÎó¤ÎËöÈø¤ËÍ­¤ë¡¢¥¨¥¹¥±¡¼¥×¤µ¤ì¤¿¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥å¤òÀµ¤·¤¯Ç§¼±½ÐÍè¤Ê¤¤¡¢¤È¤¤¤¦¥Ð¥°¤Ç¤¹¡£ ¢£¥Ð¥°¤òºÆ¸½¤¹¤ëÊýË¡ ¤Þ¤º¡¢Àµ¾ï¤Ê¥±¡¼¥¹¤ò³Îǧ¤·¤Þ¤¹¡£ ²¼µ­¤Î¥×¥í¥°¥é¥à¤ò¡¢"sample.c"¤È¤¤¤¦Ì¾Á°¤ÇÊݸ¤·¤Æ²¼¤µ¤¤¡£ ¨¢const char str[]="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmɽ¸½"; ²¼µ­¤Î¥Ð¥Ã¥Á¥Õ¥¡¥¤¥ë¤ò¡¢"compile.bat"¤È¤¤¤¦Ì¾Á°¤ÇÊݸ¤·¤Æ²¼¤µ¤¤¡£ ¨¢@REM compile.bat ¨¢pcc33.exe -b -c sample.c ¨¢@IF ERRORLEVEL 1 (ECHO ¥¨¥é¡¼¤¬È¯À¸¤·¤Þ¤·¤¿¡£) ELSE (ECHO Àµ¾ï½ªÎ»¤·¤Þ¤·¤¿¡£) ¥³¥Þ¥ó¥É¥é¥¤¥ó¤Ç¡¢compile.bat¤ò¼Â¹Ô¤·¤Æ²¼¤µ¤¤¡£ Àµ¾ï¤Ë¥³¥ó¥Ñ¥¤¥ë¤Ç¤­¤Æ¡¢°Ê²¼¤Î¥á¥Ã¥»¡¼¥¸¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£ ¨¢Àµ¾ï½ªÎ»¤·¤Þ¤·¤¿¡£ ¼¡¤Ë¡¢¥¨¥é¡¼¤¬È¯À¸¤¹¤ë¥±¡¼¥¹¤ò³Îǧ¤·¤Þ¤¹¡£ ¤µ¤­¤Û¤ÉÊݸ¤·¤¿sample.c¤ò³«¤¤¤Æ¡¢°Ê²¼¤Î¤è¤¦¤ËÊѹ¹¤·¤Æ¡¢Êݸ¤·¤Æ²¼¤µ¤¤¡£ Êѹ¹ÅÀ¤Ï¡¢"ɽ"¤ÎÁ°¤Ë"n"¤ò°ìʸ»úÄɲä·¤¿¤À¤±¤Ç¤¹¡£ ¨¢const char str[]="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnɽ¸½"; ¥³¥Þ¥ó¥É¥é¥¤¥ó¤Ç¡¢compile.bat¤ò¼Â¹Ô¤·¤Æ²¼¤µ¤¤¡£ ¥¨¥é¡¼¤¬È¯À¸¤·¤Æ¡¢°Ê²¼¤Î¥á¥Ã¥»¡¼¥¸¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£ ¨¢ ¢«¶õ¹Ô¤Ç¤¹¡£ ¨¢ ¢«¶õ¹Ô¤Ç¤¹¡£ ¨¢ ¢«¶õ¹Ô¤Ç¤¹¡£ ¨¢¥¨¥é¡¼¤¬È¯À¸¤·¤Þ¤·¤¿¡£ ¢£¸¶°øÄ´ºº ʸ»úÎó¤Ë°ìʸ»úÄɲä·¤¿¤À¤±¤Ç¡¢C¸À¸ì¤Î¥×¥í¥°¥é¥à¤È¤·¤Æ¤ÏÁ´¤¯Àµ¤·¤¤¤Î¤Ë¡¢¤Ê¤¼¸å¼Ô¤Ç¤Ï¥¨¥é¡¼¤¬È¯À¸¤¹¤ë¤Î¤Ç¤·¤ç¤¦¤«¡£ Ä´ºº¤·¤¿¤È¤³¤í¡¢P/ECE³«È¯´Ä¶­¤Îext33.exe¤Î¥Ð¥°¤¬¸¶°ø¤Ç¤¢¤ë»ö¤¬È½¤ê¤Þ¤·¤¿¡£ °Ê²¼¡¢¾ÜºÙ¤Ç¤¹¡£ pcc33.exe¤Ï¥³¥ó¥Ñ¥¤¥é¥É¥é¥¤¥Ð¤Ç¤¢¤ê¡¢°Ê²¼¤Î¤è¤¦¤ËÊ£¿ô¤Î¥Ä¡¼¥ë¤ò¸Æ¤Ó½Ð¤·¤Æ¥³¥ó¥Ñ¥¤¥ë¤ò¹Ô¤Ã¤Æ¤¤¤Þ¤¹¡£ ­¡ gcc33.exe C¸À¸ì¥½¡¼¥¹¤ò¥³¥ó¥Ñ¥¤¥ë¤·¤Æ¡¢¥¢¥»¥ó¥Ö¥é¥½¡¼¥¹(³Èĥ̿ÎáÍ­¤ê)¤ËÊÑ´¹¤¹¤ë¡£(sample.c ¢Í sample.ps) ­¢ ext33.exe ¥¢¥»¥ó¥Ö¥é¥½¡¼¥¹(³Èĥ̿ÎáÍ­¤ê)¤ÎÃæ¤Î¡¢³Èĥ̿Îá¤òŸ³«¤·¤Æ¡¢¥¢¥»¥ó¥Ö¥é¥½¡¼¥¹(³Èĥ̿Îá̵¤·)¤ËÊÑ´¹¤¹¤ë¡£(sample.ps ¢Í sample.ms) ­£ as33.exe ¥¢¥»¥ó¥Ö¥é¥½¡¼¥¹(³Èĥ̿Îá̵¤·)¤ò¥³¥ó¥Ñ¥¤¥ë¤·¤Æ¡¢¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤ËÊÑ´¹¤¹¤ë¡£(sample.ms ¢Í sample.o) ­¤ lk33.exe ¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤ò¥ê¥ó¥¯¤¹¤ë¡£(sample.o ¢Í sample.srf) ¢¨º£²ó¤Î·ï¤Ë¤Ï´Ø·¸Ìµ¤¤¤Î¤Ç¡¢pcc33.exe¤Ë¡Ö-c¡×¥Õ¥é¥°¤ò»ØÄꤷ¤Æ¡¢¤³¤Î½èÍý¤Ï¼Â¹Ô¤·¤Þ¤»¤ó¡£ ­¢¤ÎÆþÎÏ¥Õ¥¡¥¤¥ë¤Ç¤¢¤ësample.ps¤ò¡¢¥¨¥é¡¼¤¬È¯À¸¤·¤Ê¤¤¥±¡¼¥¹¤È¡¢¥¨¥é¡¼¤¬È¯À¸¤·¤¿¥±¡¼¥¹¤È¤Ç¡¢Èæ³Ó¤·¤Æ¤ß¤Þ¤·¤¿¡£ ¢¢¥¨¥é¡¼¤¬È¯À¸¤·¤Ê¤¤¥±¡¼¥¹ ¨¢str: ¨¢ .ascii "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklm\225\\\214" ¨¢ .ascii "\273\000" ¢¢¥¨¥é¡¼¤¬È¯À¸¤·¤¿¥±¡¼¥¹ ¨¢str: ¨¢ .ascii "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmn\225\\" ¨¢ .ascii "\214\273\000" ËÜÍè¤Ï¤É¤Á¤é¤â¡¢¥¢¥»¥ó¥Ö¥é¥½¡¼¥¹¤È¤·¤ÆÀµ¤·¤¤ÆâÍƤǤ¹¡£ ¸å¼Ô¤Ï¡Öɽ¡×¤Î2¥Ð¥¤¥ÈÌܤÎ'\'¤¬¡¢Ê¸»úÎó¤Î°ìÈֺǸå¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£¤­¤Á¤ó¤È'\\'¤Ç¥¨¥¹¥±¡¼¥×¤µ¤ì¤Æ¤¤¤ë¤Î¤Ç¡¢ËÜÍè¤ÏÀµ¤·¤¤¤Î¤Ç¤¹¤¬¡¢ ¤É¤¦¤ä¤éext33.exe¤Ï¡¢Ê¸»úÎó¤òÊĤ¸¤ë'"'¤òȽÄꤹ¤ë»þ¤Ë¡¢°ìʸ»úÁ°¤¬'\'¤«¤É¤¦¤«¤À¤±¤ò¸«¤Æ¥¨¥¹¥±¡¼¥×¤µ¤ì¤¿'"'¤«¤É¤¦¤«¤òȽÄꤷ¤Æ¤¤¤ë¤è¤¦¤Ç¤¹¡£ ¢«¢«¢«¡ÚÍ×ÅÀ¡Û¤³¤ì¤¬¥Ð¥°¤Ç¤¹¡£ ¤½¤·¤Æ¡¢Ê¸»úÎó¤¬ÊĤ¸¤é¤ì¤Æ¤¤¤Ê¤¤¤ÈȽÄꤷ¤Æ¡¢¥¨¥é¡¼½ªÎ»¤·¤Æ¤·¤Þ¤¦¤è¤¦¤Ç¤¹¡£ »î¤·¤Ë¡¢¾åµ­¤Î¡Ö¢¢¥¨¥é¡¼¤¬È¯À¸¤·¤¿¥±¡¼¥¹¡×¤Îsample.ps¤ò¾¯¤·¼ê¤Ç½ñ¤­´¹¤¨¤ë¤È¡¢¥¨¥é¡¼¤¬½Ð¤Ê¤¯¤Ê¤ê¤Þ¤·¤¿¡£ ¢¢¥¨¥é¡¼¤¬È¯À¸¤·¤¿¥±¡¼¥¹(Êѹ¹¸å) ¨¢str: ¨¢ .ascii "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmn\225" ¨¢ .ascii "\\\214\273\000" ¢«¸µ¡¹¾å¤Î¹Ô¤ÎºÇ¸å¤ËÍ­¤Ã¤¿'\\'¤ò¡¢¼¡¤Î¹Ô¤ÎÀèƬ¤Ë°Ü¤·¤¿¡£¥Ç¡¼¥¿¤ÎÆâÍƤÏÁ´¤¯Æ±¤¸¤Ç¡¢¥½¡¼¥¹¾å¤Î°ã¤¤¤À¤±¤Ç¤¹¡£ ¤½¤·¤Æ¡¢ext33.exe¤òľÀܼ¹Ԥ·¤Æ¤ß¤ë¤È¡Ä ¨¢ext33.exe sample.ps ¨¢@IF ERRORLEVEL 1 (ECHO ¥¨¥é¡¼¤¬È¯À¸¤·¤Þ¤·¤¿¡£) ELSE (ECHO Àµ¾ï½ªÎ»¤·¤Þ¤·¤¿¡£) ·ë²Ì¤Ï¡ÖÀµ¾ï½ªÎ»¤·¤Þ¤·¤¿¡£¡×¤Ë¤Ê¤ê¤Þ¤·¤¿¡£ ¤ä¤Ï¤ê¡¢Ê¸»úÎó¤ÎËöÈø¤ËÍ­¤ë'\\'¤¬¸¶°ø¤Ç¤¹¡£ ¤Á¤Ê¤ß¤Ë¡¢Ê¸»úÎó¤¬""¤Ç°Ï¤Þ¤ì¤Æ¤¤¤ë¤«¤É¤¦¤«¤òȽÄꤹ¤ë¤Î¤Ï¡¢ext33.exe¤Îµ¡Ç½¤Î°ì¤Ä¤Ê¤Î¤Ç¤¹¤¬¡¢¤½¤Îµ¡Ç½¤¬Àµ¤·¤¯Æ°¤¤¤Æ¤¤¤Ê¤¤¤è¤¦¤Ç¤¹¤Í¡£ ¢¢»²¾È»ñÎÁ ¨¢¡ÖS5U1C33000C Manual (S1C33 Family C¥³¥ó¥Ñ¥¤¥é¥Ñ¥Ã¥±¡¼¥¸) (Ver.4) (P/ECE³«È¯´Ä¶­¤Î¡ÖC:\usr\PIECE\docs\datasheet\EPSON¡×¤ËÆþ¤Ã¤Æ¤¤¤Þ¤¹) ¨¢p.147¡Ö10. Ì¿Îᥨ¥¯¥¹¥Æ¥ó¥À - 10.8.3 ʸˡ¥Á¥§¥Ã¥¯¡× ¨¢¡äext33¤Ï³Èĥ̿Îá¤È°Ê²¼¤Î¥¢¥»¥ó¥Ö¥éµ¿»÷Ì¿Îá¤Îʸˡ¥Á¥§¥Ã¥¯¤Î¤ß¤ò¹Ô¤¤¤Þ¤¹¡£ ¨¢¡ä¡Á ¨¢¡ä.asciiµ¿»÷Ì¿Îá ¨¢¡ä ʸ»úÎó¤¬" "¤Ç°Ï¤Þ¤ì¤Æ¤¤¤ë¤«¥Á¥§¥Ã¥¯¤·¤Þ¤¹¡£ ¸í¤Ã¤Æ¡¢Àµ¤·¤¤Ê¸»úÎó¤ò¥¨¥é¡¼¤È¸«¤Ê¤·¤Æ¤·¤Þ¤¦¤À¤±¤Ç¤Ê¤¯¡¢¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤òɽ¼¨¤»¤º¤Ë°ÕÌ£ÉÔÌÀ¤Ê¶õ¹Ô¤¬»°¹Ô½ÐÎϤµ¤ì¤¿¤ê¡¢ ¥¨¥é¡¼¥³¡¼¥É¤òÊÖ¤·¤Æ¤¤¤ë¤Ë¤â¤«¤«¤ï¤é¤º²èÌ̾å¤Ë¤Ï¡ÖExtend Completed¡×¤È¤¤¤¦¥á¥Ã¥»¡¼¥¸¤òɽ¼¨¤·¤Æ¤·¤Þ¤¦¤È¤¤¤¦¥Ð¥°¤âÍ­¤Ã¤¿¤ê¤¹¤ë¤è¤¦¤Ç¤¹¡£ ¢£¥Ð¥°¤Î±Æ¶Á °ì¸«¡¢¤«¤Ê¤êÃ×̿Ū¤Ê¥Ð¥°¤Î¤è¤¦¤Ë¸«¤¨¤Þ¤¹¤¬¡¢¼ÂºÝ¤Ë¤Ï¡¢¤³¤Î¥Ð¥°¤¬¸²ºß²½¤¹¤ë»ö¤Ï¤«¤Ê¤êµ©¤Ç¤¹¡£ ¤Ê¤¼¤Ê¤é¡¢C¸À¸ìʸ»úÎó¤Î¾ì¹ç¡¢ºÇ¸å¤Ë¥Ì¥ëʸ»ú¤¬ÉÕ¤¯¤Î¤Ç¡¢¥¢¥»¥ó¥Ö¥é¥½¡¼¥¹¤Ë¤Ê¤Ã¤¿»þ¤Ëʸ»úÎó¤ÎºÇ¸å¤Ë'\'¤¬Íè¤ë»ö¤Ïµ©¤À¤«¤é¤Ç¤¹¡£ ¨¢const char str1[]="ÌÀ¼¨Åª¤Ê\\"; ¨¢const char str2[]="°ÅÌۤΡÄɽ"; //¡Öɽ¡×¤Î2¥Ð¥¤¥ÈÌܤÏ'\'¤Ç¤¹¡£ ¾åµ­¤ÎC¸À¸ìʸ»úÎó¤Ï¤É¤Á¤é¤â'\'¤Ç½ª¤ï¤Ã¤Æ¤¤¤Þ¤¹¤¬¡¢¥¢¥»¥ó¥Ö¥é¥½¡¼¥¹¾å¤Ç¤Ï¥Ì¥ëʸ»ú¤¬ÉÕ¤¯¤Î¤Ç¡Ä ¨¢str1: ¨¢ .ascii "\226\276\216\246\223I\202\310\\\000" ¨¢str2: ¨¢ .ascii "\210\303\226\331\202\314\201c\225\\\000" ¤³¤ó¤Ê¤Õ¤¦¤Ë¡¢ºÇ¸å¤¬'\'¤Ë¤Ï¤Ê¤ê¤Þ¤»¤ó¡£ ¤Ç¤Ï¡¢¤É¤ó¤Ê»þ¤ËÌäÂ꤬¸²ºß²½¤¹¤ë¤«¤È¤¤¤¦¤È¡¢ÀÞ¤êÊÖ¤·¤¿°ÌÃÖ¤¬¶öÁ³'\'¤Îľ¸å¤ÇÀÞ¤êÊÖ¤µ¤ì¤¿¾ì¹ç¤Ç¤Ç¤¹¡£ gcc33.exe¤Ï¡¢Ä¹¤¤Ê¸»úÎ󤫤é.asciiµ¿»÷Ì¿Îá¤òÀ¸À®¤¹¤ë»þ¤Ë¡¢¤¢¤ëÄøÅÙ¤ÎŤµ¤ÇÀÞ¤êÊÖ¤·¤ÆÊ£¿ô¹Ô¤Ëʬ³ä¤¹¤ë¤è¤¦¤Ç¤¹¡£ ¤½¤Î»þ¤¿¤Þ¤¿¤Þ¡¢ÀÞ¤êÊÖ¤·¤¿°ÌÃÖ¤¬'\'¤Îľ¸å¤À¤È¡¢.asciiµ¿»÷Ì¿Îá¤Îʸ»úÎó¤ÎºÇ¸å¤¬'\'¤Ë¤Ê¤Ã¤Æ¡¢Á°½Ò¤Îext33.exe¤Î¥Ð¥°¤Ë°ú¤Ã¤«¤«¤Ã¤Æ¤·¤Þ¤¦¤Î¤Ç¤¹¡£ ¨¢const char str[]="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnɽ¸½"; ¤Ï¡¢¤Þ¤µ¤Ë¤½¤Î°ìÎã¤Ç¤·¤¿¡£ ¤Á¤Ê¤ß¤Ë¡¢¤â¤Ã¤Èñ½ã¤Ë¥Ð¥°¤òºÆ¸½¤·¤è¤¦¤È»×¤¨¤Ð¡¢¤¿¤È¤¨¤Ð¤³¤ó¤ÊC¸À¸ìʸ»úÎó¤Ç¤âºÆ¸½¤·¤Þ¤¹¡£ ¨¢const char str[]="\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"; ¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤È¡Ä ¨¢str: ¨¢ .ascii "\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\" ¢«ext33.exe¤¬¸í¤Ã¤Æ¤³¤Î¹Ô¤ò¥¨¥é¡¼¤È¸«¤Ê¤·¤Æ¤·¤Þ¤¤¤Þ¤¹¡£ ¨¢ .ascii "\\\\\\\\\\\\\\\000" ¢£¥Ð¥°¤ò²óÈò¤¹¤ëÊýË¡ ´Êñ¤Ë¥Ð¥°¤ò²óÈò¤¹¤ëÊýË¡¤Ï¡¢»×¤¤ÉÕ¤­¤Þ¤»¤ó¤Ç¤·¤¿¡£ ext33.exe¤ÎÁ°Ãʤˡ¢.ps¥Õ¥¡¥¤¥ë¤ò¥Á¥§¥Ã¥¯¤·¤Æ.asciiµ¿»÷Ì¿Îá¤Îʸ»úÎó¤ÎËöÈø¤Ë'\'¤¬Ìµ¤¤¤«Ä´¤Ù¤ë¤è¤¦¤Ê¥Õ¥£¥ë¥¿¤òºî¤í¤¦¤«¤Ê¡¢¤È»×¤Ã¤Æ¤¤¤Þ¤¹¡£ ¤Ç¤â¼ÂºÝ¤Ë¤Ï¡¢¤½¤³¤Þ¤Ç¤·¤Ê¤¯¤Æ¤âÎɤ¤¤È»×¤¤¤Þ¤¹¡£ ¤³¤ì¤Þ¤Ç10ǯ°Ê¾åP/ECE¤ÇÍ·¤ó¤Ç¤¤¤Æ¡¢º£¤Ë¤·¤Æ»×¤¨¤Ð¤³¤ì¤¬¸¶°ø¤À¤Ã¤¿¤Î¤«¤Ê¤¢¤È»×¤¦¥³¥ó¥Ñ¥¤¥ë¥¨¥é¡¼¤ËÁø¶ø¤·¤¿»ö¤¬¡¢¤»¤¤¤¼¤¤1¡Á2²ó¤À¤±¤À¤«¤é¤Ç¤¹¡£ ¼ÂºÝ¤Ë¤³¤Îext33.exe¥Ð¥°¤¬ÌäÂê¤Ë¤Ê¤ë»ö¤Ï¡¢¤´¤¯µ©¤À¤È»×¤¤¤Þ¤¹¡£ ¤È¤ê¤¢¤¨¤º¤³¤¦¤¤¤¦¥Ð¥°¤¬Í­¤ë»ö¤ò³Ð¤¨¤Æ¤ª¤¤¤Æ¡¢P/ECE¤Î¥×¥í¥°¥é¥à¤ò¥Ó¥ë¥É¤·¤¿»þ¤ËÆæ¤Î¶õ¹Ô¤¬É½¼¨¤µ¤ì¤Æ¥³¥ó¥Ñ¥¤¥ë¥¨¥é¡¼¤Ë¤Ê¤Ã¤¿¾ì¹ç¤Ï¡¢¤³¤ÎÅÀ¤òµ¿¤Ã¤Æ¤ß¤ë¤Î¤¬Îɤµ¤½¤¦¤Ç¤¹¡£ ¤½¤·¤Æ¡¢Ê¸»úÎó¤òÊѹ¹¤¹¤ë»ö¤¬²Äǽ¤Ê¤é¤Ð¡¢Ê¸»úÎó¤ò¾¯¤·Êѹ¹¤·¤Æ¡¢.asciiµ¿»÷Ì¿Îá¤Îʸ»úÎó¤ÎËöÈø¤Ë'\'¤¬Íè¤Ê¤¤¤è¤¦¤Ë¤·¤Æ²óÈò¤¹¤ì¤ÐÎɤ¤¤È»×¤¤¤Þ¤¹¡£ ¤Á¤Ê¤ß¤Ë¡¢Ê¸»úÎó¤òÊѹ¹¤Ç¤­¤Ê¤¤¾ì¹ç¤Ï¡¢Ê¸»úÎó¤òÇÛÎó¤ÇÄêµÁ¤·¤Æ²óÈò¤¹¤ë¤È¤¤¤¦¼ê¤âÍ­¤ê¤Þ¤¹¡£ C¸À¸ì¤ÇÇÛÎó¤È¤·¤ÆÄêµÁ¤¹¤ì¤Ð¡¢¥¢¥»¥ó¥Ö¥é¥½¡¼¥¹¤È¤·¤Æ¤Ï.ascii¤Ç¤Ï¤Ê¤¯.byte¤Ç½ÐÎϤµ¤ì¤ë¤è¤¦¤À¤«¤é¤Ç¤¹¡£ ¨¢const char str[]={'\\','\\','\\','\\','\\','\\','\\','\\','\\','\\','\\','\\','\\','\\','\\','\\','\\','\\','\\','\\','\\','\\','\\','\\','\\','\\','\\','\\','\\','\\','\\','\\','\\','\\','\\'}; ¨¢str: ¨¢ .byte 92 ¨¢ .byte 92 ¨¢ ¡Á ¨¢ .byte 92 ¨¢ .byte 92 ¤·¤«¤·¤Þ¤¢¡¢¼ÂºÝ¤Ë¤³¤ÎÂкö¤¬É¬Íפˤʤë»ö¤Ï̵¤¤¤«¤Ê¡¢¤È»×¤Ã¤Æ¤¤¤Þ¤¹¡£ * Sun May 15 21:25:46 JST 2016 Naoyuki Sawa - ispunct()¤Î¥Ð¥° P/ECE³«È¯´Ä¶­¤Îispunct()¤Ë¤Ï¥Ð¥°¤¬Í­¤ê¤Þ¤¹¡£ ispunct(' ')¤ÏÀµ¤·¤¯¤Ïfalse¤Ç¤¹¤¬¡¢P/ECE¤Ç¤Ïtrue¤Ë¤Ê¤ê¤Þ¤¹¡£ EPSON¥é¥¤¥Ö¥é¥ê¤Î¥Ð¥°¤ß¤¿¤¤¤Ç¤¹¡£ ¢£ºÆ¸½¥×¥í¥°¥é¥à #include #include #include #include #include unsigned char vbuff[DISP_X * DISP_Y]; void pceAppInit() { pceLCDSetBuffer(vbuff); pceLCDDispStart(); } void pceAppProc(int cnt) { memset(vbuff, 0, sizeof vbuff); pceFontSetPos(0, 0); pceFontPrintf("ispunct(' ') = %s", ispunct(' ') ? "true" : "false"); pceLCDTrans(); } void pceAppExit() { } ¢£·ë²Ì ¨£¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¤ ¨¢ispunct(' ') = true ¨¢ ¨¦¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¥ http://www.piece-me.org/piece-lab/ispunct/ispunct1.gif ½¤Àµ¤¹¤ë¤Ë¤Ï¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥×¥í¥°¥é¥àÆâ¤ÇÀµ¤·¤¤ispunct()¤òÄêµÁ¤·¤Æ¡¢EPSON¥é¥¤¥Ö¥é¥ê¤Î´Ø¿ô¤òÃÖ¤­´¹¤¨¤ì¤Ðok¤Ç¤¹¡£ ¢£½¤Àµ¥×¥í¥°¥é¥à #include #include #include #include #include unsigned char vbuff[DISP_X * DISP_Y]; void pceAppInit() { pceLCDSetBuffer(vbuff); pceLCDDispStart(); } void pceAppProc(int cnt) { memset(vbuff, 0, sizeof vbuff); pceFontSetPos(0, 0); pceFontPrintf("ispunct(' ') = %s", ispunct(' ') ? "true" : "false"); pceLCDTrans(); } void pceAppExit() { } //--- Àµ¤·¤¤ispunct()¤ÇEPSON¥é¥¤¥Ö¥é¥ê¤Î´Ø¿ô¤òÃÖ¤­´¹¤¨¤ë --- int ispunct(int c) { return ((c >= 0x21) && (c <= 0x2F)) || //EPSON¥é¥¤¥Ö¥é¥ê¤Ï¿ʬ¤³¤³¤¬((c >= 0x20) && (c <= 0x2F))¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ ((c >= 0x3A) && (c <= 0x40)) || ((c >= 0x5B) && (c <= 0x60)) || ((c >= 0x7B) && (c <= 0x7E)); } ¢£·ë²Ì ¨£¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¤ ¨¢ispunct(' ') = false¨¢ ¨¦¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¥ http://www.piece-me.org/piece-lab/ispunct/ispunct2.gif º£²ó»ÈÍѤ·¤¿¸¡¾Ú¥×¥í¥°¥é¥à°ì¼°¤Î¡¢¥À¥¦¥ó¥í¡¼¥É¤Ï¤³¤Á¤é¤Ç¤¹: http://www.piece-me.org/piece-lab/ispunct/ispunct-src.zip * Thu Nov 26 21:59:10 JST 2015 Naoyuki Sawa - À°¿ô·¿¤òÏÀÍý·¿¤ËÊÑ´¹¤¹¤ë½èÍý¤¬¡¢Í½ÁÛ³°¤ËÂ礭¤Ê¥³¡¼¥É¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¦ P/ECE³«È¯´Ä¶­¤ÎC¥³¥ó¥Ñ¥¤¥é¤Ç¤Ï¡¢À°¿ô·¿¤òÏÀÍý·¿¤ËÊÑ´¹¤¹¤ë½èÍý¤¬¡¢Í½ÁÛ³°¤ËÂ礭¤Ê¥³¡¼¥É¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¦»ö¤¬¤¢¤ê¤Þ¤¹¡£ ¢£C¸À¸ì¤Ç½ñ¤¯¾ì¹ç1 Îã¤È¤·¤Æ¡¢°ú¿ôx¤¬0¤Ê¤é¤Ð0(FALSE)¤òÊÖ¤·¡¢°ú¿ôx¤¬0°Ê³°¤Ê¤é¤Ð1(TRUE)¤òÊÖ¤¹´Ø¿ô¤ò¡¢»°¼ïÎà¤Î½ñ¤­Êý¤Ç½ñ¤¤¤Æ¤ß¤Þ¤·¤¿¡£ ¨¢ int a1(int x) { ¨¢ return !!x; ¨¢ } ¨¢ int a2(int x) { ¨¢ return x ? 1 : 0; ¨¢ } ¨¢ int a3(int x) { ¨¢ if(x) { ¨¢ return 1; ¨¢ } else { ¨¢ return 0; ¨¢ } ¨¢ } ºÇŬ²½Í­¤ê(-O2)¤Ç¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤È¡¢°Ê²¼¤Î¥¢¥»¥ó¥Ö¥é¥½¡¼¥¹¤¬À¸À®¤µ¤ì¤Þ¤¹¡£ ¨¢ a1: ¨¢ not %r10, %r12 ¨¢ add %r10, 1 ¨¢ or %r10, %r12 ¨¢ xsrl %r10, 31 ¨¢ ret ¨¢ a2: ¨¢ not %r10, %r12 ¨¢ add %r10, 1 ¨¢ or %r10, %r12 ¨¢ xsrl %r10, 31 ¨¢ ret ¨¢ a3: ¨¢ not %r10, %r12 ¨¢ add %r10, 1 ¨¢ or %r10, %r12 ¨¢ xsrl %r10, 31 ¨¢ ret »°¼ïÎà¤Î½ñ¤­Êý¤ÎÁ´¤Æ¤Ç¡¢Æ±¤¸¥¢¥»¥ó¥Ö¥é¥½¡¼¥¹¤¬À¸À®¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ ¤Ñ¤Ã¤È¸«¤Æ¡¢¸µ¤Î»°¼ïÎà¤Î¤É¤ì¤È¤â°ã¤¦½èÍý¤ò¹Ô¤Ã¤Æ¤¤¤ë¤è¤¦¤Ë¸«¤¨¤Þ¤¹¡£ ¤³¤¦¤Ê¤ëÍýͳ¤Ï¡¢¥³¥ó¥Ñ¥¤¥é¤ÎºÇŬ²½¤Ë¤è¤Ã¤Æ¡¢À°¿ô·¿¤òÏÀÍý·¿¤ËÊÑ´¹¤¹¤ë½èÍý¤¬¡¢°Ê²¼¤Î¤è¤¦¤Ê½èÍýÊýË¡¤ËÊѤ¨¤é¤ì¤Æ¤¤¤ë¤«¤é¤Ç¤¹¡£ ¨¢ return (unsigned)(-x | x) >> 31; ¿¤¯¤ÎCPU¤Ç¤Ï¾ò·ïʬ´ô¤¬ÃÙ¤¤¤Î¤Ç¡¢¾ò·ïʬ´ô¤òÈò¤±¤ë¤¿¤á¤Ë¡¢À°¿ô·¿¤òÏÀÍý·¿¤ËÊÑ´¹¤¹¤ë½èÍý¤ò¾åµ­¤Î¤è¤¦¤ËÊѤ¨¤ë¤Î¤¬¡¢¥³¥ó¥Ñ¥¤¥é¤ÎÄêÀФÀ¤½¤¦¤Ç¤¹¡£ °ì¸«¡¢ÌäÂê̵¤¤¤è¤¦¤Ë¸«¤¨¤Þ¤¹¤¬¡¢¼Â¤Ï¾¯¤·¡¢ÌäÂ꤬ͭ¤ê¤Þ¤¹¡£ ¾åµ­¤Î¥¢¥»¥ó¥×¥é¥½¡¼¥¹¤Ï¡¢¼ÂºÝ¤Îµ¡³£¸ì¤ËŸ³«¤µ¤ì¤ë¤È¡¢¤³¤¦¤Ê¤ë¤«¤é¤Ç¤¹¡£ ¨¢ not %r10, %r12 ¨¢ add %r10, 1 ¨¢ or %r10, %r12 ¨¢ srl %r10, 8 ;//¨¤ ¨¢ srl %r10, 8 ;//¨¢xsrl %r10, 31 ¨¢ srl %r10, 8 ;//¨¢ ¨¢ srl %r10, 7 ;//¨¥ ¨¢ ret À°¿ô·¿¤òÏÀÍý·¿¤ËÊÑ´¹¤¹¤ë¤À¤±¤Î½èÍý¤Ê¤Î¤Ë¡¢(ret¤ò½ü¤¤¤Æ)7Ì¿Îá¤Ë¤â¤Ê¤Ã¤Æ¤·¤Þ¤Ã¤Æ¡¢ÌµÂ̤¬À¸¤¸¤Æ¤¤¤Þ¤¹¡£ ¼Â¹Ô»þ´Ö¤Ï7¥µ¥¤¥¯¥ë¤Ç¤¹¡£ Ì¿Îá¿ô¤¬Â¿¤¯¤Ê¤ë¸¶°ø¤Ï¡¢P/ECE¤ÎCPU S1C33209¤Ï¡¢¥·¥Õ¥È¡¦¥í¡¼¥Æ¡¼¥ÈÌ¿Îá¤Îµ¡Ç½¤¬¼å¤¯¤Æ¡¢31¥Ó¥Ã¥È¤Î¥·¥Õ¥È¤ò¹Ô¤¦¤¿¤á¤Ë4Ì¿ÎáɬÍפÀ¤«¤é¤Ç¤¹¡£ ¢£¸¶°ø¤Î¿ä¬ P/ECE³«È¯´Ä¶­¤ÎC¥³¥ó¥Ñ¥¤¥é¤Ï¡¢MIPS CPUÍѤÎC¥³¥ó¥Ñ¥¤¥é¤ò¥Ù¡¼¥¹¤ËºîÀ®¤µ¤ì¤¿¤â¤Î¤À¤½¤¦¤Ç¤¹¡£ MIPS¤Ï¾ò·ïʬ´ô¤¬ÃÙ¤¯¤Æ(¢¨Ãí)¡¢¥·¥Õ¥ÈÌ¿Îá¤ÏÃÙ¤¯¤Ê¤¤¤Î¤Ç¡¢Á°½Ò¤Î¥³¥ó¥Ñ¥¤¥é¤ÎÄêÀФ¬Å¬ÍѤµ¤ì¤Æ¤¤¤ë¤Î¤À¤È»×¤¤¤Þ¤¹¡£ S1C33209ÍѤÎC¥³¥ó¥Ñ¥¤¥é¤Ë¤¹¤ë»þ¤Ë¡¢MIPSÍѤκÇŬ²½½èÍý¤¬¤½¤Î¤Þ¤Þ»Ä¤Ã¤Æ¤¤¤Æ¡¢µÑ¤Ã¤Æ̵Â̤ʥ³¡¼¥É¤¬À¸À®¤µ¤ì¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¤Î¤Ç¤Ï¤Ê¤¤¤«¤È»×¤¤¤Þ¤¹¡£ (¢¨Ãí) ËͤÏMIPS CPU¤Ç¥×¥í¥°¥é¥à¤òºî¤Ã¤¿»ö¤¬Ìµ¤¤¤Î¤Ç¡¢¼Â´¶¤È¤·¤Æ¤ÏÎɤ¯È½¤é¤Ê¤¤¤Î¤Ç¤¹¤¬... ¢£¥¢¥»¥ó¥Ö¥é¤Ç½ñ¤¯¾ì¹ç ¼ÂºÝ¤Î¤È¤³¤í¡¢S1C33209¤Ï¾ò·ïʬ´ô¤¬ÃÙ¤¯¤Ê¤¤¤Î¤Ç¡¢°Ê²¼¤Î¤è¤¦¤ËÁÇľ¤Ë½ñ¤¯Êý¤¬¡¢µÑ¤Ã¤Æ¸úΨ¤¬Îɤ¤¤Ç¤¹¡£ (ret¤ò½ü¤¤¤Æ)4Ì¿Îá¡¢¼Â¹Ô»þ´Ö¤Ï(x==0)¤Î»þ3¥µ¥¤¥¯¥ë¡¤(x!=0)¤Î»þ4¥µ¥¤¥¯¥ë¤Ç¤¹¡£ ¨¢ cmp %r12, 0 ¨¢ jreq.d 3 ¨¢ ld.w %r10, 0 ¨¢ ld.w %r10, 1 ¨¢ ret ¤µ¤é¤Ë¹©Éפ¹¤ë¤È¡¢°Ê²¼¤Î¤è¤¦¤Ë½ñ¤±¤Þ¤¹¡£ (ret¤ò½ü¤¤¤Æ)3Ì¿Îá¡¢¼Â¹Ô»þ´Ö¤Ï¾ï¤Ë3¥µ¥¤¥¯¥ë¤Ç¤¹¡£ ¨¢ ld.w %r10, 0 ¨¢ cmp %r10, %r12 ¨¢ ret.d ¨¢ adc %r10, %r10 ;//¤Á¤Ê¤ß¤ËTRUE¤ò1¤Çɽ¤¹¾ì¹ç¤Ï¤³¤ÎÄ̤ê¤Ç¤¹¤¬¡¢VisualBasic¤ß¤¿¤¤¤ËTRUE¤ò-1¤Çɽ¤·¤¿¤¤¾ì¹ç¤Ï¡¢¤³¤Î¹Ô¤ò¡Ösbc %r10,%r10¡×¤ËÊѤ¨¤ì¤Ðok¤Ç¤¹¡£ ¢£C¸À¸ì¤Ç½ñ¤¯¾ì¹ç2 ¥¢¥»¥ó¥Ö¥é¤Ç½ñ¤¯¤Ê¤é¤Ð¾åµ­¤Î¤è¤¦¤Ë¹©ÉפǤ­¤ë¤Î¤Ç¤¹¤¬¡¢¤¤¤Ä¤âÁ´¤Æ¥¢¥»¥ó¥Ö¥é¤Ç½ñ¤¯¤ï¤±¤Ë¤Ï¹Ô¤­¤Þ¤»¤ó¡£ C¸À¸ì¤Ç½ñ¤¤¤Æ¡¢Í¾·×¤ÊºÇŬ²½(°­²½?)¤òÈò¤±¤ëÊýË¡¤ò¡¢¸¡Æ¤¤·¤Æ¤ß¤Þ¤·¤¿¡£ À°¿ô·¿¤òÏÀÍý·¿¤ËÊÑ´¹¤·¤¿·ë²Ì¤ò¡¢°ìö¡¢Â¾¤ÎÊÑ¿ô¤ËÆþ¤ì¤Æ¤ß¤ë¤È¡Ä ¨¢ int b1(int x) { ¨¢ int y = !!x; ¨¢ return y; ¨¢ } ¨¢ int b2(int x) { ¨¢ int y = x ? 1 : 0; ¨¢ return y; ¨¢ } ¨¢ int b3(int x) { ¨¢ int y; ¨¢ if(x) { ¨¢ y = 1; ¨¢ } else { ¨¢ y = 0; ¨¢ } ¨¢ return y; ¨¢ } °Ê²¼¤Î¥¢¥»¥ó¥Ö¥é¥½¡¼¥¹¤¬À¸À®¤µ¤ì¤Þ¤·¤¿¡£ ¨¢ b1: ¨¢ ld.w %r10, %r12 ¨¢ cmp %r10, 0 ¨¢ jreq 2 ¨¢ ld.w %r10, 1 ¨¢ ret ¨¢ b2: ¨¢ ld.w %r10, %r12 ¨¢ cmp %r10, 0 ¨¢ jreq 2 ¨¢ ld.w %r10, 1 ¨¢ ret ¨¢ b3: ¨¢ not %r10, %r12 ¨¢ add %r10, 1 ¨¢ or %r10, %r12 ¨¢ xsrl %r10, 31 ¨¢ ret b1¤Èb2¤Ï¡¢³µ¤ÍÁÇľ¤Ê¥³¡¼¥É¤¬À¸À®¤µ¤ì¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤·¤¿¡£ À°¿ô·¿¤òÏÀÍý·¿¤ËÊÑ´¹¤·¤¿·ë²Ì¤ò¡¢°ìö¡¢Â¾¤ÎÊÑ¿ô¤ËÆþ¤ì¤Æ¤ß¤ë¤ÈÎɤ¤¤ß¤¿¤¤¤Ç¤¹¡£ ¤·¤«¤·¡¢b3¤Ï¤Þ¤À¡¢Í¾·×¤ÊºÇŬ²½¤¬³Ý¤«¤Ã¤¿¤Þ¤Þ¤Ç¤¹¡£ ¤½¤³¤Çº£Å٤ϡ¢ÂåÆþ¤¹¤ëÊÑ¿ô¤ò¡¢¸µ¤ÎÊÑ¿ô¼«¿È¤ËÂåÆþ¤·¤Æ¤ß¤Þ¤·¤¿¡£ ¨¢ int c1(int x) { ¨¢ x = !!x; ¨¢ return x; ¨¢ } ¨¢ int c2(int x) { ¨¢ x = x ? 1 : 0; ¨¢ return x; ¨¢ } ¨¢ int c3(int x) { ¨¢ if(x) { ¨¢ x = 1; ¨¢ } else { ¨¢ x = 0; ¨¢ } ¨¢ return x; ¨¢ } °Ê²¼¤Î¥¢¥»¥ó¥Ö¥é¥½¡¼¥¹¤¬À¸À®¤µ¤ì¤Þ¤·¤¿¡£ ¨¢ c1: ¨¢ ld.w %r10, %r12 ¨¢ cmp %r10, 0 ¨¢ jreq 2 ¨¢ ld.w %r10, 1 ¨¢ ret ¨¢ c2: ¨¢ ld.w %r10, %r12 ¨¢ cmp %r10, 0 ¨¢ jreq 2 ¨¢ ld.w %r10, 1 ¨¢ ret ¨¢ c3: ¨¢ ld.w %r10, %r12 ¨¢ cmp %r10, 0 ¨¢ jreq 2 ¨¢ ld.w %r10, 1 ¨¢ ret Á´¤Æ¤Î´Ø¿ô¤¬¡¢³µ¤ÍÁÇľ¤Ê¥³¡¼¥É¤¬À¸À®¤µ¤ì¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤·¤¿¡£ À°¿ô·¿¤òÏÀÍý·¿¤ËÊÑ´¹¤·¤¿·ë²Ì¤ò¡¢¸µ¤ÎÊÑ¿ô¼«¿È¤ËÂåÆþ¤¹¤ë¤ÈÎɤ¤¤ß¤¿¤¤¤Ç¤¹¡£ ¢£C¸À¸ì¤Ç½ñ¤¯¾ì¹ç3 ¤Á¤Ê¤ß¤Ë¡¢ÊÑ´¹·ë²Ì¤ò¤¹¤°¤ËÊÖ¤¹¤Î¤Ç¤Ê¤¯¡¢ÊÑ´¹·ë²Ì¤ò»È¤Ã¤ÆÊ̤δؿô¤ò¸Æ¤Ó½Ð¤¹¾ì¹ç¤â¡¢¤À¤¤¤¿¤¤Æ±¤¸·¹¸þ¤Ë¤Ê¤ë¤è¤¦¤Ç¤¹¡£ ¨¢ extern void foo(int x); ¨¢ //ÂкöÁ° ¨¢ void d1(int x) { ¨¢ foo(!!x); ¨¢ } ¨¢ void d2(int x) { ¨¢ foo(x ? 1 : 0); ¨¢ } ¨¢ void d3(int x) { ¨¢ if(x) { ¨¢ foo(1); ¨¢ } else { ¨¢ foo(0); ¨¢ } ¨¢ } ¨¢ //Âкö¸å ¨¢ void e1(int x) { ¨¢ x = !!x; ¨¢ foo(x); ¨¢ } ¨¢ void e2(int x) { ¨¢ x = x ? 1 : 0; ¨¢ foo(x); ¨¢ } ¨¢ void e3(int x) { ¨¢ if(x) { ¨¢ x = 1; ¨¢ } else { ¨¢ x = 0; ¨¢ } ¨¢ foo(x); ¨¢ } °Ê²¼¤Î¥¢¥»¥ó¥Ö¥é¥½¡¼¥¹¤¬À¸À®¤µ¤ì¤Þ¤·¤¿¡£ d3¤À¤±¡¢Á°¤ÎÎã¤È·¹¸þ¤¬°ã¤¤¤Þ¤·¤¿¡£ ÊÑ´¹·ë²Ì¤ò»È¤Ã¤ÆÊ̤δؿô¤ò¸Æ¤Ó½Ð¤¹¾ì¹ç¤Ï¡¢if¤Çʬ´ô¤¹¤ëÊýË¡¤Ç¤â¡¢ÌµÂ̤ʺÇŬ²½¤¬¹Ô¤ï¤ì¤Ê¤¤¤è¤¦¤Ç¤¹¡£ ¨¢ ;//ÂкöÁ° ¨¢ d1: ¨¢ not %r10, %r12 ¨¢ add %r10, 1 ¨¢ or %r10, %r12 ¨¢ ld.w %r12, %r10 ¨¢ xsrl %r12, 31 ¨¢ xcall foo ¨¢ ret ¨¢ d2: ¨¢ not %r10, %r12 ¨¢ add %r10, 1 ¨¢ or %r10, %r12 ¨¢ ld.w %r12, %r10 ¨¢ xsrl %r12, 31 ¨¢ xcall foo ¨¢ ret ¨¢ d3: ¨¢ cmp %r12, 0 ¨¢ jreq 2 ¨¢ ld.w %r12, 1 ¨¢ xcall foo ¨¢ ret ¨¢ ;//Âкö¸å ¨¢ e1: ¨¢ cmp %r12, 0 ¨¢ jreq 2 ¨¢ ld.w %r12, 1 ¨¢ xcall foo ¨¢ ret ¨¢ e2: ¨¢ cmp %r12, 0 ¨¢ jreq 2 ¨¢ ld.w %r12, 1 ¨¢ xcall foo ¨¢ ret ¨¢ e3: ¨¢ cmp %r12, 0 ¨¢ jreq 2 ¨¢ ld.w %r12, 1 ¨¢ xcall foo ¨¢ ret ¥¢¥»¥ó¥Ö¥é¤Ç½ñ¤¯¤Ê¤é¤³¤ó¤Ê´¶¤¸¢­¤«¤Ê? C¥³¥ó¥Ñ¥¤¥é¤¬À¸À®¤·¤¿¥³¡¼¥É¤è¤ê¤â¡¢1¥µ¥¤¥¯¥ë¹â®¤Ç¤¹¡£ (¤³¤ÎÎã¤Ç¤Ï´Ø¿ô¸Æ¤Ó½Ð¤·¤òjp.d¤ËÃÖ¤­´¹¤¨¤ë»ö¤â½ÐÍè¤Þ¤¹¤¬¡¢º£²ó¤ÎËÜÂê¤Ç¤Ï¤Ê¤¤¤Î¤Ç¤½¤Î¤Þ¤Þ¤Ë¤·¤Þ¤·¤¿) ¨¢ cmp %r12, 1 ;//%psr(C) := x ? 0 : 1 ¨¢ sbc %r12, %r12 ;//%r12 := x ? 0 : -1 ¨¢ xcall.d foo ¨¢ add %r12, 1 ;//%r12 := x ? 1 : 0 ¨¢ ret ¢£¤Þ¤È¤á P/ECE¤ÎC¸À¸ì¤Ç¡¢À°¿ô·¿¤òÏÀÍý·¿¤ËÊÑ´¹¤¹¤ë½èÍý¤ò½ñ¤¯¾ì¹ç¤Ï¡¢À°¿ô·¿¤òÏÀÍý·¿¤ËÊÑ´¹¤·¤¿·ë²Ì¤ò¸µ¤ÎÊÑ¿ô¼«¿È¤ËÂåÆþ¤¹¤ë¤è¤¦¤Ë¤¹¤ë¤È¡¢¸úΨ¤ÎÎɤ¤¥³¡¼¥É¤¬À¸À®¤µ¤ì¤ë´üÂÔ¤¬»ý¤Æ¤Þ¤¹¡£(¤Þ¤À¸¡¾ÚÉÔ­¤Ç¤¹¤¬¡Ä) ¤â¤Ã¤È¤â¡¢¸µ¤ÎÊÑ¿ô¤òÇ˲õ½ÐÍè¤Ê¤¤¾ì¹ç¤Ï̵Íý¤Ç¤¹¤·¡¢¤½¤¦¤·¤Ê¤¯¤Æ¤â¾¯¤·¸úΨ¤Î°­¤¤¥³¡¼¥É¤¬À¸À®¤µ¤ì¤ë¤À¤±¤Ç·ë²Ì¤Ë¤ÏÌäÂê¤Ê¤¤¤Î¤Ç¡¢É¬¿Ü¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£ * Wed Oct 28 21:41:29 JST 2015 Naoyuki Sawa - pp33.exe¤Î¥Ð¥°(2) Á°²ó¤Ë°ú¤­Â³¤­¡¢P/ECE³«È¯´Ä¶­¤Îpp33.exe¤Î¥Ð¥°¤ÎÏäǤ¹¡£ Á°²ó¤Î¤È¤ÏÊ̤ΥХ°¤Ç¤¹¡£ °Ê²¼¤Î¤è¤¦¤Ê¥¢¥»¥ó¥Ö¥é¥½¡¼¥¹¤ò½ñ¤¤¤Æ¡¢ ¨¢ xld.w %r0,symbol+0x80000000 ¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤È¡¢¥¨¥é¡¼¤¬½Ð¤Þ¤¹¡£ ¡äpcc33.exe -c sample1.s ¢¢¼Â¹Ô·ë²Ì ¨¢sample1.ps(1): Error: Invalid syntax. ¤Ê¤¼¥¨¥é¡¼¤¬½Ð¤ë¤«¤È¸À¤¦¤È¡¢¥³¥ó¥Ñ¥¤¥ë½èÍý¤ÎÅÓÃæ¤Ç¡¢pp33.exe¤¬¾åµ­¤Î¹Ô¤ò°Ê²¼¤Î¤è¤¦¤ËÊÑ´¹¤·¤Æ¤·¤Þ¤¤¡¢ ¨¢ xld.w %r0,symbol+-2147483648 ¥³¥ó¥Ñ¥¤¥ë½èÍý¤Çpp33.exe¤Î¼¡¤Ë¼Â¹Ô¤µ¤ì¤ëext33.exe¤¬¡¢¡Ö+-¡×¤È¤¤¤¦Éôʬ¤ò½èÍý½ÐÍ褺¤Ë¥¨¥é¡¼¤Ê¤ë¤«¤é¤Ç¤¹¡£ °ì±þ¡¢pp33.exe¤Î¥Þ¥Ë¥å¥¢¥ë¤Ë¤Ï¡¢°Ê²¼¤Î¤è¤¦¤Ë½ñ¤¤¤Æ¤¢¤ê¤Þ¤¹¡£ ¨¢¡ÖS5U1C33000C Manual¡×(\usr\PIECE\docs\datasheet\EPSON\S5U1C33000C_J.pdf) p.117 ¨¢¡Ø9 ¥×¥ê¥×¥í¥»¥Ã¥µ¡Ù¢Í¡Ø9.6 ¿ôÃͱ黻»Ò¡Ù ¨¢¡¦ÆâÉôŪ¤Ê±é»»¤ÏÉä¹æÉÕ¤­32¥Ó¥Ã¥È¤È¤·¤Æ¹Ô¤ï¤ì¤Þ¤¹¤Î¤Ç¡¢±é»»¤Î¼ïÎà¤Ë¤è¤Ã¤Æ¤ÏÃí°Õ¤¬É¬ÍפǤ¹¡£ ¨¢¡¦±é»»·ë²Ì¤¬Éé¤Î¾ì¹ç¤Ï¥Þ¥¤¥Ê¥¹Éä¹æÉÕ¤­¤Î10¿Ê¿ô¤Ç¡¢Àµ¤Î¾ì¹ç¤Ï16¿Ê¿ô¤Ç½ÐÎϤµ¤ì¤Þ¤¹¡£ pp33.exe¤¬¡¢¡Ösymbol+0x80000000¡×¤Î¡Ö+0x80000000¡×¤Î¡Ö0x80000000¡×¤ÎÉôʬ¤òÉä¹æÉÕ¤­32¥Ó¥Ã¥È¤È¸«¤Ê¤·¤Æ¡¢ ¡Ö0x80000000¡×¡á¡Ö-2147483648¡×¤Ê¤Î¤Ç¥Þ¥¤¥Ê¥¹Éä¹æÉÕ¤­¤Î10¿Ê¿ô¤Ç½ÐÎϤ·¡¢¡Ö+-2147483648¡×¤Ë¤Ê¤ë¤ï¤±¤Ç¤¹¡£ ³Î¤«¤Ë¥Þ¥Ë¥å¥¢¥ë¤É¤ª¤ê¤ÎµóÆ°¤Ê¤Î¤Ç¤¹¤¬¡¢»ÅÍͥХ°¤Ç¤¹¤è¤Í¡¦¡¦¡¦ ¤Á¤Ê¤ß¤Ë¾åµ­¤Ï¡Ö+-¡×¤Ë¤Ê¤Ã¤Æ¥¨¥é¡¼¤¬½Ð¤ë¾ì¹ç¤Ç¤·¤¿¤¬¡¢¡Ö--¡×¤Ë¤Ê¤Ã¤Æ¥¨¥é¡¼¤¬½Ð¤ë»ö¤âÍ­¤ê¤Þ¤¹¡£ ¨¢ xld.w %r0,symbol-0x80000000 ¢¢ÊÑ´¹·ë²Ì ¨¢ xld.w %r0,symbol--2147483648 ¤È¤³¤í¤Ç¡¢¤À¤¤¤¿¤¤¤½¤â¤½¤â¡¢ ¨¢ xld.w %r0,symbol+0x80000000 ¤Î¤è¤¦¤Ê¥×¥í¥°¥é¥à¤ò½ñ¤¯»ö¤¬Í­¤ë¤Î¤«¤È¤¤¤¦ÏäʤΤǤ¹¤¬¡¦¡¦¡¦Í­¤êÆÀ¤Þ¤¹¡£¤¿¤È¤¨¤Ð¡¢P/ECE¥«¡¼¥Í¥ë¤Î¡¢ ¢¢\usr\PIECE\sysdev\pcekn\font.c ¨¢static const unsigned char __nofont[] = { ¨¢¡¡¡Á(ά) ¨¢}; ¨¢#define NOFONT ((unsigned char *)__nofont) ¨¢static const unsigned char *_pceFontGetAdrs( unsigned short code ) ¨¢¡¡¡Á(ά)¡Á ¨¢¡¡return NOFONT+0x80000000; ¢«¢«¢«¢«¢«¤³¤³ ¨¢¡¡¡Á(ά)¡Á ¨¢} ¤ÎÉôʬ¤¬¡¢¡Öxld.w %r0,symbol+0x80000000¡×¤ÈƱÍͤνèÍý¤Ç¤¹¡£ P/ECE¤ÎCPU S1C33¤Î¥¢¥É¥ì¥¹¶õ´Ö¤Ï28¥Ó¥Ã¥È¤Ê¤Î¤Ç¡¢CPU¤¬»È¤ï¤Ê¤¤¾å°Ì4¥Ó¥Ã¥Èʬ¤ò¥Õ¥é¥°¤ËÍøÍѤ·¤Æ¤¤¤ë¤Î¤Ç¤¹¤Í¡£ P/ECE¥«¡¼¥Í¥ë¤Î¾åµ­¤ÎÉôʬ¤Ç¤Ï¡¢¤Ê¤¼¡¢Á°½Ò¤Î¥Ð¥°¤Ë¤è¤ë¥¨¥é¡¼¤¬½Ð¤Ê¤¤¤«¤È¸À¤¦¤È¡¢C¸À¸ì¥×¥í¥°¥é¥à¤À¤«¤é¤Ç¤¹¡£ C¸À¸ì¥×¥í¥°¥é¥à¤Î¾ì¹ç¡¢°Ê²¼¤Î½ç¤Ç¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤Þ¤¹¡£ (*.c) ¢Í gcc33.exe ¢Í (*.ps) ¢Í ext33.exe ¢Í (*.ms) ¢Í as33.exe ¢Í (*.o) C¸À¸ì¥×¥í¥°¥é¥à¤Î¾ì¹ç¤Ï¡¢ÅÓÃæ¤ÇÀ¸À®¤µ¤ì¤ë¥¢¥»¥ó¥Ö¥é¥½¡¼¥¹¤¬pp33.exe¤òÄ̤é¤Ê¤¤¤Î¤Ç¡¢ÌäÂ꤬À¸¤¸¤Ê¤«¤Ã¤¿¤ï¤±¤Ç¤¹¡£ °ìÊý¡¢Ä¾ÀÜ¥¢¥»¥ó¥Ö¥é¥×¥í¥°¥é¥à¤ò½ñ¤¤¤¿¾ì¹ç¤Ï¡¢°Ê²¼¤Î¤è¤¦¤Ë½èÍý¤µ¤ì¤Æ¡¢pp33.exe¤Èext33.exe¤ÎÉôʬ¤ÇÌäÂ꤬½Ð¤Þ¤¹¡£ (*.s) ¢Í pp33.exe ¢Í (*.ps) ¢Í ext33.exe ¢Í (*.ms) ¢Í as33.exe ¢Í (*.o) ¤Ê¤ª¡¢¾åµ­¤Î½èÍý½ç½ø¤ÏP/ECE³«È¯´Ä¶­¤Î¥³¥ó¥Ñ¥¤¥é¥É¥é¥¤¥Ðpcc33.exe¤¬À©¸æ¤·¤Æ¤¤¤ë¤Î¤Ç¤¹¤¬¡¢P/ECE³«È¯´Ä¶­ÆÃÍ­¤ÎÌäÂê¤È¤¤¤¦¤ï¤±¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£ EPSON¤ÎCPU¥Þ¥Ë¥å¥¢¥ë¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¼ê½ç¤É¤ª¤ê¤À¤«¤é¤Ç¤¹¡£ ¨¢¡ÖS5U1C33000C Manual¡×(\usr\PIECE\docs\datasheet\EPSON\S5U1C33000C_J.pdf) p.6 ¨¢¡Ø3 ¥½¥Õ¥È¥¦¥§¥¢³«È¯¼ê½ç¡Ù¢Í¡Ø3.1 ¥½¥Õ¥È¥¦¥§¥¢³«È¯¥Õ¥í¡¼¡Ù http://www.piece-me.org/piece-lab/pp33bug/pp33bug-20151028.png ¢£²óÈòºö pp33.exe¤Î½ÐÎÏ¥Õ¥¡¥¤¥ë¤ò¡¢sedÅù¤Î¥Ä¡¼¥ë¤Ç¥Õ¥£¥ë¥¿¤·¤Æ¡¢¡Ö+-¡×¤ò¡Ö-¡×¤Ë¡¤¡Ö--¡×¤ò¡Ö+¡×¤ËÃÖ´¹¤¹¤ì¤Ð²óÈò¤Ç¤­¤Þ¤¹¡£ ¸·Ì©¤Ë¤Ï¡¢Ê¸»úÎó¤ÎÃæ¤Ç¤Ê¤¤¤«¤È¤«¹Íθ¤¹¤ëɬÍפ¬¤¢¤ë¤Î¤Ç¤¹¤±¤ì¤É¡¢¤¿¤¤¤Æ¤¤¤Î¾ì¹ç¤Ïñ½ã¤ÊÃÖ´¹¤ÇÂç¾æÉפÀ¤È»×¤¤¤Þ¤¹¡£ ¡äonigsed.exe -i~ -e "s/+-/-/g" -e "s/--/+/g" sample1.ps * Tue Oct 27 21:58:28 JST 2015 Naoyuki Sawa - pp33.exe¤Î¥Ð¥°(1) P/ECE³«È¯´Ä¶­¤Îpp33.exe¤Ë¤Ï¡¢¥Ð¥°¤¬¤¢¤ê¤Þ¤¹¡£ pp33.exe¤Ï¡¢¥¢¥»¥ó¥Ö¥é¥½¡¼¥¹¥Õ¥¡¥¤¥ë(*.s)¤ò¥¢¥»¥ó¥Ö¥é(as33.exe)¤Ë³Ý¤±¤ëÁ°¤Ë¼°¤ä¥Þ¥¯¥í¤ÎŸ³«¤ò¹Ô¤¦¥Ä¡¼¥ë¤Ç¡¢¤¤¤ï¤æ¤ë¥¢¥»¥ó¥Ö¥é¥×¥ê¥×¥í¥»¥Ã¥µ¤Ç¤¹¡£ pp33.exe¤Ë¤Ï¡¢°ì¹Ô255ʸ»ú¤Þ¤Ç¤·¤«Æɤ߹þ¤á¤Ê¤¤¤È¤¤¤¦À©¸Â¤¬Í­¤ê¤Þ¤¹¡£ ʸ»ú¿ô¤Ë¤Ï¡¢¥³¥á¥ó¥ÈÉôʬ¤ä¶õÇòʸ»ú¤ä¡¢¹ÔËö¤Î²þ¹Ôʸ»ú¤â´Þ¤ß¤Þ¤¹¡£ ÆäˡֹÔËö¤Î²þ¹Ôʸ»ú¤â´Þ¤à¡×¤È¸À¤¦ÅÀ¤¬½ÅÍפǡ¢¸«¤¿ÌܤË255ʸ»ú¤Ç¤â¡¢¹ÔËö¤Î²þ¹Ôʸ»ú¤ò´Þ¤á¤Æ¤Á¤ç¤¦¤É256ʸ»ú¤À¤È¥¨¥é¡¼¤¬½Ð¤Þ¤¹¡£ ¢¢ÆþÎÏ¹Ô ¨¢ xld.w %r0,1234567890 ;0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghij ¢¢¼Â¹Ô·ë²Ì ¨¢Error: Cannot read file. Line size is too long. Íפ¹¤ë¤Ë¡¢¸«¤¿Ìܤˤϰì¹Ô254ʸ»ú¤Þ¤Ç¤·¤«Æɤ߹þ¤á¤Þ¤»¤ó¡£ ¢¢ÆþÎÏ¹Ô ¨¢ xld.w %r0,1234567890 ;0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghi ¢¢¼Â¹Ô·ë²Ì ¨¢¥¨¥é¡¼Ìµ¤·¡£ ¾åµ­¤ÎÀ©¸Â¤Ï¡¢¥Þ¥Ë¥å¥¢¥ë¤Ë½ñ¤¤¤Æ¤¢¤ê¤Þ¤¹¡£ ¨¢¡ÖS5U1C33000C Manual¡×(\usr\PIECE\docs\datasheet\EPSON\S5U1C33000C_J.pdf) p.122 ¨¢¢Í¡Ø9 ¥×¥ê¥×¥í¥»¥Ã¥µ¡Ù¢Í¡Ø9.12 ¥¨¥é¡¼/¥ï¡¼¥Ë¥ó¥°¥á¥Ã¥»¡¼¥¸¡Ù¢Í¡Ø9.12.1 ¥¨¥é¡¼¡Ù ¨¢Error: Cannot read file. Line size is too long. ¨¢¥¹¥Æ¡¼¥È¥á¥ó¥È¤¬Ä¹¤¹¤®¤ÆÆɤ߹þ¤á¤Þ¤»¤ó¡£³Æ¹Ô¤ÇÆɤ߹þ¤ß²Äǽ¤Êʸ»ú¿ô¤ÏºÇÂç255ʸ»ú¤Ç¤¹¡£ ¤·¤«¤·¼Â¤Ï¡¢¤½¤Î¾¤Ë¡¢¥Þ¥Ë¥å¥¢¥ë¤Ë½ñ¤«¤ì¤Æ¤¤¤Ê¤¤À©¸Â(¥Ð¥°?)¤¬Í­¤ê¤Þ¤¹¡£ ÆþÎϹԤÀ¤±¤Ç¤Ê¤¯¡¢½ÐÎϹԤ⡢°ì¹Ô255ʸ»ú¤Þ¤Ç¤·¤«°·¤¨¤Ê¤¤¤È¤¤¤¦À©¸Â¤Ç¤¹¡£ ¤¿¤È¤¨¤Ð°Ê²¼¤Î¹Ô¤Ï¹ÔËö¤Î²þ¹Ôʸ»ú¤ò´Þ¤á¤Æ255ʸ»ú¤Ç¡¢Àµ¾ï¤Ë½èÍý¤Ç¤­¤ë¤Ï¤º¤Ê¤Î¤Ç¤¹¤¬¡¢¼ÂºÝ¤Ë¤Ïpp33.exe¤ËÆɤ߹þ¤Þ¤»¤ë¤ÈÆâÉô¥¨¥é¡¼¤¬È¯À¸¤·¤Þ¤¹¡£ ¼°¤òŸ³«¤·¤¿·ë²Ì¡¢½ÐÎϹԤ¬°ì¹Ô255ʸ»ú¤òĶ¤¨¤Æ¤·¤Þ¤¦¤«¤é¤Ç¤¹¡£ ¢¢ÆþÎÏ¹Ô ¨¢ xld.w %r0,1<<30 ;0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmn ¢¢¼Â¹Ô·ë²Ì ¨¢Warning : internal strcpy over. ¨¢Warning : internal strcpy over. ¨¢Warning : internal strcpy over. ¨¢Warning : internal strcpy over. ¨¢Warning : internal strcpy over. ¨¢Warning : internal strcpy over. ¢¢½ÐÎÏ·ë²Ì ¨¢ xld.w %r0,0x40000000 ;0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghmn ½ÐÎÏ·ë²Ì¤ò¸«¤ë¤È¡¢°ì¸«Àµ¤·¤¯ÊÑ´¹¤µ¤ì¤Æ¤¤¤ë¤è¤¦¤Ë¸«¤¨¤Þ¤¹¤¬¡¢¤è¤¯¸«¤ë¤ÈºÇ¸å¤ÎÊý¤Îʸ»ú¤¬ÅÓÃæ¤Ç4ʸ»úʬ('ijkl')·ç¤±¤Æ¤¤¤Þ¤¹¡£ ¤ª¤½¤é¤¯¡¢pp33.exe¤ÎÆâÉô¤Ç¤Ï¥Ð¥Ã¥Õ¥¡¥ª¡¼¥Ð¡¼¥é¥ó¤¬È¯À¸¤·¤Æ¡¢Í½Â¬¤Ç¤­¤Ê¤¤·ë²Ì¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤Î¤À¤È»×¤¤¤Þ¤¹¡£ °ì¹Ô¤·¤«ÆþÎϤ·¤Æ¤¤¤Ê¤¤¤Î¤Ë6²ó¤â·Ù¹ð¥á¥Ã¥»¡¼¥¸¤¬½Ð¤Æ¤¤¤ëÍýͳ¤â¡¢pp33.exe¤ÎÆâÉô¤Çͽ¬¤Ç¤­¤Ê¤¤Æ°ºî¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤«¤é¤À¤È»×¤¤¤Þ¤¹¡£ ¤Ê¤ª¡¢¾åµ­¤ÎÎã¤Ç¤Ï·Ù¹ð¥á¥Ã¥»¡¼¥¸¤¬½Ð¤Æ¤¤¤Þ¤¹¤¬¡¢¥Ð¥Ã¥Õ¥¡¥ª¡¼¥Ð¡¼¥é¥ó¤ÎÆâÍƤˤè¤Ã¤Æ¤Ï¡¢·Ù¹ð¥á¥Ã¥»¡¼¥¸¤¬½Ð¤º¤ËÌۤäÆÉÔÀµ¤Ê½ÐÎÏ·ë²Ì¤Ë¤Ê¤ë»ö¤âÍ­¤ë¤è¤¦¤Ç¤¹¡£ ¤½¤¦¤Ê¤ë¤È¡¢µ¤ÉÕ¤«¤º¤Ë°Õ¿Þ¤·¤Ê¤¤¥³¥ó¥Ñ¥¤¥ë·ë²Ì¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¦²ÄǽÀ­¤¬¤¢¤ê¡¢Èó¾ï¤Ë´í¸±¤Ç¤¹¡£ ¤Þ¤¢ÉáÄ̤ϡ¢¤½¤ó¤Ê¤ËŤ¤¹Ô¤ÎËöÈø¤Ï¥³¥á¥ó¥ÈÉôʬ¤À¤È»×¤¦¤Î¤Ç¡¢¥³¥á¥ó¥È¤ÎËöÈø¤¬·ç¤±¤Æ¤âÆ°ºî¤Ë±Æ¶Á¤Ï̵¤¤¤È¤Ï»×¤¤¤Þ¤¹¤¬¡Ä ¤È¤Ï¤¤¤¨¡Öͽ¬¤Ç¤­¤Ê¤¤Æ°ºî¡×¤Ç¤¹¤Î¤Ç¡¢ËöÈø¤¬·ç¤±¤ë¤À¤±¤È¤Ï¸Â¤é¤º¡¢²¿¤¬µ¯¤­¤ë¤«È½¤é¤Ê¤¤¤Î¤Ç¡¢¤ä¤Ï¤ê´í¸±¤Ç¤¹¡£ ¢£·ëÏÀ pp33.exe¤ÎÆþÎÏ¥Õ¥¡¥¤¥ë¤Ï¡¢°ì¹Ô¤Îʸ»ú¿ô¤ò255ʸ»ú¤è¤ê¤â¡Ö;͵¤ò»ý¤Ã¤Æ¡×¾¯¤Ê¤á¤Ë¤·¤Æ¤ª¤¯É¬Íפ¬Í­¤ê¤Þ¤¹¡£ ¤É¤ì¤°¤é¤¤¾¯¤Ê¤±¤ì¤Ð°ÂÁ´¤«¤ÏŸ³«¤¹¤ëÆâÍƼ¡Âè¤Ê¤Î¤Ç¤¹¤±¤ì¤É¡¢200ʸ»úÄøÅ٤ʤé¤ÐÂçÄñ¤Ï°ÂÁ´¤À¤È»×¤¤¤Þ¤¹¡£ * Tue Sep 29 21:28:31 JST 2015 Naoyuki Sawa - srf33¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤Î¹½Â¤¤Î¥Þ¥Ë¥å¥¢¥ë´Ö°ã¤¤ P/ECE³«È¯´Ä¶­¤Î¥³¥ó¥Ñ¥¤¥é¥Þ¥Ë¥å¥¢¥ë¡ÖS5U1C33000C Manual¡×(\usr\PIECE\docs\datasheet\EPSON\S5U1C33000C_J.pdf)¤Î¡¢ ¡ÖAppendix srf33¥Õ¥¡¥¤¥ë¤Î¹½Â¤ A-1 srf33¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤Î¹½Â¤¡×(p.475¡Á479)¤Ë¤Ï¡¢´Ö°ã¤¤¤¬Í­¤ë¤è¤¦¤Ç¤¹¡£ p.478¤Î¡Ö(4)¥¨¥¯¥¹¥¿¡¼¥ó¾ðÊó¡×¤Îɽ¤Î¡¢e_scnndx¤¬¡Ø4Byte¡Ù¤Èµ­ºÜ¤µ¤ì¤Æ¤¤¤Þ¤¹¤¬¡¢¼ÂºÝ¤Ë¤Ï¡Ø2Byte¡Ù¤À¤È»×¤¤¤Þ¤¹¡£ ¥µ¥ó¥×¥ë¥Ç¡¼¥¿¤ò»È¤Ã¤Æ¸¡¾Ú¤·¤Æ¤ß¤Þ¤·¤¿¡£ ¨¢ .code ¨¢ .global Test1to9 ¨¢ Test1to9: ¨¢ .byte 1 ¨¢ .byte 2 ¨¢ .byte 3 ¨¢ .byte 4 ¨¢ .byte 5 ¨¢ .byte 6 ¨¢ .byte 7 ¨¢ .byte 8 ¨¢ .byte 9 ¾åµ­¤Î¥¢¥»¥ó¥Ö¥é¥½¡¼¥¹¤ò¥³¥ó¥Ñ¥¤¥ë¤·¤Æ¡¢sample.o¤òÀ¸À®¤·¤Þ¤·¤¿¡£ ¨¢ pcc33 -c sample.s sample.o¤ò¥Ð¥¤¥Ê¥ê¥¨¥Ç¥£¥¿¤Ç³«¤¤¤Æ¡¢¡ÖA-1 srf33¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤Î¹½Â¤¡×¤È¸«Èæ¤Ù¤Æ¡¢¥³¥á¥ó¥È¤òÉÕ¤±¤Þ¤·¤¿¡£ ¨¢ //srf33À©¸æ¥Ø¥Ã¥À ¨¢ 00 01 //c_fatt 2Byte ¥Õ¥¡¥¤¥ëÀ©¸æ¥Õ¥é¥° ¨¢ 00 00 //c_pentry 2Byte ¥¨¥ó¥È¥ê¡¼¥¢¥É¥ì¥¹ ¨¢ 33 00 //c_ver 2Byte srf33¥Ð¡¼¥¸¥ç¥ó¾ðÊó ¨¢ 00 03 //c_scncnt 2Byte ¥»¥¯¥·¥ç¥ó¾ðÊó¿ô ¨¢ 00 00 00 10 //c_scnptr 4Byte ¥»¥¯¥·¥ç¥ó¾ðÊó¥Á¥§¡¼¥ó ¨¢ 00 00 00 00 //c_debptr 4Byte ¥Ç¥Ð¥Ã¥°À©¸æ¾ðÊó¥Á¥§¡¼¥ó ¨¢ //¥»¥¯¥·¥ç¥ó¾ðÊó(CODE) ¨¢ 00 00 00 3C //s_nxptr 4Byte ¼¡¤Î¥»¥¯¥·¥ç¥ó¾ðÊó¤Ø¤Î¥Á¥§¡¼¥ó ¨¢ 00 01 //s_scntyp 2Byte ¥»¥¯¥·¥ç¥ó¥¿¥¤¥× ¨¢ 00 00 //s_lnktyp 2Byte ¥ê¥ó¥¯ÊýË¡ ¨¢ 00 01 //s_scnatt 2Byte ¥»¥¯¥·¥ç¥ó°À­ ¨¢ 00 00 00 00 //s_off 4Byte ¥»¥¯¥·¥ç¥ó¤Î¥¹¥¿¡¼¥È¥¢¥É¥ì¥¹ ¨¢ 00 00 00 00 //s_rcptr 4Byte ¥ê¥í¥±¡¼¥·¥ç¥ó¾ðÊó¥Á¥§¡¼¥ó ¨¢ 00 00 00 00 //s_rcsiz 4Byte ¥ê¥í¥±¡¼¥·¥ç¥ó¾ðÊó¥Ð¥¤¥È¥µ¥¤¥º ¨¢ 00 00 00 94 //s_exptr 4Byte ¥¨¥¯¥¹¥¿¡¼¥ó¾ðÊó¥Á¥§¡¼¥ó ¨¢ 00 00 00 15 //s_exsiz 4Byte ¥¨¥¯¥¹¥¿¡¼¥ó¾ðÊó¥Ð¥¤¥È¥µ¥¤¥º ¨¢ 00 00 00 01 //s_excnt 4Byte ¥¨¥¯¥¹¥¿¡¼¥ó¾ðÊó¤Î¸Ä¿ô ¨¢ 00 00 00 A9 //s_rdptr 4Byte ¼Â¥Ç¡¼¥¿¤Ø¤Î¥Á¥§¡¼¥ó ¨¢ 00 00 00 09 //s_dsiz 4Byte ¼Â¥Ç¡¼¥¿¥Ð¥¤¥È¥µ¥¤¥º ¨¢ 00 00 //s_scnndx 2Byte ¥»¥¯¥·¥ç¥óID ¨¢ //¥»¥¯¥·¥ç¥ó¾ðÊó(DATA) ¨¢ 00 00 00 68 //s_nxptr 4Byte ¼¡¤Î¥»¥¯¥·¥ç¥ó¾ðÊó¤Ø¤Î¥Á¥§¡¼¥ó ¨¢ 00 02 //s_scntyp 2Byte ¥»¥¯¥·¥ç¥ó¥¿¥¤¥× ¨¢ 00 00 //s_lnktyp 2Byte ¥ê¥ó¥¯ÊýË¡ ¨¢ 00 01 //s_scnatt 2Byte ¥»¥¯¥·¥ç¥ó°À­ ¨¢ 00 00 00 00 //s_off 4Byte ¥»¥¯¥·¥ç¥ó¤Î¥¹¥¿¡¼¥È¥¢¥É¥ì¥¹ ¨¢ 00 00 00 00 //s_rcptr 4Byte ¥ê¥í¥±¡¼¥·¥ç¥ó¾ðÊó¥Á¥§¡¼¥ó ¨¢ 00 00 00 00 //s_rcsiz 4Byte ¥ê¥í¥±¡¼¥·¥ç¥ó¾ðÊó¥Ð¥¤¥È¥µ¥¤¥º ¨¢ 00 00 00 00 //s_exptr 4Byte ¥¨¥¯¥¹¥¿¡¼¥ó¾ðÊó¥Á¥§¡¼¥ó ¨¢ 00 00 00 00 //s_exsiz 4Byte ¥¨¥¯¥¹¥¿¡¼¥ó¾ðÊó¥Ð¥¤¥È¥µ¥¤¥º ¨¢ 00 00 00 00 //s_excnt 4Byte ¥¨¥¯¥¹¥¿¡¼¥ó¾ðÊó¤Î¸Ä¿ô ¨¢ 00 00 00 00 //s_rdptr 4Byte ¼Â¥Ç¡¼¥¿¤Ø¤Î¥Á¥§¡¼¥ó ¨¢ 00 00 00 00 //s_dsiz 4Byte ¼Â¥Ç¡¼¥¿¥Ð¥¤¥È¥µ¥¤¥º ¨¢ 00 01 //s_scnndx 2Byte ¥»¥¯¥·¥ç¥óID ¨¢ //¥»¥¯¥·¥ç¥ó¾ðÊó(BSS) ¨¢ 00 00 00 00 //s_nxptr 4Byte ¼¡¤Î¥»¥¯¥·¥ç¥ó¾ðÊó¤Ø¤Î¥Á¥§¡¼¥ó ¨¢ 00 03 //s_scntyp 2Byte ¥»¥¯¥·¥ç¥ó¥¿¥¤¥× ¨¢ 00 00 //s_lnktyp 2Byte ¥ê¥ó¥¯ÊýË¡ ¨¢ 00 01 //s_scnatt 2Byte ¥»¥¯¥·¥ç¥ó°À­ ¨¢ 00 00 00 00 //s_off 4Byte ¥»¥¯¥·¥ç¥ó¤Î¥¹¥¿¡¼¥È¥¢¥É¥ì¥¹ ¨¢ 00 00 00 00 //s_rcptr 4Byte ¥ê¥í¥±¡¼¥·¥ç¥ó¾ðÊó¥Á¥§¡¼¥ó ¨¢ 00 00 00 00 //s_rcsiz 4Byte ¥ê¥í¥±¡¼¥·¥ç¥ó¾ðÊó¥Ð¥¤¥È¥µ¥¤¥º ¨¢ 00 00 00 00 //s_exptr 4Byte ¥¨¥¯¥¹¥¿¡¼¥ó¾ðÊó¥Á¥§¡¼¥ó ¨¢ 00 00 00 00 //s_exsiz 4Byte ¥¨¥¯¥¹¥¿¡¼¥ó¾ðÊó¥Ð¥¤¥È¥µ¥¤¥º ¨¢ 00 00 00 00 //s_excnt 4Byte ¥¨¥¯¥¹¥¿¡¼¥ó¾ðÊó¤Î¸Ä¿ô ¨¢ 00 00 00 00 //s_rdptr 4Byte ¼Â¥Ç¡¼¥¿¤Ø¤Î¥Á¥§¡¼¥ó ¨¢ 00 00 00 00 //s_dsiz 4Byte ¼Â¥Ç¡¼¥¿¥Ð¥¤¥È¥µ¥¤¥º ¨¢ 00 02 //s_scnndx 2Byte ¥»¥¯¥·¥ç¥óID ¨¢ //¥¨¥¯¥¹¥¿¡¼¥ó¾ðÊó ¨¢ 00 00 00 00 //e_scnoff 4Byte ¥»¥¯¥·¥ç¥óÆâ¤Î¥ª¥Õ¥»¥Ã¥È ¨¢ 00 00 00 00 //e_size 4Byte ¥·¥ó¥Ü¥ë¤Î¥µ¥¤¥º ¨¢ 00 00 //e_scnndx 4Byte »²¾È¤¹¤ë¥¨¥¯¥¹¥¿¡¼¥ó¾ðÊ󤬽ê°¤¹¤ë¥»¥¯¥·¥ç¥ó¤ÎID ¢«¢«¢«¡Ø4Byte¡Ù¤¬´Ö°ã¤¤ ¨¢ 00 01 //e_extyp 2Byte ¥¨¥¯¥¹¥¿¡¼¥ó¥¿¥¤¥× ¨¢ 08 //e_namsiz 1Byte ¥·¥ó¥Ü¥ë̾¤ÎŤµ ¨¢ 54 65 73 74 31 74 6F 39 //e_exnam *Byte ¥·¥ó¥Ü¥ë̾ ¨¢ //¼Â¥Ç¡¼¥¿ ¨¢ 01 02 03 04 05 06 07 08 09 // ¥¨¥¯¥¹¥¿¡¼¥ó¾ðÊó¤Îe_scnndx¤ò¡¢4Byte¤Ç¤Ê¤¯2Byte¤È¸«¤Ê¤µ¤Ê¤¤¤È¡¢¹ç¤¤¤Þ¤»¤ó¡£ e_scnndx¤Ï¥»¥¯¥·¥ç¥ó¤ÎID¤òɽ¤¹¥Õ¥£¡¼¥ë¥É¤Ç¡¢Â¾¤Î¥»¥¯¥·¥ç¥óID¥Õ¥£¡¼¥ë¥É(s_scnndx)¤Ï2Byte¤Ç¤¹¤«¤é¡¢e_scnndx¤â2Byte¤Ê¤Î¤¬¼«Á³¤Ç¤¹¡£ ¤È¤¤¤¦¤ï¤±¤Ç¡¢¥¨¥¯¥¹¥¿¡¼¥ó¾ðÊó¤Îe_scnndx¤Ï¡¢¡Ø2Byte¡Ù¤¬Àµ¤·¤¤¤È»×¤¤¤Þ¤¹¡£ http://www.piece-me.org/piece-lab/srf33/e_scnndx-fix.jpg * Sun Apr 05 21:06:45 JST 2015 Naoyuki Sawa - gcc33 abs()¤ÎºÇŬ²½¥Ð¥° P/ECE³«È¯´Ä¶­¤ÎC¥³¥ó¥Ñ¥¤¥égcc33¤Ë¤Ï¡¢abs()¤ÎºÇŬ²½¥Ð¥°¤¬¤¢¤ê¤Þ¤¹¡£ abs()¤ËÂФ·¤Æ¡¢¥Þ¥¤¥Ê¥¹¤ÎÃͤò»ØÄꤷ¤¿»þ¤Ë¥Þ¥¤¥Ê¥¹¤Î¤Þ¤ÞÊÖ¤µ¤ì¤¿¤ê¡¢¥×¥é¥¹¤ÎÃͤò»ØÄꤷ¤¿»þ¤Ë¥Þ¥¤¥Ê¥¹¤Ë¤Ê¤Ã¤ÆÊÖ¤µ¤ì¤¿¤ê¤¹¤ë¥Ð¥°¤Ç¤¹¡£ ¢£¥Ð¥°¤òºÆ¸½¤¹¤ë¥×¥í¥°¥é¥à °Ê²¼¤Ë¡¢¥Ð¥°¤òºÆ¸½¤¹¤ë¥µ¥ó¥×¥ë¥×¥í¥°¥é¥à¤ÎÎã¤ò¼¨¤·¤Þ¤¹¡£ ºÇŬ²½¥ª¥×¥·¥ç¥ó¡Ö-O2¡×¤ò»ØÄꤷ¤Æ¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤È¡¢ºÇŬ²½¥Ð¥°¤¬È¯À¸¤·¤Þ¤¹¡£ ¤³¤ÎÎã¤Î¾ì¹ç¡¢¡Ö¥Þ¥¤¥Ê¥¹¤ÎÃͤò»ØÄꤷ¤¿»þ¤Ë¥Þ¥¤¥Ê¥¹¤Î¤Þ¤ÞÊÖ¤µ¤ì¤ë¡×¥Ð¥°¤¬È¯À¸¤·¤Æ¤¤¤Þ¤¹¡£ ¢¢absbug1/absbug1.c ¨¢ ¨¢ #include ¨¢ #include ¨¢ //------------------------------------------------------------------------------ ¨¢ unsigned char vbuff[DISP_X * DISP_Y]; ¨¢ //{{--- ¥Æ¥¹¥È --- ¨¢ int x, y = 1; ¨¢ void test(); ¨¢ //}}--- ¥Æ¥¹¥È --- ¨¢ //------------------------------------------------------------------------------ ¨¢ void pceAppInit() { ¨¢ pceAppSetProcPeriod(1); ¨¢ pceLCDSetBuffer(vbuff); ¨¢ pceLCDDispStart(); ¨¢ } ¨¢ //------------------------------------------------------------------------------ ¨¢ void pceAppProc(int cnt) { ¨¢ memset(vbuff, 0, sizeof vbuff); ¨¢ pceFontSetPos(0, 0); ¨¢ pceFontSetTxColor(3); ¨¢ pceFontSetBkColor(0); ¨¢ //{{--- ¥Æ¥¹¥È --- ¨¢ x = 5; ¨¢ test(); ¨¢ pceFontPrintf("x = %d\n", x); //¢Í¡Öx = 10¡×(Àµ¤·¤¤) ¨¢ x = -5; ¨¢ test(); ¨¢ pceFontPrintf("x = %d\n", x); //¢Í¡Öx = -10¡×(Àµ¤·¤¤) ¨¢ x = 10; ¨¢ test(); ¨¢ pceFontPrintf("x = %d\n", x); //¢Í¡Öx = 0¡×(Àµ¤·¤¤) ¨¢ x = -10; ¨¢ test(); ¨¢ pceFontPrintf("x = %d\n", x); //¢Í¡Öx = -20¡×(¸í¤ê) ¨¢ //}}--- ¥Æ¥¹¥È --- ¨¢ pceLCDTrans(); ¨¢ //SELECT¥Ü¥¿¥ó¤¬²¡¤µ¤ì¤¿¤é½ªÎ»¤¹¤ë¡£ ¨¢ if(pcePadGet() & TRG_SELECT) { pceAppReqExit(0); } ¨¢ } ¨¢ //------------------------------------------------------------------------------ ¨¢ void pceAppExit() { ¨¢ } ¨¢ //------------------------------------------------------------------------------ ¨¢ //{{--- ¥Æ¥¹¥È --- ¨¢ void test() { ¨¢ //ÊÑ¿ôx¤ÎÃͤò2Çܤˤ¹¤ë¡£ ¨¢ x <<= 1; ¨¢ //ÊÑ¿ôy¤ÎÃͤ¬0¤Ç¤Ê¤±¤ì¤Ð¡Ä ¨¢ if(y) { ¨¢ //ÊÑ¿ôx¤ÎÀäÂÐÃͤ¬15°Ê¾å¤Ê¤é¤Ð¡Ä ¨¢ if(abs(x) >= 15) { ¨¢ //ÊÑ¿ôx¤ÎÃͤò0¤ËÌ᤹¡£ ¨¢ x = 0; ¨¢ } ¨¢ } ¨¢ } ¨¢ //}}--- ¥Æ¥¹¥È --- ¨¢ ¢£¥Ð¥°¤Î¸¶°ø¤òÄ´ºº¤¹¤ë gcc33¤¬test()´Ø¿ô¤ò¥³¥ó¥Ñ¥¤¥ë¤·¤ÆÀ¸À®¤·¤¿¡¢¥¢¥»¥ó¥Ö¥é¥³¡¼¥É¤ò¼¨¤·¤Þ¤¹¡£(¾¯¤·À°·Á¤·¤Þ¤·¤¿) ¢¢absbug1/absbug1.ps ¨¢ ¨¢ test: ¨¢ xld.w %r10, [x] ;//%r10 := x ¨¢ ld.w %r11, %r10 ;//%r11 := x ¨¢ sll %r11, 1 ;//%r11 := x <<= 1 ¨¢ xld.w [x], %r11 ;//x¤ò¥á¥â¥ê¤Ë³ÊǼ¤¹¤ë¡£ ¨¢ xld.w %r10, [y] ;//%r10 := y ¨¢ cmp %r10, 0 ;//if(y) { ¨¢ jreq __L2 ;// ¨¢ ld.w %r10, %r11 ;// %r10 := x ¨¤ ¨¢ jrge __L1 ;// if(???) { ¢«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¢¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¤³¤³¤¬¥Ð¥°!! ¨¢ not %r10, %r10 ;// %r10 := ~x ¨§¤³¤ÎÈϰϤ¬abs(x)ÁêÅö ¨¢ add %r10, 1 ;// %r10 := ~x + 1 = -x ¨¢ ¨¢ __L1: ;// } ¨¥ ¨¢ cmp %r10, 14 ;// if(abs(x) > 14) ¨¢ jrle __L2 ;// ¨¢ ld.w %r12, 0 ;// %r12 := x = 0 ¨¢ xld.w [x], %r12 ;// x¤ò¥á¥â¥ê¤Ë³ÊǼ¤¹¤ë¡£ ¨¢ __L2: ;//} } ¨¢ ret ;// ¨¢ abs()¤Î½èÍý¤Ç¡¢x¤¬0°Ê¾å¤«¤òȽÄꤹ¤ë¤¿¤á¤Î¡Öld.w %r10,0¡×¤¬È´¤±¤Æ¤¤¤ë»ö¤¬¡¢¥Ð¥°¤Î¸¶°ø¤Ç¤¹¡£ abs()¤Î°ú¿ô'x'¤òÈæ³Ó¤»¤º¡¢Ä¾Á°¤Î½èÍý¤ÎÈæ³Ó·ë²Ì'y'¤Ë¤è¤Ã¤Æ¡¢abs()¤ÎÉä¹æȿž¤ò¹Ô¤Ã¤Æ¤·¤Þ¤Ã¤Æ¤¤¤ë¤Î¤Ç¡¢abs()¤¬´Ö°ã¤Ã¤¿·ë²Ì¤Ë¤Ê¤ê¤Þ¤¹¡£ ¢£¥Ð¥°¤¬È¯À¸¤¹¤ë¾ò·ï(¿ä¬) ¤¤¤í¤¤¤í¤Ê¥Ñ¥¿¡¼¥ó¤ò¤¿¤á¤·¤¿¤È¤³¤í¡¢¤³¤Î¥Ð¥°¤¬È¯À¸¤¹¤ë¾ò·ï¤Ï¡¢¤ª¤ª¤è¤½°Ê²¼¤Î¤è¤¦¤Ç¤¹¡£(¿ä¬¤Ç¤¹) ­¡ abs()¤Î°ú¿ô¤ò¡¢´Ø¿ô¤ÎºÇ½é¤ÎÊý¤Ç´û¤Ë»ÈÍѤ·¤Æ¤¤¤Æ¡¢¥ì¥¸¥¹¥¿¤Ë¥í¡¼¥ÉºÑ¤ß¤Ç¤¢¤ë¡£ ­¢ abs()¤ÎľÁ°¤Ç¡¢abs()¤Î°ú¿ô°Ê³°¤ÎÊÑ¿ô¤ò¡¢0¤ÈÈæ³Ó¤¹¤ë½èÍý¤ò¹Ô¤Ã¤Æ¤¤¤ë¡£ ¾å¤Î¥µ¥ó¥×¥ë¥×¥í¥°¥é¥à¤Î¾ì¹ç¡¢test()¤ÎÃæ¤Î¡Öx <<= 1;¡×¤¬­¡¤ËÁêÅö¤·¡¢¡Öif(y) {¡×¤¬­¢¤ËÁêÅö¤·¤Þ¤¹¡£ ¤É¤¦¤ä¤égcc33¤Ï¡¢¡Öabs()¤Î°ú¿ô¤ò0¤ÈÈæ³Ó¤¹¤ë½èÍý¡×¤ò¡¢­¢¤ÎÈæ³Ó½èÍý¤È(´Ö°ã¤Ã¤Æ)¤Þ¤È¤á¤ÆºÇŬ²½¤·¤Æ¤·¤Þ¤¦¥Ð¥°¤¬¤¢¤ë¤è¤¦¤Ç¤¹¡£ gcc33¤ÎÆâÉô½èÍýŪ¤Ë¤Ï¡¢2013ǯ7·î30Æü¤ÎP/ECE¸¦µæµ­Ï¿¡¢¡Ögcc33 ¾ò·ï±é»»»Ò¤ÎºÇŬ²½¥Ð¥°¡×¤ÇÄ´ºº¤·¤¿·ï¤È¡¢Æ±¤¸¤Ç¤Ï¤Ê¤¤¤«¤È»×¤¤¤Þ¤¹¡£ abs()¤¬ÁȤ߹þ¤ß´Ø¿ô¤È¤·¤Æ¥¤¥ó¥é¥¤¥óŸ³«¤µ¤ì¤¿¸å¡¢¡Ögcc33 ¾ò·ï±é»»»Ò¤ÎºÇŬ²½¥Ð¥°¡×¤ÈƱ¤¸¡¢´Ö°ã¤Ã¤¿ºÇŬ²½¤¬¹Ô¤ï¤ì¤Æ¤¤¤ë¤Î¤À¤È»×¤¤¤Þ¤¹¡£ ¢£¥Ð¥°¤ò²óÈò¤¹¤ëÊýË¡ gcc33¤¬abs()¤òÁȤ߹þ¤ß´Ø¿ô¤È¤·¤Æ¥¤¥ó¥é¥¤¥óŸ³«¤·¤Ê¤¤¤è¤¦¤Ë¡¢¥Þ¥¯¥íÄêµÁ¤ÇÃÖ¤­´¹¤¨¤ë»ö¤Ë¤·¤Þ¤·¤¿¡£ ¤É¤Î¤è¤¦¤ËÃÖ¤­´¹¤¨¤ë¤ÈÀµ¤·¤¤Æ°ºî¤Ë¤Ê¤ë¤«¡¦¸úΨ¤ÎÎɤ¤¥³¡¼¥É¤Ë¤Ê¤ë¤«¤ò¡¢¸¡¾Ú¤·¤Æ¸«¤Þ¤·¤¿¡£ ¡ßÀµ¤·¤¯¤Ê¤¤ÃÖ¤­´¹¤¨ ¤Þ¤º¡¢ÁÇľ¤ÊÈæ³Ó½èÍý¤ÇÃÖ¤­´¹¤¨¤Æ¤ß¤Þ¤·¤¿¡£ ¢¢absbug2/absbug2.c ¨¢ ¨¢ #define abs(x) ({ \ ¨¢ int __x__ = (x); \ ¨¢ if(__x__ < 0) { __x__ = -__x__; } \ ¨¢ __x__; }) ¨¢ ¤·¤«¤·¤³¤ì¤Ç¤Ï¡¢abs()¤Î·ë²Ì¤¬´Ö°ã¤Ã¤¿¤Þ¤Þ¤Ë¤Ê¤ê¤Þ¤·¤¿¡£ ¨¢ ¨¢ x = 5; ¨¢ test(); ¨¢ pceFontPrintf("x = %d\n", x); //¢Í¡Öx = 10¡×(Àµ¤·¤¤) ¨¢ x = -5; ¨¢ test(); ¨¢ pceFontPrintf("x = %d\n", x); //¢Í¡Öx = -10¡×(Àµ¤·¤¤) ¨¢ x = 10; ¨¢ test(); ¨¢ pceFontPrintf("x = %d\n", x); //¢Í¡Öx = 0¡×(Àµ¤·¤¤) ¨¢ x = -10; ¨¢ test(); ¨¢ pceFontPrintf("x = %d\n", x); //¢Í¡Öx = -20¡×(¸í¤ê) ¨¢ ¥¢¥»¥ó¥Ö¥é¥³¡¼¥É¤ò¸«¤Æ¸«¤ë¤È: ¢¢absbug2/absbug2.ps ¨¢ ¨¢ test: ¨¢ xld.w %r10, [x] ;//%r10 := x ¨¢ ld.w %r11, %r10 ;//%r11 := x ¨¢ sll %r11, 1 ;//%r11 := x <<= 1 ¨¢ xld.w [x], %r11 ;//x¤ò¥á¥â¥ê¤Ë³ÊǼ¤¹¤ë¡£ ¨¢ xld.w %r10, [y] ;//%r10 := y ¨¢ cmp %r10, 0 ;//if(y) { ¨¢ jreq __L2 ;// ¨¢ ld.w %r10, %r11 ;// %r10 := x ¨¤ ¨¢ jrge __L1 ;// if(???) { ¢«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¢¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¥Ð¥°¤Î¤Þ¤Þ!! ¨¢ not %r10, %r10 ;// %r10 := ~x ¨§¤³¤ÎÈϰϤ¬abs(x)ÁêÅö ¨¢ add %r10, 1 ;// %r10 := ~x + 1 = -x ¨¢ ¨¢ __L1: ;// } ¨¥ ¨¢ cmp %r10, 14 ;// if(abs(x) > 14) ¨¢ jrle __L2 ;// ¨¢ ld.w %r12, 0 ;// %r12 := x = 0 ¨¢ xld.w [x], %r12 ;// x¤ò¥á¥â¥ê¤Ë³ÊǼ¤¹¤ë¡£ ¨¢ __L2: ;//} } ¨¢ ret ;// ¨¢ ºÇ½é¤Î¥µ¥ó¥×¥ë¥×¥í¥°¥é¥à¤È¡¢Á´¤¯Æ±¤¸¥¢¥»¥ó¥Ö¥é¥³¡¼¥É¤¬À¸À®¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ ÁÇľ¤ÊÈæ³Ó½èÍý¤Ç¤Ï¡¢¡Ögcc33 ¾ò·ï±é»»»Ò¤ÎºÇŬ²½¥Ð¥°¡×¤ÈƱ¤¸ºÇŬ²½¥Ð¥°¤¬À¸¤¸¤Æ¡¢¥Ð¥°²óÈò¤Ë¤Ê¤é¤Ê¤¤¤è¤¦¤Ç¤¹¡£ ¢¨¤Á¤Ê¤ß¤Ë¤³¤Î·ë²Ì¤«¤é¿ä¬¤¹¤ë¤È¡¢2¤Ä¤ÎÊÑ¿ô¤ËÂФ·¤Æ0¤È¤ÎÈæ³Ó½èÍý¤òϢ³¤·¤Æ¹Ô¤¦¤È¡¢abs()°Ê³°¤Ç¤â¥Ð¥°¤¬¸²ºß²½¤¹¤ë²ÄǽÀ­¤¬¤¢¤ê¤½¤¦¤Ç¤¹¡£ ¢¨º£²ó¤ÎËÜÂ꤫¤é¤Ï³°¤ì¤ë¤Þ¤¹¤¬¡¢·ë¹½Éݤ¤¤Ç¤¹¡¦¡¦¡¦º£¸å¡¢Í×Ä´ºº¤Ç¤¹¡£ ¡ßÀµ¤·¤¯¤Ê¤¤ÃÖ¤­´¹¤¨ ¼¡¤Ë¡¢Èæ³Ó±é»»»Ò¤ò»È¤Ã¤ÆÃÖ¤­´¹¤¨¤Æ¸«¤Þ¤·¤¿¡£ ¢¢absbug3/absbug3.c ¨¢ ¨¢ #define abs(x) ({ \ ¨¢ int __x__ = (x); \ ¨¢ (__x__ >= 0) ? x : -__x__; }) ¨¢ ¤·¤«¤·¤³¤ì¤Ç¤â¡¢abs()¤Î·ë²Ì¤¬´Ö°ã¤Ã¤¿¤Þ¤Þ¤Ë¤Ê¤ê¤Þ¤·¤¿¡£ ¢¢absbug3/absbug3.ps ¨¢ ¨¢ test: ¨¢ xld.w %r10, [x] ;//%r10 := x ¨¢ ld.w %r11, %r10 ;//%r11 := x ¨¢ sll %r11, 1 ;//%r11 := x <<= 1 ¨¢ xld.w [x], %r11 ;//x¤ò¥á¥â¥ê¤Ë³ÊǼ¤¹¤ë¡£ ¨¢ xld.w %r10, [y] ;//%r10 := y ¨¢ cmp %r10, 0 ;//if(y) { ¨¢ jreq __L2 ;// ¨¢ ld.w %r10, %r11 ;// %r10 := x ¨¤ ¨¢ jrge __L1 ;// if(???) { ¢«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¢¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¥Ð¥°¤Î¤Þ¤Þ!! ¨¢ not %r10, %r10 ;// %r10 := ~x ¨§¤³¤ÎÈϰϤ¬abs(x)ÁêÅö ¨¢ add %r10, 1 ;// %r10 := ~x + 1 = -x ¨¢ ¨¢ __L1: ;// } ¨¥ ¨¢ cmp %r10, 14 ;// if(abs(x) > 14) ¨¢ jrle __L2 ;// ¨¢ ld.w %r12, 0 ;// %r12 := x = 0 ¨¢ xld.w [x], %r12 ;// x¤ò¥á¥â¥ê¤Ë³ÊǼ¤¹¤ë¡£ ¨¢ __L2: ;//} } ¨¢ ret ;// ¨¢ ºÇ½é¤Î¥µ¥ó¥×¥ë¥×¥í¥°¥é¥à¤È¡¢Á´¤¯Æ±¤¸¥¢¥»¥ó¥Ö¥é¥³¡¼¥É¤¬À¸À®¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ ¤È¤¤¤¦¤ï¤±¤Ç¡¢¤³¤ÎÊýË¡¤â¡ß¤Ç¤¹¡£ ¡ßÀµ¤·¤¯¤Ê¤¤ÃÖ¤­´¹¤¨ ¼¡¤Ë¡¢Èæ³Ó±é»»»Ò¤Ç¡¢GCC³ÈÄ¥µ¡Ç½¤ò»È¤Ã¤ÆÃÖ¤­´¹¤¨¤Æ¸«¤Þ¤·¤¿¡£ ¢¢absbug4/absbug4.c ¨¢ ¨¢ #define abs(x) ({ \ ¨¢ int __x__ = (x); \ ¨¢ (__x__ >= 0) ? : -__x__; }) ¨¢ 2013ǯ7·î30Æü¤Î¡Ögcc33 ¾ò·ï±é»»»Ò¤ÎºÇŬ²½¥Ð¥°¡×¤Î»þ¤Ï¡¢GCC³ÈÄ¥µ¡Ç½¤ò»È¤¦¤È¥Ð¥°¤¬²óÈò¤Ç¤­¤¿¤Î¤Ç¡¢¤³¤ÎÊýË¡¤ÇÂç¾æÉפ«¤È»×¤Ã¤¿¤Î¤Ç¤¹¤¬¡¢ ¤·¤«¤·»î¤·¤Æ¤ß¤ë¤È¡¢abs()¤Î·ë²Ì¤¬´Ö°ã¤Ã¤¿·ë²Ì¤Ë¤Ê¤ê¤Þ¤·¤¿¡£ ¨¢ ¨¢ x = 5; ¨¢ test(); ¨¢ pceFontPrintf("x = %d\n", x); //¢Í¡Öx = 10¡×(Àµ¤·¤¤) ¨¢ x = -5; ¨¢ test(); ¨¢ pceFontPrintf("x = %d\n", x); //¢Í¡Öx = -10¡×(Àµ¤·¤¤) ¨¢ x = 10; ¨¢ test(); ¨¢ pceFontPrintf("x = %d\n", x); //¢Í¡Öx = 20¡×(¸í¤ê) ¨¢ x = -10; ¨¢ test(); ¨¢ pceFontPrintf("x = %d\n", x); //¢Í¡Öx = 0¡×(Àµ¤·¤¤) ¨¢ Àè¤Û¤É¤Þ¤Ç¤Ï¡¢¥Þ¥¤¥Ê¥¹ÃͤËÂФ¹¤ëabs()¤¬´Ö°ã¤Ã¤Æ¤¤¤Æ¥×¥é¥¹ÃͤËÂФ¹¤ëabs()¤ÏÀµ¤·¤«¤Ã¤¿¤Î¤Ç¤¹¤¬¡¢º£²ó¤ÏµÕ¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£ ¥¢¥»¥ó¥Ö¥é¥³¡¼¥É¤ò¸«¤Æ¸«¤ë¤È: ¢¢absbug4/absbug4.ps ¨¢ ¨¢ test: ¨¢ xld.w %r10, [x] ;//%r10 := x ¨¢ ld.w %r11, %r10 ;//%r11 := x ¨¢ sll %r11, 1 ;//%r11 := x <<= 1 ¨¢ xld.w [x], %r11 ;//x¤ò¥á¥â¥ê¤Ë³ÊǼ¤¹¤ë¡£ ¨¢ xld.w %r10, [y] ;//%r10 := y ¨¢ cmp %r10, 0 ;//if(y) { ¨¢ jreq __L2 ;// ¨¢ not %r10, %r11 ;// %r10 := ~x ¨¢ xsrl %r10, 31 ;// %r10 := ~x >> 31 x¤¬¥×¥é¥¹¤Ê¤é¤Ð1,x¤¬¥Þ¥¤¥Ê¥¹¤Ê¤é¤Ð0¤Ë¤Ê¤ë¡£ ¢«0¤ÈÈæ³Ó¤·¤ÆȽÄꤹ¤ì¤Ð1Ì¿Îá¤ÇºÑ¤à¤Î¤Ë¡¢4Ì¿Îá»È¤Ã¤ÆºÇ¾å°Ì¥Ó¥Ã¥È¤ò¥·¥Õ¥È¤¹¤ë¤È¤¤¤¦ÌµÂÌ!! ¨¢ jrne __L1 ;// if(!(~x >> 31)) { ¨¡¨¤ ¨¢ not %r10, %r11 ;// %r10 := ~x ¡¡¨¢if¤ÎÃæ¤òÄ̤ä¿»þ(x¤¬¥Þ¥¤¥Ê¥¹¤Î»þ)¤Ï¡¢%r10=abs(x)¤Ë¤Ê¤ë¤¬¡¢ ¨¢ add %r10, 1 ;// %r10 := ~x + 1 = -x ¡¡¨¢if¤ÎÃæ¤òÄ̤é¤Ê¤«¤Ã¤¿»þ(x¤¬¥×¥é¥¹¤Î»þ)¤Ï¡¢%r10=(~x>>31)¤Ë¤Ê¤ë¡£ ¢«¤¢¤é¤¿¤Ê¥Ð¥°!! ¨¢ __L1: ;// } ¢«¨¥ ¨¢ cmp %r10, 14 ;// if(??? > 14) { ¨¢ jrle __L2 ;// ¨¢ ld.w %r12, 0 ;// %r12 := x = 0 ¨¢ xld.w [x], %r12 ;// x¤ò¥á¥â¥ê¤Ë³ÊǼ¤¹¤ë¡£ ¨¢ __L2: ;//} } ¨¢ ret ;// ¨¢ ¤Ê¤ó¤«¤È¤ó¤Ç¤â¤Ê¤¤¥³¡¼¥É¤¬À¸À®¤µ¤ì¤Þ¤·¤¿¡£¸úΨ¤¬°­¤¤¾å¤Ë·ë²Ì¤â´Ö°ã¤Ã¤Æ¤¤¤Þ¤¹¡£ ¤³¤ÎÊýË¡¤â¡ß¤Ç¤¹¡£ ¢¨¤Ê¤¼¤³¤ó¤Ê¥³¡¼¥É¤¬À¸À®¤µ¤ì¤ë¤Î¤Ç¤·¤ç¤¦¤«? ¢¨º£²ó¤ÎËÜÂ꤫¤é¤Ï³°¤ì¤ë¤Þ¤¹¤¬¡¢·ë¹½Éݤ¤¤Ç¤¹¡¦¡¦¡¦º£¸å¡¢Í×Ä´ºº¤Ç¤¹¡£ ¡ûÀµ¤·¤¤ÃÖ¤­´¹¤¨ C¸À¸ì¤Ç½ñ¤¯¤ÈÀµ¤·¤¤¥³¡¼¥É¤¬À¸À®¤µ¤ì¤Ê¤µ¤½¤¦¤Ê»ö¤¬È½¤Ã¤¿¤Î¤Ç¡¢¥¢¥»¥ó¥Ö¥é¤ÇÃÖ¤­´¹¤¨¤Æ¸«¤ë»ö¤Ë¤·¤Þ¤·¤¿¡£ ¢¢absbug5/absbug5.c ¨¢ ¨¢ #define abs(x) ({ \ ¨¢ int __x__ = (x); \ ¨¢ asm /*volatile*/ ( \ ¨¢ "cmp %0, 0 \n" \ ¨¢ "jrge 3 \n" \ ¨¢ " not %0, %0 \n" \ ¨¢ " add %0, 1 \n" \ ¨¢ : "=r"(__x__) : "0"(__x__) : "cc"); \ ¨¢ __x__; }) ¨¢ °Ê²¼¤Î¤È¤ª¤ê¡¢Àµ¤·¤¤·ë²Ì¤Ë¤Ê¤ê¤Þ¤·¤¿¡£ ¨¢ ¨¢ x = 5; ¨¢ test(); ¨¢ pceFontPrintf("x = %d\n", x); //¢Í¡Öx = 10¡×(Àµ¤·¤¤) ¨¢ x = -5; ¨¢ test(); ¨¢ pceFontPrintf("x = %d\n", x); //¢Í¡Öx = -10¡×(Àµ¤·¤¤) ¨¢ x = 10; ¨¢ test(); ¨¢ pceFontPrintf("x = %d\n", x); //¢Í¡Öx = 0¡×(Àµ¤·¤¤) ¨¢ x = -10; ¨¢ test(); ¨¢ pceFontPrintf("x = %d\n", x); //¢Í¡Öx = 0¡×(Àµ¤·¤¤) ¨¢ ¥¢¥»¥ó¥Ö¥é¥³¡¼¥É¤Ï¡¢¤³¤¦¤Ê¤ê¤Þ¤¹¡£ ¨¢ ¨¢ test: ¨¢ xld.w %r10, [x] ;//%r10 := x ¨¢ ld.w %r11, %r10 ;//%r11 := x ¨¢ sll %r11, 1 ;//%r11 := x <<= 1 ¨¢ xld.w [x], %r11 ;//x¤ò¥á¥â¥ê¤Ë³ÊǼ¤¹¤ë¡£ ¨¢ xld.w %r10, [y] ;//%r10 := y ¨¢ cmp %r10, 0 ;//if(y) { ¨¢ jreq __L1 ;// ¨¢ ld.w %r10, %r11 ;// %r10 := x ¨¢ cmp %r10, 0 ;// if(x < 0) { ¨¤ ¨¢ jrge 3 ;// ¨§¥¢¥»¥ó¥Ö¥é¤ÇÃÖ¤­´¹¤¨¤¿ÈÏ°Ï ¨¢ not %r10, %r10 ;// %r10 := ~x ¨¢ ¨¢ add %r10, 1 ;// %r10 := ~x + 1 = -x } ¨¥ ¨¢ cmp %r10, 14 ;// if(abs(x) > 14) { ¨¢ jrle __L1 ;// ¨¢ ld.w %r12, 0 ;// %r12 := x = 0 ¨¢ xld.w [x], %r12 ;// x¤ò¥á¥â¥ê¤Ë³ÊǼ¤¹¤ë¡£ ¨¢ __L1: ;//} ¨¢ ret ¨¢ ¼«Á³¤Ê¥³¡¼¥É¤¬À¸À®¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ ¸·Ì©¤Ë¸À¤¨¤Ð¡¢C¥³¥ó¥Ñ¥¤¥é¤¬À¸À®¤·¤¿Éôʬ¤Î¥ì¥¸¥¹¥¿¤Î»ÈÍÑÊýË¡¤Ë̵Â̤¬¤¢¤ê¤Þ¤¹¤¬¡¢¤Þ¤¢ÃÖ¤¤¤Æ¤ª¤¯»ö¤Ë¤·¤Æ¡£ ¤È¤¤¤¦¤ï¤±¤Ç¡¢¤³¤ÎÊýË¡¤Ç¡Ögcc33 abs()¤ÎºÇŬ²½¥Ð¥°¡×¤¬²óÈò¤Ç¤­¤ë»ö¤¬È½¤ê¤Þ¤·¤¿¡£ ·ëÏÀ¤«¤é¸À¤¦¤È¡¢¤³¤ì¤¬ºÇÁ±¤ÎÊýË¡¤Ç¤¹¡£ °Ê²¼¡¢Ê̤ÎÊýË¡¤â¸¡¾Ú¤·¤Æ¤ß¤Þ¤·¤¿¤¬¡¢¤³¤ì¤è¤ê¤â¸úΨ¤Î°­¤¤ÊýË¡¤Ê¤Î¤Ç¡¢¸«¤Ê¤¯¤Æ¤â¹½¤¤¤Þ¤»¤ó¡£ ¢¤Àµ¤·¤¤ÃÖ¤­´¹¤¨(ÊÌver)¡£·ë²Ì¤ÏÀµ¤·¤¤¤±¤ì¤É¸úΨ¤¬°­¤¤¡£ ¡Öɸ½àC¥é¥¤¥Ö¥é¥ê¤Î¼ÂÁõ¡×(http://libc.blog47.fc2.com/)¤µ¤ó¤Î¡Öabs´Ø¿ô¡×(http://libc.blog47.fc2.com/blog-entry-57.html)¤Îµ­»ö¤ò»²¾È¤µ¤»¤Æ夭¤Þ¤·¤¿¡£ ¤½¤ì¤Ë¤è¤ë¤È¡¢RISC¤Î¤è¤¦¤Ëʬ´ô¤Î¥³¥¹¥È¤¬Â礭¤¤¥×¥í¥»¥Ã¥µ¤Ç¤Ï¡¢Ê¬´ô¤ò»È¤ï¤º¤Ëabs()¤ò¼ÂÁõ¤¹¤ë»ö¤¬¤¢¤ë¤½¤¦¤Ç¤¹¡£ ¨¢ ¨¢ int t = x >> 31; ¨¢ return (x ^ t) - t; ¨¢ ¤¿¤À¤·¡¢Ê¬´ô¤è¤ê¤â¥·¥Õ¥È±é»»¤ÎÊý¤¬¥³¥¹¥È¤¬Â礭¤¤¥Þ¥¤¥³¥ó(H8¤Ê¤É)¤Ç¤Ï¡¢µÕ¸ú²Ì¤Ë¤Ê¤ë»ö¤â¤¢¤ë¤½¤¦¤Ç¤¹¡£ P/ECE¤ÎCPU S1C33209¤Ï¡¢RISC¥Þ¥¤¥³¥ó¤Ê¤Î¤Ç¤¹¤±¤ì¤É¡¢Ê¬´ô¤è¤ê¤â¥·¥Õ¥È±é»»¤ÎÊý¤¬¥³¥¹¥È¤¬Â礭¤¤¤È»×¤¦¤Î¤Ç¡¢µÕ¸ú²Ì¤Ë¤Ê¤ê¤½¤¦¤Ç¤¹¡£ °ì±þ¡¢»î¤·¤Æ¸«¤ë»ö¤Ë¤·¤Þ¤·¤¿¡£ ¢¢absbug6/absbug6.c ¨¢ ¨¢ #define abs(x) ({ \ ¨¢ int __x__ = (x); \ ¨¢ asm /*volatile*/ ( \ ¨¢ "ld.w %%r9, %0 \n" \ ¨¢ "xsra %%r9, 31 \n" \ ¢«¨¡¨¡4Ì¿Îá¤ËŸ³«¤µ¤ì¤Þ¤¹¡£ ¨¢ "xor %0, %%r9 \n" \ ¨¢ "sub %0, %%r9 \n" \ ¨¢ : "=r"(__x__) : "0"(__x__) : "cc","%r9"); \ ¨¢ __x__; }) ¨¢ ¼Â¹Ô·ë²Ì¤Ï¡¢¤³¤¦¤Ê¤ê¤Þ¤·¤¿¡£ ¨¢ ¨¢ x = 5; ¨¢ test(); ¨¢ pceFontPrintf("x = %d\n", x); //¢Í¡Öx = 10¡×(Àµ¤·¤¤) ¨¢ x = -5; ¨¢ test(); ¨¢ pceFontPrintf("x = %d\n", x); //¢Í¡Öx = -10¡×(Àµ¤·¤¤) ¨¢ x = 10; ¨¢ test(); ¨¢ pceFontPrintf("x = %d\n", x); //¢Í¡Öx = 0¡×(Àµ¤·¤¤) ¨¢ x = -10; ¨¢ test(); ¨¢ pceFontPrintf("x = %d\n", x); //¢Í¡Öx = 0¡×(Àµ¤·¤¤) ¨¢ ¥¢¥»¥ó¥Ö¥é¥³¡¼¥É¤Ï¡¢¤³¤¦¤Ê¤ê¤Þ¤·¤¿¡£ ¢¢absbug6/absbug6.ps ¨¢ ¨¢ test: ¨¢ xld.w %r10, [x] ;//%r10 := x ¨¢ ld.w %r11, %r10 ;//%r11 := x ¨¢ sll %r11, 1 ;//%r11 := x <<= 1 ¨¢ xld.w [x], %r11 ;//x¤ò¥á¥â¥ê¤Ë³ÊǼ¤¹¤ë¡£ ¨¢ xld.w %r10, [y] ;//%r10 := y ¨¢ cmp %r10, 0 ;//if(y) { ¨¢ jreq __L1 ;// ¨¢ ld.w %r10, %r11 ;// %r10 := x ¨¢ ld.w %r9, %r10 ;// %r9 := x ¨¤ ¨¢ sra %r9, 8 ;// %r9 := x >> 8 ¨¢ ¨¢ sra %r9, 8 ;// %r9 := x >> 16 ¨¢ ¨¢ sra %r9, 8 ;// %r9 := x >> 24 ¨§¥¢¥»¥ó¥Ö¥é¤ÇÃÖ¤­´¹¤¨¤¿ÈÏ°Ï ¨¢ sra %r9, 7 ;// %r9 := t = x >> 31 ¨¢ ¨¢ xor %r10, %r9 ;// %r10 := x ^ t ¨¢ ¨¢ sub %r10, %r9 ;// %r10 := (x ^ t) - t = abs(x) ¨¥ ¨¢ cmp %r10, 14 ;// if(abs(x) > 14) { ¨¢ jrle __L1 ;// ¨¢ ld.w %r12, 0 ;// %r12 := x = 0 ¨¢ xld.w [x], %r12 ;// x¤ò¥á¥â¥ê¤Ë³ÊǼ¤¹¤ë¡£ ¨¢ __L1: ;//} ¨¢ ret ¨¢ ¼Â¹Ô·ë²Ì¤ÏÀµ¤·¤¤¤Î¤Ç¤¹¤±¤ì¤É¡¢¥³¡¼¥É¥µ¥¤¥º¤âÂ礭¤¤¤·¡¢¼Â¹Ô®ÅÙ¤âÃÙ¤¤¤Ç¤¹¡£ ¡Öʬ´ô¤ò»È¤ï¤º¤Ëabs()¤ò¼ÂÁõ¤¹¤ë¡×ÊýË¡¤Ï¡¢S1C33209¤Ë¤Ï¸þ¤¤¤Æ¤¤¤Ê¤¤»ö¤¬È½¤ê¤Þ¤·¤¿¡£ ¢¤Àµ¤·¤¤ÃÖ¤­´¹¤¨(ÊÌver)¡£·ë²Ì¤ÏÀµ¤·¤¤¤±¤ì¤É¸úΨ¤¬°­¤¤¡£ ¡Öʬ´ô¤ò»È¤ï¤º¤Ëabs()¤ò¼ÂÁõ¤¹¤ë¡×ÊýË¡¤ò¾¯¤·½¤Àµ¤·¤Æ¡¢¥·¥Õ¥È±é»»¤Î¥³¥¹¥È¤òÄ㸺¤¹¤ë»ö¤¬½ÐÍè¤Þ¤¹¡£ ¢¢absbug7/absbug7.c ¨¢ ¨¢ #define abs(x) ({ \ ¨¢ int __x__ = (x); \ ¨¢ asm /*volatile*/ ( \ ¨¢ "swap %%r9, %0 \n" \ ¨¢ "ld.b %%r9, %%r9 \n" \ ¨¢ "sra %%r9, 7 \n" \ ¨¢ "xor %0, %%r9 \n" \ ¨¢ "sub %0, %%r9 \n" \ ¨¢ : "=r"(__x__) : "0"(__x__) : "cc","%r9"); \ ¨¢ __x__; }) ¨¢ ¼Â¹Ô·ë²Ì¤Ï¡¢¤³¤¦¤Ê¤ê¤Þ¤·¤¿¡£ ¨¢ ¨¢ x = 5; ¨¢ test(); ¨¢ pceFontPrintf("x = %d\n", x); //¢Í¡Öx = 10¡×(Àµ¤·¤¤) ¨¢ x = -5; ¨¢ test(); ¨¢ pceFontPrintf("x = %d\n", x); //¢Í¡Öx = -10¡×(Àµ¤·¤¤) ¨¢ x = 10; ¨¢ test(); ¨¢ pceFontPrintf("x = %d\n", x); //¢Í¡Öx = 0¡×(Àµ¤·¤¤) ¨¢ x = -10; ¨¢ test(); ¨¢ pceFontPrintf("x = %d\n", x); //¢Í¡Öx = 0¡×(Àµ¤·¤¤) ¨¢ ¥¢¥»¥ó¥Ö¥é¥³¡¼¥É¤Ï¡¢¤³¤¦¤Ê¤ê¤Þ¤·¤¿¡£ ¢¢absbug7/absbug7.ps ¨¢ ¨¢ test: ¨¢ xld.w %r10, [x] ;//%r10 := x ¨¢ ld.w %r11, %r10 ;//%r11 := x ¨¢ xsll %r11, 1 ;//%r11 := x <<= 1 ¨¢ xld.w [x], %r11 ;//x¤ò¥á¥â¥ê¤Ë³ÊǼ¤¹¤ë¡£ ¨¢ xld.w %r10, [y] ;//%r10 := y ¨¢ cmp %r10, 0 ;//if(y) { ¨¢ jreq __L1 ;// ¨¢ ld.w %r10, %r11 ;// %r10 := x ¨¢ swap %r9, %r10 ;// %r9[7:0] := x[31:24] ¨¤ ¨¢ ld.b %r9, %r9 ;// %r9 := x[31:24] Éä¹æ³ÈÄ¥ ¨¢ ¨¢ sra %r9, 7 ;// %r9 := x[31] = t ¨§¥¢¥»¥ó¥Ö¥é¤ÇÃÖ¤­´¹¤¨¤¿ÈÏ°Ï ¨¢ xor %r10, %r9 ;// %r10 := x ^ t ¨¢ ¨¢ sub %r10, %r9 ;// %r10 := (x ^ t) - t = abs(x) ¨¥ ¨¢ cmp %r10, 14 ;// if(abs(x) > 14) { ¨¢ jrle __L1 ;// ¨¢ ld.w %r12, 0 ;// %r12 := x = 0 ¨¢ xld.w [x], %r12 ;// x¤ò¥á¥â¥ê¤Ë³ÊǼ¤¹¤ë¡£ ¨¢ __L1: ;//} ¨¢ ret ¨¢ Á°¤Îver¤è¤ê¤Ï²þÁ±¤·¤Þ¤·¤¿¤¬¡¢¤½¤ì¤Ç¤â¡¢Ê¬´ô¤ò»È¤Ã¤Æ¼ÂÁõ¤·¤¿ver¤è¤ê¤Ï¥³¡¼¥É¥µ¥¤¥º¤¬Â礭¤¯¡¢¼Â¹Ô®ÅÙ¤âÃÙ¤¤¤Ç¤¹¡£ ¤ä¤Ã¤Ñ¤ê¡¢¡Öʬ´ô¤ò»È¤ï¤º¤Ëabs()¤ò¼ÂÁõ¤¹¤ë¡×ÊýË¡¤Ï¡¢S1C33209¤Ë¤Ï¸þ¤¤¤Æ¤¤¤Ê¤¤»ö¤¬È½¤ê¤Þ¤·¤¿¡£ ¢£¤Þ¤È¤á P/ECE³«È¯´Ä¶­¤ÎC¥³¥ó¥Ñ¥¤¥égcc33¤Î¡¢abs()¤ÎºÇŬ²½¥Ð¥°¤ò²óÈò¤¹¤ëÊýË¡¤Ï¡¢¡Öabsbug5/absbug5.c¡×¤ÎÊýË¡¤¬ºÇÁ±¤Ç¤¹¡£ ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥×¥í¥°¥é¥à¤Çabs()¤ò»È¤¦»ö¤Ï¡¢°Õ³°¤È¾¯¤Ê¤¤¤·¡¢¤½¤Î¾å¡¢abs¤ÎºÇŬ²½¥Ð¥°¤¬È¯À¸¤¹¤ë¾ò·ï¤Ë°ìÃפ¹¤ë»ö¤Ï¤â¤Ã¤È¾¯¤Ê¤¤¤È»×¤¦¤Î¤Ç¤¹¤¬¡¢ °ÂÁ´¤Î¤¿¤á¤Ë¡¢¡Öabsbug5/absbug5.c¡×¤Î¥Þ¥¯¥í¤ò¡¢¤¤¤Ä¤âÄêµÁ¤·¤Æ¤ª¤¯¤Î¤¬Îɤ¤¤È»×¤¤¤Þ¤¹¡£ ¤Á¤Ê¤ß¤Ë¡¢º£²ó¤Ï¡Öabs()¡×¤Ë¤Ä¤¤¤Æ¤À¤±½ñ¤­¤Þ¤·¤¿¤¬¡¢¡Ölabs()¡×¤Ë¤Ä¤¤¤Æ¤âÁ´¤¯Æ±¤¸¤Ç¤¹¡£ ¡Öabsbug5/absbug5.c¡×¤Î¥Þ¥¯¥í¤Ë¡¢labs()¤âÄɲ䷤ơ¢°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤¹¤ë¤Î¤¬Îɤ¤¤È»×¤¤¤Þ¤¹¡£ ¨¢ ¨¢ #define abs(x) ({ \ ¨¢ int __x__ = (x); \ ¨¢ asm /*volatile*/ ( \ ¨¢ "cmp %0, 0 \n" \ ¨¢ "jrge 3 \n" \ ¨¢ " not %0, %0 \n" \ ¨¢ " add %0, 1 \n" \ ¨¢ : "=r"(__x__) : "0"(__x__) : "cc"); \ ¨¢ __x__; }) ¨¢ #define labs(x) abs(x) ¢«¨¡¨¡¤³¤ì¤òÄɲà ¨¢ º£²ó¤ÎÄ´ºº¤ÎÃæ¤Ç¡¢abs()¤ÎºÇŬ²½¥Ð¥°¤È¤ÏÊ̤Ρ¢µ¤¤Ë¤Ê¤ëÅÀ¤â¤¤¤¯¤Ä¤«È¯À¸¤·¤Þ¤·¤¿¡£(absbug2/absbug2.c¤Èabsbug3/absbug3.c¤Î¢¨¤ÎÉôʬ¤ò»²¾È) ¤½¤ì¤é¤ÎÅÀ¤â¡¢º£¸å¡¢Ä´ºº¤·¤Æ¸«¤è¤¦¤È»×¤¤¤Þ¤¹¡£ º£²ó»ÈÍѤ·¤¿¸¡¾Ú¥×¥í¥°¥é¥à°ì¼°¤Î¡¢¥À¥¦¥ó¥í¡¼¥É¤Ï¤³¤Á¤é¤Ç¤¹: http://www.piece-me.org/piece-lab/absbug/absbug-src.zip * Wed Jan 21 21:03:25 JST 2015 Naoyuki Sawa - P/ECE¤Îsize_t¤Ïunsigned¡£unsigned long¤Ç¤Ï¤Ê¤¤¡£ size_t¤Î·¿¤Ï½èÍý·Ï°Í¸¤Ç¤¹¡£ÂçÄñ¤Î32¥Ó¥Ã¥È´Ä¶­¤Ç¤Ï¡¢unsigned,Ëô¤Ï,unsigned long¤ÈÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ unsigned¤Ç¤âunsigned long¤Ç¤â»ÈÍѾå¤Î°ã¤¤¤Ï̵¤¯¡¢¤É¤Á¤é¤Ç¤¢¤ë¤«¤òµ¤¤Ë¤¹¤ë»ö¤Ï¤¢¤Þ¤ê̵¤¤¤Ç¤¹¡£ ¤·¤«¤·¡¢P/ECE³«È¯´Ä¶­¤ò»È¤Ã¤Æ¤¤¤Æ¡¢unsigned¤Èunsigned long¤Î°ã¤¤¤¬ÌäÂê¤Ë¤Ê¤ë¥±¡¼¥¹¤¬È¯À¸¤·¤Þ¤·¤¿¡£ <Îã1> ¨¢#include ¨¢#include ¨¢extern int memcmp(const void* x, const void* y, size_t n); ¨¢int test1(const char* x, const char* y, size_t n) { ¨¢ return memcmp(x, y, n); ¨¢} <Îã2> ¨¢#include ¨¢#include ¨¢extern int memcmp(const void* x, const void* y, size_t n); ¨¢int test1(const char* x, const char* y, size_t n) { ¨¢ return memcmp(x, y, n); ¨¢} <Îã1>¤Î¥½¡¼¥¹¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤È°Ê²¼¤Î·Ù¹ð¤¬½Ð¤Þ¤¹¡£ warning: conflicting types for built-in function `memcmp' °ìÊý¡¢<Îã2>¤Î¥½¡¼¥¹¤Ï¡¢·Ù¹ð̵¤¯¥³¥ó¥Ñ¥¤¥ë¤Ç¤­¤Þ¤¹¡£ <Îã1>¤È<Îã2>¤Î°ã¤¤¤Ï¡¢stdio.h¤Èstddef.h¤ò¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ë½çÈ֤ΰ㤤¤À¤±¤Ç¤¹¡£ ¤Ê¤¼¡¢<Îã1>¤Ç¤Ï·Ù¹ð¤¬½Ð¤Æ¡¢<Îã2>¤Ç¤Ï·Ù¹ð¤¬½Ð¤Ê¤¤¤Î¤Ç¤·¤ç¤¦¤«¡£ stdio.h¤Èstddef.h¤òÈæ³Ó¤·¤¿¤È¤³¤í¡¢size_t¤ÎÄêµÁ¤¬°ã¤Ã¤Æ¤¤¤ë»ö¤Ëµ¤ÉÕ¤­¤Þ¤·¤¿¡£ ¢¢\usr\PIECE\include\stdio.h ¨¢¡Á ¨¢#ifndef _SIZE_T ¨¢#define _SIZE_T ¨¢typedef unsigned long size_t; /* size of type */ ¨¢#endif ¨¢¡Á ¢¢\usr\PIECE\include\stddef.h ¨¢¡Á ¨¢#ifndef _SIZE_T ¨¢#define _SIZE_T ¨¢#ifdef __STDC__ ¨¢ typedef TYPEOF(sizeof(0)) size_t; ¨¢#else ¨¢ /* compiled with "-traditional" switch */ ¨¢ typedef unsigned size_t; ¨¢#endif ¨¢#endif ¨¢¡Á stdio.h¤Ï¡¢size_t¤òunsigned long·¿¤ÈÄêµÁ¤·¤Æ¤¤¤Þ¤¹¡£ stddef.h¤Ï¡¢__STDC__¤Ë¤è¤Ã¤Æ¾ì¹çʬ¤±¤µ¤ì¤Æ¤¤¤Þ¤¹¤±¤ì¤É¡¢¤É¤Á¤é¤Ë¤·¤Æ¤â·ë²ÌŪ¤Ë¡¢size_t¤¬unsigned·¿¤ËÄêµÁ¤µ¤ì¤Þ¤¹¡£ ¥Þ¥¯¥í_SIZE_T¤Ë¤è¤Ã¤Æ¡¢Àè¤Ë¥¤¥ó¥¯¥ë¡¼¥É¤µ¤ì¤¿Êý¤ÎÄêµÁ¤¬Í­¸ú¤Ë¤Ê¤ê¤Þ¤¹¡£ ½¾¤Ã¤Æ¡¢<Îã1>¤Ç¤Ïsize_t¤¬unsigned long·¿¡¢<Îã2>¤Ç¤Ïsize_t¤¬unsigned·¿¤Ë¤Ê¤Ã¤Æ¤¤¤¿¤ï¤±¤Ç¤¹¡£ size_t¤¬unsigned long·¿¤Î»þ¤Ë¡¢ warning: conflicting types for built-in function `memcmp' ¤Î·Ù¹ð¤¬½Ð¤ëÍýͳ¤Ï¡¢P/ECE³«È¯´Ä¶­¤ÎC¥³¥ó¥Ñ¥¤¥é¤Ç¤Ï¡¢memcmp()¤¬¥³¥ó¥Ñ¥¤¥é¤Î¥Ó¥ë¥È¥¤¥ó´Ø¿ô¤À¤«¤é¤Ç¤¹¡£ ¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤Çsize_t¤¬¤É¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¤«¤Ë´Ø·¸¤Ê¤¯¡¢C¥³¥ó¥Ñ¥¤¥é¤ÎEXE¥Õ¥¡¥¤¥ë¤ÎÃæ¤Ç¡¢ int memcmp(const void* x, const void* y, unsigned n); ¤È¤¤¤¦´Ø¿ô·Á¼°¤Ë·è¤áÂǤÁ¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£<Îã1>¤Ï¡¢¥½¡¼¥¹¤ÎÃæ¤Ç¡¢ int memcmp(const void* x, const void* y, unsigned long n); ¤ÈÀë¸À¤·¤¿¤³¤È¤Ë¤Ê¤Ã¤Æ¡¢¥³¥ó¥Ñ¥¤¥é¤¬·è¤áÂǤÁ¤Ë¤·¤Æ¤¤¤ë´Ø¿ô·Á¼°¤È°ã¤Ã¤Æ¤¤¤ë¡¢¤È¤¤¤¦¤³¤È¤Ç·Ù¹ð¤¬É½¼¨¤µ¤ì¤ë¤Î¤Ç¤·¤¿¡£ P/ECE¤Î¥×¥í¥°¥é¥à¤òºî¤Ã¤Æ¤¤¤Æ¡¢¾åµ­¤ÎÌäÂ꤬¸²ºß²½¤¹¤ë¤³¤È¤Ï¡¢¤¢¤Þ¤ê̵¤¤¤Ç¤¹¡£ ¤Ê¤¼¤Ê¤é¡¢P/ECE³«È¯´Ä¶­¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤Ç¡¢memcmp()¤Ï°Ê²¼¤Î¤è¤¦¤ËÀë¸À¤µ¤ì¤Æ¤¤¤ë¤«¤é¤Ç¤¹¡£ ¢¢\usr\PIECE\include\string.h ¨¢¡Á ¨¢int memcmp( /* char *, char *, int */ ) ; ¨¢¡Á °ú¿ô¤òÌÀ¼¨¤·¤Ê¤¤¡¢K&R·Á¼°¤ÇÀë¸À¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ ¤À¤«¤é¡¢size_t¤ÎÄêµÁ¤¬unsignedlong¤Ç¤¢¤Ã¤Æ¤â±Æ¶Á¤Ï̵¤¯¡¢·Ù¹ð¤Ïɽ¼¨¤µ¤ì¤Ê¤¤¤Î¤Ç¤¹¡£ ÌäÂ꤬¸²ºß²½¤¹¤ë¥±¡¼¥¹¤Î°ìÎã¤È¤·¤Æ¤Ï¡¢¥ª¡¼¥×¥ó¥½¡¼¥¹¤Î¥×¥í¥°¥é¥à¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë»þ¤Ê¤É¤Ç¤¹¡£ stddef.h¤è¤ê¤âÀè¤Ëstdio.h¤ò¥¤¥ó¥¯¥ë¡¼¥É¤·¤Æ¤¤¤Æ¡¢¤«¤Ä¡¢memcmp()¤òANSI·Á¼°¤ÇÌÀ¼¨Åª¤ËÀë¸À¤·¤Æ¤¤¤ë¤È¡¢·Ù¹ð¤¬½Ð¤Þ¤¹¡£ ¤Á¤Ê¤ß¤Ëmemcmp()¤À¤±¤Ç¤Ê¤¯¡¢memcpy()¤Ç¤âƱÍͤηٹ𤬽Фޤ¹¡£memcpy()¤âsize_t·¿¤Î°ú¿ô¤ò»ý¤Ä¡¢¥Ó¥ë¥È¥¤¥ó´Ø¿ô¤À¤«¤é¤Ç¤¹¡£ ÌäÂê¤Î¸¶°ø¤Ï¡¢P/ECE³«È¯´Ä¶­¤Îɸ½à¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë¤Î¡¢stddef.h°Ê³°¤¬size_t¤ÎÄêµÁ¤¬´Ö°ã¤Ã¤Æ¤¤¤ë»ö¤Ç¤¹¡£ ¤³¤ì¤Þ¤Ç¤ÎÀâÌÀ¤Ç¤Ï¡¢stdio.h¤òÌäÂê»ë¤·¤Æ¤¤¤Þ¤·¤¿¤¬¡¢stdio.h¤À¤±¤Ç¤Ê¤¯¡¢stdlib.h,string.h,time.h¤â´Ö°ã¤Ã¤Æ¤¤¤Þ¤¹¡£ º¬ËÜŪ¤Ë²ò·è¤¹¤ë¤Ë¤Ï¡¢¤³¤ì¤é¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤ò½ñ¤­´¹¤¨¤ë»ö¤Ê¤Î¤Ç¤¹¤¬¡¢¤½¤ì¤Ï¤¢¤Þ¤ê¤ä¤ê¤¿¤¯¤Ê¤¤¤Ç¤¹¡£ Âå¤ê¤ÎÂкö°Æ¤òÆó¤Ä¹Í¤¨¤Æ¤ß¤Þ¤·¤¿¡£ ¢¢Âкö°Æ£± ¾ï¤Ë¡¢stddef.h¤òºÇ½é¤Ë¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ë¡£(¤Ç¤â¡¢¥ª¡¼¥×¥ó¥½¡¼¥¹¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë»þ¤È¤«¤Ï¡¢Êѹ¹ÅÀ¤¬Â¿¤¯¤ÆÆñ¤·¤¤¤«¤â¡Ä) ¢¢Âкö°Æ£² ¥³¥ó¥Ñ¥¤¥é¥ª¥×¥·¥ç¥ó¤Ç¡Ö-Dsize_t=unsigned -D_SIZE_T¡×¤È»ØÄꤹ¤ë¡£(Makefile¤ÎÊѹ¹¤À¤±¤ÇºÑ¤à¤«¤é¡¢¤³¤Ã¤Á¤ÎÊý¤¬¤¤¤¤¤«¤Ê¡Ä) ¤È¤³¤í¤ÇÊ̤ÎÏäǤ¹¤¬¡¢P/ECE³«È¯´Ä¶­¤Îstring.h¤Ï¡¢size_t¤À¤±¤¸¤ã¤Ê¤¯¤ÆNULL¤ÎÄêµÁ¤â´Ö°ã¤Ã¤Æ¤¤¤Þ¤¹¡£ ËÜÍè¡¢C¸À¸ì¤Ç¤Ï¡Ö#define NULL ((void*)0) ¤Ê¤Î¤Ç¤¹¤¬¡¢¡Ö#define NULL 0¡×¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤·¤¿¡£ º£¤Þ¤Çµ¤ÉÕ¤«¤Ê¤«¤Ã¤¿¤Î¤Ç¤¹¤±¤ì¤É¡¢¤³¤ì¤â»×¤ï¤Ì¤È¤³¤í¤ÇÌäÂê¤Ë¤Ê¤ê¤½¤¦¤Êµ¤¤¬¤·¤Þ¤¹¡£ * Sat Jan 03 00:00:00 JST 2015 Naoyuki Sawa - USB¤Î¥»¥ì¥¯¥Æ¥£¥Ö¥µ¥¹¥Ú¥ó¥É¤ÇP/ECE¤¬¥Ï¥ó¥°¥¢¥Ã¥×¤¹¤ë ¡ÖP/ECE¤Î¥¢¥×¥ê¤¬¡¢2¥ß¥êÉôְʾå³ä¤ê¹þ¤ß¤ò¶Ø»ß¤¹¤ë¤È¡¢P/ECE¤¬¥Ï¥ó¥°¥¢¥Ã¥×¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡×¤È¤¤¤¦»ö¤Ëµ¤ÉÕ¤­¤Þ¤·¤¿¡£ USB¤Î¥»¥ì¥¯¥Æ¥£¥Ö¥µ¥¹¥Ú¥ó¥É¤Ë¤«¤«¤ï¤ëÌäÂê¤Ç¤¹¡£ ¢£¸¡¾Ú¤ò»Ï¤á¤ëÁ°¤Ë ¸¡¾Ú¤ò»Ï¤á¤ëÁ°¤Ë¡¢Ãí°ÕÅÀ¤¬¤¢¤ê¤Þ¤¹¡£ PC´Ä¶­¤Ë¤è¤Ã¤Æ¡¢¥»¥ì¥¯¥Æ¥£¥Ö¥µ¥¹¥Ú¥ó¥É¤¬¡¢Í­¸ú¤À¤Ã¤¿¤ê̵¸ú¤À¤Ã¤¿¤ê¤¹¤ë»ö¤Ç¤¹¡£ Î㤨¤Ð¡¢Ëͤ¬»È¤Ã¤Æ¤¤¤ë¡ÖIntel 965¡×¤Î¥Î¡¼¥ÈPC¤Ï¡¢¤É¤¦ÀßÄꤷ¤Æ¤â¥»¥ì¥¯¥Æ¥£¥Ö¥µ¥¹¥Ú¥ó¥É¤òÍ­¸ú¤Ë¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿¡£ Ê̤ΡÖIntel 915 ¥Á¥Ã¥×¥»¥Ã¥È¡×¤Î¥Ç¥¹¥¯¥È¥Ã¥×PC¤Ï¡¢¥Ç¥Õ¥©¥ë¥ÈÀßÄê¤Î¤Þ¤Þ¤Ç¡¢¥»¥ì¥¯¥Æ¥£¥Ö¥µ¥¹¥Ú¥ó¥É¤¬Í­¸ú¤Ç¤·¤¿¡£ Web¤ÇÄ´¤Ù¤Æ¤ß¤¿¤È¤³¤í¡¢Æ±»þ¤Ë»ÈÍѤ·¤Æ¤¤¤ë¾¤ÎUSBµ¡´ï¤ä¡¢¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð¤Î¼ïÎà¤Ë¤è¤Ã¤Æ±Æ¶Á¤µ¤ì¤ë¤½¤¦¤Ç¤¹¡£ ¥»¥ì¥¯¥Æ¥£¥Ö¥µ¥¹¥Ú¥ó¥É¤¬Ìµ¸ú¤ÊPC¤Ç¤Ï¡¢º£²ó¸¡¾Ú¤¹¤ëÌäÂ꤬ºÆ¸½¤·¤Þ¤»¤ó¡£ ¤¿¤À¤·¡¢¼Â¸³¤Î¤¿¤á¤Ë̵Íý¤ä¤êºÆ¸½¤¹¤ëÊýË¡¤Ï¤¢¤Ã¤Æ¡¢P/ECE¤ËÅÅÃÓ¤òÆþ¤ì¤ÆUSB¥±¡¼¥Ö¥ë¤òÈ´¤±¤ÐºÆ¸½¤Ç¤­¤Þ¤¹¡£ ¥»¥ì¥¯¥Æ¥£¥Ö¥µ¥¹¥Ú¥ó¥É¤È¤Ï¡¢¥Ç¥Ð¥¤¥¹Â¦(=P/ECE¦)¤«¤é¸«¤ë¤È¡¢¡ÖSOF¥Ñ¥±¥Ã¥È¡×¤È¤¤¤¦ÄÌ¿®¤¬°ìÄê»þ´ÖÆϤ«¤Ê¤¤»ö¤Ç¤¹¡£ ¥Ç¥Ð¥¤¥¹Â¦¤«¤é¸«¤ì¤Ð¡¢PC¤¬SOF¥Ñ¥±¥Ã¥È¤òÁ÷¤é¤Ê¤¤¤Î¤â¡¢USB¥±¡¼¥Ö¥ë¤òÈ´¤¤¤ÆÄÌ¿®¤¬ÅÓÀ䤨¤ë¤Î¤â¡¢Æ±¤¸»ö¤Ë¸«¤¨¤ë¤«¤é¤Ç¤¹¡£ ¤È¤¤¤¦¤ï¤±¤Ç¡¢¥»¥ì¥¯¥Æ¥£¥Ö¥µ¥¹¥Ú¥ó¥É¤¬Ìµ¸ú¤ÊPC¤Ç¼Â¸³¤¹¤ë¾ì¹ç¤Ï¡¢P/ECE¤ËÅÅÃÓ¤òÆþ¤ì¤ÆUSB¥±¡¼¥Ö¥ë¤òÈ´¤¤¤Æ²¼¤µ¤¤¡£ ¾°¡¢¥»¥ì¥¯¥Æ¥£¥Ö¥µ¥¹¥Ú¥ó¥É¤¬Í­¸ú¤â¤ÊPC¤Ç¤Ï¡¢run.bat¤ÇP/ECE¤Î¥¢¥×¥ê¤ò¼Â¹Ô¤·¤¿¸å¡¢USBÄÌ¿®¤¬È¯À¸¤·¤Ê¤±¤ì¤ÐÌó5Éøå¤Ë¼«Æ°Åª¤Ë¥µ¥¹¥Ú¥ó¥É¤·¤Þ¤¹¡£(¸«¤¿ÌܤǤϤ狼¤ê¤Þ¤»¤ó) ¢£ÌäÂê¤òºÆ¸½¤¹¤ë¥¢¥×¥ê http://www.piece-me.org/piece-lab/usbsus/usbsus1.c ¤Þ¤º¡¢ÌäÂê¤Î¸½¾Ý¤òºÆ¸½¤·¤Æ¤ß¤Þ¤¹¡£ usbsus1.srf¤ò¼Â¹Ô¤·¤Æ¤¯¤À¤µ¤¤¡£ ¥á¥¤¥ó¥ë¡¼¥×¤Î½èÍý¤Ï¡¢¿ô»ú¤òÁý¤ä¤·¤Ê¤¬¤é²èÌÌɽ¼¨¤¹¤ë¤À¤±¤Î½èÍý¤Ç¤¹¡£ A¥Ü¥¿¥ó¤ò²¡¤¹¤È¡¢³ä¤ê¹þ¤ß¤ò¶Ø»ß¤·¤Æ¡¢5ÉôÖÂÔ¤Á¤Þ¤¹¡£ 5ÉôַФ俤顢¤Þ¤¿¥á¥¤¥ó¥ë¡¼¥×¤Î½èÍý¤ËÌá¤ê¤Þ¤¹¡£ ³ä¤ê¹þ¤ß¶Ø»ß¤Ë¤Ê¤ë5Éô֤Τ¢¤¤¤À¤òÁÀ¤Ã¤Æ¡¢¥»¥ì¥¯¥Æ¥£¥Ö¥µ¥¹¥Ú¥ó¥É¤òȯÀ¸¤µ¤»¤Æ¤¯¤À¤µ¤¤¡£ ¥»¥ì¥¯¥Æ¥£¥Ö¥µ¥¹¥Ú¥ó¥É¤¬Í­¸ú¤â¤ÊPC¤Ê¤é¤Ð¡¢run.bat¤ÇP/ECE¤Î¥¢¥×¥ê¤ò¼Â¹Ô¤·¤¿¸å¡¢3É䰤餤ÂԤäÆA¥Ü¥¿¥ó¤ò²¡¤»¤Ð¡¢¤Á¤ç¤¦¤É³ä¤ê¹þ¤ß¶Ø»ßÃæ¤Ë¥»¥ì¥¯¥Æ¥£¥Ö¥µ¥¹¥Ú¥ó¥É¤¹¤ë¤È»×¤¤¤Þ¤¹¡£ ¥»¥ì¥¯¥Æ¥£¥Ö¥µ¥¹¥Ú¥ó¥É¤¬Ìµ¸ú¤â¤ÊPC¤Ê¤é¤Ð¡¢A¥Ü¥¿¥ó¤ò²¡¤·¤¿¸å¡¢5ÉðÊÆâ¤ËUSB¥±¡¼¥Ö¥ë¤òÈ´¤¤¤Æ¤¯¤À¤µ¤¤¡£ ¾åµ­¤ò¹Ô¤¦¤È¡¢5ÉôַФ俸å¥á¥¤¥ó¥ë¡¼¥×¤Î½èÍý¤ËÌá¤é¤º¤Ë¡¢P/ECE¤¬¥Ï¥ó¥°¥¢¥Ã¥×¤·¤Þ¤¹¡£ ¥Ï¥ó¥°¥¢¥Ã¥×¤·¤¿¸å¤Ë¡¢Àµ¾ïÉüµ¢¤µ¤»¤Æ¥á¥¤¥ó¥ë¡¼¥×¤òºÆ³«¤¹¤ëÊýË¡¤Ï¡¢°ì±þ¡¢Í­¤ê¤Þ¤¹¡£ ¥»¥ì¥¯¥Æ¥£¥Ö¥µ¥¹¥Ú¥ó¥É¤¬Í­¸ú¤â¤ÊPC¤Ê¤é¤Ð¡¢²¿¤«USBÄÌ¿®¤òȯÀ¸¤µ¤»¤Æ¡¢¥»¥ì¥¯¥Æ¥£¥Ö¥µ¥¹¥Ú¥ó¥É¤ò²ò½ü¤¹¤ì¤ÐÎɤ¤¤Ç¤¹¡£(Î㤨¤Ð¡Öisd.exe =¡×¤È¥¿¥¤¥×¤·¤Æ¥Õ¥¡¥¤¥ë°ìÍ÷¤ò¼èÆÀ¤¹¤ë¡¢¤Ê¤É) ¥»¥ì¥¯¥Æ¥£¥Ö¥µ¥¹¥Ú¥ó¥É¤¬Ìµ¸ú¤â¤ÊPC¤Ê¤é¤Ð¡¢USB¥±¡¼¥Ö¥ë¤ò¤µ¤»¤Ð¡¢¼«Æ°Åª¤ËUSBÄÌ¿®¤¬È¯À¸¤·¤ÆÀµ¾ïÉüµ¢¤·¡¢¥á¥¤¥ó¥ë¡¼¥×¤¬ºÆ³«¤·¤Þ¤¹¡£ ¤È¤Ï¸À¤¨¡¢¥¢¥×¥ê¤¬¥Ï¥ó¥°¥¢¥Ã¥×¤·¤¿»þ¤Ë¥æ¡¼¥¶¡¼¤¬¤³¤ÎÌäÂ꤬¸¶°ø¤À¤Èµ¤ÉÕ¤¤¤Æ¡¢¾åµ­¤ÎÁàºî¤ò¹Ô¤Ã¤Æ¤â¤é¤¦»ö¤Ï¸½¼ÂŪ¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£ ¢£¸¶°ø¤Î¿ä¬ ³ä¤ê¹þ¤ß¶Ø»ßÃæ¤Ë¥»¥ì¥¯¥Æ¥£¥Ö¥µ¥¹¥Ú¥ó¥É¤¬È¯À¸¤¹¤ë¤È¥Ï¥ó¥°¥¢¥Ã¥×¤¹¤ëÌäÂê¤Î¡¢¸¶°ø¤òÄ´ºº¤·¤Þ¤·¤¿¡£ ¤¤¤í¤¤¤í»î¤·¤¿¤È¤³¤í¡¢USB³ä¤ê¹þ¤ß¤¬³Ý¤«¤ê¤ÃÊü¤·¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤³¤È¤¬¤ï¤«¤ê¤Þ¤·¤¿¡£ USB³ä¤ê¹þ¤ß¤¬³Ý¤«¤ê¤ÃÊü¤·¤Ê¤Î¤Ç¡¢¥á¥¤¥ó¥ë¡¼¥×¤¬²ó¤é¤Ê¤¯¤Ê¤Ã¤Æ¡¢¥Ï¥ó¥°¥¢¥Ã¥×¤·¤Æ¤¤¤ë¤è¤¦¤Ë¸«¤¨¤ë¤Î¤Ç¤¹¡£ ¶ñÂÎŪ¤Ë¤Ï¡¢USB³ä¤ê¹þ¤ß¥ë¡¼¥Á¥ó¤¬¸Æ¤Ó½Ð¤µ¤ì¤Æ¡¢USB³ä¤ê¹þ¤ß¥ë¡¼¥Á¥ó¤¬USB³ä¤ê¹þ¤ß¤ò²ò½ü¤¹¤ëÁàºî¤ò¤·¤Æ¥ê¥¿¡¼¥ó¤·¤¿¤Ë¤â¤«¤«¤ï¤é¤º¡¢ ¼ÂºÝ¤Ë¤ÏUSB³ä¤ê¹þ¤ß¤¬²ò½ü¤µ¤ì¤Æ¤ª¤é¤º¡¢¤Þ¤¿USB³ä¤ê¹þ¤ß¥ë¡¼¥Á¥ó¤¬¸Æ¤Ó½Ð¤µ¤ì¤ë¡¦¡¦¡¦¤È¤¤¤¦·«¤êÊÖ¤·¤Ç¤¹¡£ USB³ä¤ê¹þ¤ß¥ë¡¼¥Á¥ó¤¬USB³ä¤ê¹þ¤ß¤ò²ò½ü¤¹¤ëÁàºî¤ò¤·¤Æ¤¤¤ë¤Î¤Ë¡¢¤Ê¤¼¡¢USB³ä¤ê¹þ¤ß¤¬²ò½ü¤µ¤ì¤Ê¤¤¤Î¤«¤ò¡¢¹Í¤¨¤Æ¤ß¤Þ¤·¤¿¡£ Ä̾ï¤ÎUSBÄÌ¿®³ä¤ê¹þ¤ß¤Ç¤ÏÌäÂ꤬ȯÀ¸¤»¤º¡¢'SUSPEND CHANGE'³ä¤ê¹þ¤ß»þ¤Î¤ßÌäÂ꤬ȯÀ¸¤¹¤ë¤³¤È¤«¤é¿ä¬¤·¤Æ¡¢ ¡ØUSB¥³¥ó¥È¥í¡¼¥é(PDIUSBD12)¤¬¡¢¥µ¥¹¥Ú¥ó¥É¾õÂ֤˴°Á´¤Ë°Ü¹Ô¤·¤Æ¤·¤Þ¤¦¤È¡¢CPU(S1C33209)¤«¤é¤Î°ìÀÚ¤ÎÁàºî¤ò¼õ¤±ÉÕ¤±¤Ê¤¯¤Ê¤ë¤Î¤Ç¤Ï¤Ê¤¤¤«¡Ù¤È¿ä¬¤·¤Þ¤·¤¿¡£ ¶ñÂÎŪ¤Ë¤Ï¡¢°Ê²¼¤Î¤è¤¦¤Êή¤ì¤Ç¤¹¡£ USB¥³¥ó¥È¥í¡¼¥é¤¬¥µ¥¹¥Ú¥ó¥É¤Ø°Ü¹Ô¤¹¤ëÍ×°ø(=PC¤«¤é¤Î¥»¥ì¥¯¥Æ¥£¥Ö¥µ¥¹¥Ú¥ó¥É,Ëô¤Ï,USB¥±¡¼¥Ö¥ë¤òÈ´¤¤¤¿)¤¬È¯À¸¤·¤Æ¡¢USB¥³¥ó¥È¡¼¥é¤¬¥µ¥¹¥Ú¥ó¥É¤Ø°Ü¹Ô¤ò³«»Ï¤·¤Þ¤¹¡£ ¤Þ¤º¡¢¥µ¥¹¥Ú¥ó¥É¾õÂÖ¤¬ÊѤï¤Ã¤¿¤³¤È¤ò¡¢'SUSPEND CHANGE'³ä¤ê¹þ¤ß¤Ë¤è¤Ã¤Æ¡¢CPU¤ØÃΤ餻¤Þ¤¹¡£(USB SUSPEND¿®¹æ¢ÍHi¡¢USB INT-N¿®¹æ¢ÍLo) ¤½¤Î¸å¡¢°ìÄê»þ´Ö¸å¤Ë¡¢USB¥³¥ó¥È¥í¡¼¥é¤Ï¼«¿È¤Î¥¯¥í¥Ã¥¯¤ò»ß¤á¤Æ¡¢´°Á´¤Ë¥µ¥¹¥Ú¥ó¥É¾õÂ֤ˤʤê¤Þ¤¹¡£ USB¥³¥ó¥È¥í¡¼¥é¤¬´°Á´¤Ë¥µ¥¹¥Ú¥ó¥É¾õÂ֤ˤʤëÁ°¤Ë¡¢CPU¤¬USB¥³¥ó¥È¥í¡¼¥é¤ËÂФ·¤Æ¡¢³ä¤ê¹þ¤ß²ò½üÁàºî¤ò¹Ô¤¨¤Ð¡¢USB INT-N¿®¹æ¢ÍHi¤Ë¤Ê¤ë¤Î¤Ç¤¹¤¬¡¢ ¤â¤·CPU¤Î½èÍý¤¬ÃÙ¤ì¤Æ¡¢³ä¤ê¹þ¤ß²ò½üÁàºî¤ò¹Ô¤¦Á°¤ËUSB¥³¥ó¥È¥í¡¼¥é¤¬´°Á´¤Ë¥µ¥¹¥Ú¥ó¥É¤·¤Æ¤·¤Þ¤¦¤È¡¢¤â¤¦¡¢USB INT-N¿®¹æ¤òHi¤Ë¤¹¤ëÊýË¡¤ÏÍ­¤ê¤Þ¤»¤ó¡£ USB INT-N¿®¹æ=Lo¤Î¤Þ¤Þ¤Ë¤Ê¤ê¡¢USB³ä¤ê¹þ¤ß¤¬¤«¤«¤ê¤Ã¤Ñ¤Ê¤·¤Ë¤Ê¤ê¤Þ¤¹¡£ USBÄÌ¿®¤ò¹Ô¤Ã¤¿¤êUSB¥±¡¼¥Ö¥ë¤ò¤µ¤·¤¿¤ê¤·¤Æ¡¢USB¥³¥ó¥È¥í¡¼¥é¤¬¥µ¥¹¥Ú¥ó¥É¤«¤éÉüµ¢¤¹¤ì¤Ð¡¢USB¥³¥ó¥È¥í¡¼¥é¤¬³ä¤ê¹þ¤ß²ò½üÁàºî¤ò¼õ¤±ÉÕ¤±¤ë¤è¤¦¤Ë¤Ê¤ê¡¢Àµ¾ïÉüµ¢¤·¤Þ¤¹¡£ USB¥³¥ó¥È¥í¡¼¥é¤¬¥µ¥¹¥Ú¥ó¥É¤·¤¿¸å¤Ë¡¢¥µ¥¹¥Ú¥ó¥É¤ò²ò½ü¤¹¤ëÊýË¡¤Ï¡¢PC¦¤«¤é¤ÎUSBÄÌ¿®¤·¤«Ìµ¤¯¡¢CPU¦¤«¤é¥µ¥¹¥Ú¥ó¥É¤ò²ò½ü¤¹¤ë¼êÃʤÏ̵¤¤¤ß¤¿¤¤¤Ç¤¹¡£ ¢£¸¶°ø¤ò¸¡¾Ú¤¹¤ë¥¢¥×¥ê http://www.piece-me.org/piece-lab/usbsus/usbsus2.c ¾åµ­¤Î¿ä¬¤¬Àµ¤·¤¤¤«¤É¤¦¤«¤ò¡¢»î¤·¤Æ¤ß¤Þ¤¹¡£ usbsus2.srf¤ò¼Â¹Ô¤·¤Æ¤¯¤À¤µ¤¤¡£ usbsus1.srf¤ÈƱ¤¸¼ê½ç¤ÇÁàºî¤·¤Æ¤ß¤ë¤È¡¢º£Å٤ϡ¢¥Ï¥ó¥°¥¢¥Ã¥×¤»¤º¤Ë¥á¥¤¥ó¥ë¡¼¥×¤ËÌá¤ê¤Þ¤¹¡£ usbsus2.srf¤¬¡¢usbsus1.srf¤È°Û¤Ê¤ëÅÀ¤Ï¡¢³ä¤ê¹þ¤ß¤ò¶Ø»ß¤·¤Æ5ÉôÖÂԤĥ롼¥×¤ÎÃæ¤Ç¡¢¾ï¤ËUSB SUSPEND¿®¹æ¤ÎÊѲ½¤ò´Æ»ë¤·¤Æ¤¤¤ë¤³¤È¤Ç¤¹¡£ USB SUSPEND¿®¹æ¤¬¡¢Lo¢ÍHi¤ËÊѲ½¤·¤¿¤é¡¢USB¥³¥ó¥È¥í¡¼¥é¤Î³ä¤ê¹þ¤ß¤ò²ò½ü¤¹¤ëÁàºî¤ò¹Ô¤¤¤Þ¤¹¡£ ³ä¤ê¹þ¤ß¶Ø»ß¤Ê¤Î¤ÇUSB³ä¤ê¹þ¤ß¤¬¤«¤«¤é¤Ê¤¤Âå¤ê¤Ë¡¢¥µ¥¹¥Ú¥ó¥É¤·¤¿¤«¤É¤¦¤«¤ò¥Ý¡¼¥ê¥ó¥°¤·¤Æ¡¢USB¥³¥ó¥È¥í¡¼¥é¤Î³ä¤ê¹þ¤ß¤ò²ò½ü¤·¤Æ¤¤¤ë¤ï¤±¤Ç¤¹¡£ usbsus1.srf¤Èusbsus2.srf¤ÎµóÆ°¤«¤é¿ä¬¤¹¤ë¤Ë¡¢¤É¤¦¤ä¤é¡¢¿ä¬¤ÏÀµ¤·¤¤¤è¤¦¤Ç¤¹¡£ ¢£²¿¥ß¥êÉðÊÆâ¤Ë³ä¤ê¹þ¤ß²ò½üÁàºî¤ò¹Ô¤¦É¬Íפ¬¤¢¤ë¤« http://www.piece-me.org/piece-lab/usbsus/usbsus3.c Á°½Ò¤ÎÄ̤ꡢUSB¥³¥ó¥È¥í¡¼¥é¤¬´°Á´¤Ë¥µ¥¹¥Ú¥ó¥É¾õÂ֤ˤʤëÁ°¤Ë¡¢CPU¤¬USB¥³¥ó¥È¥í¡¼¥é¤ËÂФ·¤Æ¡¢³ä¤ê¹þ¤ß²ò½üÁàºî¤ò¹Ô¤¦É¬Íפ¬¤¢¤ê¤Þ¤¹¡£ ¤½¤ì¤Ç¤Ï¡¢USB¥³¥ó¥È¥í¡¼¥é¤¬¥µ¥¹¥Ú¥ó¥É¤Ø°Ü¹Ô¤¹¤ëÍ×°ø¤¬È¯À¸¤·¤¿¸å¡¢USB¥³¥ó¥È¥í¡¼¥é¤¬´°Á´¤Ë¥µ¥¹¥Ú¥ó¥É¾õÂ֤ˤʤë¤Þ¤Ç¡¢¤É¤ì¤°¤é¤¤»þ´Ö¤Î;͵¤¬¤¢¤ë¤Î¤Ç¤·¤ç¤¦¤«¡£ usbsus3.srf¤Ï¡¢¤½¤ì¤ò¸¡¾Ú¤¹¤ë¥¢¥×¥ê¤Ç¤¹¡£ usbsus3.srf¤¬¡¢usbsus2.srf¤È°Û¤Ê¤ëÅÀ¤Ï¡¢USB SUSPEND¿®¹æ¤ÎÊѲ½¤ò¸¡½Ð¤·¤¿¸å¡¢¤ï¤¶¤È¾¯¤·»þ´Ö¤òÂԤäƤ«¤é¡¢³ä¤ê¹þ¤ß²ò½üÁàºî¤ò¹Ô¤¦¤è¤¦¤Ë¤·¤¿»ö¤Ç¤¹¡£ ÂÔ¤Á»þ´Ö¤ò¤¤¤í¤¤¤íÊѤ¨¤Æ»î¤·¤¿¤È¤³¤í¡¢Ìó2¥ß¥êÉðÊÆâ¤Ê¤é¤Ð¥Ï¥ó¥°¥¢¥Ã¥×¤»¤º¡¢Ìó2¥ß¥êÉðʾåÂԤĤȥϥ󥰥¢¥Ã¥×¤·¤Þ¤·¤¿¡£ ¤É¤¦¤ä¤é¡¢USB¥³¥ó¥È¥í¡¼¥é¤¬¥µ¥¹¥Ú¥ó¥É¤Ø°Ü¹Ô¤¹¤ëÍ×°ø¤¬È¯À¸¤·¤¿¸å¡¢USB¥³¥ó¥È¥í¡¼¥é¤¬´°Á´¤Ë¥µ¥¹¥Ú¥ó¥É¾õÂ֤ˤʤë¤Þ¤Ç¤Î»þ´Ö¤Ï¡¢Ìó2¥ß¥êÉäΤ褦¤Ç¤¹¡£ ¥»¥ì¥¯¥Æ¥£¥Ö¥µ¥¹¥Ú¥ó¥É¤¬Ç¤°Õ¤Î¥¿¥¤¥ß¥ó¥°¤ÇȯÀ¸¤¹¤ë¤³¤È¤ò¹Íθ¤¹¤ë¤È¡¢¾ï¤Ë¡¢USB³ä¤ê¹þ¤ß±þÅú»þ´Ö¤¬2¥ß¥êÉðÊÆâ¤Ç¤Ê¤±¤ì¤Ð¤¤¤±¤Ê¤¤¤È¸À¤¦¤³¤È¤Ç¤¹¡£ Íפ¹¤ë¤Ë¡¢³ä¤ê¹þ¤ß¶Ø»ß¤Ë¤·¤Æ¹Ô¤¦½èÍý¤¬¡¢¤É¤ì¤â¡¢2¥ß¥êÉäòĶ¤¨¤Æ¤Ï¤¤¤±¤Ê¤¤¤È¸À¤¦¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£ P/ECE¤Î°ìÈÌŪ¤Ê¥¢¥×¥ê¤Ë¤È¤Ã¤Æ¡¢¤³¤Î¾ò·ï¤Ï¤«¤Ê¤ê¸·¤·¤¤¤Ç¤¹¡£(ËܳÊŪ¤Ê¥ê¥¢¥ë¥¿¥¤¥àOS¤Ê¤é¤ÐÏäÏÊ̤Ǥ·¤ç¤¦¤±¤ì¤É¡Ä) ´û¸¤Î¡¢³ä¤ê¹þ¤ß¶Ø»ß¤Ë¤·¤Æ¹Ô¤Ã¤Æ¤¤¤ë½èÍý¤ò¡¢Á´¤Æ¡¢2¥ß¥êÉðÊÆâ¤Ë½¤Àµ¤¹¤ë¤È¤Ê¤ë¤È¡¢¤«¤Ê¤ê¤ÎÊѹ¹¤òÍפ·¤Þ¤¹¡£ ¢£¥¤¥ó¥Æ¥ê¥¸¥§¥ó¥ÈDMA¤ò»È¤Ã¤Æ²ò·è¤¹¤ë ¤½¤³¤Ç¡¢Ê̤ÎÊýË¡¤ò¹Í¤¨¤Æ¤ß¤Þ¤·¤¿¡£ ³ä¤ê¹þ¤ß²ò½üÁàºî¤È¤·¤ÆɬÍפÊÍ×·ï¤Ï¡¢°Ê²¼¤Î¤È¤ª¤ê¤Ç¤¹¡£ Í×·ï1. USB SUSPEND¿®¹æ¤¬Lo¢ÍHi¤ËÊѲ½¤·¤¿¤é¡¢2¥ß¥êÉðÊÆâ¤Ë°Ê²¼¤ÎÁàºî¤ò¹Ô¤¦¤³¤È¡£ Í×·ï2. USB¥³¥ó¥È¥í¡¼¥é¤ËÂФ·¤Æ¡¢½ñ¤­¹þ¤ß¤ÈÆɤ߽Ф·¤ò¹Ô¤¦¤³¤È¡£(PDIUSBD12¤Î'Read Interrupt Register'¤ËÁêÅö) Í×·ï3. CPU¤¬³ä¤ê¹þ¤ß¶Ø»ß¾õÂ֤Ǥ¢¤Ã¤Æ¤â¡¢½èÍý¤ò¹Ô¤¦¤³¤È¡£ ¤Ô¤Ã¤¿¤ê¤Îµ¡Ç½¤¬¤¢¤ê¤Þ¤¹¡£¥¤¥ó¥Æ¥ê¥¸¥§¥ó¥ÈDMA(IDMA)¤Ç¤¹¡£ Í×·ï1. ¢Í USB SUSPEND¿®¹æ(K50ü»Ò)¤ò¥È¥ê¥¬¤È¤·¤Æ¡¢IDMA Ch.1¤òµ¯Æ°¤¹¤ë¤è¤¦¤ËÀßÄê¤Ç¤­¤Þ¤¹¡£ Í×·ï2. ¢Í IDMA¤Î¥ê¥ó¥¯µ¡Ç½¤ò»È¤¦¤È¡¢½ñ¤­¹þ¤ß¤ÎDMA½èÍý¤Ë³¤¤¤Æ¡¢Æɤ߽Ф·¤ÎDMA½èÍý¤ò¹Ô¤¦¤è¤¦¤ËÀßÄê¤Ç¤­¤Þ¤¹¡£ Í×·ï3. ¢Í IDMA¤Ï¡¢CPU¤Î³ä¤ê¹þ¤ß¶Ø»ß¾õÂ֤Ȥϴط¸¤Ê¤¯µ¯Æ°¤¹¤ë¤Î¤Ç¡¢CPU¤¬³ä¤ê¹þ¤ß¶Ø»ß¤Ç¤â½èÍý¤ò¹Ô¤¨¤Þ¤¹¡£ Á´¤Æ¤ÎÍ×·ï¤òËþ¤¿¤·¤Æ¤¤¤Þ¤¹¡£ ¢£IDMA¤ò»È¤Ã¤ÆÌäÂê¤ò²ò·è¤·¤¿¥¢¥×¥ê¡õ·ëÏÀ http://www.piece-me.org/piece-lab/usbsus/usbsus4.c usbsus4.srf¤ò¼Â¹Ô¤·¤Æ¤¯¤À¤µ¤¤¡£ ÁàºîÊýË¡¤ä¡¢Æ°ºî·ë²Ì¤Ï¡¢usbsus2.srf¤ÈƱ¤¸¤Ç¤¹¡£ usbsus4.srf¤¬¡¢usbsus2.srf¤È°Û¤Ê¤ëÅÀ¤Ï¡¢USB SUSPEND¿®¹æ¤ÎÊѲ½¤ò´Æ»ë¤·¤¿¤ê³ä¤ê¹þ¤ß²ò½üÁàºî¤ò¹Ô¤¦¤Î¤¬¡¢CPU¤Ç¤Ï¤Ê¤¯¡¢IDMA¤Ç¤¢¤ëÅÀ¤Ç¤¹¡£ usbsus2.srf¤Ç¤Ï¡¢³ä¤ê¹þ¤ß¤ò¶Ø»ß¤·¤Æ5ÉôÖÂԤĥ롼¥×¤ÎÃæ¤Ç¡¢CPU¤¬USB SUSPEND¿®¹æ¤ò´Æ»ë¤·¤Æ¤¤¤Þ¤·¤¿¤¬¡¢usbsus4.srf¤Ç¤Ï¡¢CPU¤Ï²¿¤â¤·¤Þ¤»¤ó¡£ CPU¤ÎÆ°ºî¤È¤·¤Æ¤Ï¡¢°ìÈֺǽé¤Îusbsus1.srf¤ÈƱ¤¸¤Ç¤¹¡£ ¤½¤ÎÂå¤ê¤Ë¡¢¥¢¥×¥ê¤ÎºÇ½é¤Ç¡¢IDMA¤¬Å¬ÀÚ¤ËÆ°ºî¤¹¤ë¤è¤¦¤Ë¡¢IDMA¤Î½é´ü²½½èÍý¤ò¹Ô¤Ã¤Æ¤¤¤Þ¤¹¡£ usbsus4.srf¤ò·«¤êÊÖ¤·Áàºî¤·¤Æ¤ß¤Æ¡¢ÌäÂê̵¤¯¡¢¥Ï¥ó¥°¥¢¥Ã¥×¤»¤º¤ËÆ°ºî¤¹¤ë¤³¤È¤¬³Îǧ¤Ç¤­¤Þ¤·¤¿¡£ ·ëÏÀ¤È¤·¤Æ¡¢¥»¥ì¥¯¥Æ¥£¥Ö¥µ¥¹¥Ú¥ó¥É¤Ëµ¯°ø¤¹¤ë¥Ï¥ó¥°¥¢¥Ã¥×¤ÎÌäÂê¤Ï¡¢IDMA¤ò»È¤Ã¤Æ²ò·è¤Ç¤­¤ë¤³¤È¤¬È½¤ê¤Þ¤·¤¿¡£ ¢£Êä­¡§¥µ¥¹¥Ú¥ó¥É°Ê³°¤ÎUSB³ä¤ê¹þ¤ßȯÀ¸»þ¤ËIDMA¤¬°­±Æ¶Á¤òÀ¸¤¸¤Ê¤¤¤³¤È¤Î³Îǧ ¤³¤ì¤Þ¤Ç¡¢¥µ¥¹¥Ú¥ó¥É»þ¤ÎUSB³ä¤ê¹þ¤ß¤Ë¤Ä¤¤¤Æ¹Í¤¨¤Æ¤­¤Þ¤·¤¿¤¬¡¢Ä̾ï¤ÎUSBÄÌ¿®¤Ë¤ª¤¤¤Æ¤â¡¢USB³ä¤ê¹þ¤ß¤ÏȯÀ¸¤·¤Þ¤¹¡£ IDMA¤¬¡¢´Ö°ã¤Ã¤Æ¡¢Ä̾ï¤ÎUSBÄÌ¿®¤Î³ä¤ê¹þ¤ß¤ò¥¯¥ê¥¢¤·¤Æ¤·¤Þ¤¤¡¢ËÜÍèCPU¤¬½èÍý¤¹¤Ù¤­USB³ä¤ê¹þ¤ß¤¬·çÍ¤Æ¤·¤Þ¤¦¶²¤ì¤Ï̵¤¤¤Ç¤·¤ç¤¦¤«¡£ ´°Á´¤Ë¤Ï¸¡¾Ú¤Ç¤­¤Æ¤¤¤Ê¤¤¤Î¤Ç¤¹¤±¤ì¤É¡¢¤³¤ì¤Þ¤Ç»î¤·¤Æ¤ß¤¿¸Â¤ê¤ÏÌäÂ꤬½Ð¤Æ¤¤¤Ê¤¤¤³¤È¤È¡¢°Ê²¼2¤Ä¤ÎÍýͳ¤«¤é¡¢Â¿Ê¬Âç¾æÉפÀ¤È»×¤¤¤Þ¤¹¡£ Íýͳ1¡£Ä̾ï¤ÎUSBÄÌ¿®¤È¶á¤¤¥¿¥¤¥ß¥ó¥°¤Ç¤Ï¡¢¥»¥ì¥¯¥Æ¥£¥Ö¥µ¥¹¥Ú¥ó¥É¤ÏȯÀ¸¤·¤Þ¤»¤ó¡£ PC¤ÎÀßÄ꼡Âè¤Ç¤Ï¤¢¤ê¤Þ¤¹¤¬¡¢¤À¤¤¤¿¤¤¡¢Ä̾ï¤ÎUSBÄÌ¿®¤¬ÅÓÀÚ¤ì¤Æ¤«¤é5Éø夰¤é¤¤¤Ë¥»¥ì¥¯¥Æ¥£¥Ö¥µ¥¹¥Ú¥ó¥É¤¬È¯À¸¤·¤Þ¤¹¡£ ¤À¤«¤é¡¢Ä̾ï¤ÎUSBÄÌ¿®¤Î³ä¤ê¹þ¤ß¤È¡¢¥»¥ì¥¯¥Æ¥£¥Ö¥µ¥¹¥Ú¥ó¥É¤Î³ä¤ê¹þ¤ß¤¬Èï¤ë¤³¤È¤Ï¡¢¤Þ¤ºÌµ¤¤¤Ç¤¹¡£ Íýͳ2¡£Ëü°ì¡¢Î¾¼Ô¤¬Èï¤Ã¤¿¤È¤·¤Æ¤â¡¢IDMA¤¬¹Ô¤¦'Read Interrupt Register'¤ÎÁàºî¤Ç¤Ï¡¢Ä̾ï¤ÎUSBÄÌ¿®¤Î³ä¤ê¹þ¤ß¤Ï¥¯¥ê¥¢¤µ¤ì¤Þ¤»¤ó¡£ Ä̾ï¤ÎUSBÄÌ¿®¤Î³ä¤ê¹þ¤ß¤ò¥¯¥ê¥¢¤¹¤ëÁàºî¤Ï¡¢'Read Interrupt Register'¤Ç¤Ï¤Ê¤¯¡¢'Read Endpoint Status'¤À¤«¤é¤Ç¤¹¡£ IDMA¤¬'Read Interrupt Register'¤ÎÁàºî¤ò¹Ô¤Ã¤Æ¤â¡¢Ä̾ï¤ÎUSBÄÌ¿®¤Î³ä¤ê¹þ¤ßÍ×°ø¤Ï¥¯¥ê¥¢¤µ¤ì¤º¡¢CPU¤ËÂФ¹¤ë³ä¤ê¹þ¤ßÍ×µá¤Ï»Ä¤ë¤«¤é¤Ç¤¹¡£ ¤È¤¤¤¦¤ï¤±¤Ç¡¢¤Þ¤À¸¡¾Ú¤¬½¼Ê¬¤Ç¤Ï¤Ê¤¤¤Î¤Ç¤¹¤¬¡¢Â¿Ê¬Âç¾æÉפÀ¤È»×¤¤¤Þ¤¹¡£ ¢£ºÇ¸å¤Ë IDMA¤Ë¤Ä¤¤¤Æ¤Ï¡¢°ÊÁ°¤Ë¡ÖP/ECE¸¦µæ¼¼¡ÁS1C33ʬ¼¼ 2002ǯ1·î22Æü ¥¤¥ó¥Æ¥ê¥¸¥§¥ó¥ÈDMA¥³¥ó¥È¥í¡¼¥é¡×¤Ç¡¢»È¤¤Êý¤òÄ´¤Ù¤¿¤³¤È¤¬Í­¤ê¤Þ¤·¤¿¡£ http://www.piece-me.org/piece-lab/s1c33/20020122.html ¤·¤«¤·¤½¤Î¸å¡¢¤Ê¤«¤Ê¤«¡¢IDMA¤òÍ­¸ú¤ËÍøÍѤǤ­¤ë¾ìÌ̤¬Ìµ¤¯¡¢¤³¤ì¤Þ¤Ç¥¢¥×¥ê¤ÇIDMA¤òÍøÍѤ·¤¿¤³¤È¤¬¤¢¤ê¤Þ¤»¤ó¤Ç¤·¤¿¡£ P/ECE¥«¡¼¥Í¥ë¤â¡¢IDMA¤òÍøÍѤ·¤Æ¤ª¤é¤º¡¢P/ECE¤Ë¤ª¤¤¤Æ¤Ï¡¢IDMA¤ÏÁ´¤¯¤Î̵Â̵¡Ç½¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤Ã¤Æ¤¤¤Þ¤·¤¿¡£ º£²ó¡¢IDMA¤ÎÍ­¸ú¤ÊÍøÍÑÊýË¡¤¬¸«¤Ä¤«¤Ã¤Æ¡¢¤·¤«¤â¡¢IDMA¤Î¥ê¥ó¥¯µ¡Ç½¤â»È¤¦¤³¤È¤¬¤Ç¤­¤Æ¡¢Îɤ«¤Ã¤¿¤Ç¤¹¡£ º£²óÄ´ºº¤·¤¿ÌäÂê¤ÈÂкö¤Î¡¢¥¿¥¤¥ß¥ó¥°¿Þ¤òºîÀ®¤·¤Þ¤·¤¿¡£¥À¥¦¥ó¥í¡¼¥É¤Ï¤³¤Á¤é¤Ç¤¹: xls·Á¼°: http://www.piece-me.org/piece-lab/usbsus/usbsus-timing.xls png·Á¼°: http://www.piece-me.org/piece-lab/usbsus/usbsus-timing.png º£²ó»ÈÍѤ·¤¿¸¡¾Ú¥¢¥×¥ê°ì¼°¤Î¡¢¥À¥¦¥ó¥í¡¼¥É¤Ï¤³¤Á¤é¤Ç¤¹: http://www.piece-me.org/piece-lab/usbsus/usbsus-src.zip * Tue Dec 30 17:15:42 JST 2014 Naoyuki Sawa - USB¥³¥ó¥È¥í¡¼¥é(PDIUSBD12)¤Î¾ÊÅÅÎÏÀßÄê P/ECE¥«¡¼¥Í¥ë1.20¤Ï¡¢USB¥³¥ó¥È¥í¡¼¥é(PDIUSBD12)¤ÎÀßÄê¤È¤·¤Æ¡¢D12_NOLAZYCLOCK¤ÈD12_CLOCKRUNNING¤Î¤É¤Á¤é¤Î¥Õ¥é¥°¤â»ØÄꤷ¤Æ¤¤¤Þ¤»¤ó¡£ D12_NOLAZYCLOCK¤ÈD12_CLOCKRUNNING¤Î¤É¤Á¤é¤Î¥Õ¥é¥°¤â»ØÄꤷ¤Æ¤¤¤Ê¤¤Íýͳ¤Ï¡¢°Ê²¼¤Î¤è¤¦¤Ë½ñ¤«¤ì¤Æ¤¤¤Þ¤¹¡£ »²¾È»ñÎÁ: http://aquaplus.jp/piece/dl/up118to120.txt ¡äD12_NOLAZYCLOCK¤ÈD12_CLOCKRUNNING¤Ï¾ï¤ËÉÔÍפȻפï¤ì¤Þ¤¹¡£ ¡äPDIUSBD12¤Î¥Þ¥Ë¥å¥¢¥ë¤Ç¤Ï¾¯¡¹ÀâÌÀÉÔ­¤Ê¤«¤ó¤¸¤Ç¤¹¤¬¡¢ ¡ä ¡äD12_NOLAZYCLOCK¡§ ¡äUSB¥±¡¼¥Ö¥ë¤Ï¤Ä¤Ê¤¬¤Ã¤Æ¤¤¤ë¤¬¡¢Í­¸ú¤ÊÄÌ¿®¤¬¹Ô¤ï¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¡¢³°Éô½ÐÎÏ¥¯¥í¥Ã¥¯Â®ÅÙ¤ò²¼¤²¤ë¡£ ¡äUSB¥³¥ó¥È¥í¡¼¥é¤«¤é¥¯¥í¥Ã¥¯¶¡µë¤òÆÀ¤ÆÆ°ºî¤¹¤ëCPUÅù¤Î¤¿¤á¤Î¾ÊÅÅÎÏ¥µ¥Ý¡¼¥Èµ¡Ç½¡£ ¡ä¤³¤Î¥Õ¥é¥°¤ò¡Ö»ØÄꤹ¤ë¤È¡×µ¡Ç½¤¬OFF¤Ë¤Ê¤ê¡¢½ÐÎÏ¥¯¥í¥Ã¥¯¤Ï¾ï¤Ë¥Õ¥ë¥¹¥Ô¡¼¥É¤È¤Ê¤ë¡£ ¡ä ¡äD12_CLOCKRUNNING¡§ ¡äUSB¥±¡¼¥Ö¥ë¤¬¤Ä¤Ê¤¬¤Ã¤Æ¤¤¤Ê¤¤¤È¤­¤Ë¡¢USBC¼«ÂΤΥ¯¥í¥Ã¥¯¤ò»ß¤á¤ë¡£ ¡ä¤³¤Î¥Õ¥é¥°¤ò¡Ö»ØÄꤹ¤ë¤È¡×µ¡Ç½¤¬OFF¤Ë¤Ê¤ê¡¢USB¥³¥ó¥È¥í¡¼¥é¤Ï¾ï¤ËÆ°¤­¤Ä¤Å¤±¤ë¡£ ¡äUSB¥³¥ó¥È¥í¡¼¥é¤¬Ää»ß¤¹¤ë¤È³°Éô½ÐÎÏ¥¯¥í¥Ã¥¯¤âÄä»ß¤·¤Æ¤·¤Þ¤¦¤Î¤Ç¡¢ ¡äUSB¥³¥ó¥È¥í¡¼¥é¤«¤é¤Î¥¯¥í¥Ã¥¯¶¡µë¤òÆÀ¤Æ¾ï¤ËÆ°¤­¤Ä¤Å¤±¤¿¤¤¡ÊUSB¥±¡¼¥Ö¥ë¤¬¤Ä¤Ê¤¬¤Ã¤Æ¤¤¤ë¤« ¡ä¤É¤¦¤«¤Ë¤Ï´Ø·¸¤Ê¤¯¡Ë¤è¤¦¤ÊCPU¤¬¤¢¤ë¾ì¹ç¤Ï¡¢¤³¤Î¥Õ¥é¥°¤ò»ØÄꤹ¤ë¡£ ¡ä ¡ä¤È¤¤¤¦°ÕÌ£¤À¤È»×¤¤¤Þ¤¹¡£ ·ëÏÀ¤«¤é¸À¤¦¤È¡¢¾åµ­¤Ï´Ö°ã¤¤¤Ç¤·¤¿¡£¤É¤³¤¬´Ö°ã¤Ã¤Æ¤¤¤ë¤«¤È¸À¤¦¤È¡¢°Ê²¼¤ÎÆóÅÀ¤Ç¤¹¡£ ­¡¡ÖD12_NOLAZYCLOCK¡×¤È¡ÖD12_CLOCKRUNNING¡×¤Î¸ú²Ì¤Ë¤Ä¤¤¤Æ¤Î¡¢Íý²ò¤¬´Ö°ã¤Ã¤Æ¤¤¤Þ¤¹¡£ ­¢¾ÊÅÅÎϤΤ¿¤á¤ÎÀßÄê¤È¤·¤Æ¡¢¡ÖD12_CLOCKRUNNING¡×¤ò»ØÄꤷ¤Ê¤¤»ö¤ÏÀµ¤·¤¤¤Î¤Ç¤¹¤¬¡¢¡ÖD12_NOLAZYCLOCK¡×¤ò»ØÄꤷ¤Ê¤¤»ö¤¬´Ö°ã¤Ã¤Æ¤¤¤Þ¤¹¡£ ¢£­¡¡ÖD12_NOLAZYCLOCK¡×¤È¡ÖD12_CLOCKRUNNING¡×¤Î¸ú²Ì PDIUSBD12¤Î¥Ç¡¼¥¿¥·¡¼¥È¤Ë¤è¤ë¤È¡¢D12_NOLAZYCLOCK¤ÈD12_CLOCKRUNNING¤Î¸ú²Ì¤Ï¡¢°Ê²¼¤Î¤è¤¦¤Ë½ñ¤«¤ì¤Æ¤¤¤Þ¤¹¡£ »²¾È»ñÎÁ:¡ÖPDIUSBD12 USB interface device with parallel bus Rev. 08 - 20 December 2001 Product data¡×(PDIUSBD12.pdf) ¨­¢¢11.2.3 Set mode ¨­¨£¨¡¨¡¨¨¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¨¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¤ ¨­¨¢Bit ¨¢Symbol ¨¢Description ¨¢ ¨­¨§¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨© ¨­¨¢2 ¨¢CLOCK RUNNING ¨¢ A ¡Æ1¡Ç indicates that the internal clocks and PLL are always running even during Suspend state. ¨¢ ¨­¨¢ ¨¢ ¨¢ A ¡Æ0¡Ç indicates that the internal clock, crystal oscillator and PLL are stopped whenever not needed. ¨¢ ¨­¨¢ ¨¢ ¨¢ To meet the strict Suspend current requirement, this bit needs to be set to ¡Æ0¡Ç. ¨¢ ¨­¨¢ ¨¢ ¨¢ The programmed value will not be changed by a bus reset. ¨¢ ¨­¨§¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨© ¨­¨¢1 ¨¢NO LAZYCLOCK ¨¢ A ¡Æ1¡Ç indicates that CLKOUT will not switch to LazyClock. ¨¢ ¨­¨¢ ¨¢ ¨¢ A ¡Æ0¡Ç indicates that the CLKOUT switches to LazyClock 1ms after the Suspend pin goes HIGH. ¨¢ ¨­¨¢ ¨¢ ¨¢ LazyClock frequency is 30 kHz ¡Þ 40%. ¨¢ ¨­¨¢ ¨¢ ¨¢ The programmed value will not be changed by a bus reset. ¨¢ ¨­¨¦¨¡¨¡¨ª¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨ª¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¥ DL¤Ç¤­¤ëURL: http://www.gaw.ru/pdf/Philips/usb/PDIUSBD12.pdf (2014/12/30¸½ºß) ÀâÌÀ¤Ï¤³¤ì¤À¤±¤Ç¡¢Â¾¤ËD12_NOLAZYCLOCK¤ÈD12_CLOCKRUNNING¤Ë´Ø¤¹¤ëÀâÌÀ¤ä¥¿¥¤¥ß¥ó¥°¿Þ¤â̵¤¤¤è¤¦¤Ç¤¹¡£ ³Î¤«¤Ë¡¢PDIUSBD12¤Î¥Ç¡¼¥¿¥·¡¼¥È¤ÏÀâÌÀÉÔ­¤Ê¤«¤ó¤¸¤Ç¤¹¡£°Ê²¼¤Î¤è¤¦¤Êµ¿Ì䤬É⤫¤Ó¤Þ¤¹¡£ ¡¦D12_NOLAZYCLOCK¤¬¡Æ1¡Ç¤Ê¤é¤Ð¡¢¥µ¥¹¥Ú¥ó¥ÉÃæ¤â³°Éô½ÐÎÏ¥¯¥í¥Ã¥¯¤¬Ä㮥¯¥í¥Ã¥¯¤ËÀÚ¤êÂؤï¤ê¤Þ¤»¤ó¡£ ¡¦D12_NOLAZYCLOCK¤¬¡Æ0¡Ç¤Ê¤é¤Ð¡¢¥µ¥¹¥Ú¥ó¥ÉÃæ¤Ë³°Éô½ÐÎÏ¥¯¥í¥Ã¥¯¤¬Ä㮥¯¥í¥Ã¥¯¤ËÀÚ¤êÂؤï¤ê¤Þ¤¹¡£ ¡ÄÀÚ¤êÂؤï¤é¤Ê¤¤(¡Æ1¡Ç)¾ì¹ç¤Ë¡¢¹â®¥¯¥í¥Ã¥¯¤ò½ÐÎϤ·Â³¤±¤ë¤Î¤«¡¢³°Éô½ÐÎÏ¥¯¥í¥Ã¥¯¤¬»ß¤Þ¤ë¤Î¤«¤¬¡¢¤Ï¤Ã¤­¤ê¤È¤ï¤«¤ê¤Þ¤»¤ó¡£ ¡¦D12_CLOCKRUNNING¤¬¡Æ1¡Ç¤Ê¤é¤Ð¡¢¥µ¥¹¥Ú¥ó¥ÉÃæ¤âÆâÉô¥¯¥í¥Ã¥¯¤¬»ß¤Þ¤ê¤Þ¤»¤ó¡£ ¡¦D12_CLOCKRUNNING¤¬¡Æ0¡Ç¤Ê¤é¤Ð¡¢¥µ¥¹¥Ú¥ó¥ÉÃæ¤ÏÆâÉô¥¯¥í¥Ã¥¯¤¬»ß¤Þ¤ê¤Þ¤¹¡£ ¡Ä¤È¤¤¤¦»ö¤Ï¤ï¤«¤ë¤ë¤Î¤Ç¤¹¤¬¡¢ÆâÉô¥¯¥í¥Ã¥¯¤¬»ß¤Þ¤Ã¤¿»þ¤Ë¡¢³°Éô½ÐÎÏ¥¯¥í¥Ã¥¯¤â»ß¤Þ¤ë¤Î¤«¤É¤¦¤«¤¬¡¢¤Ï¤Ã¤­¤ê¤È¤ï¤«¤ê¤Þ¤»¤ó¡£ ¤µ¤Æ¡¢ÀèÆü¤Õ¤È¤·¤¿¤³¤È¤«¤é¡¢¤³¤ì¤Þ¤ÇÆɤó¤À»ö¤Î̵¤«¤Ã¤¿¡¢PDIUSBD12¤ÎFAQ¤Î¥É¥­¥å¥á¥ó¥È¤ò¸«ÉÕ¤±¤Þ¤·¤¿¡£ ¤½¤³¤Ë¤Ï¡¢°Ê²¼¤Î¤è¤¦¤Ë½ñ¤«¤ì¤Æ¤¤¤Þ¤·¤¿¡£ »²¾È»ñÎÁ:¡ÖFAQ - PDIUSBD12 1 October 1998¡×(faq_pdiusbd12.pdf) ¨­¢¢3.5 What is the CLKOUT frequency during suspend? ¨­The behaviour of the output clock is configured based on the Configuration Byte written using the Set Mode Command (0xF3). ¨­¨£¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¨¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¤ ¨­¨¢Configuration Byte ¨¢CLKOUT ¨¢ ¨­¨§¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¨¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨© ¨¢ ¨­¨¢No Lazy Clock ¨¢Clock Running ¨¢ ¨¢ ¨­¨§¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨© ¨­¨¢0 ¨¢0 ¨¢CLKOUT switches to Lazy Clock on suspend. ¨¢ ¨­¨¢ ¨¢ ¨¢The output frequency is 18KHz to 48 KHz. ¨¢ ¨­¨¢ ¨¢ ¨¢The PLL clock switched off to reduce current consumption. ¨¢ ¨­¨§¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨© ¨­¨¢1 ¨¢0 ¨¢The CLKOUT stops on suspend. ¨¢ ¨­¨§¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨© ¨­¨¢0 ¨¢1 ¨¢CLKOUT switches to Lazy Clock on suspend. ¨¢ ¨­¨¢ ¨¢ ¨¢The output frequency is 18KHz to 48 KHz. ¨¢ ¨­¨¢ ¨¢ ¨¢The PLL clock remains on. ¨¢ ¨­¨§¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨«¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨© ¨­¨¢1 ¨¢1 ¨¢The suspend state does not affect the CLKOUT frequency with this configuration. ¨¢ ¨­¨¦¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨ª¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨ª¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¡¨¥ DL¤Ç¤­¤ëURL: http://ricrdn0.sweb.cz/usb/faq_pdiusbd12.pdf (2014/12/30¸½ºß) ¤Ê¤ë¤Û¤É¡¢¤³¤ì¤Ê¤é¤Ð¤è¤¯¤ï¤«¤ê¤Þ¤¹¡£ ¡ÖD12_NOLAZYCLOCK¡×¤È¡ÖD12_CLOCKRUNNING¡×¤Î¸ú²Ì¤Ë¤Ä¤¤¤Æ¡¢Àµ¤·¤¯¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤·¤¿¡£ ¡¦D12_NOLAZYCLOCK¤¬¡Æ1¡Ç¤Ç¡¢D12_CLOCKRUNNING¤¬¡Æ1¡Ç¤Ê¤é¤Ð¡¢¥µ¥¹¥Ú¥ó¥ÉÃæ¤â³°Éô½ÐÎÏ¥¯¥í¥Ã¥¯¤Ï¹â®¥¯¥í¥Ã¥¯¤Î¤Þ¤Þ¤Ç¤¹¡£ ¡¦D12_NOLAZYCLOCK¤¬¡Æ1¡Ç¤Ç¡¢D12_CLOCKRUNNING¤¬¡Æ0¡Ç¤Ê¤é¤Ð¡¢¥µ¥¹¥Ú¥ó¥ÉÃæ¤Ï³°Éô½ÐÎÏ¥¯¥í¥Ã¥¯¤¬»ß¤Þ¤ê¤Þ¤¹¡£ ¡¦D12_NOLAZYCLOCK¤¬¡Æ0¡Ç¤Ê¤é¤Ð¡¢¥µ¥¹¥Ú¥ó¥ÉÃæ¤Ï³°Éô½ÐÎÏ¥¯¥í¥Ã¥¯¤¬Ä㮥¯¥í¥Ã¥¯¤Ë¤Ê¤ê¤Þ¤¹¡£ ¡¦D12_CLOCKRUNNING¤¬¡Æ1¡Ç¤Ê¤é¤Ð¡¢¥µ¥¹¥Ú¥ó¥ÉÃæ¤âÆâÉô¥¯¥í¥Ã¥¯¤¬»ß¤Þ¤ê¤Þ¤»¤ó¡£ ¡¦D12_CLOCKRUNNING¤¬¡Æ0¡Ç¤Ê¤é¤Ð¡¢¥µ¥¹¥Ú¥ó¥ÉÃæ¤ÏÆâÉô¥¯¥í¥Ã¥¯¤¬»ß¤Þ¤ê¤Þ¤¹¡£ ¢£­¢¾ÊÅÅÎϤΤ¿¤á¤ÎÀßÄê ¤â¤Ã¤È¤â¾ÊÅÅÎϤˤ¹¤ë¤¿¤á¤Ë¤Ï¡¢¥µ¥¹¥Ú¥ó¥ÉÃæ¤Ï¡¢ÆâÉô¥¯¥í¥Ã¥¯¤â³°Éô½ÐÎÏ¥¯¥í¥Ã¥¯¤â»ß¤á¤ë¤³¤È¤Ç¤¹¡£ ¤½¤Î¤¿¤á¤Ë¤Ï¡¢ ¡¦¡ÖD12_NOLAZYCLOCK¡×¤Ï»ØÄꤹ¤ë¡£ ¡¦¡ÖD12_CLOCKRUNNING¡×¤Ï»ØÄꤷ¤Ê¤¤¡£ ¤È¤¹¤ë¤Î¤¬Àµ²ò¤Ç¤·¤¿¡£ ¸½¾õ¤ÎP/ECE¥«¡¼¥Í¥ë1.20¤Ï¡¢ ¡¦¡ÖD12_NOLAZYCLOCK¡×¤Ï»ØÄꤷ¤Ê¤¤¡£ ¡¦¡ÖD12_CLOCKRUNNING¡×¤â»ØÄꤷ¤Ê¤¤¡£ ¤È¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£ P/ECE¤Î²óÏ©¤Ç¤Ï¡¢PDIUSBD12¤Î³°Éô½ÐÎÏ¥¯¥í¥Ã¥¯¤ò»ÈÍѤ·¤Ê¤¤¤Î¤Ç¡¢¾ï¤Ë³°Éô½ÐÎÏ¥¯¥í¥Ã¥¯¤¬Ää»ß¤·¤Æ¤¤¤Æ¤âÎɤ¤¤°¤é¤¤¤Ê¤Î¤Ç¤¹¤¬¡¢ PDIUSBD12¤ÎÀßÄê¤Ë¤Ï¤½¤¦¤¤¤¦ÀßÄê¤Ï̵¤¤¤Î¤Ç¡¢¼¡Á±¤Îºö¤È¤·¤Æ¡¢¥µ¥¹¥Ú¥ó¥ÉÃæ¤Ë³°Éô½ÐÎÏ¥¯¥í¥Ã¥¯¤ò»ß¤á¤ë¤Î¤¬Ë¾¤Þ¤·¤¤¤Ç¤¹¡£ ¤·¤«¤·¡¢P/ECE¥«¡¼¥Í¥ë1.20¤ÎÀßÄê¤Ç¤Ï¡¢¥¹¥¿¥ó¥Ð¥¤Ãæ¤â³°Éô½ÐÎÏ¥¯¥í¥Ã¥¯¤Ë̵Â̤ÊÄ㮥¯¥í¥Ã¥¯¤¬½ÐÎϤµ¤ì¤Æ¤·¤Þ¤Ã¤Æ¤¤¤Þ¤¹¡£ ·ëÏÀ¤È¤·¤Æ¤Ï¡¢D12_NOLAZYCLOCK¤ò»ØÄꤹ¤Ù¤­¤È¤³¤í¡¢P/ECE¥«¡¼¥Í¥ë1.20¤ÏD12_NOLAZYCLOCK¤ò»ØÄꤷ¤Æ¤¤¤Ê¤¤¤Î¤Ç¡¢ÌµÂ̤ÊÅÅÎϤò¾ÃÈñ¤·¤Æ¤¤¤Þ¤·¤¿¡£ ¤¿¤À¡¢D12_NOLAZYCLOCK¤Î»ØÄ꤬ÉÔ­¤·¤Æ¤¤¤ë¤³¤È¤Ë¤è¤ë¡¢ÌµÂ̤ʾÃÈñÅÅÎϤϤµ¤Û¤ÉÂ礭¤¯¤Ê¤¤¤È»×¤¤¤Þ¤¹¡£ ¡ÖLazy Clock¡×¤È̾ÉÕ¤±¤ÆPDIUSBD12¤Î'Çä¤ê'¤Î°ì¤Ä¤Ë¤¹¤ë¤°¤é¤¤¤Ê¤Î¤Ç¡¢Ä㮥¯¥í¥Ã¥¯¤ò³°Éô½ÐÎϤ¹¤ë¤¿¤á¤Î¾ÃÈñÅÅÎϤϽ½Ê¬¾®¤µ¤¤¤È»×¤¦¤«¤é¤Ç¤¹¡£ ¤¢¤È¡¢µ­²±¤¬¤ª¤Ü¤í¤²¤Ê¤Î¤Ç¤¹¤¬¡¢Åö»þ¡¢P/ECE·Ç¼¨ÈĤǾÃÈñÅÅή¤Î·×¬¤ò¤·¤¿»þ¤Ë¡¢D12_NOLAZYCLOCK¤Î̵ͭ¤Ç¤Ï°ã¤¤¤¬Ìµ¤«¤Ã¤¿¤è¤¦¤Êµ¤¤¬¤·¤Þ¤¹¡£ ¤¿¤Ö¤ó¡¢D12_CLOCKRUNNING¤Î»ØÄê¤Î̵ͭ¤Ë¤è¤ë¾ÃÈñÅÅÎϤΰ㤤¤¬¤Û¤È¤ó¤É¤Ç¡¢D12_NOLAZYCLOCK¤Î̵ͭ¤Ë¤è¤ë°ã¤¤¤Ï¾®¤µ¤¤¤Î¤Ç¤Ï¤Ê¤¤¤Ç¤·¤ç¤¦¤«¡£ ¤È¤¤¤¦¤ï¤±¤Ç¡¢¸½¾õ¤ÎP/ECE¥«¡¼¥Í¥ë1.20¤Î¤Þ¤Þ¤Ç¤â¡¢¾ÊÅÅÎÏÀ­Ç½¤Ë½ÅÂç¤ÊÌäÂê¤Ï̵¤¤¤È»×¤¤¤Þ¤¹¡£¤¬¡¢¤ä¤Ã¤Ñ¤êµ¤¤Ë¤Ê¤ê¤Þ¤¹¤è¤Í(^^; * Mon Dec 29 18:38:36 JST 2014 Naoyuki Sawa - P/ECE¥«¡¼¥Í¥ë1.20¤Î¥¹¥¿¥ó¥Ð¥¤Éüµ¢¥Ð¥° ¢£ÌäÂêÅÀ P/ECE¥«¡¼¥Í¥ë1.20¤ÎÊѹ¹ÅÀ¤Î°ì¤Ä¤È¤·¤Æ¡¢°Ê²¼¤Î¤è¤¦¤Ë½ñ¤«¤ì¤Æ¤¤¤Þ¤¹¡£ http://aquaplus.jp/piece/dl/up118to120.txt ¡ä¡¦¥¹¥¿¥ó¥Ð¥¤¾õÂÖ¤ÇUSB¥±¡¼¥Ö¥ë¤òÀܳ¤¹¤ë¤È¡¢¼«Æ°Åª¤Ë¥¹¥¿¥ó¥Ð¥¤Éüµ¢¤¹¤ë¤è¤¦¤Ë¤·¤Þ¤·¤¿¡£ ¤·¤«¤·¼ÂºÝ¤Ë»î¤·¤Æ¤ß¤ë¤È¡¢³Î¤«¤ËÉüµ¢¤¹¤ë»ö¤âÍ­¤ë¤Î¤Ç¤¹¤¬¡¢Éüµ¢¤·¤Ê¤¤»ö¤â·ë¹½Í­¤ë¤Î¤Ç¤¹¡£ ¥¹¥¿¥ó¥Ð¥¤¾õÂÖ¤ÇUSB¥±¡¼¥Ö¥ë¤òÀܳ¤·¤Æ¤âP/ECE¤Î²èÌ̤¬¾Ã¤¨¤¿¤Þ¤Þ¤Ç¡¢PC¦¤Ç¤Ï¡ÖÉÔÌÀ¤Ê¥Ç¥Ð¥¤¥¹¡×¤Èǧ¼±¤·¤Æ¤·¤Þ¤¤¤Þ¤¹¡£ ¤³¤ÎÌäÂê¤Ë¤Ï¡¢¤À¤¤¤Ö¤óÁ°¤«¤éµ¤ÉÕ¤¤¤Æ¤¤¤¿¤Î¤Ç¤¹¤¬¡¢¤³¤ì¤Þ¤ÇÄ´ºº¤·¤Æ¤¤¤Þ¤»¤ó¤Ç¤·¤¿¡£ ÉáÃÊ¡¢P/ECE¤ËÅÅÃÓ¤òÆþ¤ì¤º¤Ë»È¤Ã¤Æ¤¤¤Æ¡¢¥¹¥¿¥ó¥Ð¥¤¾õÂ֤ˤ¹¤ë»ö¤â̵¤¤¤Î¤Ç¡¢¼ÂÍѾå¤Û¤È¤ó¤ÉÌäÂê¤Ë¤Ê¤é¤Ê¤«¤Ã¤¿¤«¤é¤Ç¤¹¡£ º£²ó¤¢¤é¤¿¤á¤Æ¡¢¤³¤ÎÌäÂê¤òÄ´ºº¤·¤Æ¤¿¤È¤³¤í¡¢¸¶°ø¤¬È½¤ê¤Þ¤·¤¿¡£ ¢£¸¶°ø ¸¶°ø¤Ï¡¢¡Ø¥¹¥¿¥ó¥Ð¥¤Éüµ¢ÍѤΡ֥ݡ¼¥ÈÆþÎϳä¤ê¹þ¤ß2¡×¤Î³ä¤ê¹þ¤ß¥×¥é¥¤¥ª¥ê¥Æ¥£¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¤³¤È¡Ù¤Ç¤·¤¿¡£ ¶ñÂÎŪ¤Ë¤Ï¡¢P/ECE¥«¡¼¥Í¥ë¤Î¥½¡¼¥¹¤Î²¼µ­¤Î²Õ½ê¤Ç¤¹: \usr\PIECE\sysdev\pcekn\powerman.c 467¹Ô ¡Ú¸í¡Û bp[0x270] |= 0x04; // ¥Ý¡¼¥ÈÆþÎϳä¤ê¹þ¤ß2 µö²Ä ¡ÚÀµ¡Û bp[0x261] |= 0x07; // ¥Ý¡¼¥ÈÆþÎϳä¤ê¹þ¤ß2 ¥×¥é¥¤¥ª¥ê¥Æ¥£ ¢«¢«¤³¤Î½èÍý¤¬È´¤±¤Æ¤¤¤¿!! bp[0x270] |= 0x04; // ¥Ý¡¼¥ÈÆþÎϳä¤ê¹þ¤ß2 µö²Ä ¥¹¥¿¥ó¥Ð¥¤¾õÂÖ¤ÇUSB¥±¡¼¥Ö¥ë¤òÀܳ¤¹¤ë¤È¡¢¼«Æ°Åª¤Ë¥¹¥¿¥ó¥Ð¥¤Éüµ¢¤¹¤ë»ÅÁȤߤϡ¢°Ê²¼¤ÎÄ̤ê¤Ç¤¹¡£ ¥Ý¡¼¥ÈÆþÎÏ2¤Ï¡¢¡ÖP22 ÅŸ»¥â¥Ë¥¿¡×ü»Ò¤ËÁêÅö¤·¤Þ¤¹¡£ USB¥±¡¼¥Ö¥ë¤òÀܳ¤¹¤ë¤È¡¢¡ÖP22 ÅŸ»¥â¥Ë¥¿¡×ü»Ò¤¬ÊѲ½¤·¤Æ¡¢³ä¤ê¹þ¤ß¤¬È¯À¸¤·¤Þ¤¹¡£ ³ä¤ê¹þ¤ß¤¬È¯À¸¤¹¤ë¤È¡¢¥¹¥¿¥ó¥Ð¥¤Éüµ¢¤·¤Þ¤¹¡£ Íפ¹¤ë¤Ë¡¢³ä¤ê¹þ¤ßȯÀ¸¤Ë¤è¤Ã¤Æ¥¹¥¿¥ó¥Ð¥¤Éüµ¢¤µ¤»¤è¤¦¤È¤·¤Æ¤¤¤ë¤Î¤Ç¤¹¤¬¡¢ ¸½ºß¤ÎP/ECE¥«¡¼¥Í¥ë1.20¤Î½èÍý¤Ç¤Ï¡¢³ä¤ê¹þ¤ß¥³¥ó¥È¥í¡¼¥é¤Î³ä¤ê¹þ¤ß¥×¥é¥¤¥ª¥ê¥Æ¥£¤ÎÀßÄ꤬ȴ¤±¤Æ¤¤¤Þ¤·¤¿¡£ ³ä¤ê¹þ¤ß¥³¥ó¥È¥í¡¼¥é¤Î³ä¤ê¹þ¤ß¥×¥é¥¤¥ª¥ê¥Æ¥£¥ì¥¸¥¹¥¿¤Ï¡¢¥¤¥Ë¥·¥ã¥ë¥ê¥»¥Ã¥È¤Ç½é´ü²½¤µ¤ì¤Þ¤»¤ó¡£ \usr\PIECE\docs\datasheet\EPSON\s1c33209_221_222j.pdf ¡ÖS1C33209/221/222 ¥Æ¥¯¥Ë¥«¥ë¥Þ¥Ë¥å¥¢¥ë¡×B-II-5-12¡Ö³ä¤ê¹þ¤ß¥³¥ó¥È¥í¡¼¥é¤ÎI/O¥á¥â¥ê¡×»²¾È ³ä¤ê¹þ¤ß¥×¥é¥¤¥ª¥ê¥Æ¥£¥ì¥¸¥¹¥¿¤ÎÃͤ¬¡¢¤¿¤Þ¤¿¤Þ1¡Á7¤Ê¤é¤Ð¡¢³ä¤ê¹þ¤ß¤¬È¯À¸¤·¤Æ¡¢Àµ¾ï¤Ë¥¹¥¿¥ó¥Ð¥¤Éüµ¢¤·¤Þ¤¹¡£ 0¤Ê¤é¤Ð¡¢³ä¤ê¹þ¤ß¥×¥é¥¤¥ª¥ê¥Æ¥£0¤È¤Ï³ä¤ê¹þ¤ß¶Ø»ß¤ÈƱ¤¸¤Ê¤Î¤Ç¡¢³ä¤ê¹þ¤ß¤¬È¯À¸¤»¤º¡¢¥¹¥¿¥ó¥Ð¥¤Éüµ¢¤·¤Þ¤»¤ó¡£ ¤³¤ì¤¬¡¢¾åµ­¤ÎÌäÂê¤Î¸¶°ø¤Ç¤·¤¿¡£ ¢£Âкö º¬ËÜŪ¤ÊÂкö¤Ï¡¢¥«¡¼¥Í¥ë¤ò½ñ¤­´¹¤¨¤ë¤³¤È¤Ê¤Î¤Ç¤¹¤¬¡¢¤½¤ì¤ÏÆñ¤·¤¤¤Î¤Ç¡¢±¿ÍѤDzóÈò¤¹¤ëÂкö¤ò¹Í¤¨¤Æ¤ß¤Þ¤¹¡£ ¢¢ÂкöÊýË¡­¡ PC¤«¤é¡Ö¥Ý¡¼¥ÈÆþÎϳä¤ê¹þ¤ß2¡×¤Î³ä¤ê¹þ¤ß¥×¥é¥¤¥ª¥ê¥Æ¥£¤òÀßÄꤷ¤Þ¤¹¡£ ¶ñÂÎŪ¤Ë¤Ï¡¢PC¤ËP/ECE¤òÀܳ¤·¤Æ¡¢DOSÁë¤Ç°Ê²¼¤Î¤è¤¦¤Ë¥¿¥¤¥×¤·¤Æ¤¯¤À¤µ¤¤: isd.exe m 40261 1 ¤³¤ì¤À¤±¤Çok¤Ç¤¹¡£40261¤È¤¤¤¦¤Î¤Ï¡¢¡Ö¥Ý¡¼¥ÈÆþÎϳä¤ê¹þ¤ß2¡×¤Î³ä¤ê¹þ¤ß¥×¥é¥¤¥ª¥ê¥Æ¥£¥ì¥¸¥¹¥¿¤Î¥¢¥É¥ì¥¹¤Ç¤¹¡£ ¾åµ­¤Î¥³¥Þ¥ó¥É¤Ç¡¢¡Ö¥Ý¡¼¥ÈÆþÎϳä¤ê¹þ¤ß2¡×¤Î³ä¤ê¹þ¤ß¥×¥é¥¤¥ª¥ê¥Æ¥£¤ò1¤ËÀßÄꤷ¤¿¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£ °Ê²¼¤Î¤è¤¦¤Ë¥¿¥¤¥×¤¹¤ë¤È¡¢¥¢¥É¥ì¥¹040261¤ÎÃͤ¬01¤Ë¤Ê¤Ã¤Æ¤¤¤ë»ö¤ò³Îǧ¤Ç¤­¤Þ¤¹¡£(³Îǧ¤Ïɬ¿Ü¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£) isd.exe d 40261 040261 01 04 76 00 01 06 13 77 46 65 01 62 25 01 01 02; ..v....wFe.b%... ¡Á P/ECE¤ò¥¹¥¿¥ó¥Ð¥¤¤µ¤»¤Æ¡¢USB¥±¡¼¥Ö¥ë¤òÀܳ¤¹¤ë¤È¡¢Àµ¾ï¤Ë¥¹¥¿¥ó¥Ð¥¤Éüµ¢¤·¤Þ¤¹¡£ ¤³¤Î¸ú²Ì¤Ï¡¢P/ECE¤ÎÅÅÃÓ¤¬Ìµ¤¯¤Ê¤ë¤Þ¤ÇÍ­¸ú¤Ç¤¹¡£¥¹¥¿¥ó¥Ð¥¤¤¹¤ëÅ٤ˡ¢¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤¹¤ëɬÍפϤ¢¤ê¤Þ¤»¤ó¡£ ¢¢ÂкöÊýË¡­¢ ¡Ö¥Ý¡¼¥ÈÆþÎϳä¤ê¹þ¤ß2¡×¤Î³ä¤ê¹þ¤ß¥×¥é¥¤¥ª¥ê¥Æ¥£¤òÀßÄꤹ¤ë¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ò¼Â¹Ô¤·¤Þ¤¹¡£ ÅÔ¹ç¤ÎÎɤ¤¤³¤È¤Ë¡¢P/ECE¤ËÉÕ°¤·¤Æ¤¤¤ë¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ÎÃæ¤Ë¡¢¤½¤¦¤¤¤¦¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬¤¢¤ê¤Þ¤¹¡£ \usr\PIECE\app\pex\testir.pex ÀÖ³°ÀþÄÌ¿®¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ê¤Î¤Ç¤¹¤¬¡¢¤³¤ì¤ò¼Â¹Ô¤¹¤ë¤È¡¢¡Ö¥Ý¡¼¥ÈÆþÎϳä¤ê¹þ¤ß2¡×¤Î³ä¤ê¹þ¤ß¥×¥é¥¤¥ª¥ê¥Æ¥£¤¬7¤Ë¤Ê¤ê¤Þ¤¹¡£ ÀÖ³°ÀþÄÌ¿®¤Î³ä¤ê¹þ¤ß¤È¡¢¥¹¥¿¥ó¥Ð¥¤Éüµ¢¤Î³ä¤ê¹þ¤ß¤Ï¡¢Æ±¤¸³ä¤ê¹þ¤ß¥×¥é¥¤¥ª¥ê¥Æ¥£¥ì¥¸¥¹¥¿¤òÍøÍѤ·¤Æ¤¤¤ë¤«¤é¤Ç¤¹¡£ ÀÖ³°ÀþÄÌ¿®¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤òP/ECE¤ËÆþ¤ì¤Æ¤ª¤¤¤Æ¡¢¼Â¹Ô¤·¤Æ¤¯¤À¤µ¤¤¡£¤¹¤°¤Ë½ªÎ»¤·¤Æ¹½¤¤¤Þ¤»¤ó¡£ P/ECE¤ò¥¹¥¿¥ó¥Ð¥¤¤µ¤»¤Æ¡¢USB¥±¡¼¥Ö¥ë¤òÀܳ¤¹¤ë¤È¡¢Àµ¾ï¤Ë¥¹¥¿¥ó¥Ð¥¤Éüµ¢¤·¤Þ¤¹¡£ ¤³¤Î¸ú²Ì¤Ï¡¢P/ECE¤ÎÅÅÃÓ¤¬Ìµ¤¯¤Ê¤ë¤Þ¤ÇÍ­¸ú¤Ç¤¹¡£¥¹¥¿¥ó¥Ð¥¤¤¹¤ëÅ٤ˡ¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ò¼Â¹Ô¤¹¤ëɬÍפϤ¢¤ê¤Þ¤»¤ó¡£ ­¡¤ÎÊý¤¬¼ê·Ú¤Ç¤¹¤¬¡¢P/ECE³«È¯´Ä¶­¤¬¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤¿PC¤¬É¬ÍפǤ¢¤ë¤È¤¤¤¦·çÅÀ¤¬¤¢¤ê¤Þ¤¹¡£ ­¢¤ÏÀÖ³°ÀþÄÌ¿®¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤òÆþ¤ì¤Æ¤ª¤¯¤¿¤áP/ECE¤ÎÍÆÎ̤ò¾ÃÈñ¤·¤Þ¤¹¤¬¡¢PC¤¬Ìµ¤¯¤Æ¤â¤Ç¤­¤ëÂкö¤Ç¤¹¡£ ¢£Í¾ÃÌ ¤È¤³¤í¤Ç¡¢'¥¤¥Ë¥·¥ã¥ë¥ê¥»¥Ã¥È¤Ç½é´ü²½¤µ¤ì¤Þ¤»¤ó¡£'¤È¤Ï¡¢Íפ¹¤ë¤ËÉÔÄêÃͤʤΤǤ¹¤¬¡¢¤É¤ì¤°¤é¤¤¤ÇÉÔÄêÃͤˤʤë¤Î¤Ç¤·¤ç¤¦¤«¡£ »î¤·¤Æ¤ß¤¿¤È¤³¤í¡¢°Ê²¼¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤·¤¿: ¡ûÅÅÃÓ¤òÆþ¤ì¤¿¤Þ¤Þ¤ÇP/ECE¤Î¥ê¥»¥Ã¥È¥Ü¥¿¥ó¤ò²¡¤·¤Æ¤â¡¢ÃͤÏÊѲ½¤·¤Þ¤»¤ó¡£ ¡ûÅÅÃÓ¤òÈ´¤¤¤Æ10ʬÊüÃÖ¤·¤Æ¡¢¤Õ¤¿¤À¤ÓÅÅÃÓ¤òÆþ¤ì¤Æ¤â¡¢ÃͤÏÊѲ½¤·¤Æ¤¤¤Þ¤»¤ó¤Ç¤·¤¿¡£ ¡ßÅÅÃÓ¤òÈ´¤¤¤Æ°ì»þ´ÖÊüÃÖ¤·¤Æ¡¢¤Õ¤¿¤À¤ÓÅÅÃÓ¤òÆþ¤ì¤ë¤È¡¢ÃͤÏÊѲ½¤·¤Æ¤¤¤Þ¤·¤¿¡£ ¡¡ÊѲ½¸å¤ÎÃͤϥé¥ó¥À¥à¤Ç¡¢É¬¤º¤·¤â0¤Ë¤Ê¤ë¤È¤Ï¸Â¤é¤Ê¤¤¤è¤¦¤Ç¤¹¡£0¤Ë¤Ê¤ë»ö¤¬Â¿¤¤¤ß¤¿¤¤¤Ç¤¹¤¬¡¢1¤Ë¤Ê¤ë»ö¤âÍ­¤ê¤Þ¤·¤¿¡£ ¤È¤¤¤¦¤ï¤±¤Ç¡¢Á°½Ò¤ÎÂкöÊýË¡­¡­¢¤ò¹Ô¤Ã¤¿P/ECE¤ÎÅÅÃÓ¤¬Àڤ줿¾ì¹ç¤â¡¢10ʬ°ÊÆâ¤ËÅÅÃÓ¤ò¸ò´¹¤¹¤ì¤Ð¡¢Âкö¤Î¸ú²Ì¤Ï»ý³¤¹¤ë¤È»×¤¤¤Þ¤¹¡£ * Fri Oct 24 21:26:13 JST 2014 Naoyuki Sawa - strtod()¤Î¥Ð¥° ¢£ÌäÂêÅÀ P/ECE³«È¯´Ä¶­¤ËÉÕ°¤·¤Æ¤¤¤ë¡¢EPSONÀ½C¥é¥¤¥Ö¥é¥ê¤Î¡¢¡Östrtod()´Ø¿ô¡×¤Ë¤Ï¡¢¥Ð¥°¤¬¤¢¤ê¤Þ¤¹¡£ ¡ØÊÑ´¹¤Ë¼ºÇÔ¤·¤¿¤È¤­¡¢Áöºº¤Î½ªÎ»°ÌÃÖ¤ò¼¨¤¹Ê¸»ú¤Ø¤Î¥Ý¥¤¥ó¥¿¤¬ÀßÄꤵ¤ì¤Ê¤¤¡Ù¤È¤¤¤¦¥Ð¥°¤Ç¤¹¡£ strtod()¤Ï¡¢°Ê²¼¤Î¤è¤¦¤Ë»È¤¦¤³¤È¤¬¤è¤¯¤¢¤ë¤È»×¤¤¤Þ¤¹¡£ ¨¢ #include ¨¢ #include ¨¢ static const char str[] = "1.2 -3.4 5.6"; ¨¢ int main() { ¨¢ const char* ptr = str; ¨¢ char* endp; ¨¢ double d; ¨¢ for(;;) { ¨¢ d = strtod(ptr, &endp); ¨¢ if(endp == ptr) { break; } //ÊÑ´¹¤Ë¼ºÇÔ¤·¤¿¤é¡¢½ªÎ»¤¹¤ë¡£ ¨¢ printf("%g\n", d); ¨¢ ptr = endp; //º£²ó¤ÎÁöºº¤Î½ªÎ»°ÌÃÖ¤«¤é¡¢¼¡²ó¤ÎÁöºº¤ò¹Ô¤¦¡£ ¨¢ } ¨¢ return 0; ¨¢ } strtod()´Ø¿ô¤Ï¡¢ÊÑ´¹¤Ë¼ºÇÔ¤·¤¿¤È¤­¡¢ÅϤµ¤ì¤¿ptr¤ÈƱ¤¸¥Ý¥¤¥ó¥¿¤ò¡¢endp¤Ë³ÊǼ¤¹¤ë¤³¤È¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£ ¾åµ­¤Î¥×¥í¥°¥é¥à¤Ï¡¢ptr¤Èendp¤¬Æ±¤¸¤Ê¤é¤Ð¡¢ÊÑ´¹¤Ç¤­¤ëʸ»úÎó¤¬Ìµ¤¯¤Ê¤Ã¤¿¤ÈȽÃǤ·¤Æ¡¢¥ë¡¼¥×¤ò½ªÎ»¤·¤Æ¤¤¤Þ¤¹¡£ ¤È¤³¤í¤¬¡¢P/ECE¤Îstrtod()´Ø¿ô¤Ï¡¢¡ÖÊÑ´¹¤Ë¼ºÇÔ¤·¤¿¤È¤­¡¢endp¤¬ÉÔÄê¤Ë¤Ê¤ë¡×¤È¤¤¤¦¥Ð¥°¤¬¤¢¤ë¤è¤¦¤Ç¤¹¡£ ¸·Ì©¤Ë¤Ï¡¢¡ÖÊÑ´¹¤Ë¼ºÇÔ¤·¤¿¤È¤­¡¢endp¤ËÃͤ¬³ÊǼ¤µ¤ì¤Þ¤»¤ó¡×¡£ strtod()¤ò¸Æ¤Ó½Ð¤¹»þÅÀ¤Çendp¤ÏÉÔÄêÃͤǤ¹¤Î¤Ç¡¢ÊÑ´¹¤¬¼ºÇÔ¤¹¤ë¤È¡¢endp¤ÏÉÔÄêÃͤΤޤޤȤʤê¤Þ¤¹¡£ ¥×¥í¥°¥é¥à¤Ï¡¢strtod()¤¬ÊÑ´¹¤Ë¼ºÇÔ¤·¤¿¤³¤È¤òȽÃǤǤ­¤º¤Ë¡¢¤¤¤Ä¤Þ¤Ç¤â¥ë¡¼¥×¤¬½ªÎ»¤»¤º¤Ë¡¢Ë½Áö¤·¤Þ¤¹¡£ ¤µ¤é¤Ë°­¤¤¤³¤È¤Ë¤Ï¡¢ÉÔÄê¤Êendp¤Î°ÌÃÖ¤«¤é¼¡²ó¤ÎÁöºº¤ò¹Ô¤ª¤¦¤È¤·¤Æ¡¢ÌµÃã¶ìÃã¤Ê¿ôÃͤò¼èÆÀ¤·¤Æ¤·¤Þ¤¤¤Þ¤¹¡£ ¢£¸¶°ø ¸¶°ø¤Ï¡¢EPSONÀ½C¥é¥¤¥Ö¥é¥ê¤Î¡Östrtod()´Ø¿ô¡×¤Î¡¢¥Ð¥°¤Ç¤·¤¿¡£ ÊÑ´¹¤¬¼ºÇÔ¤·¤¿¤È¤­¡¢endp¤¬»Ø¤¹ÊÑ¿ô¤Ë¥Ý¥¤¥ó¥¿¤ò³ÊǼ¤¹¤Ù¤­¤È¤³¤í¡¢´Ö°ã¤Ã¤¿¥í¡¼¥«¥ë´Ø¿ô¤Ë¥Ý¥¤¥ó¥¿¤ò³ÊǼ¤·¤Æ¤¤¤Þ¤·¤¿¡£ ¡Ú¸í¡Û ¨¢ if(iChgFlg == 0){ ¨¢ if(sStrTmpP != NULL){ ¨¢ sStrTmpP = sStrPtrP; ¨¢ } ¨¢ return (double)0.0; /* no conversion */ ¨¢ } ¢­ ¡ÚÀµ¡Û ¨¢ if(iChgFlg == 0){ ¨¢ if(sEndPtrP != NULL){ ¨¢ *sEndPtrP = (char*)sStrPtrP; ¨¢ } ¨¢ return (double)0.0; /* no conversion */ ¨¢ } ¤Á¤Ê¤ß¤Ë¡¢EPSONÀ½C¥é¥¤¥Ö¥é¥ê¤Î¡Östrtod()´Ø¿ô¡×¤Ë¤Ï¡¢¾åµ­¤Î¾¤Ë¤â¡¢(½ÅÂçÀ­¤ÏÄ㤤¤â¤Î¤Î)¥±¥¢¥ì¥¹¥ß¥¹¤Ý¤¤ÅÀ¤¬¤¢¤ê¤Þ¤¹¡£ ¢£Âкö Æó¼ïÎà¤ÎÂкöÊýË¡¤¬¤¢¤ê¤Þ¤¹¡£ ¢¢Âкö­¡¡¡¤È¤ê¤¢¤¨¤º²óÈò¤¹¤ëÂкöÊýË¡ ¡Östrtod()´Ø¿ô¡×¤ò¤¢¤Þ¤êÉÑÈˤ˻Ȥï¤Ê¤¤¾ì¹ç¤Ï¡¢¤½¤ÎÅÔÅÙÂкö¤¹¤ë¤Î¤¬¼ê¤Ã¼è¤êÁ᤯¤ÆÎɤ¤¤È»×¤¤¤Þ¤¹¡£ ÊÑ´¹¤¬¼ºÇÔ¤·¤¿¤È¤­¤Ëendp¤¬ÊѤï¤é¤Ê¤¤¤Î¤Ç¤¹¤«¤é¡¢strtod()¤ò¸Æ¤Ó½Ð¤¹Á°¤Ëptr¤ÈƱ¤¸¥Ý¥ó¥¤¥¿¤òÆþ¤ì¤Æ¤ª¤±¤ÐÎɤ¤¤Î¤Ç¤¹¡£ ¨¢ endp = ptr; //¡úEPSONÀ½C¥é¥¤¥Ö¥é¥ê¤Î¡Östrtod()´Ø¿ô¡×¤Î¥Ð¥°Âкö¡ú ¨¢ d = strtod(ptr, &endp); ¨¢ if(endp == ptr) { break; } //ÊÑ´¹¤Ë¼ºÇÔ¤·¤¿¤é¡¢½ªÎ»¤¹¤ë¡£ ¢¢Âкö­¢¡¡º¬ËÜŪ¤Ë½¤Àµ¤¹¤ëÂкöÊýË¡ ¡Östrtod()´Ø¿ô¡×¤òÉÑÈˤ˻Ȥ¦¾ì¹ç¤Ï¡¢¤½¤ÎÅÔÅپ嵭¤ÎÂкö¤ò¹Ô¤¦¤Î¤ÏÌÌÅݤÀ¤·¡¢¸«Íî¤È¤¹¤ª¤½¤ì¤¬¤¢¤ë¤Î¤Ç¡¢ EPSONÀ½C¥é¥¤¥Ö¥é¥ê¤Î¡Östrtod()´Ø¿ô¡×¤ò½¤Àµ¤·¤Æ¡¢ÃÖ¤­´¹¤¨¤ëÊý¤¬°ÂÁ´¤Ç¤·¤ç¤¦¡£ ½¤Àµ¤·¤¿¡Östrtod.c¡×¤ò¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤È°ì½ï¤Ë¥Ó¥ë¥É¤¹¤ì¤Ð¡¢ ¡Ö\usr\PIECE\lib\lib.lib¡×¤ÎÃæ¤Ë¤¢¤ë¸µ¤Î¡Östrtod()´Ø¿ô¡×¤è¤ê¤âÍ¥À褵¤ì¤Æ¡¢½¤Àµ¤·¤¿¡Östrtod()¡×´Ø¿ô¤¬¥ê¥ó¥¯¤µ¤ì¤Þ¤¹¡£ ½¤Àµ¤·¤¿¡Östrtod.c¡×¤Ï¤³¤Á¤é¡§¡¡http://www.piece-me.org/piece-lab/stodbug/strtod.c ¢£¥À¥¦¥ó¥í¡¼¥É ¥Ð¥°ºÆ¸½¥×¥í¥°¥é¥à¤È¡¢Âкö¥×¥í¥°¥é¥à¤Î¥µ¥ó¥×¥ë¤Ï¡¢¤³¤Á¤é¤Ç¤¹¡£ ¥À¥¦¥ó¥í¡¼¥É¤Ï¤³¤Á¤é¡§¡¡http://www.piece-me.org/piece-lab/stodbug/stodbug-20141024-src.zip * Tue Jul 30 00:00:00 JST 2013 Naoyuki Sawa - gcc33 ¾ò·ï±é»»»Ò¤ÎºÇŬ²½¥Ð¥° P/ECE³«È¯´Ä¶­¤ÎC¥³¥ó¥Ñ¥¤¥égcc33¤Ë¤Ï¡¢¾ò·ï±é»»»Ò¤ÎºÇŬ²½¥Ð¥°¤¬¤¢¤ê¤Þ¤¹¡£ ¡Ø¡Ö0¤ÈÈæ³Ó¤¹¤ë¾ò·ï¼°¡×¤Î¾ò·ï±é»»»Ò¤ò¥Í¥¹¥È¤¹¤ë¤È¡¢´Ö°ã¤Ã¤¿·ë²Ì¤òÊÖ¤¹¥³¡¼¥É¤¬À¸À®¤µ¤ì¤ë¡Ù¤È¤¤¤¦¥Ð¥°¤Ç¤¹¡£ °Ê²¼¤Ë¡¢ºÆ¸½ÊýË¡¤È¡¢²óÈòÊýË¡¤òÀâÌÀ¤·¤Þ¤¹¡£ ¢£ºÆ¸½¥×¥í¥°¥é¥à ¥À¥¦¥ó¥í¡¼¥É¤Ï¤³¤Á¤é¡§¡¡http://www.piece-me.org/archive/tropbug-20030730-src.zip //¢¡¥³¥ó¥Ñ¥¤¥ëÊýË¡ //¨­ºÇŬ²½¥ª¥×¥·¥ç¥ó¡Ö-O¡×¡Ö-O1¡×¡Ö-O2¡×¤Î¤É¤ì¤«¤ò»ØÄꤷ¤Æ¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤È¡¢ºÇŬ²½¥Ð¥°¤¬È¯À¸¤·¤Þ¤¹¡£ //¨­ºÇŬ²½¥ª¥×¥·¥ç¥ó¡Ö-O¡×¡Ö-O1¡×¡Ö-O2¡×¤É¤ì¤â»ØÄꤻ¤º¤Ë¥³¥ó¥Ñ¥¤¥ë¤¹¤ì¤Ð¡¢ºÇŬ²½¥Ð¥°¤ÏȯÀ¸¤·¤Þ¤»¤ó¡£ #include unsigned char vbuff[DISP_X * DISP_Y]; //¢£´Ø¿ô»ÅÍÍ¡§a¤¬0¤Ç¤Ê¤±¤ì¤Ða¤òÊÖ¤¹¡£b¤¬0¤Ç¤Ê¤±¤ì¤Ðb¤òÊÖ¤¹¡£¤É¤Á¤é¤Ç¤â¤Ê¤±¤ì¤Ðc¤òÊÖ¤¹¡£ //¢¢¾ò·ï±é»»»Ò¤ò»ÈÍѤ¹¤ë ¢Í ¡ßºÇŬ²½¥Ð¥°¤¬È¯À¸¤¹¤ë int test11(int a, int b, int c) { int x; x = a ? a : b ? b : c; return x; } //¢¢¾ò·ï±é»»»Ò¤ò»ÈÍѤ·¡¢ÌÀ¼¨Åª¤ËÈæ³Ó¼°¤ò½ñ¤¯ ¢Í ¡ßºÇŬ²½¥Ð¥°¤¬È¯À¸¤¹¤ë int test12(int a, int b, int c) { int x; x = (a != 0) ? a : (b != 0) ? b : c; return x; } //¢¢¾ò·ï±é»»»Ò¤ò»ÈÍѤ·¡¢ÌÀ¼¨Åª¤Ë±¦·ë¹ç¤ò½ñ¤¯ ¢Í ¡ßºÇŬ²½¥Ð¥°¤¬È¯À¸¤¹¤ë int test13(int a, int b, int c) { int x; x = a ? a : (b ? b : c); return x; } //¢¢GCC³ÈÄ¥µ¡Ç½¤ò»ÈÍѤ¹¤ë ¢Í ¡ûºÇŬ²½¥Ð¥°¤¬È¯À¸¤·¤Ê¤¤ int test14(int a, int b, int c) { int x; x = a ? : b ? : c; return x; } //¢¢ifʸ¤ò»ÈÍѤ¹¤ë ¢Í ¡ûºÇŬ²½¥Ð¥°¤¬È¯À¸¤·¤Ê¤¤ int test15(int a, int b, int c) { int x; if(a) { x = a; } else if(b) { x = b; } else { x = c; } return x; } //¢£´Ø¿ô»ÅÍÍ¡§a¤¬0Ķ²á¤Ê¤é¤Ða¤òÊÖ¤¹¡£b¤¬0Ķ²á¤Ê¤é¤Ðb¤òÊÖ¤¹¡£¤É¤Á¤é¤Ç¤â¤Ê¤±¤ì¤Ðc¤òÊÖ¤¹¡£ //¢¢¾ò·ï±é»»»Ò¤ò»ÈÍѤ·¡¢ÌÀ¼¨Åª¤ËÈæ³Ó¼°¤ò½ñ¤¯ ¢Í ¡ßºÇŬ²½¥Ð¥°¤¬È¯À¸¤¹¤ë int test21(int a, int b, int c) { int x; x = (a > 0) ? a : (b > 0) ? b : c; return x; } //¢£´Ø¿ô»ÅÍÍ¡§a¤¬1°Ê¾å¤Ê¤é¤Ða¤òÊÖ¤¹¡£b¤¬1°Ê¾å¤Ê¤é¤Ðb¤òÊÖ¤¹¡£¤É¤Á¤é¤Ç¤â¤Ê¤±¤ì¤Ðc¤òÊÖ¤¹¡£ //¢¢¾ò·ï±é»»»Ò¤ò»ÈÍѤ·¡¢ÌÀ¼¨Åª¤ËÈæ³Ó¼°¤ò½ñ¤¯ ¢Í ¡ßºÇŬ²½¥Ð¥°¤¬È¯À¸¤¹¤ë int test31(int a, int b, int c) { int x; x = (a >= 1) ? a : (b >= 1) ? b : c; return x; } //¢£´Ø¿ô»ÅÍÍ¡§a¤¬1Ķ²á¤Ê¤é¤Ða¤òÊÖ¤¹¡£b¤¬1Ķ²á¤Ê¤é¤Ðb¤òÊÖ¤¹¡£¤É¤Á¤é¤Ç¤â¤Ê¤±¤ì¤Ðc¤òÊÖ¤¹¡£ //¢¢¾ò·ï±é»»»Ò¤ò»ÈÍѤ·¡¢ÌÀ¼¨Åª¤ËÈæ³Ó¼°¤ò½ñ¤¯ ¢Í ¡ûºÇŬ²½¥Ð¥°¤¬È¯À¸¤·¤Ê¤¤ int test41(int a, int b, int c) { int x; x = (a > 1) ? a : (b > 1) ? b : c; return x; } //¢£´Ø¿ô»ÅÍÍ¡§a¤¬0̤Ëþ¤Ê¤é¤Ða¤òÊÖ¤¹¡£b¤¬0̤Ëþ¤Ê¤é¤Ðb¤òÊÖ¤¹¡£¤É¤Á¤é¤Ç¤â¤Ê¤±¤ì¤Ðc¤òÊÖ¤¹¡£ //¢¢¾ò·ï±é»»»Ò¤ò»ÈÍѤ·¡¢ÌÀ¼¨Åª¤ËÈæ³Ó¼°¤ò½ñ¤¯ ¢Í ¡ßºÇŬ²½¥Ð¥°¤¬È¯À¸¤¹¤ë int test51(int a, int b, int c) { int x; x = (a < 0) ? a : (b < 0) ? b : c; return x; } //¢£´Ø¿ô»ÅÍÍ¡§a¤¬-1°Ê²¼¤Ê¤é¤Ða¤òÊÖ¤¹¡£b¤¬-1°Ê²¼¤Ê¤é¤Ðb¤òÊÖ¤¹¡£¤É¤Á¤é¤Ç¤â¤Ê¤±¤ì¤Ðc¤òÊÖ¤¹¡£ //¢¢¾ò·ï±é»»»Ò¤ò»ÈÍѤ·¡¢ÌÀ¼¨Åª¤ËÈæ³Ó¼°¤ò½ñ¤¯ ¢Í ¡ûºÇŬ²½¥Ð¥°¤¬È¯À¸¤·¤Ê¤¤ int test61(int a, int b, int c) { int x; x = (a <= -1) ? a : (b <= -1) ? b : c; return x; } //¢£´Ø¿ô»ÅÍÍ¡§a¤¬0Ķ²á¤Ê¤é¤Ða¤òÊÖ¤¹¡£b¤¬0̤Ëþ¤Ê¤é¤Ðb¤òÊÖ¤¹¡£¤É¤Á¤é¤Ç¤â¤Ê¤±¤ì¤Ðc¤òÊÖ¤¹¡£ //¢¢¾ò·ï±é»»»Ò¤ò»ÈÍѤ·¡¢ÌÀ¼¨Åª¤ËÈæ³Ó¼°¤ò½ñ¤¯ ¢Í ¡ßºÇŬ²½¥Ð¥°¤¬È¯À¸¤¹¤ë int test71(int a, int b, int c) { int x; x = (a > 0) ? a : (b < 0) ? b : c; return x; } void pceAppInit() { //°ìÈÌŪ¤Ê½é´ü²½ pceLCDDispStop(); pceLCDSetBuffer(vbuff); pceLCDDispStart(); //²èÌÌ¥¯¥ê¥¢ memset(vbuff, 0, sizeof vbuff); pceFontSetPos(0, 0); pceFontSetType(2); //¥Æ¥¹¥È´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤Þ¤¹ pceFontPrintf("test11 %4d\n", test11(0, 123, 0)); pceFontPrintf("test12 %4d\n", test12(0, 123, 0)); pceFontPrintf("test13 %4d\n", test13(0, 123, 0)); pceFontPrintf("test14 %4d\n", test14(0, 123, 0)); pceFontPrintf("test15 %4d\n", test15(0, 123, 0)); pceFontPrintf("test21 %4d\n", test21(0, 123, 0)); pceFontPrintf("test31 %4d\n", test31(0, 123, 0)); pceFontPrintf("test41 %4d\n", test41(0, 123, 0)); pceFontPrintf("test51 %4d\n", test51(0, -123, 0)); pceFontPrintf("test61 %4d\n", test61(0, -123, 0)); pceFontPrintf("test71 %4d\n", test71(0, -123, 0)); //²èÌÌžÁ÷ pceLCDTrans(); } void pceAppProc(int count) { //SELECT¥Ü¥¿¥ó¤¬²¡¤µ¤ì¤¿¤é½ªÎ»¤·¤Þ¤¹ if(pcePadGet() & TRG_SELECT) { pceAppReqExit(0); } } void pceAppExit() { //²¿¤â¤·¤Þ¤»¤ó } ¢£ºÆ¸½ÊýË¡ ¤Þ¤º¡¢ºÆ¸½¥×¥í¥°¥é¥à¤ò¡¢ºÇŬ²½Ìµ¤·¤Ç¥³¥ó¥Ñ¥¤¥ë¤·¤Æ¼Â¹Ô¤·¤Æ¤ß¤Þ¤¹¡£ ¼Â¹Ô·ë²Ì¤Ï¡¢¤³¤¦¤Ê¤ê¤Þ¤¹: http://www.piece-me.org/tropbug_ok.png ¨®¨¬¨¬¨¬¨¬¨¬¨¬¨¯ ¨­test11 123¨­ ¨­test12 123¨­ ¨­test13 123¨­ ¨­test14 123¨­ ¨­test15 123¨­ ¨­test21 123¨­ ¨­test31 123¨­ ¨­test41 123¨­ ¨­test51 -123¨­ ¨­test61 -123¨­ ¨­test71 -123¨­ ¨±¨¬¨¬¨¬¨¬¨¬¨¬¨° ºÇŬ²½Ìµ¤·¤Î¼Â¹Ô·ë²Ì¤¬¡¢Àµ¤·¤¤¼Â¹Ô·ë²Ì¤Ç¤¹¡£ ¼¡¤Ë¡¢ºÆ¸½¥×¥í¥°¥é¥à¤ò¡¢ºÇŬ²½Í­¤ê¤Ç¥³¥ó¥Ñ¥¤¥ë¤·¤Æ¼Â¹Ô¤·¤Æ¤ß¤Þ¤¹¡£ ¼Â¹Ô·ë²Ì¤Ï¡¢¤³¤¦¤Ê¤ê¤Þ¤¹¡£ http://www.piece-me.org/tropbug_ng.png ¨®¨¬¨¬¨¬¨¬¨¬¨¬¨¯ ¨­test11 0¨­ ¨­test12 0¨­ ¨­test13 0¨­ ¨­test14 123¨­ ¨­test15 123¨­ ¨­test21 0¨­ ¨­test31 0¨­ ¨­test41 123¨­ ¨­test51 0¨­ ¨­test61 -123¨­ ¨­test71 0¨­ ¨±¨¬¨¬¨¬¨¬¨¬¨¬¨° ºÇŬ²½Í­¤ê¤Î¼Â¹Ô·ë²Ì¤Ï¡¢°ìÉô¤¬°ã¤Ã¤Æ¤¤¤Þ¤¹¡£ ºÇŬ²½Ìµ¤·¤ÈºÇŬ²½Í­¤ê¤È¤Ç¡¢¼Â¹Ô·ë²Ì¤¬Æ±¤¸¤Ê¤Î¤Ï¡¢test14,test15,test41,test61 ¤Ç¤¹¡£ ºÇŬ²½Ìµ¤·¤ÈºÇŬ²½Í­¤ê¤È¤Ç¡¢¼Â¹Ô·ë²Ì¤¬°Û¤Ê¤ë¤Î¤Ï¡¢test11,test12,test13,test21,test31,test51,test71 ¤Ç¤¹¡£ Á°¼Ô¤¬¡¢ºÇŬ²½¥Ð¥°¤¬È¯À¸¤·¤Ê¤¤¥±¡¼¥¹¡¢¸å¼Ô¤¬¡¢ºÇŬ²½¥Ð¥°¤¬È¯À¸¤¹¤ë¥±¡¼¥¹¤È¤Ê¤ê¤Þ¤¹¡£ ¢£ºÇŬ²½¥³¡¼¥É ºÆ¸½¥×¥í¥°¥é¥à¤òºÇŬ²½Í­¤ê¤Ç¥³¥ó¥Ñ¥¤¥ë¤·¤¿»þ¤Ë¡¢gcc33¤¬À¸À®¤¹¤ë¥¢¥»¥ó¥×¥é¥³¡¼¥É¤ò¡¢°Ê²¼¤Ë¼¨¤·¤Þ¤¹¡£ (¸«°×¤µ¤Î¤¿¤á¤Ë¡¢À°·Á¤·¤Æ¥³¥á¥ó¥È¤òÄɵ­¤·¤Æ¤¢¤ê¤Þ¤¹¡£¥Æ¥¹¥È´Ø¿ô°Ê³°¤Ï´Ø·¸Ìµ¤¤¤Î¤Ç¡¢¾Ê¤¤¤Æ¤¢¤ê¤Þ¤¹¡£) ;//¢£´Ø¿ô»ÅÍÍ¡§a¤¬0¤Ç¤Ê¤±¤ì¤Ða¤òÊÖ¤¹¡£b¤¬0¤Ç¤Ê¤±¤ì¤Ðb¤òÊÖ¤¹¡£¤É¤Á¤é¤Ç¤â¤Ê¤±¤ì¤Ðc¤òÊÖ¤¹¡£ ;//¢¢¾ò·ï±é»»»Ò¤ò»ÈÍѤ¹¤ë ¢Í ¡ßºÇŬ²½¥Ð¥°¤¬È¯À¸¤¹¤ë test11: ld.w %r10,%r12 ;// x = a; cmp %r10,0 ;// if(a != 0) { goto __L11; } jrne __L11 ;// ld.w %r10,%r13 ;// x = b; ;//¥Ð¥°¡£¡Öcmp %r10,0¡×¤¬Â­¤ê¤Ê¤¤ ;// jrne __L11 ;// if(a != 0) { goto __L11; } ;//¥Ð¥°¡£¡Öif(b != 0)¡×¤Ç¤¢¤ë¤Ù¤­ ld.w %r10,%r14 ;// x = c; __L11: ;// ret ;// return x; ;//¢¢¾ò·ï±é»»»Ò¤ò»ÈÍѤ·¡¢ÌÀ¼¨Åª¤ËÈæ³Ó¼°¤ò½ñ¤¯ ¢Í ¡ßºÇŬ²½¥Ð¥°¤¬È¯À¸¤¹¤ë test12: ld.w %r10,%r12 ;// x = a; cmp %r10,0 ;// if(a != 0) { goto __L12; } jrne __L12 ;// ld.w %r10,%r13 ;// x = b; ;//¥Ð¥°¡£¡Öcmp %r10,0¡×¤¬Â­¤ê¤Ê¤¤ ;// jrne __L12 ;// if(a != 0) { goto __L12; } ;//¥Ð¥°¡£¡Öif(b != 0)¡×¤Ç¤¢¤ë¤Ù¤­ ld.w %r10,%r14 ;// x = c; __L12: ;// ret ;// return x; ;//¢¢¾ò·ï±é»»»Ò¤ò»ÈÍѤ·¡¢ÌÀ¼¨Åª¤Ë±¦·ë¹ç¤ò½ñ¤¯ ¢Í ¡ßºÇŬ²½¥Ð¥°¤¬È¯À¸¤¹¤ë test13: ld.w %r10,%r12 ;// x = a; cmp %r10,0 ;// if(a != 0) { goto __L13; } jrne __L13 ;// ld.w %r10,%r13 ;// x = b; ;//¥Ð¥°¡£¡Öcmp %r10,0¡×¤¬Â­¤ê¤Ê¤¤ ;// jrne __L13 ;// if(a != 0) { goto __L13; } ;//¥Ð¥°¡£¡Öif(b != 0)¡×¤Ç¤¢¤ë¤Ù¤­ ld.w %r10,%r14 ;// x = c; __L13: ;// ret ;// return x; ;//¢¢GCC³ÈÄ¥µ¡Ç½¤ò»ÈÍѤ¹¤ë ¢Í ¡ûºÇŬ²½¥Ð¥°¤¬È¯À¸¤·¤Ê¤¤ test14: ld.w %r10,%r12 ;// x = a; cmp %r10,0 ;// if(a != 0) { goto __L14; } jrne __L14 ;// ld.w %r10,%r14 ;// x = c; cmp %r13,0 ;// if(b == 0) { goto __L14; } jreq __L14 ;// ld.w %r10,%r13 ;// x = b; __L14: ;// ret ;// return x; ;//¢¢ifʸ¤ò»ÈÍѤ¹¤ë ¢Í ¡ûºÇŬ²½¥Ð¥°¤¬È¯À¸¤·¤Ê¤¤ test15: ld.w %r10,%r12 ;// x = a; ld.w %r12,%r14 ;// y = c; ;//´Ö°ã¤¤¤Ç¤Ï¤Ê¤¤¤¬¡¢ÌµÂ̤ʥ³¡¼¥É¤¬À¸À®¤µ¤ì¤Æ¤¤¤ë cmp %r10,0 ;// if(a != 0) { goto __L15; } jrne __L15 ;// ld.w %r10,%r12 ;// x = c; ;//´Ö°ã¤¤¤Ç¤Ï¤Ê¤¤¤¬¡¢ÌµÂ̤ʥ³¡¼¥É¤¬À¸À®¤µ¤ì¤Æ¤¤¤ë cmp %r13,0 ;// if(b == 0) { goto __L15; } jreq __L15 ;// ld.w %r10,%r13 ;// x = b; __L15: ;// ret ;// return x; ;//¢£´Ø¿ô»ÅÍÍ¡§a¤¬0Ķ²á¤Ê¤é¤Ða¤òÊÖ¤¹¡£b¤¬0Ķ²á¤Ê¤é¤Ðb¤òÊÖ¤¹¡£¤É¤Á¤é¤Ç¤â¤Ê¤±¤ì¤Ðc¤òÊÖ¤¹¡£ ;//¢¢¾ò·ï±é»»»Ò¤ò»ÈÍѤ·¡¢ÌÀ¼¨Åª¤ËÈæ³Ó¼°¤ò½ñ¤¯ ¢Í ¡ßºÇŬ²½¥Ð¥°¤¬È¯À¸¤¹¤ë test21: ld.w %r10,%r12 ;// x = a; cmp %r10,0 ;// if(a > 0) { goto __L21; } jrgt __L21 ;// ld.w %r10,%r13 ;// x = b; ;//¥Ð¥°¡£¡Öcmp %r10,0¡×¤¬Â­¤ê¤Ê¤¤ ;// jrgt __L21 ;// if(a > 0) { goto __L21; } ;//¥Ð¥°¡£¡Öif(b > 0)¡×¤Ç¤¢¤ë¤Ù¤­ ld.w %r10,%r14 ;// x = c; __L21: ;// ret ;// return x; ;//¢£´Ø¿ô»ÅÍÍ¡§a¤¬1°Ê¾å¤Ê¤é¤Ða¤òÊÖ¤¹¡£b¤¬1°Ê¾å¤Ê¤é¤Ðb¤òÊÖ¤¹¡£¤É¤Á¤é¤Ç¤â¤Ê¤±¤ì¤Ðc¤òÊÖ¤¹¡£ ;//¢¢¾ò·ï±é»»»Ò¤ò»ÈÍѤ·¡¢ÌÀ¼¨Åª¤ËÈæ³Ó¼°¤ò½ñ¤¯ ¢Í ¡ßºÇŬ²½¥Ð¥°¤¬È¯À¸¤¹¤ë test31: ld.w %r10,%r12 ;// x = a; cmp %r10,0 ;// if(a > 0) { goto __L31; } jrgt __L31 ;// ld.w %r10,%r13 ;// x = b; ;//¥Ð¥°¡£¡Öcmp %r10,0¡×¤¬Â­¤ê¤Ê¤¤ ;// jrgt __L31 ;// if(a > 0) { goto __L31; } ;//¥Ð¥°¡£¡Öif(b > 0)¡×¤Ç¤¢¤ë¤Ù¤­ ld.w %r10,%r14 ;// x = c; __L31: ;// ret ;// return x; //¢£´Ø¿ô»ÅÍÍ¡§a¤¬1Ķ²á¤Ê¤é¤Ða¤òÊÖ¤¹¡£b¤¬1Ķ²á¤Ê¤é¤Ðb¤òÊÖ¤¹¡£¤É¤Á¤é¤Ç¤â¤Ê¤±¤ì¤Ðc¤òÊÖ¤¹¡£ ;//¢¢¾ò·ï±é»»»Ò¤ò»ÈÍѤ·¡¢ÌÀ¼¨Åª¤ËÈæ³Ó¼°¤ò½ñ¤¯ ¢Í ¡ûºÇŬ²½¥Ð¥°¤¬È¯À¸¤·¤Ê¤¤ test41: ld.w %r10,%r12 ;// x = a; cmp %r10,1 ;// if(a > 1) { goto __L41; } jrgt __L41 ;// ld.w %r10,%r14 ;// x = c; cmp %r13,1 ;// if(b <= 1) { goto __L41; } jrle __L41 ;// ld.w %r10,%r13 ;// x = b; __L41: ;// ret ;// return x; ;//¢£´Ø¿ô»ÅÍÍ¡§a¤¬0̤Ëþ¤Ê¤é¤Ða¤òÊÖ¤¹¡£b¤¬0̤Ëþ¤Ê¤é¤Ðb¤òÊÖ¤¹¡£¤É¤Á¤é¤Ç¤â¤Ê¤±¤ì¤Ðc¤òÊÖ¤¹¡£ ;//¢¢¾ò·ï±é»»»Ò¤ò»ÈÍѤ·¡¢ÌÀ¼¨Åª¤ËÈæ³Ó¼°¤ò½ñ¤¯ ¢Í ¡ßºÇŬ²½¥Ð¥°¤¬È¯À¸¤¹¤ë test51: ld.w %r10,%r12 ;// x = a; cmp %r10,0 ;// if(a < 0) { goto __L51; } jrlt __L51 ;// ld.w %r10,%r13 ;// x = b; ;//¥Ð¥°¡£¡Öcmp %r10,0¡×¤¬Â­¤ê¤Ê¤¤ ;// jrlt __L51 ;// if(a < 0) { goto __L51; } ;//¥Ð¥°¡£¡Öif(b < 0)¡×¤Ç¤¢¤ë¤Ù¤­ ld.w %r10,%r14 ;// x = c; __L51: ;// ret ;// return x; ;//¢£´Ø¿ô»ÅÍÍ¡§a¤¬-1°Ê²¼¤Ê¤é¤Ða¤òÊÖ¤¹¡£b¤¬-1°Ê²¼¤Ê¤é¤Ðb¤òÊÖ¤¹¡£¤É¤Á¤é¤Ç¤â¤Ê¤±¤ì¤Ðc¤òÊÖ¤¹¡£ ;//¢¢¾ò·ï±é»»»Ò¤ò»ÈÍѤ·¡¢ÌÀ¼¨Åª¤ËÈæ³Ó¼°¤ò½ñ¤¯ ¢Í ¡ûºÇŬ²½¥Ð¥°¤¬È¯À¸¤·¤Ê¤¤ test61: ld.w %r10,%r12 ;// x = a; cmp %r10,-1 ;// if(a <= -1) { goto __L61; } jrle __L61 ;// ld.w %r10,%r14 ;// x = c; cmp %r13,-1 ;// if(b > -1) { goto __L61; } jrgt __L61 ;// ld.w %r10,%r13 ;// x = b; __L61: ;// ret ;// return x; ;//¢£´Ø¿ô»ÅÍÍ¡§a¤¬0Ķ²á¤Ê¤é¤Ða¤òÊÖ¤¹¡£b¤¬0̤Ëþ¤Ê¤é¤Ðb¤òÊÖ¤¹¡£¤É¤Á¤é¤Ç¤â¤Ê¤±¤ì¤Ðc¤òÊÖ¤¹¡£ ;//¢¢¾ò·ï±é»»»Ò¤ò»ÈÍѤ·¡¢ÌÀ¼¨Åª¤ËÈæ³Ó¼°¤ò½ñ¤¯ ¢Í ¡ßºÇŬ²½¥Ð¥°¤¬È¯À¸¤¹¤ë test71: ld.w %r10,%r12 ;// x = a; cmp %r10,0 ;// if(a > 0) { goto __L71; } jrgt __L71 ;// ld.w %r10,%r13 ;// x = b; ;//¥Ð¥°¡£¡Öcmp %r10,0¡×¤¬Â­¤ê¤Ê¤¤ ;// jrlt __L71 ;// if(a < 0) { goto __L71; } ;//¥Ð¥°¡£¡Öif(b < 0)¡×¤Ç¤¢¤ë¤Ù¤­ ld.w %r10,%r14 ;// x = c; __L71: ;// ret ;// return x; ¢£·ë²Ì¤Î¹Í»¡ ¢¢ºÇŬ²½¥Ð¥°¤¬È¯À¸¤¹¤ë¥±¡¼¥¹ ­¡¡Ö0¤ÈÈæ³Ó¤¹¤ë¾ò·ï¼°¡×¤Î¾ò·ï±é»»»Ò¤ò¥Í¥¹¥È¤¹¤ë¤È¡¢ºÇŬ²½¥Ð¥°¤¬È¯À¸¤·¤Þ¤¹¡£¢Ítest11 ­¢¡Ö0¤ÈÈæ³Ó¤¹¤ë¾ò·ï¼°¡×¤ò¡¢ÌÀ¼¨Åª¤ËÈæ³Ó¼°¤ò½ñ¤¤¤Æ¤â¡¢ºÇŬ²½¥Ð¥°¤¬È¯À¸¤¹¤ë¤³¤È¤ËÊѤï¤ê¤Ï¤¢¤ê¤Þ¤»¤ó¡£¢Ítest12 ­£¡Ö0¤ÈÈæ³Ó¤¹¤ë¾ò·ï¼°¡×¤ò¡¢ÌÀ¼¨Åª¤Ë±¦·ë¹ç¤ò½ñ¤¤¤Æ¤â¡¢ºÇŬ²½¥Ð¥°¤¬È¯À¸¤¹¤ë¤³¤È¤ËÊѤï¤ê¤Ï¤¢¤ê¤Þ¤»¤ó¡£¢Ítest13 ­¤¡Ö0¤ÈÈæ³Ó¤¹¤ë¾ò·ï¼°¡×¤È¤Ï¡¢¡Ö¡á0¡×¤À¤±¤Ç¤Ê¤¯¡¢¡Ö¡ã0¡×¡Ö¡å0¡×¡Ö¡æ0¡×¡Ö¡ä0¡×¤Ç¤¢¤ë¾ì¹ç¤â¡¢ºÇŬ²½¥Ð¥°¤¬È¯À¸¤·¤Þ¤¹¡£¢Ítest21,test51 ¡¡°ì¤ÄÌܤξò·ï¼°¤ÈÆó¤ÄÌܤξò·ï¼°¤¬°Û¤Ê¤Ã¤Æ¤¤¤Æ¤â¡¢¤É¤Á¤é¤â¡Ö0¤ÈÈæ³Ó¤¹¤ë¾ò·ï¼°¡×¤Ç¤¢¤ì¤Ð¡¢ºÇŬ²½¥Ð¥°¤¬È¯À¸¤·¤Þ¤¹¡£¢Ítest71 ­¤¡Ö0¤ÈÈæ³Ó¤¹¤ë¾ò·ï¼°¡×¤È¤Ï¡¢¡Ö·ë²ÌŪ¤Ë0¤ÈÈæ³Ó¤¹¤ë¾ò·ï¼°¡×¤Ç¤¢¤ë¾ì¹ç¤â¡¢ºÇŬ²½¥Ð¥°¤¬È¯À¸¤·¤Þ¤¹¡£¢Ítest31 ¡¡¡Ö·ë²ÌŪ¤Ë0¤ÈÈæ³Ó¤¹¤ë¾ò·ï¼°¡×¤È¤Ï¡¢¤¿¤È¤¨¤Ð¡¢¡Ö¡æ1¡×¤Ç¤¹¡£ ¡¡²¿¸Î¤³¤¦¤Ê¤ë¤«¤È¤¤¤¦¤È¡¢gcc33¤Ï¡Ö¡æ1¡×¤Î¾ò·ï¼°¤ò¡Ö¡ä0¡×¤ËÊÑ´¹¤·¤Æ¥³¡¼¥É¤òÀ¸À®¤¹¤ë¤«¤é¤Ç¤¹¡£(¾ï¤ËÊÑ´¹¤¹¤ë¤«¤É¤¦¤«¤ÏÉÔÌÀ) ¢¢ºÇŬ²½¥Ð¥°¤¬È¯À¸¤·¤Ê¤¤¥±¡¼¥¹ ­¥GCC³ÈÄ¥µ¡Ç½¤ò»ÈÍѤ·¤Æ¡¢¡Ö¡á0¡×¤Î¾ò·ï¼°¤ò¾Êά¤·¤¿½ñ¤­Êý¤ò¤¹¤ë¤È¡¢ºÇŬ²½¥Ð¥°¤¬È¯À¸¤·¤Þ¤»¤ó¡£¢Ítest14 ­¦¾ò·ï±é»»»Ò¤ò»ÈÍѤ»¤º¡¢ifʸ¤ò¥Í¥¹¥È¤·¤Æ½ñ¤¯¤È¡¢ºÇŬ²½¥Ð¥°¤¬È¯À¸¤·¤Þ¤»¤ó¡£¢Ítest15 ­§¡Ö0¤ÈÈæ³Ó¤¹¤ë¾ò·ï¼°¡×¤Ç¤Ê¤¤¾ì¹ç¤Ï¡¢ºÇŬ²½¥Ð¥°¤¬È¯À¸¤·¤Þ¤»¤ó¡£¢Ítest41 ­¨¡Ö·ë²ÌŪ¤Ë0¤ÈÈæ³Ó¤¹¤ë¾ò·ï¼°¡×¤ËÊÑ´¹¤Ç¤­¤ë¾ì¹ç¤Ç¤¢¤Ã¤Æ¤â¡¢¡Ö¡å-1¡×¤Î¾ì¹ç¤Ï¡¢ºÇŬ²½¥Ð¥°¤¬È¯À¸¤·¤Þ¤»¤ó¡£¢Ítest61 ¡¡Á°½Ò(­¤)¤ÎÄ̤êgcc33¤Ï¡Ö¡æ1¡×¤Î¾ò·ï¼°¤ò¡Ö¡ä0¡×¤ËÊÑ´¹¤·¤Þ¤¹¤¬¡¢²¿¸Î¤«¡Ö¡å-1¡×¤ò¡Ö¡ã0¡×¤ËÊÑ´¹¤·¤Ê¤¤¤«¤é¤Ç¤¹¡£(¾ï¤ËÊÑ´¹¤·¤Ê¤¤¤«¤É¤¦¤«¤ÏÉÔÌÀ) ¢£¤Þ¤È¤á ¤³¤ÎºÇŬ²½¥Ð¥°¤Ï¡¢¤«¤Ê¤ê´í¸±¤À¤È»×¤¤¤Þ¤¹¡£ ¡ÖÊÑ¿ôa,b,c¤ÎÃæ¤ÇºÇ½é¤ËNULL¤Ç¤Ê¤¤Ãͤò¼èÆÀ¤¹¤ë¡×¤È¤¤¤¦ÌÜŪ¤Ç¡¢¡Öa?a:b?b:c;¡×¤È½ñ¤¯¤³¤È¤¬Îɤ¯¤¢¤ë¤«¤é¤Ç¤¹¡£ ¤¿¤È¤¨¤Ð¡Öa=NULL,b=foo,c=NULL;¡×¤Î¾ì¹ç¤Ë¡¢¡Öa?a:b?b:c;¡×¤Î·ë²Ì¤¬foo¤Ç¤Ê¤¯NULL¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¤¤Þ¤¹¡£ ¡Ö¡á0¡×¡Ö¡áNULL¡×¤Î¾ò·ï¼°¤Ê¤é¤Ð¡¢GCC³ÈÄ¥µ¡Ç½¤ò»È¤Ã¤Æ¡Öa?:b?:c;¡×¤È½ñ¤±¤Ð¡¢ºÇŬ²½¥Ð¥°¤ò²óÈò¤Ç¤­¤Þ¤¹¡£ ¤·¤«¤·¡¢Âç¾®Èæ³Ó¤Ç¤¢¤ë¾ì¹ç¤ÏGCC³ÈÄ¥µ¡Ç½¤ËÃÖ¤­´¹¤¨¤é¤ì¤Ê¤¤¤Î¤Ç¡¢¤³¤Î²óÈòÊýË¡¤Ï»È¤¨¤Þ¤»¤ó¡£ ¢¢·ëÏÀ¡§³Î¼Â¤Ë°ÂÁ´¤ò´ü¤¹¤¿¤á¤Ë¤Ï: ¨®¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¯ ¨­¡Ö0¤ÈÈæ³Ó¤¹¤ë¾ò·ï¼°¡×¤Î¾ò·ï±é»»»Ò¤ò¥Í¥¹¥È¤¹¤ë¤³¤È¤ÏÈò¤±¤Æ¡¢¾ï¤Ëifʸ¤Î¥Í¥¹¥È¤ò»È¤¦¤è¤¦¤Ë¤¹¤ë ¨­ ¨±¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨° ¼«Ê¬¤Ç¥×¥í¥°¥é¥à¤ò½ñ¤¯¾ì¹ç¤Ï¡¢¾åµ­¤ÎÅÀ¤Ëα°Õ¤·¤Æ½ñ¤±¤ÐÎɤ¤¤Î¤Ç¤¹¤¬¡¢¥ª¡¼¥×¥ó¥½¡¼¥¹Åù¤òP/ECE¤Ç¥³¥ó¥Ñ¥¤¥ë¤·¤Æ»È¤¦¾ì¹ç¤Ï¡¢¤â¤Ã¤ÈÍ×Ãí°Õ¤Ç¤¹¡£ Æäˡ¢Á°½Ò¤Î¡Öa?a:b?b:c;¡×¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¥±¡¼¥¹¤¬¡¢Â¿¤¤¤È»×¤¤¤Þ¤¹¡£ ²¿¤«¤¦¤Þ¤¯Æ°¤«¤Ê¤¤¾ì¹ç¤Ï¡¢¤³¤ÎºÇŬ²½¥Ð¥°¤¬¸¶°ø¤Ç¤Ê¤¤¤«¡¢¥½¡¼¥¹¤òÌÜ»ë³Îǧ¤¹¤ëɬÍפ¬¤¢¤ë¤Ç¤·¤ç¤¦¡¦¡¦¡¦(ÌÌÅݤǤ¹¤¬(^^;) ¢£º£¸å¤Î²ÝÂê(TODO) ÌÜ»ë³Îǧ¤¹¤ë¤Î¤ÏÌÌÅݤÀ¤·¸«Íî¤È¤¹¤ª¤½¤ì¤¬¤¢¤ë¤Î¤Ç¡¢¤¢¤ëÄøÅÙ¥Á¥§¥Ã¥¯¤ò¼«Æ°²½¤Ç¤­¤Ê¤¤¤«¸¡Æ¤¤·¤Þ¤¹¡£ ¤¿¤È¤¨¤Ð¡¢¡ØC¸À¸ì¥½¡¼¥¹¤òÆɤ߹þ¤ó¤Ç¡¢¾ò·ï±é»»»Ò¤Î¥Í¥¹¥ÈÉôʬ¤òÃê½Ð¤¹¤ë¥Õ¥£¥ë¥¿¡Ù¤òºîÀ®¤·¤Æ¡¢¥½¡¼¥¹Á´ÂΤ«¤é´í¸±¤½¤¦¤ÊÉôʬ¤Î¤ß¤ò¼«Æ°Ãê½Ð¤·¡¢ Ãê½Ð¤·¤¿Éôʬ¤Ë¤Ä¤¤¤Æ¡¢¡Ø¡Ö0¤ÈÈæ³Ó¤¹¤ë¾ò·ï¼°¡×¤Î¾ò·ï±é»»»Ò¤Î¥Í¥¹¥È¡Ù¤Ç¤¢¤ë¤«¤É¤¦¤«¤À¤±¤ò¡¢ÌÜ»ë³Îǧ¤¹¤ì¤ÐºÑ¤à¤è¤¦¤Ë¤·¤¿¤¤¤Ç¤¹¡£ * Thu Jan 19 01:01:11 JST 2012 Naoyuki Sawa - pceFontPrintf()¤Î¥Ð¥° P/ECE API¤ÎpceFontPrintf()¤Ë¤Ï¡¢¥Ð¥°¤¬¤¢¤ê¤Þ¤¹¡£ Ť¤Ê¸»úÎó¤òɽ¼¨¤·¤è¤¦¤È¤¹¤ë¤È¡¢¥Ï¥ó¥°¥¢¥Ã¥×¤¹¤ë¤³¤È¤¬¤¢¤ë¡¢¤È¤¤¤¦¥Ð¥°¤Ç¤¹¡£ ¶ñÂÎŪ¤Ë¤Ï¡¢¡Ö°ú¿ô¤òŸ³«Ãæ¤Ë35ʸ»ú¤Î¶­³¦¤òĶ¤¨¤ë¤È¡¢¥Ï¥ó¥°¥¢¥Ã¥×¤¹¤ë¡×¤È¤¤¤¦¤â¤Î¤Ç¤¹¡£ °Ê²¼¤Ë¡¢ºÆ¸½ÊýË¡¤È¡¢¸¶°ø¤È¡¢²óÈòÊýË¡¤òÀâÌÀ¤·¤Þ¤¹¡£ ¢£ºÆ¸½ÊýË¡ ¢¢°ú¿ô36ʸ»ú¢Í¥Ï¥ó¥°¥¢¥Ã¥× °Ê²¼¤Î¥³¡¼¥É¤ò¼Â¹Ô¤¹¤ë¤È¡¢¥Ï¥ó¥°¥¢¥Ã¥×¤·¤Þ¤¹¡£ pceFontPrintf("%s", "012345678901234567890123456789012345"); ¢¢½ñ¼°36ʸ»ú¢ÍÂç¾æÉ× °Ê²¼¤Î¥³¡¼¥É¤ò¼Â¹Ô¤·¤Æ¤â¡¢¥Ï¥ó¥°¥¢¥Ã¥×¤·¤Þ¤»¤ó¡£ pceFontPrintf("012345678901234567890123456789012345"); ¢¢½ñ¼°30ʸ»ú¤ÎËöÈø¤Ë°ú¿ô6ʸ»ú¤òŸ³«¢Í¥Ï¥ó¥°¥¢¥Ã¥× °Ê²¼¤Î¥³¡¼¥É¤ò¼Â¹Ô¤¹¤ë¤È¡¢¥Ï¥ó¥°¥¢¥Ã¥×¤·¤Þ¤¹¡£ pceFontPrintf("012345678901234567890123456789%s", "012345"); ¢¢½ñ¼°30ʸ»ú¤ÎÀèƬ¤Ë°ú¿ô6ʸ»ú¤òŸ³«¢ÍÂç¾æÉ× °Ê²¼¤Î¥³¡¼¥É¤ò¼Â¹Ô¤·¤Æ¤â¡¢¥Ï¥ó¥°¥¢¥Ã¥×¤·¤Þ¤»¤ó¡£ pceFontPrintf("%s012345678901234567890123456789", "012345"); ¢£¸¶°ø ¥Ð¥°¤Î¸¶°ø¤Ï¡¢P/ECE¥«¡¼¥Í¥ë¥½¡¼¥¹Æâ¤Î¥Þ¥¯¥íÄêµÁ¤¬¡¢°ì²Õ½ê¸í¤Ã¤Æ¤¤¤ë¤¿¤á¤Ç¤¹¡£ C:\usr\PIECE\sysdev\pcekn\doprnt.c¡¡88¹ÔÌÜ #define PUTC(ch) *pob->outp++ = (ch); if (pob->outp >= pob->endp) pob->flush(pob); PUTC()¤Ï¡¢pceFontPrintf()¤Ë»ØÄꤷ¤¿½ñ¼°¤È°ú¿ô¤ò¡¢°ì»þŪ¤Ê¥Ð¥Ã¥Õ¥¡¤ËŸ³«¤¹¤ëºÝ¡¢°ìʸ»úËè¤Ë¥Ð¥Ã¥Õ¥¡¤Î½ªÃ¼¤ËÅþ㤷¤Æ¤¤¤Ê¤¤¤«¥Á¥§¥Ã¥¯¤·¡¢ ¥Ð¥Ã¥Õ¥¡¤Î½ªÃ¼¤ËÅþ㤷¤Æ¤¤¤¿¤é¡¢°ìö¤½¤³¤Þ¤Ç¤òɽ¼¨¤·¤Æ¡¢Å¸³«Àè¤òºÆ¤Ó¥Ð¥Ã¥Õ¥¡¤ÎÀèƬ¤ËÌ᤹¤¿¤á¤ËÍøÍѤµ¤ì¤Æ¤¤¤ë¥Þ¥¯¥í¤Ç¤¹¡£ °Ê²¼¤Î¥³¡¼¥É¤Ï¡¢½ñ¼°¤ÎÃæ¤Îʸ»ú¤ò¤½¤Î¤Þ¤ÞŸ³«¤·¤Æ¤¤¤ë¤È¤³¤í¤Ç¤¹¡£ ¤³¤ì¤Ï¡¢ÌäÂꤢ¤ê¤Þ¤»¤ó¡£ C:\usr\PIECE\sysdev\pcekn\doprnt.c¡¡122¹ÔÌÜ¡Á while ( (ch = *fmt) && ch != '%' ) { PUTC( ch ); fmt++; cnt++; } °Ê²¼¤Î¥³¡¼¥É¤Ï¡¢½ñ¼°¤Ë½¾¤Ã¤Æ¡¢°ú¿ô¤òŸ³«¤·¤Æ¤¤¤ë¤È¤³¤í¤Ç¤¹¡£¡Ê¾¤Ë¤â²¿²Õ½ê¤«¤¢¤ê¤Þ¤¹¡Ë ¤³¤³¤Ë¡¢ÌäÂ꤬¤¢¤ê¤Þ¤¹¡£ C:\usr\PIECE\sysdev\pcekn\doprnt.c¡¡402¹ÔÌÜ¡Á /* the string or number proper */ n = size; while (--n >= 0) PUTC(*t++); ËÜÍè¡¢¾åµ­¤Î¥³¡¼¥É¤Ï¡¢°Ê²¼¤Î¤è¤¦¤Ë¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£ /* the string or number proper */ n = size; while (--n >= 0) { *pob->outp++ = *t++; if (pob->outp >= pob->endp) pob->flush(pob); } ¤È¤³¤í¤¬¡¢PUTC()¤ÎÄêµÁ¤¬ { } ¤Ç°Ï¤à¤Î¤ò˺¤ì¤Æ¤¤¤ë¤¿¤á¡¢¾åµ­¤Î¥³¡¼¥É¤Ï°Ê²¼¤Î¤è¤¦¤Ë¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤Æ¤·¤Þ¤¤¤Þ¤¹¡£ /* the string or number proper */ n = size; while (--n >= 0) { *pob->outp++ = *t++; } if (pob->outp >= pob->endp) pob->flush(pob); °ìʸ»úŸ³«¤¹¤ëÅ٤˥Хåե¡¤Î½ªÃ¼¤ËÅþ㤷¤Æ¤¤¤ë¤«¤ò¥Á¥§¥Ã¥¯¤¹¤ë¤Î¤Ç¤Ê¤¯¡¢Á´ÉôŸ³«¤·¤Æ¤«¤é¥Ð¥Ã¥Õ¥¡¤Î½ªÃ¼¤ËÅþ㤷¤Æ¤¤¤ë¤«¤ò¥Á¥§¥Ã¥¯¤·¤Æ¤·¤Þ¤¤¤Þ¤¹¡£ Ÿ³«¤ÎÅÓÃæ¤Ç¥Ð¥Ã¥Õ¥¡¤Î½ªÃ¼¤òĶ¤¨¤¿¾ì¹ç¡¢¥á¥â¥êÇ˲õ¤¬È¯À¸¤·¤Æ¤·¤Þ¤¦¤È¤¤¤¦¤ï¤±¤Ç¤¹¡£ ¢¢¸¶°ø¡§Êä­ ¡Ö°ú¿ô¤òŸ³«Ãæ¤Ë35ʸ»ú¤Î¶­³¦¤òĶ¤¨¤ë¤È¡¢¥Ï¥ó¥°¥¢¥Ã¥×¤¹¤ë¡×¤È¤¤¤¦¥Ð¥°µóÆ°¤Î¡¢¤Ê¤¼"35ʸ»ú"¤Ê¤Î¤«¤òÊä­ÀâÌÀ¤·¤Þ¤¹¡£ C:\usr\PIECE\sysdev\pcekn\doprnt.c¡¡834¹ÔÌÜ¡Á int pceFontPrintf( const char *fmt, ... ) { OUTBF b; char buff[31+1]; int c; b.topp = b.outp = buff; b.endp = buff+sizeof(buff)-1; b.flush = OutFont; c = doprnt( &b, fmt, (va_list)((&fmt)+1) ); OutFont( &b ); return c; } ¾åµ­¥³¡¼¥É¤Î"buff[31+1]"¤¬¡¢Å¸³«¥Ð¥Ã¥Õ¥¡¤Ç¤¹¡£ Á°½Ò¤Î¤È¤ª¤ê¡¢°ú¿ô¤ÎŸ³«Ãæ¤Ë°ìʸ»úËè¤Ë¥Ð¥Ã¥Õ¥¡¤Î½ªÃ¼¤ËÅþã(=31ʸ»ú¤òĶ¤¨¤¿)¤·¤Æ¤¤¤Ê¤¤¤«¥Á¥§¥Ã¥¯¤¹¤ë½èÍý¤Ë¥Ð¥°¤¬¤¢¤ë¤¿¤á¡¢ °ú¿ô¤ÎŸ³«Ãæ¤Ë¥Ð¥Ã¥Õ¥¡¤Î31ʸ»úÌܤòĶ¤¨¤Æ32ʸ»úÌܤËÅþ㤹¤ë¤È¡¢¥Ì¥ëʸ»ú¤ò´Þ¤á¤Æ33ʸ»ú°Ê¾å¤Ë¤Ê¤ê¡¢¥á¥â¥êÇ˲õ¤¬È¯À¸¤·¤Þ¤¹¡£ ¤È¤³¤í¤¬¤¿¤Þ¤¿¤Þ¡¢"buff[31+1]"¤Îľ¸å¤Ë¤Ï¡¢ÊÑ¿ô"c"¤¬4¥Ð¥¤¥ÈʬÇÛÃÖ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ doprnt()¤ÎÃæ¤Ç¡¢"buff[31+1]"¤òÆͤ­È´¤±¤ÆÊÑ¿ô"c"¤Î¥á¥â¥ê¤òÇ˲õ¤·¤Æ¤â¡¢doprnt()¤¬½èÍý¤òÊÖ¤¹¤Þ¤ÇÊÑ¿ô"c"¤Ï»ÈÍѤ·¤Ê¤¤¤Î¤Ç±Æ¶Á¤¬¤Ê¤¤¡¢¤È¤¤¤¦¤ï¤±¤Ç¤¹¡£ 35ʸ»ú¤òĶ¤¨¤ë¤È¡¢ÊÑ¿ô"c"¤Î¸å¤í¤Ë³ÊǼ¤µ¤ì¤Æ¤¤¤ë¥ê¥¿¡¼¥ó¥¢¥É¥ì¥¹¤òÇ˲õ¤·¤Æ¤·¤Þ¤¤¡¢pceFontPrintf()¤«¤é¤Î¥ê¥¿¡¼¥ó»þ¤Ë¥Ï¥ó¥°¥¢¥Ã¥×¤·¤Þ¤¹¡£ ¢£²óÈòÊýË¡£±¡§´Êñ¤Ê²óÈòÊýË¡ ´Êñ¤Ê²óÈòÊýË¡¤Ï¡¢pceFontPrintf()¤Ç35ʸ»ú¤òĶ¤¨¤ëʸ»úÎó¤òɽ¼¨¤·¤Ê¤¤¤è¤¦¤ËÃí°Õ¤¹¤ë¡¢¤È¤¤¤¦ÊýË¡¤Ç¤¹¡£ ¸·Ì©¤Ë¤Ï¡¢¡Ö°ú¿ô¤òŸ³«Ãæ¤Ë35ʸ»ú¤Î¶­³¦¤òĶ¤¨¤Ê¤±¤ì¤Ð¡×Îɤ¤¤Î¤Ç¤¹¤¬¡¢¤³¤Î¾ò·ï¤ò»öÁ°¤Ë¥Á¥§¥Ã¥¯¤¹¤ë¤Î¤ÏÆñ¤·¤¤¤Ç¤¹¡£ ºÇ½ªÅª¤Ê½ÐÎϤ¬35ʸ»ú°Ê²¼¤Ë¤Ê¤ë¤è¤¦¤ËÃí°Õ¤·¤Æ»È¤¦¤Î¤¬¡¢°ÂÁ´¤À¤È»×¤¤¤Þ¤¹¡£ ¢£²óÈòÊýË¡£²¡§³Î¼Â¤Ê²óÈòÊýË¡ ³Î¼Â¤Ê²óÈòÊýË¡¤Ï¡¢¥Ð¥°¤ò½¤Àµ¤·¤¿pceFontPrintf()¤ò¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ë´Þ¤á¤Æ¤·¤Þ¤¦ÊýË¡¤Ç¤¹¡£ ¤³¤Î¥Õ¥¡¥¤¥ë(http://www.piece-me.org/piece-lab/pceFontPrintf/doprnt.c)¤ò¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ë´Þ¤á¤Æ¥³¥ó¥Ñ¥¤¥ë¤¹¤ì¤Ðok¤Ç¤¹¡£ ¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¡¢C:\usr\PIECE\sysdev\pcekn\doprnt.c ¤ò¥³¥Ô¡¼¤·¤Æ¡¢¾¯¤·¤À¤±Êѹ¹¤·¤¿¤â¤Î¤Ç¤¹¡£ Êѹ¹ÅÀ¤Ï¡¢°Ê²¼¤ÎÆóÅÀ¤Ç¤¹¡£ ¡¦°ìÅÀÌÜ¡§88¹ÔÌÜ #define PUTC(ch) { *pob->outp++ = (ch); if (pob->outp >= pob->endp) pob->flush(pob); } //{{½¤Àµ}} ¾å¤ÇÀâÌÀ¤·¤¿¡¢PUTC()¤Î¥Ð¥°¤ò½¤Àµ¤·¤Þ¤·¤¿¡£¤³¤ÎÊѹ¹¤Ïɬ¿Ü¤Ç¤¹¡£ ¡¦ÆóÅÀÌÜ¡§787¹ÔÌÜ¡Á //int pcevsprintf( char *outp, const char *fmt0, va_list argp ) //{{ºï½ü}} //{ //{{ºï½ü}} // OUTBF b; //{{ºï½ü}} // b.outp = outp; //{{ºï½ü}} // b.endp = (char *)-1; //{{ºï½ü}} // return doprnt( &b, fmt0, argp ); //{{ºï½ü}} //} //{{ºï½ü}} //int pcesprintf( char *outp, const char *fmt, ... ) //{{ºï½ü}} //{ //{{ºï½ü}} // OUTBF b; //{{ºï½ü}} // b.outp = outp; //{{ºï½ü}} // b.endp = (char *)-1; //{{ºï½ü}} // return doprnt( &b, fmt, (va_list)((&fmt)+1) ); //{{ºï½ü}} //} //{{ºï½ü}} pcevsprintf()¤Èpcesprintf()¤òºï½ü¤·¤Þ¤·¤¿¡£¤³¤ÎÊѹ¹¤Ïɬ¿Ü¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¤¬¡¢¥á¥â¥êÀáÌó¤Î¤¿¤á¤Ëºï½ü¤·¤Þ¤·¤¿¡£ pcevsprintf()¤Èpcesprintf()¤Ï¡¢P/ECE¥«¡¼¥Í¥ëÆâ¤Îpcevsprintf()¤Èpcesprintf()¤ò¡¢¤½¤Î¤Þ¤Þ»È¤Ã¤Æ¤âÂç¾æÉפǤ¹¡£ pcevsprintf()¤Èpcesprintf()¤Ï¸µ¡¹¡¢¥Ð¥Ã¥Õ¥¡¤Î½ªÃ¼¤ò¥Á¥§¥Ã¥¯¤·¤Æ¤¤¤Ê¤¤¤Î¤Ç¡¢PUTC()¤Î¥Ð¥°¤¬¤¢¤Ã¤Æ¤âÆ°ºî·ë²Ì¤Ë°ã¤¤¤Ï̵¤¤¤«¤é¤Ç¤¹¡£ ²óÈòÊýË¡£²¤Î·çÅÀ¤Ï¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Î¥³¡¼¥É¥µ¥¤¥º¤¬Áý¤¨¤Æ¤·¤Þ¤¦¤³¤È¤Ç¡¢3¥­¥í¥Ð¥¤¥È¶á¤¯Áý¤¨¤Æ¤·¤Þ¤¤¤Þ¤¹¡£ PUTC()¤Î°ì¹Ô¤ò½¤Àµ¤¹¤ë¤¿¤á¤À¤±¤Ë¡¢P/ECE¥«¡¼¥Í¥ëÆâ¤ÎpceFontPrintf()¤ò¼Î¤Æ¤Æ¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥óÆâ¤ËpceFontPrintf()¤òÊú¤¨¤Æ¤·¤Þ¤¦¤«¤é¤Ç¤¹¡£ ²óÈòÊýË¡£²¤ÎÊý¤¬³Î¼Â¤Ç°Â¿´¤Ç¤Ï¤¢¤ë¤Î¤Ç¤¹¤¬¡¢pceFontPrintf()¤Î»ÈÍѲս꤬¾¯¤Ê¤¯½¼Ê¬Ãí°Õ¤Ç¤­¤ë¾ì¹ç¤Ï¡¢²óÈòÊýË¡£±¤ÎÊý¤¬Îɤ¤¤«¤âÃΤì¤Þ¤»¤ó¡£ ¢¢²óÈòÊýË¡£²¡§Êä­ P/ECE API¤Î¥Ð¥°¤ò½¤Àµ¤¹¤ë¾ì¹ç¡¢¸·Ì©¤Ë¤Ï¡¢½¤Àµ¤·¤¿´Ø¿ô¤ò¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ë¥ê¥ó¥¯¤¹¤ë¤À¤±¤Ç¤Ê¤¯¡¢¥«¡¼¥Í¥ë¥µ¡¼¥Ó¥¹¥Ù¥¯¥¿¤òÅÐÏ¿¤·¤Ê¤±¤ì¤Ð¤¤¤±¤Þ¤»¤ó¡£ ¥«¡¼¥Í¥ë¥µ¡¼¥Ó¥¹¥Ù¥¯¥¿¤òÅÐÏ¿¤¹¤ë¤Ë¤Ï¡¢°Ê²¼¤Î¤è¤¦¤Ë¹Ô¤¤¤Þ¤¹¡£ PCEKSENT old_pceFontPrintf; void pceAppInit() { ¡Ä //¥«¡¼¥Í¥ë¥µ¡¼¥Ó¥¹¥Ù¥¯¥¿¤Ë¡¢½¤Àµ¤·¤¿pceFontPrintf()¤òÅÐÏ¿¤¹¤ë old_pceFontPrintf = pceVectorSetKs(29/*KSNO_FontPrintf*/, fix_pceFontPrintf); ¡Ä } void pceAppExit() { ¡Ä //¥«¡¼¥Í¥ë¥µ¡¼¥Ó¥¹¥Ù¥¯¥¿¤Ë¡¢¸µ¤ÎpceFontPrintf()¤òÌ᤹ pceVectorSetKs(29/*KSNO_FontPrintf*/, old_pceFontPrintf); ¡Ä } ¤³¤¦¤¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤À¤±¤Ç¤Ê¤¯¡¢¥«¡¼¥Í¥ëÆâ¤ÇAPI¤ò»ÈÍѤ·¤Æ¤¤¤ë¾ì¹ç¤â¡¢½¤Àµ¤·¤¿´Ø¿ô¤¬ÍøÍѤµ¤ì¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¨¡¨¡¨¡ ¨¡¨¡¨¡ËÜÍè¤Ï¤½¤¦¤Ç¤¢¤ë¤Ù¤­¤Ê¤Î¤Ç¤¹¤¬¡¢»ÄÇ°¤Ê¤¬¤é¡¢pceFontPrintf()¤Ë¤Ä¤¤¤Æ¤Ï¡¢¤½¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤»¤ó¡£ ¥«¡¼¥Í¥ëÆ⤫¤é¤ÎpceFontPrintf()¤Î¸Æ¤Ó½Ð¤·¤¬¡¢¥«¡¼¥Í¥ë¥µ¡¼¥Ó¥¹¥Ù¥¯¥¿·Ðͳ¤Ç¤Ê¤¯¡¢Ä¾ÀܸƤӽФ·¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤«¤é¤Ç¤¹¡£ ¤½¤ó¤Ê¤ï¤±¤Ç¡¢¥«¡¼¥Í¥ëÆ⤫¤é¤ÎpceFontPrintf()¸Æ¤Ó½Ð¤·¤Ï¡¢¤É¤¦¤·¤Æ¤â¡¢¥Ð¥°Í­¤ê¤ÎpceFontPrintf()¤¬¸Æ¤Ó½Ð¤µ¤ì¤Æ¤·¤Þ¤¤¤Þ¤¹¡£ ¤µ¤¤¤ï¤¤¡¢¥«¡¼¥Í¥ëÆâ¤ÇpceFontPrintf()¤ò»È¤Ã¤Æ¤¤¤ë²Õ½ê¤Ï¡¢¥·¥¹¥Æ¥à¥á¥Ë¥å¡¼¤ä¥¨¥é¡¼É½¼¨¤Ê¤É¡¢Ã»¤¤Ê¸»úÎó¤Îɽ¼¨ÍÑÅӤФ«¤ê¤Ç¤¹¡£ ¤³¤ì¤é¤ÎÍÑÅӤǡ¢35ʸ»ú¤òĶ¤¨¤ëɽ¼¨¤Ë¤Ê¤ë¤³¤È¤Ï̵¤µ¤½¤¦¤Ê¤Î¤Ç¡¢¤Ò¤È¤Þ¤º°Â¿´¤Ç¤¹¡£ ¢£ºÇ¸å¤Ë º£²óÀâÌÀ¤·¤¿¥Ð¥°¤Ï¡¢P/ECEËÜÂÎÉÕ°¤Î°ìÈָŤ¤¥«¡¼¥Í¥ë(Ver 1.00)¤«¤éÍ­¤Ã¤¿¤â¤Î¤Ç¡¢¸½»þÅÀ¤ÇºÇ¿·¤Î¥«¡¼¥Í¥ë(Ver 1.20)¤Ç¤â½¤Àµ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¤Ç¤·¤¿¡£ pceFontPrintf()¤Ë¡¢Ä¹¤¤½ñ¼°Ê¸»úÎó¤ò»ØÄꤹ¤ë¤³¤È¤Ï¤¢¤Ã¤Æ¤â¡¢Ä¹¤¤°ú¿ôʸ»úÎó¤ò»ØÄꤹ¤ë¤³¤È¤Ï¤¢¤Þ¤ê¤Ê¤¤¤¿¤á¡¢¸²ºß²½¤·¤Ê¤«¤Ã¤¿¤Î¤«¤âÃΤì¤Þ¤»¤ó¤Í¡£ º£²ó»ÈÍѤ·¤¿¥µ¥ó¥×¥ë¥×¥í¥°¥é¥à°ì¼°¤Ï¡¢¤³¤Á¤é: http://www.piece-me.org/archive/pceFontPrintf_BugReport-20120119.zip * Wed Apr 06 00:00:00 JST 2005 Naoyuki Sawa - ¥¹¥È¥ê¡¼¥àºÆÀ¸¤Î¤Þ¤È¤á#2 º£²ó¤âHTML¤Ç½ñ¤­¤Þ¤·¤¿¡£°Ê²¼¤ÎURL¤ò¤´Í÷²¼¤µ¤¤¡£ http://www.piece-me.org/piece-lab/stream/stream2.html * Sat Mar 26 19:35:00 JST 2005 Naoyuki Sawa - ¥¹¥È¥ê¡¼¥àºÆÀ¸¤Î¤Þ¤È¤á#1 º£²ó¤ÏHTML¤Ç½ñ¤­¤Þ¤·¤¿¡£°Ê²¼¤ÎURL¤ò¤´Í÷²¼¤µ¤¤¡£ http://www.piece-me.org/piece-lab/stream/stream1.html * Fri Feb 25 06:00:00 JST 2005 Naoyuki Sawa - ³¡¦¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¤Î¸íÆ°ºî¡Á"jp.d %rb"Ì¿Îá¤Ï»ÈÍÑÉÔ²Ä 2003ǯ12·î17Æü¡Á23Æü¤ÎP/ECE¸¦µæµ­Ï¿¡Ö¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¤Î¸íÆ°ºî¡×¤Ç¡¢"jp.d %rb"Ì¿Îá¤ÎľÁ°¤Ë¥á¥â¥ê¥¢¥¯¥»¥¹Ì¿Îá¤òÃÖ¤¯¤È¥Ç¥£¥ì¥¤¥ÉÌ¿Î᤬¼Â¹Ô¤µ¤ì¤Ê¤¤¡¢ ¤È¤¤¤¦ÉÔ¶ñ¹ç¤Ë¤Ä¤¤¤Æµ­¤·¤Þ¤·¤¿¡£ ¡ü¥Ç¥£¥ì¥¤¥ÉÌ¿Î᤬Àµ¤·¤¯¼Â¹Ô¤µ¤ì¤ëÎã ld.b %r4, %r7 ; ¥á¥â¥ê¥¢¥¯¥»¥¹°Ê³°¤ÎÌ¿Îá jp.d %r6 ; %r6¥ì¥¸¥¹¥¿¤Î»Ø¤¹¥¢¥É¥ì¥¹¤Ø¥¸¥ã¥ó¥×¡Ä add %r5, 1 ; ¡Ä¤¹¤ëÁ°¤Ë¡¢¤³¤Î¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¤ò¼Â¹Ô¤·¤Þ¤¹¡£ ¡ü¥Ç¥£¥ì¥¤¥ÉÌ¿Î᤬Àµ¤·¤¯¼Â¹Ô¤µ¤ì¤ëÎã ld.b [%r4], %r7 ; ¥á¥â¥ê¥¢¥¯¥»¥¹Ì¿Îá jp.d %r6 ; %r6¥ì¥¸¥¹¥¿¤Î»Ø¤¹¥¢¥É¥ì¥¹¤Ø¥¸¥ã¥ó¥×¡Ä add %r5, 1 ; ¡Ä¤¹¤ëÁ°¤Ë¡¢¤³¤Î¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¤ò¼Â¹Ô¤·¤Ê¤±¤ì¤Ð¤¤¤±¤Ê¤¤¤Î¤Ç¤¹¤¬¡¢¼Â¹Ô¤µ¤ì¤Þ¤»¤ó!! ¾Ü¤·¤¯¤Ï¡¢2003ǯ12·î17Æü¡Á23Æü¤ÎP/ECE¸¦µæµ­Ï¿¡Ö¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¤Î¸íÆ°ºî¡×¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ ----------------------------------------------------------------------------- "jp.d %rb"Ì¿Îá¤ÎľÁ°¤Ë¥á¥â¥ê¥¢¥¯¥»¥¹Ì¿Îá¤òÃÖ¤¯¤³¤È¤µ¤¨¤·¤Ê¤±¤ì¤ÐÀµ¤·¤¯Æ°ºî¤¹¤ë¤Î¤Ê¤é¤Ð¡¢ ¥×¥í¥°¥é¥ß¥ó¥°»þ¤Ëµ¤¤ò¤Ä¤±¤Æ¤µ¤¨¤¤¤ì¤Ð¡¢"jp.d %rb"Ì¿Îá¤Î¸íÆ°ºî¤ò³Î¼Â¤Ë²óÈò¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ ¤·¤«¤·¼ÂºÝ¤Ë¤Ï¡¢¸íÆ°ºî¤¬È¯À¸¤¹¤ë¾ò·ï¤Ï¤½¤ì¤À¤±¤Ç¤Ï¤Ê¤¯¡¢»ö¼Â¾å"jp.d %rb"Ì¿Îá¤Ï»ÈÍÑÉÔ²Äǽ¤Ç¤¢¤ë¤³¤È¤¬¤ï¤«¤ê¤Þ¤·¤¿¡£ ¤½¤Î¾ò·ï¤È¤Ï¡¢ "jp.d %rb"Ì¿Îá¤Î¼Â¹Ô¤È¡¢DMAžÁ÷¤Ë¤è¤ë¥á¥â¥ê¥¢¥¯¥»¥¹¤Î¥¿¥¤¥ß¥ó¥°¤¬½Å¤Ê¤ë¤È¡¢ "jp.d %rb"Ì¿Îá¤Î¥Ç¥£¥ì¥¤¥¹¥í¥Ã¥È¤ËÃÖ¤«¤ì¤¿¥Ç¥£¥ì¥¤¥ÉÌ¿Î᤬¼Â¹Ô¤µ¤ì¤Ê¤¤¡£ ¤È¤¤¤¦¤â¤Î¤Ç¤¹¡£ DMAžÁ÷¤Ë¤è¤ë¥á¥â¥ê¥¢¥¯¥»¥¹¤Î¥¿¥¤¥ß¥ó¥°¤ò¡¢¥×¥í¥°¥é¥ß¥ó¥°»þ¤Ë¥µ¥¤¥¯¥ëñ°Ì¤Ç´°Á´¤ËÇÄ°®¤¹¤ë¤³¤È¤Ï¡¢¤Þ¤ºÉÔ²Äǽ¤Ç¤¹¡£ "jp.d %rb"Ì¿Îá¤Î¸íÆ°ºî¤ò³Î¼Â¤Ë²óÈò¤¹¤ë¤³¤È¤Ï¤Ç¤­¤º¡¢½¾¤Ã¤Æ¡¢"jp.d %rb"Ì¿Îá¤Ï»ÈÍÑÉԲġ¢¤È¤¤¤¦¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£ ¤µ¤Æ¡¢¤½¤ì¤Ç¤Ï¡¢ "jp.d %rb"Ì¿Îá¤Î¼Â¹Ô¤È¡¢DMAžÁ÷¤Ë¤è¤ë¥á¥â¥ê¥¢¥¯¥»¥¹¤Î¥¿¥¤¥ß¥ó¥°¤¬½Å¤Ê¤ë¤È¡¢ "jp.d %rb"Ì¿Îá¤Î¥Ç¥£¥ì¥¤¥¹¥í¥Ã¥È¤ËÃÖ¤«¤ì¤¿¥Ç¥£¥ì¥¤¥ÉÌ¿Î᤬¼Â¹Ô¤µ¤ì¤Ê¤¤¡£ ¤³¤È¤ò³Îǧ¤·¤Æ¤ß¤Þ¤·¤ç¤¦¡£ ¼Â¸³¥×¥í¥°¥é¥à¤Ï¤³¤Á¤é: http://www.piece-me.org/archive/jpdbug-20050225.zip ¼Â¸³¥×¥í¥°¥é¥àtest1¡Átest4¤¬¡¢°Ê²¼¤ÎÀâÌÀ¤Î­¡¡Á­¤¤ËÂбþ¤·¤Æ¤¤¤Þ¤¹¡£ ----------------------------------------------------------------------------- ­¡¤Þ¤º¤Ï¡¢"jp.d %rb"Ì¿Î᤬Àµ¤·¤¯Æ°ºî¤¹¤ëÎã¤ò³Îǧ¤·¤Þ¤¹¡£ ¥¢¥»¥ó¥Ö¥é¤Ç½ñ¤«¤ì¤¿¼¡¤Î¤è¤¦¤Ê¥Æ¥¹¥È¥ë¡¼¥Á¥ó¤òC¸À¸ì¤«¤é¸Æ¤Ó½Ð¤·¤Æ¡¢ÊÑ¿ôRESULT¤Ë³ÊǼ¤µ¤ì¤¿Ãͤò²èÌ̤Ëɽ¼¨¤·¤Þ¤¹¡£ test1: xld.w %r4, 1000000 ; 1000000²ó¥ë¡¼¥×¤·¤Þ¤¹¡£ xld.w %r5, 0 ; 1²óËè¤Ë1¤Å¤Ä¥«¥¦¥ó¥È¥¢¥Ã¥×¤·¤Þ¤¹¡£ xld.w %r6, skip ; jp.dÌ¿Îá¤Î¥¸¥ã¥ó¥×À襢¥É¥ì¥¹¤Ç¤¹¡£ loop: jp.d %r6 ; jp.dÌ¿Îá¤ò»È¤Ã¤Æ°Ê²¼¤Î¶è´Ö¤òÈô¤Ó±Û¤¨¤Þ¤¹¡£ add %r5, 1 ; jp.dÌ¿Îá¤Î¥Ç¥£¥ì¥¤¥¹¥í¥Ã¥È¤Ç¥«¥¦¥ó¥È¥¢¥Ã¥×¤ò¹Ô¤¤¤Þ¤¹¡£ ; ;{{-------------------------------------------------------- ; ¤³¤Î¶è´Ö¤ÏÈô¤Ó±Û¤¨¤ë¤Î¤Ç¡¢¼Â¹Ô¤µ¤ì¤Þ¤»¤ó¡£ ; ËÜÅö¤ËÈô¤Ó±Û¤¨¤Æ¤¤¤ë¤³¤È¤ò³Îǧ¤¹¤ë¤¿¤á¤Ë¡¢ ; Ëü°ì¡¢¤³¤Î¶è´Ö¤òÈô¤Ó±Û¤¨¤º¤Ë¼Â¹Ô¤µ¤ì¤¿¤é¡¢ ; ¥¢¥É¥ì¥¹¥¨¥é¡¼¤¬È¯À¸¤¹¤ë¤è¤¦¤Ë¤·¤Æ¤ª¤­¤Þ¤¹¡£ xld.w %r15, 1 ld.w %r15, [%r15] ;}}-------------------------------------------------------- ; skip: xsub %r4, %r4, 1 ; ¥ë¡¼¥×½èÍý¤ò¹Ô¤¤¤Þ¤¹¡£ xjrne loop xld.w [RESULT], %r5 ; ¥«¥¦¥ó¥È¥¢¥Ã¥×¤Î·ë²Ì¤ò³ÊǼ¤·¤Þ¤¹¡£ ret ¥Æ¥¹¥È¥ë¡¼¥Á¥ó¤ÎÆâÍƤϡ¢¼¡¤Î¤È¤ª¤ê¤Ç¤¹¡£ 1000000²ó¤Î¥ë¡¼¥×¤ò¹Ô¤¤¡¢¥ë¡¼¥×¤¬1²ó¤Þ¤ï¤ë¤¿¤Ó¤Ë¥«¥¦¥ó¥¿¤ò1¤Å¤ÄÁý¤ä¤·¤Þ¤¹¡£ ¤³¤Î¤È¤­¡¢¡Ö¥«¥¦¥ó¥¿¤ò1¤Å¤ÄÁý¤ä¤¹¡×½èÍý("add %5,1")¤ò¡¢"jp.d %rb"Ì¿Îá¤Î¥Ç¥£¥ì¥¤¥¹¥í¥Ã¥È¤Ç¹Ô¤Ã¤Æ¤¤¤Þ¤¹¡£ 1000000²ó¤Î¥ë¡¼¥×¤¬½ªÎ»¤·¤¿¤é¡¢¥«¥¦¥ó¥¿¤ÎÃͤò¡¢¥°¥í¡¼¥Ð¥ëÊÑ¿ôRESULT¤Ë³ÊǼ¤·¤Þ¤¹¡£ Àµ¤·¤¯¼Â¹Ô¤µ¤ì¤¿¤Ê¤é¤Ð¡¢¥°¥í¡¼¥Ð¥ëÊÑ¿ôRESULT¤Ë¤Ï1000000¤¬³ÊǼ¤µ¤ì¤Æ¤¤¤ë¤Ï¤º¤Ç¤¹¡£ ¤½¤ì¤Ç¤Ï¼Â¹Ô¤·¤Æ¤ß¤Þ¤¹¡£ ·ë²Ì: 1000000 ´üÂԤɤª¤ê¡¢¥°¥í¡¼¥Ð¥ëÊÑ¿ôRESULT¤Ë¤Ï1000000¤¬³ÊǼ¤µ¤ì¤Þ¤·¤¿¡£ ¤³¤Î¥Æ¥¹¥È¥ë¡¼¥Á¥ó¤Ç¤Ï¡¢"jp.d %rb"Ì¿Îá¤ÎľÁ°¤Ë¥á¥â¥ê¥¢¥¯¥»¥¹Ì¿Î᤬̵¤¤¤Î¤Ç¡¢"jp.d %rb"Ì¿Î᤬Àµ¤·¤¯Æ°ºî¤·¡¢ ¥Ç¥£¥ì¥¤¥¹¥í¥Ã¥È¤ËÃÖ¤«¤ì¤¿¥Ç¥£¥ì¥¤¥ÉÌ¿Î᤬¤­¤Á¤ó¤È¼Â¹Ô¤µ¤ì¤Æ¤¤¤ë¤³¤È¤¬¤ï¤«¤ê¤Þ¤¹¡£ ----------------------------------------------------------------------------- ­¢¼¡¤Ë¡¢"jp.d %rb"Ì¿Î᤬¸íÆ°ºî¤¹¤ëÎã¤ò³Îǧ¤·¤Þ¤¹¡£ 2003ǯ12·î17Æü¡Á23Æü¤ÎP/ECE¸¦µæµ­Ï¿¡Ö¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¤Î¸íÆ°ºî¡×¤Ç³Îǧ¤·¤¿¤Î¤ÈƱ¤¸¾ò·ï¤Ç¤¹¤±¤ì¤É¡¢ Ç°¤Î¤¿¤á¤Ë¡¢º£²ó¤â¡¢¤â¤¦¤¤¤Á¤É³Îǧ¤·¤Æ¤ª¤¯¤³¤È¤Ë¤·¤Þ¤·¤¿¡£ ¥Æ¥¹¥È¥ë¡¼¥Á¥ó¤ò¼¡¤Î¤è¤¦¤ËÊѹ¹¤·¤Þ¤¹¡£ test2: xld.w %r4, 1000000 ; 1000000²ó¥ë¡¼¥×¤·¤Þ¤¹¡£ xld.w %r5, 0 ; 1²óËè¤Ë1¤Å¤Ä¥«¥¦¥ó¥È¥¢¥Ã¥×¤·¤Þ¤¹¡£ xld.w %r6, skip ; jp.dÌ¿Îá¤Î¥¸¥ã¥ó¥×À襢¥É¥ì¥¹¤Ç¤¹¡£ xld.w %r7, DUMMY ; jp.d¤Î¸íÆ°ºî¤òºÆ¸½¤¹¤ë¤¿¤á¤Î¥á¥â¥ê½ñ¤­¹þ¤ß¥¢¥É¥ì¥¹¤Ç¤¹¡£ loop: ld.b [%r7], %r7 ; jp.dÌ¿Îá¤ÎľÁ°¤Ç¥á¥â¥ê¥¢¥¯¥»¥¹¤¹¤ë¤È¡¢jp.d¤¬¸íÆ°ºî¤·¤Þ¤¹¡£ ; (¹â®RAM¾å¤Ç¼Â¹Ô¤¹¤ë¾ì¹ç¤ÏÆɤ߽ñ¤­Î¾Êý¡¢SRAM¤Î¾ì¹ç¤Ï½ñ¤­¹þ¤ß¤Î¤ß) jp.d %r6 ; jp.dÌ¿Îá¤ò»È¤Ã¤Æ°Ê²¼¤Î¶è´Ö¤òÈô¤Ó±Û¤¨¤Þ¤¹¡£ add %r5, 1 ; jp.dÌ¿Îá¤ÎÃٱ䥹¥í¥Ã¥È¤Ç¥«¥¦¥ó¥È¥¢¥Ã¥×¤ò¹Ô¤¤¤Þ¤¹¡£ ; ;{{-------------------------------------------------------- ; ¤³¤Î¶è´Ö¤ÏÈô¤Ó±Û¤¨¤ë¤Î¤Ç¡¢¼Â¹Ô¤µ¤ì¤Þ¤»¤ó¡£ ; ËÜÅö¤ËÈô¤Ó±Û¤¨¤Æ¤¤¤ë¤³¤È¤ò³Îǧ¤¹¤ë¤¿¤á¤Ë¡¢ ; Ëü°ì¡¢¤³¤Î¶è´Ö¤òÈô¤Ó±Û¤¨¤º¤Ë¼Â¹Ô¤µ¤ì¤¿¤é¡¢ ; ¥¢¥É¥ì¥¹¥¨¥é¡¼¤¬È¯À¸¤¹¤ë¤è¤¦¤Ë¤·¤Æ¤ª¤­¤Þ¤¹¡£ xld.w %r15, 1 ld.w %r15, [%r15] ;}}-------------------------------------------------------- ; skip: xsub %r4, %r4, 1 ; ¥ë¡¼¥×½èÍý¤ò¹Ô¤¤¤Þ¤¹¡£ xjrne loop xld.w [RESULT], %r5 ; ¥«¥¦¥ó¥È¥¢¥Ã¥×¤Î·ë²Ì¤ò³ÊǼ¤·¤Þ¤¹¡£ ret ­¡¤È¤Î°ã¤¤¤Ï¡¢"jp.d %rb"Ì¿Îá¤ÎľÁ°¤Ë¥À¥ß¡¼¤Î¥á¥â¥ê¥¢¥¯¥»¥¹Ì¿Îá¤òÃÖ¤¤¤¿¤³¤È¤À¤±¤Ç¤¹¡£ ¼Â¹Ô¤·¤Æ¤ß¤ë¤È¡¢ ·ë²Ì: 84 ¤È¤Ê¤ê¤Þ¤·¤¿¡£(¼Â¹Ô¤¹¤ë¤¿¤Ó¤Ë¡¢¿ô»ú¤Ï¾¯¤·ÊѲ½¤·¤Þ¤¹) ËÜÅö¤Ï1000000¤È¤Ê¤ë¤Ï¤º¤Î¤È¤³¤í84¤Ç¤¹¤«¤é¡¢¤Û¤È¤ó¤É¤Î"jp.d %rb"Ì¿Îá¤Ï¸íÆ°ºî¤·¤Æ¤¤¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¤¬¡¢¤ï¤º¤«¤ËÀµ¾ïÆ°ºî¤Î²ó¤¬¤¢¤ê¤Þ¤¹¡£ ¤³¤ì¤Ï²¿¤«¤È¸À¤¦¤È¡¢"jp.d %rb"Ì¿Îá¤ÎľÁ°¤Ç³ä¤ê¹þ¤ß¤¬È¯À¸¤·¡¢¥á¥â¥ê¥¢¥¯¥»¥¹Ì¿Îá¤È"jp.d %rb"Ì¿Îá¤Î´Ö¤Ç³ä¤ê¹þ¤ß¥ë¡¼¥Á¥ó¤¬¼Â¹Ô¤µ¤ì¤¿¾ì¹ç¤Ë¡¢ ¥á¥â¥ê¥¢¥¯¥»¥¹Ì¿Îá¤È"jp.d %rb"Ì¿Î᤬Ϣ³¤Ç¼Â¹Ô¤µ¤ì¤Ê¤¤¤Î¤Ç¡¢"jp.d %rb"Ì¿Î᤬Àµ¤·¤¯Æ°ºî¤¹¤ë¤Î¤Ç¤¹¡£ ¤¿¤á¤·¤Ë¡¢³ä¤ê¹þ¤ß¤ò´°Á´¤Ë¶Ø»ß¤·¤Æ¡¢Æ±¤¸¥Æ¥¹¥È¥ë¡¼¥Á¥ó¤ò¼Â¹Ô¤·¤Æ¤ß¤ë¤È¡¢ ·ë²Ì: 0 ¤È¤Ê¤ê¡¢"jp.d %rb"Ì¿Î᤬¤¹¤Ù¤Æ°Û¾ïÆ°ºî¤¹¤ë¤³¤È¤¬³Îǧ¤Ç¤­¤Þ¤¹¡£ ¤Ê¤ª¡¢¤³¤Î°Û¾ïÆ°ºî¤ò³Îǧ¤¹¤ë¥Æ¥¹¥È¥×¥í¥°¥é¥à¤Ï¡¢¤È¤­¤É¤­¥Ï¥ó¥°¥¢¥Ã¥×¤¹¤ë¤³¤È¤¬¤¢¤ê¤Þ¤¹¡£ ¥á¥â¥ê¥¢¥¯¥»¥¹Ì¿Îá¤È"jp.d %rb"Ì¿Î᤬Ϣ³¤¹¤ë¤È¡¢¥Ç¥£¥ì¥¤¥ÉÌ¿Î᤬¼Â¹Ô¤µ¤ì¤Ê¤¤¤À¤±¤Ç¤Ê¤¯¡¢Í½Â¬¤Ç¤­¤Ê¤¤Æ°ºî¤È¤Ê¤ë¤³¤È¤â¤¢¤ë¤ß¤¿¤¤¤Ç¤¹¡£ ----------------------------------------------------------------------------- ­£¤µ¤Æ¡¢¤³¤³¤«¤é¤¬ËÜÂê¤Ç¤¹¡£ ¤Þ¤º¡¢¥Æ¥¹¥È¥ë¡¼¥Á¥ó¤ÎÆâÍƤò­¡¤ÈƱ¤¸¤â¤Î¤ËÌᤷ¤Þ¤¹¡£ "jp.d %rb"Ì¿Î᤬Àµ¤·¤¯Æ°ºî¤·¤Æ¡¢¡È·ë²Ì: 1000000¡É¤Èɽ¼¨¤µ¤ì¤ë¤Ï¤º¤Î¥Æ¥¹¥È¥ë¡¼¥Á¥ó¤Ç¤¹¡£ ¤¿¤À¤·¡¢­¡¤È¤Î°ã¤¤¤Ï¡¢¥Ð¥Ã¥¯¥°¥é¥¦¥ó¥É¤Ç¥µ¥¦¥ó¥É¤òºÆÀ¸¤·¤Ê¤¬¤é¥Æ¥¹¥È¥ë¡¼¥Á¥ó¤ò¼Â¹Ô¤¹¤ë¡¢¤È¤¤¤¦ÅÀ¤Ç¤¹¡£ ¥µ¥¦¥ó¥ÉºÆÀ¸¤Ë¤Ï¡¢Ä̾ï¤ÎP/ECE¥µ¥¦¥ó¥ÉAPI pceWaveDataOut() ¤ò»È¤¤¤Þ¤¹¡£ ¼Â¹Ô¤·¤Æ¤ß¤ë¤È¡¢ ·ë²Ì: 994836 1%̤Ëþ¤Ç¤¹¤±¤ì¤É¡¢"jp.d %rb"Ì¿Î᤬¸íÆ°ºî¤·¤Æ¤¤¤Þ¤¹¡£(¼Â¹Ô¤¹¤ë¤¿¤Ó¤Ë¡¢¿ô»ú¤Ï¾¯¤·ÊѲ½¤·¤Þ¤¹) ­¡¤È¤Î°ã¤¤¤Ï¡¢¥Ð¥Ã¥¯¥°¥é¥¦¥ó¥É¤Ç¥µ¥¦¥ó¥É¤òºÆÀ¸¤·¤Æ¤¤¤ë¤³¤È¤À¤±¤Ç¤¹¤«¤é¡¢¥µ¥¦¥ó¥ÉºÆÀ¸¤¬"jp.d %rb"¤Î¸íÆ°ºî¤Î¸¶°ø¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤³¤È¤Ï³Î¼Â¤Ç¤¹¡£ ¥µ¥¦¥ó¥ÉºÆÀ¸½èÍý¤ÎÆâÍƤϡ¢¼ç¤Ë¡ÈDMA¤Ë¤è¤ë¥á¥â¥êžÁ÷¡É¤È¡ÈDMA´°Î»³ä¤ê¹þ¤ß¡É¤Î¤Õ¤¿¤Ä¤Ç¤¹¡£ ¤³¤Î¤¦¤Á¡¢¡ÈDMA´°Î»³ä¤ê¹þ¤ß¡É¤¬¸íÆ°ºî¤Î¸¶°ø¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤È¤Ï¹Í¤¨¤Å¤é¤¤¤Ç¤¹¡£ ¤Ê¤¼¤Ê¤é¡¢¥µ¥¦¥ó¥ÉºÆÀ¸¤ò¹Ô¤Ã¤Æ¤¤¤Ê¤¯¤Æ¤â¡¢¡ÈDMA´°Î»³ä¤ê¹þ¤ß¡É°Ê³°¤Î³ä¤ê¹þ¤ß¤ÏÉÑÈˤËȯÀ¸¤·¤Æ¤¤¤ë¤«¤é¤Ç¤¹¡£ ¡ÈDMA´°Î»³ä¤ê¹þ¤ß¡É°Ê³°¤Î³ä¤ê¹þ¤ß¤¬"jp.d %rb"¤Î¸íÆ°ºî¤ò°ú¤­µ¯¤³¤µ¤º¡¢¡ÈDMA´°Î»³ä¤ê¹þ¤ß¡É¤À¤±¤¬¸íÆ°ºî¤ò°ú¤­µ¯¤³¤¹¤È¤Ï»×¤¨¤Ê¤¤¤«¤é¤Ç¤¹¡£ ¤½¤ó¤Ê¤ï¤±¤Ç¡¢¸¶°ø¤Ï¡ÈDMA¤Ë¤è¤ë¥á¥â¥êžÁ÷¡É¤Ë¤¢¤ë¤È¥¢¥¿¥ê¤òÉÕ¤±¤Æ¤ß¤ë¤³¤È¤Ë¤·¤Þ¤·¤¿¡£ ----------------------------------------------------------------------------- ­¤¡ÈDMA¤Ë¤è¤ë¥á¥â¥êžÁ÷¡É¤¬"jp.d %rb"Ì¿Îá¤Î¸íÆ°ºî¤Î¸¶°ø¤Ç¤¢¤ë¤³¤È¤ò³Îǧ¤·¤Þ¤·¤ç¤¦¡£ ¥µ¥¦¥ó¥ÉºÆÀ¸½èÍý¤Î¤è¤¦¤ÊÊ£»¨¤Ê½èÍý¤Ç¤Ï¤Ê¤¯¡¢½ã¿è¤ËDMAžÁ÷¤À¤±¤ò¹Ô¤Ã¤Æ¤ß¤Þ¤¹¡£ ­¡¤ä­£¤ÈƱ¤¸¥Æ¥¹¥È¥ë¡¼¥Á¥ó¤Î¥Ð¥Ã¥¯¥°¥é¥¦¥ó¥É¤Çñ½ã¤ÊDMAžÁ÷¤ò¹Ô¤Ã¤Æ¡¢"jp.d %rb"Ì¿Îá¤Î¸íÆ°ºî¤¬È¯À¸¤¹¤ë¤«¤É¤¦¤«¤ò³Îǧ¤·¤Þ¤¹¡£ ¥Æ¥¹¥È¥ë¡¼¥Á¥ó¤ò¸Æ¤Ó½Ð¤¹Á°¤Ë¡¢¼¡¤Î¤è¤¦¤Ê¼ê½ç¤ÇDMAžÁ÷¤ò³«»Ï¤·¤Þ¤¹¡£ DISABLE; /*---------- DMA¥È¥ê¥¬ÍÑ¥¿¥¤¥Þ¤ÎÀßÄê ----------*/ /* ¥¯¥í¥Ã¥¯ÁªÂò = ¦È/1 (¥¿¥¤¥Þ¥«¥¦¥ó¥È¥À¥¦¥ó¼þ´ü = 24MHz) */ bCLKSEL_T8_P8TPCK3 = 1; /* ¥¯¥í¥Ã¥¯À©¸æ = On */ bCLKCTL_T8_23_P8TON3 = 1; /* ¥ê¥í¡¼¥É¥Ç¡¼¥¿ = 240-1 (DMA¥È¥ê¥¬¼þ´ü = 100KHz) */ pT8_RLD3 = 240-1; /* ¥×¥ê¥»¥Ã¥È¡¢Run¡£ */ pT8_CTL3 = (1<<1) | (1<<0); /*---------- DMA¤ÎÀßÄê ----------*/ /* ¥³¥ó¥È¥í¡¼¥ë¾ðÊó¤òÀßÄꤹ¤ëÁ°¤Ë¡¢¹â®DMA Ch.3¤ò³Î¼Â¤ËÄä»ß¤·¤Þ¤¹¡£ */ HS3_DISABLE; /* ¥È¥ê¥¬Í×°ø = 8bit¥¿¥¤¥ÞCh.3¥¢¥ó¥À¡¼¥Õ¥í¡¼ */ bHSDMA_HTGR2_HSD3S = HS3_8T3; /* ¥¢¥É¥ì¥¹¥â¡¼¥É = ¥Ç¥å¥¢¥ë * žÁ÷¥«¥¦¥ó¥¿ = 0xffffff²ó (¤³¤Î¥×¥í¥°¥é¥à¤Ç¤Ï¡¢ÌÀ¼¨Åª¤ËÄä»ß¤µ¤ì¤ë¤Þ¤Ç) */ pHS3_CNT = (1<<31) | (1<<28)-1; /* žÁ÷¥Ç¡¼¥¿¥µ¥¤¥º = ¥Ð¥¤¥È * žÁ÷¸µ¥¢¥É¥ì¥¹À©¸æ = ¸ÇÄê * žÁ÷¸µ¥¢¥É¥ì¥¹ = &DUMMY1 */ pHS3_SADR = (int)&DUMMY1; /* žÁ÷¥â¡¼¥É = ¥·¥ó¥°¥ëžÁ÷ * žÁ÷À襢¥É¥ì¥¹À©¸æ = ¸ÇÄê * žÁ÷À襢¥É¥ì¥¹ = &DUMMY2 */ pHS3_DADR = (int)&DUMMY2; /* ¹â®DMA Ch.3¤òÍ­¸ú¤Ë¤¹¤ëÁ°¤Ë¡¢³Î¼Â¤Ë¥È¥ê¥¬¥Õ¥é¥°¤ò¥¯¥ê¥¢¤·¤Þ¤¹¡£ */ pHS3_TF = 1; /* ¹â®DMA Ch.3¤òÍ­¸ú¤Ë¤·¤Þ¤¹¡£ */ HS3_ENABLE; ENABLE; DMAžÁ÷¤ÎÆâÍƤϡ¢¥À¥ß¡¼ÊÑ¿ôÎΰ褫¤éÊ̤ΥÀ¥ß¡¼ÊÑ¿ôÎΰè¤Ø¡¢100KHz¤ÎÉÑÅ٤ǥá¥â¥êžÁ÷¤ò¹Ô¤¦¡¢¤È¤¤¤¦¤â¤Î¤Ç¤¹¡£ ¥µ¥¦¥ó¥ÉºÆÀ¸¤ÈƱÍͤˡ¢DMAžÁ÷¤È¥Æ¥¹¥È¥ë¡¼¥Á¥ó¤ÏʹԤ·¤Æ¼Â¹Ô¤µ¤ì¤Þ¤¹¡£ ¥µ¥¦¥ó¥ÉºÆÀ¸¤Î¾ì¹ç¤È°ã¤Ã¤Æ¡¢DMAžÁ÷¤Ë¤«¤«¤ï¤ë³ä¤ê¹þ¤ß¤ÏȯÀ¸¤·¤Þ¤»¤ó¡£ ¤½¤ì¤Ç¤Ï¡¢¼Â¹Ô¤·¤Æ¤ß¤Þ¤¹¡£ ·ë²Ì: 974426 ͽÁۤɤª¤ê¡¢"jp.d %rb"¤¬¸íÆ°ºî¤·¤Þ¤·¤¿¡£(¼Â¹Ô¤¹¤ë¤¿¤Ó¤Ë¡¢¿ô»ú¤Ï¾¯¤·ÊѲ½¤·¤Þ¤¹) ¥µ¥¦¥ó¥ÉºÆÀ¸¤Î¾ì¹ç¤è¤ê¤â¡¢¾¯¤·¸íÆ°ºî¤ÎÉÑÅÙ¤¬Â¿¤¤¤Ç¤¹¤Í¡£ ¤½¤ÎÍýͳ¤Ï¡¢¥µ¥¦¥ó¥ÉºÆÀ¸¤ÎDMAžÁ÷¥ì¡¼¥È¤Ï32KHz¤Ç¤¢¤ë¤Î¤ËÂФ·¤Æ¡¢­¤¤Î¥Æ¥¹¥È¥×¥í¥°¥é¥à¤ÎžÁ÷¥ì¡¼¥È¤Ï100KHz¤À¤«¤é¤Ç¤¹¡£ DMAžÁ÷¤ÎȯÀ¸¤¹¤ëÉÑÅÙ¤¬Â¿¤¤Ê¬¡¢"jp.d %rb"¤È½Å¤Ê¤ë³ÎΨ¤¬¹â¤¯¡¢·ë²Ì¡¢"jp.d %rb"¤¬¸íÆ°ºî¤¹¤ëÉÑÅ٤⿤¯¤Ê¤ë¤ï¤±¤Ç¤¹¡£ ¤¿¤á¤·¤Ë¡¢DMAžÁ÷¥ì¡¼¥È¤ò10ÇܤËÁý¤·¤Æ¤ß¤ë¤È¡¢ /* ¥ê¥í¡¼¥É¥Ç¡¼¥¿ = 24-1 (DMA¥È¥ê¥¬¼þ´ü = 1MHz) */ pT8_RLD3 = 24-1; "jp.d %rb"¸íÆ°ºî¤ÎÉÑÅÙ¤¬¤â¤Ã¤È¹â¤¯¤Ê¤ë¤³¤È¤¬³Îǧ¤Ç¤­¤Þ¤¹¡£ ·ë²Ì: 699436 ----------------------------------------------------------------------------- °Ê¾å¤Î¼Â¸³¤Ç¡¢ "jp.d %rb"Ì¿Îá¤Î¼Â¹Ô¤È¡¢DMAžÁ÷¤Ë¤è¤ë¥á¥â¥ê¥¢¥¯¥»¥¹¤Î¥¿¥¤¥ß¥ó¥°¤¬½Å¤Ê¤ë¤È¡¢ "jp.d %rb"Ì¿Îá¤Î¥Ç¥£¥ì¥¤¥¹¥í¥Ã¥È¤ËÃÖ¤«¤ì¤¿¥Ç¥£¥ì¥¤¥ÉÌ¿Î᤬¼Â¹Ô¤µ¤ì¤Ê¤¤¡£ ¤³¤È¤¬³Îǧ¤Ç¤­¤Þ¤·¤¿¡£ Àè¤Ë¤â½Ò¤Ù¤¿¤è¤¦¤Ë¡¢DMAžÁ÷¤Î¥¿¥¤¥ß¥ó¥°¤Ë°Í¸¤¹¤ë¸íÆ°ºî¤Ï¡¢²óÈòÉÔ²Äǽ¤Ç¤¹¡£ P/ECE¤Î¾ì¹ç¡¢¥µ¥¦¥ó¥ÉºÆÀ¸¤ÈÊ»ÍѤ·¤Ê¤±¤ì¤ÐÎɤ¤¤Î¤Ç¤¹¤±¤ì¤É¡¢¤½¤ì¤Ï¸½¼ÂŪ¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£ ·ëÏÀ¤Ï¡¢ ¨®¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¯ ¨­"jp.d %rb"Ì¿Îá¤Ï¡¢¤¤¤«¤Ê¤ë¾ì¹ç¤Ë¤ª¤¤¤Æ¤â¡úÀäÂФˡú»È¤Ã¤Æ¤Ï¤¤¤±¤Ê¤¤¨­ ¨±¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨° ¤È¤Ê¤ê¤Þ¤¹¡£ ¤Ê¤ª¡¢P/ECE³«È¯´Ä¶­¤Îɸ½àC¥³¥ó¥Ñ¥¤¥é¤ÏºÇŬ²½µ¡Ç½¤¬¼å¤¯¡¢"jp.d %rb"Ì¿Îá¤òÀ¸À®¤·¤Þ¤»¤ó¤Î¤Ç¡¢C¸À¸ì¤À¤±¤ò»È¤Ã¤Æ¥×¥í¥°¥é¥ß¥ó¥°¤·¤Æ¤¤¤ë¸Â¤ê¤Ï°ÂÁ´¤Ç¤¹¡£ ¥¢¥»¥ó¥Ö¥é¤ò»È¤Ã¤Æ¡¢¼êºî¶È¤ÇºÇŬ²½¤¹¤ë¾ì¹ç¤Ë¤Ï¡¢Í×Ãí°Õ¤Ç¤¹¡£ ----------------------------------------------------------------------------- ¤µ¤Æ¡¢°Ê²¼¤Ï;Ã̤Ǥ¹¡£ "jp.d %rb"Ì¿Îá¤ÈDMAžÁ÷¤ÎÊ»ÍѤˤè¤ë¸íÆ°ºî¤Ëµ¤ÉÕ¤¤¤¿·Ð°Þ¤Ë¤Ä¤¤¤Æ¡¢µ­¤·¤Æ¤ª¤³¤¦¤È»×¤¤¤Þ¤¹¡£ ¸½ºß¡¢¡Ö¥²¡¼¥à¥Ü¡¼¥¤/EMU¡×¤ÎºîÀ®Ãæ¤Ê¤Î¤Ç¤¹¤±¤ì¤É¡¢¥µ¥¦¥ó¥É¤òÄɲä·¤¿¤È¤¿¤ó¤Ë¡¢CPU¥¨¥ß¥å¥ì¡¼¥·¥ç¥ó¤¬Àµ¤·¤¯¼Â¹Ô¤µ¤ì¤Ê¤¯¤Ê¤ë¤È¤¤¤¦ÌäÂ꤬ȯÀ¸¤·¤Þ¤·¤¿¡£ ºÇ½é¡¢¥µ¥¦¥ó¥É¥¨¥ß¥å¥ì¡¼¥·¥ç¥ó¥ë¡¼¥Á¥ó¤Ë¥Ð¥°¤¬¤¢¤Ã¤Æ¡¢ÉÔÀµ¤Ê¥á¥â¥ê¤òÇ˲õ¤·¤Æ¤¤¤ë¤Î¤«¤È¹Í¤¨¤ÆÄ´¤Ù¤Æ¤ß¤¿¤Î¤Ç¤¹¤¬¡¢¤¤¤¯¤éÄ´¤Ù¤Æ¤â´Ö°ã¤Ã¤Æ¤¤¤Þ¤»¤ó¡£ ¸¶°ø¤òÆͤ­µÍ¤á¤Æ¤¤¤¯¤È¡¢¥µ¥¦¥ó¥É¥¨¥ß¥å¥ì¡¼¥·¥ç¥ó¥ë¡¼¥Á¥ó¤ò¸Æ¤Ð¤Ê¤¯¤Æ¤â¡¢Ã±¤ËpceWaveDataOut()¤ò¸Æ¤Ö¤À¤±¤Ç¡¢ÌäÂ꤬ȯÀ¸¤¹¤ë¤³¤È¤¬¤ï¤«¤ê¤Þ¤·¤¿¡£ ¤½¤³¤Ç¡¢pceWaveDataOut()¤ò¸Æ¤ó¤À¾ì¹ç¤È¸Æ¤Ð¤Ê¤¤¾ì¹ç¤È¤Ç¡¢CPU¥¨¥ß¥å¥ì¡¼¥·¥ç¥ó¤Î¥È¥ì¡¼¥¹¥í¥°¤òÈæ³Ó¤·¤Æ¤ß¤Þ¤·¤¿¡£ ¤¹¤ë¤È¡¢pceWaveDataOut()¤ò¸Æ¤ó¤À¾ì¹ç¤Ë¡¢¤È¤­¤É¤­¡¢»Ä¤êCPU¼Â¹Ô¥µ¥¤¥¯¥ë¤Î¥«¥¦¥ó¥È¥À¥¦¥ó¤¬¹Ô¤ï¤ì¤Æ¤¤¤Ê¤¤¤³¤È¤¬¤ï¤«¤ê¤Þ¤·¤¿¡£ ¤³¤ó¤Ê¤«¤ó¤¸¤Ç¤¹¡£ pceWaveDataOut()¤ò¸Æ¤Ð¤Ê¤¤¾ì¹ç pceWaveDataOut()¤ò¸Æ¤ó¤À¾ì¹ç ------------------------------ ------------------------------ PC=1000: »Ä¤ê¼Â¹Ô¥µ¥¤¥¯¥ë=440 PC=1000: »Ä¤ê¼Â¹Ô¥µ¥¤¥¯¥ë=440 PC=1001: »Ä¤ê¼Â¹Ô¥µ¥¤¥¯¥ë=436 PC=1001: »Ä¤ê¼Â¹Ô¥µ¥¤¥¯¥ë=436 PC=1002: »Ä¤ê¼Â¹Ô¥µ¥¤¥¯¥ë=432 PC=1002: »Ä¤ê¼Â¹Ô¥µ¥¤¥¯¥ë=436 <- ¸º¤Ã¤Æ¤Ê¤¤!! PC=1003: »Ä¤ê¼Â¹Ô¥µ¥¤¥¯¥ë=428 PC=1003: »Ä¤ê¼Â¹Ô¥µ¥¤¥¯¥ë=432 PC=1004: »Ä¤ê¼Â¹Ô¥µ¥¤¥¯¥ë=424 PC=1004: »Ä¤ê¼Â¹Ô¥µ¥¤¥¯¥ë=428 PC=1005: »Ä¤ê¼Â¹Ô¥µ¥¤¥¯¥ë=420 PC=1005: »Ä¤ê¼Â¹Ô¥µ¥¤¥¯¥ë=424 PC=1006: »Ä¤ê¼Â¹Ô¥µ¥¤¥¯¥ë=416 PC=1006: »Ä¤ê¼Â¹Ô¥µ¥¤¥¯¥ë=420 ¾å¤ÎÎã¤Ç¤Ï¡¢1002ÈÖÃϤÎÌ¿Îá¤Î¥¨¥ß¥å¥ì¡¼¥·¥ç¥ó¤Ç¸íÆ°ºî¤¬È¯À¸¤·¤Æ¤¤¤Þ¤¹¤¬¡¢¼Â¹Ô¤¹¤ë¤¿¤Ó¤Ë¸íÆ°ºî¤¬È¯À¸¤¹¤ë¥¢¥É¥ì¥¹¤¬ÊѲ½¤¹¤ë¤Î¤Ç¤¹¡£ ²¿ÅÙ¤«»î¤·¤Æ¤ß¤Æ¡¢¸íÆ°ºî¤¬È¯À¸¤¹¤ëÌ¿Îá¤Î¥¨¥ß¥å¥ì¡¼¥·¥ç¥ó¥ë¡¼¥Á¥ó¤Î¶¦ÄÌÀ­¤Ëµ¤¤¬ÉÕ¤­¤Þ¤·¤¿¡£ ¤½¤ì¤é¤Î¥¨¥ß¥å¥ì¡¼¥·¥ç¥ó¥ë¡¼¥Á¥ó¤Ï¤¹¤Ù¤Æ¡¢¼¡¤Î¤è¤¦¤Ê¥³¡¼¥ÉʤӤò»È¤Ã¤Æ¤¤¤¿¤«¤é¤Ç¤¹¡£ ld.w %r0, %r4 ; (¥á¥â¥ê¥¢¥¯¥»¥¹°Ê³°¤ÎÌ¿Îá¡£"jp.d %r11"¤Ï¸íÆ°ºî¤·¤Ê¤¤¤Ï¤º¡¢¤À¤Ã¤¿¤Î¤Ç¤¹¤±¤ì¤É¡Ä) jp.d %r11 ; ¥á¥â¥ê½ñ¤­¹þ¤ß¥ë¡¼¥Á¥ó¤Ø¥¸¥ã¥ó¥× sub %r7, 4 ; "jp.d %rb"Ì¿Îá¤Î¥Ç¥£¥ì¥¤¥¹¥È¥Ã¥È¤Ç¡¢»Ä¤ê¼Â¹Ô¥µ¥¤¥¯¥ë¤ò¸º¤é¤¹ ¤Ä¤Þ¤ê¡¢¤È¤­¤É¤­"sub %r7,4"¤¬¼Â¹Ô¤µ¤ì¤Æ¤¤¤Ê¤¤¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£ °ÊÁ°¤ÎP/ECE¸¦µæµ­Ï¿¡Ö¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¤Î¸íÆ°ºî¡×¤Ç¡¢"jp.d %rb"¤È¥á¥â¥ê¥¢¥¯¥»¥¹Ì¿Îá¤ÎÁêÀ­¤¬°­¤¤¤³¤È¤Ï´û¤Ë¤ï¤«¤Ã¤Æ¤¤¤Þ¤·¤¿¡£ ¥µ¥¦¥ó¥É¤òÄɲä·¤¿ÅÓü¤ËȯÀ¸¤·¤¿¸íÆ°ºî¡¢¥á¥â¥ê¥¢¥¯¥»¥¹¡¢¡¢¡¢¤È¤Ê¤ë¤È¡¢¥µ¥¦¥ó¥ÉºÆÀ¸¤Î¤¿¤á¤ÎDMAžÁ÷¤·¤«¹Í¤¨¤é¤ì¤Þ¤»¤ó¡£ ¤½¤³¤Çº£²ó¤Î¤è¤¦¤ÊÄ´ºº¤ò¹Ô¤Ã¤Æ¤ß¤¿¤È¤³¤í¡¢"jp.d %rb"Ì¿Îá¤ÈDMAžÁ÷¤ÎÊ»ÍѤǰ۾ïÆ°ºî¤¬È¯À¸¤¹¤ë¤³¤È¤¬¤ï¤«¤Ã¤¿¡¢¤È¤¤¤¦¤ï¤±¤Ç¤¹¡£ º£²ó¤Ï¡¢Ã±½ã¤ÇÄ귿Ū¤Ê½èÍý¤ò·«¤êÊÖ¤¹CPU¥¨¥ß¥å¥ì¡¼¥·¥ç¥ó¥ë¡¼¥Á¥ó¤ÎÃæ¤Ç¤Î¸íÆ°ºî¤À¤Ã¤¿¤¿¤á¤Ë¡¢Èæ³ÓŪ´Êñ¤Ë¸¶°ø¤¬¿ä¬¤Ç¤­¤Þ¤·¤¿¡£ ¤â¤·¤â¡¢Ä̾ï¤Î¥²¡¼¥à¥×¥í¥°¥é¥à¤ÎÆþ¤êÁȤó¤À¥ë¡¼¥Á¥ó¤ÎÃæ¤Ç¡¢¤´¤¯µ©¤ËȯÀ¸¤¹¤ë¤è¤¦¤Ê¸íÆ°ºî¤À¤Ã¤¿¤Ê¤é¤Ð¡¢¸¶°øµæÌÀ¤Ë¤Ï¤â¤Ã¤È»þ´Ö¤¬¤«¤«¤Ã¤Æ¤¤¤¿¤È»×¤¤¤Þ¤¹¡£ ¤¢¤ë°ÕÌ£¡¢¹¬±¿¤À¤Ã¤¿¤«¤âÃΤì¤Þ¤»¤ó¡£ * Fri Feb 11 04:56:00 JST 2005 Naoyuki Sawa - ³¡¦¼Â¤Ï¥Ç¥£¥ì¥¤¥ÉÌ¿Îá º£²ó¤Î¥Æ¡¼¥Þ¤Ï¡¢2003ǯ4·î12Æü¤Îµ­Ï¿¡Ö¼Â¤Ï¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¡×¤Î³¤­¤Ç¤¹¡£ ====================================================================================================================== ¤Þ¤º¤Ï¡¢Á°²ó¤Î¤ª¤µ¤é¤¤¤«¤é¡£ P/ECE¤ÎCPU S1C33209¤Ï¡¢RISC CPU¤ÎÆÃħ¤Î¤Ò¤È¤Ä¡¢¡Ö¥Ç¥£¥ì¥¤¥Éʬ´ôµ¡Ç½¡×¤ò»ý¤Ã¤Æ¤¤¤Þ¤¹¡£ ¥Ç¥£¥ì¥¤¥Éʬ´ôµ¡Ç½¤È¤Ï¡¢Ê¬´ôÌ¿Îá¤Î¼Â¹Ô¤è¤êÀè¤Ëʬ´ôÌ¿Îá¤Îľ¸å¤ÎÌ¿Îá¤ò¼Â¹Ô¤·¡¢¼Â¹Ô¸úΨ¤ò²Ô¤°µ¡Ç½¤Ç¤¹¡£ ¥Ç¥£¥ì¥¤¥Éʬ´ôµ¡Ç½¤ò»È¤¦Ê¬´ôÌ¿Îá¤ò¡¢¡Ö¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¡×¤È¸Æ¤Ó¤Þ¤¹¡£ ¤Þ¤¿¡¢¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¤Îľ¸å¤ËÃÖ¤«¤ì¤ëÌ¿Îá¤ò¡¢¡Ö¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¡×¤È¸Æ¤Ó¤Þ¤¹¡£ ¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿ÎᾸå¤Î¡¢¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¤òÃÖ¤¯¤³¤È¤¬¤Ç¤­¤ë°ÌÃÖ¤ò¡¢¡Ö¥Ç¥£¥ì¥¤¥É¥¹¥í¥Ã¥È¡×¤È¸Æ¤Ó¤Þ¤¹¡£ ¤¹¤Ù¤Æ¤ÎÌ¿Î᤬¡¢¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¤È¤·¤Æ»ÈÍѤǤ­¤ë¤ï¤±¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£ ¤¢¤ëÌ¿Î᤬¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¤È¤·¤Æ»ÈÍѤǤ­¤ë¤«Èݤ«¤Ë¤Ä¤¤¤Æ¡¢´ðËÜŪ¤ÊȽÃÇ´ð½à¤Ï¼¡¤ÎÄ̤ê¤Ç¤¹¡£ ¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¤Ï°Ê²¼¤Î¾ò·ï¤ò¤¹¤Ù¤ÆËþ¤¿¤·¤Æ¤¤¤ë¤³¤È¤¬É¬ÍפǤ¹¡£ ¡¦1¥µ¥¤¥¯¥ëÌ¿Îá ¡¦¥á¥â¥ê¤ò¥¢¥¯¥»¥¹¤·¤Ê¤¤ ¡¦extÌ¿Îá¤Ë¤è¤ë³ÈÄ¥¤Ê¤· ¡ØS1C33209¥³¥¢CPU¥Þ¥Ë¥å¥¢¥ë¡Ù(C:\usr\PIECE\docs\datasheet\EPSON\33000Core-J.pdf) p.30¡Ö¥Ç¥£¥ì¥¤¥Éʬ´ôµ¡Ç½¡×¤è¤ê Ʊ¥Ú¡¼¥¸¤Ë¤Ï¡¢¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¤È¤·¤Æ»ÈÍѤǤ­¤ëÌ¿Îá¤Î°ìÍ÷¤¬¼¨¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ ¤µ¤é¤Ë¤½¤Î²¼¤Ë¡¢¼¡¤Î¤è¤¦¤ÊÃí°Õ¤¬µ­¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ Ãí¡§¾åµ­¤Î¾ò·ï¤òËþ¤¿¤µ¤Ê¤¤Ì¿Îá¤ÏÆ°ºî¤¬ÉÔÄê¤È¤Ê¤ë¤¿¤á¡¢¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¤È¤·¤Æ»ÈÍѤ¹¤ë¤³¤È¤Ï¶Ø»ß¤·¤Þ¤¹¡£ ¤È¤³¤í¤¬¡¢EPSON¼Ò¼«¿È¤Ë¤è¤ëɸ½à¥é¥¤¥Ö¥é¥ê¤Î¼ÂÁõ¤¬¡¢¤³¤Î¥ë¡¼¥ë¤òÇˤäƤ¤¤Þ¤·¤¿¡£ ¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¤È¤·¤Æ»ÈÍѤǤ­¤Ê¤¤¤Ï¤º¤Î"ld.w %rd,%ss"Ì¿Îá¤ò¡¢¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¤È¤·¤Æ»ÈÍѤ·¤Æ¤¤¤¿¤Î¤Ç¤¹¡£ ²¿Ä̤꤫¤ÎÌ¿ÎáʤӤò»î¤·¤Æ¤ß¤¿¤È¤³¤í¡¢"ld.w %rd,%ss"Ì¿Îá¤Ï¡¢¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¤È¤·¤ÆÌäÂê¤Ê¤¯»ÈÍѤǤ­¤ë¤³¤È¤¬¤ï¤«¤ê¤Þ¤·¤¿¡£ EPSON¼Ò¤â»È¤Ã¤Æ¤¤¤ë¤Î¤Ç¤¹¤«¤é¡¢¤¿¤Ö¤óÂç¾æÉפʤΤǤ·¤ç¤¦¡£ °Ê¾å¡¢Á°²ó¤Î¤ª¤µ¤é¤¤¤Ç¤·¤¿¡£ ====================================================================================================================== ¤½¤Î¸å¡¢¼«ºî¥×¥í¥°¥é¥à¤Ç"ld.w %rd,%ss"Ì¿Îá¤ò¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¤È¤·¤Æ»È¤Ã¤Æ¤­¤Þ¤·¤¿¤¬¡¢¤³¤ì¤Þ¤Ç¤Î¤È¤³¤íÌäÂê¤Ï½Ð¤Æ¤¤¤Þ¤»¤ó¡£ ¤ä¤Ã¤Ñ¤ê¡¢Âç¾æÉפÀ¤Ã¤¿¤è¤¦¤Ç¤¹¡£ ¤µ¤Æ¡¢¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¤È¤·¤Æ»ÈÍÑÉԲĤȤµ¤ì¤Æ¤¤¤ëÌ¿Îá¤Î¤Ê¤«¤Ë¡¢"ld.w %rd,%ss"Ì¿Îá¤è¤ê¤â¤Ã¤È»ÈÍÑÉÑÅ٤ι⤤¤â¤Î¤¬¤¢¤ê¤Þ¤¹¡£ char¢ÎintÊÑ´¹¤äshort¢ÎintÊÑ´¹¤ò¹Ô¤¦¡¢°Ê²¼¤ÎÌ¿Îá·²¤Ç¤¹¡£ ld.b %rd,%rs char¢ÎintÊÑ´¹ ld.ub %rd,%rs unsigned char¢ÎintÊÑ´¹¡¢(value&0xff)¤ÎÂåÍÑ ld.h %rd,%rs short¢ÎintÊÑ´¹ ld.uh %rd,%rs unsigned short¢ÎintÊÑ´¹¡¢(value&0xffff)¤ÎÂåÍÑ °Ê¹ß¤Îʸ¤Ç¤Ï¡¢¤³¤ì¤é¤ÎÌ¿Îá¤ò¡È·¿ÊÑ´¹Ì¿Îá¡É¤È¸Æ¤Ö¤³¤È¤Ë¤·¤Þ¤¹¡£ ·¿ÊÑ´¹Ì¿Îá¤Ï¤¹¤Ù¤Æ¡Ö1¥µ¥¤¥¯¥ëÌ¿Îá¡×¤Ç¡Ö¥á¥â¥ê¤ò¥¢¥¯¥»¥¹¤·¤Ê¤¤¡×Ì¿Îá¤Ç¡ÖextÌ¿Îá¤Ë¤è¤ë³ÈÄ¥¤Ê¤·¡×¤Î¾ò·ï¤òËþ¤¿¤·¤Æ¤¤¤Þ¤¹¡£ ¤Ë¤â¤«¤«¤ï¤é¤º¡¢¡ØS1C33209¥³¥¢CPU¥Þ¥Ë¥å¥¢¥ë¡Ù¤Ç¤Ï¡¢¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¤È¤·¤Æ»ÈÍѲÄǽ¤ÊÌ¿Îá¤Ëµó¤²¤é¤ì¤Æ¤¤¤Þ¤»¤ó¡£ ¼ÂºÝ¤Ë¥×¥í¥°¥é¥à¤òÁȤó¤Ç¤¤¤ë¤È¡¢·¿ÊÑ´¹Ì¿Î᤬¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¤È¤·¤Æ»È¤¨¤Ê¤¤¤¿¤á¤Ë¡¢²ù¤·¤¤»×¤¤¤ò¤¹¤ë¤³¤È¤¬¤è¤¯¤¢¤ê¤Þ¤¹¡£ add %r12, %r13¡¡¡¡¡¡¡¡¡¡; a = a + b ld.ub %r10, %r12¡¡¡¡¡¡¡¡; return (unsigned char)a ret ¢­"ld.ub %r10,%r12"¤¬¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¤È¤·¤Æ»ÈÍѲÄǽ¤À¤Ã¤¿¤Ê¤é¤Ð¡¢¼¡¤Î¤è¤¦¤ËʤÓÂؤ¨¤Æ¹â®²½¤Ç¤­¤ë¤Î¤Ç¤¹¤¬¡¦¡¦¡¦ add %r12, %r13¡¡¡¡¡¡¡¡¡¡; a = a + b ret.d ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; return (unsigned char)a ld.ub %r10, %r12¡¡¡¡¡¡¡¡; *delay* ¼ÂºÝ¤Ë¤Ï¡¢"ld.ub %r10,%r12"¤¬¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¤È¤·¤Æ»ÈÍѲÄǽ¤Ç¤Ê¤¤¤¿¤á¤Ë¡¢Ê¤ÓÂؤ¨¡ÈÉԲġɤǤ¹¡ª¡ª °ì¸«¡¢¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¤È¤·¤Æ»ÈÍѲÄǽ¤Ê"and"Ì¿Îá¤ÇÂåÍѤ·¤Æ¤·¤Þ¤¨¤Ð¤¤¤¤¤è¤¦¤Ë¤â¸«¤¨¤Þ¤¹¤±¤ì¤É¡¢¤½¤ì¤Ï¤Ç¤­¤Þ¤»¤ó¡£ add %r12, %r13¡¡¡¡¡¡¡¡¡¡; a = a + b ret.d ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; return a & 0xff xand %r10, %r12, 0xff ¡¡; *delay* ¢­"xand %r10,%r12,0xff"¤Ï¡¢¥³¥ó¥Ñ¥¤¥é¤Ë¤è¤Ã¤Æ¼¡¤Î¤è¤¦¤ËŸ³«¤µ¤ì¤Þ¤¹¡£ add %r12, %r13¡¡¡¡¡¡¡¡¡¡; a = a + b ret.d ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; return a & 0xff ext 0xff¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; ¨¤ and %r10, %r12¡¡¡¡¡¡¡¡¡¡; ¨ª 2Ì¿Îá¤ËŸ³«¤µ¤ì¤Æ¤·¤Þ¤¤¡¢¥Ç¥£¥ì¥¤¥É¥¹¥í¥Ã¥È¤Ë¼ý¤Þ¤ê¤Þ¤»¤ó¡ª¡ª ·¿ÊÑ´¹Ì¿Îá¤ò»È¤¦¤È¤­¤Ï¡¢¥Ç¥£¥ì¥¤¥Éʬ´ôµ¡Ç½¤ò»È¤Ã¤¿¹â®²½¤ò¤¢¤­¤é¤á¤ë¤·¤«¤Ê¤¤¤Î¤Ç¤·¤ç¤¦¤«¡© ====================================================================================================================== ¡Ö1¥µ¥¤¥¯¥ëÌ¿Îá¡×¡Ö¥á¥â¥ê¤ò¥¢¥¯¥»¥¹¤·¤Ê¤¤¡×¡ÖextÌ¿Îá¤Ë¤è¤ë³ÈÄ¥¤Ê¤·¡×¤Î¾ò·ï¤òËþ¤¿¤·¤Æ¤¤¤ë¤Ë¤â¤«¤«¤ï¤é¤º¡¢ ¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¤È¤·¤Æ»ÈÍѲÄǽ¤Ç¤Ê¤¤Ì¿Îá¤È¤·¤Æ¤Ï¡¢·¿ÊÑ´¹Ì¿Îá¤Î¾¤Ë¡¢"div1"¤ä"halt"Ì¿Îá¤Ê¤É¤¬¤¢¤ê¤Þ¤¹¡£ "div1"¤ä"halt"Ì¿Îá¤Ï¤ä¤äÆüì¤ÊÉôÎà¤ÎÌ¿Îá¤Ç¤¹¤«¤é¡¢¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¤È¤·¤Æ»ÈÍѲÄǽ¤Ç¤Ê¤¯¤Æ¤â¡¢¤Ê¤ó¤È¤Ê¤¯Ç¼ÆÀ¤Ç¤­¤Þ¤¹¡£ ¤·¤«¤·¡¢·¿ÊÑ´¹Ì¿Îá¤Î¤è¤¦¤Êñ½ã¤Ç»ÈÍÑÉÑÅ٤ι⤤̿Î᤬¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¤È¤·¤Æ»ÈÍѲÄǽ¤Ç¤Ê¤¤¤È¤¤¤¦¤Î¤Ï¡¢Ç¼ÆÀ¤Ç¤­¤Þ¤»¤ó¡£ ¤½¤³¤Ç¤Õ¤È¹Í¤¨¤¿¤Î¤¬¡¢¡Ö¤â¤·¤«¤·¤Æ¼ÂºÝ¤Ë¤Ï·¿ÊÑ´¹Ì¿Îá¤â¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¤È¤·¤Æ»ÈÍѲÄǽ¤Ê¤Î¤Ç¤Ï¤Ê¤¤¤«¡©¡× »×¤¨¤Ð"ld.w %rd,%ss"Ì¿Îá¤À¤Ã¤Æ¡¢¥Þ¥Ë¥å¥¢¥ë¤Ë¤Ïµ­ºÜ¤µ¤ì¤Æ¤¤¤Ê¤¤¤±¤ì¤É¡¢°ÅÌÛ¸øÁ³¤Î¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¤À¤Ã¤¿¤ï¤±¤Ç¤¹¤«¤é¡£ ¤½¤ì¤Ç¤Ï¤µ¤Ã¤½¤¯»î¤·¤Æ¤ß¤Þ¤·¤ç¤¦¡£ --------------------------------------------------------- foo: add %r12, %r13¡¡¡¡¡¡¡¡¡¡; a = a + b ret.d ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; return (unsigned char)a ld.ub %r10, %r12¡¡¡¡¡¡¡¡; *delay* --------------------------------------------------------- ¤³¤Î¥¢¥»¥ó¥Ö¥é¥ë¡¼¥Á¥ó¤ò¡¢C¸À¸ì¥×¥í¥°¥é¥à¤«¤é¸Æ¤Ó½Ð¤·¤Æ¤ß¤Þ¤¹¡£ --------------------------------------------------------- extern int foo(int a, int b); n = foo(0x12345678, 0x9abcdef0); pceFontPrintf("%08x", n); --------------------------------------------------------- ·ë²Ì¤Ï¡¢¡Ö00000068¡×¤Èɽ¼¨¤µ¤ì¤Þ¤·¤¿¡£ 0x12345678 + 0x9abcdef0 = 0xacf13568 (unsigned char)0xacf13568 = 0x68 ¤Ç¤¹¤«¤é¡¢Àµ¤·¤¤·ë²Ì¤Ç¤¹¡£ ¼Â¹Ô»þ´Ö¤ò·×¬¤·¤Æ¤ß¤ë¤È¡¢¥Ç¥£¥ì¥¤¥Éʬ´ôµ¡Ç½¤ò»È¤Ã¤¿¤³¤È¤Ë¤è¤ë¹â®²½¤Î¸ú²Ì¤¬³Îǧ¤Ç¤­¤Þ¤·¤¿¡£ Á°¸å¿ôÌ¿Îá¤ÎʤӤò²¿Ä̤꤫¤ËÊѤ¨¤Æ¤ß¤¿¤ê¡¢¥×¥í¥°¥é¥à¤ä¥Ç¡¼¥¿¤òSRAM¤ä¹â®RAM¤ËÇÛÃÖ¤·¤Æ¤â¡¢¤¹¤Ù¤ÆÀµ¤·¤¤·ë²Ì¤È¤Ê¤ê¤Þ¤¹¡£ "ld.b %rd,%rs"¡¢"ld.h %rd,%rs"¡¢"ld.uh %rd,%rs"Ì¿Îá¤Ë¤Ä¤¤¤Æ¤âƱÍͤ˻¤Æ¤ß¤¿¤È¤³¤í¡¢¤¹¤Ù¤ÆÀµ¤·¤¤·ë²Ì¤¬ÆÀ¤é¤ì¤Þ¤·¤¿¡£ »°Ç¯´ÖǺ¤ó¤Ç¤¤¤¿¤Î¤¬²Ä¾Ð¤·¤¯¤Ê¤Ã¤Æ¤¯¤ë¤°¤é¤¤¡¢¤¢¤Ã¤±¤Ê¤¤ËëÀÚ¤ì¤Ç¤¹¡£ ¨®¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¯ ¨­¨®¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¯¨­ ¨­¨­¡¡·¿ÊÑ´¹Ì¿Îá¤â¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¤Ç¤·¤¿¡¡¨­¨­ ¨­¨±¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨°¨­ ¨±¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨° ¤â¤Ã¤È¤â¡¢¥Æ¥¹¥È¥×¥í¥°¥é¥à¤ÇÀµ¤·¤¤·ë²Ì¤¬ÆÀ¤é¤ì¤¿¤À¤±¤Ç¤Ï¡¢¤¢¤é¤æ¤ë¾ìÌ̤ÇÀµ¤·¤¤·ë²Ì¤¬ÆÀ¤é¤ì¤ë¤È¤Ï¸Â¤ê¤Þ¤»¤ó¡£ ¥Þ¥Ë¥å¥¢¥ë¤Ë¤â¡Ö¾åµ­¤Î¾ò·ï¤òËþ¤¿¤µ¤Ê¤¤Ì¿Îá¤ÏÆ°ºî¤¬¡úÉÔÄê¡ú¤È¤Ê¤ë¤¿¤á¡Á¡×¤Èµ­¤µ¤ì¤Æ¤¤¤ë¤è¤¦¤Ë¡¢ ¥Æ¥¹¥È¥×¥í¥°¥é¥à¤Ç¤Ï¤¿¤Þ¤¿¤ÞÀµ¤·¤¤·ë²Ì¤¬ÆÀ¤é¤ì¤¿¤À¤±¤«¤âÃΤì¤Ê¤¤¤«¤é¤Ç¤¹¡£ ¤·¤«¤·¡¢"ld.w %rd,%ss"¤ÎÁ°Î㤫¤é¤¹¤ë¤È¡¢¤¿¤Ö¤ó¤É¤ó¤Ê¾ìÌ̤ǤâÂç¾æÉפʵ¤¤¬¤·¤Þ¤¹¡£ËͤΥ«¥ó¤Ç¤¹¤±¤ì¤É¡£¡£¡£(^^; ·¿ÊÑ´¹Ì¿Î᤬¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¤È¤·¤Æ»È¤¨¤ë¤³¤È¤Î¥á¥ê¥Ã¥È¤Ï¡¢¤â¤·¤«¤·¤¿¤éÉÔ°ÂÄ꤫¤â¡Ä¤È¤¤¤¦¥ê¥¹¥¯¤ò¾å²ó¤ê¤Þ¤¹¡£ ¤Ê¤Ë¤è¤ê¡¢»È¤Ã¤Æ¤ß¤Ê¤±¤ì¤ÐÉÔ°ÂÄ꤫¤É¤¦¤«¤â¤ï¤«¤ê¤Þ¤»¤ó¤«¤é¡¢º£¸å¤ÏÀѶËŪ¤Ë»È¤Ã¤Æ¤ß¤ë¤³¤È¤Ë¤·¤è¤¦¤È»×¤¤¤Þ¤¹¡£ ====================================================================================================================== ¤½¤ó¤Ê¤ï¤±¤Ç¡¢·¿ÊÑ´¹Ì¿Îá¤â¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¤È¤·¤Æ(¤¿¤Ö¤ó)»ÈÍѲÄǽ¤Ç¤¢¤ë¤³¤È¤¬¤ï¤«¤ê¤Þ¤·¤¿¡£ ¤â¤Ã¤ÈÁ᤯¤Ë»î¤·¤Æ¤ª¤±¤Ð¤è¤«¤Ã¤¿¡£¡£¡£ ¤µ¤Æ¡¢¤³¤¦¤Ê¤Ã¤Æ¤¯¤ë¤È¡¢¡Ö·¿ÊÑ´¹Ì¿Îá°Ê³°¤Ë¤â¡¢¼Â¤Ï¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¤È¤·¤Æ»ÈÍѲÄǽ¤ÊÌ¿Î᤬¤¢¤ë¤Î¤Ç¤Ï¡©¡×¤È»×¤¨¤Æ¤­¤Þ¤¹¡£ ¤Á¤ç¤Ã¤È»î¤·¤Æ¤ß¤¿¤È¤³¤í¡¢ ¡¦1¥µ¥¤¥¯¥ëÌ¿Îá ¡¦¥á¥â¥ê¤ò¥¢¥¯¥»¥¹¤·¤Ê¤¤ ¡¦extÌ¿Îá¤Ë¤è¤ë³ÈÄ¥¤Ê¤· ¤Î¾ò·ï¤ò¤Þ¤Ã¤¿¤¯Ìµ»ë¤·¤Æ¡¢¤Û¤È¤ó¤É¤ÎÌ¿Î᤬¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¤È¤·¤Æ(°ì±þ¤Ï)Æ°ºî¤¹¤ë¤³¤È¤¬¤ï¤«¤ê¤Þ¤·¤¿¡£ xjp.d bar mlt.w %r12, %r13¡¡¡¡¡¡¡¡; 5¥µ¥¤¥¯¥ëÌ¿Îᡪ¡ª ¤È¤«¡¢ xjp.d bar ld.w %r10, [%r12] ¡¡¡¡¡¡; ¥á¥â¥ê¤ò¥¢¥¯¥»¥¹¤¹¤ë¡ª¡ª ¤È¤«¡¢ xjp.d bar ext 0xff¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; ʬ´ôÀè¤ÎÌ¿Îá¤Îext³ÈÄ¥¤òÀè¼è¤ê¡ª¡ª . . . bar: and %r10, %r12¡¡¡¡¡¡¡¡¡¡; "xand %r10, %r12, 0xff"¤Ë¤Ê¤ê¤Þ¤¹ ¤È¤«¡¢·Ú¤¯»î¤·¤¿¸Â¤ê¤Ç¤Ï¡¢¤¹¤Ù¤ÆÀµ¤·¤¤·ë²Ì¤¬ÆÀ¤é¤ì¤Þ¤·¤¿¡£ ¼Â¹Ô»þ´Ö¤ò·×¬¤·¤Æ¤ß¤ë¤È¡¢¥Ç¥£¥ì¥¤¥Éʬ´ôµ¡Ç½¤ò»È¤Ã¤¿¤³¤È¤Ë¤è¤ë¹â®²½¤Î¸ú²Ì¤¬³Îǧ¤Ç¤­¤Þ¤¹¡£ ÆäËÆó¤ÄÌܤΡ¢¥á¥â¥ê¥¢¥¯¥»¥¹Ì¿Îá¤ò¥Ç¥£¥ì¥¤¥É¥¹¥í¥Ã¥È¤ËÆþ¤ì¤¿Îã¤Ç¡¢ÂçÉý¤Ê¹â®²½¤Î¸ú²Ì¤¬¤¢¤ë¤ß¤¿¤¤¤Ç¤¹¡£ ¤·¤«¤·¤Ê¤¬¤é¤µ¤¹¤¬¤Ë¤³¤ì¤é¤ÎÊ£»¨¤ÊÌ¿Îá¤Ë¤Ê¤Ã¤Æ¤¯¤ë¤È¡¢¾õ¶·¤Ë¤è¤Ã¤Æ¤Ï·ë²Ì¤¬ÉÔ°ÂÄê¤Ë¤Ê¤ë¤Î¤Ç¤Ï¤Ê¤¤¤«¤È¤¤¤¦µ¤¤â¤·¤Þ¤¹¡£ ¤È¤ê¤¢¤¨¤ºº£²ó¤Ï¡Ö·¿ÊÑ´¹Ì¿Îá¤â¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¡×¤È¤¤¤¦·ë²Ì¤ËËþ­¤·¡¢¤½¤Î¾¤ÎÌ¿Îá¤Î¼Â¸³¤Ï¤Þ¤¿º£¸å¡¢¤È¤·¤¿¤¤¤È»×¤¤¤Þ¤¹¡£ * Sun Dec 5 16:00:00 JST 2004 Naoyuki Sawa - ADPCM¤Î»ÅÁȤß#5 º£²ó¤â³¨¤¬Â¿¤¤¤Î¤ÇHTML¤Ç½ñ¤­¤Þ¤·¤¿¡£°Ê²¼¤ÎURL¤ò¤´Í÷²¼¤µ¤¤¡£ http://www.piece-me.org/piece-lab/adpcm/adpcm5.html * Sat Dec 4 14:45:00 JST 2004 Naoyuki Sawa - ADPCM¤Î»ÅÁȤß#4 º£²ó¤â³¨¤¬Â¿¤¤¤Î¤ÇHTML¤Ç½ñ¤­¤Þ¤·¤¿¡£°Ê²¼¤ÎURL¤ò¤´Í÷²¼¤µ¤¤¡£ http://www.piece-me.org/piece-lab/adpcm/adpcm4.html * Fri Dec 3 00:00:00 JST 2004 Naoyuki Sawa - ADPCM¤Î»ÅÁȤß#3 º£²ó¤â³¨¤¬Â¿¤¤¤Î¤ÇHTML¤Ç½ñ¤­¤Þ¤·¤¿¡£°Ê²¼¤ÎURL¤ò¤´Í÷²¼¤µ¤¤¡£ http://www.piece-me.org/piece-lab/adpcm/adpcm3.html * Wed Dec 1 00:00:00 JST 2004 Naoyuki Sawa - ADPCM¤Î»ÅÁȤß#2 º£²ó¤â³¨¤¬Â¿¤¤¤Î¤ÇHTML¤Ç½ñ¤­¤Þ¤·¤¿¡£°Ê²¼¤ÎURL¤ò¤´Í÷²¼¤µ¤¤¡£ http://www.piece-me.org/piece-lab/adpcm/adpcm2.html * Tue Nov 30 06:00:00 JST 2004 Naoyuki Sawa - ADPCM¤Î»ÅÁȤß#1 º£²ó¤Ï³¨¤¬Â¿¤¤¤Î¤ÇHTML¤Ç½ñ¤­¤Þ¤·¤¿¡£°Ê²¼¤ÎURL¤ò¤´Í÷²¼¤µ¤¤¡£ http://www.piece-me.org/piece-lab/adpcm/adpcm1.html * Sat Nov 7 09:00:00 JST 2004 Naoyuki Sawa - ¹½Â¤ÂΥѥ寤ËÌäÂꤢ¤ê#2 Á°²ó¡¢P/ECE³«È¯´Ä¶­¤Ç¤Ï¡¢¹½Â¤ÂΥѥ寤Τ¿¤á¤Î__attribute__((packed))¤¬Àµ¤·¤¯Æ°ºî¤·¤Ê¤¤¡¢¤È¤¤¤¦¤È¤³¤í¤Þ¤Ç¤ªÏä·¤Þ¤·¤¿¡£ ¶ñÂÎŪ¤Ë¤Ï¡¢¹½Â¤ÂÎ¥µ¥¤¥º¤ÏÀµ¤·¤¯¥Ñ¥Ã¥¯¤µ¤ì¤ë¤Î¤À¤±¤ì¤É¡¢½é´ü²½ºÑ¤ß¹½Â¤ÂΤÎÆâÍƤ¬¥Ñ¥Ã¥¯¤µ¤ì¤Æ¤¤¤Ê¤¤¡¢¤È¤¤¤¦¾É¾õ¤Ç¤¹¡£ º£²ó¤Ï¡¢¤½¤Î¸¶°ø¤òõ¤Ã¤Æ¤ß¤Þ¤¹¡£ ·ëÏÀ¤À¤±¸À¤¦¤È°ì¸À¤Ç½ª¤ï¤Ã¤Æ¤·¤Þ¤¦¤Î¤Ç¤¹¤¬¡¢¤½¤ì¤Ç¤ÏÌÌÇò¤¯¤Ê¤¤¤Î¤Ç(^^;¡¢Ëͤ¬Ä´ºº¤·¤¿¤È¤­¤Î¼ê½ç¤òÄɤäÆÀâÌÀ¤·¤Æ¤ß¤Þ¤¹¡£ Ť¤¤Ç¤¹¤±¤ì¤É¡¢¤ª¤Ä¤­¤¢¤¤¤¯¤À¤µ¤¤¡£ ¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£ ¢£¥³¥ó¥Ñ¥¤¥é½ÐÎϤòÈæ³Ó¤·¤Æ¤ß¤ë¢£ ¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£ ¤µ¤Æ¤½¤ì¤Ç¤Ï¡¢¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¤¢¤ê(¡á¹½Â¤ÂΥѥå¯Ìµ¤·)¤Î¾ì¹ç¤È¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È̵¤·(¡á¹½Â¤ÂΥѥ寤¢¤ê)¤Î¾ì¹ç¤È¤Ç¡¢ C¸À¸ì¥½¡¼¥¹¤¬¤É¤Î¤è¤¦¤Ë¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¡¢¤É¤Î¤è¤¦¤Ê¥¢¥»¥ó¥Ö¥é¥³¡¼¥É¤¬À¸À®¤µ¤ì¤Æ¤¤¤ë¤Î¤«¸«¤Æ¤ß¤Þ¤¹¡£ C¸À¸ì¥½¡¼¥¹¤ÎÆâÍƤϡ¢Á°²ó¤Î¸åȾ¢££Ð¡¿£Å£Ã£Å¤Î¾ì¹ç¡ÁÌäÂêȯÀ¸!!¢£¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ ¤Þ¤º¤Ï¡¢¸åȾÉôʬ¤Ë¤¢¤ë¡¢pceAppProc()´Ø¿ô¤¬¤É¤Î¤è¤¦¤Ë¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤Æ¤¤¤ë¤Î¤«¸«¤Æ¤ß¤Þ¤¹¡£ ºÇ½é¤Ë¡¢__attribute__((packed))¤ò»ØÄꤷ¤Ê¤¤¡¢¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¤¢¤ê¤Î¾ì¹ç¡£ [¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¤¢¤ê] ; void pceAppProc(int count) ; { ; ¡¡¡¡int i; ; ¡¡¡¡unsigned char* p; ; ; ¡¡¡¡memset(vbuff, 0, sizeof vbuff); ; ¡¡¡¡pceFontSetType(2); ; ¡¡¡¡pceFontSetPos(0, 0); ; ; ¡¡¡¡p = (unsigned char*)&cid; ; ¡¡¡¡pceFontPrintf("size = %d\n", sizeof(MMC_CID_INFO)); ; ¡¡¡¡for(i = 0; i < sizeof(MMC_CID_INFO); i++) { ; ¡¡¡¡¡¡¡¡pceFontPrintf("%02x ", p[i]); ; ¡¡¡¡} ; ; ¡¡¡¡pceLCDTrans(); ; } ; ; ¤ÎÉôʬ¤¬¡¢¼¡¤Î¤è¤¦¤Ë¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤Þ¤¹¡£ pceAppProc: ¡¡¡¡¡¡¡¡pushn¡¡%r2 ¡¡¡¡¡¡¡¡xsub¡¡%sp,%sp,8 ¡¡¡¡¡¡¡¡xld.w¡¡%r12,vbuff ¡¡¡¡¡¡¡¡ld.w¡¡%r13,0x0 ¡¡¡¡¡¡¡¡xld.w¡¡%r14,0x00002c00 ¡¡¡¡¡¡¡¡xcall¡¡memset ¡¡¡¡¡¡¡¡xld.w¡¡%r12,0x00000002 ¡¡¡¡¡¡¡¡xcall¡¡pceFontSetType ¡¡¡¡¡¡¡¡ld.w¡¡%r12,0x0 ¡¡¡¡¡¡¡¡ld.w¡¡%r13,%r12 ¡¡¡¡¡¡¡¡xcall¡¡pceFontSetPos ¡¡¡¡¡¡¡¡xld.w¡¡%r10,__LC0 ¡¡¡¡¡¡¡¡xld.w¡¡[%sp],%r10 ¡¡¡¡¡¡¡¡xld.w¡¡%r10,0x00000014¡¡¡¡¡¡¡¡; 0x00000014(20) = sizeof(MMC_CID_INFO) ¡¡¡¡¡¡¡¡xld.w¡¡[%sp+4],%r10 ¡¡¡¡¡¡¡¡xcall¡¡pceFontPrintf ¡¡¡¡¡¡¡¡xld.w¡¡%r2,__LC1 ¡¡¡¡¡¡¡¡xld.w¡¡%r0,cid ¡¡¡¡¡¡¡¡xadd¡¡%r1,%r0,15 __L6: ¡¡¡¡¡¡¡¡xld.w¡¡[%sp],%r2 ¡¡¡¡¡¡¡¡xld.ub¡¡%r10,[%r0] ¡¡¡¡¡¡¡¡xld.w¡¡[%sp+4],%r10 ¡¡¡¡¡¡¡¡xcall¡¡pceFontPrintf ¡¡¡¡¡¡¡¡xadd¡¡%r0,%r0,1 ¡¡¡¡¡¡¡¡cmp¡¡%r0,%r1 ¡¡¡¡¡¡¡¡xjrule¡¡__L6 ¡¡¡¡¡¡¡¡xcall¡¡pceLCDTrans ¡¡¡¡¡¡¡¡xadd¡¡%sp,%sp,8 ¡¡¡¡¡¡¡¡popn¡¡%r2 ¡¡¡¡¡¡¡¡ret ¼¡¤Ë¡¢__attribute__((packed))¤ò»ØÄꤷ¤¿¡¢¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È̵¤·¤Î¾ì¹ç¡£ [¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È̵¤·] ; void pceAppProc(int count) ; { ; ¡¡¡¡int i; ; ¡¡¡¡unsigned char* p; ; ; ¡¡¡¡memset(vbuff, 0, sizeof vbuff); ; ¡¡¡¡pceFontSetType(2); ; ¡¡¡¡pceFontSetPos(0, 0); ; ; ¡¡¡¡p = (unsigned char*)&cid; ; ¡¡¡¡pceFontPrintf("size = %d\n", sizeof(MMC_CID_INFO)); ; ¡¡¡¡for(i = 0; i < sizeof(MMC_CID_INFO); i++) { ; ¡¡¡¡¡¡¡¡pceFontPrintf("%02x ", p[i]); ; ¡¡¡¡} ; ; ¡¡¡¡pceLCDTrans(); ; } ; ; ¤ÎÉôʬ¤¬¡¢¼¡¤Î¤è¤¦¤Ë¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤Þ¤¹¡£ pceAppProc: ¡¡¡¡¡¡¡¡pushn¡¡%r2 ¡¡¡¡¡¡¡¡xsub¡¡%sp,%sp,8 ¡¡¡¡¡¡¡¡xld.w¡¡%r12,vbuff ¡¡¡¡¡¡¡¡ld.w¡¡%r13,0x0 ¡¡¡¡¡¡¡¡xld.w¡¡%r14,0x00002c00 ¡¡¡¡¡¡¡¡xcall¡¡memset ¡¡¡¡¡¡¡¡xld.w¡¡%r12,0x00000002 ¡¡¡¡¡¡¡¡xcall¡¡pceFontSetType ¡¡¡¡¡¡¡¡ld.w¡¡%r12,0x0 ¡¡¡¡¡¡¡¡ld.w¡¡%r13,%r12 ¡¡¡¡¡¡¡¡xcall¡¡pceFontSetPos ¡¡¡¡¡¡¡¡xld.w¡¡%r10,__LC0 ¡¡¡¡¡¡¡¡xld.w¡¡[%sp],%r10 ¡¡¡¡¡¡¡¡xld.w¡¡%r10,0x00000010¡¡¡¡¡¡¡¡; 0x00000010(16) = sizeof(MMC_CID_INFO) ¡¡¡¡¡¡¡¡xld.w¡¡[%sp+4],%r10 ¡¡¡¡¡¡¡¡xcall¡¡pceFontPrintf ¡¡¡¡¡¡¡¡xld.w¡¡%r2,__LC1 ¡¡¡¡¡¡¡¡xld.w¡¡%r0,cid ¡¡¡¡¡¡¡¡xadd¡¡%r1,%r0,15 __L6: ¡¡¡¡¡¡¡¡xld.w¡¡[%sp],%r2 ¡¡¡¡¡¡¡¡xld.ub¡¡%r10,[%r0] ¡¡¡¡¡¡¡¡xld.w¡¡[%sp+4],%r10 ¡¡¡¡¡¡¡¡xcall¡¡pceFontPrintf ¡¡¡¡¡¡¡¡xadd¡¡%r0,%r0,1 ¡¡¡¡¡¡¡¡cmp¡¡%r0,%r1 ¡¡¡¡¡¡¡¡xjrule¡¡__L6 ¡¡¡¡¡¡¡¡xcall¡¡pceLCDTrans ¡¡¡¡¡¡¡¡xadd¡¡%sp,%sp,8 ¡¡¡¡¡¡¡¡popn¡¡%r2 ¡¡¡¡¡¡¡¡ret sizeof(MMC_CID_INFO)¤ÎÃͤ¬¡¢¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¤¢¤ê¤Î¾ì¹ç¤Ï¥Ñ¥Ç¥£¥ó¥°¹þ¤ß¤Ç20¥Ð¥¤¥È¡¢¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È̵¤·¤Î¾ì¹ç¤Ï16¥Ð¥¤¥È¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£ P/ECE³«È¯´Ä¶­¤ÎC¥³¥ó¥Ñ¥¤¥é¤Ï¡¢¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¤¢¤ê¤Î¾ì¹ç¤È̵¤·¤Î¾ì¹ç¤È¤Ç¡¢¹½Â¤ÂÎ¥µ¥¤¥º¤Î°ã¤¤¤ò¤­¤Á¤ó¤È½èÍý¤Ç¤­¤Æ¤¤¤ë¤³¤È¤¬¤ï¤«¤ê¤Þ¤¹¡£ ¹½Â¤ÂÎ¥µ¥¤¥º¤¬ÊѲ½¤¹¤ë¤³¤È°Ê³°¤Ï¡¢¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¤¢¤ê¤Î¾ì¹ç¤â̵¤·¤Î¾ì¹ç¤â¡¢¤Þ¤Ã¤¿¤¯Æ±¤¸¥³¥ó¥Ñ¥¤¥ë·ë²Ì¤Ç¤¹¡£ ÌäÂꤢ¤ê¤Þ¤»¤ó¡£ ¤½¤ì¤Ç¤Ï¡¢Á°È¾Éôʬ¤Î¡¢½é´ü²½ºÑ¤ß¹½Â¤ÂΤÎÄêµÁ¤¬¤É¤Î¤è¤¦¤Ë¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤Æ¤¤¤ë¤«¸«¤Æ¤ß¤Þ¤¹¡£ ºÇ½é¤Ë¡¢__attribute__((packed))¤ò»ØÄꤷ¤Ê¤¤¡¢¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¤¢¤ê¤Î¾ì¹ç¡£ [¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¤¢¤ê] ; //CID(Card IDentification number)¡¡¥«¡¼¥ÉID¥ì¥¸¥¹¥¿¾ðÊó¹½Â¤ÂÎ ; typedef struct tag_MMC_CID_INFO ; { ; ¡¡¡¡unsigned char¡¡ ucMID;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// + 0, 1: ManufactureID(8bit) ; ¡¡¡¡unsigned short¡¡usOID;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// + 2, 2: OEM/Application ID(16bit) ; ¡¡¡¡unsigned char¡¡ ucPNM[6];¡¡¡¡¡¡¡¡¡¡ // + 4, 6: Product name(48bit) ; ¡¡¡¡unsigned char¡¡ ucPRV;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +10, 1: Product revision(8bit) ; ¡¡¡¡unsigned long¡¡ ulPSN;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +12, 4: Product serial number(32bit) ; ¡¡¡¡unsigned char¡¡ ucMDT;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +16, 1: Manufacturing date(8bit) ; ¡¡¡¡unsigned char¡¡ ucCRC;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +17, 1: 7-bit CRC checksum(7bit) ; } __attribute__((packed)) MMC_CID_INFO; // =20 ; ; MMC_CID_INFO cid = { ; ¡¡¡¡0xff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned char¡¡ ucMID;¡¡¡¡// + 0, 1: ManufactureID(8bit) ; ¡¡¡¡0xffff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned short¡¡usOID;¡¡¡¡// + 2, 2: OEM/Application ID(16bit) ; ¡¡¡¡{ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }, // unsigned char¡¡ ucPNM[6]; // + 4, 6: Product name(48bit) ; ¡¡¡¡0xff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned char¡¡ ucPRV;¡¡¡¡// +10, 1: Product revision(8bit) ; ¡¡¡¡0xffffffff, ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡// unsigned long¡¡ ulPSN;¡¡¡¡// +12, 4: Product serial number(32bit) ; ¡¡¡¡0xff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned char¡¡ ucMDT;¡¡¡¡// +16, 1: Manufacturing date(8bit) ; ¡¡¡¡0xff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned char¡¡ ucCRC;¡¡¡¡// +17, 1: 7-bit CRC checksum(7bit) ; }; ; ; ¤ÎÉôʬ¤¬¡¢¼¡¤Î¤è¤¦¤Ë¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡.align¡¡2 cid: ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.space¡¡1 ¡¡¡¡¡¡¡¡.half¡¡ 65535 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.space¡¡1 ¡¡¡¡¡¡¡¡.word¡¡ -1 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.space¡¡2 ¼¡¤Ë¡¢__attribute__((packed))¤ò»ØÄꤷ¤¿¡¢¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È̵¤·¤Î¾ì¹ç¡£ [¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È̵¤·] ; //CID(Card IDentification number)¡¡¥«¡¼¥ÉID¥ì¥¸¥¹¥¿¾ðÊó¹½Â¤ÂÎ ; typedef struct tag_MMC_CID_INFO ; { ; ¡¡¡¡unsigned char¡¡ ucMID;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// + 0, 1: ManufactureID(8bit) ; ¡¡¡¡unsigned short¡¡usOID;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// + 1, 2: OEM/Application ID(16bit) ; ¡¡¡¡unsigned char¡¡ ucPNM[6];¡¡¡¡¡¡¡¡¡¡ // + 3, 6: Product name(48bit) ; ¡¡¡¡unsigned char¡¡ ucPRV;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// + 9, 1: Product revision(8bit) ; ¡¡¡¡unsigned long¡¡ ulPSN;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +10, 4: Product serial number(32bit) ; ¡¡¡¡unsigned char¡¡ ucMDT;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +14, 1: Manufacturing date(8bit) ; ¡¡¡¡unsigned char¡¡ ucCRC;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +15, 1: 7-bit CRC checksum(7bit) ; } __attribute__((packed)) MMC_CID_INFO; // =16 ; ; MMC_CID_INFO cid = { ; ¡¡¡¡0xff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned char¡¡ ucMID;¡¡¡¡// + 0, 1: ManufactureID(8bit) ; ¡¡¡¡0xffff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned short¡¡usOID;¡¡¡¡// + 1, 2: OEM/Application ID(16bit) ; ¡¡¡¡{ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }, // unsigned char¡¡ ucPNM[6]; // + 3, 6: Product name(48bit) ; ¡¡¡¡0xff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned char¡¡ ucPRV;¡¡¡¡// + 9, 1: Product revision(8bit) ; ¡¡¡¡0xffffffff, ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡// unsigned long¡¡ ulPSN;¡¡¡¡// +10, 4: Product serial number(32bit) ; ¡¡¡¡0xff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned char¡¡ ucMDT;¡¡¡¡// +14, 1: Manufacturing date(8bit) ; ¡¡¡¡0xff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned char¡¡ ucCRC;¡¡¡¡// +15, 1: 7-bit CRC checksum(7bit) ; }; ; ; ¤ÎÉôʬ¤¬¡¢¼¡¤Î¤è¤¦¤Ë¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡.align¡¡2 cid: ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.half¡¡ 65535 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.word¡¡ -1 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¤ª¤ä¡©°ì¸«ÌäÂê¤Ê¤¤¤è¤¦¤Ë¸«¤¨¤Þ¤¹¡£ ¤ï¤«¤ê¤ä¤¹¤¤¤è¤¦¤Ë¡¢¥³¥á¥ó¥È¤ËÉÕ¤±¤Æ¤ß¤Þ¤·¤ç¤¦¡£ [¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¤¢¤ê] ¡¡¡¡¡¡¡¡.align¡¡2¡¡¡¡¡¡¡¡; ¼¡¤Î°ÌÃÖ¤¬³Î¼Â¤Ë(1<<2)=4¤ÎÇÜ¿ô¥¢¥É¥ì¥¹¤«¤é»Ï¤Þ¤ë¤è¤¦¤Ë¤¹¤ë¡£ cid: ¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡; // unsigned char¡¡ ucMID;¡¡¡¡// + 0, 1: ManufactureID(8bit) ¡¡¡¡¡¡¡¡.space¡¡1¡¡¡¡¡¡¡¡; // (¥Ñ¥Ç¥£¥ó¥°)¡¡¡¡¡¡¡¡¡¡¡¡¡¡// + 1, 1: ¡¡¡¡¡¡¡¡.half¡¡ 65535¡¡¡¡; // unsigned short¡¡usOID;¡¡¡¡// + 2, 2: OEM/Application ID(16bit) ¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡; // unsigned char¡¡ ucPNM[6]; // + 4, 6: Product name(48bit) ¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡; ¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡; ¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡; ¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡; ¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡; ¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡; // unsigned char¡¡ ucPRV;¡¡¡¡// +10, 1: Product revision(8bit) ¡¡¡¡¡¡¡¡.space¡¡1¡¡¡¡¡¡¡¡; // (¥Ñ¥Ç¥£¥ó¥°)¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +11, 1: ¡¡¡¡¡¡¡¡.word¡¡ -1¡¡¡¡¡¡ ; // unsigned long¡¡ ulPSN;¡¡¡¡// +12, 4: Product serial number(32bit) ¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡; // unsigned char¡¡ ucMDT;¡¡¡¡// +16, 1: Manufacturing date(8bit) ¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡; // unsigned char¡¡ ucCRC;¡¡¡¡// +17, 1: 7-bit CRC checksum(7bit) ¡¡¡¡¡¡¡¡.space¡¡2¡¡¡¡¡¡¡¡; // (¥Ñ¥Ç¥£¥ó¥°)¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +18, 2: ¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¤¢¤ê¤Î¾ì¹ç¤Ë¤Ä¤¤¤Æ¤Ï¡¢´°Á´¤ËÌäÂꤢ¤ê¤Þ¤»¤ó¡£ Á°²ó¹Ô¤Ã¤¿P/ECE¾å¤Ç¤Î¥Æ¥¹¥È¤Ç¤â¡¢´üÂÔÄ̤ê¤Î¼Â¹Ô·ë²Ì¤È¤Ê¤Ã¤Æ¤¤¤Þ¤·¤¿¡£ ¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¤¢¤ê¤Î¾ì¹ç¤Ë¤Ä¤¤¤Æ¤Ï¡¢¤â¤¦¸¡Æ¤¤¹¤ëɬÍפϤʤµ¤½¤¦¤Ç¤¹¡£ ÌäÂê¤Ï¡¢¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È̵¤·¤Î¾ì¹ç¤Ç¤¹¡£ [¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È̵¤·] ¡¡¡¡¡¡¡¡.align¡¡2¡¡¡¡¡¡¡¡; ¼¡¤Î°ÌÃÖ¤¬³Î¼Â¤Ë(1<<2)=4¤ÎÇÜ¿ô¥¢¥É¥ì¥¹¤«¤é»Ï¤Þ¤ë¤è¤¦¤Ë¤¹¤ë¡£ cid: ¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡; // unsigned char¡¡ ucMID;¡¡¡¡// + 0, 1: ManufactureID(8bit) ¡¡¡¡¡¡¡¡.half¡¡ 65535¡¡¡¡; // unsigned short¡¡usOID;¡¡¡¡// + 1, 2: OEM/Application ID(16bit) ¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡; // unsigned char¡¡ ucPNM[6]; // + 3, 6: Product name(48bit) ¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡; ¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡; ¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡; ¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡; ¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡; ¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡; // unsigned char¡¡ ucPRV;¡¡¡¡// + 9, 1: Product revision(8bit) ¡¡¡¡¡¡¡¡.word¡¡ -1¡¡¡¡¡¡ ; // unsigned long¡¡ ulPSN;¡¡¡¡// +10, 4: Product serial number(32bit) ¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡; // unsigned char¡¡ ucMDT;¡¡¡¡// +14, 1: Manufacturing date(8bit) ¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡; // unsigned char¡¡ ucCRC;¡¡¡¡// +15, 1: 7-bit CRC checksum(7bit) ¥³¥ó¥Ñ¥¤¥ë·ë²Ì¤Î¥¢¥»¥ó¥Ö¥é¥³¡¼¥É¤ò¸«¤ë¸Â¤ê¤Ï¡¢ÌäÂê̵¤µ¤½¤¦¤Ë¸«¤¨¤Þ¤¹¡£ ¤¬¡¢¼Â¤Ï¡¢¾å¤Î¥³¥á¥ó¥È¤Î¤è¤¦¤Ê¥á¥â¥êÇÛÃ֤ˤϤʤé¤Ê¤¤¤Î¤Ç¤¹¡£ ¡Ø¥¢¥»¥ó¥Ö¥é¤Ë¤â°ÅÌۤΥ¢¥é¥¤¥á¥ó¥Èµ¡Ç½¤¬¤¢¤ë¡Ù¤È¤¤¤¦¤Î¤¬¤½¤ÎÍýͳ¤Ç¤¹¡£ ¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£ ¢£¥¢¥»¥ó¥Ö¥é¤Î¥¢¥é¥¤¥á¥ó¥Èµ¡Ç½¢£ ¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£ P/ECE³«È¯´Ä¶­¤ËÆþ¤Ã¤Æ¤¤¤ë¡¢¡ÖS1C33 Family C¥³¥ó¥Ñ¥¤¥é¥Ñ¥Ã¥±¡¼¥¸ Ver.4¡×¤Î¥Þ¥Ë¥å¥¢¥ë¤ò³«¤¤¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£ (C:\usr\PIECE\docs\datasheet\EPSON\S5U1C33000C_J.pdf) ¥Þ¥Ë¥å¥¢¥ë171¥Ú¡¼¥¸(PDF¤Ç¤Ï187¥Ú¡¼¥¸ÌÜ)¡¢¡Ö11.8.6 ¥Ç¡¼¥¿ÄêµÁµ¼»÷Ì¿Îá¡×¤Î¤È¤³¤í¤Ë¡¢¼¡¤Î¤è¤¦¤Êµ­½Ò¤¬¤¢¤ê¤Þ¤¹¡£ .wordµ¼»÷Ì¿Îá ¡üÃí°Õ»ö¹à ¡¦ÄêµÁ¤·¤¿¥Ç¡¼¥¿¤ÏľÁ°¤Ë.alignÌ¿Î᤬¤Ê¤¤¸Â¤ê¡¢¥ï¡¼¥É¶­³¦¥¢¥É¥ì¥¹¤«¤éÇÛÃÖ¤µ¤ì¤Þ¤¹¡£ ¡¡¸½ºß°ÌÃÖ¤¬¥ï¡¼¥É¶­³¦¥¢¥É¥ì¥¹°Ê³°¤Î¾ì¹ç¡¢¥Ç¡¼¥¿¤òÇÛÃÖ¤¹¤ë¥ï¡¼¥É¶­³¦¥¢¥É¥ì¥¹¤Þ¤Ç¤Î´Ö¤Ï0x00¤¬ÀßÄꤵ¤ì¤Þ¤¹¡£ .halfµ¼»÷Ì¿Îá ¡üÃí°Õ»ö¹à ¡¦ÄêµÁ¤·¤¿¥Ç¡¼¥¿¤ÏľÁ°¤Ë.alignÌ¿Î᤬¤Ê¤¤¸Â¤ê¡¢¥Ï¡¼¥Õ¥ï¡¼¥É¶­³¦¥¢¥É¥ì¥¹¤«¤éÇÛÃÖ¤µ¤ì¤Þ¤¹¡£ ¡¡¸½ºß°ÌÃÖ¤¬´ñ¿ô¥¢¥É¥ì¥¹¤Î¾ì¹ç¡¢¸½ºß°ÌÃ֤ˤÏ0x00¤¬ÀßÄꤵ¤ì¤Þ¤¹¡£ ¤³¤ì¤Ç¤¹!! ¤Ä¤Þ¤ê¡¢¥³¥ó¥Ñ¥¤¥ë·ë²Ì¤Î¥¢¥»¥ó¥Ö¥é¥³¡¼¥É¤¬as33.exe¤Ë¤è¤Ã¤Æ¥¢¥»¥ó¥Ö¥ë¤µ¤ì¤ë¤È¡¢¼¡¤Î¤è¤¦¤Ê¥á¥â¥êÇÛÃ֤ˤʤäƤ¤¤¿¤Î¤Ç¤¹¡£ [¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È̵¤·] ¡¡¡¡¡¡¡¡.align¡¡2¡¡¡¡¡¡¡¡; ¼¡¤Î°ÌÃÖ¤¬³Î¼Â¤Ë(1<<2)=4¤ÎÇÜ¿ô¥¢¥É¥ì¥¹¤«¤é»Ï¤Þ¤ë¤è¤¦¤Ë¤¹¤ë¡£ cid: ¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡; // unsigned char¡¡ ucMID;¡¡¡¡// + 0, 1: ManufactureID(8bit) ¡¡¡¡¡¡¡¡(0x00)¡¡¡¡¡¡¡¡¡¡ ; // (¥Ñ¥Ç¥£¥ó¥°)¡¡¡¡¡¡¡¡¡¡¡¡¡¡// + 1, 1: ¡¡¡¡¡¡¡¡.half¡¡ 65535¡¡¡¡; // unsigned short¡¡usOID;¡¡¡¡// + 2, 2: OEM/Application ID(16bit) ¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡; // unsigned char¡¡ ucPNM[6]; // + 4, 6: Product name(48bit) ¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡; ¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡; ¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡; ¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡; ¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡; ¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡; // unsigned char¡¡ ucPRV;¡¡¡¡// +10, 1: Product revision(8bit) ¡¡¡¡¡¡¡¡(0x00)¡¡¡¡¡¡¡¡¡¡ ; // (¥Ñ¥Ç¥£¥ó¥°)¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +11, 1: ¡¡¡¡¡¡¡¡.word¡¡ -1¡¡¡¡¡¡ ; // unsigned long¡¡ ulPSN;¡¡¡¡// +12, 4: Product serial number(32bit) ¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡; // unsigned char¡¡ ucMDT;¡¡¡¡// +16, 1: Manufacturing date(8bit) ¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡; // unsigned char¡¡ ucCRC;¡¡¡¡// +17, 1: 7-bit CRC checksum(7bit) ¹½Â¤ÂÎËöÈø¤Î¥Ñ¥Ç¥£¥ó¥°¤¬¹Í褵¤ì¤Ê¤¤¤³¤È¤ò½ü¤±¤Ð¡¢¤³¤Î¥á¥â¥êÇÛÃÖ¤ÏC¥³¥ó¥Ñ¥¤¥é¤Ë¤è¤Ã¤Æ¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¤¬¹Ô¤ï¤ì¤¿¾ì¹ç¤ÈƱ¤¸¤Ç¤¹¡£ __attribute__((packed))¤¬»ØÄꤵ¤ì¤¿»þ¡¢C¥³¥ó¥Ñ¥¤¥é¤ÏÌÀ¼¨Åª¤Ê¥Ñ¥Ç¥£¥ó¥°(.spaceµ¼»÷Ì¿Îá)¤Î¥³¡¼¥É½ÐÎϤò¾Ê¤¤¤Æ¡¢¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¤ò̵¤¯¤·¤¿¤Ä¤â¤ê¤Ç¤¤¤ë¤Î¤Ç¤¹¤¬¡¢ ¼ÂºÝ¤Ë¤Ï¥¢¥»¥ó¥Ö¥é¤Ë¤è¤Ã¤Æ¥Õ¥£¡¼¥ë¥Éñ°Ì¤Î¥¢¥é¥¤¥á¥ó¥È¤¬¹Ô¤ï¤ì¤Æ¤·¤Þ¤¤¡¢·ë²Ì¡¢¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¤¢¤ê¤Î¾ì¹ç¤ÈƱ¤¸¥á¥â¥êÇÛÃ֤ˤʤäƤ·¤Þ¤Ã¤Æ¤¤¤¿¡¢¤È¤¤¤¦¤ï¤±¤Ç¤¹¡£ ¤Ç¤Ï¡¢¤É¤Î¤è¤¦¤Ê¥¢¥»¥ó¥Ö¥é¥³¡¼¥É½ÐÎϤʤé¤Ð¡¢Àµ¤·¤¯¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È̵¤·¤Î¥á¥â¥êÇÛÃ֤ˤʤë¤Î¤Ç¤·¤ç¤¦¤«¡© .alignµ¼»÷Ì¿Î᤬¡¢Visual C++¤Ë¤ª¤±¤ë#pragma pack¤ß¤¿¤¤¤Ê¤â¤Î¤À¤È¹Í¤¨¤ë¤È¡¢¼¡¤Î¤è¤¦¤Ê¥¢¥»¥ó¥Ö¥é¥³¡¼¥É¤ò»×¤¤¤Ä¤­¤Þ¤¹¡£ [¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È̵¤·¤Ë¤¹¤ë¤Ë¤Ï¡©] ¡¡¡¡¡¡¡¡.align¡¡0¡¡¡¡¡¡¡¡; ¼¡¤Î°ÌÃÖ¤¬(1<<0)=1¤ÎÇÜ¿ô¥¢¥É¥ì¥¹¤«¤é»Ï¤Þ¤ë¤è¤¦¤Ë¤¹¤ë¡£ cid: ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.half¡¡ 65535 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.word¡¡ -1 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¤¬¡¢¤³¤ì¤Ç¤Ï¥À¥á¤Ç¤¹¡£ ¼ÂºÝ¤Ë¥×¥í¥°¥é¥à¤ò½ñ¤¤¤Æ¤ß¤Æ¡¢¤³¤ì¤Ç¤Ï¥À¥á¤Ê¤³¤È¤ò³Îǧ¤·¤Þ¤·¤¿¡£ [¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È̵¤·¤Ë¤¹¤ë¤Ë¤Ï¡©(¼ºÇÔÎã)] #include unsigned char vbuff[128 * 88]; //CID(Card IDentification number)¡¡¥«¡¼¥ÉID¥ì¥¸¥¹¥¿¾ðÊó¹½Â¤ÂÎ typedef struct tag_MMC_CID_INFO { ¡¡¡¡unsigned char¡¡ ucMID;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// + 0, 1: ManufactureID(8bit) ¡¡¡¡unsigned short¡¡usOID;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// + 1, 2: OEM/Application ID(16bit) ¡¡¡¡unsigned char¡¡ ucPNM[6];¡¡¡¡¡¡¡¡¡¡ // + 3, 6: Product name(48bit) ¡¡¡¡unsigned char¡¡ ucPRV;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// + 9, 1: Product revision(8bit) ¡¡¡¡unsigned long¡¡ ulPSN;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +10, 4: Product serial number(32bit) ¡¡¡¡unsigned char¡¡ ucMDT;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +14, 1: Manufacturing date(8bit) ¡¡¡¡unsigned char¡¡ ucCRC;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +15, 1: 7-bit CRC checksum(7bit) } __attribute__((packed)) MMC_CID_INFO; // =16 //½é´ü²½ºÑ¤ß¹½Â¤ÂΤÎÄêµÁ¤ò¡¢¥¤¥ó¥é¥¤¥ó¥¢¥»¥ó¥Ö¥é¤Ç½ñ¤­Ä¾¤·¤Æ¤ß¤Þ¤¹¡£ extern MMC_CID_INFO cid; asm(" ¡¡¡¡¡¡¡¡.align¡¡0¡¡¡¡¡¡¡¡; ¼¡¤Î°ÌÃÖ¤¬(1<<0)=1¤ÎÇÜ¿ô¥¢¥É¥ì¥¹¤«¤é»Ï¤Þ¤ë¤è¤¦¤Ë¤¹¤ë¡£ cid: ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.half¡¡ 65535 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.word¡¡ -1 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.byte¡¡ 255 "); void pceAppInit() { ¡¡¡¡pceLCDSetBuffer(vbuff); ¡¡¡¡pceLCDDispStart(); } void pceAppProc(int count) { ¡¡¡¡int i; ¡¡¡¡unsigned char* p; ¡¡¡¡memset(vbuff, 0, sizeof vbuff); ¡¡¡¡pceFontSetType(2); ¡¡¡¡pceFontSetPos(0, 0); ¡¡¡¡p = (unsigned char*)&cid; ¡¡¡¡pceFontPrintf("size = %d\n", sizeof(MMC_CID_INFO)); ¡¡¡¡for(i = 0; i < sizeof(MMC_CID_INFO); i++) { ¡¡¡¡¡¡¡¡pceFontPrintf("%02x ", p[i]); ¡¡¡¡} ¡¡¡¡pceLCDTrans(); } void pceAppExit() { } ------------------------------------------------------------------------------------------- ¢£¢£ ·ë²Ì ¢£¢£ size = 16 ff 00 ff ff ff ff ff ff ff ff ff 00 ff ff ff ff ------------------------------------------------------------------------------------------- C¸À¸ì¤Ç½ñ¤¤¤¿¾ì¹ç¤Î¡¢¸í¤Ã¤¿½ÐÎÏ·ë²Ì¤ÈÊѤï¤Ã¤Æ¤¤¤Þ¤»¤ó¡£ ¤Ê¤¼¥À¥á¤«¡¢¥Þ¥Ë¥å¥¢¥ë174¥Ú¡¼¥¸(PDF¤Ç¤Ï190¥Ú¡¼¥¸ÌÜ)¤Î¡¢.alignµ¼»÷Ì¿Îá¤ÎÀâÌÀ¤ò¸«¤Æ¤¯¤À¤µ¤¤¡£ .alignµ¼»÷Ì¿Îá ¡üµ¡Ç½ ¡¡¤³¤Îµ¼»÷Ì¿Îá¤Îľ¸å¤Ë½Ð¸½¤¹¤ë¥Ç¡¼¥¿¤ò£²¡°£Î¥Ð¥¤¥È¶­³¦¤Ë¥¢¥é¥¤¥á¥ó¥È¤·¤Þ¤¹(£Î¡á¶­³¦»ØÄêÃÍ)¡£ ¡üÃí°Õ»ö¹à ¡¡.alignµ¼»÷Ì¿Îá¤Ïľ¸å¤Ë¤¢¤ë¥Ç¡¼¥¿ÄêµÁµ¼»÷Ì¿Îá¤ËÂФ·¤Æ¤Î¤ßÍ­¸ú¤Ç¤¹¡£ ¡¡¤·¤¿¤¬¤Ã¤Æ¡¢¥¢¥é¥¤¥á¥ó¥È¤¬É¬Íפʥǡ¼¥¿¤òÄêµÁ¤¹¤ë¾ì¹ç¤Ë¤Ï¡¢¥Ç¡¼¥¿ÄêµÁµ¼»÷Ì¿Îá¸Ä¡¹¤Ë.alignµ¼»÷Ì¿Îá¤ò»ÈÍѤ¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ ¤½¤¦¡¢.alignµ¼»÷Ì¿Îá¤Ï¡Øľ¸å¤Î¡Ù¥Ç¡¼¥¿ÄêµÁµ¼»÷Ì¿Îá¤ËÂФ·¤Æ¤·¤«¡¢¸ú²Ì¤¬¤Ê¤¤¤Î¤Ç¤¹¡£ ľ¸å¤è¤ê¤¦¤·¤í¤Î¥Ç¡¼¥¿ÄêµÁµ¼»÷Ì¿Îá¤Ï¡¢Ä̾ï¤É¤ª¤ê¡¢°ÅÌۤΥ¢¥é¥¤¥á¥ó¥È¤¬¤Ê¤µ¤ì¤Æ¤·¤Þ¤¤¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡.align¡¡0¡¡¡¡¡¡¡¡; ¼¡¤Î°ÌÃÖ¤¬(1<<0)=1¤ÎÇÜ¿ô¥¢¥É¥ì¥¹¤«¤é»Ï¤Þ¤ë¤è¤¦¤Ë¤¹¤ë¡£ cid: ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.half¡¡ 65535¡¡¡¡; ¤³¤³¤«¤é¸å¤í¤Ï¡¢Ä̾ï¤É¤ª¤ê¡¢°ÅÌۤΥ¢¥é¥¤¥á¥ó¥È¤¬¤Ê¤µ¤ì¤Æ¤·¤Þ¤¤¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.word¡¡ -1 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ľ¸å¤Î¥Ç¡¼¥¿µ¼»÷Ì¿Îá¤ËÂФ·¤Æ.align¤¬Í­¸ú¤À¤È¤¦¤¤¤¦¤Î¤Ê¤é¤Ð¡¢¼¡¤Î¤è¤¦¤Ë½ñ¤±¤Ð¤¤¤¤¤Î¤Ç¤·¤ç¤¦¤«¡© [¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È̵¤·¤Ë¤¹¤ë¤Ë¤Ï¡©] ¡¡¡¡¡¡¡¡.align¡¡2¡¡¡¡¡¡¡¡; ¹½Â¤ÂΤÎÀèƬ¤ò4¤ÎÇÜ¿ô¥¢¥É¥ì¥¹¤«¤é»Ï¤á¤ë¤¿¤á¤Ë¡¢ÀèƬ¤Î.align 2¤ÏɬÍ×!! cid: ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.align¡¡0¡¡¡¡¡¡¡¡; ¼¡¤Î.half¤Î°ÅÌۤΥ¢¥é¥¤¥á¥ó¥È¤òÍÞÀ©¤¹¤ë¡£ ¡¡¡¡¡¡¡¡.half¡¡ 65535 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.align¡¡0¡¡¡¡¡¡¡¡; ¼¡¤Î.word¤Î°ÅÌۤΥ¢¥é¥¤¥á¥ó¥È¤òÍÞÀ©¤¹¤ë¡£ ¡¡¡¡¡¡¡¡.word¡¡ -1 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¤½¤ì¤Ç¤Ï¡¢¤â¤¦¤¤¤Á¤É¥×¥í¥°¥é¥à¤ò½ñ¤¤¤Æ»î¤·¤Æ¤ß¤Þ¤¹¡£ [¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È̵¤·¤Ë¤¹¤ë¤Ë¤Ï¡©(¼ºÇÔÎã)] #include unsigned char vbuff[128 * 88]; //CID(Card IDentification number)¡¡¥«¡¼¥ÉID¥ì¥¸¥¹¥¿¾ðÊó¹½Â¤ÂÎ typedef struct tag_MMC_CID_INFO { ¡¡¡¡unsigned char¡¡ ucMID;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// + 0, 1: ManufactureID(8bit) ¡¡¡¡unsigned short¡¡usOID;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// + 1, 2: OEM/Application ID(16bit) ¡¡¡¡unsigned char¡¡ ucPNM[6];¡¡¡¡¡¡¡¡¡¡ // + 3, 6: Product name(48bit) ¡¡¡¡unsigned char¡¡ ucPRV;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// + 9, 1: Product revision(8bit) ¡¡¡¡unsigned long¡¡ ulPSN;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +10, 4: Product serial number(32bit) ¡¡¡¡unsigned char¡¡ ucMDT;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +14, 1: Manufacturing date(8bit) ¡¡¡¡unsigned char¡¡ ucCRC;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +15, 1: 7-bit CRC checksum(7bit) } __attribute__((packed)) MMC_CID_INFO; // =16 //½é´ü²½ºÑ¤ß¹½Â¤ÂΤÎÄêµÁ¤ò¡¢¥¤¥ó¥é¥¤¥ó¥¢¥»¥ó¥Ö¥é¤Ç½ñ¤­Ä¾¤·¤Æ¤ß¤Þ¤¹¡£ extern MMC_CID_INFO cid; asm(" ¡¡¡¡¡¡¡¡.align¡¡2¡¡¡¡¡¡¡¡; ¹½Â¤ÂΤÎÀèƬ¤ò4¤ÎÇÜ¿ô¥¢¥É¥ì¥¹¤«¤é»Ï¤á¤ë¤¿¤á¤Ë¡¢ÀèƬ¤Î.align 2¤ÏɬÍ×!! cid: ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.align¡¡0¡¡¡¡¡¡¡¡; ¼¡¤Î.half¤Î°ÅÌۤΥ¢¥é¥¤¥á¥ó¥È¤òÍÞÀ©¤¹¤ë¡£ ¡¡¡¡¡¡¡¡.half¡¡ 65535 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.align¡¡0¡¡¡¡¡¡¡¡; ¼¡¤Î.word¤Î°ÅÌۤΥ¢¥é¥¤¥á¥ó¥È¤òÍÞÀ©¤¹¤ë¡£ ¡¡¡¡¡¡¡¡.word¡¡ -1 ¡¡¡¡¡¡¡¡.byte¡¡ 255 ¡¡¡¡¡¡¡¡.byte¡¡ 255 "); void pceAppInit() { ¡¡¡¡pceLCDSetBuffer(vbuff); ¡¡¡¡pceLCDDispStart(); } void pceAppProc(int count) { ¡¡¡¡int i; ¡¡¡¡unsigned char* p; ¡¡¡¡memset(vbuff, 0, sizeof vbuff); ¡¡¡¡pceFontSetType(2); ¡¡¡¡pceFontSetPos(0, 0); ¡¡¡¡p = (unsigned char*)&cid; ¡¡¡¡pceFontPrintf("size = %d\n", sizeof(MMC_CID_INFO)); ¡¡¡¡for(i = 0; i < sizeof(MMC_CID_INFO); i++) { ¡¡¡¡¡¡¡¡pceFontPrintf("%02x ", p[i]); ¡¡¡¡} ¡¡¡¡pceLCDTrans(); } void pceAppExit() { } ------------------------------------------------------------------------------------------- ¢£¢£ ·ë²Ì ¢£¢£ size = 16 ff 00 ff ff ff ff ff ff ff ff ff 00 ff ff ff ff ------------------------------------------------------------------------------------------- ¤ä¤Ã¤Ñ¤ê¥À¥á¤Ç¤¹¡£ ²¿Ä̤꤫»î¤·¤¿·ë²Ì¡¢¤É¤¦¤ä¤é.alignµ¼»÷Ì¿Îá¤Ï¡Ö¥Ñ¥Ç¥£¥ó¥°¤òÁý¤ä¤¹¤³¤È¤Ï¤Ç¤­¤ë¤¬¸º¤é¤¹¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡×¤³¤È¤¬¤ï¤«¤ê¤Þ¤·¤¿¡£ ¤¿¤È¤¨¤Ð¡¢Ä̾.byteµ¼»÷Ì¿Îá¤Ë¤Ï°ÅÌۤΥ¢¥é¥¤¥á¥ó¥È¤Ï¤¢¤ê¤Þ¤»¤ó¡£ ¤¬¡¢¹½Â¤ÂΤÎÀèƬ¥Õ¥£¡¼¥ë¥É¤¬unsigned char·¿¤Ç¤¢¤ë¤è¤¦¤Ê¾ì¹ç¤Ê¤É¡¢unsigned charÃͤò¶¯À©Åª¤Ë4¤ÎÇÜ¿ô¥¢¥É¥ì¥¹¤ËÃÖ¤­¤¿¤¤¾ì¹ç¤Ë¡¢ .byteµ¼»÷Ì¿Îá¤ÎÁ°¤Ë.align 2¤ò»ØÄꤷ¤¿¤ê¤¹¤ë¤ï¤±¤Ç¡¢¤³¤Î¤è¤¦¤Ê.alignµ¼»÷Ì¿Îá¤Î»È¤¤Êý¤Ï£Ï£Ë¤Ç¤¹¡£ ¤¬¡¢µÕ¤Ë¡¢¤â¤È¤â¤È°ÅÌۤΥ¢¥é¥¤¥á¥ó¥È¤Ë¤è¤Ã¤Æ.halfµ¼»÷Ì¿Îá¤ä.wordµ¼»÷Ì¿Îá¤ÎľÁ°¤Ë¥Ñ¥Ç¥£¥ó¥°¤¬Äɲ䵤ì¤Æ¤¤¤¿¤â¤Î¤È¤·¤Æ¡¢ ¤½¤Î¥Ñ¥Ç¥£¥ó¥°¤ò¼è¤ê½ü¤¯¤¿¤á¤Ë.align 0¤ò»ØÄꤷ¤Æ¤â¡¢¤½¤ì¤Ï̵»ë¤µ¤ì¤Æ¤·¤Þ¤¦¤Î¤Ç¤¹¡£ °Ê¾å¤Î¿¶¤ëÉñ¤¤¤Ï¥Þ¥Ë¥å¥¢¥ë¤Ë¤ÏºÜ¤Ã¤Æ¤¤¤Ê¤¤¤è¤¦¤Ç¤¹¤±¤ì¤É¡¢¤Þ¤¢¡¢´¶³ÐŪ¤ËÍý²ò¤Ç¤­¤Ê¤¯¤â¤¢¤ê¤Þ¤»¤ó¡£ ¤½¤ó¤Ê¤ï¤±¤Ç·ë¶É¡¢¥¢¥»¥ó¥Ö¥é¤Ë¤è¤ë°ÅÌۤΥ¢¥é¥¤¥á¥ó¥È¤òÍÞÀ©¤¹¤ë¤Ë¤Ï¡¢¼¡¤Î¤è¤¦¤Ë1¥Ð¥¤¥È¤Å¤ÄÄêµÁ¤¹¤ë¤·¤«¤Ê¤¤¤ß¤¿¤¤¤Ç¤¹¡£ [¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È̵¤·¤Ë¤¹¤ë¤Ë¤Ï¡©(¤¤¤Á¤ª¤¦À®¸ùÎã¤Ç¤¹¤¬¡Ä)] #include unsigned char vbuff[128 * 88]; //CID(Card IDentification number)¡¡¥«¡¼¥ÉID¥ì¥¸¥¹¥¿¾ðÊó¹½Â¤ÂÎ typedef struct tag_MMC_CID_INFO { ¡¡¡¡unsigned char¡¡ ucMID;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// + 0, 1: ManufactureID(8bit) ¡¡¡¡unsigned short¡¡usOID;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// + 1, 2: OEM/Application ID(16bit) ¡¡¡¡unsigned char¡¡ ucPNM[6];¡¡¡¡¡¡¡¡¡¡ // + 3, 6: Product name(48bit) ¡¡¡¡unsigned char¡¡ ucPRV;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// + 9, 1: Product revision(8bit) ¡¡¡¡unsigned long¡¡ ulPSN;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +10, 4: Product serial number(32bit) ¡¡¡¡unsigned char¡¡ ucMDT;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +14, 1: Manufacturing date(8bit) ¡¡¡¡unsigned char¡¡ ucCRC;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +15, 1: 7-bit CRC checksum(7bit) } __attribute__((packed)) MMC_CID_INFO; // =16 //½é´ü²½ºÑ¤ß¹½Â¤ÂΤÎÄêµÁ¤ò¡¢¥¤¥ó¥é¥¤¥ó¥¢¥»¥ó¥Ö¥é¤Ç½ñ¤­Ä¾¤·¤Æ¤ß¤Þ¤¹¡£ extern MMC_CID_INFO cid; asm(" ¡¡¡¡¡¡¡¡.align¡¡2¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; ¹½Â¤ÂΤÎÀèƬ¤ò4¤ÎÇÜ¿ô¥¢¥É¥ì¥¹¤«¤é»Ï¤á¤ë¤¿¤á¤Ë¡¢ÀèƬ¤Î.align 2¤ÏɬÍ×!! cid: ¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡¡¡¡¡¡¡¡¡; // + 0, 1: ManufactureID(8bit) ¡¡¡¡¡¡¡¡.byte 255,255¡¡¡¡¡¡¡¡¡¡; // + 1, 2: OEM/Application ID(16bit) ¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡¡¡¡¡¡¡¡¡; // + 3, 6: Product name(48bit) ¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡¡¡¡¡¡¡¡¡; ¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡¡¡¡¡¡¡¡¡; ¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡¡¡¡¡¡¡¡¡; ¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡¡¡¡¡¡¡¡¡; ¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡¡¡¡¡¡¡¡¡; ¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡¡¡¡¡¡¡¡¡; // + 9, 1: Product revision(8bit) ¡¡¡¡¡¡¡¡.byte¡¡ 255,255,255,255¡¡; // +10, 4: Product serial number(32bit) ¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡¡¡¡¡¡¡¡¡; // +14, 1: Manufacturing date(8bit) ¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡¡¡¡¡¡¡¡¡; // +15, 1: 7-bit CRC checksum(7bit) "); void pceAppInit() { ¡¡¡¡pceLCDSetBuffer(vbuff); ¡¡¡¡pceLCDDispStart(); } void pceAppProc(int count) { ¡¡¡¡int i; ¡¡¡¡unsigned char* p; ¡¡¡¡memset(vbuff, 0, sizeof vbuff); ¡¡¡¡pceFontSetType(2); ¡¡¡¡pceFontSetPos(0, 0); ¡¡¡¡p = (unsigned char*)&cid; ¡¡¡¡pceFontPrintf("size = %d\n", sizeof(MMC_CID_INFO)); ¡¡¡¡for(i = 0; i < sizeof(MMC_CID_INFO); i++) { ¡¡¡¡¡¡¡¡pceFontPrintf("%02x ", p[i]); ¡¡¡¡} ¡¡¡¡pceLCDTrans(); } void pceAppExit() { } ------------------------------------------------------------------------------------------- ¢£¢£ ·ë²Ì ¢£¢£ size = 16 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ------------------------------------------------------------------------------------------- short¤äint¤Î¥Õ¥£¡¼¥ë¥É¤ò¡¢¿Í¼ê¤Ç1¥Ð¥¤¥È¤Å¤Äʬ²ò¤·¤ÆÄêµÁ¤¹¤ë¤È¤¤¤¦¤Î¤ÏÁ´¤¯¸½¼ÂŪ¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¤¬¡¢ C¥³¥ó¥Ñ¥¤¥é¤¬¥¢¥»¥ó¥Ö¥é¥³¡¼¥É¤ò¼«Æ°À¸À®¤¹¤ëʬ¤Ë¤Ï¡¢¤ä¤Ã¤Æ¤¯¤ì¤Æ¤âÎɤµ¤½¤¦¤Ë»×¤¨¤Þ¤¹¤¬.... ¤¿¤Ö¤ó¡¢EPSON¥³¥ó¥Ñ¥¤¥é¤Ï¤³¤Î¤è¤¦¤Ê¥±¡¼¥¹¤òÁÛÄꤷ¤Æ¤¤¤Ê¤«¤Ã¤¿¤Î¤À¤È»×¤¤¤Þ¤¹¡£ ;Ã̤Ǥ¹¤¬¡¢Linux PC¾å¤ÇGCC¤ò»È¤Ã¤¿¾ì¹ç¤Ï¡¢¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È̵¤·¤Î¾ì¹ç¤Ë¼¡¤Î¤è¤¦¤Ê¥¢¥»¥ó¥Ö¥é¥³¡¼¥É¤¬À¸À®¤µ¤ì¤Þ¤¹¡£ cid: ¡¡¡¡¡¡¡¡.byte¡¡ -1 ¡¡¡¡¡¡¡¡.value¡¡-1 ¡¡¡¡¡¡¡¡.byte¡¡ -1 ¡¡¡¡¡¡¡¡.byte¡¡ -1 ¡¡¡¡¡¡¡¡.byte¡¡ -1 ¡¡¡¡¡¡¡¡.byte¡¡ -1 ¡¡¡¡¡¡¡¡.byte¡¡ -1 ¡¡¡¡¡¡¡¡.byte¡¡ -1 ¡¡¡¡¡¡¡¡.byte¡¡ -1 ¡¡¡¡¡¡¡¡.long¡¡ -1 ¡¡¡¡¡¡¡¡.byte¡¡ -1 ¡¡¡¡¡¡¡¡.byte¡¡ -1 ºÇ½é¤Ë¸«¤¿¡¢P/ECE¾å¤Ç¤Î¸í¤Ã¤¿Îã¤ÈƱ¤¸¤Ë¸«¤¨¤Þ¤¹¤¬¡¢PC¤Î¾ì¹ç¤Ï¤³¤ì¤ÇÂç¾æÉפʤΤǤ¹¡£ Linux PC¤Î¥¢¥»¥ó¥Ö¥é¤ÏP/ECE¤Î¥¢¥»¥ó¥Ö¥é¤È°ã¤Ã¤Æ¡¢½é´ü¾õÂ֤ǤϰÅÌۤΥ¢¥é¥¤¥á¥ó¥È¤ò¹Ô¤ï¤Ê¤¤¤ß¤¿¤¤¤Ç¤¹¡£ ¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£ ¢£¹½Â¤ÂΥѥ寤ò»È¤Ã¤Æ¤âÂç¾æÉפʥ±¡¼¥¹¢£ ¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£ °Ê¾å¤Î¤è¤¦¤Ë¡¢P/ECE³«È¯´Ä¶­¤Ç¤Ï__attribute__((packed))¤Ë¤è¤ë¹½Â¤ÂΥѥ寤¬¤«¤Ê¤êÂ礭¤ÊÌäÂê¤òÊú¤¨¤Æ¤¤¤ë¤³¤È¤¬¤ï¤«¤ê¤Þ¤·¤¿¡£ Ä̾¡Ö»È¤ï¤Ê¤¤¤Û¤¦¤¬Îɤ¤¡×¤Î¤Ï´Ö°ã¤¤¤¢¤ê¤Þ¤»¤ó¡£ ¤¬¡¢¤Þ¤Ã¤¿¤¯»È¤¨¤Ê¤¤¤«¤È¤¤¤¦¤È¤½¤¦¤Ç¤â¤Ê¤¯¤Æ¡¢¤è¤¯Ãí°Õ¤·¤Æ»È¤¨¤ÐÌò¤ËΩ¤Ä¥±¡¼¥¹¤â¤¢¤ê¤Þ¤¹¡£ ¤«¤Ê¤êºÙ¤«¤¤Ïäˤʤê¤Þ¤¹¤Î¤Ç¡¢É¬Íפʤ±¤ì¤ÐÆɤßÈô¤Ð¤·¤Æ¤¯¤À¤µ¤¤¡£ ­¡½é´üºÑ¤ß¹½Â¤ÂΤò»È¤ï¤Ê¤¤¥±¡¼¥¹ ¤Ò¤È¤Ä¤á¤Ï¡¢½é´ü²½ºÑ¤ß¹½Â¤ÂΤò»È¤ï¤Ê¤¤¤³¤È¤¬³Î¼Â¤Ë¤ï¤«¤Ã¤Æ¤¤¤ë¥±¡¼¥¹¤Ç¤¹¡£ P/ECE¾å¤ÇÀµ¤·¤¯Æ°ºî¤·¤Ê¤«¤Ã¤¿C¸À¸ì¥×¥í¥°¥é¥à¤ò¡¢½é´ü²½ºÑ¤ß¹½Â¤ÂΤò»È¤ï¤Ê¤¤¤è¤¦¡¢¼¡¤Î¤è¤¦¤Ë½ñ¤­´¹¤¨¤Æ¤ß¤Þ¤·¤¿¡£ [¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È̵¤·¡¢½é´ü²½ºÑ¤ß¹½Â¤ÂΤò»È¤ï¤Ê¤¤] #include unsigned char vbuff[128 * 88]; //CID(Card IDentification number)¡¡¥«¡¼¥ÉID¥ì¥¸¥¹¥¿¾ðÊó¹½Â¤ÂÎ typedef struct tag_MMC_CID_INFO { ¡¡¡¡unsigned char¡¡ ucMID;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// + 0, 1: ManufactureID(8bit) ¡¡¡¡unsigned short¡¡usOID;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// + 1, 2: OEM/Application ID(16bit) ¡¡¡¡unsigned char¡¡ ucPNM[6];¡¡¡¡¡¡¡¡¡¡ // + 3, 6: Product name(48bit) ¡¡¡¡unsigned char¡¡ ucPRV;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// + 9, 1: Product revision(8bit) ¡¡¡¡unsigned long¡¡ ulPSN;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +10, 4: Product serial number(32bit) ¡¡¡¡unsigned char¡¡ ucMDT;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +14, 1: Manufacturing date(8bit) ¡¡¡¡unsigned char¡¡ ucCRC;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +15, 1: 7-bit CRC checksum(7bit) } __attribute__((packed)) MMC_CID_INFO; // =16 MMC_CID_INFO cid; void pceAppInit() { ¡¡¡¡pceLCDSetBuffer(vbuff); ¡¡¡¡pceLCDDispStart(); } void pceAppProc(int count) { ¡¡¡¡int i; ¡¡¡¡unsigned char* p; ¡¡¡¡//¹½Â¤ÂÎ¥Õ¥£¡¼¥ë¥É¤ËÃͤò¤Ò¤È¤Ä¤Å¤Ä³ÊǼ ¡¡¡¡cid.ucMID = 0xff; ¡¡¡¡cid.usOID = 0xffff; ¡¡¡¡cid.ucPNM[0] = 0xff; ¡¡¡¡cid.ucPNM[1] = 0xff; ¡¡¡¡cid.ucPNM[2] = 0xff; ¡¡¡¡cid.ucPNM[3] = 0xff; ¡¡¡¡cid.ucPNM[4] = 0xff; ¡¡¡¡cid.ucPNM[5] = 0xff; ¡¡¡¡cid.ucPRV = 0xff; ¡¡¡¡cid.ulPSN = 0xffffffff; ¡¡¡¡cid.ucMDT = 0xff; ¡¡¡¡cid.ucCRC = 0xff; ¡¡¡¡memset(vbuff, 0, sizeof vbuff); ¡¡¡¡pceFontSetType(2); ¡¡¡¡pceFontSetPos(0, 0); ¡¡¡¡p = (unsigned char*)&cid; ¡¡¡¡pceFontPrintf("size = %d\n", sizeof(MMC_CID_INFO)); ¡¡¡¡for(i = 0; i < sizeof(MMC_CID_INFO); i++) { ¡¡¡¡¡¡¡¡pceFontPrintf("%02x ", p[i]); ¡¡¡¡} ¡¡¡¡pceLCDTrans(); } void pceAppExit() { } ------------------------------------------------------------------------------------------- ¢£¢£ ·ë²Ì ¢£¢£ size = 16 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ------------------------------------------------------------------------------------------- Àµ¤·¤¤·ë²Ì¤¬ÆÀ¤é¤ì¤Þ¤·¤¿¡£ ½é´ü²½ºÑ¤ß¹½Â¤ÂΤξì¹ç¤Ï¥Õ¥£¡¼¥ë¥É¤Ò¤È¤Ä¤Ò¤È¤Ä¤¬¥Ç¡¼¥¿ÄêµÁµ¼»÷Ì¿Îá¤Ë¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿¤¿¤á¡¢Á°½Ò¤Î¤è¤¦¤Ê°ÅÌۤΥ¢¥é¥¤¥á¥ó¥ÈÌäÂ꤬ȯÀ¸¤·¤¿¤ï¤±¤Ç¤¹¤¬¡¢ ̤½é´ü²½¹½Â¤ÂΤξì¹ç¤Ï¥Õ¥£¡¼¥ë¥É¤Ò¤È¤Ä¤Ò¤È¤Ä¤ËÂбþ¤¹¤ëµ¼»÷Ì¿Î᤬À¸À®¤µ¤ì¤ë¤ï¤±¤Ç¤Ï¤Ê¤¯¡¢¼¡¤Î¤è¤¦¤Ê¥¢¥»¥ó¥Ö¥é¥³¡¼¥É¤¬À¸À®¤µ¤ì¤Þ¤¹¡£ .comm¡¡¡¡cid 16¡¡¡¡; 16¥Ð¥¤¥È¤Î¥°¥í¡¼¥Ð¥ëÊÑ¿ôÎΰè¤ò³ÎÊݤ»¤è¡¢¤È¤¤¤¦°ÕÌ£ ¹½Â¤ÂÎ¥Õ¥£¡¼¥ë¥É¤ËÃͤò¤Ò¤È¤Ä¤Å¤Ä³ÊǼ¤¹¤ëÉôʬ¤ÎC¸À¸ì¥×¥í¥°¥é¥à¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤Þ¤¹¡£(ÆɤàɬÍפʤ¤¤Ç¤¹(^^;) xld.w¡¡¡¡%r0,cid xld.w¡¡¡¡%r10,0x000000ff xld.b¡¡¡¡[%r0],%r10¡¡¡¡¡¡¡¡¡¡; + 0, 1: ManufactureID(8bit) xld.ub¡¡ %r11,[%r0+1]¡¡¡¡¡¡¡¡; + 1, 2: OEM/Application ID(16bit) (¼ê½ç¤Ë̵Â̤¬¤¢¤ê¤Þ¤¹¤¬¡¢´Ö°ã¤¤¤Ç¤Ï¤Ê¤¤¤Ç¤¹) or¡¡¡¡¡¡ %r11,%r10 xld.b¡¡¡¡[%r0+1],%r11 xld.ub¡¡ %r11,[%r0+2] or¡¡¡¡¡¡ %r11,%r10 xld.b¡¡¡¡[%r0+2],%r11 xld.b¡¡¡¡[%r0+3],%r10¡¡¡¡¡¡¡¡; + 3, 6: Product name(48bit) xld.b¡¡¡¡[%r0+4],%r10 xld.b¡¡¡¡[%r0+5],%r10 xld.b¡¡¡¡[%r0+6],%r10 xld.b¡¡¡¡[%r0+7],%r10 xld.b¡¡¡¡[%r0+8],%r10 xld.b¡¡¡¡[%r0+9],%r10¡¡¡¡¡¡¡¡; + 9, 1: Product revision(8bit) xld.ub¡¡ %r11,[%r0+10]¡¡¡¡¡¡ ; +10, 4: Product serial number(32bit) (¼ê½ç¤Ë̵Â̤¬¤¢¤ê¤Þ¤¹¤¬¡¢´Ö°ã¤¤¤Ç¤Ï¤Ê¤¤¤Ç¤¹) or¡¡¡¡¡¡ %r11,%r10 xld.b¡¡¡¡[%r0+10],%r11 xld.ub¡¡ %r11,[%r0+11] or¡¡¡¡¡¡ %r11,%r10 xld.b¡¡¡¡[%r0+11],%r11 xld.ub¡¡ %r11,[%r0+12] or¡¡¡¡¡¡ %r11,%r10 xld.b¡¡¡¡[%r0+12],%r11 xld.ub¡¡ %r11,[%r0+13] or¡¡¡¡¡¡ %r11,%r10 xld.b¡¡¡¡[%r0+13],%r11 xld.b¡¡¡¡[%r0+14],%r10¡¡¡¡¡¡ ; +14, 1: Manufacturing date(8bit) xadd¡¡¡¡ %r1,%r0,15¡¡¡¡¡¡¡¡¡¡; +15, 1: 7-bit CRC checksum(7bit) xld.b¡¡¡¡[%r1],%r10 C¥³¥ó¥Ñ¥¤¥é¤Ï¡¢¥Ñ¥Ã¥¯¤µ¤ì¤¿¹½Â¤ÂΤγƥե£¡¼¥ë¥É¤ÎÀµ¤·¤¤¥ª¥Õ¥»¥Ã¥È¤òǧ¼±¤·¤Æ¤¤¤ë¤Î¤Ç¡¢Àµ¤·¤¤¥³¡¼¥É¤¬À¸À®¤µ¤ì¤Æ¤¤¤Þ¤¹¡£(¤Á¤ç¤Ã¤È̵Â̤¢¤ê¤Þ¤¹¤±¤ì¤É) ¤¤¤Þ¾å¤Ç¼¨¤·¤¿¥×¥í¥°¥é¥àÎã¤Î¤è¤¦¤Ê¡¢¹½Â¤ÂΤγƥե£¡¼¥ë¥É¤ò¥×¥í¥°¥é¥à¤Ç¤Ò¤È¤Ä¤Å¤Ä½é´ü²½¤¹¤ë¥±¡¼¥¹¤Ë²Ã¤¨¤Æ¡¢ ¥Õ¥¡¥¤¥ë¤òÆɤ߹þ¤ó¤À¤ê¥Ç¥Ð¥¤¥¹¤«¤é¥Ð¥¤¥ÈÎó¤ò¼õ¿®¤·¤Æ¡¢¤½¤Î¤Þ¤Þ¹½Â¤ÂÎÊÑ¿ô¤Ë³ÊǼ¤¹¤ë¥±¡¼¥¹¤Ç¤â¡¢½é´ü²½ºÑ¤ß¹½Â¤ÂΤò»È¤¦É¬Íפ¬¤Ê¤¤¤Î¤Ç£Ï£Ë¤Ç¤¹¡£ ­¢¹½Â¤ÂÎËöÈø¤Î¥Ñ¥Ç¥£¥ó¥°¤À¤±¤ò½üµî¤¹¤ë¾ì¹ç ¤â¤È¤â¤È¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¤¢¤ê¤Î¾ì¹ç¤Ë¤â¥Õ¥£¡¼¥ë¥É´Ö¤Ë¤Ï¥Ñ¥Ç¥£¥ó¥°¤¬¤Ê¤¯¤Ã¤Æ¡¢¹½Â¤ÂÎËöÈø¤À¤±¤Ë¥Ñ¥Ç¥£¥ó¥°¤¬¤¢¤ë¤è¤¦¤Ê¾ì¹ç¤Ë¡¢ ¹½Â¤ÂÎËöÈø¤Î¥Ñ¥Ç¥£¥ó¥°¤ò¼è¤ê½ü¤¤¤Æ¤½¤Î¤Ö¤ó¹½Â¤ÂÎ¥µ¥¤¥º¤ò¾®¤µ¤¯¤·¤¿¤¤¥±¡¼¥¹¤Ç¡¢__attribute__((packed))¤¬ÍøÍѲÄǽ¤Ç¤¹¡£ ¤½¤ó¤ÊÅÔ¹ç¤ÎÎɤ¤Ï䬤¢¤ë¤«¡ª¤È¸À¤ï¤ì¤½¤¦¤Ç¤¹¤¬(^^;¡¢¤¢¤ê¤Þ¤¹¡£ USB»ÅÍͤι½Â¤ÂΤǤ¹¡£ USB»ÅÍͤι½Â¤ÂΤϡ¢³Æ¥Õ¥£¡¼¥ë¥É¤Î¥ª¥Õ¥»¥Ã¥È¤Ë´Ø¤·¤Æ¤Ï¥Ñ¥Ç¥£¥ó¥°Ìµ¤·¤ÇŬÀڤʥ¢¥é¥¤¥á¥ó¥È¤Ë¤Ê¤ë¤è¤¦Äê¤á¤é¤ì¤Æ¤¤¤ë¤³¤È¤¬Â¿¤¤¤Î¤Ç¤¹¤±¤ì¤É¡¢ ¤Ê¤¼¤«ËöÈø¤Ë1¥Ð¥¤¥È¤Î¥Õ¥£¡¼¥ë¥É¤¬¤¢¤Ã¤¿¤ê¤·¤Æ¡¢¹½Â¤ÂΥѥå¯Ìµ¤·¤Ç¤ÏËöÈø¤Ë¥Ñ¥Ç¥£¥ó¥°¤¬ÉÕ¤¤¤Æ¤·¤Þ¤¦¤è¤¦¤Ê¥±¡¼¥¹¤¬¤è¤¯¤¢¤ë¤ß¤¿¤¤¤Ê¤Î¤Ç¤¹¡£ ¤¿¤È¤¨¤Ð¡¢USBÄÌ¿®Ã¼ÅÀ¤ÎÆÃÀ­¤òµ­½Ò¤¹¤ë¤¿¤á¤Î¹½Â¤ÂΤȤ·¤Æ¡¢¥¨¥ó¥É¥Ý¥¤¥ó¥È¥Ç¥£¥¹¥¯¥ê¥×¥¿¤È¤¤¤¦¹½Â¤ÂΤ¬¤¢¤ê¤Þ¤¹¡£ typedef struct _ENDPOINT_DESCRIPTOR { ¡¡¡¡unsigned char bLength;¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡/* + 0, 1 */ ¡¡¡¡unsigned char bDescriptorType;¡¡¡¡¡¡¡¡¡¡¡¡/* + 1, 1 */ ¡¡¡¡unsigned char bEndpointAddress;¡¡¡¡¡¡¡¡¡¡ /* + 2, 1 */ ¡¡¡¡unsigned char bAttributes;¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡/* + 3, 1 */ ¡¡¡¡unsigned short wMaxPacketSize;¡¡¡¡¡¡¡¡¡¡¡¡ /* + 4, 2 */ ¡¡¡¡unsigned char bInterval;¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡/* + 6, 1 */ } __attribute__((packed)) ENDPOINT_DESCRIPTOR; /* = 7 */ USB¥Ç¥Ð¥¤¥¹(P/ECE¦¤Ç¤¹)¤Ï¡¢¥Ç¥Ð¥¤¥¹¤ÎÄÌ¿®ÆÃÀ­¤ò¥Û¥¹¥È(PC¦¤Ç¤¹)¤ØÃΤ餻¤ë¤¿¤á¤Ë¡¢¥¨¥ó¥É¥Ý¥¤¥ó¥È¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò¥Ç¥Ð¥¤¥¹¤«¤é¥Û¥¹¥È¤ØÁ÷¿®¤·¤Þ¤¹¡£ ¥¨¥ó¥É¥Ý¥¤¥ó¥È¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ÎÆâÍƤ¬ÊѲ½¤¹¤ë¤³¤È¤Ï¤Þ¤º¤Ê¤¤¤Î¤Ç¡¢½é´ü²½ºÑ¤ß¹½Â¤ÂΤȤ·¤Æ¤¢¤é¤«¤¸¤áÍÑ°Õ¤·¤Æ¤ª¤­¤Þ¤¹¡£ ½é´ü²½ºÑ¤ß¥¨¥ó¥É¥Ý¥¤¥ó¥È¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò¥Ç¥Ð¥¤¥¹¤«¤é¥Û¥¹¥È¤ØÁ÷¿®¤¹¤ë¥×¥í¥°¥é¥à¤Ï¡¢¤À¤¤¤¿¤¤¼¡¤Î¤è¤¦¤Ê¤«¤ó¤¸¤Ë¤Ê¤ê¤Þ¤¹¡£ const ENDPOINT_DESCRIPTOR endpoint_desc_ep2in = { ¡¡¡¡sizeof(ENDPOINT_DESCRIPTOR),¡¡¡¡//unsigned char bLength;¡¡¡¡¡¡¡¡¡¡¡¡/* + 0, 1 */ ¡¡¡¡ENDPOINT_DESCRIPTOR_TYPE,¡¡¡¡¡¡ //unsigned char bDescriptorType;¡¡¡¡/* + 1, 1 */ ¡¡¡¡0x82,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ //unsigned char bEndpointAddress;¡¡ /* + 2, 1 */ ¡¡¡¡2,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//unsigned char bAttributes;¡¡¡¡¡¡¡¡/* + 3, 1 */ ¡¡¡¡EP2_NONISO_PACKET_SIZE,¡¡¡¡¡¡¡¡ //unsigned short wMaxPacketSize;¡¡¡¡ /* + 4, 2 */ ¡¡¡¡0,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//unsigned char bInterval;¡¡¡¡¡¡¡¡¡¡/* + 6, 1 */ }; D12_WriteEndpoint(1/*½ÐÎÏüÅÀ¤Î»ØÄê*/, &endpoint_desc_ep2in, sizeof(ENDPOINT_DESCRIPTOR)); ¢¨ËÜÅö¤Ï¥¨¥ó¥É¥Ý¥¤¥ó¥È¥Ç¥£¥¹¥¯¥ê¥×¥¿¤À¤±¤òñÂΤÇÁ÷¿®¤¹¤ë¤³¤È¤Ï¤Ê¤¤¤Î¤Ç¤¹¤±¤ì¤É¡¢ÀâÌÀ¤ò´Êñ¤Ë¤¹¤ë¤¿¤á¤Ë¡¢¤³¤³¤Ç¤Ï¹Í¤¨¤Ê¤¤¤³¤È¤Ë¤·¤Þ¤¹¡£ °Ê¾å¤Ï¡¢Àµ¤·¤¯Æ°ºî¤¹¤ë¥×¥í¥°¥é¥à¤ÎÎã¤Ç¤¹¡£ ¤µ¤Æ¡¢¤â¤·¤âENDPOINT_DESCRIPTOR¤ÎÄêµÁ¤Î¤È¤³¤í¤Ç__attribute__((packed))¤ò»ØÄꤷ¤Ê¤«¤Ã¤¿¤é¤É¤¦¤Ê¤ë¤Ç¤·¤ç¤¦¤«¡© typedef struct _ENDPOINT_DESCRIPTOR { ¡¡¡¡unsigned char bLength;¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡/* + 0, 1 */ ¡¡¡¡unsigned char bDescriptorType;¡¡¡¡¡¡¡¡¡¡¡¡/* + 1, 1 */ ¡¡¡¡unsigned char bEndpointAddress;¡¡¡¡¡¡¡¡¡¡ /* + 2, 1 */ ¡¡¡¡unsigned char bAttributes;¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡/* + 3, 1 */ ¡¡¡¡unsigned short wMaxPacketSize;¡¡¡¡¡¡¡¡¡¡¡¡ /* + 4, 2 */ ¡¡¡¡unsigned char bInterval;¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡/* + 6, 1 */ ¡¡¡¡(¥Ñ¥Ç¥£¥ó¥°)¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ /* + 7, 1 */ } ENDPOINT_DESCRIPTOR;¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ /* = 8 */ const ENDPOINT_DESCRIPTOR endpoint_desc_ep2in = { ¡¡¡¡sizeof(ENDPOINT_DESCRIPTOR),¡¡¡¡//unsigned char bLength;¡¡¡¡¡¡¡¡¡¡¡¡/* + 0, 1 */ ... ËÜÅö¤Ï7¤È¤¹¤Ù¤­¤Ê¤Î¤Ë¡¢8¤¬ÀßÄꤵ¤ì¤Æ¤·¤Þ¤¦!! ¡¡¡¡ENDPOINT_DESCRIPTOR_TYPE,¡¡¡¡¡¡ //unsigned char bDescriptorType;¡¡¡¡/* + 1, 1 */ ¡¡¡¡0x82,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ //unsigned char bEndpointAddress;¡¡ /* + 2, 1 */ ¡¡¡¡2,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//unsigned char bAttributes;¡¡¡¡¡¡¡¡/* + 3, 1 */ ¡¡¡¡EP2_NONISO_PACKET_SIZE,¡¡¡¡¡¡¡¡ //unsigned short wMaxPacketSize;¡¡¡¡ /* + 4, 2 */ ¡¡¡¡0,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//unsigned char bInterval;¡¡¡¡¡¡¡¡¡¡/* + 6, 1 */ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//(¥Ñ¥Ç¥£¥ó¥°)¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ /* + 7, 1 */ }; D12_WriteEndpoint(1/*½ÐÎÏüÅÀ¤Î»ØÄê*/, &endpoint_desc_ep2in, sizeof(ENDPOINT_DESCRIPTOR)); // ËÜÅö¤Ï D12_WriteEndpoint(1, &endpoint_desc_ep2in, 7) ¤È¤¹¤Ù¤­¤Ê¤Î¤Ë¡¢ // D12_WriteEndpoint(1, &endpoint_desc_ep2in, 8) ¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¦!! bLength¥Õ¥£¡¼¥ë¥É¤ÎÃͤäÁ÷¿®¥Ð¥¤¥È¿ô¤¬Àµ¤·¤¯¤Ê¤¤¤¿¤á¡¢¤³¤Î¥×¥í¥°¥é¥à¤ÏÀµ¤·¤¯Æ°ºî¤·¤Þ¤»¤ó¡£ bLength¥Õ¥£¡¼¥ë¥É¤äÁ÷¿®¥Ð¥¤¥È¿ô¤È¤·¤Æ¡¢sizeof(ENDPOINT_DESCRIPTOR)¤ò»È¤¦¤Î¤Ç¤Ï¤Ê¤¯¡¢ÌÀ¼¨Åª¤Ë"7"¤È½ñ¤±¤Ð²ò·è¤¹¤ë¤Î¤Ç¤¹¤¬¡¢ ¤Ò¤È¤Ä¤Ò¤È¤Ä¤Î¹½Â¤ÂÎ¥µ¥¤¥º¤ò³Ð¤¨¤ë¤è¤ê¤â¡¢¤Ç¤­¤ë¤Ê¤é¤Ðsizeof¤¬»È¤¨¤¿¤Û¤¦¤¬³Ú¤Ç¤¹¤è¤Í¡£ ¤Á¤ç¤Ã¤ÈºÙ¤«¤¤Ïäˤʤê¤Þ¤¹¤¬¡¢Ä̾¥¨¥ó¥É¥Ý¥¤¥ó¥È¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ÏÊ£¿ôÄêµÁ¤·¤Þ¤¹¡£ ¤¬¡¢¤½¤ÎºÝ¡¢½é´ü²½ºÑ¤ß¥¨¥ó¥É¥Ý¥¤¥ó¥È¥Ç¥£¥¹¥¯¥ê¥×¥¿¹½Â¤ÂΤò¡¢ÇÛÎó¤Ë¤·¤Æ¤Ï¤¤¤±¤Þ¤»¤ó¡£ ¥¨¥ó¥É¥Ý¥¤¥ó¥È¥Ç¥£¥¹¥¯¥ê¥×¥¿¹½Â¤ÂΤϡ¢Ã±ÂΤʤé¤Ð¥Ñ¥Ç¥£¥ó¥°Ìµ¤·¤ÇŬÀڤʥ¢¥é¥¤¥á¥ó¥È¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤Î¤Ç¤¹¤±¤ì¤É¡¢ ÇÛÎó¤Ë¤¹¤ë¤ÈÆó¤ÄÌܤÎÍ×ÁǤÎÅÓÃæ¤Ç¥¢¥é¥¤¥á¥ó¥È¤¬Êø¤ì¡¢¥¢¥»¥ó¥Ö¥é¤Ë¤è¤ë°ÅÌۤΥ¢¥é¥¤¥á¥ó¥È¤¬¹Ô¤ï¤ì¤Æ¡¢ÉÔÍפʥѥǥ£¥ó¥°¤¬Æþ¤Ã¤Æ¤·¤Þ¤¦¤«¤é¤Ç¤¹¡£ const ENDPOINT_DESCRIPTOR endpoint_desc[2] = { { ¡¡¡¡sizeof(ENDPOINT_DESCRIPTOR),¡¡¡¡//unsigned char bLength;¡¡¡¡¡¡¡¡¡¡¡¡/* + 0, 1 */ ¡¡¡¡ENDPOINT_DESCRIPTOR_TYPE,¡¡¡¡¡¡ //unsigned char bDescriptorType;¡¡¡¡/* + 1, 1 */ ¡¡¡¡0x82,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ //unsigned char bEndpointAddress;¡¡ /* + 2, 1 */ ¡¡¡¡2,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//unsigned char bAttributes;¡¡¡¡¡¡¡¡/* + 3, 1 */ ¡¡¡¡EP2_NONISO_PACKET_SIZE,¡¡¡¡¡¡¡¡ //unsigned short wMaxPacketSize;¡¡¡¡ /* + 4, 2 */ ¡¡¡¡0,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//unsigned char bInterval;¡¡¡¡¡¡¡¡¡¡/* + 6, 1 */ }, { ¡¡¡¡sizeof(ENDPOINT_DESCRIPTOR),¡¡¡¡//unsigned char bLength;¡¡¡¡¡¡¡¡¡¡¡¡/* + 7, 1 */ ¡¡¡¡ENDPOINT_DESCRIPTOR_TYPE,¡¡¡¡¡¡ //unsigned char bDescriptorType;¡¡¡¡/* + 8, 1 */ ¡¡¡¡0x02,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ //unsigned char bEndpointAddress;¡¡ /* + 9, 1 */ ¡¡¡¡2,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//unsigned char bAttributes;¡¡¡¡¡¡¡¡/* +10, 1 */ ¡¡¡¡EP2_NONISO_PACKET_SIZE,¡¡¡¡¡¡¡¡ //unsigned short wMaxPacketSize;¡¡¡¡ /* +11, 2 */ ¡¡¡¡0,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//unsigned char bInterval;¡¡¡¡¡¡¡¡¡¡/* +13, 1 */ } };¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ /* =14 */ ¢­¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤È... ¡¡¡¡.align¡¡2 endpoint_desc: ¡¡¡¡.byte¡¡ 7¡¡¡¡¡¡¡¡//unsigned char bLength;¡¡¡¡¡¡¡¡¡¡¡¡/* + 0, 1 */ ¡¡¡¡.byte¡¡ 5¡¡¡¡¡¡¡¡//unsigned char bDescriptorType;¡¡¡¡/* + 1, 1 */ ¡¡¡¡.byte¡¡130¡¡¡¡¡¡¡¡//unsigned char bEndpointAddress;¡¡ /* + 2, 1 */ ¡¡¡¡.byte¡¡ 2¡¡¡¡¡¡¡¡//unsigned char bAttributes;¡¡¡¡¡¡¡¡/* + 3, 1 */ ¡¡¡¡.half¡¡ 64¡¡¡¡¡¡¡¡//unsigned short wMaxPacketSize;¡¡¡¡ /* + 4, 2 */ ¡¡¡¡.byte¡¡ 0¡¡¡¡¡¡¡¡//unsigned char bInterval;¡¡¡¡¡¡¡¡¡¡/* + 6, 1 */ ¡¡¡¡.byte¡¡ 7¡¡¡¡¡¡¡¡//unsigned char bLength;¡¡¡¡¡¡¡¡¡¡¡¡/* + 7, 1 */ ¡¡¡¡.byte¡¡ 5¡¡¡¡¡¡¡¡//unsigned char bDescriptorType;¡¡¡¡/* + 8, 1 */ ¡¡¡¡.byte¡¡ 2¡¡¡¡¡¡¡¡//unsigned char bEndpointAddress;¡¡ /* + 9, 1 */ ¡¡¡¡.byte¡¡ 2¡¡¡¡¡¡¡¡//unsigned char bAttributes;¡¡¡¡¡¡¡¡/* +10, 1 */ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//(¤³¤³¤Ë¥Ñ¥Ç¥£¥ó¥°¤¬Æþ¤Ã¤Æ¤·¤Þ¤¦!!) /* +11, 1 */ ¡¡¡¡.half¡¡ 64¡¡¡¡¡¡¡¡//unsigned short wMaxPacketSize;¡¡¡¡ /* +12, 2 */ ¤º¤ì¤Æ¤ë!! ¡¡¡¡.byte¡¡ 0¡¡¡¡¡¡¡¡//unsigned char bInterval;¡¡¡¡¡¡¡¡¡¡/* +14, 1 */ ¤º¤ì¤Æ¤ë!! Ê£¿ô¤Î¥¨¥ó¥É¥Ý¥¤¥ó¥È¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò½é´ü²½ºÑ¤ß¹½Â¤ÂΤȤ·¤ÆÄêµÁ¤¹¤ë¾ì¹ç¤Ï¡¢ÇÛÎó¤Ë¤¹¤ë¤Î¤Ç¤Ê¤¯¡¢¤Ò¤È¤Ä¤Ò¤È¤ÄÄêµÁ¤·¡¢ ¼Â¹Ô»þ¤Ë¤¯¤Ã¤Ä¤±¤ÆÁ÷¿®¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ const ENDPOINT_DESCRIPTOR endpoint_desc_ep2in = { sizeof(ENDPOINT_DESCRIPTOR), ENDPOINT_DESCRIPTOR_TYPE, 0x82, 2, EP2_NONISO_PACKET_SIZE, 0, }; const ENDPOINT_DESCRIPTOR endpoint_desc_ep2out = { sizeof(ENDPOINT_DESCRIPTOR), ENDPOINT_DESCRIPTOR_TYPE, 0x02, 2, EP2_NONISO_PACKET_SIZE, 0, }; memcpy(&tmpbuf[sizeof(ENDPOINT_DESCRIPTOR) * 0], &endpoint_desc_ep2in, sizeof(ENDPOINT_DESCRIPTOR)); memcpy(&tmpbuf[sizeof(ENDPOINT_DESCRIPTOR) * 1], &endpoint_desc_ep2in, sizeof(ENDPOINT_DESCRIPTOR)); D12_WriteEndpoint(1/*½ÐÎÏüÅÀ¤Î»ØÄê*/, &tmpbuf, sizeof(ENDPOINT_DESCRIPTOR) * 2); ¢£¢£¢£¢£¢£ ¢£¤Þ¤È¤á¢£ ¢£¢£¢£¢£¢£ ·ëÏÀ¤Ç¤¹¡£ ¡ØP/ECE³«È¯´Ä¶­¤Ç¤Ï¡¢__attribute__((packed))¤Ë¤è¤ë¹½Â¤ÂΥѥ寤ÏÍøÍÑÉԲĤǤ¹¡£¡Ù ³Î¼Â¤ËÌäÂ꤬²óÈò¤Ç¤­¤ë¤È³Î¿®¤Ç¤­¤ë¾ì¹ç¤Ë¸Â¤Ã¤Æ¡¢__attribute__((packed))¤âÍøÍѲÄǽ¤Ç¤¹¤¬¡¢ ¤½¤ì¤Ï¤Þ¤ë¤Ç¡¢À¸¤Î¥¢¥»¥ó¥Ö¥é¤ä¥Ð¥¤¥Ê¥ê¥¨¥Ç¥£¥¿¤ò»È¤Ã¤Æ¥Ç¡¼¥¿¤òÁàºî¤·¤Æ¤¤¤ë¤è¤¦¤Ê´¶³Ð¤Ç¤¹¡£ ¤â¤È¤â¤È#pargma pack¤ä__attribute__((packed))¤Ï½èÍý·Ï°Í¸¤Î³ÈÄ¥µ¡Ç½¤Ç¤¹¤·¡¢»È¤ï¤º¤ËºÑ¤à¤Ê¤é¤Ð¤½¤ì¤Ë±Û¤·¤¿¤³¤È¤Ï¤¢¤ê¤Þ¤»¤ó¡£ * Sat Nov 6 00:00:00 JST 2004 Naoyuki Sawa - ¹½Â¤ÂΥѥ寤ËÌäÂꤢ¤ê#1 P/ECE³«È¯´Ä¶­¤ÎC¥³¥ó¥Ñ¥¤¥é¤Ë¤ÏÌäÂ꤬¤¢¤ê¡¢¹½Â¤ÂΥѥ寤ò¹Ô¤¦¾ì¹ç¤ËÃí°Õ¤¬É¬ÍפǤ¹¡£ º£²ó¤Ï¡¢¤³¤ÎÌäÂê¤Ë¤Ä¤¤¤Æµ­¤·¤Æ¤ª¤³¤¦¤È»×¤¤¤Þ¤¹¡£ P/ECEÆÃÍ­¤ÎÌäÂêÅÀ¤À¤±Æɤߤ¿¤¤¤«¤¿¤Ï¡¢¢££Ð¡¿£Å£Ã£Å¤Î¾ì¹ç¡ÁÌäÂêȯÀ¸!!¢£¤Þ¤ÇÆɤßÈô¤Ð¤·¤Æ¤¯¤À¤µ¤¤¡£ ¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£ ¢£°ìÈÌŪ¤ÊÏáÁ¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¢£ ¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£ Ä̾C¸À¸ì¤Ç¹½Â¤ÂΤòÄêµÁ¤¹¤ë¤È¡¢³Æ¥Õ¥£¡¼¥ë¥É¤¬¥Õ¥£¡¼¥ë¥É¥µ¥¤¥º¤ÎÇÜ¿ô¤Î°ÌÃ֤˷¤¦¤è¤¦¤Ë¡¢°ÅÌۤζõÇòÎΰ褬Äɲ䵤ì¤Þ¤¹¡£ ¤¿¤È¤¨¤Ð¼¡¤Î¤è¤¦¤Ê¹½Â¤ÂΤòÄêµÁ¤·¤¿¤È¤·¤Þ¤¹¡£ typedef struct _SAMPLE1 { ¡¡¡¡char c1; ¡¡¡¡short s2; ¡¡¡¡int i3; ¡¡¡¡char c4; } SAMPLE1; ¤³¤ì¤À¤±¸«¤ë¤È¡¢³Æ¥Õ¥£¡¼¥ë¥É¤Î¥ª¥Õ¥»¥Ã¥È¤È¥µ¥¤¥º¡¢¤ª¤è¤Ó¹½Â¤ÂÎ¥µ¥¤¥º¤Ï¼¡¤Î¤è¤¦¤Ë¤Ê¤ë¤è¤¦¤Ë¸«¤¨¤ë¤Î¤Ç¤¹¤±¤ì¤É¡¢ (¥³¥á¥ó¥Èɽµ­¤Ï /* +¥Õ¥£¡¼¥ë¥É¥ª¥Õ¥»¥Ã¥È, ¥Õ¥£¡¼¥ë¥É¥µ¥¤¥º */¡¢/* =¹½Â¤ÂÎ¥µ¥¤¥º */ ¤Ç¤¹¡£) [¸í¤Ã¤¿ÇÛÃÖ] typedef struct _STRUCT1 { ¡¡¡¡char c1;¡¡¡¡/* + 0, 1 */ ¡¡¡¡short s2;¡¡¡¡/* + 1, 2 */ ¡¡¡¡short s3;¡¡¡¡/* + 3, 2 */ ¡¡¡¡int i4;¡¡¡¡/* + 5, 4 */ ¡¡¡¡char c5;¡¡¡¡/* + 9, 1 */ } STRUCT1;¡¡¡¡¡¡¡¡/* =10 */ ¼ÂºÝ¤Ë¤Ï¡¢³Æ¥Õ¥£¡¼¥ë¥É¤Î¥ª¥Õ¥»¥Ã¥È¤È¥µ¥¤¥º¡¢¤ª¤è¤Ó¹½Â¤ÂÎ¥µ¥¤¥º¤Ï¼¡¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£ [ËÜÅö¤ÎÇÛÃÖ] typedef struct _STRUCT1 { ¡¡¡¡char c1;¡¡¡¡/* + 0, 1 */ ¡¡¡¡(¥Ñ¥Ç¥£¥ó¥°)¡¡/* + 1, 1 */ ¡¡¡¡short s2;¡¡¡¡/* + 2, 2 */ ¡¡¡¡short s3;¡¡¡¡/* + 4, 2 */ ¡¡¡¡(¥Ñ¥Ç¥£¥ó¥°)¡¡/* + 6, 2 */ ¡¡¡¡int i4;¡¡¡¡/* + 8, 4 */ ¡¡¡¡char c5;¡¡¡¡/* +12, 1 */ ¡¡¡¡(¥Ñ¥Ç¥£¥ó¥°)¡¡/* +13, 3 */ } STRUCT1;¡¡¡¡¡¡¡¡/* =16 */ s2¥Õ¥£¡¼¥ë¥É(2¥Ð¥¤¥ÈÀ°¿ô)¤ËÃíÌܤ·¤Æ¤¯¤À¤µ¤¤¡£ [¸í¤Ã¤¿ÇÛÃÖ]¤Ç¤Ï¡¢s2¥Õ¥£¡¼¥ë¥É¤¬¥ª¥Õ¥»¥Ã¥È1(2¤ÎÇÜ¿ô¤Ç¤Ê¤¤)¤«¤é»Ï¤Þ¤Ã¤Æ¤¤¤Þ¤¹¡£ 2¤ÎÇÜ¿ô¤Ç¤Ê¤¤¥¢¥É¥ì¥¹¤ËÃÖ¤«¤ì¤¿2¥Ð¥¤¥ÈÀ°¿ô¤ÎÆɤ߽ñ¤­¤Ï¡¢CPU¤Î¼ïÎà¤Ë¤è¤Ã¤Æ¤Ï¤Ç¤­¤Ê¤«¤Ã¤¿¤ê¡¢¤Ç¤­¤Æ¤â¸úΨ¤¬°­¤«¤Ã¤¿¤ê¤·¤Þ¤¹¡£ ¤½¤³¤Ç¡¢2¥Ð¥¤¥ÈÀ°¿ô¤¬2¤ÎÇÜ¿ô¤Î¥¢¥É¥ì¥¹¤«¤é»Ï¤Þ¤ë¤è¤¦¡¢s2¥Õ¥£¡¼¥ë¥É¤ÎľÁ°¤Ë°ÅÌۤζõÇòÎΰ褬Äɲ䵤ì¤ë¤Î¤Ç¤¹¡£ °ÅÌۤζõÇòÎΰè¤Î¤³¤È¤ò¡¢¡È¥Ñ¥Ç¥£¥ó¥°¡É(µÍ¤áʪ)¤È¸Æ¤ó¤À¤ê¤·¤Þ¤¹¡£ i4¥Õ¥£¡¼¥ë¥É(4¥Ð¥¤¥ÈÀ°¿ô)¤Ë¤Ä¤¤¤Æ¤âƱÍͤǤ¹¡£ 4¤ÎÇÜ¿ô¤Ç¤Ê¤¤¥¢¥É¥ì¥¹¤ËÃÖ¤«¤ì¤¿4¥Ð¥¤¥ÈÀ°¿ô¤ÎÆɤ߽ñ¤­¤Ï¡¢CPU¤Î¼ïÎà¤Ë¤è¤Ã¤Æ¤Ï¤Ç¤­¤Ê¤«¤Ã¤¿¤ê¡¢¤Ç¤­¤Æ¤â¸úΨ¤¬°­¤«¤Ã¤¿¤ê¤·¤Þ¤¹¡£ ¤½¤³¤Ç¡¢4¥Ð¥¤¥ÈÀ°¿ô¤¬4¤ÎÇÜ¿ô¤Î¥¢¥É¥ì¥¹¤«¤é»Ï¤Þ¤ë¤è¤¦¡¢i4¥Õ¥£¡¼¥ë¥É¤ÎľÁ°¤Ë¥Ñ¥Ç¥£¥ó¥°¤¬Äɲ䵤ì¤Þ¤¹¡£ °ì¸«¡¢¹½Â¤ÂÎËöÈø¤Î¥Ñ¥Ç¥£¥ó¥°¤ÏÉÔÍפ˸«¤¨¤Þ¤¹¡£ ¤Ê¤¼¤³¤ì¤¬É¬Íפ«¤È¤¤¤¦¤È¡¢¹½Â¤ÂÎÇÛÎó¤òÄêµÁ¤·¤¿¤È¤­¤Î¤¿¤á¤Ç¤¹¡£ ¤â¤·¤â¹½Â¤ÂÎËöÈø¤Î¶õÇòÎΰ褬¤Ê¤«¤Ã¤¿¤È¤¹¤ë¤È¡¢¼¡¤Î¤è¤¦¤Ê¹½Â¤ÂÎÇÛÎó¤òÄêµÁ¤·¤¿¤È¤­¤Ë¡¢ STRUCT1 struct1[2]; ¥á¥â¥ê¾å¤ÎÇÛÃ֤ϼ¡¤Î¤è¤¦¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¤¤Þ¤¹¡£ [¸í¤Ã¤¿ÇÛÃÖ] // struct1[0] char c1;¡¡¡¡/* + 0, 1 */ (¥Ñ¥Ç¥£¥ó¥°)¡¡/* + 1, 1 */ short s2;¡¡¡¡/* + 2, 2 */ short s3;¡¡¡¡/* + 4, 2 */ (¥Ñ¥Ç¥£¥ó¥°)¡¡/* + 6, 2 */ int i4;¡¡¡¡/* + 8, 4 */ char c5;¡¡¡¡/* +12, 1 */ // struct1[1] char c1;¡¡¡¡/* +13, 1 */ (¥Ñ¥Ç¥£¥ó¥°)¡¡/* +14, 1 */ short s2;¡¡¡¡/* +15, 2 */ short s3;¡¡¡¡/* +17, 2 */ (¥Ñ¥Ç¥£¥ó¥°)¡¡/* +19, 2 */ int i4;¡¡¡¡/* +21, 4 */ char c5;¡¡¡¡/* +25, 1 */ struct1[0]¤ÏŬÀڤʥե£¡¼¥ë¥ÉÇÛÃ֤Ǥ¹¤¬¡¢struct1[1]¤Îs2¤äs3¡¢i4¤ÎÇÛÃÖ¤¬Å¬ÀڤǤ¢¤ê¤Þ¤»¤ó¡£ s2¤Ès3¤Ï2¥Ð¥¤¥ÈÀ°¿ô¤Ê¤Î¤Ë2¤ÎÇÜ¿ô¥¢¥É¥ì¥¹¤ËÇÛÃÖ¤µ¤ì¤º¡¢i4¤Ï4¥Ð¥¤¥ÈÀ°¿ô¤Ê¤Î¤Ë4¤ÎÇÜ¿ô¥¢¥É¥ì¥¹¤ËÇÛÃÖ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£ ¤³¤Î¤è¤¦¤ÊÌäÂê¤òÈò¤±¤ë¤¿¤á¡¢¹½Â¤ÂÎ¥µ¥¤¥º¤¬¡Ö¹½Â¤ÂΤÎÃæ¤Î¤¤¤Á¤Ð¤óÂ礭¤Ê¥Õ¥£¡¼¥ë¥É¤Î¥µ¥¤¥º¤ÎÇÜ¿ô¡×¤Ë¤Ê¤ë¤è¤¦¡¢¹½Â¤ÂΤÎËöÈø¤Ë¤â¥Ñ¥Ç¥£¥ó¥°¤¬Äɲ䵤ì¤Þ¤¹¡£ [Àµ¤·¤¤ÇÛÃÖ] // struct1[0] char c1;¡¡¡¡/* + 0, 1 */ (¥Ñ¥Ç¥£¥ó¥°)¡¡/* + 1, 1 */ short s2;¡¡¡¡/* + 2, 2 */ short s3;¡¡¡¡/* + 4, 2 */ (¥Ñ¥Ç¥£¥ó¥°)¡¡/* + 6, 2 */ int i4;¡¡¡¡/* + 8, 4 */ char c5;¡¡¡¡/* +12, 1 */ (¥Ñ¥Ç¥£¥ó¥°)¡¡/* +13, 3 */ // struct1[1] char c1;¡¡¡¡/* +16, 1 */ (¥Ñ¥Ç¥£¥ó¥°)¡¡/* +17, 1 */ short s2;¡¡¡¡/* +18, 2 */ short s3;¡¡¡¡/* +20, 2 */ (¥Ñ¥Ç¥£¥ó¥°)¡¡/* +22, 2 */ int i4;¡¡¡¡/* +24, 4 */ char c5;¡¡¡¡/* +28, 1 */ (¥Ñ¥Ç¥£¥ó¥°)¡¡/* +29, 3 */ °Ê¾å¤Î¤è¤¦¤Ë¡¢¥³¥ó¥Ñ¥¤¥é¤¬¼«Æ°Åª¤Ë¥Ñ¥Ç¥£¥ó¥°¤òÄɲ䷤ơ¢³Æ¥Õ¥£¡¼¥ë¥É¤ÎÇÛÃÖ¤òŬÀÚ¤ËÊݤĤ³¤È¤ò¡¢¡È¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¡É¤È¸Æ¤ó¤À¤ê¤·¤Þ¤¹¡£ ¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£ ¢£°ìÈÌŪ¤ÊÏáÁ¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¤òÍÞÀ©¤¹¤ë¢£ ¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£ Ä̾ï¤Ï¡¢¥³¥ó¥Ñ¥¤¥é¤¬¼«Æ°Åª¤Ë¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¤ò¹Ô¤Ã¤Æ¤¯¤ì¤ë¤Î¤Ç¡¢¥×¥í¥°¥é¥Þ¤ÏÆä˵¤¤Ë¤¹¤ëɬÍפϤ¢¤ê¤Þ¤»¤ó¡£ ¤¬¡¢µ©¤Ë¡¢¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¤¬¹Ô¤ï¤ì¤Æ¤Ïº¤¤ë¾ì¹ç¤¬¤¢¤ê¤Þ¤¹¡£ ¥Í¥Ã¥È¥ï¡¼¥¯¤ä¥Ç¥Ð¥¤¥¹¤È¤ÎÄÌ¿®¤Ê¤É¡¢¤¢¤é¤«¤¸¤á»ÅÍͤǷè¤á¤é¤ì¤¿¥Õ¥£¡¼¥ë¥ÉÇÛÃ֤ι½Â¤ÂΤòÁ÷¼õ¿®¤¹¤ë¾ì¹ç¤Ç¤¹¡£ ¥Í¥Ã¥È¥ï¡¼¥¯¤ä¥Ç¥Ð¥¤¥¹¤È¤ÎÄÌ¿®¤Ç¤Ï¡¢ÄÌ¿®¥Ç¡¼¥¿Î̤ò¾¯¤Ê¤¯¤¹¤ë¤¿¤á¤Ë¡¢2¥Ð¥¤¥ÈÀ°¿ô¤ä4¥Ð¥¤¥ÈÀ°¿ô¤â¥Ñ¥Ç¥£¥ó¥°Ìµ¤·¤Ç¤Ó¤Ã¤Á¤êµÍ¤á¹þ¤Þ¤ì¤Æ¤¤¤ë¾ì¹ç¤¬Â¿¤¤¤Ç¤¹¡£ ¥á¥â¥ê¾å¤Ë¹½Â¤ÂΤòºî¤Ã¤Æ¤ª¤¤¤Æ¡¢¤½¤Î¥á¥â¥ê¥¤¥á¡¼¥¸¤òľÀÜÁ÷¿®¤¹¤ë¾ì¹ç¤ä¡¢¥á¥â¥ê¾å¤Î¹½Â¤ÂÎÊÑ¿ô¤ËľÀܼõ¿®¤¹¤ë¾ì¹ç¡¢ ¹½Â¤ÂΤΥե£¡¼¥ë¥ÉÇÛÃ֤Ϥ¢¤é¤«¤¸¤á·è¤á¤é¤ì¤¿»ÅÍͤˤ­¤Ã¤Á¤ê¹ç¤Ã¤Æ¤¤¤Ê¤±¤ì¤Ð¤¤¤±¤Þ¤»¤ó¡£ ¤¿¤È¤¨¤Ð¡¢MMC(Multi Media Card)¤È¤ÎÄÌ¿®¤Ç¤Ï¡¢¼¡¤Î¤è¤¦¤Ê¹½Â¤ÂΤλÅÍͤ¬Äê¤á¤é¤ì¤Æ¤¤¤Þ¤¹¡£ (¤Þ¤É¤«¤ÎÀ¤³¦¤µ¤ó¤Î¡¢MMCÂбþ¥«¡¼¥Í¥ë¤Î¥½¡¼¥¹¤«¤é°úÍѤµ¤»¤Æ¤¤¤¿¤À¤­¤Þ¤·¤¿) [Àµ¤·¤¤ÇÛÃÖ] //CID(Card IDentification number)¡¡¥«¡¼¥ÉID¥ì¥¸¥¹¥¿¾ðÊó¹½Â¤ÂÎ typedef struct tag_MMC_CID_INFO { ¡¡¡¡unsigned char ucMID;¡¡¡¡¡¡// + 0, 1: ManufactureID(8bit) ¡¡¡¡unsigned short usOID;¡¡¡¡¡¡// + 1, 2: OEM/Application ID(16bit) ¡¡¡¡unsigned char ucPNM[6]; ¡¡// + 3, 6: Product name(48bit) ¡¡¡¡unsigned char ucPRV;¡¡¡¡¡¡// + 9, 1: Product revision(8bit) ¡¡¡¡unsigned long ulPSN;¡¡¡¡¡¡// +10, 4: Product serial number(32bit) ¡¡¡¡unsigned char ucMDT;¡¡¡¡¡¡// +14, 1: Manufacturing date(8bit) ¡¡¡¡unsigned char ucCRC;¡¡¡¡¡¡// +15, 1: 7-bit CRC checksum(7bit) } MMC_CID_INFO; ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡// =16 ¤È¤³¤í¤¬¡¢¥³¥ó¥Ñ¥¤¥é¤Ë¤è¤Ã¤Æ¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¤¬¹Ô¤ï¤ì¤ë¤È¡¢¼ÂºÝ¤ÎÇÛÃ֤ϼ¡¤Î¤è¤¦¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¤¤Þ¤¹¡£ [¸í¤Ã¤¿ÇÛÃÖ] //CID(Card IDentification number)¡¡¥«¡¼¥ÉID¥ì¥¸¥¹¥¿¾ðÊó¹½Â¤ÂÎ typedef struct tag_MMC_CID_INFO { ¡¡¡¡unsigned char ucMID;¡¡¡¡¡¡// + 0, 1: ManufactureID(8bit) ¡¡¡¡(¥Ñ¥Ç¥£¥ó¥°) // + 1, 1: ¡¡¡¡unsigned short usOID;¡¡¡¡¡¡// + 2, 2: OEM/Application ID(16bit) ¡¡¡¡unsigned char ucPNM[6]; ¡¡// + 4, 6: Product name(48bit) ¡¡¡¡unsigned char ucPRV;¡¡¡¡¡¡// +10, 1: Product revision(8bit) ¡¡¡¡(¥Ñ¥Ç¥£¥ó¥°) // +11, 1: ¡¡¡¡unsigned long ulPSN;¡¡¡¡¡¡// +12, 4: Product serial number(32bit) ¡¡¡¡unsigned char ucMDT;¡¡¡¡¡¡// +16, 1: Manufacturing date(8bit) ¡¡¡¡unsigned char ucCRC;¡¡¡¡¡¡// +17, 1: 7-bit CRC checksum(7bit) ¡¡¡¡(¥Ñ¥Ç¥£¥ó¥°) // +18, 2: } MMC_CID_INFO; ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡// =20 ¤³¤ì¤Ç¤Ï¥À¥á¤Ç¤¹¡£ ¤½¤³¤Ç¡¢¥³¥ó¥Ñ¥¤¥é¤Ë¤è¤ë¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¤òÍÞÀ©¤·¡¢¥Ñ¥Ç¥£¥ó¥°¤ò¤Ê¤¯¤¹ÊýË¡¤¬ÍÑ°Õ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ ¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¤òÍÞÀ©¤¹¤ëÊýË¡¤Ï¡¢¥³¥ó¥Ñ¥¤¥éËè¤Ë°ã¤Ã¤Æ¤¤¤Þ¤¹¡£ ¤¿¤È¤¨¤Ð¡¢Visual C++¤Î¾ì¹ç¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¤·¤Þ¤¹¡£ #pragma pack(1) //CID(Card IDentification number)¡¡¥«¡¼¥ÉID¥ì¥¸¥¹¥¿¾ðÊó¹½Â¤ÂÎ typedef struct tag_MMC_CID_INFO { ¡¡¡¡unsigned char ucMID;¡¡¡¡¡¡// + 0, 1: ManufactureID(8bit) ¡¡¡¡unsigned short usOID;¡¡¡¡¡¡// + 1, 2: OEM/Application ID(16bit) ¡¡¡¡unsigned char ucPNM[6]; ¡¡// + 3, 6: Product name(48bit) ¡¡¡¡unsigned char ucPRV;¡¡¡¡¡¡// + 9, 1: Product revision(8bit) ¡¡¡¡unsigned long ulPSN;¡¡¡¡¡¡// +10, 4: Product serial number(32bit) ¡¡¡¡unsigned char ucMDT;¡¡¡¡¡¡// +14, 1: Manufacturing date(8bit) ¡¡¡¡unsigned char ucCRC;¡¡¡¡¡¡// +15, 1: 7-bit CRC checksum(7bit) } MMC_CID_INFO; ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡// =16 #pragma pack() GCC¤Î¾ì¹ç¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¤·¤Þ¤¹¡£ //CID(Card IDentification number)¡¡¥«¡¼¥ÉID¥ì¥¸¥¹¥¿¾ðÊó¹½Â¤ÂÎ typedef struct tag_MMC_CID_INFO { ¡¡¡¡unsigned char ucMID;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// + 0, 1: ManufactureID(8bit) ¡¡¡¡unsigned short usOID;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// + 1, 2: OEM/Application ID(16bit) ¡¡¡¡unsigned char ucPNM[6]; ¡¡¡¡¡¡¡¡¡¡// + 3, 6: Product name(48bit) ¡¡¡¡unsigned char ucPRV;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// + 9, 1: Product revision(8bit) ¡¡¡¡unsigned long ulPSN;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +10, 4: Product serial number(32bit) ¡¡¡¡unsigned char ucMDT;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +14, 1: Manufacturing date(8bit) ¡¡¡¡unsigned char ucCRC;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +15, 1: 7-bit CRC checksum(7bit) } __attribute__((packed)) MMC_CID_INFO; // =16 ¢¨¸·Ì©¤Ë¸À¤¦¤È¡¢MMC¤È¤ÎÄÌ¿®¥Ç¡¼¥¿¤Ï¥Ð¥¤¥È½ç¤¬¥â¥È¥í¡¼¥éʤӤǡ¢Pentium¤äS1C33(P/ECE¤ÎCPU)¤Î¥¤¥ó¥Æ¥ëʤӤȤϵդǤ¹¡£ ¡¡¤À¤«¤é¡¢¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¤À¤±Ìµ¤¯¤·¤Æ¤â¡¢¥á¥â¥ê¥¤¥á¡¼¥¸¤½¤Î¤Þ¤Þ¤ÇÁ÷¼õ¿®¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó¡£ ¡¡¤¬¡¢ÀâÌÀ¤ò´Êñ¤Ë¤¹¤ë¤¿¤á¤Ë¡¢¤³¤³¤Ç¤Ï¥Ð¥¤¥È½ç¤Î°ã¤¤¤Ï¹Í¤¨¤Ê¤¤¤³¤È¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡£ ¤½¤ì¤Ç¤Ï¡¢ËÜÅö¤Ë¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¤¬ÍÞÀ©¤µ¤ì¤Æ¤¤¤ë¤«¡¢³Îǧ¤·¤Æ¤ß¤Þ¤·¤ç¤¦¡£ ¥Æ¥¹¥È¤Î¤¿¤á¤Ë¡¢¥á¥â¥ê¾å¤Ë½é´ü²½ºÑ¤ß¤Î¹½Â¤ÂΤòÍÑ°Õ¤·¡¢¤½¤ÎÆâÍƤò1¥Ð¥¤¥È¤Å¤Äɽ¼¨¤·¤Æ¤ß¤ë¤³¤È¤Ë¤·¤Þ¤¹¡£ ¤Þ¤º¤Ï¡¢¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¤ò¡úÍÞÀ©¤·¤Ê¤¤¡ú¾ì¹ç¤Î¥á¥â¥êÆâÍƤò³Î¤«¤á¤Æ¤ß¤Þ¤¹¡£ [Windows PC & Visual C++ 6.0¡¢¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¤¢¤ê] #include //CID(Card IDentification number)¡¡¥«¡¼¥ÉID¥ì¥¸¥¹¥¿¾ðÊó¹½Â¤ÂÎ typedef struct tag_MMC_CID_INFO { ¡¡¡¡unsigned char¡¡ ucMID;¡¡¡¡¡¡// + 0, 1: ManufactureID(8bit) ¡¡¡¡unsigned short¡¡usOID;¡¡¡¡¡¡// + 2, 2: OEM/Application ID(16bit) ¡¡¡¡unsigned char¡¡ ucPNM[6];¡¡ // + 4, 6: Product name(48bit) ¡¡¡¡unsigned char¡¡ ucPRV;¡¡¡¡¡¡// +10, 1: Product revision(8bit) ¡¡¡¡unsigned long¡¡ ulPSN;¡¡¡¡¡¡// +12, 4: Product serial number(32bit) ¡¡¡¡unsigned char¡¡ ucMDT;¡¡¡¡¡¡// +16, 1: Manufacturing date(8bit) ¡¡¡¡unsigned char¡¡ ucCRC;¡¡¡¡¡¡// +17, 1: 7-bit CRC checksum(7bit) } MMC_CID_INFO;¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // =20 MMC_CID_INFO cid = { ¡¡¡¡0xff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned char¡¡ ucMID;¡¡¡¡// + 0, 1: ManufactureID(8bit) ¡¡¡¡0xffff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned short¡¡usOID;¡¡¡¡// + 2, 2: OEM/Application ID(16bit) ¡¡¡¡{ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }, // unsigned char¡¡ ucPNM[6]; // + 4, 6: Product name(48bit) ¡¡¡¡0xff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned char¡¡ ucPRV;¡¡¡¡// +10, 1: Product revision(8bit) ¡¡¡¡0xffffffff, ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡// unsigned long¡¡ ulPSN;¡¡¡¡// +12, 4: Product serial number(32bit) ¡¡¡¡0xff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned char¡¡ ucMDT;¡¡¡¡// +16, 1: Manufacturing date(8bit) ¡¡¡¡0xff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned char¡¡ ucCRC;¡¡¡¡// +17, 1: 7-bit CRC checksum(7bit) }; int main() { ¡¡¡¡int i; ¡¡¡¡unsigned char* p; ¡¡¡¡p = (unsigned char*)&cid; ¡¡¡¡printf("size = %d\n", sizeof(MMC_CID_INFO)); ¡¡¡¡for(i = 0; i < sizeof(MMC_CID_INFO); i++) { ¡¡¡¡¡¡¡¡printf("%02x ", p[i]); ¡¡¡¡} ¡¡¡¡return 0; } ------------------------------------------------------------------------------------------- ¢£¢£ ·ë²Ì ¢£¢£ size = 20 ff 00 ff ff ff ff ff ff ff ff ff 00 ff ff ff ff ff ff 00 00 ------------------------------------------------------------------------------------------- ¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¤¢¤ê¤Ê¤Î¤Ç¡¢¥Ñ¥Ç¥£¥ó¥°¤¬Äɲ䵤ì¤Æ¤¤¤Þ¤¹¡£(00¤ÎÉôʬ) ¹½Â¤ÂÎ¥µ¥¤¥º¤â¥Ñ¥Ç¥£¥ó¥°¤ÎʬÁý¤¨¤Æ¡¢MMC»ÅÍͤè¤ê¤â4¥Ð¥¤¥È¿¤¤20¥Ð¥¤¥È¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£ ¼¡¤Ë¡¢¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¤ò¡úÍÞÀ©¤·¤¿¡ú¾ì¹ç¤Î¥á¥â¥êÆâÍƤò³Î¤«¤á¤Æ¤ß¤Þ¤¹¡£ [Windows PC & Visual C++ 6.0¡¢¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È̵¤·] #include #pragma pack(1) //CID(Card IDentification number)¡¡¥«¡¼¥ÉID¥ì¥¸¥¹¥¿¾ðÊó¹½Â¤ÂÎ typedef struct tag_MMC_CID_INFO { ¡¡¡¡unsigned char¡¡ ucMID;¡¡¡¡¡¡// + 0, 1: ManufactureID(8bit) ¡¡¡¡unsigned short¡¡usOID;¡¡¡¡¡¡// + 1, 2: OEM/Application ID(16bit) ¡¡¡¡unsigned char¡¡ ucPNM[6];¡¡ // + 3, 6: Product name(48bit) ¡¡¡¡unsigned char¡¡ ucPRV;¡¡¡¡¡¡// + 9, 1: Product revision(8bit) ¡¡¡¡unsigned long¡¡ ulPSN;¡¡¡¡¡¡// +10, 4: Product serial number(32bit) ¡¡¡¡unsigned char¡¡ ucMDT;¡¡¡¡¡¡// +14, 1: Manufacturing date(8bit) ¡¡¡¡unsigned char¡¡ ucCRC;¡¡¡¡¡¡// +15, 1: 7-bit CRC checksum(7bit) } MMC_CID_INFO;¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // =16 #pragma pack() MMC_CID_INFO cid = { ¡¡¡¡0xff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned char¡¡ ucMID;¡¡¡¡// + 0, 1: ManufactureID(8bit) ¡¡¡¡0xffff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned short¡¡usOID;¡¡¡¡// + 1, 2: OEM/Application ID(16bit) ¡¡¡¡{ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }, // unsigned char¡¡ ucPNM[6]; // + 3, 6: Product name(48bit) ¡¡¡¡0xff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned char¡¡ ucPRV;¡¡¡¡// + 9, 1: Product revision(8bit) ¡¡¡¡0xffffffff, ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡// unsigned long¡¡ ulPSN;¡¡¡¡// +10, 4: Product serial number(32bit) ¡¡¡¡0xff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned char¡¡ ucMDT;¡¡¡¡// +14, 1: Manufacturing date(8bit) ¡¡¡¡0xff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned char¡¡ ucCRC;¡¡¡¡// +15, 1: 7-bit CRC checksum(7bit) }; int main() { ¡¡¡¡int i; ¡¡¡¡unsigned char* p; ¡¡¡¡p = (unsigned char*)&cid; ¡¡¡¡printf("size = %d\n", sizeof(MMC_CID_INFO)); ¡¡¡¡for(i = 0; i < sizeof(MMC_CID_INFO); i++) { ¡¡¡¡¡¡¡¡printf("%02x ", p[i]); ¡¡¡¡} ¡¡¡¡return 0; } ------------------------------------------------------------------------------------------- ¢£¢£ ·ë²Ì ¢£¢£ size = 16 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ------------------------------------------------------------------------------------------- ¥Ñ¥Ç¥£¥ó¥°¤¬¾Ã¤¨¤Æ¡¢¹½Â¤ÂÎ¥µ¥¤¥º¤âMMC»ÅÍͤɤª¤ê¤Î16¥Ð¥¤¥È¤Ë¤Ê¤ê¤Þ¤·¤¿¡£ GCC¤Î¾ì¹ç¤âƱÍͤǤ¹¡£ ¤Þ¤º¤Ï¡¢¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¤ò¡úÍÞÀ©¤·¤Ê¤¤¡ú¾ì¹ç¡£ [Linux PC & GCC 3.3.3¡¢¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¤¢¤ê] #include //CID(Card IDentification number)¡¡¥«¡¼¥ÉID¥ì¥¸¥¹¥¿¾ðÊó¹½Â¤ÂÎ typedef struct tag_MMC_CID_INFO { ¡¡¡¡unsigned char¡¡ ucMID;¡¡¡¡¡¡// + 0, 1: ManufactureID(8bit) ¡¡¡¡unsigned short¡¡usOID;¡¡¡¡¡¡// + 2, 2: OEM/Application ID(16bit) ¡¡¡¡unsigned char¡¡ ucPNM[6];¡¡ // + 4, 6: Product name(48bit) ¡¡¡¡unsigned char¡¡ ucPRV;¡¡¡¡¡¡// +10, 1: Product revision(8bit) ¡¡¡¡unsigned long¡¡ ulPSN;¡¡¡¡¡¡// +12, 4: Product serial number(32bit) ¡¡¡¡unsigned char¡¡ ucMDT;¡¡¡¡¡¡// +16, 1: Manufacturing date(8bit) ¡¡¡¡unsigned char¡¡ ucCRC;¡¡¡¡¡¡// +17, 1: 7-bit CRC checksum(7bit) } MMC_CID_INFO;¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // =20 MMC_CID_INFO cid = { ¡¡¡¡0xff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned char¡¡ ucMID;¡¡¡¡// + 0, 1: ManufactureID(8bit) ¡¡¡¡0xffff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned short¡¡usOID;¡¡¡¡// + 2, 2: OEM/Application ID(16bit) ¡¡¡¡{ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }, // unsigned char¡¡ ucPNM[6]; // + 4, 6: Product name(48bit) ¡¡¡¡0xff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned char¡¡ ucPRV;¡¡¡¡// +10, 1: Product revision(8bit) ¡¡¡¡0xffffffff, ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡// unsigned long¡¡ ulPSN;¡¡¡¡// +12, 4: Product serial number(32bit) ¡¡¡¡0xff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned char¡¡ ucMDT;¡¡¡¡// +16, 1: Manufacturing date(8bit) ¡¡¡¡0xff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned char¡¡ ucCRC;¡¡¡¡// +17, 1: 7-bit CRC checksum(7bit) }; int main() { ¡¡¡¡int i; ¡¡¡¡unsigned char* p; ¡¡¡¡p = (unsigned char*)&cid; ¡¡¡¡printf("size = %d\n", sizeof(MMC_CID_INFO)); ¡¡¡¡for(i = 0; i < sizeof(MMC_CID_INFO); i++) { ¡¡¡¡¡¡¡¡printf("%02x ", p[i]); ¡¡¡¡} ¡¡¡¡return 0; } ------------------------------------------------------------------------------------------- ¢£¢£ ·ë²Ì ¢£¢£ size = 20 ff 00 ff ff ff ff ff ff ff ff ff 00 ff ff ff ff ff ff 00 00 ------------------------------------------------------------------------------------------- ¼¡¤Ë¡¢¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¤ò¡úÍÞÀ©¤·¤¿¡ú¾ì¹ç¡£ [Linux PC & GCC 3.3.3¡¢¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È̵¤·] #include //CID(Card IDentification number)¡¡¥«¡¼¥ÉID¥ì¥¸¥¹¥¿¾ðÊó¹½Â¤ÂÎ typedef struct tag_MMC_CID_INFO { ¡¡¡¡unsigned char¡¡ ucMID;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// + 0, 1: ManufactureID(8bit) ¡¡¡¡unsigned short¡¡usOID;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// + 1, 2: OEM/Application ID(16bit) ¡¡¡¡unsigned char¡¡ ucPNM[6];¡¡¡¡¡¡¡¡¡¡ // + 3, 6: Product name(48bit) ¡¡¡¡unsigned char¡¡ ucPRV;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// + 9, 1: Product revision(8bit) ¡¡¡¡unsigned long¡¡ ulPSN;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +10, 4: Product serial number(32bit) ¡¡¡¡unsigned char¡¡ ucMDT;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +14, 1: Manufacturing date(8bit) ¡¡¡¡unsigned char¡¡ ucCRC;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +15, 1: 7-bit CRC checksum(7bit) } __attribute__((packed)) MMC_CID_INFO; // =16 MMC_CID_INFO cid = { ¡¡¡¡0xff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned char¡¡ ucMID;¡¡¡¡// + 0, 1: ManufactureID(8bit) ¡¡¡¡0xffff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned short¡¡usOID;¡¡¡¡// + 1, 2: OEM/Application ID(16bit) ¡¡¡¡{ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }, // unsigned char¡¡ ucPNM[6]; // + 3, 6: Product name(48bit) ¡¡¡¡0xff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned char¡¡ ucPRV;¡¡¡¡// + 9, 1: Product revision(8bit) ¡¡¡¡0xffffffff, ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡// unsigned long¡¡ ulPSN;¡¡¡¡// +10, 4: Product serial number(32bit) ¡¡¡¡0xff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned char¡¡ ucMDT;¡¡¡¡// +14, 1: Manufacturing date(8bit) ¡¡¡¡0xff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned char¡¡ ucCRC;¡¡¡¡// +15, 1: 7-bit CRC checksum(7bit) }; int main() { ¡¡¡¡int i; ¡¡¡¡unsigned char* p; ¡¡¡¡p = (unsigned char*)&cid; ¡¡¡¡printf("size = %d\n", sizeof(MMC_CID_INFO)); ¡¡¡¡for(i = 0; i < sizeof(MMC_CID_INFO); i++) { ¡¡¡¡¡¡¡¡printf("%02x ", p[i]); ¡¡¡¡} ¡¡¡¡return 0; } ------------------------------------------------------------------------------------------- ¢£¢£ ·ë²Ì ¢£¢£ size = 16 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ------------------------------------------------------------------------------------------- ´üÂÔÄ̤ê¤Ç¤¹¡£ ¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¤òÍÞÀ©¤¹¤ë¤³¤È¤ò¡¢¡È¹½Â¤ÂΥѥ寡ɤȸƤó¤À¤ê¤·¤Þ¤¹¡£ ¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£ ¢££Ð¡¿£Å£Ã£Å¤Î¾ì¹ç¡ÁÌäÂêȯÀ¸!!¢£ ¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£ ¾å½Ò¤ÎGCC¤ÎÎã¤Ï¡¢PC¾å¤ÇLinux(FedoraCore2)¤ò»È¤Ã¤Æ¹Ô¤¤¤Þ¤·¤¿¡£ ¤µ¤Æ¡¢P/ECE³«È¯´Ä¶­¤ÎC¥³¥ó¥Ñ¥¤¥é¤âGCC¤Ç¤¹¡£ ¤Á¤ç¤Ã¤È¥Ð¡¼¥¸¥ç¥ó¤¬¸Å¤¤¤±¤É¡¢PC¾å¤ÇLinux¤ò»È¤Ã¤¿¾ì¹ç¤ÈƱ¤¸·ë²Ì¤¬´üÂÔ¤µ¤ì¤Þ¤¹¡£ ¤Þ¤º¤Ï¡¢¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¤ò¡úÍÞÀ©¤·¤Ê¤¤¡ú¾ì¹ç¡£ [P/ECE & pcc33.exe¡¢¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¤¢¤ê] #include unsigned char vbuff[128 * 88]; //CID(Card IDentification number)¡¡¥«¡¼¥ÉID¥ì¥¸¥¹¥¿¾ðÊó¹½Â¤ÂÎ typedef struct tag_MMC_CID_INFO { ¡¡¡¡unsigned char¡¡ ucMID;¡¡¡¡¡¡// + 0, 1: ManufactureID(8bit) ¡¡¡¡unsigned short¡¡usOID;¡¡¡¡¡¡// + 2, 2: OEM/Application ID(16bit) ¡¡¡¡unsigned char¡¡ ucPNM[6];¡¡ // + 4, 6: Product name(48bit) ¡¡¡¡unsigned char¡¡ ucPRV;¡¡¡¡¡¡// +10, 1: Product revision(8bit) ¡¡¡¡unsigned long¡¡ ulPSN;¡¡¡¡¡¡// +12, 4: Product serial number(32bit) ¡¡¡¡unsigned char¡¡ ucMDT;¡¡¡¡¡¡// +16, 1: Manufacturing date(8bit) ¡¡¡¡unsigned char¡¡ ucCRC;¡¡¡¡¡¡// +17, 1: 7-bit CRC checksum(7bit) } MMC_CID_INFO;¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // =20 MMC_CID_INFO cid = { ¡¡¡¡0xff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned char¡¡ ucMID;¡¡¡¡// + 0, 1: ManufactureID(8bit) ¡¡¡¡0xffff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned short¡¡usOID;¡¡¡¡// + 2, 2: OEM/Application ID(16bit) ¡¡¡¡{ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }, // unsigned char¡¡ ucPNM[6]; // + 4, 6: Product name(48bit) ¡¡¡¡0xff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned char¡¡ ucPRV;¡¡¡¡// +10, 1: Product revision(8bit) ¡¡¡¡0xffffffff, ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡// unsigned long¡¡ ulPSN;¡¡¡¡// +12, 4: Product serial number(32bit) ¡¡¡¡0xff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned char¡¡ ucMDT;¡¡¡¡// +16, 1: Manufacturing date(8bit) ¡¡¡¡0xff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned char¡¡ ucCRC;¡¡¡¡// +17, 1: 7-bit CRC checksum(7bit) }; void pceAppInit() { ¡¡¡¡pceLCDSetBuffer(vbuff); ¡¡¡¡pceLCDDispStart(); } void pceAppProc(int count) { ¡¡¡¡int i; ¡¡¡¡unsigned char* p; ¡¡¡¡memset(vbuff, 0, sizeof vbuff); ¡¡¡¡pceFontSetType(2); ¡¡¡¡pceFontSetPos(0, 0); ¡¡¡¡p = (unsigned char*)&cid; ¡¡¡¡pceFontPrintf("size = %d\n", sizeof(MMC_CID_INFO)); ¡¡¡¡for(i = 0; i < sizeof(MMC_CID_INFO); i++) { ¡¡¡¡¡¡¡¡pceFontPrintf("%02x ", p[i]); ¡¡¡¡} ¡¡¡¡pceLCDTrans(); } void pceAppExit() { } ------------------------------------------------------------------------------------------- ¢£¢£ ·ë²Ì ¢£¢£ size = 20 ff 00 ff ff ff ff ff ff ff ff ff 00 ff ff ff ff ff ff 00 00 ------------------------------------------------------------------------------------------- ¤¢¤È¤Ï¡¢¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¤ò¡úÍÞÀ©¤·¤¿¡ú¾ì¹ç¤¬´üÂÔÄ̤ê¤Î·ë²Ì¤Ê¤é¤Ð¡¢Á´¤Æ£Ï£Ë¤Ê¤Î¤Ç¤¹¤¬¡¦¡¦¡¦ [P/ECE & pcc33.exe¡¢¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È̵¤·] #include unsigned char vbuff[128 * 88]; //CID(Card IDentification number)¡¡¥«¡¼¥ÉID¥ì¥¸¥¹¥¿¾ðÊó¹½Â¤ÂÎ typedef struct tag_MMC_CID_INFO { ¡¡¡¡unsigned char¡¡ ucMID;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// + 0, 1: ManufactureID(8bit) ¡¡¡¡unsigned short¡¡usOID;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// + 1, 2: OEM/Application ID(16bit) ¡¡¡¡unsigned char¡¡ ucPNM[6];¡¡¡¡¡¡¡¡¡¡ // + 3, 6: Product name(48bit) ¡¡¡¡unsigned char¡¡ ucPRV;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// + 9, 1: Product revision(8bit) ¡¡¡¡unsigned long¡¡ ulPSN;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +10, 4: Product serial number(32bit) ¡¡¡¡unsigned char¡¡ ucMDT;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +14, 1: Manufacturing date(8bit) ¡¡¡¡unsigned char¡¡ ucCRC;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +15, 1: 7-bit CRC checksum(7bit) } __attribute__((packed)) MMC_CID_INFO; // =16 MMC_CID_INFO cid = { ¡¡¡¡0xff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned char¡¡ ucMID;¡¡¡¡// + 0, 1: ManufactureID(8bit) ¡¡¡¡0xffff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned short¡¡usOID;¡¡¡¡// + 1, 2: OEM/Application ID(16bit) ¡¡¡¡{ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }, // unsigned char¡¡ ucPNM[6]; // + 3, 6: Product name(48bit) ¡¡¡¡0xff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned char¡¡ ucPRV;¡¡¡¡// + 9, 1: Product revision(8bit) ¡¡¡¡0xffffffff, ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡// unsigned long¡¡ ulPSN;¡¡¡¡// +10, 4: Product serial number(32bit) ¡¡¡¡0xff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned char¡¡ ucMDT;¡¡¡¡// +14, 1: Manufacturing date(8bit) ¡¡¡¡0xff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned char¡¡ ucCRC;¡¡¡¡// +15, 1: 7-bit CRC checksum(7bit) }; void pceAppInit() { ¡¡¡¡pceLCDSetBuffer(vbuff); ¡¡¡¡pceLCDDispStart(); } void pceAppProc(int count) { ¡¡¡¡int i; ¡¡¡¡unsigned char* p; ¡¡¡¡memset(vbuff, 0, sizeof vbuff); ¡¡¡¡pceFontSetType(2); ¡¡¡¡pceFontSetPos(0, 0); ¡¡¡¡p = (unsigned char*)&cid; ¡¡¡¡pceFontPrintf("size = %d\n", sizeof(MMC_CID_INFO)); ¡¡¡¡for(i = 0; i < sizeof(MMC_CID_INFO); i++) { ¡¡¡¡¡¡¡¡pceFontPrintf("%02x ", p[i]); ¡¡¡¡} ¡¡¡¡pceLCDTrans(); } void pceAppExit() { } ------------------------------------------------------------------------------------------- ¢£¢£ ·ë²Ì ¢£¢£ size = 16 ff 00 ff ff ff ff ff ff ff ff ff 00 ff ff ff ff ------------------------------------------------------------------------------------------- ÌäÂêȯÀ¸¤Ç¤¹!! ¹½Â¤ÂÎ¥µ¥¤¥º¤Ï³Î¤«¤Ë»ÅÍͤɤª¤ê¤Î16¥Ð¥¤¥È¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤Î¤Ç¤¹¤¬¡¢¤Ê¤¼¤«¥Ñ¥Ç¥£¥ó¥°¤¬»Ä¤Ã¤Æ¤¤¤Þ¤¹¡£ ¤ï¤«¤ê¤ä¤¹¤¤¤è¤¦¤Ë¡¢·ë²Ì½ÐÎϤòʤÓÂؤ¨¤Æ¤ß¤Þ¤¹¡£ ------------------------------------------------------------------------------------------- ¢£¢£ ·ë²Ì ¢£¢£ size = 16 ff¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡// + 0, 1: ManufactureID(8bit) 00¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡// + 1, 1: ¤Ê¤¼¤«¥Ñ¥Ç¥£¥ó¥°¤¬»Ä¤Ã¤Æ¤¤¤ë¡© ff ff¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // + 2, 2: OEM/Application ID(16bit) ff ff ff ff ff ff¡¡ // + 4, 6: Product name(48bit) ff¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +10, 1: Product revision(8bit) 00¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +11, 1: ¤Ê¤¼¤«¥Ñ¥Ç¥£¥ó¥°¤¬»Ä¤Ã¤Æ¤¤¤ë¡© ff ff ff ff¡¡¡¡¡¡¡¡ // +12, 4: Product serial number(32bit) ??¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +??, 1: Manufacturing date(8bit) ¤Ï¤É¤³¤Ø¹Ô¤Ã¤¿¡© ??¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +??, 1: 7-bit CRC checksum(7bit) ¤Ï¤É¤³¤Ø¹Ô¤Ã¤¿¡© ------------------------------------------------------------------------------------------- ¤¤¤Ã¤¿¤¤¤É¤¦¤Ê¤Ã¤Æ¤¤¤ë¤Î¤Ç¤·¤ç¤¦¡© ¤³¤ÎÌäÂê¡¢P/ECE³«È¯´Ä¶­¤ÎC¥³¥ó¥Ñ¥¤¥é(gcc33.exe)¤È¥¢¥»¥ó¥Ö¥é(as33.exe)¤Î¶¨Ä´¤¬¾å¼ê¤¯¤¤¤Ã¤Æ¤¤¤Ê¤¤¤³¤È¤¬¸¶°ø¤Ê¤Î¤Ç¤¹¡£ ¾Ü¤·¤¯¤Ï¡¢¼¡²ó¤Ë¡£ (³¤­¤Þ¤¹¡Ä) * Sat May 16 00:00:00 JST 2004 Naoyuki Sawa - Zlib¤ò¼ÂÁõ¤·¤Æ¤ß¤ë#2 Á°²ó¤Ï¡¢¾Ê¥á¥â¥ê¤ÊZlibŸ³«¥ë¡¼¥Á¥ó¤ò¼ÂÁõ¤·¤Æ¤ß¤Þ¤·¤¿¡£ ¤Þ¤¿¡¢¤½¤Î¥ë¡¼¥Á¥ó¤ò»È¤Ã¤ÆZlib·Á¼°¤Î°µ½Ì¥Õ¥¡¥¤¥ë¤òŸ³«¤·¡¢²èÌÌɽ¼¨¤¹¤ë¥µ¥ó¥×¥ë¤òºîÀ®¤·¤Þ¤·¤¿¡£ ¤·¤«¤·¤Ê¤¬¤é¡¢Zlib·Á¼°¤Î°µ½Ì¥Õ¥¡¥¤¥ë¤Ï¡¢¤½¤Î¤Þ¤Þ¤Ç¤Ï¾¯¡¹»È¤¤¤Å¤é¤¤Ì̤¬¤¢¤ê¤Þ¤¹¡£ ¤¤¤Á¤Ð¤ó¤ÎÌäÂê¤Ï¡¢Zlib·Á¼°¤ËÂбþ¤·¤¿°µ½Ì¡¦Å¸³«¥Ä¡¼¥ë¤¬ÉáµÚ¤·¤Æ¤¤¤Ê¤¤¡¢¤È¤¤¤¦ÅÀ¤Ç¤¹¡£ Zlib¤Î»ÅÍͽñ¤Ë¤è¤ë¤È¡¢¼Â¤Ï¡ÖZlib·Á¼°¡×¤È¤Ï¡¢°µ½ÌÊýË¡¤Þ¤Ç´Þ¤á¤¿»ÅÍͤǤϤʤ¤¤½¤¦¤Ç¤¹¡£ °µ½ÌÊýË¡¤ò¼¨¤·¤¿¥Ø¥Ã¥À¤È¡¢°µ½Ì¥Ç¡¼¥¿ËÜÂΡ¢¤½¤·¤Æ¸¡ººÍÑ¥³¡¼¥É¤ÎʤӤò´ûÄꤷ¤Æ¤¤¤ë¤À¤±¤Î»ÅÍͤǤ¹¡£ ¿Þ¤Ç¼¨¤¹¤È¡¢¤³¤ó¤Ê´¶¤¸¤Ç¤¹¡£ ¡Ü¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡Ü ¡Ã£Ú£ì£é£â¥Ø¥Ã¥À¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã¢«Zlib»ÅÍÍ ¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü ¡Ã£Ú£ì£é£â¥Ø¥Ã¥À¤Ë½ñ¤¤¤Æ¤¢¤ë°µ½ÌÊýË¡¤ò»È¤Ã¤¿¡¢°µ½Ì¥Ç¡¼¥¿¡Ã ¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü ¡Ã¸¡ººÍÑ¥³¡¼¥É¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã¢«Zlib»ÅÍÍ ¡Ü¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡Ü Windows WAV¥Õ¥¡¥¤¥ë·Á¼°¤¬¡¢PCM·Á¼°¡¦ADPCM·Á¼°¡¦MP3·Á¼°¤Ê¤É¡¢¤¤¤í¤¤¤í¤ÊÆâÉô·Á¼°¤ò»ý¤Ã¤Æ¤¤¤ë¤Î¤Ë»÷¤Æ¤¤¤Þ¤¹¡£ ¤µ¤Æ¡¢¸½ºß¤Î¤È¤³¤íZlib·Á¼°¤ÇÍøÍѲÄǽ¤Ê°µ½ÌÊýË¡¤È¤·¤Æ¤Ï¡¢¡ÖDeflate°µ½Ì·Á¼°¡×¤À¤±¤¬µ¬Äꤵ¤ì¤Æ¤¤¤Þ¤¹¡£ °ìÈ̤ËZlib·Á¼°¤È¸Æ¤Ð¤ì¤ë¤Î¤Ï¡¢¸·Ì©¤Ë¤Ï¡ÖDeflate°µ½Ì·Á¼°¤Î°µ½Ì¥Ç¡¼¥¿¤ò»ý¤Ã¤¿¡¢Zlib·Á¼°¤Î¥Õ¥¡¥¤¥ë¡×¤Î¤³¤È¤À¤Ã¤¿¤Î¤Ç¤¹¡£ ¤â¤Á¤í¤ó¡¢Á°²ó¼ÂÁõ¤·¤¿ZlibŸ³«¥ë¡¼¥Á¥ó¤â¡¢Deflate°µ½Ì·Á¼°¤Ë´ð¤¯¤â¤Î¤Ç¤¹¡£ Àè¤Û¤É¤Î¿Þ¤ò½ñ¤­Ä¾¤¹¤È¡¢¼¡¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£ ¡Ü¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡Ü ¡Ã£Ú£ì£é£â¥Ø¥Ã¥À¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã¢«Zlib»ÅÍÍ ¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü ¡Ã£Ä£å£æ£ì£á£ô£å·Á¼°¤Î°µ½Ì¥Ç¡¼¥¿¡Ã ¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü ¡Ã¸¡ººÍÑ¥³¡¼¥É¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã¢«Zlib»ÅÍÍ ¡Ü¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡Ü Zlib·Á¼°¤Î°µ½Ì¥Õ¥¡¥¤¥ë¤ò°·¤¦¤Ë¤Ï¡¢°µ½Ì¡¦Å¸³«¥Ä¡¼¥ë¤¬Zlib·Á¼°¤Î¥Ø¥Ã¥À¤ä¸¡ººÍÑ¥³¡¼¥É¤òǧ¼±¤Ç¤­¤Ê¤±¤ì¤Ð¤¤¤±¤Þ¤»¤ó¡£ Ê£¿ô¤Î·Á¼°¤ËÂбþ¤·¤¿°µ½Ì¡¦Å¸³«¥Ä¡¼¥ë¤ÏÍÍ¡¹¤¢¤ê¤Þ¤¹¤¬¡¢Zlib·Á¼°¤ò°·¤¦¤³¤È¤Î¤Ç¤­¤ë¥Ä¡¼¥ë¤Ï¸«¤Ä¤±¤é¤ì¤Þ¤»¤ó¤Ç¤·¤¿¡£ Ëͤϡ¢¤³¤Á¤é¤Î¥µ¥ó¥×¥ë¥×¥í¥°¥é¥à¤ò¤½¤Î¤Þ¤ÞZlib°µ½Ì¡¦Å¸³«¥Ä¡¼¥ë¤È¤·¤Æ»È¤ï¤»¤Æ夤¤Æ¤¤¤Þ¤¹¡£ ¡ÖHaruhiko Okumura's Home Page(http://www.matsusaka-u.ac.jp/~okumura/)¡×¤µ¤ó¤Î¥µ¥¤¥È¤Î¡¢ ¡Özlib ÆþÌç(http://www.matsusaka-u.ac.jp/~okumura/compression/zlib.html)¡×¤Î¥Ú¡¼¥¸¤Î¡¢ ¡Öcomptest.c(http://www.matsusaka-u.ac.jp/~okumura/compression/comptest.c)¡×¡£ ¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤¿¤á¤Ë¤Ï¡¢¥ª¥ê¥¸¥Ê¥ë¤ÎZlib(http://www.gzip.org/zlib/)¤¬É¬ÍפǤ¹¡£ ¤µ¤Æ¡¢Zlib·Á¼°¤è¤ê¤â°µÅÝŪ¤Ë¥á¥¸¥ã¡¼¤Ê°µ½Ì¥Õ¥¡¥¤¥ë·Á¼°¤È¤·¤Æ¡¢¡ÖZip·Á¼°¡×¤¬¤¢¤ê¤Þ¤¹¡£ Zip·Á¼°¤â¡¢Zlib·Á¼°¤ÈƱ¤¸¤¯¡¢°µ½ÌÊýË¡¤Þ¤Ç¤òÄê¤á¤¿»ÅÍͤǤϤ¢¤ê¤Þ¤»¤ó¡£ ÍÍ¡¹¤Ê°µ½ÌÊýË¡¤ò»È¤Ã¤¿°µ½Ì¥Ç¡¼¥¿¤Î³ÊǼÊýË¡¤ä¡¢¥Õ¥¡¥¤¥ë¾ðÊó¤òÉղ乤ëÊýË¡Åù¤òÄê¤á¤¿»ÅÍͤǤ¹¡£ Zip·Á¼°¤¬°·¤¦¡ÈÍÍ¡¹¤Ê°µ½ÌÊýË¡¡É¤ÎÃæ¤Ç¤âÆäËÎɤ¯ÍøÍѤµ¤ì¤ë¤Î¤¬¡¢Á°½Ð¤Î¡ÖDeflate°µ½Ì·Á¼°¡×¤Ç¤¹¡£ Ʊ¤¸Deflate°µ½Ì·Á¼°¤ò»È¤Ã¤¿Zlib·Á¼°¤ÈZip·Á¼°¤Ï¡¢¥¬¥ï¤¬°ã¤¦¤À¤±¤ÇËܼÁ¤Ï¤Û¤È¤ó¤ÉƱ¤¸¡¢¤È¸À¤¨¤Þ¤¹¡£ Zlib·Á¼°¤È°ã¤Ã¤Æ¡¢Zip·Á¼°¤ÏÊ£¿ô¤Î¥Õ¥¡¥¤¥ë¤ò¤Þ¤È¤á¤Æ³ÊǼ¤Ç¤­¤ë¤Î¤Ç¡¢¿Þ¤Ç¼¨¤¹¤È¤³¤ó¤Ê´¶¤¸¤Ë¤Ê¤ê¤Þ¤¹¡£ ¡Ü¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡Ü ¡Ã£Ú£é£ð¥Õ¥¡¥¤¥ë¥Ø¥Ã¥À£±¡¢¸¡ººÍÑ¥³¡¼¥É¤â´Þ¤à¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã¢«Zip»ÅÍÍ ¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü ¡Ã£Ú£é£ð¥Õ¥¡¥¤¥ë¥Ø¥Ã¥À£±¤Ë½ñ¤¤¤Æ¤¢¤ë°µ½ÌÊýË¡¤ò»È¤Ã¤¿¡¢°µ½Ì¥Ç¡¼¥¿£±¡Ã ¡Ü¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡Ü ¡Ã£Ú£é£ð¥Õ¥¡¥¤¥ë¥Ø¥Ã¥À£²¡¢¸¡ººÍÑ¥³¡¼¥É¤â´Þ¤à¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã¢«Zip»ÅÍÍ ¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü ¡Ã£Ú£é£ð¥Õ¥¡¥¤¥ë¥Ø¥Ã¥À£²¤Ë½ñ¤¤¤Æ¤¢¤ë°µ½ÌÊýË¡¤ò»È¤Ã¤¿¡¢°µ½Ì¥Ç¡¼¥¿£²¡Ã ¡Ü¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡Ü ¡Ã¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¦¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã ¡Ã¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¦¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã ¡Ã¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¦¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã ¡Ü¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡Ü ¡Ã£Ú£é£ð¥Õ¥¡¥¤¥ë¥Ø¥Ã¥À£Î¡¢¸¡ººÍÑ¥³¡¼¥É¤â´Þ¤à¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã¢«Zip»ÅÍÍ ¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü ¡Ã£Ú£é£ð¥Õ¥¡¥¤¥ë¥Ø¥Ã¥À£Î¤Ë½ñ¤¤¤Æ¤¢¤ë°µ½ÌÊýË¡¤ò»È¤Ã¤¿¡¢°µ½Ì¥Ç¡¼¥¿£Î¡Ã ¡Ü¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡Ü ¡Ã¤½¤Î¾¤Î£Ú£é£ð¥Õ¥¡¥¤¥ë¾ðÊó¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã¢«Zip»ÅÍÍ ¡Ü¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡Ü ¤¢¤ëZip¥Õ¥¡¥¤¥ëÆâ¤Î°µ½Ì¥Ç¡¼¥¿¤¬¡¢Á´¤ÆDeflate°µ½Ì·Á¼°¤òÍøÍѤ·¤Æ¤¤¤¿¤Ê¤é¤Ð¡¢Àè¤Û¤É¤Î¿Þ¤Ï¼¡¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£ ¡Ü¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡Ü ¡Ã£Ú£é£ð¥Õ¥¡¥¤¥ë¥Ø¥Ã¥À£±¡¢¸¡ººÍÑ¥³¡¼¥É¤â´Þ¤à¡Ã¢«Zip»ÅÍÍ ¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü ¡Ã£Ä£å£æ£ì£á£ô£å·Á¼°¤Î°µ½Ì¥Ç¡¼¥¿£±¡¡¡¡¡¡¡¡¡¡¡Ã ¡Ü¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡Ü ¡Ã£Ú£é£ð¥Õ¥¡¥¤¥ë¥Ø¥Ã¥À£²¡¢¸¡ººÍÑ¥³¡¼¥É¤â´Þ¤à¡Ã¢«Zip»ÅÍÍ ¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü ¡Ã£Ä£å£æ£ì£á£ô£å·Á¼°¤Î°µ½Ì¥Ç¡¼¥¿£²¡¡¡¡¡¡¡¡¡¡¡Ã ¡Ü¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡Ü ¡Ã¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¦¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã ¡Ã¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¦¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã ¡Ü¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡Ü ¡Ã£Ú£é£ð¥Õ¥¡¥¤¥ë¥Ø¥Ã¥À£Î¡¢¸¡ººÍÑ¥³¡¼¥É¤â´Þ¤à¡Ã¢«Zip»ÅÍÍ ¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü ¡Ã£Ä£å£æ£ì£á£ô£å·Á¼°¤Î°µ½Ì¥Ç¡¼¥¿£Î¡¡¡¡¡¡¡¡¡¡¡Ã ¡Ü¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡Ü ¡Ã¤½¤Î¾¤Î£Ú£é£ð¥Õ¥¡¥¤¥ë¾ðÊó¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã¢«Zip»ÅÍÍ ¡Ü¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡Ü Zip¥Õ¥¡¥¤¥ë¤Ë³ÊǼ¤¹¤ë°µ½Ì¥Ç¡¼¥¿¤Î·Á¼°¤È¤·¤Æ¤Ï¡¢Deflate°µ½Ì·Á¼°°Ê³°¤Ë¤â¤¤¤¯¤Ä¤«¤Î°µ½ÌÊýË¡¤¬µ¬Äꤵ¤ì¤Æ¤¤¤Þ¤¹¡£ ¤·¤«¤·¡¢¼ê¸µ¤Ë¤¢¤ë¿¤¯¤ÎZip¥Õ¥¡¥¤¥ë¤òÄ´¤Ù¤Æ¤ß¤¿¤È¤³¤í¡¢¼ÂºÝ¤Ë»È¤ï¤ì¤Æ¤¤¤¿°µ½ÌÊýË¡¤ÏÆó¼ïÎà¤À¤±¤Ç¤·¤¿¡£ ¡¦Ìµ°µ½Ì ¡¦Deflate°µ½Ì·Á¼° ½¾¤Ã¤Æ¡¢¤³¤ì¤éÆó¼ïÎà¤Î°µ½Ì·Á¼°¤ËÂбþ¤¹¤ë¤À¤±¤Ç¡¢¼ÂÍѾå¤Ï½¼Ê¬¤ÊZipŸ³«¥ë¡¼¥Á¥ó¤È¤Ê¤ë¤Ï¤º¤Ç¤¹¡£ ̵°µ½Ì·Á¼°¤Ë¤Ä¤¤¤Æ¤Ï¡¢³ÊǼ¤µ¤ì¤Æ¤¤¤ë¥Ç¡¼¥¿¤ò¤½¤Î¤Þ¤Þ¥³¥Ô¡¼¤¹¤ë¤À¤±¤Ç¤¹¡£ Deflate°µ½Ì·Á¼°¤Ë¤Ä¤¤¤Æ¤Ï¡¢Á°²óºîÀ®¤·¤¿ZlibŸ³«¥ë¡¼¥Á¥ó¤ÎÆâÉô½èÍý¤¬Î®ÍѤǤ­¤½¤¦¤Ç¤¹¡£ Zlib¥Ø¥Ã¥À¤È¸¡ºº¥³¡¼¥É¤ò°·¤Ã¤Æ¤¤¤ëÉôʬ¤Î¥×¥í¥°¥é¥à¤ò¾¯¤·½¤Àµ¤¹¤ë¤À¤±¤Ç¡¢ZipŸ³«¥ë¡¼¥Á¥ó¤òºîÀ®¤Ç¤­¤Þ¤·¤¿¡£ ZipŸ³«¥ë¡¼¥Á¥ó¤òÍøÍѤ·¤¿¥µ¥ó¥×¥ë¤Ï¤³¤Á¤é¡£ P/ECEÍѤÈWindowsÍѤΥƥ¹¥È¥×¥í¥°¥é¥à¤òÍÑ°Õ¤·¤Þ¤·¤¿¡£ P/ECEÍѥƥ¹¥È¥×¥í¥°¥é¥à¤Ï¡¢Zip¥Õ¥¡¥¤¥ë¤Ë³ÊǼ¤µ¤ì¤¿²èÁü¥Õ¥¡¥¤¥ë¤ò¡¢¼¡¡¹¼«Æ°Åª¤Ëɽ¼¨¤·¤Þ¤¹¡£ Windows¥Æ¥¹¥È¥×¥í¥°¥é¥àÍѤϡ¢Zip¥Õ¥¡¥¤¥ë¤Ë³ÊǼ¤µ¤ì¤¿¥Õ¥¡¥¤¥ë°ìÍ÷¤«¤é¡¢ÁªÂò¤µ¤ì¤¿²èÁü¤òŸ³«¤·¤Æɽ¼¨¤·¤Þ¤¹¡£ http://www.piece-me.org/archive/pzltest-20040316-piece.zip http://www.piece-me.org/archive/pzltest-20040316-win32.zip Á°²ó¤Èº£²ó¤È¤Ç¡¢Zlib/ZipŸ³«¥ë¡¼¥Á¥ó¤ò¼ÂÁõ¤·¤Æ¤ß¤Þ¤·¤¿¡£ Æóǯ¶á¤¯¡¢¤è¤¯¤ï¤«¤é¤Ê¤¤¤Þ¤Þ¤Ë»È¤Ã¤Æ¤¤¤¿Zlib¥é¥¤¥Ö¥é¥ê¤Ç¤·¤¿¤¬¡¢º£²ó¤Î¥×¥í¥°¥é¥ß¥ó¥°¤Ç¤ä¤Ã¤ÈÍý²ò¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤·¤¿¡£ Zlib/Zip·Á¼°¤Î»ÅÁȤߤòÍý²ò¤¹¤ë¤¿¤á¤Ë¡¢°Ê²¼¤Îµ­»ö¤¬¤È¤Æ¤â»²¹Í¤Ë¤Ê¤ê¤Þ¤·¤¿¡£ ¤ªÎé¤ò¿½¤·¾å¤²¤ë¤È¤È¤â¤Ë¡¢¤´¾Ò²ð¤µ¤»¤Æ夭¤Þ¤¹¡£ ¡ÖLabVIEW¾ðÊó¸ò´¹¤Î¥Ú¡¼¥¸(http://www.asahi-net.or.jp/~WR9K-OOHS/)¡×¤µ¤ó¤Î¥µ¥¤¥È¤Î¡¢ ¡Ö¥Ê¥¤¥¸¥§¥ë»³¸ý¥³¡¼¥Ê¡¼(http://www.asahi-net.or.jp/~WR9K-OOHS/Pages/Nigel's/nigel.html)¡×¤Î¥Ú¡¼¥¸¡£ Zlib¤Î»ÅÍͽñ¤Î¡¢¤¤¤Á¤Ð¤ó½ÅÍפÊÉôʬ¤Ë´Ø¤¹¤ëÏÂÌõ¤¬¤¢¤ê¤Þ¤¹¡£ ¤Þ¤¿¡¢°µ½Ìµ»Ë¡¤Î¾ÜºÙ¤Ë¤Ä¤¤¤Æ¡¢¤ï¤«¤ê¤ä¤¹¤¯ÏÀ¤¸¤é¤ì¤Æ¤¤¤Þ¤¹¡£ °µ½Ìµ»Ë¡°Ê³°¤Ë¤â¡¢¶½Ì£¿¼¤¤µ­»ö¤¬¤¿¤¯¤µ¤ó¤¢¤ê¤Þ¤¹¡£ ¡Ö£Ë£Ï£Î£Å's £Ä¡ÝStation(http://kone.vis.ne.jp/)¡×¤µ¤ó¤Î¥µ¥¤¥È¤Î¡¢ ¡Öµ¤¤Þ¤°¤ì¤Êµº¤ì¸À(http://kone.vis.ne.jp/diary/)¡×¤Î¥Ú¡¼¥¸¡£ CRC¤Î·×»»ÊýË¡¤¬¡¢½ç¤òÄɤäƲòÀ⤵¤ì¤Æ¤¤¤Þ¤¹¡£ Zip·Á¼°¤Ç»È¤ï¤ì¤Æ¤¤¤ëCRC-32¤Î·×»»ÊýË¡¡¢Â¿¤¯¤Î¼ÂÁõÎã¤Ï¥Æ¡¼¥Ö¥ë¤òÍøÍѤ·¤Æ¤¤¤Þ¤¹¤¬¡¢¤½¤Î¥Æ¡¼¥Ö¥ë¤Ï¤É¤³¤«¤é½Ð¤Æ¤¯¤ë¤Î¤«¡© ¤³¤Á¤é¤Î¥Ú¡¼¥¸¤òÆɤó¤Çµ¿Ì䤬²ò·è¤·¤Þ¤·¤¿¡£ º£²ó¤ÎºîÀ®¤·¤¿ZipŸ³«¥ë¡¼¥Á¥ó¤Ï¡¢¥Æ¡¼¥Ö¥ë¤òÍøÍѤ·¤Ê¤¤´ðËÜŪ¤ÊÊýË¡¤Ç¼ÂÁõ¤·¤Æ¤ß¤Þ¤·¤¿¡£ * Sat May 13 16:00:00 JST 2004 Naoyuki Sawa - Zlib¤ò¼ÂÁõ¤·¤Æ¤ß¤ë#1 2002ǯ6·î14Æü¡Á17Æü¤ÎP/ECE¸¦µæµ­Ï¿¡Özlib¤ò»È¤¦#1¡Á3¡×¤Ë¤Æ¡¢P/ECEÍÑ¥×¥í¥°¥é¥à¤ÇZlib¤ò»È¤¦ÊýË¡¤òÄ´¤Ù¤Þ¤·¤¿¡£ ¤½¤Î¸å¡¢¤¤¤¯¤Ä¤«¤Î¼«ºî¥×¥í¥°¥é¥à¤Ç¡¢¼ÂºÝ¤ËZlib¤òÍøÍѤ·¤Þ¤·¤¿¡£ ¤½¤ì¤é¤Ï°ì±þ¾å¼ê¤¯Æ°ºî¤·¤¿¤Î¤Ç¤¹¤¬¡¢P/ECEÍÑ¥×¥í¥°¥é¥à¤Ç¤ÏZlib¤¬»È¤¤¤Å¤é¤¤¤È´¶¤¸¤ëÅÀ¤â¤¤¤¯¤Ä¤«¤¢¤ê¤Þ¤·¤¿¡£ ¤¤¤Á¤Ð¤ó¤ÎÌäÂê¤Ï¡¢¡Özlib¤ò»È¤¦#1¡Á3¡×¤Ç¤â½ñ¤¤¤¿¤è¤¦¤Ë¡¢¥á¥â¥ê¾ÃÈñÎ̤¬Â¿¤¹¤®¤ëÅÀ¤Ç¤¹¡£ °µ½Ì¥Ç¡¼¥¿¤ò³ÊǼ¤·¤Æ¤ª¤¯ÆþÎϥХåե¡¡¢Å¸³«¥Ç¡¼¥¿¤òºîÀ®¤¹¤ë¤¿¤á¤Î½ÐÎϥХåե¡¤Î¾¤Ë¡¢Ìó35¥­¥í¥Ð¥¤¥È¤Îºî¶ÈÍÑ¥á¥â¥ê¤¬É¬ÍפǤ¹¡£ P/ECEÍÑ¥×¥í¥°¥é¥à¤Ç¤Ï¡¢¼ÂºÝ¤ËÍøÍѤ¹¤ë°µ½Ì¥Ç¡¼¥¿¤äŸ³«¥Ç¡¼¥¿¤Ï¤µ¤Û¤ÉÂ礭¤¯¤¢¤ê¤Þ¤»¤ó¡£¤¿¤¤¤Æ¤¤¿ô¥­¥í¥Ð¥¤¥ÈÄøÅ٤Ǥ¹¡£ ¤½¤ì¤è¤ê¤â¡¢ZlibÆâÉô¤Î°ì»þŪ¤Êºî¶ÈÍÑ¥á¥â¥ê¤Î¤¿¤á¤Ë¡¢35¥­¥í¥Ð¥¤¥È¤âɬÍפʤΤ¬¤«¤Ê¤ê¸·¤·¤¤¤È¤³¤í¤Ç¤¹¡£ Zlib¤¬ºî¶ÈÍÑ¥á¥â¥ê¤ò³ÎÊݤǤ­¤Ê¤¤¤È¡¢Å¸³«½èÍý¤¬¼ºÇÔ¤·¤Æ¤·¤Þ¤¤¤Þ¤¹¡£ ¤½¤Î¸å¡ÖP/ECE HAND BOOK¡×¤Ë¡¢P/ECE¥«¡¼¥Í¥ë¥½¡¼¥¹¤ÎŸ³«¥ë¡¼¥Á¥ó¤ò»È¤¦ÊýË¡¤¬·ÇºÜ¤µ¤ì¤Þ¤·¤¿¡£ P/ECE¥«¡¼¥Í¥ë¥½¡¼¥¹¤ÎŸ³«¥ë¡¼¥Á¥ó¤âƱ¤¸Zlib¤Ç¤¹¤¬¡¢P/ECE¤Î¥á¥â¥ê¹½À®¤ËÆò½¤·¤Æ¤¤¤Æ¡¢¤è¤ê¾¯¤Ê¤¤¥á¥â¥ê¤ÇŸ³«½èÍý¤¬²Äǽ¤Ç¤¹¡£ ¤Þ¤¿¡¢¡ÖP/ECE HAND BOOK¡×¤ÎÊýË¡¤ò¸µ¤Ë¤·¤Æ¡¢Ê£¿ô¤Î°µ½Ì¥Õ¥¡¥¤¥ë¤ò¤Þ¤È¤á¤Æ°·¤¦ÊýË¡¤¬¡¢ ¡Ö¤Æ¤È¤é¡ú¤Ý¤Ã¤È(http://www.zurachu.net/)¡×¤µ¤ó¤Î¥µ¥¤¥È¤Ç¾Ò²ð(http://www.zurachu.net/piece/tips/ppack.html)¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ Zlib¤Ë¤³¤À¤ï¤é¤Ê¤±¤ì¤Ð¡¢¤è¤ê¹â®¤Ê°µ½Ì¡¦Å¸³«ÊýË¡¤¬¡Öp/ware(http://park17.wakwak.com/~hitode/piece/index.html)¡×¤µ¤ó¤Î¥µ¥¤¥È¤Ç ¾Ò²ð(http://park17.wakwak.com/~hitode/piece/index.html#plz)¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ ¤³¤ì¤é¤ÎÊýË¡¤ò»È¤ï¤»¤Æ¤â¤é¤¨¤Ð¼ÂÍѾå¤ÏÌäÂê²ò·è¤Ê¤Î¤Ç¤¹¤¬¡¢¤â¤¦¾¯¤·¤À¤±ÁǤÎZlib¤Ë¤³¤À¤ï¤Ã¤Æ¤ß¤¿¤¤¤È»×¤¤¤Þ¤¹¡£ ¤½¤â¤½¤âËͤ¬Zlib¤ÎÆâÉôÆ°ºî¤òÍý²ò¤·¤Ê¤¤¤Þ¤Þ»È¤Ã¤Æ¤¤¤¿¤Î¤¬ÌäÂê¤Ê¤Î¤Ç¡¢¤³¤Îµ¡²ñ¤ËÊÙ¶¯¤·¤Æ¤ß¤è¤¦¤È¤¤¤¦¤ï¤±¤Ç¤¹¡£ ¤µ¤Æ¡¢¤Ê¤¼Zlib¤Ï¤³¤ó¤Ê¤ËÂ礭¤Êºî¶ÈÍÑ¥á¥â¥ê¤òɬÍפȤ¹¤ë¤Î¤Ç¤·¤ç¤¦¤«¡© Zlib¤Î°µ½Ì¡¦Å¸³«¥¢¥ë¥´¥ê¥º¥à¤Ï¡¢¡Ö¥Ï¥Õ¥Þ¥óÉä¹æ²½¡×¤È¡Ö¥¹¥é¥¤¥É¼­½ñ°µ½Ì¡×¤Ë´ð¤Å¤¤¤Æ¤¤¤Þ¤¹¡£ ¥Ï¥Õ¥Þ¥óÉä¹æ²½¤Ï¡¢ÉÑÈˤ˸½¤ì¤ëÃͤ˾®¤µ¤ÊÉä¹æ¡¢µ©¤Ë¸½¤ì¤ëÃͤËÂ礭¤ÊÉä¹æ¤ò³ä¤ê¿¶¤Ã¤Æ¡¢Á´ÂΤΥµ¥¤¥º¤ò¾®¤µ¤¯¤¹¤ëÊýË¡¤Ç¤¹¡£ ¥Ï¥Õ¥Þ¥óÉä¹æ²½¤ÎŸ³«½èÍý¤Ë¤Ï¡¢¡Ö¥Ï¥Õ¥Þ¥óÌڡפȤ¤¤¦¥Ç¡¼¥¿¹½Â¤¤¬ÍøÍѤµ¤ì¤Þ¤¹¡£ ¡Ö¥Ï¥Õ¥Þ¥óÌڡפϡ¢¥Ï¥Õ¥Þ¥óÉä¹æ¤«¤é¸µ¤ÎÃͤËÊÑ´¹¤¹¤ë¤¿¤á¤Î¼­½ñ¤È¤Ê¤ê¤Þ¤¹¡£ ¡Ö¥Ï¥Õ¥Þ¥óÌڡפòºîÀ®¤¹¤ë¤¿¤á¤Ë¡¢¤¤¤¯¤é¤«¤Î¥á¥â¥ê¤¬É¬ÍפǤ¹¡£ ¤³¤ì¤¬¡¢Zlib¤¬Â礭¤Êºî¶ÈÍÑ¥á¥â¥ê¤òɬÍפȤ¹¤ëÍýͳ¤Î°ì¤ÄÌܤǤ¹¡£ ¤·¤«¤·¼ÂºÝ¤Ë¤Ï¡¢Zlib¤ÇÍøÍѤµ¤ì¤ë¡Ö¥Ï¥Õ¥Þ¥óÌڡפϤµ¤Û¤ÉÂ礭¤Ê¥Ç¡¼¥¿¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£¤»¤¤¤¼¤¤¿ô¥­¥í¥Ð¥¤¥ÈÄøÅ٤Ǥ¹¡£ ¤è¤êÂ礭¤Ê¥á¥â¥ê¤òɬÍפȤ·¤Æ¤¤¤ë¤Î¤Ï¡¢¥¹¥é¥¤¥É¼­½ñ°µ½Ì¥¢¥ë¥´¥ê¥º¥à¤ÇÍøÍѤµ¤ì¤ë¡Ö¥¹¥é¥¤¥ÉÁë¡×¥Ç¡¼¥¿¹½Â¤¤Ç¤¹¡£ ¥¹¥é¥¤¥É¼­½ñ°µ½Ì¤È¤Ï¡¢Æ±¤¸¥Ñ¥¿¡¼¥ó¤Î¥Ç¡¼¥¿Ê¤Ӥòµ÷Î¥¤ÈŤµ¤ËÃÖ¤­´¹¤¨¤Æ¡¢Á´ÂΤΥµ¥¤¥º¤ò¾®¤µ¤¯¤¹¤ëÊýË¡¤Ç¤¹¡£ Î㤨¤Ð¡Ö012345678901234¡×¤È¤¤¤¦¥Ç¡¼¥¿Ê¤Ӥ¬¤¢¤Ã¤¿¾ì¹ç¡¢¼¡¤Î¤è¤¦¤Ê´¶¤¸¤Ç°µ½Ì¤·¤Þ¤¹¡£ ¡Ö0123456789¡¢10ʸ»úÁ°¤«¤é¡¢5ʸ»ú·«¤êÊÖ¤·¡× ¤È¤³¤í¤Ç¡¢Zlib¤Î¼ÂÁõ¤ÏÆþÎϤâ½ÐÎϤâ´ðËÜŪ¤Ë¥¹¥È¥ê¡¼¥ß¥ó¥°¤Ç¤¹¡£ ¤Ä¤Þ¤ê¡¢°ìÅÙÆɤ߹þ¤ó¤À¥Ç¡¼¥¿¤ÏºÆ¤ÓÆɤ߹þ¤á¤Ê¤¤¡¢°ìÅÙ½ÐÎϤ·¤¿¥Ç¡¼¥¿¤Ï¤â¤¦Ëº¤ì¤¿¡¢¤È¤¤¤¦¤ï¤±¤Ç¤¹¡£ ¤·¤«¤·¡¢10ʸ»úÁ°¤Î¥Ç¡¼¥¿¤ò¤â¤¦°ìÅÙ½ÐÎϤ¹¤ë¤¿¤á¤Ë¤Ï¡¢10ʸ»úÁ°¤Ë½ÐÎϤ·¤¿¥Ç¡¼¥¿¤ò³Ð¤¨¤Æ¤ª¤«¤Ê¤±¤ì¤Ð¤¤¤±¤Þ¤»¤ó¡£ ¤½¤³¤Ç¡¢¤¤¤¯¤é¤«¤Î½ÐÎϥХåե¡¤òÍÑ°Õ¤·¡¢²áµî²¿Ê¸»úʬ¤«¤Î½ÐÎÏÍúÎò¤òµ­²±¤·¤Æ¤ª¤­¤Þ¤¹¡£ ¤³¤ì¤ò¡Ö¥¹¥é¥¤¥ÉÁë¡×¤È¸Æ¤Ó¤Þ¤¹¡£ Zlib¤Î»ÅÍͤǤϡ¢ºÇÂç¤Ç¡Ö3Ëü2Àéʸ»úÁ°¤«¤é¡¢258ʸ»ú·«¤êÊÖ¤·¡×¤È¤¤¤¦»Ø¼¨¤¬Í­¤êÆÀ¤ë¤³¤È¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£ ½¾¤Ã¤Æ¡¢²áµî3Ëü2Àéʸ»úʬ¤Î½ÐÎÏÍúÎò¤òµ­²±¤·¤Æ¤ª¤«¤Ê¤±¤ì¤Ð¤¤¤±¤Þ¤»¤ó¡£ ¤Ä¤Þ¤ê¡¢32¥­¥í¥Ð¥¤¥È¤Î¥¹¥é¥¤¥ÉÁ뤬ɬÍפȤʤê¤Þ¤¹¡£ ¤³¤ì¤Çµ¿Ì䤬²ò·è¤·¤Þ¤·¤¿¡£35¥­¥í¥Ð¥¤¥È¤Îºî¶ÈÍÑ¥á¥â¥ê¤ÎÂçÉôʬ¤Ï¡¢¥¹¥é¥¤¥ÉÁë¤Ë»È¤ï¤ì¤Æ¤¤¤¿¤Î¤Ç¤¹¡£ ¤µ¤Æ¡¢¤µ¤­¤Û¤É¡ÈZlib¤Î¼ÂÁõ¤ÏÆþÎϤâ½ÐÎϤâ´ðËÜŪ¤Ë¥¹¥È¥ê¡¼¥ß¥ó¥°¡É¤À¤«¤é¥¹¥é¥¤¥ÉÁ뤬ɬÍס¢¤È½ñ¤­¤Þ¤·¤¿¡£ ¤è¤ê¸ÂÄꤹ¤ë¤È¡¢¡È½ÐÎϤ¬¥¹¥È¥ê¡¼¥ß¥ó¥°¤À¤«¤é¡É½ÐÎÏÍúÎò¤òµ­²±¤·¤Æ¤ª¤¯¤¿¤á¤Ë¥¹¥é¥¤¥ÉÁ뤬ɬÍפȤʤê¤Þ¤¹¡£ ¤Ç¤Ï¡¢½ÐÎϤò¥¹¥È¥ê¡¼¥ß¥ó¥°¤Ë¤¹¤ëɬÍפϤ¢¤ë¤Î¤Ç¤·¤ç¤¦¤«¡© Ëͤ¬ºî¤Ã¤¿P/ECE¡õZlib»ÈÍÑ¤Î¥×¥í¥°¥é¥à¤Ç¡¢½ÐÎÏ¥¹¥È¥ê¡¼¥ß¥ó¥°¤ò³èÍѤ·¤¿¥±¡¼¥¹¤Ï¤¿¤Ã¤¿°ìÅÙ¤À¤±¤Ç¤·¤¿¡£ ¡ÖVGM¥×¥ì¥¤¥ä¡¼¡×¤Ç¤¹¡£ VGM¥×¥ì¥¤¥ä¡¼¤Ç¤Ï¡¢VGZ·Á¼°¤Ç°µ½Ì¤µ¤ì¤¿±éÁեǡ¼¥¿¤ò¾¯¤·¤Å¤ÄŸ³«¤·¤Ê¤¬¤é±éÁÕ½èÍý¤ò¹Ô¤¤¤Þ¤·¤¿¡£ ¤·¤«¤·¤³¤ì¤È¤ÆÁ´Å¸³«¥Ç¡¼¥¿¤Ï½¼Ê¬P/ECE¤Î¥á¥â¥ê¤Ë¼ý¤Þ¤ëÄøÅ٤Υµ¥¤¥º¤Ç¡¢¤à¤·¤íºî¶ÈÍÑ¥á¥â¥ê¤ÎÊý¤¬Â礭¤¤¤°¤é¤¤¤Ç¤¹¡£ ¤Ä¤Þ¤ê¡¢P/ECE¾å¤ÇZlib¤Î½ÐÎÏ¥¹¥È¥ê¡¼¥ß¥ó¥°¤¬É¬ÍפȤʤ륱¡¼¥¹¤Ï¤Ê¤«¤Ã¤¿¡¢¤È¸À¤¨¤Þ¤¹¡£ ¤è¤êÂ礭¤Ê°µ½Ì¡¦Å¸³«¥Ç¡¼¥¿¤ò°·¤¦¡¢PC¾å¤Î¥×¥í¥°¥é¥à¤Ç¤Ï¤¤¤¯¤Ö¤ó»ö¾ð¤âÊѤï¤Ã¤Æ¤¯¤ë¤Î¤Ç¤·¤ç¤¦¤¬¡¢ ¾¯¤Ê¤¯¤È¤â¥²¡¼¥à¥×¥í¥°¥é¥à¤Ë¤ª¤¤¤Æ¤ÏÁ´¥Ç¡¼¥¿¤ò¥ª¥ó¥á¥â¥ê¤ËŸ³«¤¹¤ë¥±¡¼¥¹¤¬ÂçÉôʬ¤Ê¤Î¤Ç¤Ï¤Ê¤¤¤«¤È»×¤¤¤Þ¤¹¡£ ¤½¤ó¤Ê¤ï¤±¤Ç¡¢¤É¤¦¤ä¤éZlib¤Î½ÐÎÏ¥¹¥È¥ê¡¼¥ß¥ó¥°¤ÏËͤˤÏɬÍפʤ¤¤è¤¦¤Ç¤¹¡£ Zlib¤Î½ÐÎÏ¥¹¥È¥ê¡¼¥ß¥ó¥°¤ò¤È¤ê¤ä¤á¤Æ¡¢ºî¶ÈÍÑ¥á¥â¥ê¤ÎɬÍ×Î̤ò¸º¤é¤¹¤³¤È¤Ë¤·¤Þ¤·¤¿¡£ ¤µ¤Ã¤½¤¯Zlib¤Î¥½¡¼¥¹²þ¤¤Ë¤È¤ê¤«¤«¤Ã¤¿¤Î¤Ç¤¹¤¬¡¦¡¦¡¦Æñ²ò¤Ç¤¹(^^; ZlibŸ³«¤Î¼ê½ç¤Ï¡¢¤µ¤Û¤ÉÊ£»¨¤Ê¤â¤Î¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£ ËܲȡÖThe gzip home page(http://www.gzip.org/)¡×¤µ¤ó¤Î¥µ¥¤¥È¤Î¡¢Zlib Home Site(http://www.gzip.org/zlib/)¡× ¢ª¡Özlib Documentation(http://www.gzip.org/zlib/zlib_docs.html)¡×¤Î¥Ú¡¼¥¸¤«¤é¡¢Zlib¤Î»ÅÍͽñ¤¬Æþ¼ê¤Ç¤­¤Þ¤¹¡£ ¥Ï¥Õ¥Þ¥óÌÚºîÀ®¤Î¤È¤³¤í¤¬Â¿¾¯¥È¥ê¥Ã¥­¡¼¤Ç¤¹¤±¤ì¤É¡¢¤½¤ì°Ê³°¤Ï²ò¤ê°×¤¯¤Æ¥·¥ó¥×¥ë¤Ê»ÅÍͤǤ¹¡£ ¤Ë¤â´Ø¤ï¤é¤ºZlib¤Î¥½¡¼¥¹¤¬Æñ²ò¤Ê¤Î¤Ï¡¢°Ü¿¢À­¤È¹â®²½¤Î¤¿¤á¡¢¥×¥í¥°¥é¥à¤¬Ê£»¨²½¤·¤Æ¤¤¤ë¤Î¤¬¸¶°ø¤Î¤è¤¦¤Ç¤¹¡£ Æä˥ϥեޥóÉü¹æ½èÍý¤Î¹â®²½¤Ë´Ø¤·¤Æ¤ÏÁêÅö¤ËÎϤ¬Æþ¤Ã¤Æ¤¤¤ë¤è¤¦¤Ç¡¢¥½¡¼¥¹Á´ÂΤΤ«¤Ê¤ê¤ÎÉôʬ¤òÀê¤á¤Æ¤¤¤Þ¤¹¡£ ¤³¤ì¤é¤ÎÊ£»¨¤Ê¥ë¡¼¥Á¥ó¤Ë±Æ¶Á¤òÍ¿¤¨¤Ê¤¤¤è¤¦¡¢½ÐÎÏ¥¹¥È¥ê¡¼¥ß¥ó¥°¤À¤±¤ò¼è¤ê¤ä¤á¤ë¤Î¤Ï¡¢¤Á¤ç¤Ã¤È´í¸±¤Ê´¶¤¸¤Ç¤¹¡£ ¤½¤³¤Çº£²ó¤Ï¡¢Zlib¤Î¥½¡¼¥¹¤ò²þ¤¤¹¤ë¤Î¤Ç¤Ï¤Ê¤¯¡¢¼«Á°¤ÇºÆ¼ÂÁõ¤·¤Æ¤ß¤ë¤³¤È¤Ë¤·¤Þ¤·¤¿¡£ ¤Ç¤­¤¢¤¬¤Ã¤¿¤Î¤¬¤³¤Á¤é¤Ç¤¹¡£ http://www.piece-me.org/archive/pzltest-20040313-piece.zip http://www.piece-me.org/archive/pzltest-20040313-win32.zip (¥Õ¥¡¥¤¥ëÆâÍƤϡ¢README.TXT¤ò¤´Í÷²¼¤µ¤¤¡£¾ÜºÙ¤Ï¼¡²ó¤Ë¡£) ¢¨2004/03/14Äɵ­: ¥Ð¥°½¤Àµ¤ª¤è¤ÓºÆÄ´À°¤·¤Þ¤·¤¿¡£ ¡¡¤³¤Îµ­»ö¤Î¤¤¤Á¤Ð¤óºÇ¸å¤Ë¡¢¹¹¿·ÈǤÎURL¤¬¤¢¤ê¤Þ¤¹¡£ P/ECEÍѤÈWindowsÍѤΥƥ¹¥È¥×¥í¥°¥é¥à¤òÍÑ°Õ¤·¤Æ¤ß¤Þ¤·¤¿¡£ ¤¤¤º¤ì¤âZlib°µ½Ì¤µ¤ì¤¿²èÁü¥Õ¥¡¥¤¥ë¤òŸ³«¤·¡¢²èÌÌɽ¼¨¤¹¤ë¥Æ¥¹¥È¥×¥í¥°¥é¥à¤Ç¤¹¡£ ¥Æ¥¹¥È¥×¥í¥°¥é¥à¤ÏP/ECEÍѤÈWindowsÍѤÇÊÌ¡¹¤Ç¤¹¤¬¡¢ZlibŸ³«¥ë¡¼¥Á¥ó¤Î¥½¡¼¥¹¤Ï¤Û¤Ü¶¦Ä̤ȤʤäƤ¤¤Þ¤¹¡£ ½ÐÎÏ¥¹¥È¥ê¡¼¥ß¥ó¥°¤ò¼è¤ê¤ä¤á¤¿¤Î¤Ç¡¢¥¹¥é¥¤¥ÉÁ뤬ÉÔÍפȤʤꡢºî¶ÈÍÑ¥á¥â¥ê¤Ï8¥­¥í¥Ð¥¤¥ÈÄøÅ٤˸º¤ê¤Þ¤·¤¿¡£ ¤â¤Ã¤È¸º¤é¤·¤Æ¤âÂç¾æÉפ½¤¦¤Ê¤Î¤Ç¤¹¤¬¡¢¤½¤ì¤Ïº£¸å¤ÎÄ´À°²ÝÂê¤Ç¤¹¡£ ¥ª¥ê¥¸¥Ê¥ë¤ÎZlib¤È°Û¤Ê¤ê¡¢°Ü¿¢À­¡¦¹â®²½¤Ë´Ø¤¹¤ëÉôʬ¤Ï¥Ð¥Ã¥µ¥ê¤Ç¤¹¡£ °Ü¿¢À­¤Ë´Ø¤·¤Æ¤Ï¡¢ËͤÏÅöÌÌP/ECE¡¢Windows¡¢¤¢¤ÈPCÍѤÎLinux¤°¤é¤¤¤ÇÆ°¤±¤Ð½¼Ê¬¤Ê¤Î¤Ç¡¢¤Û¤È¤ó¤É²¿¤â¹Í¤¨¤Æ¤¤¤Þ¤»¤ó¡£ 32¥Ó¥Ã¥È´Ä¶­¤Ç¡¢¥Ð¥¤¥È¥ª¡¼¥À¡¼¤â¥ê¥È¥ë¥¨¥ó¥Ç¥£¥¢¥ó¤Ë·è¤áÂǤÁ¤Ç¤¹¡£ ¹â®²½¤âÁ´¤¯¹Ô¤Ã¤Æ¤¤¤Þ¤»¤ó¤¬¡¢P/ECE¤Ç°·¤¦ÄøÅ٤Υǡ¼¥¿¥µ¥¤¥º¤Ê¤é¤Ð¡¢¤¢¤Þ¤ê°ã¤¤¤Ï´¶¤¸¤é¤ì¤Ê¤¤¤Ï¤º¤Ç¤¹¡£ Âç¤Þ¤«¤Ë¸À¤Ã¤Æ¡¢1ÉÃÅö¤ê10¡Á15¥­¥í¥Ð¥¤¥È¤°¤é¤¤¤ÎŸ³«Â®ÅÙ¤À¤È»×¤¤¤Þ¤¹¡£ Å°ÄìŪ¤Ë´ÊÁDz½¤·¤¿¤Î¤Ç¡¢¥×¥í¥°¥é¥à¥µ¥¤¥º¤Ï¥Ø¥Ã¥À¤È¥½¡¼¥¹¹ç¤ï¤»¤Æ1000¹ÔÄøÅ٤˾®¤µ¤¯¤Ê¤ê¤Þ¤·¤¿¡£ ¥ª¥ê¥¸¥Ê¥ë¤ÎZlib¤â¡¢¤â¤È¤â¤È¤Ï¤³¤ì¤°¤é¤¤´ÊÁǤÀ¤Ã¤¿¤È»×¤¦¤Î¤Ç¤¹¡£ Ť¯»È¤ï¤ì¤Æ¤¤¤í¤¤¤í¤Ê´Ä¶­¤Ë°Ü¿¢¤µ¤ì¡¢¤Þ¤¿¶¯ÎϤ˹⮲½¤µ¤ì¤¿·ë²Ì¡¢¸½ºß¤Î¤è¤¦¤ËÊ£»¨¤Ê¼ÂÁõ¤Ë¤Ê¤Ã¤¿¤Î¤Ç¤·¤ç¤¦¡£ º£²ó¼ÂÁõ¤·¤¿Zlib¥ë¡¼¥Á¥ó¤Ï¡¢¸À¤ï¤ÐÀèÁÄ´Ô¤ê¤Î¤è¤¦¤Ê¤â¤Î¤Ç¤¹¡£ P/ECE¤°¤é¤¤¤Îµ¬ÌϤδĶ­¤Ë¤Ï¡¢¤³¤ì¤°¤é¤¤´ÊÁǤʼÂÁõ¤Ç½¼Ê¬¤Ê¤Î¤Ç¤Ï¤Ê¤¤¤«¤Ê¤¡¡¢¤È»×¤¤¤Þ¤·¤¿¡£ ¡¦¡¦¡¦¤È¡¢¼ÂÁõ¤·¤Æ¤ß¤Æ¤«¤éP/ECE¥«¡¼¥Í¥ë¥½¡¼¥¹¤ÎŸ³«¥ë¡¼¥Á¥ó¤òÆɤßÊÖ¤¹¤È¡¢¿Þ¤é¤º¤â»÷¤¿´¶¤¸¤Ë¤Ê¤Ã¤Æ¤Þ¤¹¤Í¡£ ¹Í¤¨¤ë¤³¤È¤ÏƱ¤¸¤Ç¤¹¤Í¤§(^^; ¡Ê³¤­¤Þ¤¹¡Ä¡Ë ---------------------------------------------------------------------------------------------------- 2004/03/14Äɵ­: ¡¦¥Ð¥°½¤Àµ¤·¤Þ¤·¤¿¡£ ¡¡Â礭¤Ê°µ½Ì¥Ç¡¼¥¿¤òŸ³«¤¹¤ë¤È¡¢Å¸³«½èÍý¤Ë¼ºÇÔ¤·¤Æ¤·¤Þ¤Ã¤Æ¤¤¤¿¥Ð¥°¤ò½¤Àµ¤·¤Þ¤·¤¿¡£ ¡¦ºî¶ÈÍÑ¥á¥â¥ê¥µ¥¤¥º¤òÄ´À°¤·¤Þ¤·¤¿¡£ ¡¡ºòÆü¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ï¡¢¥Ï¥Õ¥Þ¥óÌÚºîÀ®¤Î¤¿¤á¤Ë8¥­¥í¥Ð¥¤¥È¤Îºî¶ÈÍÑ¥á¥â¥ê¤ò³ÎÊݤ·¤Æ¤¤¤Þ¤·¤¿¡£ ¡¡¤¤¤¯¤Ä¤«¤Î°µ½Ì¥Ç¡¼¥¿¤ò»î¤·¤Æ¤ß¤¿¤È¤³¤í¡¢¼ÂºÝ¤Ë»È¤ï¤ì¤Æ¤¤¤ë¤Î¤Ï¤½¤Î1/6ÄøÅ٤Ǥ·¤¿¡£ ¡¡¤Á¤ç¤Ã¤È;͵¤¬¤¢¤ê¤¹¤®¤ë¤Î¤Ç¡¢ºî¶ÈÍÑ¥á¥â¥ê¤òȾʬ¤Î4¥­¥í¥Ð¥¤¥È¤Ë¸º¤é¤·¤Æ¤ß¤Þ¤·¤¿¡£ ¡¡¤Þ¤À3ÇÜÄøÅÙ¤Î;͵¤¬¤¢¤ê¤Þ¤¹¤«¤é¡¢¤¿¤Ö¤óÂç¾æÉפÀ¤È¤Ï»×¤¤¤Þ¤¹¤¬¡¢¤Á¤ç¤Ã¤ÈÃí°Õ¤¬É¬ÍפǤ¹¡£ ¡¡¥ª¥ê¥¸¥Ê¥ë¤ÎZlib¤Ç¤â¡¢¥Ï¥Õ¥Þ¥óÌÚºîÀ®¤Î¤¿¤á¤Îºî¶ÈÍÑ¥á¥â¥ê¥µ¥¤¥º¤Ï¡¢¼Â¸³¤Ç·è¤á¤Æ¤¤¤ë¤è¤¦¤Ç¤¹¡£ ¡¡ºî¶ÈÍÑ¥á¥â¥ê¤ÎºÇÂçɬÍ×¥µ¥¤¥º¤Ï¡¢ÍýÏÀ¤Çµá¤á¤é¤ì¤Ê¤¤¤ß¤¿¤¤¤Ç¤¹¡£ ¥À¥¦¥ó¥í¡¼¥É¤Ï¤³¤Á¤é¡§ http://www.piece-me.org/archive/pzltest-20040314-piece.zip http://www.piece-me.org/archive/pzltest-20040314-win32.zip ---------------------------------------------------------------------------------------------------- * Tue Dec 23 08:00:00 JST 2003 Naoyuki Sawa - ¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¤Î¸íÆ°ºî#4 ¡ÊÁ°²ó¤«¤é¤Î³¤­¡Ä¡Ë °ú¤­Â³¤­¡¢¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¤ÎľÁ°¤Ë¥á¥â¥ê¥¢¥¯¥»¥¹Ì¿Îá¤òÃÖ¤¤¤¿¾ì¹ç¤Î¡¢¸íÆ°ºî¤Î̵ͭ¤ò¼Â¸³¤·¤Þ¤¹¡£ Á°¡¹²ó¤Ï¡Öjp.d %rb¡×¡¢Á°²ó¤Ï¡Öcall.d %rb¡×¡Öret.d¡×¤Ë¤Ä¤¤¤ÆÄ´¤Ù¤Þ¤·¤¿¡£ º£²ó¤Ï¡¢»Ä¤ê¤Î¡Öjp.d sign8¡×¡Öjr.d sign8¡×¡Öcall.d sign8¡×¤Ë¤Ä¤¤¤ÆÄ´¤Ù¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡û¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá ¡¡¡¡¡¡¡¡ 1. jp.d sign8 ¡¡¡¡¡¡¡¡ 2. jr.d sign8 ¡¡¡¡¡¡¡¡ 3. call.d sign8 ¡¡¡¡¡¡¡¡¡û¥á¥â¥ê¥¢¥¯¥»¥¹Ì¿Îá ¡¡¡¡¡¡¡¡ 1. ld.b [%rb], %rs ¡¡¡¡¡¡¡¡ 2. ld.ub [%rb], %rs ¡¡¡¡¡¡¡¡ 3. ld.h [%rb], %rs ¡¡¡¡¡¡¡¡ 4. ld.uh [%rb], %rs ¡¡¡¡¡¡¡¡ 5. ld.w [%rb], %rs ¡¡¡¡¡¡¡¡ 6. ld.b %rd, [%rb] ¡¡¡¡¡¡¡¡ 7. ld.h %rd, [%rb] ¡¡¡¡¡¡¡¡ 8. ld.w %rd, [%rb] ¡¡¡¡¡¡¡¡¡ûʬ´ô¸µ¡¦Ê¬´ôÀè ¡¡¡¡¡¡¡¡ 1. ¹â®RAM ¡¡¡¡¡¡¡¡ 2. SRAM ¡¡¡¡¡¡¡¡¡û¥á¥â¥ê¥¢¥¯¥»¥¹Àè ¡¡¡¡¡¡¡¡ 1. ¹â®RAM ¡¡¡¡¡¡¡¡ 2. SRAM Á°²ó¤Þ¤Ç¤È°Û¤Ê¤ê¡¢Ê¬´ô¸µ¤Èʬ´ôÀè¤Î¥á¥â¥ê¤Î¼ïÎब°ã¤¦¥Ñ¥¿¡¼¥ó¤Ë¤Ä¤¤¤Æ¤Ï¼Â¸³¤·¤Æ¤¤¤Þ¤»¤ó¡£ ¡Öjp.d sign8¡×¡Öjr.d sign8¡×¡Öcall.d sign8¡×¤ÏÁ°¸å256¥Ð¥¤¥È¤Þ¤Ç¤ÎÈϰϤˤ·¤«Ê¬´ô¤Ç¤­¤Ê¤¤¤¿¤á¡¢ ¹â®RAM(0x0000¡Á0x1fff)¤«¤éSRAM(0x100000¡Á0x13ffff)¤Ø¡¢¤¢¤ë¤¤¤ÏSRAM¤«¤é¹â®RAM¤Ø¤Ï¡¢±ó¤¹¤®¤Æʬ´ô¤Ç¤­¤Ê¤¤¤«¤é¤Ç¤¹¡£ ¡Ê¡Öext¡×Ì¿Îá¤ÈÁȤ߹ç¤ï¤»¤ì¤ÐÁ°¸å256¥Ð¥¤¥È°Ê¾å¤ÎÈϰϤËʬ´ô¤Ç¤­¤Þ¤¹¤¬¡¢¥á¥â¥ê¥¢¥¯¥»¥¹Ì¿Îá¤È¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¤Î´Ö¤Ë¡Öext¡×Ì¿Î᤬Æþ¤ê¤Þ¤¹¡£ ¡¡¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¤ÎľÁ°¤Ë¥á¥â¥ê¥¢¥¯¥»¥¹Ì¿Î᤬¤¢¤ë¾õ¶·¤À¤±¤ò¥Æ¥¹¥È¤·¤Æ¤¤¤ë¤Î¤Ç¡¢¡Öext¡×Ì¿Îá¤ò¶´¤à¥±¡¼¥¹¤Ïº£²ó¤Ï½ü³°¤¹¤ë¤³¤È¤Ë¤·¤Þ¤·¤¿¡£¡Ë ¸¡¾ÚÍÑ¥×¥í¥°¥é¥à¤Ï¤³¤Á¤é¡§ ¡¡¡¡¡¡¡¡¡Öjp.d sign8¡×¡¡¡¡¡¡ http://www.piece-me.org/archive/delyerr4-20031223.zip ¡¡¡¡¡¡¡¡¡Öjr.d sign8¡× http://www.piece-me.org/archive/delyerr5-20031223.zip ¡¡¡¡¡¡¡¡¡Öcall.d sign8¡×¡¡¡¡ http://www.piece-me.org/archive/delyerr6-20031223.zip ¸¡¾ÚÍÑ¥×¥í¥°¥é¥à¤Î·ë²Ì½ÐÎÏ¥Õ¥¡¥¤¥ë(À¸¤ÎCSV·Á¼°)¤Ï¤³¤Á¤é¡§ ¡¡¡¡¡¡¡¡¡Öjp.d sign8¡×¡¡¡¡¡¡ http://www.piece-me.org/piece-lab/delyerr4-20031223-result.csv ¡¡¡¡¡¡¡¡¡Öjr.d sign8¡× http://www.piece-me.org/piece-lab/delyerr5-20031223-result.csv ¡¡¡¡¡¡¡¡¡Öcall.d sign8¡×¡¡¡¡ http://www.piece-me.org/piece-lab/delyerr6-20031223-result.csv ½ÐÎÏ·ë²Ì¥Õ¥¡¥¤¥ë¤òÆɤߤ䤹¤¤¤è¤¦¤Ë²Ã¹©¤·¤Æ¤ß¤¿¤Î¤¬¤³¤Á¤é¡§ ¡¡¡¡¡¡¡¡¡Öjp.d sign8¡×¡¡¡¡¡¡ http://www.piece-me.org/piece-lab/delyerr4-20031223-kekka.csv ¡¡¡¡¡¡¡¡¡Öjr.d sign8¡× http://www.piece-me.org/piece-lab/delyerr5-20031223-kekka.csv ¡¡¡¡¡¡¡¡¡Öcall.d sign8¡×¡¡¡¡ http://www.piece-me.org/piece-lab/delyerr6-20031223-kekka.csv ·ë²Ì¡¢ ¡¡¡¡¡¡¡¡-------------------------------- ¡¡¡¡¡¡¡¡Á´¤Æ¤ÎÁȤ߹ç¤ï¤»¤Ç¡¢¸íÆ°ºî̵¤·¡ª ¡¡¡¡¡¡¡¡-------------------------------- ¡Öjp.d sign8¡×¡Öjr.d sign8¡×¡Öcall.d sign8¡×¤Ï¤¤¤º¤ì¤âÈó¾ï¤Ë»ÈÍÑÉÑÅ٤ι⤤¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¤Ç¡¢¤³¤ì¤Þ¤Ç¤Ë¤â¿ÍѤ·¤Æ¤¤¤Þ¤¹¡£ ¤³¤ì¤Þ¤Ç¤Î»ÈÍѤˤª¤¤¤ÆÆäËÌäÂê¤ÏȯÀ¸¤·¤Æ¤¤¤Ê¤«¤Ã¤¿¤Î¤Ç¡¢¸íÆ°ºî¾ò·ï¤¬Â¸ºß¤·¤Ê¤¤¤Î¤âͽÁÛÄ̤ê¤Ç¤·¤¿¡£ -------------------------------------------------------------------------------------------------- °Ê¾å¡¢»Í²ó¤ËÅϤäơ¢¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¤Î¸íÆ°ºî¾ò·ï¤òÄ´¤Ù¤Æ¤­¤Þ¤·¤¿¡£ ¤Þ¤ÀÁ´¤Æ¤Î¥á¥â¥ê¥¢¥¯¥»¥¹Ì¿Îá¤äÁ´¤Æ¤Î¾ò·ï¤ÎÁȤ߹ç¤ï¤»¤ò»î¤·¤¿¤ï¤±¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¤¬¡¢¤È¤ê¤¢¤¨¤º¤³¤³¤ÇÁí³ç¤·¤Æ¤ß¤Þ¤¹¡£ ·ë¶É¡¢¥Þ¥Ë¥å¥¢¥ë¤Ëµ­ºÜ¤µ¤ì¤Æ¤¤¤Ê¤¤¸íÆ°ºî¾ò·ï¤¬Â¸ºß¤¹¤ë¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¤Ï¡¢¡Öjp.d %rb¡×¤À¤±¤Ç¤·¤¿¡£ ¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¤ò»È¤Ã¤Æ¥×¥í¥°¥é¥à¤òºÇŬ²½¤¹¤ë¾ì¹ç¤Ë¡¢Ãí°Õ¤·¤Ê¤±¤ì¤Ð¤¤¤±¤Ê¤¤¥ë¡¼¥ë¤Ï¼¡¤ÎÄ̤ê¤Ç¤¹¡§ ¡¡¡¡¡¡¡¡¡Ø¡Öjp.d %rb¡×Ì¿Îá¤ÎľÁ°¤Ë¥á¥â¥ê¥¢¥¯¥»¥¹Ì¿Îá¤òÃÖ¤¤¤Æ¤Ï¤¤¤±¤Ê¤¤¡Ù ¤È¤ê¤¢¤¨¤º¤³¤Î¥ë¡¼¥ë¤Ë½¾¤Ã¤Æ¤ª¤±¤Ð¡¢¸íÆ°ºî¤¹¤ë¤³¤È¤Ï¤Ê¤¤¤È»×¤¤¤Þ¤¹¡£ ¤è¤ê¾Ü¤·¤¤¸íÆ°ºî¾ò·ï¤Ë¤Ä¤¤¤Æ¤Ï¡¢Á°¡¹²ó¤Î¸¦µæµ­Ï¿¡Ø¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¤Î¸íÆ°ºî#2¡Ù¤ò¤´»²¾È¤¯¤À¤µ¤¤¡£ ¤³¤Î¥ë¡¼¥ë¡¢S1C33209 CPU¤Î¥Þ¥Ë¥å¥¢¥ë¤Ë¤ÏºÜ¤Ã¤Æ¤¤¤Þ¤»¤ó¡£ ¥Þ¥Ë¥å¥¢¥ë¤Îµ­ºÜϳ¤ì¤«¡¢¤¢¤ë¤¤¤ÏÁÛÄê³°¤Î¸íÆ°ºî¤Ê¤Î¤«¡¦¡¦¡¦¤¤¤º¤ì¤Ë¤»¤è¡¢´í¸±ÅÙ¡ÖÂç¡×¤Ç¤¹¡£ * Mon Dec 22 22:00:00 JST 2003 Naoyuki Sawa - ¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¤Î¸íÆ°ºî#3 ¡ÊÁ°²ó¤«¤é¤Î³¤­¡Ä¡Ë Á°²ó¤Ï¡¢¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¡Öjp.d %rb¡×¤ÎľÁ°¤Ë¥á¥â¥ê¥¢¥¯¥»¥¹Ì¿Îá¤òÃÖ¤¤¤¿¾ì¹ç¤Î¡¢¸íÆ°ºî¤Î̵ͭ¤ò¼Â¸³¤·¤Þ¤·¤¿¡£ ¤½¤Î·ë²Ì¡¢¤¤¤¯¤Ä¤«¤ÎÁȤ߹ç¤ï¤»¤Ç¸íÆ°ºî¤¹¤ë¤³¤È¤¬¤ï¤«¤ê¡¢ ¡Ø¡Öjp.d %rb¡×Ì¿Îá¤ÎľÁ°¤Ë¥á¥â¥ê¥¢¥¯¥»¥¹Ì¿Îá¤òÃÖ¤¤¤Æ¤Ï¤¤¤±¤Ê¤¤¡Ù ¤È¤¤¤¦·ëÏÀ¤¬ÆÀ¤é¤ì¤Þ¤·¤¿¡£ º£²ó¤Ï¡¢¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¡Öcall.d %rb¡×¤È¡Öret.d¡×¤Ë¤Ä¤¤¤Æ¡¢Æ±Íͤ˼¸³¤·¤Æ¤ß¤ë¤³¤È¤Ë¤·¤Þ¤¹¡£ Á°²ó¼Â¸³¤·¤¿¡Öjp.d %rb¡×Ì¿Îá¡¢¼Â¤Ï¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¤ÎÃæ¤Ç¤Ï¤¤¤Á¤Ð¤ó»ÈÍÑÉÑÅÙ¤¬Ä㤤¤Ç¤¹¡£ ¡Öjp %rb¡×¤ò»È¤¦¾ìÌ̤ϥơ¼¥Ö¥ë¥¸¥ã¥ó¥×½èÍý¤°¤é¤¤¤·¤«¤Ê¤¯¡¢C¸À¸ì¤Ç¤Ïswitchʸ¤ËÁêÅö¤·¤Þ¤¹¡£ switchʸ¤Î¼Â¹ÔÀ­Ç½¤¬¥×¥í¥°¥é¥àÁ´ÂΤÎÀ­Ç½¤ËÂ礭¤¯±Æ¶Á¤¹¤ë¤è¤¦¤Ê¥±¡¼¥¹¤Ï¡¢Èæ³ÓŪ¾¯¤Ê¤¤¤È»×¤¤¤Þ¤¹¡£ ½¾¤Ã¤Æ¡¢¡Öjp %rb¡×¤ò¡Öjp.d %rb¡×¤ËÃÖ¤­´¹¤¨¤Æ¤Þ¤Ç½èÍý®ÅÙ¤ò²Ô¤°¤è¤¦¤Ê¾ìÌ̤⡢¤¢¤Þ¤ê¤Ê¤¤¤È»×¤¦¤«¤é¤Ç¤¹¡£ ¡Öjp.d %rb¡×¤Ë³Ó¤Ù¤Æ¡¢¡Öcall.d %rb¡×¤È¡Öret.d¡×¤Î»ÈÍÑÉÑÅ٤ϤϤ뤫¤Ë¹â¤¤¤Ç¤¹¡£ ¡Öcall.d %rb¡×¤Ï´Ø¿ô¥Ý¥¤¥ó¥¿¸Æ¤Ó½Ð¤·¤Ë¸Â¤é¤º¡¢ÉÑÈˤ˻Ȥ¦´Ø¿ô¤Î¥¢¥É¥ì¥¹¤ò¥ì¥¸¥¹¥¿¤ËÊÝ»ý¤¹¤ë¤è¤¦¤Ê¥±¡¼¥¹¤ÇÉѽФ·¤Þ¤¹¡£ ¡Öret.d¡×¤Ï¡¦¡¦¡¦¼Â¤ÏËͤϤ¢¤Þ¤ê»È¤Ã¤Æ¤¤¤Ê¤¤¤Î¤Ç¤¹¤¬¡¢EPSON¼Ò½ãÀµ¥é¥¤¥Ö¥é¥ê¤Î½ü»»¥ë¡¼¥Á¥ó¤¬¤³¤ì¤òÍ­¸ú³èÍѤ·¤Æ¤¤¤Þ¤¹¡£ °ÊÁ°¤Î¸¦µæµ­Ï¿¡Ø¼Â¤Ï¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¡Ù¤Î²ó¤ò¤´»²¾È¤¯¤À¤µ¤¤¡£ ¤È¤¤¤¦¤ï¤±¤Ç¡¢¡Öcall.d %rb¡×¡Öret.d¡×¤ÎľÁ°¤Ë¥á¥â¥ê¥¢¥¯¥»¥¹Ì¿Îá¤òÃÖ¤¤¤¿¾ì¹ç¤Î¡¢¸íÆ°ºî¤Î̵ͭ¤ò¼Â¸³¤·¤Æ¤ß¤Þ¤·¤¿¡£ ¡¡¡¡¡¡¡¡¡û¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá ¡¡¡¡¡¡¡¡ 1. call.d %rb ¡¡¡¡¡¡¡¡ 2. ret.d ¡¡¡¡¡¡¡¡¡û¥á¥â¥ê¥¢¥¯¥»¥¹Ì¿Îá ¡¡¡¡¡¡¡¡ 1. ld.b [%rb], %rs ¡¡¡¡¡¡¡¡ 2. ld.ub [%rb], %rs ¡¡¡¡¡¡¡¡ 3. ld.h [%rb], %rs ¡¡¡¡¡¡¡¡ 4. ld.uh [%rb], %rs ¡¡¡¡¡¡¡¡ 5. ld.w [%rb], %rs ¡¡¡¡¡¡¡¡ 6. ld.b %rd, [%rb] ¡¡¡¡¡¡¡¡ 7. ld.h %rd, [%rb] ¡¡¡¡¡¡¡¡ 8. ld.w %rd, [%rb] ¡¡¡¡¡¡¡¡¡ûʬ´ô¸µ ¡¡¡¡¡¡¡¡ 1. ¹â®RAM ¡¡¡¡¡¡¡¡ 2. SRAM ¡¡¡¡¡¡¡¡¡ûʬ´ôÀè ¡¡¡¡¡¡¡¡ 1. ¹â®RAM ¡¡¡¡¡¡¡¡ 2. SRAM ¡¡¡¡¡¡¡¡¡û¥á¥â¥ê¥¢¥¯¥»¥¹Àè ¡¡¡¡¡¡¡¡ 1. ¹â®RAM ¡¡¡¡¡¡¡¡ 2. SRAM ¸¡¾ÚÍÑ¥×¥í¥°¥é¥à¤Ï¤³¤Á¤é¡§ ¡¡¡¡¡¡¡¡¡Öcall.d %rb¡× http://www.piece-me.org/archive/delyerr2-20031222.zip ¡¡¡¡¡¡¡¡¡Öret.d¡×¡¡¡¡¡¡http://www.piece-me.org/archive/delyerr3-20031222.zip ¸¡¾ÚÍÑ¥×¥í¥°¥é¥à¤Î·ë²Ì½ÐÎÏ¥Õ¥¡¥¤¥ë(À¸¤ÎCSV·Á¼°)¤Ï¤³¤Á¤é¡§ ¡¡¡¡¡¡¡¡¡Öcall.d %rb¡× http://www.piece-me.org/piece-lab/delyerr2-20031222-result.csv ¡¡¡¡¡¡¡¡¡Öret.d¡×¡¡¡¡¡¡http://www.piece-me.org/piece-lab/delyerr3-20031222-result.csv ½ÐÎÏ·ë²Ì¥Õ¥¡¥¤¥ë¤òÆɤߤ䤹¤¤¤è¤¦¤Ë²Ã¹©¤·¤Æ¤ß¤¿¤Î¤¬¤³¤Á¤é¡§ ¡¡¡¡¡¡¡¡¡Öcall.d %rb¡× http://www.piece-me.org/piece-lab/delyerr2-20031222-kekka.csv ¡¡¡¡¡¡¡¡¡Öret.d¡×¡¡¡¡¡¡http://www.piece-me.org/piece-lab/delyerr3-20031222-kekka.csv ·ë²Ì¡¢ ¡¡¡¡¡¡¡¡-------------------------------- ¡¡¡¡¡¡¡¡Á´¤Æ¤ÎÁȤ߹ç¤ï¤»¤Ç¡¢¸íÆ°ºî̵¤·¡ª ¡¡¡¡¡¡¡¡-------------------------------- ¡Ê¤Þ¤À¥á¥â¥ê¥¢¥¯¥»¥¹Ì¿Îá¡Öpushn %rs¡×¡Öpopn %rd¡×¤È¤ÎÁȤ߹ç¤ï¤»¤ò»î¤·¤Æ¤¤¤Þ¤»¤¬¡¢Â¿Ê¬Âç¾æÉפ¸¤ã¤Ê¤¤¤«¤Ê¡©¤È»×¤¤¤Þ¤¹¡£¡Ë ¤³¤ì¤Ï½õ¤«¤ê¤Þ¤·¤¿¡ª Á°½Ò¤ÎÄ̤ꡢ¼êºî¶È¤ÇºÇŬ²½¤ò¹Ô¤¦¾ì¹ç¤Ë¡Öcall.d %rb¡×¡Öret.d¡×¤ò»È¤¦¥±¡¼¥¹¤Ï¡¢¡Öjp.d %rb¡×¤è¤ê¤â¤º¤Ã¤È¿¤¤¤Ç¤¹¡£ ¡Öcall.d %rb¡×¤È¡Öret.d¡×¤Ë¸íÆ°ºî¾ò·ï¤¬¤¢¤Ã¤¿¤é¡¢¤«¤Ê¤ê¥ä¥Ð¥¤¤³¤È¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤È¤³¤í¤Ç¤·¤¿¡£ ¡¡¡¡¡¡¡¡¡Ø¡Öcall.d %rb¡×¡Öret.d¡×¤Î»ÈÍѤˤª¤¤¤Æ¤Ï¡¢»ÅÍͳ°¤Î¸íÆ°ºî¤ò¿´ÇÛ¤¹¤ëɬÍפϤ¢¤ê¤Þ¤»¤ó¡Ù ¤µ¤Æ¡¢»Ä¤ë¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¤Ï¡Öjp.d sign8¡×¡Öjr.d sign8¡×¡Öcall.d sign8¡×¤Ç¤¹¡£ ¤³¤ì¤é¤ÎÌ¿Îá¤âÈó¾ï¤Ë»ÈÍÑÉÑÅÙ¤¬¹â¤¤¤Ç¤¹¤¬¡¢¤³¤ì¤Þ¤Ç¤Ë¤µ¤ó¤¶¤ó»È¤Ã¤ÆÆäËÌäÂ꤬½Ð¤Æ¤¤¤Ê¤¤¤Î¤Ç¡¢Â¿Ê¬Âç¾æÉפÀ¤È»×¤¤¤Þ¤¹¡£ ¼¡²ó¡¢¼Â¸³Í½Äê¤Ç¤¹¡£ (³¤­¤Þ¤¹¡Ä) * Sat Dec 20 12:00:00 JST 2003 Naoyuki Sawa - ¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¤Î¸íÆ°ºî#2 ¡ÊÁ°²ó¤«¤é¤Î³¤­¡Ä¡Ë ²¿Ä̤꤫¤Î¥Ñ¥¿¡¼¥ó¤Ç¸¡¾Ú¤ò¹Ô¤Ã¤Æ¤ß¤¿¤È¤³¤í¡¢¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Î᤬¸íÆ°ºî¤¹¤ë¾ò·ï¤¬¤ª¤Ü¤í¤²¤Ë¸«¤¨¤Æ¤­¤Þ¤·¤¿¡£ ¤½¤Î¾ò·ï¤È¤Ï¡¢¤ª¤ª¤è¤½¼¡¤Î¤è¤¦¤Ê¤â¤Î¤Ç¤¹¡£ ¡¡¡¡¡¡¡¡¡Ø¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¤ÎľÁ°¤Ë¥á¥â¥ê¥¢¥¯¥»¥¹Ì¿Î᤬¤¢¤ë¤È¡¢¥Ç¥£¥ì¥¤¥ÉÌ¿Î᤬¼Â¹Ô¤µ¤ì¤Ê¤¤¤³¤È¤¬¤¢¤ë¡Ù Á°²ó¤Ï¥¤¥ó¥¿¡¼¥í¥Ã¥¯¾ò·ï¤Ë¤Ä¤¤¤Æ¾Ü¤·¤¯¿¨¤ì¤Þ¤·¤¿¤¬¡¢¤É¤¦¤ä¤é¥¤¥ó¥¿¡¼¥í¥Ã¥¯¤Î̵ͭ¤Ï´Ø·¸¤Ê¤¤´¶¤¸¤Ç¤¹¡£ Î㤨¤Ð¡¢¼¡¤Î¤è¤¦¤Ê¥³¡¼¥É¤ò¹â®RAM¤ËÃÖ¤¤¤Æ¼Â¹Ô¤·¤¿¾ì¹ç¤Ë¤â¸íÆ°ºî¤È¤Ê¤ê¡¢¥Ç¥£¥ì¥¤¥ÉÌ¿Î᤬¼Â¹Ô¤µ¤ì¤Þ¤»¤ó¡£ ¡¡¡¡¡¡¡¡; ¤¢¤é¤«¤¸¤á%r10¤Ëʬ´ôÀ襢¥É¥ì¥¹¤¬Æþ¤Ã¤Æ¤¤¤ë¤â¤Î¤È¤·¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡xld.w %r4, 0x100000 ¡¡¡¡¡¡¡¡xld.w %r5, [%r4+100]¡¡; ľÁ°¤Ë¥á¥â¥ê¥¢¥¯¥»¥¹Ì¿Î᤬¤¢¤ë¤È¡Ä ¡¡¡¡¡¡¡¡jp.d %r10¡¡¡¡¡¡¡¡¡¡¡¡ ; ¥¤¥ó¥¿¡¼¥í¥Ã¥¯¤·¤Æ¤¤¤Ê¤¯¤Æ¤â¡Ä ¡¡¡¡¡¡¡¡add %r6, 1¡¡¡¡¡¡¡¡¡¡¡¡; ¡ú¼Â¹Ô¤µ¤ì¤Ê¤¤!!¡ú ͽÁ۰ʾå¤Ë¡¢¸íÆ°ºî¤Î±Æ¶Á¤ò¼õ¤±¤ëÈϰϤ¬¹­¤¤¤è¤¦¤Êµ¤¤¬¤·¤Æ¤­¤Þ¤·¤¿¡£ ¤³¤ì¤Ï¾ÜºÙ¤Ë¸¡¾Ú¤·¤Æ¤ß¤ëɬÍפ¬¤¢¤ê¤½¤¦¤Ç¤¹¡£ ¤½¤ì¤Ç¤Ï¡¢¤É¤ì¤°¤é¤¤¤Î¥Ñ¥¿¡¼¥ó¤ò¸¡¾Ú¤¹¤ëɬÍפ¬¤¢¤ë¤Î¤Ç¤·¤ç¤¦¤«¡© ¾¯¤Ê¤¯¸«ÀѤâ¤Ã¤Æ¤â¡¢¼¡¤Ëµó¤²¤ë¤°¤é¤¤¤Î¸¡¾Ú¤ÏɬÍפ½¤¦¤Ç¤¹¡£ ¡¡¡¡¡¡¡¡¡û¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá ¡¡¡¡¡¡¡¡ 1. jp.d %rb ¡¡¡¡¡¡¡¡ 2. call.d %rb ¡¡¡¡¡¡¡¡ 3. ret.d ¡¡¡¡¡¡¡¡ 4. jp.d sign8 ¡¡¡¡¡¡¡¡ 5. jr.d sign8 ¡¡¡¡¡¡¡¡ 6. call.d sign8 ¡¡¡¡¡¡¡¡¡û¥á¥â¥ê¥¢¥¯¥»¥¹Ì¿Îá ¡¡¡¡¡¡¡¡ 1. ld.b [%rb], %rs ¡¡¡¡¡¡¡¡ 2. ld.ub [%rb], %rs ¡¡¡¡¡¡¡¡ 3. ld.h [%rb], %rs ¡¡¡¡¡¡¡¡ 4. ld.uh [%rb], %rs ¡¡¡¡¡¡¡¡ 5. ld.w [%rb], %rs ¡¡¡¡¡¡¡¡ 6. ld.b %rd, [%rb] ¡¡¡¡¡¡¡¡ 7. ld.h %rd, [%rb] ¡¡¡¡¡¡¡¡ 8. ld.w %rd, [%rb] ¡¡¡¡¡¡¡¡ 9. pushn %rs ¡¡¡¡¡¡¡¡10. popn %rd ¡¡¡¡¡¡¡¡¡ûʬ´ô¸µ ¡¡¡¡¡¡¡¡ 1. ¹â®RAM ¡¡¡¡¡¡¡¡ 2. SRAM ¡¡¡¡¡¡¡¡¡ûʬ´ôÀè ¡¡¡¡¡¡¡¡ 1. ¹â®RAM ¡¡¡¡¡¡¡¡ 2. SRAM ¡¡¡¡¡¡¡¡¡û¥á¥â¥ê¥¢¥¯¥»¥¹Àè ¡¡¡¡¡¡¡¡ 1. ¹â®RAM ¡¡¡¡¡¡¡¡ 2. SRAM 6¡ß10¡ß2¡ß2¡ß2¡á480Ä̤ê¡Ä¤Á¤ç¤Ã¤Èµ¤¤¬±ó¤¯¤Ê¤Ã¤Æ¤­¤Þ¤·¤¿(^^; ¤µ¤é¤ËÍߤò¸À¤¨¤Ð¡¢ ¡¡¡¡¡¡¡¡¡¦³ÆÌ¿Î᤬extÌ¿Îá¤òȼ¤Ã¤Æ¤¤¤ë¤«Èݤ« ¡¡¡¡¡¡¡¡¡¦Ê¬´ôÀè¤ÎºÇ½é¤Ë¤¢¤ëÌ¿Îá¤Î¼ïÎà¤Ë¤è¤Ã¤Æ°ã¤¤¤Ï¤¢¤ë¤« Åù¤Î¾ò·ï¤âÊѤ¨¤Æ»î¤·¤Æ¤ß¤¿¤¤¤È¤³¤í¤Ç¤¹¡£ ¤Ç¤â¡¢¤¤¤­¤Ê¤êÁ´Éô¤Ï̵Íý¤½¤¦¤Ê¤Î¤Ç¡¢¤È¤ê¤¢¤¨¤ºº£²ó¤Ï¼¡¤ÎÁȤ߹ç¤ï¤»¤À¤±¸¡¾Ú¤·¤Æ¤ß¤ë¤³¤È¤Ë¤·¤Þ¤·¤¿¡£ ¡¡¡¡¡¡¡¡¡û¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá ¡¡¡¡¡¡¡¡ 1. jp.d %rb ¡¡¡¡¡¡¡¡¡û¥á¥â¥ê¥¢¥¯¥»¥¹Ì¿Îá ¡¡¡¡¡¡¡¡ 1. ld.b [%rb], %rs ¡¡¡¡¡¡¡¡ 2. ld.ub [%rb], %rs ¡¡¡¡¡¡¡¡ 3. ld.h [%rb], %rs ¡¡¡¡¡¡¡¡ 4. ld.uh [%rb], %rs ¡¡¡¡¡¡¡¡ 5. ld.w [%rb], %rs ¡¡¡¡¡¡¡¡ 6. ld.b %rd, [%rb] ¡¡¡¡¡¡¡¡ 7. ld.h %rd, [%rb] ¡¡¡¡¡¡¡¡ 8. ld.w %rd, [%rb] ¡¡¡¡¡¡¡¡¡ûʬ´ô¸µ ¡¡¡¡¡¡¡¡ 1. ¹â®RAM ¡¡¡¡¡¡¡¡ 2. SRAM ¡¡¡¡¡¡¡¡¡ûʬ´ôÀè ¡¡¡¡¡¡¡¡ 1. ¹â®RAM ¡¡¡¡¡¡¡¡ 2. SRAM ¡¡¡¡¡¡¡¡¡û¥á¥â¥ê¥¢¥¯¥»¥¹Àè ¡¡¡¡¡¡¡¡ 1. ¹â®RAM ¡¡¡¡¡¡¡¡ 2. SRAM 1¡ß8¡ß2¡ß2¡ß2¡á64Ä̤ꡣ ¤³¤ì¤À¤±¤Ç¤â¡¢¤¢¤ëÄøÅ٤η¹¸þ¤Ï¤Ä¤«¤á¤ë¤Î¤Ç¤Ï¤Ê¤¤¤«¤È»×¤¤¤Þ¤¹¡£ ¸¡¾ÚÍÑ¥×¥í¥°¥é¥à¤Ï¤³¤Á¤é¡§ ¡¡¡¡¡¡¡¡http://www.piece-me.org/archive/delyerr1-20031220.zip ¸¡¾ÚÍÑ¥×¥í¥°¥é¥à¤Î·ë²Ì½ÐÎÏ¥Õ¥¡¥¤¥ë(À¸¤ÎCSV·Á¼°)¤Ï¤³¤Á¤é¡§ ¡¡¡¡¡¡¡¡http://www.piece-me.org/piece-lab/delyerr1-20031220-result.csv ½ÐÎÏ·ë²Ì¥Õ¥¡¥¤¥ë¤òÆɤߤ䤹¤¤¤è¤¦¤Ë²Ã¹©¤·¤Æ¤ß¤¿¤Î¤¬¤³¤Á¤é¡§ ¡¡¡¡¡¡¡¡http://www.piece-me.org/piece-lab/delyerr1-20031220-kekka.csv Microsoft ExcelÅù¤Î¥¹¥×¥ì¥Ã¥É¥·¡¼¥È¥½¥Õ¥È¤ÇÆɤó¤Ç¤¯¤À¤µ¤¤¡£ ½ÐÎÏ·ë²Ì¤«¤é¡¢¤¤¤¯¤Ä¤«¤Î¥ë¡¼¥ë¤¬¸«¤Æ¼è¤ì¤Þ¤¹¡£ ---------------------------- ʬ´ôÀè¥á¥â¥ê¤Î¼ïÎà¤Ï´Ø·¸¤Ê¤¤ ---------------------------- ʬ´ôÀè¥á¥â¥ê¤Î¼ïÎà(¹â®RAM/SRAM)¤À¤±¤¬°Û¤Ê¤ê¡¢Â¾¤Î¾ò·ï¤¬Á´¤ÆƱ¤¸¥±¡¼¥¹¤Ç¤Ï¡¢É¬¤ºÆ±¤¸·ë²Ì¤È¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£ ʬ´ôÀè¥á¥â¥ê¤¬¹â®RAM¤Î¾ì¹ç¤ËÀµ¾ïÆ°ºî¤Ê¤é¡¢Ê¬´ôÀè¥á¥â¥ê¤òSRAM¤ËÊѤ¨¤Æ¤ß¤Æ¤âÀµ¾ïÆ°ºî¡£ ʬ´ôÀè¥á¥â¥ê¤¬¹â®RAM¤Î¾ì¹ç¤Ë¸íÆ°ºî¤Ê¤é¡¢Ê¬´ôÀè¥á¥â¥ê¤òSRAM¤ËÊѤ¨¤Æ¤ß¤Æ¤â¸íÆ°ºî¡£ ¤³¤Î¥ë¡¼¥ë¤«¤é¿ä¬¤¹¤ë¤È¡¢¤¿¤Ö¤óʬ´ôÀè¤ÎºÇ½é¤Ë¤¢¤ëÌ¿Îá¤Î¼ïÎà¤â´Ø·¸¤Ê¤¤¤ó¤¸¤ã¤Ê¤¤¤«¤Ê¡©¤È»×¤¤¤Þ¤¹¡£ -------------------------------- ¥á¥â¥ê¥¢¥¯¥»¥¹¤Î¥µ¥¤¥º¤Ï´Ø·¸¤Ê¤¤ -------------------------------- ¥á¥â¥ê¥¢¥¯¥»¥¹¤Î¥µ¥¤¥º(BYTE/UNSIGNED BYTE/HALF/UNSIGNED HALF/WORD)¤À¤±¤¬°Û¤Ê¤ê¡¢Â¾¤Î¾ò·ï¤¬Á´¤ÆƱ¤¸¥±¡¼¥¹¤Ç¤Ï¡¢É¬¤ºÆ±¤¸·ë²Ì¤È¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£ SRAM¤Ø¤Î¥á¥â¥ê¥¢¥¯¥»¥¹¤Î¾ì¹ç¡¢¥á¥â¥ê¥¢¥¯¥»¥¹¤Î¥µ¥¤¥º¤Ë¤è¤Ã¤Æ¥¿¥¤¥ß¥ó¥°¤¬°Û¤Ê¤ë¤Î¤Ç¤¹¤¬¡¢¤½¤ì¤Ï¸íÆ°ºî¤Î¾ò·ï¤Ë¤Ï´Ø·¸¤Ê¤¤¤è¤¦¤Ç¤¹¡£ ----------------------------------------- ʬ´ô¸µ¥á¥â¥ê¤¬¹â®RAM¤Ê¤é¡¢É¬¤º¸íÆ°ºî¤¹¤ë ----------------------------------------- º£²ó¤ÎºÇ½é¤ËÄ󼨤·¤¿¡¢¸íÆ°ºî¤¹¤ë¥³¡¼¥É¤Î¾ò·ï¤¬¤³¤ì¤ËÁêÅö¤·¤Þ¤¹¡£ ¹â®RAM¤ËžÁ÷¤·¤Æ»È¤¦¥×¥í¥°¥é¥à¤òºÇŬ²½¤¹¤ë¾ì¹ç¤Ï¡¢¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¤ÎľÁ°¤Ë¥á¥â¥ê¥¢¥¯¥»¥¹Ì¿Îá¤òÃÖ¤«¤Ê¤¤¤è¤¦¡¢Ãí°Õ¤·¤Ê¤±¤ì¤Ð¤¤¤±¤Þ¤»¤ó¡£ ---------------------------------------------------------------- ½ñ¤­¹þ¤ß¥¢¥¯¥»¥¹Àè¥á¥â¥ê¤Èʬ´ô¸µ¥á¥â¥ê¤¬¶¦¤ËSRAM¤Ê¤é¡¢¸íÆ°ºî¤¹¤ë ---------------------------------------------------------------- º£²ó¤Î¸¡¾Ú¤Ç¿·¤¿¤Ë¸«¤Ä¤±¤¿¸íÆ°ºî¾ò·ï¤Ç¤¹¡£ Î㤨¤Ð¡¢¼¡¤Î¤è¤¦¤Ê¥³¡¼¥É¤òSRAM¾å¤Ç¼Â¹Ô¤¹¤ë¤È¸íÆ°ºî¤·¡¢¥Ç¥£¥ì¥¤¥ÉÌ¿Î᤬¼Â¹Ô¤µ¤ì¤Þ¤»¤ó¡£ ¡¡¡¡¡¡¡¡; ¤¢¤é¤«¤¸¤á%r10¤Ëʬ´ôÀ襢¥É¥ì¥¹¤¬Æþ¤Ã¤Æ¤¤¤ë¤â¤Î¤È¤·¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡xld.w %r4, 0x130000¡¡ ; ¥¢¥¯¥»¥¹Àè¥á¥â¥ê¡áSRAM ¡¡¡¡¡¡¡¡xld.w [%r4], %r5¡¡¡¡¡¡; ¥á¥â¥ê¥¢¥¯¥»¥¹¡á½ñ¤­¹þ¤ß ¡¡¡¡¡¡¡¡jp.d %r10 ¡¡¡¡¡¡¡¡add %r6, 1¡¡¡¡¡¡¡¡¡¡¡¡; ¡ú¼Â¹Ô¤µ¤ì¤Ê¤¤!!¡ú ¤Ê¤ª¡¢¤³¤Î¥³¡¼¥É¤ò¹â®RAM¾å¤Ç¼Â¹Ô¤·¤¿¾ì¹ç¤ÏÁ°½Ð¤Î¾ò·ï¤Ë°ìÃפ·¡¢¤ä¤Ï¤ê¸íÆ°ºî¤·¤Þ¤¹¡£ ¤Ä¤Þ¤ê¡¢SRAM¤Ø¤Î½ñ¤­¹þ¤ß¤Îľ¸å¤Ë¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¤òÃÖ¤¤¤¿¾ì¹ç¤Ï¡¢¹â®RAM¤ËžÁ÷¤·¤Æ¼Â¹Ô¤¹¤ë¥×¥í¥°¥é¥à¤Ç¤Ê¤¯¤Æ¤â¸íÆ°ºî¤¹¤ë¡¢¤È¤¤¤¦¤³¤È¤Ç¤¹¡£ º£²ó¤Î¸¡¾Ú¤Î¤Þ¤È¤á¤Ç¤¹¡£ ½ÐÎÏ·ë²Ì¤ò¸«¤ë¤È¡¢¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¤ÎľÁ°¤Ë¥á¥â¥ê¥¢¥¯¥»¥¹Ì¿Îá¤òÃÖ¤¤¤Æ¤â¸íÆ°ºî¤·¤Ê¤¤¥±¡¼¥¹¤Ï¤¤¤¯¤Ä¤«Â¸ºß¤·¤Þ¤¹¡£ Î㤨¤Ð¡¢Ê¬´ô¸µ¥×¥í¥°¥é¥à¤¬SRAM¾å¤Ë¤¢¤ê¡¢¤«¤Ä¡¢Ä¾Á°¤Î¥á¥â¥ê¥¢¥¯¥»¥¹¤¬Æɤ߹þ¤ß¤Ê¤é¤Ð¡¢¸íÆ°ºî¤·¤Þ¤»¤ó¡£ ¤·¤«¤·¤Ê¤¬¤é¡¢ºÇ¸å¤Ëµó¤²¤¿¤è¤¦¤ÊÆüì¾ò·ï²¼¤Ç¸íÆ°ºî¤¹¤ë¥±¡¼¥¹¤¬¤¢¤ë¤¿¤á¡¢°ÂÁ´¤Î¤¿¤á¤Ë¤Ï¼¡¤Ë¼¨¤¹Ã±½ã¤Ê¥ë¡¼¥ë¤Ë½¾¤Ã¤Æ¤ª¤¯¤Î¤¬Îɤµ¤½¤¦¤Ç¤¹¡£ ¡¡¡¡¡¡¡¡¡Ø¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¤ÎľÁ°¤Ë¤Ï¥á¥â¥ê¥¢¥¯¥»¥¹Ì¿Îá¤òÃÖ¤«¤Ê¤¤¡Ù ¤µ¤Æ¡¢º£²ó¤Ï¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¡Öjp.d %d¡×¤Ë¤Ä¤¤¤Æ¤À¤±¼Â¸³¤·¤Þ¤·¤¿¤¬¡¢Â¾¤Î¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¡Öcall.d %rb¡×¤ä¡Öjr.d sign8¡×Åù¤Ç¤Ï¤É¤¦¤Ç¤·¤ç¤¦¤«¡© ¤³¤ì¤Þ¤Ç¤Î·Ð¸³¤«¤é¿ä¬¤¹¤ë¤È¡¢¡Öjr.d sign8¡×¤ÏľÁ°¤Ë¥á¥â¥ê¥¢¥¯¥»¥¹Ì¿Î᤬¤¢¤Ã¤Æ¤âÂç¾æÉפ½¤¦¤Êµ¤¤¬¤¹¤ë¤Î¤Ç¤¹¤¬¡¦¡¦¡¦ ¼¡²ó¤Ï¡¢¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¤Î¼ïÎà¤òÊѤ¨¤Æ»î¤·¤Æ¤ß¤è¤¦¤È»×¤¤¤Þ¤¹¡£ (³¤­¤Þ¤¹¡Ä) * Wed Dec 17 12:55:00 JST 2003 Naoyuki Sawa - ¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¤Î¸íÆ°ºî#1 ¡Ö¥¿¥ó¥¯¥Ð¥¿¥ê¥¢¥ó/EMU¡×¤Ë¤Æ¡¢6502¥¨¥ß¥å¥ì¡¼¥·¥ç¥ó¹â®²½¤Î¤¿¤á¤Ë¼êºî¶È¤Ç¥¢¥»¥ó¥Ö¥é¥×¥í¥°¥é¥à¤ÎºÇŬ²½¤ò¹Ô¤Ã¤¿¤Î¤Ç¤¹¤¬¡¢¼Â¤Ï¤«¤Ê¤ê¥Ï¥Þ¥ê¤Þ¤·¤¿¡£ ÌäÂê¤Î¸Ä½ê¤ÏÈæ³ÓŪ¾®¤µ¤Ê¥µ¥Ö¥ë¡¼¥Á¥ó¤Ç¡¢²¿ÅÙ¸«Ä¾¤·¤Æ¤â´Ö°ã¤Ã¤Æ¤¤¤Ê¤¤¤Ï¤º¤Ê¤Î¤Ë¡¢¤É¤¦¤ä¤Ã¤Æ¤â´üÂÔÄ̤ê¤ÎÆ°ºî¤ò¤·¤Ê¤¤¤Î¤Ç¤¹¡£ »ÈÍÑÉÑÅ٤ι⤤¥µ¥Ö¥ë¡¼¥Á¥ó¤À¤Ã¤¿¤Î¤Ç¹â®RAM¤ËžÁ÷¤·¤Æ¼Â¹Ô¤·¤Æ¤¤¤¿¤È¤³¤í¤ò¡¢»î¤·¤ËSRAM¤ËÌᤷ¤Æ¤ß¤ë¤È¤Ê¤¼¤«ÌäÂê¤Ê¤¯¼Â¹Ô¤Ç¤­¤Æ¤·¤Þ¤¦¡¦¡¦¡¦²¿¸Î¡© »¶¡¹Çº¤ó¤ÀËö¤Ë¡¢¤É¤¦¤ä¤é¸¶°ø¤é¤·¤­¤â¤Î¤¬ÄϤá¤Þ¤·¤¿¡£S1C33209 CPU¥³¥¢¤Î¡ú¸íÆ°ºî¡ú¡¢¤µ¤â¤Ê¤¯¤ÐCPU¥Þ¥Ë¥å¥¢¥ë¤Î¡úµ­ºÜϳ¤ì¡ú¤Ã¤Ý¤¤¤Ç¤¹¡£ º£²ó¤Ï¡¢¤³¤Î·ï¤Ë¤Ä¤¤¤Æµ­Ï¿¤·¤Æ¤ª¤³¤¦¤È»×¤¤¤Þ¤¹¡£ P/ECE¤ÎCPU S1C33209¤Ï¡¢Â¿¤¯¤Î°ìÈÌŪ¤ÊRISC¥×¥í¥»¥Ã¥µ¤ÈƱ¤¸¤¯¡¢¡Ö¥Ç¥£¥ì¥¤¥Éʬ´ôµ¡Ç½¡×¤òÈ÷¤¨¤Æ¤¤¤Þ¤¹¡£ ¥Ç¥£¥ì¥¤¥Éʬ´ôµ¡Ç½¤Ë¤Ä¤¤¤Æ¤Ï¡¢°ÊÁ°¤Î¸¦µæµ­Ï¿¡Ø¼Â¤Ï¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¡Ù¤Ç¤â¿¨¤ì¤Þ¤·¤¿¤Î¤Ç¡¢¤½¤Á¤é¤âÊ»¤»¤Æ¤´»²¾È¤¯¤À¤µ¤¤¡£ º£²óÌäÂê¤È¤Ê¤Ã¤¿¸Ä½ê¤Ï¡¢¼¡¤Î¤è¤¦¤Ê½èÍý¤ò¹Ô¤¦Éôʬ¤Ç¤·¤¿¡£(¢¨¤«¤Ê¤ê´Êά²½¤·¤Æ¤¤¤Þ¤¹) ¡¡¡¡¡¡¡¡¡Ø6502µ¡³£¸ìÌ¿Îá¤ò1¥Ð¥¤¥ÈÆɤ߹þ¤ß¡¢¤½¤ÎÆâÍƤˤè¤Ã¤Æʬ´ô¤¹¤ë¡Ù C¸À¸ì¤Ç½ñ¤¯¤È¡¢¤³¤ó¤Ê´¶¤¸¤Î½èÍý¤Ç¤¹¡£ -------------------------------------------------------------------------------------------------- ¡¡¡¡¡¡¡¡unsigned char* pc = ...; ¡¡¡¡¡¡¡¡switch(*pc++) { ¡¡¡¡¡¡¡¡case 0: ...; break; ¡¡¡¡¡¡¡¡case 1: ...; break; ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡... ¡¡¡¡¡¡¡¡case 9: ...; break; ¡¡¡¡¡¡¡¡} -------------------------------------------------------------------------------------------------- ¤³¤ì¤ò¥¢¥»¥ó¥Ö¥é¤Ç½ñ¤¯¤È¡¢¼¡¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£ -------------------------------------------------------------------------------------------------- 1|¡¡¡¡¡¡¡¡¡¡; 2|¡¡¡¡¡¡¡¡¡¡; %r0¥ì¥¸¥¹¥¿¤ËÊÑ¿ôpc¤¬³ä¤êÅö¤Æ¤é¤ì¤Æ¤¤¤ë¤â¤Î¤È¤·¤Þ¤¹¡£ 3|¡¡¡¡¡¡¡¡¡¡; 4|¡¡¡¡¡¡¡¡¡¡ld.ub %r1, [%r0]¡¡¡¡¡¡¡¡; code = *pc 5|¡¡¡¡¡¡¡¡¡¡xld.w %r2, TABLE¡¡¡¡¡¡¡¡; addr = TABLE[code] 6|¡¡¡¡¡¡¡¡¡¡sll %r1, 2 7|¡¡¡¡¡¡¡¡¡¡add %r1, %r2 8|¡¡¡¡¡¡¡¡¡¡ld.w %r3, [%r1] 9|¡¡¡¡¡¡¡¡¡¡jp.d %r3¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; goto addr 10|¡¡¡¡¡¡¡¡¡¡add %r0, 1¡¡¡¡¡¡¡¡¡¡¡¡¡¡; pc++ 11|¡¡¡¡¡¡¡¡¡¡ 12|¡¡TABLE:¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; switchÍÑ¥¸¥ã¥ó¥×¥Æ¡¼¥Ö¥ë 13|¡¡¡¡¡¡¡¡¡¡.word CASE0 14|¡¡¡¡¡¡¡¡¡¡.word CASE1 15|¡¡¡¡¡¡¡¡¡¡... 16|¡¡¡¡¡¡¡¡¡¡.word CASE9 17|¡¡¡¡¡¡¡¡ 18|¡¡CASE0: 19|¡¡¡¡¡¡¡¡¡¡...¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ ; code=0¤Î¾ì¹ç¤Î½èÍý 20|¡¡CASE1: 21|¡¡¡¡¡¡¡¡¡¡...¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ ; code=1¤Î¾ì¹ç¤Î½èÍý 22|¡¡¡¡¡¡¡¡¡¡... 23|¡¡CASE9: 24|¡¡¡¡¡¡¡¡¡¡...¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ ; code=9¤Î¾ì¹ç¤Î½èÍý -------------------------------------------------------------------------------------------------- ¢¨¤³¤ì°Ê¹ß¤ÎÀâÌÀ¤Ç¸Ä¡¹¤ÎÌ¿Îá¤Ë¤Ä¤¤¤Æ¼Â¹Ô¥µ¥¤¥¯¥ë¿ô¤òÄ´¤Ù¤Æ¹Ô¤­¤Þ¤¹¤¬¡¢¤È¤ê¤¢¤¨¤º¥á¥â¥ê¥¢¥¯¥»¥¹»þ¤Î¥¦¥§¥¤¥È¥µ¥¤¥¯¥ë¤Ï½ü³°¤·¤Æ¹Í¤¨¤Þ¤¹¡£ 9¡Á10¹ÔÌܤˤ´ÃíÌܤ¯¤À¤µ¤¤¡£ ¥Ç¥£¥ì¥¤¥Éʬ´ôµ¡Ç½¤ò»È¤Ã¤Æ¡¢¥¸¥ã¥ó¥×Ì¿Îá¤ò1¥µ¥¤¥¯¥ë¹â®²½¤·¤Æ¤¤¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡jp.d %r3¡¡¡¡¡¡¡¡; 1¥µ¥¤¥¯¥ë ¡¡¡¡¡¡¡¡add %r0, 1¡¡¡¡¡¡; 1¥µ¥¤¥¯¥ë ¤â¤·¥Ç¥£¥ì¥¤¥Éʬ´ôµ¡Ç½¤ò»È¤ï¤º¤ËÉáÄ̤˽ñ¤±¤Ð¡¢¼¡¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡add %r0, 1¡¡¡¡¡¡; 1¥µ¥¤¥¯¥ë ¡¡¡¡¡¡¡¡jp %r3¡¡¡¡¡¡¡¡¡¡; 2¥µ¥¤¥¯¥ë ½¾¤Ã¤Æ¡¢¥Ç¥£¥ì¥¤¥Éʬ´ôµ¡Ç½¤ò»È¤Ã¤¿Êý¤¬1¥µ¥¤¥¯¥ë®¤¯¤Ê¤ê¤Þ¤¹¡£ ¡¦¡¦¡¦¤È¸À¤¤¤¿¤¤¤È¤³¤í¤Ç¤¹¤¬¡¢¼Â¤Ï¤³¤Î¾ì¹ç¤Ë¸Â¤Ã¤Æ¸À¤¨¤Ð¡¢¥Ç¥£¥ì¥¤¥Éʬ´ôµ¡Ç½¤ò»È¤Ã¤¿¾ì¹ç¤È»È¤ï¤Ê¤¤¾ì¹ç¤Î¥µ¥¤¥¯¥ë¿ô¤ÏÊѤï¤é¤Ê¤¤¤Î¤Ç¤¹¡£ 8¡Á9¹ÔÌܤˤ´ÃíÌܤ¯¤À¤µ¤¤¡£ ¡¡¡¡¡¡¡¡08|¡¡¡¡¡¡¡¡ld.w %r3, [%r1] ¡¡¡¡¡¡¡¡09|¡¡¡¡¡¡¡¡jp.d %r3 8¹ÔÌܤǥá¥â¥ê¤«¤éÆɤ߹þ¤ó¤À%r3¤ÎÃͤò¡¢Ä¾¸å¤Ë9¹ÔÌܤΥ¸¥ã¥ó¥×Ì¿Îá¤ÇÈô¤ÓÀ襢¥É¥ì¥¹¤È¤·¤Æ»²¾È¤·¤Æ¤¤¤Þ¤¹¡£ S1C33209 CPU¤Ç¤Ï¤³¤Î¤è¤¦¤Ê½èÍý¤ò¹Ô¤Ã¤¿¾ì¹ç¤Ë¡Ö¥¤¥ó¥¿¡¼¥í¥Ã¥¯¡×¤È¸Æ¤Ð¤ì¤ëÃٱ䤬ȯÀ¸¤·¡¢Ì¿Îá¤Î¼Â¹Ô»þ´Ö¤¬1¥µ¥¤¥¯¥ëŤ¯¤Ê¤ë¤Î¤Ç¤¹¡£ ¾Ü¤·¤¯¤Ï¡ÖS1C33000¥³¥¢CPU¥Þ¥Ë¥å¥¢¥ë(33000Core-J.pdf)¡×34¥Ú¡¼¥¸¡Ø3.2 ¥×¥í¥°¥é¥à¼Â¹Ô¾õÂÖ (7) ¥¤¥ó¥¿¡¼¥í¥Ã¥¯¤Ë¤è¤ëÃÙ±ä¡Ù¤ò¤´»²¾È¤¯¤À¤µ¤¤¡£ ·ë¶É¡¢9¡Á10¹ÔÌܤÎËÜÅö¤Î¼Â¹Ô¥µ¥¤¥¯¥ë¿ô¤Ï¼¡¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡jp.d %r3¡¡¡¡¡¡¡¡; 1¥µ¥¤¥¯¥ë¡Ü1¥µ¥¤¥¯¥ë(¥¤¥ó¥¿¡¼¥í¥Ã¥¯) ¡¡¡¡¡¡¡¡add %r0, 1¡¡¡¡¡¡; 1¥µ¥¤¥¯¥ë ¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¤ò»È¤ï¤Ê¤¤¾ì¹ç¤Ï¡¢¥¸¥ã¥ó¥×Ì¿Îá¤Î¼Â¹Ô»þ´Ö¤¬1¥µ¥¤¥¯¥ëŤ¤Âå¤ï¤ê¤Ë¥¤¥ó¥¿¡¼¥í¥Ã¥¯¤ÏȯÀ¸¤»¤º¡¢ ¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¤ò»È¤Ã¤¿¾ì¹ç¤Ï¡¢¥¸¥ã¥ó¥×Ì¿Îá¤Î¼Â¹Ô»þ´Ö¤¬1¥µ¥¤¥¯¥ëû¤¤Âå¤ï¤ê¤Ë¥¤¥ó¥¿¡¼¥í¥Ã¥¯¤¬È¯À¸¤·¤Þ¤¹¡£ ½¾¤Ã¤Æ¤³¤Î¾ì¹ç¤Ë¸Â¤Ã¤Æ¸À¤¨¤Ð¡¢¤É¤Á¤é¤ÎÊýË¡¤ò»È¤Ã¤Æ¤âÁ´ÂΤΥµ¥¤¥¯¥ë¿ô¤Ï3¥µ¥¤¥¯¥ë¤È¤Ê¤ê¡¢¼Â¹Ô®ÅÙ¤ÏƱ¤¸¤Ç¤¹¡£ ¤Ç¤Ï¤Ê¤¼¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¤ò»È¤¦Êý¤Î¥×¥í¥°¥é¥à¤òºÎÍѤ·¤¿¤«¤È¸À¤¦¤È¡¢¼¡¤Î¤è¤¦¤ÊȽÃǤˤè¤ê¤Þ¤¹¡£ ¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¤ò»È¤ï¤Ê¤¤Êý¤Î¹ç·×¼Â¹Ô¥µ¥¤¥¯¥ë¿ô¤Ï¡¢É¬¤º3¥µ¥¤¥¯¥ë¤È¤Ê¤ê¤Þ¤¹¡£Îã³°¤Ï¤¢¤ê¤Þ¤»¤ó¡£ ¤½¤ì¤ËÂФ·¡¢¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¤ò»È¤Ã¤¿¾ì¹ç¤Î¹ç·×¼Â¹Ô¥µ¥¤¥¯¥ë¿ô¤Ï¡¢Èó¾ï¤Ë¹¬±¿¤Ê¾ì¹ç¤Ë2¥µ¥¤¥¯¥ë¤È¤Ê¤ë²ÄǽÀ­¤¬¤¢¤ê¤Þ¤¹¡£ ¤É¤ó¤Ê¹¬±¿¤«¤È¸À¤¤¤Þ¤¹¤È¡¢8¡Á9¹ÔÌܤδ֤˳ä¤ê¹þ¤ß¤¬È¯À¸¤·¤¿¾ì¹ç¤Ç¤¹¡£ 8¹ÔÌܤÎÌ¿Îá¼Â¹Ôľ¸å¤Ë¥¿¥¤¥Þ¤ä¥µ¥¦¥ó¥ÉÅù¤Î³ä¤ê¹þ¤ß¤¬È¯À¸¤¹¤ë¤È¡¢8¹ÔÌܤÈ9¹ÔÌܤδ֤dzä¤ê¹þ¤ß½èÍý¤ò¹Ô¤¦¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£ ¤¹¤ë¤È¡¢8¹ÔÌܤǥá¥â¥ê¤«¤éÆɤ߹þ¤ó¤À%r3¤ÎÃͤò¡¢¡Öľ¸å¤Ë¡×9¹ÔÌܤǻ²¾È¤¹¤ë¤ï¤±¤Ç¤Ï¤Ê¤¯¤Ê¤ê¤Þ¤¹¡£ ½¾¤Ã¤Æ9¹ÔÌܤǥ¤¥ó¥¿¡¼¥í¥Ã¥¯¤ÏȯÀ¸¤»¤º¡¢9¹ÔÌܤÈ10¹ÔÌܤιç·×¼Â¹Ô¥µ¥¤¥¯¥ë¿ô¤Ï2¥µ¥¤¥¯¥ë¤È¤Ê¤ê¤Þ¤¹¡£ ¡¦¡¦¡¦¤È¤Ï¸À¤¨¤³¤ó¤Ê¹¬±¿¤ÏÌÇ¿¤Ë¤¢¤ë¤ï¤±¤Ç¤Ê¤·¡¢Á´ÂΤήÅÙ¤«¤é¸«¤ì¤Ð 0.00...01% ÄøÅ٤ΰ㤤¤Ç¤·¤«¤Ê¤¤¤Ç¤·¤ç¤¦¡£ ¤É¤Á¤é¤ÎÊýË¡¤ò»È¤¦¤«¤ÏÁ´¤¯¡Èµ¤Ê¬¤ÎÌäÂê¡É¤Ç¤¢¤ê¡¢½ÅÍפʤΤϡ¢¤É¤Á¤é¤ÎÊýË¡¤Ç¤âÀµ¤·¤¯Æ°¤¯¡¢¤È¤¤¤¦¤³¤È¤Ç¤¹¡£ ¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¡¡¤³¤³¤Þ¤Ç¤ÏÌäÂꤢ¤ê¤Þ¤»¤ó¡£»ÅÍÍÄ̤ê¤ÎÆ°ºî¤Ç¤¹¡£ÌäÂê¤Ï¤³¤³¤«¤é¡¡¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£ ¤È¤³¤í¤¬¼Â¤Ï¡¢¤¢¤ë¾ò·ï¤¬½Å¤Ê¤Ã¤¿¾ì¹ç¤Ë¡¢¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¤ò»È¤¦Êý¤Î¥×¥í¥°¥é¥à¤ÏÀµ¤·¤¯Æ°¤«¤Ê¤¯¤Ê¤ê¤Þ¤¹¡£ ¤¢¤ë¾ò·ï¤È¤Ï¡¢ ¡¡¡¡¡¡¡¡¤³¤Î¥µ¥Ö¥ë¡¼¥Á¥ó¤ò¹â®RAM¾å¤Ç¼Â¹Ô¤·¤¿¾ì¹ç ¤Ç¤¹¡£¤ï¤¶¤ï¤¶¼êºî¶È¤ÇºÇŬ²½¤¹¤ë¤«¤é¤Ë¤Ï¹â®À­¤¬É¬Íפʥµ¥Ö¥ë¡¼¥Á¥ó¤Ç¤¢¤ê¡¢¤â¤Á¤í¤ó¹â®RAM¤ËžÁ÷¤·¤Æ¼Â¹Ô¤¹¤ë¤Ç¤·¤ç¤¦¡£ º£²ó¤¬Àµ¤Ë¤³¤Î¥±¡¼¥¹¤ËÁêÅö¤·¤Þ¤·¤¿¡£ ¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¤ò»È¤¦Êý¤Î¥×¥í¥°¥é¥à¤ò¹â®RAM¤ËÃÖ¤¤¤Æ¼Â¹Ô¤¹¤ë¤È¡¢¼¡¤Î¤è¤¦¤Ê¿¶¤ëÉñ¤¤¤È¤Ê¤ê¤Þ¤¹¡£(¢¨¥µ¥¤¥¯¥ë¿ô¤Ï¿ä¬¤Ç¤¹) ¡¡¡¡¡¡¡¡ 8|¡¡¡¡¡¡¡¡ld.w %r3, [%r1]¡¡¡¡¡¡; 1¥µ¥¤¥¯¥ë ¡¡¡¡¡¡¡¡ 9|¡¡¡¡¡¡¡¡jp.d %r3¡¡¡¡¡¡¡¡¡¡¡¡ ; 1¥µ¥¤¥¯¥ë¡Ü1¥µ¥¤¥¯¥ë(¥¤¥ó¥¿¡¼¥í¥Ã¥¯) ¡¡¡¡¡¡¡¡¡¡|¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ ; ¡ú¤³¤³¤Ç¥¸¥ã¥ó¥×¤·¤Æ¤·¤Þ¤¦!!¡ú ¡¡¡¡¡¡¡¡10|¡¡¡¡¡¡¡¡add %r0, 1¡¡¡¡¡¡¡¡¡¡ ; ¡ú¼Â¹Ô¤µ¤ì¤Þ¤»¤ó!!¡ú ¤¹¤Ê¤ï¤Á¡¢¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¤Ç¤¢¤ë¤Ï¤º¤Î10¹ÔÌÜ¡Öadd %r0, 1¡×¤¬¼Â¹Ô¤µ¤ì¤Ê¤¤¤Î¤Ç¤¹¡£ C¸À¸ì¤ËÎ㤨¤ë¤È¡¢ ¡¡¡¡¡¡¡¡switch(*pc++) { ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡... ¡¡¡¡¡¡¡¡} ¤È½ñ¤¤¤¿¤Ä¤â¤ê¤¬¼ÂºÝ¤ÎÆ°ºî¤Ï ¡¡¡¡¡¡¡¡switch(*pc) { ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡... ¡¡¡¡¡¡¡¡} ¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¦¡¢¤È¤¤¤¦»öÂÖ¡£Àµ¤·¤¤·ë²Ì¤¬ÆÀ¤é¤ì¤ë¤Ï¤º¤â¤¢¤ê¤Þ¤»¤ó¡£ ¤³¤ì¤Ï´í¸±¤Ç¤¹!! ¤â¤¦¾¯¤·¾Ü¤·¤¯¡¢¾É¾õ¤¬È¯¸½¤¹¤ë¾ò·ï¤òÄ´¤Ù¤Æ¤ª¤¯É¬Íפ¬¤¢¤ê¤½¤¦¤Ç¤¹¡£ (³¤­¤Þ¤¹¡Ä) * Mon May 5 05:30:00 JST 2003 Naoyuki Sawa - ·Ù¹ð¤ÎÈϰϤ¬°ã¤¦ ºòÆü½ñ¤¤¤¿¡Öµ÷Î¥¤òµá¤á¤ë¡Ê¸íº¹¡ÞÌ󣱡ó¡¦30¥Ó¥Ã¥ÈÈǡˡפΥ¢¥»¥ó¥Ö¥é¥×¥í¥°¥é¥à¡¢¼Â¤Ï¤«¤Ê¤ê¥Ï¥Þ¥ê¤Þ¤·¤¿¡£ ¤É¤¦¤ä¤Ã¤Æ¤â·ë²Ì¤¬¹ç¤ï¤º¡¢¤µ¤ó¤¶¤óǺ¤ó¤ÀËö¤Ë¸«¤Ä¤±¤¿¸¶°ø¤Ï¼¡¤Î¤è¤¦¤Ê¤â¤Î¤Ç¤·¤¿¡£ Àµ¤·¤¯¤Ï ¡¡¡¡¡¡¡¡xld.w %r13, 55 ¤È½ñ¤¯¤Ù¤­¤È¤³¤í¤ò ¡¡¡¡¡¡¡¡ld.w %r13, 55 ¤È½ñ¤¤¤Æ¤·¤Þ¤Ã¤Æ¤¤¤¿¤Î¤Ç¤¹¡£ P/ECE¤ÎCPU S1C33¤ÎÌ¿Î᥻¥Ã¥È¤Ï¡¢¤¿¤¤¤Æ¤¤¤Î¾ì¹ç¡¢Â¨ÃͤË6¥Ó¥Ã¥È¤Þ¤Ç¤Î¿ôÃͤ·¤«»ØÄê¤Ç¤­¤Þ¤»¤ó¡£ ¤½¤ì°Ê¾å¤Î¥Ó¥Ã¥È¿ô¤Î¨Ãͤò»È¤¤¤¿¤¤¾ì¹ç¤Ï¡¢extÌ¿Îá¤ò»È¤Ã¤Æ·å¤ò³ÈÄ¥¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ ¾å¤ÎÎã¤Ëµó¤²¤¿¡Öld¡×Ì¿Îá¤Î¾ì¹ç¡¢Â¨ÃͤˤÏÉä¹æÉÕ¤­6¥Ó¥Ã¥È¤Þ¤Ç¤·¤«»ØÄê¤Ç¤­¤Þ¤»¤ó¡£ Éä¹æÉÕ¤­6¥Ó¥Ã¥È¤Çɽ¸½¤Ç¤­¤ë¿ôÃͤÏ-32¡Á31¤Ç¤¹¤Î¤Ç¡¢ ¡¡¡¡¡¡¡¡¡¦ ¡¡¡¡¡¡¡¡¡¦ ¡¡¡¡¡¡¡¡¡¦ ¡¡¡¡¡¡¡¡ld.w %r13, 34 ¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª ¡¡¡¡¡¡¡¡ld.w %r13, 33 ¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª ¡¡¡¡¡¡¡¡ld.w %r13, 32 ¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª ¡¡¡¡¡¡¡¡ld.w %r13, 31 ¡¡¡¡¡¡¡¡¡¡; Àµ¤·¤¤ ¡¡¡¡¡¡¡¡ld.w %r13, 30 ¡¡¡¡¡¡¡¡¡¡; Àµ¤·¤¤ ¡¡¡¡¡¡¡¡ld.w %r13, 29 ¡¡¡¡¡¡¡¡¡¡; Àµ¤·¤¤ ¡¡¡¡¡¡¡¡¡¦ ¡¡¡¡¡¡¡¡¡¦ ¡¡¡¡¡¡¡¡¡¦ ¡¡¡¡¡¡¡¡ld.w %r13, 1¡¡¡¡¡¡¡¡¡¡¡¡; Àµ¤·¤¤ ¡¡¡¡¡¡¡¡ld.w %r13, 0¡¡¡¡¡¡¡¡¡¡¡¡; Àµ¤·¤¤ ¡¡¡¡¡¡¡¡ld.w %r13, -1 ¡¡¡¡¡¡¡¡¡¡; Àµ¤·¤¤ ¡¡¡¡¡¡¡¡¡¦ ¡¡¡¡¡¡¡¡¡¦ ¡¡¡¡¡¡¡¡¡¦ ¡¡¡¡¡¡¡¡ld.w %r13, -30¡¡¡¡¡¡¡¡¡¡; Àµ¤·¤¤ ¡¡¡¡¡¡¡¡ld.w %r13, -31¡¡¡¡¡¡¡¡¡¡; Àµ¤·¤¤ ¡¡¡¡¡¡¡¡ld.w %r13, -32¡¡¡¡¡¡¡¡¡¡; Àµ¤·¤¤ ¡¡¡¡¡¡¡¡ld.w %r13, -33¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª ¡¡¡¡¡¡¡¡ld.w %r13, -34¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª ¡¡¡¡¡¡¡¡ld.w %r13, -35¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª ¡¡¡¡¡¡¡¡¡¦ ¡¡¡¡¡¡¡¡¡¦ ¡¡¡¡¡¡¡¡¡¦ ¤È¤Ê¤ê¤Þ¤¹¡£ ¤Þ¤¿Ê̤ÎÎã¤È¤·¤Æ¡¢¡Öadd¡×Ì¿Îá¤Ê¤É¤Ï¨ÃͤËÉä¹æ¤Ê¤·6¥Ó¥Ã¥È¤Þ¤Ç¤Î¿ôÃͤ·¤«»ØÄê¤Ç¤­¤Þ¤»¤ó¡£ Éä¹æ¤Ê¤·6¥Ó¥Ã¥È¤Çɽ¸½¤Ç¤­¤ë¿ôÃͤÏ0¡Á63¤Ç¤¹¤Î¤Ç¡¢ ¡¡¡¡¡¡¡¡¡¦ ¡¡¡¡¡¡¡¡¡¦ ¡¡¡¡¡¡¡¡¡¦ ¡¡¡¡¡¡¡¡add %r13, 66¡¡¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª ¡¡¡¡¡¡¡¡add %r13, 65¡¡¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª ¡¡¡¡¡¡¡¡add %r13, 64¡¡¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª ¡¡¡¡¡¡¡¡add %r13, 63¡¡¡¡¡¡¡¡¡¡¡¡; Àµ¤·¤¤ ¡¡¡¡¡¡¡¡add %r13, 62¡¡¡¡¡¡¡¡¡¡¡¡; Àµ¤·¤¤ ¡¡¡¡¡¡¡¡add %r13, 61¡¡¡¡¡¡¡¡¡¡¡¡; Àµ¤·¤¤ ¡¡¡¡¡¡¡¡¡¦ ¡¡¡¡¡¡¡¡¡¦ ¡¡¡¡¡¡¡¡¡¦ ¡¡¡¡¡¡¡¡add %r13, 1 ¡¡¡¡¡¡¡¡¡¡¡¡; Àµ¤·¤¤ ¡¡¡¡¡¡¡¡add %r13, 0 ¡¡¡¡¡¡¡¡¡¡¡¡; Àµ¤·¤¤ ¡¡¡¡¡¡¡¡add %r13, -1¡¡¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª ¡¡¡¡¡¡¡¡add %r13, -2¡¡¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª ¡¡¡¡¡¡¡¡add %r13, -3¡¡¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª ¡¡¡¡¡¡¡¡¡¦ ¡¡¡¡¡¡¡¡¡¦ ¡¡¡¡¡¡¡¡¡¦ ¤È¤Ê¤ê¤Þ¤¹¡£ ¤µ¤Æ¡¢º£²ó¤Î¥ß¥¹ ¡¡¡¡¡¡¡¡ld.w %r13, 55 ¤Ï¡¢¡Öld¡×Ì¿Î᤬°·¤¨¤ëÉä¹æÉÕ¤­6¥Ó¥Ã¥È¤ÎÈÏ°Ï¡Ê-32¡Á31¡Ë¤ò³°¤ì¤¿Â¨ÃÍ¡Ê55¡Ë¤ò»ØÄꤷ¤Æ¤·¤Þ¤Ã¤¿¤³¤È¤Ç¤¹¡£ ³Î¤«¤ËÅöÊý¤Î¥ß¥¹¤Ê¤Î¤Ç¤¹¤¬¡¢ËÜÍè¡¢¤³¤¦¤¤¤¦¥ß¥¹¤ËÂФ·¤Æ¤Ï¥¢¥»¥ó¥Ö¥é¤¬·Ù¹ð¤òȯ¤¹¤ë¤³¤È¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡ÖWarning: Numeric range.¡§¥¤¥ó¥¹¥È¥é¥¯¥·¥ç¥ó¥ª¥Ú¥é¥ó¥É¤Î¿ôÃͤ¬ÉÔÀµ¤Ç¤¹¡£¡× ¡¡¡¡¡¡¡¡S1C33 Family C¥³¥ó¥Ñ¥¤¥é¥Ñ¥Ã¥±¡¼¥¸¥Þ¥Ë¥å¥¢¥ë Ver.4 (S5U1C33000C_J.pdf) 179¥Ú¡¼¥¸¤è¤ê ¤È¤³¤í¤¬¡¢¥¢¥»¥ó¥Ö¥é¤Ï¾å¤Î¥³¡¼¥É¤ËÂФ·¤Æ·Ù¹ð¤òȯ¤·¤Þ¤»¤ó¤Ç¤·¤¿¡£ ¤½¤·¤Æ¡¢55¤ò̵Íý¤ä¤êÉä¹æÉÕ¤­6¥Ó¥Ã¥È¤È²ò¼á¤·¤¿Ãͤǡ¢Ì¿Îᥳ¡¼¥É¤òÀ¸À®¤·¤Æ¤·¤Þ¤Ã¤Æ¤¤¤¿¤Î¤Ç¤¹¡£ ¡¡¡¡¡¡¡¡ld.w %r13, -9 ¡¡¡¡¡¡¡¡¡¡; -9 ¡Ä 55¤ò̵Íý¤ä¤êÉä¹æÉÕ¤­6¥Ó¥Ã¥È¤È²ò¼á¤·¤¿ÃÍ ¤Ê¤¼·Ù¹ð¤¬È¯¤»¤é¤ì¤Ê¤«¤Ã¤¿¤Î¤Ç¤·¤ç¤¦¤«¡© ¤¤¤¯¤Ä¤«»î¤·¤Æ¤ß¤¿¤È¤³¤í¡¢S1C33 CPU¤Î¥¢¥»¥ó¥Ö¥éas33.exe¤Ï¡¢·Ù¹ð¤È¤¹¤ë¿ôÃͤÎÈϰϤò´Ö°ã¤¨¤Æ¤¤¤ë¤è¤¦¤Ç¤¹¡£ ¡Öld¡×Ì¿Îá¤È¤¤¤í¤¤¤í¤Ê¿ôÃͤòÁȤ߹ç¤ï¤»¤Æ¡¢·Ù¹ð¤¬È¯¤»¤é¤ì¤ë¤«¤É¤¦¤«¤ò»î¤·¤Æ¤ß¤Þ¤·¤¿¡£ ¡¡¡¡¡¡¡¡¡¦ ¡¡¡¡¡¡¡¡¡¦ ¡¡¡¡¡¡¡¡¡¦ ¡¡¡¡¡¡¡¡ld.w %r13, 66 ¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª¡¡¡¡¡¡; ·Ù¹ð¤¢¤ê ¡¡¡¡¡¡¡¡ld.w %r13, 65 ¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª¡¡¡¡¡¡; ·Ù¹ð¤¢¤ê ¡¡¡¡¡¡¡¡ld.w %r13, 64 ¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª¡¡¡¡¡¡; ·Ù¹ð¤¢¤ê ¡¡¡¡¡¡¡¡ld.w %r13, 63 ¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª¡¡¡¡¡¡; ·Ù¹ð¤Ê¤·¡ª´í¸±¡ª ¡¡¡¡¡¡¡¡ld.w %r13, 62 ¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª¡¡¡¡¡¡; ·Ù¹ð¤Ê¤·¡ª´í¸±¡ª ¡¡¡¡¡¡¡¡ld.w %r13, 61 ¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª¡¡¡¡¡¡; ·Ù¹ð¤Ê¤·¡ª´í¸±¡ª ¡¡¡¡¡¡¡¡¡¦ ¡¡¡¡¡¡¡¡¡¦ ¡¡¡¡¡¡¡¡¡¦ ¡¡¡¡¡¡¡¡ld.w %r13, 34 ¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª¡¡¡¡¡¡; ·Ù¹ð¤Ê¤·¡ª´í¸±¡ª ¡¡¡¡¡¡¡¡ld.w %r13, 33 ¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª¡¡¡¡¡¡; ·Ù¹ð¤Ê¤·¡ª´í¸±¡ª ¡¡¡¡¡¡¡¡ld.w %r13, 32 ¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª¡¡¡¡¡¡; ·Ù¹ð¤Ê¤·¡ª´í¸±¡ª ¡¡¡¡¡¡¡¡ld.w %r13, 31 ¡¡¡¡¡¡¡¡¡¡; Àµ¤·¤¤¡¡¡¡¡¡¡¡; ·Ù¹ð¤Ê¤· ¡¡¡¡¡¡¡¡ld.w %r13, 30 ¡¡¡¡¡¡¡¡¡¡; Àµ¤·¤¤¡¡¡¡¡¡¡¡; ·Ù¹ð¤Ê¤· ¡¡¡¡¡¡¡¡ld.w %r13, 29 ¡¡¡¡¡¡¡¡¡¡; Àµ¤·¤¤¡¡¡¡¡¡¡¡; ·Ù¹ð¤Ê¤· ¡¡¡¡¡¡¡¡¡¦ ¡¡¡¡¡¡¡¡¡¦ ¡¡¡¡¡¡¡¡¡¦ ¡¡¡¡¡¡¡¡ld.w %r13, 1¡¡¡¡¡¡¡¡¡¡¡¡; Àµ¤·¤¤¡¡¡¡¡¡¡¡; ·Ù¹ð¤Ê¤· ¡¡¡¡¡¡¡¡ld.w %r13, 0¡¡¡¡¡¡¡¡¡¡¡¡; Àµ¤·¤¤¡¡¡¡¡¡¡¡; ·Ù¹ð¤Ê¤· ¡¡¡¡¡¡¡¡ld.w %r13, -1 ¡¡¡¡¡¡¡¡¡¡; Àµ¤·¤¤¡¡¡¡¡¡¡¡; ·Ù¹ð¤Ê¤· ¡¡¡¡¡¡¡¡¡¦ ¡¡¡¡¡¡¡¡¡¦ ¡¡¡¡¡¡¡¡¡¦ ¡¡¡¡¡¡¡¡ld.w %r13, -30¡¡¡¡¡¡¡¡¡¡; Àµ¤·¤¤¡¡¡¡¡¡¡¡; ·Ù¹ð¤Ê¤· ¡¡¡¡¡¡¡¡ld.w %r13, -31¡¡¡¡¡¡¡¡¡¡; Àµ¤·¤¤¡¡¡¡¡¡¡¡; ·Ù¹ð¤Ê¤· ¡¡¡¡¡¡¡¡ld.w %r13, -32¡¡¡¡¡¡¡¡¡¡; Àµ¤·¤¤¡¡¡¡¡¡¡¡; ·Ù¹ð¤Ê¤· ¡¡¡¡¡¡¡¡ld.w %r13, -33¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª¡¡¡¡¡¡; ·Ù¹ð¤Ê¤· ¡¡¡¡¡¡¡¡ld.w %r13, -34¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª¡¡¡¡¡¡; ·Ù¹ð¤Ê¤· ¡¡¡¡¡¡¡¡ld.w %r13, -35¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª¡¡¡¡¡¡; ·Ù¹ð¤Ê¤· ¡¡¡¡¡¡¡¡¡¦ ¡¡¡¡¡¡¡¡¡¦ ¡¡¡¡¡¡¡¡¡¦ 32¡Á63¤Þ¤Ç¤Î¿ôÃͤ¬¡¢Àµ¤·¤¤Ì¿Îᥳ¡¼¥É¤¬À¸À®¤µ¤ì¤Ê¤¤¤Ë¤â´Ø¤ï¤é¤ºÌµ·Ù¹ð¤È¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£ ¡Öadd¡×Ì¿Îá¤Ë¤Ä¤¤¤Æ¤âƱÍͤ˻¤Æ¤ß¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¦ ¡¡¡¡¡¡¡¡¡¦ ¡¡¡¡¡¡¡¡¡¦ ¡¡¡¡¡¡¡¡add %r13, 66¡¡¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª¡¡¡¡¡¡; ·Ù¹ð¤¢¤ê ¡¡¡¡¡¡¡¡add %r13, 65¡¡¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª¡¡¡¡¡¡; ·Ù¹ð¤¢¤ê ¡¡¡¡¡¡¡¡add %r13, 64¡¡¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª¡¡¡¡¡¡; ·Ù¹ð¤¢¤ê ¡¡¡¡¡¡¡¡add %r13, 63¡¡¡¡¡¡¡¡¡¡¡¡; Àµ¤·¤¤¡¡¡¡¡¡¡¡; ·Ù¹ð¤Ê¤· ¡¡¡¡¡¡¡¡add %r13, 62¡¡¡¡¡¡¡¡¡¡¡¡; Àµ¤·¤¤¡¡¡¡¡¡¡¡; ·Ù¹ð¤Ê¤· ¡¡¡¡¡¡¡¡add %r13, 61¡¡¡¡¡¡¡¡¡¡¡¡; Àµ¤·¤¤¡¡¡¡¡¡¡¡; ·Ù¹ð¤Ê¤· ¡¡¡¡¡¡¡¡¡¦ ¡¡¡¡¡¡¡¡¡¦ ¡¡¡¡¡¡¡¡¡¦ ¡¡¡¡¡¡¡¡add %r13, 1 ¡¡¡¡¡¡¡¡¡¡¡¡; Àµ¤·¤¤¡¡¡¡¡¡¡¡; ·Ù¹ð¤Ê¤· ¡¡¡¡¡¡¡¡add %r13, 0 ¡¡¡¡¡¡¡¡¡¡¡¡; Àµ¤·¤¤¡¡¡¡¡¡¡¡; ·Ù¹ð¤Ê¤· ¡¡¡¡¡¡¡¡add %r13, -1¡¡¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª¡¡¡¡¡¡; ·Ù¹ð¤Ê¤·¡ª´í¸±¡ª ¡¡¡¡¡¡¡¡add %r13, -2¡¡¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª¡¡¡¡¡¡; ·Ù¹ð¤Ê¤·¡ª´í¸±¡ª ¡¡¡¡¡¡¡¡add %r13, -3¡¡¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª¡¡¡¡¡¡; ·Ù¹ð¤Ê¤·¡ª´í¸±¡ª ¡¡¡¡¡¡¡¡¡¦ ¡¡¡¡¡¡¡¡¡¦ ¡¡¡¡¡¡¡¡¡¦ ¡¡¡¡¡¡¡¡add %r13, -30 ¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª¡¡¡¡¡¡; ·Ù¹ð¤Ê¤·¡ª´í¸±¡ª ¡¡¡¡¡¡¡¡add %r13, -31 ¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª¡¡¡¡¡¡; ·Ù¹ð¤Ê¤·¡ª´í¸±¡ª ¡¡¡¡¡¡¡¡add %r13, -32 ¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª¡¡¡¡¡¡; ·Ù¹ð¤Ê¤·¡ª´í¸±¡ª ¡¡¡¡¡¡¡¡add %r13, -33 ¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª¡¡¡¡¡¡; ·Ù¹ð¤¢¤ê ¡¡¡¡¡¡¡¡add %r13, -34 ¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª¡¡¡¡¡¡; ·Ù¹ð¤¢¤ê ¡¡¡¡¡¡¡¡add %r13, -35 ¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª¡¡¡¡¡¡; ·Ù¹ð¤¢¤ê ¡¡¡¡¡¡¡¡¡¦ ¡¡¡¡¡¡¡¡¡¦ ¡¡¡¡¡¡¡¡¡¦ -32¡Á-1¤Þ¤Ç¤Î¿ôÃͤ¬¡¢Àµ¤·¤¤Ì¿Îᥳ¡¼¥É¤¬À¸À®¤µ¤ì¤Ê¤¤¤Ë¤â´Ø¤ï¤é¤ºÌµ·Ù¹ð¤È¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£ ¤É¤¦¤ä¤éas33.exe¤Ï¡¢Ì¿Îá¤Ë¤è¤Ã¤ÆÍ­¸ú¤Ê¿ôÃͤÎÈϰϤ¬°ã¤¦¤³¤È¤ò˺¤ì¡¢¾ï¤Ë-32¡Á63¤¬Àµ¤·¤¤¿ôÃͤÎÈϰϤÀ¤È»×¤Ã¤Æ¤·¤Þ¤Ã¤Æ¤¤¤ë¤è¤¦¤Ç¤¹¡£ º£²ó¤Ï¾®¤µ¤Ê¥×¥í¥°¥é¥à¤À¤Ã¤¿¤Î¤Ç´Ö°ã¤¤¤Ëµ¤ÉÕ¤¤¤¿¤â¤Î¤Î¡¢Â礭¤Ê¥×¥í¥°¥é¥à¤Ç´Ö°ã¤Ã¤¿¥³¡¼¥É¤¬Ìµ·Ù¹ð¤ÇÄ̤äƤ·¤Þ¤Ã¤Æ¤¤¤¿¤éŽ¥Ž¥Ž¥ ¤³¤Î´í¸±¤ò²óÈò¤¹¤ë¤Ë¤Ï¡¢¡Öld¡×¤ä¡Öadd¡×Åù¤ÎÌ¿Îá¤Ç¨Ãͤò»È¤¦¾ì¹ç¤Ï¡¢¤¿¤È¤¨¾®¤µ¤ÊÃͤǤâ¾ï¤Ë¡Öxld¡×¡Öxand¡×Åù¤Èɽµ­¤·¤Þ¤·¤ç¤¦¡£ ³ÆÌ¿Îá¤ÎÍ­¸ú¤Ê¿ôÃÍÈϰϤòĶ¤¨¤ë¤È¡¢¥³¥ó¥Ñ¥¤¥é¤¬¼«Æ°Åª¤Ë¡Öext¡×Ì¿Îá¤òÉղ䷤ơ¢¸í¤Ã¤¿Ì¿Îᥳ¡¼¥É¤ÎÀ¸À®¤òËɤ¤¤Ç¤¯¤ì¤Þ¤¹¡£ * Sun May 4 15:00:00 JST 2003 Naoyuki Sawa - µ÷Î¥¤òµá¤á¤ë¡Ê¸íº¹¡ÞÌ󣱡ó¡¦30¥Ó¥Ã¥ÈÈÇ¡Ë P/ware¤µ¤ó¡Êhttp://www.aw.wakwak.com/~hitode/piece/¡Ë¤Î¥Ú¡¼¥¸¤Î¡¢ µ÷Î¥¤òµá¤á¤ë¡Êhttp://www.aw.wakwak.com/~hitode/piece/index.html#dist2¡Ë¹â®¤ÊÊýË¡¤¬¹¹¿·¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ ¤Þ¤º¡¢Á°²ó¤ÈƱ¤¸¸íº¹¡ÞÌó£´¡ó¤ÎÊýË¡¤Ç¡¢¤è¤êÀºÅ٤ι⤤·¸¿ô¤¬¸ø³«¤µ¤ì¤Þ¤·¤¿¡£ Á°²ó¤Î¥×¥í¥°¥é¥à¤ò¡¢¿·¤·¤¤·¸¿ô¤Çºî¤êľ¤·¤¿¤â¤Î¤¬¤³¤Á¤é¡£ ¡¡¡¡¡¡¡¡http://www.piece-me.org/archive/hypot2a-20030504.zip ¤µ¤é¤Ë¡¢¡Ö¸íº¹Ì󣱡ó¡×¤È¡Ö¸íº¹Ìó£°¡¥£²¡ó¡×¤Î·×»»ÊýË¡¤¬Äɲ䵤ì¤Æ¤¤¤Þ¤¹¡£ ¸íº¹Ì󣱡ó¤ÎÊýË¡¤¬¡¢Â®ÅÙ¤ÈÀºÅ٤ΥХé¥ó¥¹¤¬¼è¤ì¤Æ¤¤¤Æ¡¢Îɤµ¤½¤¦¤Ç¤¹¡£ ¤½¤³¤Çº£²ó¤Ï¡¢¸íº¹Ì󣱡ó¤Î·×»»ÊýË¡¤Î30¥Ó¥Ã¥ÈÈǤòºî¤Ã¤Æ¤ß¤Þ¤·¤¿¡£ ¡¡¡¡¡¡¡¡/* ¸¶ÅÀ¤ÈÅÀ (x, y) ¤Îµ÷Î¥¤òµá¤á¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡ * [in] ¡¡¡¡¡¡¡¡ *¡¡¡¡¡¡x, y¡¡¡¡¡¡¡¡¡¡¡¡µ÷Î¥¤òµá¤á¤ëºÂɸ ¡¡¡¡¡¡¡¡ * [out] ¡¡¡¡¡¡¡¡ *¡¡¡¡¡¡Ìá¤êÃÍ¡¡¡¡¡¡¡¡¡¡¸¶ÅÀ¤ÈÅÀ (x, y) ¤Îµ÷Î¥ ¡¡¡¡¡¡¡¡ * [note] ¡¡¡¡¡¡¡¡ *¡¡¡¡¡¡* µ÷Î¥¤Î¶á»÷¤ò¤â¤È¤á¤ë·×»»¼°¡§ ¡¡¡¡¡¡¡¡ *¡¡¡¡¡¡¡¡¡¡¡¡¡¡|x|>|y|¤Î¤È¤­¡¢|x|+((|y|*|y|/|x|*55)>>7) ¡¡¡¡¡¡¡¡ *¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ê¸íº¹¤Ï¡ÞÌ󣱡ó¡Ë ¡¡¡¡¡¡¡¡ */ ¡¡¡¡¡¡¡¡int hypot4(int x, int y); ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡asm(" ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡.code ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡.align 1 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡.global hypot4 ¡¡¡¡¡¡¡¡hypot4: ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ld.w %r10, %r12¡¡¡¡¡¡¡¡¡¡; if(x == 0 && y == 0) return 0 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡or %r10, %r13 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡jreq hypot4_exit ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡cmp %r12, 0¡¡¡¡¡¡¡¡¡¡¡¡¡¡; %r12 = |x| ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡jrge 3 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ not %r12, %r12 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ add %r12, 1 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡cmp %r13, 0¡¡¡¡¡¡¡¡¡¡¡¡¡¡; %r13 = |y| ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡jrge 3 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ not %r13, %r13 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ add %r13, 1 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡cmp %r12, %r13 ¡¡¡¡¡¡¡¡¡¡; if(|x| < |y|) %r12 exch %r13 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡jrge 4 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ xor %r13, %r12 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ xor %r12, %r13 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ xor %r13, %r12 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mltu.w %r13, %r13¡¡¡¡¡¡¡¡; %r5:%r4 = |y|^2 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ld.w %r4, %alr ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ld.w %r5, %ahr ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡xld.w %r13, 55 ¡¡¡¡¡¡¡¡¡¡; %r6:%r5:%r4 = |y|^2 * 55 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mltu.w %r4, %r13 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ld.w %r4, %alr ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ld.w %r6, %ahr ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mltu.w %r5, %r13 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ld.w %r5, %alr ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡add %r5, %r6 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡;{{ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡jruge.d 3¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; (!C) ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ ld.w %r6, %ahr ¡¡¡¡¡¡¡¡; (undoc'd delay) ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ add %r6, 1 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡;}}¤Þ¤¿¤Ï{{ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡;ld.w %r6, %ahr ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡;adc %r6, %r8¡¡¡¡¡¡¡¡¡¡¡¡; -gp=0x0 ¤òÁÛÄê ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡;}} ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ld.w %r13, %r5 ¡¡¡¡¡¡¡¡¡¡; %r5:%r4 = (|y|^2 * 55) >> 7 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡xsll %r13, 25 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡xsrl %r4, 7 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡or %r4, %r13 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡xsll %r6, 25 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡xsrl %r5, 7 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡or %r5, %r6 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ld.w %alr, %r4 ¡¡¡¡¡¡¡¡¡¡; %alr = ((|y|^2 * 55) >> 7) / |x| ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡div0u %r12 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ld.w %ahr, %r5 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡div1 %r12¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; 1 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡div1 %r12¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; 2 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡div1 %r12¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; 3 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡div1 %r12¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; 4 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡div1 %r12¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; 5 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡div1 %r12¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; 6 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡div1 %r12¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; 7 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡div1 %r12¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; 8 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡div1 %r12¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; 9 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡div1 %r12¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; 10 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡div1 %r12¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; 11 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡div1 %r12¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; 12 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡div1 %r12¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; 13 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡div1 %r12¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; 14 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡div1 %r12¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; 15 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡div1 %r12¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; 16 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡div1 %r12¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; 17 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡div1 %r12¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; 18 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡div1 %r12¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; 19 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡div1 %r12¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; 20 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡div1 %r12¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; 21 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡div1 %r12¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; 22 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡div1 %r12¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; 23 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡div1 %r12¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; 24 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡div1 %r12¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; 25 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡div1 %r12¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; 26 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡div1 %r12¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; 27 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡div1 %r12¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; 28 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡div1 %r12¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; 29 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡div1 %r12¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; 30 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡div1 %r12¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; 31 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡div1 %r12¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; 32 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ld.w %r10, %alr¡¡¡¡¡¡¡¡¡¡; %r10 = ((|y|^2 * 55) >> 7) / |x| + |x| ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡add %r10, %r12 ¡¡¡¡¡¡¡¡hypot4_exit: ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ret ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡"); ¥ª¥ê¥¸¥Ê¥ë¤Î·×»»¼°¤Ï ¡¡¡¡¡¡¡¡|x|+((|y|*|y|/|x|*55)>>7) ¤Ê¤Î¤Ç¤¹¤¬¡¢|y|*|y| ¤È |x| ¤ÎÃͤ¬¶á¤¤¤È¤­¤Ë¸íº¹¤¬Â礭¤¯¤Ê¤ê¡¢Î㤨¤Ð (-13, 8) ¤ÇÌó£·¡ó¤Î¸íº¹¤¬È¯À¸¤·¤Æ¤·¤Þ¤¤¤Þ¤¹¡£ ¤½¤³¤Ç¡¢¤Á¤ç¤Ã¤È·×»»¼°¤ò¥¢¥ì¥ó¥¸¤·¤Æ¡¢ ¡¡¡¡¡¡¡¡|x|+((|y|*|y|*55>>7)/|x|) ¤È¤·¤Æ¤ß¤Þ¤·¤¿¡£ ¤³¤Î´Ø¿ô¤ò´Þ¤à¡¢Æ°ºî¸¡¾ÚÍÑ¥×¥í¥°¥é¥à¤Ï¤³¤Á¤é¡£ ¡¡¡¡¡¡¡¡http://www.piece-me.org/archive/hypot4-20030504.zip Á°²ó¤ÈƱ¤¸¤¯¡¢¥é¥ó¥À¥à¤ÊºÂɸ (x, y) ¤È¸¶ÅÀ (0, 0) ´Ö¤Îµ÷Î¥¤òµá¤á¡¢ËÜÅö¤ÎÃÍ¤È¤Î¸íº¹¤òɽ¼¨¤·¤Þ¤¹¡£ 10Ëü²óÄøÅÙ·«¤êÊÖ¤·¤Æ¤ß¤¿¤È¤³¤í¡¢¤Û¤È¤ó¤É¡Þ£±¡ó°ÊÆâ¤Ë¼ý¤Þ¤ê¡¢ºÇ°­¤Ç¤â£±¡¥£µ¡ó¤òĶ¤¨¤ë¤³¤È¤Ï¤¢¤ê¤Þ¤»¤ó¤Ç¤·¤¿¡£ Á°²ó¤Î£´¡ó¡¦30¥Ó¥Ã¥ÈÈǤϡ¢°ì²ó¤¢¤¿¤êÌó30¥µ¥¤¥¯¥ëÁ°¸å¤Ç´°Î»¤·¤Æ¤¤¤Þ¤·¤¿¡£ º£²ó¤Î£±¡ó¡¦30¥Ó¥Ã¥ÈÈǤϡ¢°ì²ó¤¢¤¿¤êÌó90¥µ¥¤¥¯¥ëÁ°¸å¤«¤«¤Ã¤Æ¤·¤Þ¤¤¤Þ¤¹¡£ ¡Ê¤¤¤º¤ì¤â¥½¡¼¥¹¥³¡¼¥É¾å¤Ç¤Î¹ç·×Ãͤǡ¢¼Â¬ÃͤǤϤ¢¤ê¤Þ¤»¤ó¡£¥á¥â¥ê¥¦¥§¥¤¥ÈÅù¤â¹Íθ¤·¤Æ¤¤¤Þ¤»¤ó¡£¡Ë ¤·¤«¤·¤Ê¤¬¤é¡¢»°ÇÜÄøÅÙ¤ÎÃÙ¤µ¤Ç»ÍÇܤÎÀºÅÙ¤¬ÆÀ¤é¤ì¤ë¤Î¤Ê¤é¡¢£±¡óÈǤÎÊý¤ò»È¤ª¤¦¤«¤Ê¡©¤È»×¤¤¤Þ¤·¤¿¡£ * Sat May 3 08:50:00 JST 2003 Naoyuki Sawa - µ÷Î¥¤òµá¤á¤ë¡Ê30¥Ó¥Ã¥ÈÈÇ¡Ë P/ware¤µ¤ó¡Êhttp://www.aw.wakwak.com/~hitode/piece/¡Ë¤Î¥Ú¡¼¥¸¤Ç¡¢ µ÷Î¥¤òµá¤á¤ë¡Êhttp://www.aw.wakwak.com/~hitode/piece/index.html#dist¡Ë¹â®¤ÊÊýË¡¤¬ÀâÌÀ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ Æäˡ¢¸íº¹£´¡ó¤Î¶á»÷¼°¤ò»È¤Ã¤¿ÊýË¡ hypot2() ¤¬»²¹Í¤Ë¤Ê¤ê¤Þ¤¹¡£ ËͤϤ³¤ì¤Þ¤Ç¥Þ¥È¥â¤ËÊ¿Êýº¬¤ò·×»»¤·¤Æ¤Þ¤·¤¿¡¦¡¦¡¦¤³¤ì¤«¤é¤Ï¤³¤ÎÊýË¡¤ò»È¤ï¤»¤Æ夭¤Þ¤¹¡£ Àè¤Î¥Ú¡¼¥¸¤Ë¤âÀâÌÀ¤µ¤ì¤Æ¤¤¤ëÄ̤ꡢhypot2() ¤Ï (x, y) ¤¬ 16¥Ó¥Ã¥È¤Þ¤Ç¤Î¿ôÃͤǤʤ¤¤ÈÀµ¤·¤¯Æ°¤­¤Þ¤»¤ó¡£ ¸ÇÄê¾®¿ôÅÀ¿ô¤Ê¤É¤ò»È¤Ã¤Æ¤¤¤ë¤È¡¢16¥Ó¥Ã¥È°Ê¾å¤ÎºÂɸÃͤäµ÷Î¥¤¬É¬ÍפˤʤäƤ¯¤ë¤³¤È¤â·ë¹½¤¢¤ê¤Þ¤¹¡£ ¤½¤³¤Ç¡¢¸íº¹¤òÁý¤ä¤µ¤º¤Ë¡¢30¥Ó¥Ã¥È¤Þ¤Ç¤Î (x, y) ¤ËÂбþ¤·¤¿ÈǤòºî¤Ã¤Æ¤ß¤Þ¤·¤¿¡£ ¤Ê¤¼30¥Ó¥Ã¥È¤Þ¤Ç¤Ê¤Î¤«¡Ê31¥Ó¥Ã¥È¤ä32¥Ó¥Ã¥È¤ÎºÂɸÃͤˤÏÂбþ¤Ç¤­¤Ê¤¤¤Î¤«¡Ë¤È¤¤¤¦¤È¡¢ 31¥Ó¥Ã¥È°Ê¾å¤ÎºÂɸÃͤǤϷë²Ì¤Îµ÷Î¥¤½¤Î¤â¤Î¤¬32¥Ó¥Ã¥ÈÉä¹æÉÕ¤­À°¿ô¤ò¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤·¤Æ¤·¤Þ¤¦¤«¤é¤Ç¤¹¡£ ¡¡¡¡¡¡¡¡/* ¸¶ÅÀ¤ÈÅÀ (x, y) ¤Îµ÷Î¥¤òµá¤á¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡ * [in] ¡¡¡¡¡¡¡¡ *¡¡¡¡x, y¡¡¡¡¡¡¡¡¡¡¡¡µ÷Î¥¤òµá¤á¤ëºÂɸ ¡¡¡¡¡¡¡¡ * [out] ¡¡¡¡¡¡¡¡ *¡¡¡¡Ìá¤êÃÍ¡¡¡¡¡¡¡¡¡¡¸¶ÅÀ¤ÈÅÀ (x, y) ¤Îµ÷Î¥ ¡¡¡¡¡¡¡¡ * [note] ¡¡¡¡¡¡¡¡ *¡¡¡¡* µ÷Î¥¤Î¶á»÷¤ò¤â¤È¤á¤ë·×»»¼°¡§ ¡¡¡¡¡¡¡¡ *¡¡¡¡¡¡|x|>|y|¤Î¤È¤­¡¢|x|*0.9604+|y|*0.3978 ¡¡¡¡¡¡¡¡ *¡¡¡¡¡¡¡Ê¸íº¹¤Ï¡ÞÌó£´¡ó¡Ë ¡¡¡¡¡¡¡¡ */ ¡¡¡¡¡¡¡¡int hypot2(int x, int y); ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡asm(" ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡.align 1 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡.global hypot2 ¡¡¡¡¡¡¡¡hypot2: ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡cmp %r12, 0 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡; %r12 = |x| ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡jrge 3 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ not %r12, %r12 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ add %r12, 1 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡cmp %r13, 0 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡; %r13 = |y| ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡jrge 3 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ not %r13, %r13 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ add %r13, 1 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡cmp %r12, %r13¡¡¡¡¡¡¡¡¡¡¡¡; if(|x| < |y|) %r12 exch %r13 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡jrge 4 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ xor %r13, %r12 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ xor %r12, %r13 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ xor %r13, %r12 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡xld.w %r4, 0xf5dcc63f ¡¡¡¡; %r10 = |x| * (0.9604 << 32) ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mltu.w %r12, %r4 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ld.w %r10, %ahr ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡xld.w %r4, 0x65d63886 ¡¡¡¡; %r10 += |y| * (0.3978 << 32) ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mltu.w %r13, %r4 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ld.w %r4, %ahr ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡add %r10, %r4 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ret ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡"); »È¤¤Êý¤Ï¥ª¥ê¥¸¥Ê¥ë¤Î hypot2() ¤ÈƱ¤¸¤Ç¤¹¡£ ¤³¤Î´Ø¿ô¤ò´Þ¤à¡¢Æ°ºî¸¡¾ÚÍÑ¥×¥í¥°¥é¥à¤Ï¤³¤Á¤é¡£ ¡¡¡¡¡¡¡¡http://www.piece-me.org/archive/hypot-20030503.zip ¥é¥ó¥À¥à¤ÊºÂɸ (x, y) ¤È¸¶ÅÀ (0, 0) ´Ö¤Îµ÷Î¥¤òµá¤á¡¢ËÜÅö¤ÎÃÍ¤È¤Î¸íº¹¤òɽ¼¨¤·¤Þ¤¹¡£ 10000²óÄøÅÙ·«¤êÊÖ¤·¤Æ¤ß¤¿¤È¤³¤í¡¢³Î¤«¤Ë¸íº¹¤¬¡Þ£´¡ó¤òĶ¤¨¤ë¤³¤È¤Ï¤¢¤ê¤Þ¤»¤ó¤Ç¤·¤¿¡£ ;Ã̤ʤ¬¤é¡¢¥¤¥ó¥é¥¤¥ó¥¢¥»¥ó¥Ö¥é asm("¡Á") ¤ò´Ø¿ôÄêµÁ¤Î³°Â¦¤Ç»È¤Ã¤Æ¤¤¤ëÅÀ¤Ë¤´ÃíÌܤ¯¤À¤µ¤¤¡£ C¥³¥ó¥Ñ¥¤¥é¤¬°ÅÌÛ¤ËÀ¸À®¤¹¤ë¥³¡¼¥É¤Î¿´ÇÛ¤ò¤·¤Ê¤¯¤Æ¤¤¤¤¤Î¤Ç¡¢ËͤϺǶᤳ¤ÎÊýË¡¤ò¹¥¤ó¤Ç»È¤Ã¤Æ¤Þ¤¹¡£ ¡ÊñÆȤΥ¢¥»¥ó¥Ö¥é¥½¡¼¥¹¤Ëʬ¤±¤ë¤Î¤¬ÌÌÅݤʤΤǡ¦¡¦¡¦(^^;¡Ë * Fri Apr 12 20:30:00 JST 2003 Naoyuki Sawa - ¼Â¤Ï¥Ç¥£¥ì¥¤¥ÉÌ¿Îá P/ECE¤ÎCPU S1C33209¤Ï¡¢RISC CPU¤ÎÆÃħ¤Î¤Ò¤È¤Ä¡¢¡Ö¥Ç¥£¥ì¥¤¥Éʬ´ôµ¡Ç½¡×¤ò»ý¤Ã¤Æ¤¤¤Þ¤¹¡£ ¥Ç¥£¥ì¥¤¥Éʬ´ôµ¡Ç½¤È¤Ï¡¢Ê¬´ôÌ¿Îá¤Î¼Â¹Ô¤è¤êÀè¤Ëʬ´ôÌ¿Îá¤Îľ¸å¤ÎÌ¿Îá¤ò¼Â¹Ô¤·¡¢¼Â¹Ô¸úΨ¤ò²Ô¤°µ¡Ç½¤Ç¤¹¡£ ¥Ç¥£¥ì¥¤¥Éʬ´ôµ¡Ç½¤ò»È¤¦Ê¬´ôÌ¿Îá¤ò¡¢¡Ö¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¡×¤È¸Æ¤Ó¤Þ¤¹¡£ ¤Þ¤¿¡¢¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¤Îľ¸å¤ËÃÖ¤«¤ì¤ëÌ¿Îá¤ò¡¢¡Ö¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¡×¤È¸Æ¤Ó¤Þ¤¹¡£ ¤Û¤È¤ó¤É¤Îʬ´ôÌ¿Îá¤Ï¡¢¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¤È¤·¤ÆÍøÍѲÄǽ¤Ç¤¹¡£ ¤·¤«¤·¡¢¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¤È¤·¤ÆÍøÍѲÄǽ¤ÊÌ¿Îá¤Ï¤¢¤ëÄøÅٸ¤é¤ì¤Æ¤¤¤Þ¤¹¡£ ñ½ã¤Ê¥ì¥¸¥¹¥¿´Ö¥í¡¼¥ÉÌ¿Îá¤ä²Ã¸º»»¡¦ÏÀÍý±é»»Ì¿Îá¤Ï¡¢¤À¤¤¤¿¤¤¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¤È¤·¤ÆÍøÍѲÄǽ¤Ê¤Î¤Ç¤¹¤¬¡¢ ľ´¶¤ËÈ¿¤·¤Æ¥Ç¥£¥ì¥¤¥ÉÉԲĤÊÌ¿Îá¤â¤¤¤¯¤Ä¤«¤¢¤ë¤Î¤ÇÃí°Õ¤¬É¬ÍפǤ¹¡£ Î㤨¤Ð¡¢Éä¹æ³ÈÄ¥¡¦¥¼¥í³ÈÄ¥¤òȼ¤¦¥ì¥¸¥¹¥¿´Ö¥í¡¼¥ÉÌ¿Î᤬¥Ç¥£¥ì¥¤¥ÉÉԲĤȤ¤¤¦¤Î¤Ï¡¢¤Á¤ç¤Ã¤È¸ÍÏǤ¤¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡ld.b %rd, %rs ¡¡¡¡¡¡¡¡¡ß¥Ç¥£¥ì¥¤¥ÉÉÔ²Ä ¡¡¡¡¡¡¡¡ld.ub %rd, %rs¡¡¡¡¡¡¡¡¡ß¥Ç¥£¥ì¥¤¥ÉÉÔ²Ä ¡¡¡¡¡¡¡¡ld.h %rd, %rs ¡¡¡¡¡¡¡¡¡ß¥Ç¥£¥ì¥¤¥ÉÉÔ²Ä ¡¡¡¡¡¡¡¡ld.uh %rd, %rs¡¡¡¡¡¡¡¡¡ß¥Ç¥£¥ì¥¤¥ÉÉÔ²Ä ¡¡¡¡¡¡¡¡ld.w %rd, %rs ¡¡¡¡¡¡¡¡¡û¥Ç¥£¥ì¥¤¥É²Äǽ ¤½¤Î¾¤Ë¡¢ÈÆÍѥ쥸¥¹¥¿¤ÈÆüì¥ì¥¸¥¹¥¿´Ö¤Î¥í¡¼¥ÉÌ¿Îá¤â¥Ç¥£¥ì¥¤¥ÉÉԲĤȤʤäƤ¤¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡ld.w %rd, %ss ¡¡¡¡¡¡¡¡¡ß¥Ç¥£¥ì¥¤¥ÉÉÔ²Ä ¡¡¡¡¡¡¡¡ld.w %sd, %rs ¡¡¡¡¡¡¡¡¡ß¥Ç¥£¥ì¥¤¥ÉÉÔ²Ä ÈÆÍѥ쥸¥¹¥¿¤ÈÆüì¥ì¥¸¥¹¥¿´Ö¤Î¥í¡¼¥ÉÌ¿Î᤬¥Ç¥£¥ì¥¤¥ÉÉԲĤȤ¤¤¦¤Î¤Ï¡¢´¶³ÐŪ¤ËÍý²ò¤Ç¤­¤Ê¤¯¤â¤¢¤ê¤Þ¤»¤ó¡£ ¡¦¡¦¡¦¤È»×¤Ã¤Æ¤¤¤¿¤Î¤Ç¤¹¤¬¡¢¼Â¤Ï¥Ç¥£¥ì¥¤¥É²Äǽ¤Ç¤·¤¿¡£ º£²ó¤Ï¡¢¤³¤Î·ï¤Ë¤Ä¤¤¤Æµ­Ï¿¤·¤Æ¤ª¤³¤¦¤È»×¤¤¤Þ¤¹¡£ S1C33000¥³¥¢CPU¥Þ¥Ë¥å¥¢¥ë¤Ë¤è¤ë¤È¡¢¡Öld.w %rd,%ss¡×¡Öld.w %sd,%rs¡×¤Ï¥Ç¥£¥ì¥¤¥ÉÉԲĤȤʤäƤ¤¤Þ¤¹¡£ ¡Ê33000Core-J.pdf p.112¡Öld.w %rd,%ss¡×, p.117¡Öld.w %sd,%rs¡×, Appendix-1¡ÖQuick Reference¡×»²¾È¡Ë ¤·¤«¤·¼ÂºÝ¤Ë¤Ï¡¢¤³¤ì¤é¤ÎÌ¿Îá¤â¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¤È¤·¤ÆÍøÍѤǤ­¤ë¤è¤¦¤Ç¤¹¡£ ¤Ê¤¼¤Ê¤é¡¢EPSON¼Ò½ãÀµ¥é¥¤¥Ö¥é¥ê¤Î½ü»»¥ë¡¼¥Á¥ó¤¬¡¢¤³¤ì¤é¤ò¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¤È¤·¤Æ»È¤Ã¤Æ¤¤¤ë¤«¤é¤Ç¤¹¡£ Î㤨¤Ð¡¢Éä¹æÉÕ¤­½ü»»¥ë¡¼¥Á¥ó¤Ï¼¡¤Î¤è¤¦¤Ë¼ÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡__divsi3: ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ld.w %alr, %r12 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡div0s %r13 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ld.w %r4, 0x4 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ld.w %r5, %psr ¡¡¡¡¡¡¡¡__divsi3_loop_start: ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡div1 %r13 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡div1 %r13 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡div1 %r13 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡div1 %r13 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡div1 %r13 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡div1 %r13 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡div1 %r13 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡div1 %r13 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡sub %r4, 0x1 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡jrne.d __divsi3_loop_start¡¡¡¡¡¡<= ¼¡¤ÎÌ¿Î᤬¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¤Ë¤Ê¤ê¤Þ¤¹ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ld.w %psr, %r5¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡<= ld.w %sd(0),%rs(5) ¤ËÁêÅö¤·¤Þ¤¹ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡div2s %r13 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡div3 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ret.d ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡<= ¼¡¤ÎÌ¿Î᤬¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¤Ë¤Ê¤ê¤Þ¤¹ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ld.w %r10, %alr ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡<= ld.w %rd(10),%ss(2) ¤ËÁêÅö¤·¤Þ¤¹ S1C33000¥³¥¢CPU¥Þ¥Ë¥å¥¢¥ë¤Ë¤è¤ë¤È¡¢µ¬Äê¤Î¥Ç¥£¥ì¥¤¥É²Äǽ¤ÊÌ¿Îá°Ê³°¤ò¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¤È¤·¤ÆÍѤ¤¤¿¾ì¹ç¡¢ ¡ÖÆ°ºî¤¬ÉÔ°ÂÄê¤È¤Ê¤ë¡×(p.30¡Ö¥Ç¥£¥ì¥¤¥Éʬ´ôµ¡Ç½¡×»²¾È¡Ë¤È¤¢¤ê¤Þ¤¹¡£ Á°½Ò¤Î½ü»»¥ë¡¼¥Á¥ó¤Î¥±¡¼¥¹¤Ï¤¿¤Þ¤¿¤ÞÆ°¤¤¤Æ¤¤¤Æ¡¢Ê̤ÎÌ¿ÎáʤӤǤϡÖÆ°ºî¤¬ÉÔ°ÂÄê¤È¤Ê¤ë¡×²ÄǽÀ­¤â¤¢¤ë¤Î¤Ç¤¹¤¬¡¢ ¤ï¤¶¤ï¤¶¤½¤ó¤Ê´í¸±¤Ê¼ÂÁõ¤ò¤¹¤ë¤È¤Ï¹Í¤¨¤Å¤é¤¤¤Î¤Ç¡¢¤¿¤Ö¤ó¤¤¤Ä¤Ç¤â¥Ç¥£¥ì¥¤¥É²Äǽ¤Ê¤ó¤¸¤ã¤Ê¤¤¤«¤Ê¡¢¤È»×¤¤¤Þ¤¹¡£ * Fri Feb 14 12:30:00 JST 2003 Naoyuki Sawa - memcpy()¤Ç¥¢¥É¥ì¥¹ÉÔÀ°Îã³° ¡Ø£Ø£Í¥×¥ì¥¤¥ä¡¼¡ÙºîÀ®¤Ë¤ª¤¤¤Æ¡¢¤Ê¤«¤Ê¤«¾Ã¤¨¤Ê¤¤¡Ö¥¢¥É¥ì¥¹ÉÔÀ°Îã³°¡×¤ËǺ¤Þ¤µ¤ì¤Þ¤·¤¿¡£ º£²ó¤Ï¡¢¤½¤ÎÅ¿Ëö¤ò¤Þ¤È¤á¤Æ¤ª¤³¤¦¤È»×¤¤¤Þ¤¹¡£ P/ECE¤ÎCPU¡¦S1C33209¤Ï¡¢¡ÖÉÔÀ°¥¢¥É¥ì¥¹¡×¤«¤é¤Î¥Ç¡¼¥¿Æɤ߽Ф·¤ò¹Ô¤ª¤¦¤È¤¹¤ë¤È¡¢¡Ö¥¢¥É¥ì¥¹ÉÔÀ°Îã³°¡×¤òȯÀ¸¤·¤Þ¤¹¡£ ¡ÖÉÔÀ°¥¢¥É¥ì¥¹¡×¤È¤Ï¡¢Æɤ߽Ф½¤¦¤È¤·¤Æ¤¤¤ë¥Ç¡¼¥¿·¿¤Î¥µ¥¤¥º¤ÎÇÜ¿ô¤Ë¤Ê¤Ã¤Æ¤¤¤Ê¤¤¥¢¥É¥ì¥¹¤Î¤³¤È¤Ç¤¹¡£ Î㤨¤Ð¡¢int·¿¥Ç¡¼¥¿¤òÆɤ߽Ф¹¾ì¹ç¡¢int¤Ï4¥Ð¥¤¥È¤Ç¤¹¤Î¤Ç¡¢Æɤ߽Ф¹¥¢¥É¥ì¥¹¤â4¤ÎÇÜ¿ô¤Ç¤Ê¤±¤ì¤Ð¤¤¤±¤Þ¤»¤ó¡£ ƱÍͤˡ¢short·¿¥Ç¡¼¥¿¤òÆɤ߽Ф¹¾ì¹ç¤Ï¡¢short¤¬2¥Ð¥¤¥È¤Ç¤¹¤«¤é¡¢Æɤ߽Ф¹¥¢¥É¥ì¥¹¤â2¤ÎÇÜ¿ô¤Ç¤Ê¤±¤ì¤Ð¤¤¤±¤Þ¤»¤ó¡£ ¡Ö¥¢¥É¥ì¥¹ÉÔÀ°Îã³°¡×¤¬È¯À¸¤¹¤ë¤È¡¢²èÌ̤ˤϡÖAddress error exception¡×¤Èɽ¼¨¤µ¤ì¡¢¥ê¥»¥Ã¥È¤ò²¡¤¹¤·¤«¤Ê¤¯¤Ê¤ê¤Þ¤¹¡£ °Ê²¼¤Ë¡¢¡Ö¥¢¥É¥ì¥¹ÉÔÀ°Îã³°¡×¤òȯÀ¸¤¹¤ë¥³¡¼¥ÉÎã¤ò¡¢¤¤¤¯¤Ä¤«¼¨¤·¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡int *p, v; p = (int*)0x120000; v = *p;¡¡¡¡/* 0x120000ÈÖÃϤÏ4¤ÎÇÜ¿ô¤Ê¤Î¤Ç¡¢¡Ö¥¢¥É¥ì¥¹ÉÔÀ°Îã³°¡×¤ÏȯÀ¸¤·¤Þ¤»¤ó */ ¡¡¡¡¡¡¡¡int *p, v; p = (int*)0x120001; v = *p;¡¡¡¡/* ¡Ö¥¢¥É¥ì¥¹ÉÔÀ°Îã³°¡×¤¬È¯À¸¤·¤Þ¤¹¡ª */ ¡¡¡¡¡¡¡¡int *p, v; p = (int*)0x120002; v = *p;¡¡¡¡/* ¡Ö¥¢¥É¥ì¥¹ÉÔÀ°Îã³°¡×¤¬È¯À¸¤·¤Þ¤¹¡ª */ ¡¡¡¡¡¡¡¡int *p, v; p = (int*)0x120003; v = *p;¡¡¡¡/* ¡Ö¥¢¥É¥ì¥¹ÉÔÀ°Îã³°¡×¤¬È¯À¸¤·¤Þ¤¹¡ª */ ¡¡¡¡¡¡¡¡int *p, v; p = (int*)0x120004; v = *p;¡¡¡¡/* 0x120004ÈÖÃϤÏ4¤ÎÇÜ¿ô¤Ê¤Î¤Ç¡¢¡Ö¥¢¥É¥ì¥¹ÉÔÀ°Îã³°¡×¤ÏȯÀ¸¤·¤Þ¤»¤ó */ ¡¡¡¡¡¡¡¡shrot *p, v; p = (shrot*)0x120000; v = *p;¡¡¡¡/* 0x120000ÈÖÃϤÏ2¤ÎÇÜ¿ô¤Ê¤Î¤Ç¡¢¡Ö¥¢¥É¥ì¥¹ÉÔÀ°Îã³°¡×¤ÏȯÀ¸¤·¤Þ¤»¤ó */ ¡¡¡¡¡¡¡¡shrot *p, v; p = (shrot*)0x120001; v = *p;¡¡¡¡/* ¡Ö¥¢¥É¥ì¥¹ÉÔÀ°Îã³°¡×¤¬È¯À¸¤·¤Þ¤¹¡ª */ ¡¡¡¡¡¡¡¡shrot *p, v; p = (shrot*)0x120002; v = *p;¡¡¡¡/* 0x120002ÈÖÃϤÏ2¤ÎÇÜ¿ô¤Ê¤Î¤Ç¡¢¡Ö¥¢¥É¥ì¥¹ÉÔÀ°Îã³°¡×¤ÏȯÀ¸¤·¤Þ¤»¤ó */ Ä̾ï¤Î¥×¥í¥°¥é¥à¤Ç¤Ï¡¢¡Ö¥¢¥É¥ì¥¹ÉÔÀ°Îã³°¡×¤ËÃí°Õ¤¹¤ëɬÍפϤ¢¤ê¤Þ¤»¤ó¡£ int¥Ç¡¼¥¿¤Ï4¤ÎÇÜ¿ô¥¢¥É¥ì¥¹¤Ë¡¢short¥Ç¡¼¥¿¤Ï2¤ÎÇÜ¿ô¥¢¥É¥ì¥¹¤Ë¡¢¥³¥ó¥Ñ¥¤¥é¤¬Å¬ÀÚ¤ËÇÛÃÖ¤·¤Æ¤¯¤ì¤ë¤«¤é¤Ç¤¹¡£ Ãí°Õ¤¬É¬Íפˤʤë¤Î¤Ï¡¢¤¢¤é¤«¤¸¤á·è¤á¤é¤ì¤¿·Á¼°¤ò»ý¤Ä¥Ç¡¼¥¿¹½Â¤¤«¤é¡¢¥Ç¡¼¥¿¤òÆɤ߽Ф¹¾ì¹ç¤Ç¤¹¡£ º£²óÌäÂê¤È¤Ê¤Ã¤¿XM·Á¼°¤Î¥Ç¡¼¥¿¹½Â¤¤¬¤Þ¤µ¤Ë¤½¤ì¤Ç¤¹¡£ XM·Á¼°¤Î¥Ç¡¼¥¿¹½Â¤¤Ç¤Ï¡¢´ñ¿ô¸Ä¤Îchar·¿¥Ç¡¼¥¿¤Îľ¸å¤Ë¡¢¶õÇò¤Ê¤·¤Çint·¿¥Ç¡¼¥¿¤¬ÇÛÃÖ¤µ¤ì¤Æ¤¤¤¿¤ê¤·¤Þ¤¹¡£ ¤Ä¤Þ¤ê¡¢int·¿¤Î¥Ç¡¼¥¿¤¬¡ÖÉÔÀ°¥¢¥É¥ì¥¹¡×¤ËÇÛÃÖ¤µ¤ì¤Æ¤¤¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£ ¥á¥â¥ê¾å¤ËÆɤ߹þ¤ó¤ÀXM·Á¼°¤Î¥Ç¡¼¥¿¹½Â¤¤«¤é¡¢¤³¤Î¤è¤¦¤Êint·¿¥Ç¡¼¥¿¤òÆɤ߽Ф½¤¦¤È¤¹¤ë¤È¡¢¡Ö¥¢¥É¥ì¥¹ÉÔÀ°Îã³°¡×¤¬È¯À¸¤·¤Þ¤¹¡£ =============================================================================================================================== ¡ÖÉÔÀ°¥¢¥É¥ì¥¹¡×¤«¤é¤ÎÆɤ߽Ф·¤¬¤Ç¤­¤Ê¤¤¡¢¤È¤¤¤¦À©Ìó¤ò»ý¤Ä¤Î¤Ï¡¢S1C33209¤À¤±¤¬ÆÃÊ̤ǤϤ¢¤ê¤Þ¤»¤ó¡£ ¤¤¤Á¤Ð¤ó¥á¥¸¥ã¡¼¤ÊPentium¥·¥ê¡¼¥ºCPU¤Ë¤Ï¤³¤ÎÀ©Ì󤬤ʤ¤¤â¤Î¤Î¡¢Â¾¤Î¿¤¯¤ÎCPU¤ÏƱÍͤÎÀ©Ìó¤ò»ý¤Ã¤Æ¤¤¤Þ¤¹¡£ ¤Ç¤¹¤«¤é¡¢¡ÖÉÔÀ°¥¢¥É¥ì¥¹¡×¤Ë¥Ç¡¼¥¿¤¬ÇÛÃÖ¤µ¤ì¤Æ¤¤¤ë²ÄǽÀ­¤Î¤¢¤ë¤è¤¦¤Ê¥Ç¡¼¥¿¹½Â¤¤«¤é¥Ç¡¼¥¿Æɤ߽Ф·¤ò¹Ô¤¦¾ì¹ç¤Ï¡¢ ¡Ö¥¢¥É¥ì¥¹ÉÔÀ°Îã³°¡×¤¬È¯À¸¤·¤Ê¤¤¤è¤¦¡¢¥×¥í¥°¥é¥à¦¤ÇÂн褷¤Ê¤±¤ì¤Ð¤¤¤±¤Þ¤»¤ó¡£ ¤¤¤Á¤Ð¤ó¥ª¡¼¥½¥É¥Ã¥¯¥¹¤Ê¤Î¤Ï¡¢¼¡¤Î¤è¤¦¤ÊÊýË¡¤Ç¤¹¡£ ¤É¤ó¤Ê¥¢¥É¥ì¥¹¤«¤é¤Ç¤â¡Ö¥¢¥É¥ì¥¹ÉÔÀ°Îã³°¡×¤Ê¤·¤Ëint·¿¥Ç¡¼¥¿¤òÆɤ߽Ф»¤ë¤è¤¦¤Ê¡¢Êä½õ´Ø¿ô¤òÍÑ°Õ¤·¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡int read_int(const int* p) { ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡const char* pp = (const char*)p; ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡return (pp[0] << 24) | (pp[1] << 16) | (pp[2] << 8) | (pp[3]); ¡¡¡¡¡¡¡¡} 4¥Ð¥¤¥È¤ÎÆɤ߽Ф·¤ò1¥Ð¥¤¥È¤Å¤Ä¹Ô¤Ã¤Æ¤«¤é¡¢int·¿¤ËÁȤßΩ¤Æ¤ÆÊÖ¤·¤Þ¤¹¡£ 1¥Ð¥¤¥È¤Å¤Ä¤ÎÆɤ߽Ф·¤Ê¤é¤Ð¡¢ÀäÂФˡ֥¢¥É¥ì¥¹ÉÔÀ°Îã³°¡×¤ÏȯÀ¸¤·¤Þ¤»¤ó¡£¡Ê1¤ÎÇÜ¿ô¤Ç¤Ê¤¤¥¢¥É¥ì¥¹¤Ï¤Ê¤¤¤«¤é¡Ë ¤³¤ÎÊä½õ´Ø¿ô¤ò»È¤¨¤Ð¡¢°ú¿ôp¤Ë¤É¤ó¤Ê¥¢¥É¥ì¥¹¤¬»ØÄꤵ¤ì¤¿¤È¤·¤Æ¤â¡¢¤½¤³¤«¤éint·¿¤Î¥Ç¡¼¥¿¤¬Æɤ߽Ф»¤ë¤ï¤±¤Ç¤¹¡£ ¤½¤ì¤Ç¤Ï¡¢¤³¤ÎÊä½õ´Ø¿ô¤ò»È¤Ã¤Æ¡¢Àè¤Û¤Éµó¤²¤¿Îã¤ò½ñ¤­Ä¾¤·¤Æ¤ß¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡int *p, v; p = (int*)0x120000; v = read_int(p);¡¡¡¡/* £Ï£Ë¡ª */ ¡¡¡¡¡¡¡¡int *p, v; p = (int*)0x120001; v = read_int(p);¡¡¡¡/* £Ï£Ë¡ª */ ¡¡¡¡¡¡¡¡int *p, v; p = (int*)0x120002; v = read_int(p);¡¡¡¡/* £Ï£Ë¡ª */ ¡¡¡¡¡¡¡¡int *p, v; p = (int*)0x120003; v = read_int(p);¡¡¡¡/* £Ï£Ë¡ª */ ¡¡¡¡¡¡¡¡int *p, v; p = (int*)0x120004; v = read_int(p);¡¡¡¡/* £Ï£Ë¡ª */ =============================================================================================================================== °Ê¾å¤ÎÊýË¡¤¬¡¢¥ª¡¼¥½¥É¥Ã¥¯¥¹¤«¤ÄÀµ¤·¤¤ÊýË¡¤Ç¤¹¡£ ¡¦¡¦¡¦¤¬¡¢¤·¤«¤·¡£Ëͤϥº¥Ü¥é¤Ê¤Î¤Ç¡¢read_int()¤ò¼¡¤Î¤è¤¦¤ËÄêµÁ¤·¤Æ¤·¤Þ¤¤¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡int read_int(const int* p) { int v; memcpy(&v, p, sizeof v); return v; } ¤É¤³¤é¤Ø¤ó¤¬¥º¥Ü¥é¤«¤È¤¤¤¤¤Þ¤¹¤È¡¢¤¤¤í¤¤¤í¤Ê·¿¤Î¤¿¤á¤ÎÊä½õ´Ø¿ô¤òÄɲ乤ë¾ì¹ç¡¢µ¡³£Åª¤Ê½ñ¤­´¹¤¨¤ÇÂбþ¤Ç¤­¤ëÅÀ¤Ç¤¹¡£ ¡¡¡¡¡¡¡¡ int read_int (const int * p) { int v; memcpy(&v, p, sizeof v); return v; } ¡¡¡¡¡¡¡¡ short read_short (const short * p) { short v; memcpy(&v, p, sizeof v); return v; } ¡¡¡¡¡¡¡¡unsigned int read_unsigned_int (const unsigned int * p) { unsigned int v; memcpy(&v, p, sizeof v); return v; } ¡¡¡¡¡¡¡¡unsigned short read_unsigned_short(const unsigned short * p) { unsigned short v; memcpy(&v, p, sizeof v); return v; } ¡¡¡¡¡¡¡¡ float read_float (const float * p) { float v; memcpy(&v, p, sizeof v); return v; } ¡¡¡¡¡¡¡¡ double read_double (const double* p) { double v; memcpy(&v, p, sizeof v); return v; } ¤Á¤Ê¤ß¤Ë¡¢¥ª¡¼¥½¥É¥Ã¥¯¥¹¤ÊÊýË¡¤Çread_short()¤äread_double()¤ò¼ÂÁõ¤¹¤ë¤È¡¢¤³¤¦¤Ê¤ê¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡short read_short(const short* p) { ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡const char* pp = (const char*)p; ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡return (pp[0] << 8) | (pp[3]); ¡¡¡¡¡¡¡¡} ¡¡¡¡¡¡¡¡float read_double(const double* p) { ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡const char* pp = (const char*)p; ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡char v[8]; ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡v[0] = pp[0]; ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡v[1] = pp[1]; ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡v[2] = pp[2]; ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡v[3] = pp[3]; ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡v[4] = pp[4]; ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡v[5] = pp[5]; ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡v[6] = pp[6]; ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡v[7] = pp[7]; ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡return *(double*)v; ¡¡¡¡¡¡¡¡} ¤Þ¤¢¤³¤ÎÄøÅ٤Ǥ¹¤Î¤ÇÂ礷¤¿¼ê´Ö¤Ç¤Ï¤Ê¤¤¤Î¤Ç¤¹¤¬¡¢¤³¤ÎÄøÅ٤μê´Ö¤âÀˤ·¤à¤Û¤É¥º¥Ü¥é¤À¤È¤¤¤¦¡Ä(^^; ¤³¤ì¤Þ¤ÇP/ECE°Ê³°¤Î´Ä¶­¤Ç¤â¡¢memcpy()¤ò»È¤Ã¤¿¥º¥Ü¥éÈÇÊä½õ´Ø¿ô¤ò»È¤Ã¤Æ¤¤¤Þ¤·¤¿¤·¡¢¤½¤ì¤Ç¾å¼ê¤¯¤¤¤Ã¤Æ¤¤¤ë¤È»×¤Ã¤Æ¤¤¤Þ¤·¤¿¡£ ¡¦¡¦¡¦¤¬¡¢¤½¤ì¤Ï´Ö°ã¤¤¤Ç¤·¤¿¡£ =============================================================================================================================== ¥º¥Ü¥éÈÇÊä½õ´Ø¿ô¤Ï¡¢memcpy()¤¬ÆâÉô¤Ç¥Ç¡¼¥¿¤ò1¥Ð¥¤¥È¤Å¤Ä¥³¥Ô¡¼¤·¤Æ¤¯¤ì¤ë¤³¤È¤òÁ°Äó¤È¤·¤Æ¤¤¤Þ¤¹¡£ ¤¤¤ä¡¢Îɤ¯½ÐÍ褿memcpy()¤Î¼ÂÁõ¤Î¾ì¹ç¡¢»ØÄꤵ¤ì¤¿Å¾Á÷¸µ¡¦Å¾Á÷À襢¥É¥ì¥¹¤ÈžÁ÷¥µ¥¤¥º¤Ë¤è¤Ã¤Æ¤Ï¡¢ ¿ô¥Ð¥¤¥È¤Å¤Ä¤Î¥³¥Ô¡¼¤ò¹Ô¤Ã¤Æ½èÍý¤ò¹â®²½¤¹¤ë¤È¤Ïʹ¤¤¤Æ¤¤¤Þ¤·¤¿¤¬¡¢ ¾¯¤Ê¤¯¤È¤â¡Ö¥¢¥É¥ì¥¹ÉÔÀ°Îã³°¡×¤¬È¯À¸¤¹¤ë¤è¤¦¤ÊÊýË¡¤ÏºÎ¤é¤ì¤Ê¤¤¤â¤Î¤È»×¤¤¹þ¤ó¤Ç¤¤¤Þ¤·¤¿¡£ ¤È¤³¤í¤¬¡¢¥³¥ó¥Ñ¥¤¥é¤Ë¤è¤ëºÇŬ²½¤¬Íí¤ó¤Ç¤¯¤ë¤È¡¢É¬¤º¤·¤â¤½¤¦¤È¤Ï¸À¤¨¤Ê¤¤¤è¤¦¤Ê¤Î¤Ç¤¹¡£ ¤½¤ì¤Ç¤Ï¤Þ¤º¡¢¡Ö¥¢¥É¥ì¥¹ÉÔÀ°Îã³°¡×¤òȯÀ¸¤¹¤ëmemcpy()¤Î»ÈÍÑÎã¤ò¼¨¤·¤Þ¤¹¡£ ------------------------------------------------------------------------------------------------------------------------------- ¡¡¡¡¡¡¡¡#include ¡¡¡¡¡¡¡¡#include ¡¡¡¡¡¡¡¡ ¡¡¡¡¡¡¡¡volatile int* ptr; ¡¡¡¡¡¡¡¡volatile int val; ¡¡¡¡¡¡¡¡volatile char data[] = { 0,1,2,3,4,5 }; ¡¡¡¡¡¡¡¡/* ¤³¤³¤òÆɤߤޤ¹ ~~~~~~~ */ ¡¡¡¡¡¡¡¡ ¡¡¡¡¡¡¡¡int read_int(const int* p) { int v; memcpy(&v, p, sizeof v); return v; } ¡¡¡¡¡¡¡¡ ¡¡¡¡¡¡¡¡void pceAppInit() { } ¡¡¡¡¡¡¡¡void pceAppExit() { } ¡¡¡¡¡¡¡¡void pceAppProc(int count) { ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ptr = (int*)&data[1]; ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡val = read_int(ptr); ¡¡¡¡¡¡¡¡} ------------------------------------------------------------------------------------------------------------------------------- ÊÑ¿ô¤Ëvolatile»ØÄê¤òÄɲ䷤Ƥ¤¤ë¤Î¤Ï¡¢ºÇŬ²½¤Ë¤è¤Ã¤ÆÆɤ߽Ф·½èÍý¤½¤Î¤â¤Î¤¬ºï¤é¤ì¤Æ¤·¤Þ¤ï¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¤¿¤á¤Ç¤¹¡£ Æä˽ÅÍפʰÕÌ£¤Ï¤¢¤ê¤Þ¤»¤ó¡£ ¤µ¤Æ¡¢¤³¤Î¥×¥í¥°¥é¥à¤òºÇŬ²½¥ª¥×¥·¥ç¥ó¡Ö-O2¡×¤ò»ØÄꤷ¤Æ¥³¥ó¥Ñ¥¤¥ë¤·¤Þ¤¹¡£ ¤½¤·¤Æ¼Â¹Ô¤¹¤ë¤È¡¦¡¦¡¦¡Ö¥¢¥É¥ì¥¹ÉÔÀ°Îã³°¡×¤¬È¯À¸¤·¤Þ¤¹¡ª ¡Ö-ls¡×¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¤Æ¥·¥ó¥Ü¥ë¥Õ¥¡¥¤¥ë¤òºîÀ®¤·¤Æ¤ß¤ë¤È¡¢data[]ÇÛÎó¤Ï0x100264ÈÖÃϤ˳ÎÊݤµ¤ì¤Æ¤¤¤Þ¤·¤¿¡£ ¥×¥í¥°¥é¥à¤Ç¤Ï&data[1]¤«¤éÆɤ߽Ф½¤¦¤È¤·¤Æ¤¤¤ë¤Î¤Ç¡¢¤Ä¤Þ¤ê0x100265ÈÖÃϤ«¤éint·¿¥Ç¡¼¥¿¤òÆɤ߽Ф·¤Æ¤¤¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£ ¤½¤Î¤Þ¤ÞÆɤ߽Ф·¤¿¤Î¤Ç¤Ï¡Ö¥¢¥É¥ì¥¹ÉÔÀ°Îã³°¡×¤¬È¯À¸¤¹¤ë¤Î¤ÏɬÁ³¤Ç¤¹¤¬¡¢º£²ó¤Ï¤Á¤ã¤ó¤ÈÊä½õ´Ø¿ô¤ò»È¤Ã¤Æ¤¤¤Þ¤¹¡£ ¤Ë¤â¤«¤«¤ï¤é¤º¡Ö¥¢¥É¥ì¥¹ÉÔÀ°Îã³°¡×ȯÀ¸¡£¤Ê¤¼¡© =============================================================================================================================== memcpy()¤Î¤È¤³¤í¤Ç¡¢¥³¥ó¥Ñ¥¤¥é¤Ï¤É¤Î¤è¤¦¤Ê¥³¡¼¥É¤òÀ¸À®¤·¤Æ¤¤¤ë¤Î¤Ç¤·¤ç¤¦¤«¡© ¡Ö-b¡×¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¤Æ¡¢¥³¥ó¥Ñ¥¤¥é¤¬À¸À®¤·¤¿¥¢¥»¥ó¥Ö¥é¥½¡¼¥¹¤ò³Îǧ¤·¤Æ¤ß¤Þ¤¹¡£ ¢¨Æɤߤ䤹¤¤¤è¤¦¤Ë¡¢¾¯¤·ÊÔ½¸¤·¤Æ¤¢¤ê¤Þ¤¹¡£ ----------------------------------------[S1C33ÍÑgcc¤ÎÀ¸À®¥³¡¼¥É]--------------------------------------------------------------- ¡¡¡¡¡¡¡¡read_int: ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡xsub %sp, %sp, 4 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡xld.w %r10, [%r12] ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡xld.w [%sp], %r10 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡xadd %sp, %sp, 4 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ret ¡¡¡¡¡¡¡¡ ¡¡¡¡¡¡¡¡pceAppProc: ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡xld.w %r12, data+1 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡xld.w [ptr], %r12 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡xcall read_int ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡xld.w [val], %r10 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ret ------------------------------------------------------------------------------------------------------------------------------- ¤Ê¤ó¤È¡¢Ã±¤Ê¤ëint·¿¥Ç¡¼¥¿¤ÎÆɤ߽Ф·¡¦³ÊǼ¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤Ã¤Æ¤¤¤Þ¤¹¡ª ¡Ö¥¢¥É¥ì¥¹ÉÔÀ°Îã³°¡×¤¬È¯À¸¤¹¤ë¤ï¤±¤Ç¤¹¡£ ¤³¤ì¤ÏÌÀ¤é¤«¤Ë¡¢¥³¥ó¥Ñ¥¤¥é¤ÎºÇŬ²½¤Ë¤è¤ëÉûºîÍѤǤ¹¡£ ¤Ç¤Ï¡¢¤³¤Î¤è¤¦¤ÊºÇŬ²½¤¬¹Ô¤ï¤ì¤ë¤Î¤Ï ¡¦P/ECE¤Î¥³¥ó¥Ñ¥¤¥é¡ÊS1C33ÍÑgcc¡Ë¤¬ÆÃÊ̤ʤΤǤ·¤ç¤¦¤«¡© ¡¦¤½¤ì¤È¤â¡¢gcc¤Ê¤é¤É¤ì¤Ç¤â¤½¤¦¤Ê¤Î¤Ç¤·¤ç¤¦¤«¡© ¡¦¤¢¤ë¤¤¤Ï¡¢¤É¤Î¥³¥ó¥Ñ¥¤¥é¤Ç¤â¤¿¤¤¤Æ¤¤¤³¤¦¤Ê¤ë¤Î¤Ç¤·¤ç¤¦¤«¡© ¤Þ¤º¤Ï¡¢Â¾¤ÎCPUÍѤÎgcc¤Ç³Îǧ¤·¤Æ¤ß¤Þ¤¹¡£ SPARCÍÑgcc¤ÇƱÍÍ¤Î¥×¥í¥°¥é¥à¤ò»î¤·¤Æ¤ß¤ë¤È¡¢¤ä¤Ï¤ê¡Ö¥¢¥É¥ì¥¹ÉÔÀ°Îã³°¡×¤Ë¤Ê¤ê¤Þ¤·¤¿¡£ ¡ÊLinux¾å¤Ç»î¤·¤¿¤Î¤Ç¡¢²èÌÌɽ¼¨¤Ï¡ÖBus Error¡×¤È¤Ê¤ê¤Þ¤¹¡£¡Ë ¥³¥ó¥Ñ¥¤¥é¤¬À¸À®¤·¤¿¥¢¥»¥ó¥Ö¥é¥½¡¼¥¹¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£ ¢¨Æɤߤ䤹¤¤¤è¤¦¤Ë¡¢¾¯¤·ÊÔ½¸¤·¤Æ¤¢¤ê¤Þ¤¹¡£ ----------------------------------------[SPARCÍÑgcc¤ÎÀ¸À®¥³¡¼¥É]--------------------------------------------------------------- ¡¡¡¡¡¡¡¡read_int: ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡retl ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ld [%o0], %o0 ¡¡¡¡¡¡¡¡ ¡¡¡¡¡¡¡¡main: ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡save %sp, -104, %sp ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡sethi %hi(data+1), %o0 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡call read_int,0 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡or %o0, %lo(data+1), %o0 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ret ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡restore %g0, %o0, %o0 ------------------------------------------------------------------------------------------------------------------------------- Ëͤϡ¢SPARC¥×¥í¥»¥Ã¥µ¤Î¥¢¥»¥ó¥Ö¥é¤Ï¤¼¤ó¤¼¤óÆɤá¤Þ¤»¤ó¤¬¡¢read_int()¤¬1¥Ð¥¤¥È¤Å¤Ä¥³¥Ô¡¼¤·¤Æ¤¤¤Ê¤¤¤Î¤Ï¤ï¤«¤ê¤Þ¤¹¡£ ¡Ê¤¢¤È;Ã̤Ǥ¹¤¬¡¢¥Ç¥£¥ì¥¤¥¹¥í¥Ã¥È¤Ë¤è¤ëºÇŬ²½¤ÇÌ¿Îá¤Î½çÈÖ¤¬Æþ¤ìÂؤï¤Ã¤¿¤ê¤·¤Æ¤¤¤ë¤Î¤¬¸«¤¨¤Þ¤¹¡£ ¡¡¤Þ¤¿¡¢P/ECE¤ÎS1C33ÍÑgcc¤Ï¡¢SPARCÍÑgcc¤Ë³Ó¤Ù¤Æ¡¢ÉÔÍ×¤Ê¥í¡¼¥«¥ëÊÑ¿ô¤Îºï½ü¤Ë¤è¤ëºÇŬ²½¤¬¤Þ¤À¤Þ¤À¼å¤¤¤³¤È¤â¤ï¤«¤ê¤Þ¤¹¡£¡Ë ¤É¤¦¤ä¤égcc¤ò»È¤Ã¤ÆºÇŬ²½¥³¥ó¥Ñ¥¤¥ë¤ò¹Ô¤¦¤È¡¢¤À¤¤¤¿¤¤Æ±¤¸¤è¤¦¤Ê·ë²Ì¤Ë¤Ê¤ë¤è¤¦¤Ç¤¹¡£ ¤½¤ì¤Ç¤Ï¡¢Ê̤Υ³¥ó¥Ñ¥¤¥é¤Ç¤Ï¤É¤¦¤Ç¤·¤ç¤¦¤«¡© VisualC++6.0¤ò»È¤Ã¤Æ¡¢Æ±ÍÍ¤Î¥×¥í¥°¥é¥à¤ò¥³¥ó¥Ñ¥¤¥ë¤·¤Æ¤ß¤Þ¤¹¡£ ºÇŬ²½¥ª¥×¥·¥ç¥ó¤Ï¡¢Release¥Ó¥ë¥É¤Î½é´üÀßÄê¤Î¤Þ¤Þ¤È¤·¤Þ¤·¤¿¡£ ¢¨Æɤߤ䤹¤¤¤è¤¦¤Ë¡¢¾¯¤·ÊÔ½¸¤·¤Æ¤¢¤ê¤Þ¤¹¡£ ----------------------------------------[PentiumÍÑVisualC++6.0¤ÎÀ¸À®¥³¡¼¥É]---------------------------------------------------- ¡¡¡¡¡¡¡¡read_int: ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mov eax, dword ptr [esp+4] ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mov eax, dword ptr [eax] ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ret ¡¡¡¡¡¡¡¡ ¡¡¡¡¡¡¡¡main: ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡push offset data+1 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡call read_int ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡add esp, 4 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ret ------------------------------------------------------------------------------------------------------------------------------- Ʊ¤¸¤Ç¤¹¡£¤ä¤Ï¤ê¡¢read_int()¤Ï1¥Ð¥¤¥È¤Å¤Ä¥³¥Ô¡¼¤·¤Æ¤¤¤Þ¤»¤ó¡£ ¡Ê¤¿¤À¤·Pentium¤Î¾ì¹ç¤Ï¤½¤â¤½¤â¡Ö¥¢¥É¥ì¥¹ÉÔÀ°Îã³°¡×¤ÎÀ©Ì󤬤¢¤ê¤Þ¤»¤ó¤Î¤Ç¡¢¤³¤Î¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤·¤Æ¤âÌäÂê¤Ï½Ð¤Þ¤»¤ó¡£¡Ë ¤É¤¦¤ä¤é¤É¤Î¥³¥ó¥Ñ¥¤¥é¤Ç¤â¡¢memcpy()¤¬ºÇŬ²½¤µ¤ì¤ÆÉÔÀ°¥¢¥É¥ì¥¹¤«¤é¤ÎÆɤ߽Ф·¤¬È¯À¸¤¹¤ë²ÄǽÀ­¤Ï¤¢¤ë¤è¤¦¤Ç¤¹¡£ ¤·¤«¤·¡¢¤³¤ó¤Ê½ÅÂç¤ÊÌäÂê¤Ë¤³¤ì¤Þ¤Çµ¤¤¬ÉÕ¤«¤Ê¤«¤Ã¤¿¤È¤Ï¡¦¡¦¡¦ Î㤨¤Ð¡¢P/ECE¤Ç²¾ÁÛVRAM¤Î(0,1)¡Á(0,4)¤Î¥Ô¥¯¥»¥ë¤ò(1,1)¡Á(1,4)¤Ø¥³¥Ô¡¼¤·¤è¤¦¤È¤·¤¿¤é¡¢¡Ö¥¢¥É¥ì¥¹ÉÔÀ°Îã³°¡×¤Ë¤Ê¤ë¤Î¤Ç¤·¤ç¤¦¤«¡© ------------------------------------------------------------------------------------------------------------------------------- ¡¡¡¡¡¡¡¡#include ¡¡¡¡¡¡¡¡ ¡¡¡¡¡¡¡¡unsigned char vbuff[128 * 88]; ¡¡¡¡¡¡¡¡ ¡¡¡¡¡¡¡¡void pceAppInit() { ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡pceLCDSetBuffer(vbuff); ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡pceLCDDispStart(); ¡¡¡¡¡¡¡¡} ¡¡¡¡¡¡¡¡void pceAppExit() { } ¡¡¡¡¡¡¡¡void pceAppProc(int count) { ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡unsigned char *src, *dst; ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡src = &vbuff[ 1]; ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡dst = &vbuff[129]; ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡memcpy(dst, src, 4); ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡pceLCDTrans(); ¡¡¡¡¡¡¡¡} ------------------------------------------------------------------------------------------------------------------------------- »î¤·¤Æ¤ß¤ë¤È¡¦¡¦¡¦¡Ö¥¢¥É¥ì¥¹ÉÔÀ°Îã³°¡×¤ÏȯÀ¸¤·¤Þ¤»¤ó¡£ ¤½¤ê¤ã¤¢¡¡¡¢¤³¤ì¤Ç¡Ö¥¢¥É¥ì¥¹ÉÔÀ°Îã³°¡×¤¬È¯À¸¤¹¤ë¤Î¤Ê¤é¡¢¤È¤Ã¤¯¤Ëµ¤ÉÕ¤¤¤Æ¤¤¤ë¤Ï¤º¤Ç¤¹¤è¤Í¡£ À¸À®¤µ¤ì¤ë¥³¡¼¥É¤Ï¼¡¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£ ¢¨Æɤߤ䤹¤¤¤è¤¦¤Ë¡¢¾¯¤·ÊÔ½¸¤·¤Æ¤¢¤ê¤Þ¤¹¡£ ------------------------------------------------------------------------------------------------------------------------------- ¡¡¡¡¡¡¡¡pceAppProc: ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡xld.w %r13, vbuff+1 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡xadd %r12, %r13, 128 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡xld.w %r14, 0x00000004 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡xcall memcpy ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡xcall pceLCDTrans ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ret ------------------------------------------------------------------------------------------------------------------------------- Ʊ¤¸4¥Ð¥¤¥È¤Î¥³¥Ô¡¼¤Ê¤Î¤Ë¡¢¤³¤Á¤é¤Ï¤Á¤ã¤ó¤Èmemcpy()´Ø¿ô¤¬¸Æ¤Ó½Ð¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ ¡Ö¥¢¥É¥ì¥¹ÉÔÀ°Îã³°¡×¤Ë¤Ê¤ëÎã¤È¤Î°ã¤¤¤Ï¡¦¡¦¡¦memcpy()¤ËÅϤ·¤Æ¤¤¤ë¥Ý¥¤¥ó¥¿¤Î·¿¤Ç¤·¤ç¤¦¤«¡© ¤½¤ì¤Ç¤Ï¡¢¥×¥í¥°¥é¥à¤ò¼¡¤Î¤è¤¦¤ËÊѹ¹¤·¤Æ¡¢¤â¤¦¤¤¤Á¤É»î¤·¤Æ¤ß¤Þ¤¹¡£ ------------------------------------------------------------------------------------------------------------------------------- ¡¡¡¡¡¡¡¡#include ¡¡¡¡¡¡¡¡ ¡¡¡¡¡¡¡¡unsigned char vbuff[128 * 88]; ¡¡¡¡¡¡¡¡ ¡¡¡¡¡¡¡¡void pceAppInit() { ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡pceLCDSetBuffer(vbuff); ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡pceLCDDispStart(); ¡¡¡¡¡¡¡¡} ¡¡¡¡¡¡¡¡void pceAppExit() { } ¡¡¡¡¡¡¡¡void pceAppProc(int count) { ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡int *src, *dst; ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡src = (int*)&vbuff[ 1]; ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡dst = (int*)&vbuff[129]; ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡memcpy(dst, src, 4); ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡pceLCDTrans(); ¡¡¡¡¡¡¡¡} ------------------------------------------------------------------------------------------------------------------------------- ¤Ç¡¢¼Â¹Ô¤·¤Æ¤ß¤ë¤È¡¦¡¦¡¦¡Ö¥¢¥É¥ì¥¹ÉÔÀ°Îã³°¡×¤¬È¯À¸¤·¤Þ¤·¤¿¡ª À¸À®¤µ¤ì¤ë¥³¡¼¥É¤Ï¼¡¤ÎÄ̤ꡣ ¢¨Æɤߤ䤹¤¤¤è¤¦¤Ë¡¢¾¯¤·ÊÔ½¸¤·¤Æ¤¢¤ê¤Þ¤¹¡£ ------------------------------------------------------------------------------------------------------------------------------- ¡¡¡¡¡¡¡¡pceAppProc: ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡xld.w %r11, vbuff+1 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡xld.w %r10, [%r11] ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡xld.w [%r11+128], %r10 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡xcall pceLCDTrans ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ret ------------------------------------------------------------------------------------------------------------------------------- vbuff[1]¤Î°ÌÃÖ¤«¤éint·¿¤ÇÆɤ߽Ф·¤ò¹Ô¤¤¡¢vbuff[1+128]¤Î°ÌÃ֤˳ÊǼ¤·¤è¤¦¤È¤·¤Æ¤¤¤Þ¤¹¡£ ¤Ê¤ó¤È¤Ê¤¯¸«¤¨¤Æ¤­¤Þ¤·¤¿¡£ ¡¡¡¡¡¡¡¡memcpy()¤Ëint*·¿¤Î¥Ý¥¤¥ó¥¿¤òÅϤ¹¤È¡¢Ã±¤Ê¤ëint·¿¥Ç¡¼¥¿¤ÎÆɤ߽Ф·¤È¤·¤ÆºÇŬ²½¤µ¤ì¤ë²ÄǽÀ­¤¬¤¢¤ë¡£ ¡¡¡¡¡¡¡¡¤½¤ÎºÝ¡¢¥Ý¥¤¥ó¥¿¤¬¡ÖÉÔÀ°¥¢¥É¥ì¥¹¡×¤ò»Ø¤·¤Æ¤¤¤ë¤«¤É¤¦¤«¤ÏÄ´¤Ù¤é¤ì¤Ê¤¤¡£ ¡¡¡¡¡¡¡¡·ë²Ì¡¢¥Ý¥¤¥ó¥¿¤¬¡ÖÉÔÀ°¥¢¥É¥ì¥¹¡×¤ò»Ø¤·¤Æ¤¤¤¿¤Ê¤é¡¢¡Ö¥¢¥É¥ì¥¹ÉÔÀ°Îã³°¡×¤¬È¯À¸¤¹¤ë¡£ P/ECE¤Î²¾ÁÛVRAM¤ò°·¤¦¾ì¹ç¤Ï¡¢¤¿¤¤¤Æ¤¤unsigned char*·¿¤Î¥Ý¥¤¥ó¥¿¤òÅϤ¹¤Î¤Ç¡¢ÌäÂê¤Ë¤Ê¤é¤Ê¤«¤Ã¤¿¤Î¤Ç¤¹¤Í¡£ =============================================================================================================================== ²óÈòÊýË¡¤Ï¼¡¤Î¤È¤ª¤ê¤Ç¤¹¡£ £±¡¥¥ª¡¼¥½¥É¥Ã¥¯¥¹¤Êread_int()¤ò»È¤¦¡£ ¡¡¡¡¤Ä¤Þ¤ê¡¢memcpy()¤ò»È¤ï¤º¡¢ÌÀ¼¨Åª¤Ë1¥Ð¥¤¥È¤Å¤ÄÆɤ߽Ф·¤Æ¡¢ÁȤßΩ¤Æ¤ë¡£ £²¡¥¥º¥Ü¥éÈÇread_int()¤Î°ú¿ô·¿¤òÊѹ¹¤¹¤ë¡£ ¡¡¡¡½¤Àµ¸å¤Îread_int()¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡int read_int(const void* p) { int v; memcpy(&v, p, sizeof v); return v; } ¡¡¡¡¡Ø£Ø£Í¥×¥ì¥¤¥ä¡¼¡Ù¤Ç¤Ï¡¢¤³¤ÎÊýË¡¤Ç²ò·è¤·¤Þ¤·¤¿¡£ £³¡¥ºÇŬ²½¤·¤Ê¤¤¡£ ¡¡¡¡¡Ö-O2¡×¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¤Þ¤»¤ó¡£¤·¤«¤·¤³¤ì¤Ï¡¢¸½¼ÂŪ¤ÊÊýË¡¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£ ¡¡¡¡S1C33ÍÑgcc¤Ë¤Ï¡Ö-mno-memcpy¡×¤È¤¤¤¦¥ª¥×¥·¥ç¥ó¤¬¤¢¤ê¤Þ¤¹¡£ ¡¡¡¡gcc33¥³¥Þ¥ó¥É¤Î»È¤¤Êýɽ¼¨¤Ë¤Ï¡Öinline functions 'strcpy' and 'memcpy'¡×¤È½ñ¤«¤ì¤Æ¤ª¤ê¡¢ ¡¡¡¡¤³¤Î¥³¥ó¥Ñ¥¤¥ë¥ª¥×¥·¥ç¥ó¤ò»È¤Ã¤Æmemcpy()¤ÎºÇŬ²½¤À¤±¤òÀ©¸æ¤Ç¤­¤½¤¦¤Ë¸«¤¨¤Þ¤¹¡£ ¡¡¡¡¤¬¡¢¼ÂºÝ¤Ë¤Ï¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢memcpy()¤ÎºÇŬ²½¤Ë¤Ï´Ø·¸¤Ê¤¤¤è¤¦¤Ç¤¹¡£ ¡¡¡¡¡¡¡¡gcc33 -S -O sample.c ¡¡¡¡¡¡¡¡gcc33 -S -O -mmemcpy sample.c ¡¡¡¡¡¡¡¡gcc33 -S -O -mno-memcpy sample.c ¡¡¡¡¤¤¤º¤ì¤ÎÊýË¡¤Ç¥³¥ó¥Ñ¥¤¥ë¤·¤Æ¤âmemcpy()¤ÏºÇŬ²½¤µ¤ì¤Æ¤·¤Þ¤¤¡¢¡Ö¥¢¥É¥ì¥¹ÉÔÀ°Îã³°¡×¤¬È¯À¸¤·¤Þ¤¹¡£ ¡¡¡¡¤½¤â¤½¤âpcc33·Ðͳ¤Ç¤Ï¡¢gcc33¤Ë¤³¤Î¥ª¥×¥·¥ç¥ó¤òÅϤ»¤Þ¤»¤ó¡£ ¡¡¡¡¤½¤ì¤Ë¡¢°ìÉô¤Îmemcpy()ºÇŬ²½¤Ë¤è¤ëÌäÂê¤ò²óÈò¤¹¤ë¤¿¤á¤À¤±¤Ë¡¢Á´Éô¤ÎºÇŬ²½¤òÍÞÀ©¤·¤Æ¤·¤Þ¤¦¤È¤¤¤¦¤Î¤Ï¤ä¤ê¤¹¤®¤Ç¤¹¡£ =============================================================================================================================== ¤µ¤Æ¡¢¥³¥ó¥Ñ¥¤¥é¤Ë¥±¥Á¤òÉÕ¤±¤ë¤Î¤â¿È¤ÎÄøÃΤ餺¤Ç¤¹¤¬¡¢¤·¤«¤·¤³¤ì¤Ï¤Á¤ç¤Ã¤ÈǼÆÀ¤¤¤«¤Ê¤¤¤è¤¦¤Êµ¤¤â¤·¤Þ¤¹¡£ memcpy()¤òºÇŬ²½¤·¤Æ¤¯¤ì¤ë¤Î¤Ï¤¢¤ê¤¬¤¿¤¤¤Î¤Ç¤¹¤±¤ì¤É¡¢memcpy()¤Î¥×¥í¥È¥¿¥¤¥×¤Ï¤â¤È¤â¤È¼¡¤Î¤è¤¦¤Ê¤â¤Î¤Ç¤¹¡£ ¡¡¡¡¡¡¡¡void* memcpy(void* dst, const void* src, size_t len); memcpy()¼«¿È¤Ï¡¢¼õ¤±¼è¤Ã¤¿¥Ý¥¤¥ó¥¿¤ÎÀµ³Î¤Ê·¿¤òÃΤäƤ¤¤Æ¤Ï¤¤¤±¤Ê¤¤¤Ï¤º¤Ç¤¹¡£ int*·¿¥Ý¥¤¥ó¥¿¤À¤«¤éºÇŬ²½¤¹¤ë¤È¤«¡¢char*·¿¥Ý¥¤¥ó¥¿¤À¤«¤éºÇŬ²½¤·¤Ê¤¤¡¢¤È¤¤¤¦¤ä¤êÊý¤ÏÉԲĤÀ¤È»×¤¦¤Î¤Ç¤¹¤¬¡Ä £Ã¸À¸ì»ÅÍÍŪ¤Ë¤Ï¤É¤¦¤Ê¤Î¤Ç¤·¤ç¤¦¤«¡© ¤â¤·¤«¤·¤¿¤é¡¢int*·¿¥Ý¥¤¥ó¥¿¤Ë¡ÖÉÔÀ°¥¢¥É¥ì¥¹¡×¤òÂåÆþ¤·¤¿»þÅÀ¤Ç´û¤Ë£Ã¸À¸ì»ÅÍÍ°ãÈ¿¤Ê¤Î¤Ç¤·¤ç¤¦¤«¡© Í×Ä´ºº¤Ç¤¹¡£ * Wed Dec 25 00:00:00 JST 2002 Naoyuki Sawa - ISD¥Þ¥Ë¥å¥¢¥ë#3 ¡ÊÁ°²ó¤«¤é¤Î³¤­¡Ä¡Ë º£²ó¤Ï¡¢»Ä¤ê»°¤Ä¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¥³¥Þ¥ó¥É¤Ë¤Ä¤¤¤Æ¤Ç¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡=r¡¡¡¡¡¡¡¡¥Õ¥¡¥¤¥ë¤òÆɤ߽Ф·¤Þ¤¹¡£¡ÊP/ECE¢ªPC¡Ë ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡=d¡¡¡¡¡¡¡¡P/ECE¾å¤Î¥Õ¥¡¥¤¥ë¤òºï½ü¤·¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡=i¡¡¡¡¡¡¡¡¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ò½é´ü²½¤·¤Þ¤¹¡£ ¤·¤«¤·¤Ê¤¬¤é¤³¤ì¤é»°¤Ä¤Î¥³¥Þ¥ó¥É¤Ï¡¢Á°²ó¤ÎÆó¤Ä¤Ë³Ó¤Ù¤Æ¤«¤Ê¤ê»ÈÍÑÉÑÅÙ¤¬Ä㤤¤Ç¤¹¡£ Î㤨¤ÐËͤξì¹ç¡¢¼Â¸³°Ê³°¤Ç¡Ö=r¡×¡Ö=d¡×¤Ï»È¤Ã¤¿¤³¤È¤¬¤Ê¤¯¡¢¡Ö=i¡×¤Ï°ì²ó»È¤Ã¤¿¤À¤±¤Ç¤¹¡£ ¤Ç¤¹¤Î¤Ç¡¢¤³¤ì¤é»°¤Ä¤Î¥³¥Þ¥ó¥É¤Ë¤Ä¤¤¤Æ¤Ï¤¶¤Ã¤Èή¤·¤Æ¤·¤Þ¤¦¤³¤È¤Ë¤·¤Þ¤·¤ç¤¦¡£ ¥³¥Þ¥ó¥É¡Ö=r¡×¤È¡Ö=d¡×¤Ç¤Î¥Õ¥¡¥¤¥ë»ØÄê¤Ë´Ø¤¹¤ë¥ë¡¼¥ë¤Ï¡¢¥³¥Þ¥ó¥É¡Ö=w¡×¤Î¾ì¹ç¤ÈƱ¤¸¤Ê¤Î¤Ç¡¢ ¥³¥Þ¥ó¥É¡Ö=r¡×¤È¡Ö=d¡×¤Ë´Ø¤¹¤ëº£²ó¤ÎÀâÌÀ¤Ï¡¢Á°²ó¤Î¥³¥Þ¥ó¥É¡Ö=w¡×¤ÎÀâÌÀ¤È¤Û¤È¤ó¤ÉƱ¤¸¤Ç¤¹¡£ ¼ÂºÝ¡¢º£²ó¤ÎÀâÌÀ¤ÎÂçÉôʬ¤ÏÁ°²ó¤Î¥³¥Ô¡¼¤Ê¤Î¤Ç¤¹¤¬(^^;¡¢Ç°¤Î¤¿¤á¡¢³ÆÆþÎÏÎã¤ÎÆ°ºî³Îǧ¤Ï¹Ô¤¤¤Þ¤·¤¿¡£ ------------------------------------------------------------------------------------------------------------------------------- -------------------- =r¡§¥Õ¥¡¥¤¥ëÆɤ߽Ф· -------------------- ½ñ¼°¡§¡¡¡¡¡¡¡¡¡¡=r <¥Õ¥¡¥¤¥ë̾> P/ECE¾å¤Ë¤¢¤ë¥Õ¥¡¥¤¥ë¤ò¡¢PC¤ËÆɤ߽Ф·¤Þ¤¹¡£ PC¾å¤Ë´û¤ËƱ̾¤Î¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤·¤¿¾ì¹ç¤Ï¡¢´û¸¤Î¥Õ¥¡¥¤¥ë¤Ë¾å½ñ¤­¤·¤Þ¤¹¡£ Î㣱¡§¡¡¡¡¡¡¡¡¡¡=r date.pex ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡P/ECE¾å¤Ë¤¢¤ë¡Ödate.pex¡×¤ò¡¢PC¤Î¸½ºß¤Îºî¶È¥Õ¥©¥ë¥À¤Ë¡Ödate.pex¡×¤È¤¤¤¦¥Õ¥¡¥¤¥ë̾¤ÇÆɤ߽Ф·¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Æɤ߽Ф·¤ËÀ®¸ù¤¹¤ë¤È¡¢¼¡¤Î¤è¤¦¤Ê½ÐÎϤ¬²èÌ̤Ëɽ¼¨¤µ¤ì¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡reading 'date.pex' done ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡date.pex¤¬Â¸ºß¤·¤Ê¤¤¾ì¹ç¤Ï¡¢Æɤ߽Ф·¤Ë¼ºÇÔ¤·¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡²èÌ̤ˤϲ¿¤âɽ¼¨¤µ¤ì¤º¡¢¤¹¤°¤Ë¼¡¤Î¥³¥Þ¥ó¥ÉÂÔ¤Á¥×¥í¥ó¥×¥È¡Ö>¡×¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£ Î㣲¡§¡¡¡¡¡¡¡¡¡¡=r date ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡P/ECE¾å¤Ë¡Ödate.pex¡×¤¬¤¢¤ì¤Ð¡¢PC¤Î¸½ºß¤Îºî¶È¥Õ¥©¥ë¥À¤Ë¡Ödate.pex¡×¤È¤¤¤¦¥Õ¥¡¥¤¥ë̾¤ÇÆɤ߽Ф·¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¥Õ¥¡¥¤¥ë̾¤Î³ÈÄ¥»Ò¤ò¾Êά¤¹¤ë¤È¡¢³ÈÄ¥»Ò¡Ö.pex¡×¤¬¼«Æ°Åª¤ËÊä¤ï¤ì¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¤â¤·P/ECE¾å¤Ë³ÈÄ¥»Ò¤Ê¤·¤Î¡Ödate¡×¤È¤¤¤¦¥Õ¥¡¥¤¥ë¤¬¤¢¤ê¡¢¤³¤ì¤òÆɤ߹þ¤ß¤¿¤«¤Ã¤¿¤Î¤À¤È¤·¤Æ¤â¡¢ISD¤¬¡Ö.pex¡×¤òÊä¤Ã¤Æ¤·¤Þ¤¤¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡½¾¤Ã¤ÆISD¤Î¡Ö=r¡×¥³¥Þ¥ó¥É¤Ç¤Ï¡¢³ÈÄ¥»Ò¤Î¤Ê¤¤¥Õ¥¡¥¤¥ë̾¤ò»ý¤Ä¥Õ¥¡¥¤¥ë¤òÆɤ߽Ф¹¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡³ÈÄ¥»Ò¤Ê¤·¤Î¥Õ¥¡¥¤¥ë¤òÆɤ߽Ф½¤¦¤È¤·¤Æ¼ºÇÔ¤·¤¿ÍͻҤò¡¢¼¡¤Ë¼¨¤·¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡C:\>isd ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡PIECE Monitor version 1.07 (C)2001-2002 by MIO.H¡¡¡¡¡¡¡¡ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡>=¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÄP/ECE¾å¤Î¥Õ¥¡¥¤¥ë¥ê¥¹¥È¤ò¼èÆÀ¤·¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡+ 0: 2703 startup.pex ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡+ 1: 1221 date¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ä³ÈÄ¥»Ò¤Ê¤·¤Î¡Ödate¡×¤È¤¤¤¦¥Õ¥¡¥¤¥ë¤¬¤¢¤ê¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ 85 sectors (348160 bytes) free¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡>=r date¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ä¡Ödate¡×¤òÆɤ߽Ф·¤Æ¤ß¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡> ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÄISD¤Ï¡Ödate.pex¡×¤òÆɤ߽Ф½¤¦¤È¤·¤Æ¼ºÇÔ¤·¡¢²¿¤âɽ¼¨¤µ¤ì¤Þ¤»¤ó¡£ Î㣳¡§¡¡¡¡¡¡¡¡¡¡=r readme.txt ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ö.pex¡×°Ê³°¤Î³ÈÄ¥»Ò¤ò»ý¤Ä¥Õ¥¡¥¤¥ë¤òÆɤ߽Ф¹¾ì¹ç¤Ï¡¢³ÈÄ¥»Ò¤ò¾Êά¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡É¬¤º¡¢³ÈÄ¥»Ò¤Þ¤Ç´Þ¤á¤Æ»ØÄꤷ¤Æ¤¯¤À¤µ¤¤¡£ Î㣴¡§¡¡¡¡¡¡¡¡¡¡=rdate.pex ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¥³¥Þ¥ó¥É¡Ö=w¡×¤Î¾ì¹ç¤ÈƱ¤¸¤¯¡¢¡Ö=r¡×¤È¥Õ¥¡¥¤¥ë̾¤Î´Ö¤Î¶õÇòʸ»ú¤Ï¡¢¤¢¤Ã¤Æ¤â¤Ê¤¯¤Æ¤â¹½¤¤¤Þ¤»¤ó¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¤³¤ÎÎã¤Î¤è¤¦¤Ë¡¢¡Ö=r¡×¤È¥Õ¥¡¥¤¥ë̾¤ò³¤±¤Æ½ñ¤¤¤Æ¤âÂç¾æÉפǤ¹¡£ °Ê²¼¤Ï°­¤¤Îã¤Ç¤¹¡£ Î㣵¡§¡¡¡¡¡¡¡¡¡¡=r hello.pex world.pex ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ê£¿ô¤Î¥Õ¥¡¥¤¥ë¤ò°ìÅÙ¤ËÆɤ߽Ф¹¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¤³¤ÎÎã¤Î¾ì¹ç¡¢¡Öhello.pex¡×¤ÏÆɤ߽Фµ¤ì¤Þ¤¹¤¬¡¢¡Öworld.pex¡×¤Î»ØÄê¤Ï´°Á´¤Ë̵»ë¤µ¤ì¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¤¹¤Ê¤ï¤Á¡¢ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡=r hello.pex ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¤È»ØÄꤷ¤¿¤Î¤ÈÁ´¤¯Æ±¤¸·ë²Ì¤È¤Ê¤ê¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Öworld.pex¡×¤ò»ØÄꤷ¤¿¤³¤È¤ËÂФ¹¤ë¥¨¥é¡¼¤ä·Ù¹ðÅù¤âɽ¼¨¤µ¤ì¤Þ¤»¤ó¡£ Î㣶¡§¡¡¡¡¡¡¡¡¡¡=w *.pex ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¥ï¥¤¥ë¥É¥«¡¼¥É¤Ë¤è¤ë¥Õ¥¡¥¤¥ë»ØÄê¤Ï¤Ç¤­¤Þ¤»¤ó¡£ ---------------- =d¡§¥Õ¥¡¥¤¥ëºï½ü ---------------- ½ñ¼°¡§¡¡¡¡¡¡¡¡¡¡=d <¥Õ¥¡¥¤¥ë̾> P/ECE¾å¤Ë¤¢¤ë¥Õ¥¡¥¤¥ë¤òºï½ü¤·¤Þ¤¹¡£ Î㣱¡§¡¡¡¡¡¡¡¡¡¡=d date.pex ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡P/ECE¾å¤Ë¤¢¤ë¡Ödate.pex¡×¤òºï½ü¤·¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ºï½ü¤ËÀ®¸ù¤¹¤ë¤È¡¢¼¡¤Î¤è¤¦¤Ê½ÐÎϤ¬²èÌ̤Ëɽ¼¨¤µ¤ì¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡FlashErase c28000 0 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡FlashWrite c28000 130000 1000 0 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡date.pex¤¬Â¸ºß¤·¤Ê¤¤¾ì¹ç¤Ï¡¢ºï½ü¤Ë¼ºÇÔ¤·¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡²èÌ̤ˤϲ¿¤âɽ¼¨¤µ¤ì¤º¡¢¤¹¤°¤Ë¼¡¤Î¥³¥Þ¥ó¥ÉÂÔ¤Á¥×¥í¥ó¥×¥È¡Ö>¡×¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£ Î㣲¡§¡¡¡¡¡¡¡¡¡¡=d date ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡P/ECE¾å¤Ë¡Ödate.pex¡×¤¬¤¢¤ì¤Ð¡¢¡Ödate.pex¡×¤òºï½ü¤·¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¥Õ¥¡¥¤¥ë̾¤Î³ÈÄ¥»Ò¤ò¾Êά¤¹¤ë¤È¡¢³ÈÄ¥»Ò¡Ö.pex¡×¤¬¼«Æ°Åª¤ËÊä¤ï¤ì¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¤â¤·P/ECE¾å¤Ë³ÈÄ¥»Ò¤Ê¤·¤Î¡Ödate¡×¤È¤¤¤¦¥Õ¥¡¥¤¥ë¤¬¤¢¤ê¡¢¤³¤ì¤òºï½ü¤·¤¿¤«¤Ã¤¿¤Î¤À¤È¤·¤Æ¤â¡¢ISD¤¬¡Ö.pex¡×¤òÊä¤Ã¤Æ¤·¤Þ¤¤¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡½¾¤Ã¤ÆISD¤Î¡Ö=d¡×¥³¥Þ¥ó¥É¤Ç¤Ï¡¢³ÈÄ¥»Ò¤Î¤Ê¤¤¥Õ¥¡¥¤¥ë̾¤ò»ý¤Ä¥Õ¥¡¥¤¥ë¤òºï½ü¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡³ÈÄ¥»Ò¤Ê¤·¤Î¥Õ¥¡¥¤¥ë¤òºï½ü¤·¤è¤¦¤È¤·¤Æ¼ºÇÔ¤·¤¿ÍͻҤò¡¢¼¡¤Ë¼¨¤·¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡C:\>isd ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡PIECE Monitor version 1.07 (C)2001-2002 by MIO.H¡¡¡¡¡¡¡¡ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡>=¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÄP/ECE¾å¤Î¥Õ¥¡¥¤¥ë¥ê¥¹¥È¤ò¼èÆÀ¤·¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡+ 0: 2703 startup.pex ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡+ 1: 1221 date¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ä³ÈÄ¥»Ò¤Ê¤·¤Î¡Ödate¡×¤È¤¤¤¦¥Õ¥¡¥¤¥ë¤¬¤¢¤ê¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ 85 sectors (348160 bytes) free¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡>=d date¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ä¡Ödate¡×¤òºï½ü¤·¤Æ¤ß¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡> ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÄISD¤Ï¡Ödate.pex¡×¤òºï½ü¤·¤è¤¦¤È¤·¤Æ¼ºÇÔ¤·¡¢²¿¤âɽ¼¨¤µ¤ì¤Þ¤»¤ó¡£ Î㣳¡§¡¡¡¡¡¡¡¡¡¡=d readme.txt ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ö.pex¡×°Ê³°¤Î³ÈÄ¥»Ò¤ò»ý¤Ä¥Õ¥¡¥¤¥ë¤òºï½ü¤¹¤ë¾ì¹ç¤Ï¡¢³ÈÄ¥»Ò¤ò¾Êά¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡É¬¤º¡¢³ÈÄ¥»Ò¤Þ¤Ç´Þ¤á¤Æ»ØÄꤷ¤Æ¤¯¤À¤µ¤¤¡£ Î㣴¡§¡¡¡¡¡¡¡¡¡¡=ddate.pex ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¥³¥Þ¥ó¥É¡Ö=w¡×¤ä¡Ö=r¡×¤Î¾ì¹ç¤ÈƱ¤¸¤¯¡¢¡Ö=d¡×¤È¥Õ¥¡¥¤¥ë̾¤Î´Ö¤Î¶õÇòʸ»ú¤Ï¡¢¤¢¤Ã¤Æ¤â¤Ê¤¯¤Æ¤â¹½¤¤¤Þ¤»¤ó¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¤³¤ÎÎã¤Î¤è¤¦¤Ë¡¢¡Ö=d¡×¤È¥Õ¥¡¥¤¥ë̾¤ò³¤±¤Æ½ñ¤¤¤Æ¤âÂç¾æÉפǤ¹¡£ °Ê²¼¤Ï°­¤¤Îã¤Ç¤¹¡£ Î㣵¡§¡¡¡¡¡¡¡¡¡¡=d hello.pex world.pex ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ê£¿ô¤Î¥Õ¥¡¥¤¥ë¤ò°ìÅ٤˺ï½ü¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¤³¤ÎÎã¤Î¾ì¹ç¡¢¡Öhello.pex¡×¤Ïºï½ü¤µ¤ì¤Þ¤¹¤¬¡¢¡Öworld.pex¡×¤Î»ØÄê¤Ï´°Á´¤Ë̵»ë¤µ¤ì¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¤¹¤Ê¤ï¤Á¡¢ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡=d hello.pex ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¤È»ØÄꤷ¤¿¤Î¤ÈÁ´¤¯Æ±¤¸·ë²Ì¤È¤Ê¤ê¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Öworld.pex¡×¤ò»ØÄꤷ¤¿¤³¤È¤ËÂФ¹¤ë¥¨¥é¡¼¤ä·Ù¹ðÅù¤âɽ¼¨¤µ¤ì¤Þ¤»¤ó¡£ Î㣶¡§¡¡¡¡¡¡¡¡¡¡=w *.pex ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¥ï¥¤¥ë¥É¥«¡¼¥É¤Ë¤è¤ë¥Õ¥¡¥¤¥ë»ØÄê¤Ï¤Ç¤­¤Þ¤»¤ó¡£ -------------------------- =i¡§¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à½é´ü²½ -------------------------- ½ñ¼°¡§¡¡¡¡¡¡¡¡¡¡=i P/ECE¤Î¥Õ¥é¥Ã¥·¥å¥á¥â¥ê¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ò½é´ü²½¤·¤Þ¤¹¡£ Î㡧¡¡¡¡¡¡¡¡¡¡¡¡=i ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡P/ECE¤Î¥Õ¥é¥Ã¥·¥å¥á¥â¥ê¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ò½é´ü²½¤·¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡³Îǧ¤Î¤¿¤á¡¢ISD¤«¤é¼¡¤Î¤è¤¦¤ÊÌ䤤¹ç¤ï¤»¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Init file system. Sure?(Y/N) ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ËÜÅö¤Ë½é´ü²½¤·¤Æ¤è¤±¤ì¤Ð¡Öy¡×¡¢¤ä¤Ã¤Ñ¤ê¤ä¤á¤ë¤Ê¤é¡Öy¡×°Ê³°¤Î¥­¡¼¤ò²¡¤·¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Öy¡×¥­¡¼¤ò²¡¤¹¤È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤¬½é´ü²½¤µ¤ì¡¢¼¡¤Î¤è¤¦¤Ê½ÐÎϤ¬²èÌ̤Ëɽ¼¨¤µ¤ì¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡FlashErase c28000 0 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡FlashWrite c28000 130000 1000 0 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Öy¡×°Ê³°¤Î¥­¡¼¤ò²¡¤·¤Æ½é´ü²½¤ò¼è¤ê¤ä¤á¤¿¾ì¹ç¤Ï¡¢¤Ê¤¼¤«¥Õ¥¡¥¤¥ë°ìÍ÷¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡È½é´ü²½¤·¤Ê¤«¤Ã¤¿¤Î¤Ç¤´°Â¿´¤ò¡É¤È¤¤¤¦¥á¥Ã¥»¡¼¥¸¤Ç¤·¤ç¤¦¤«¡©(^^; ¤Ê¤Ë¤«¤ÎÇï»Ò¤ËP/ECE¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤¬²õ¤ì¤Æ¤·¤Þ¤Ã¤¿¾ì¹ç¤Ï¡¢¥³¥Þ¥ó¥É¡Ö=i¡×¤Ç²óÉü¤Ç¤­¤ë²ÄǽÀ­¤¬¤¢¤ê¤Þ¤¹¡£ ¤¿¤À¤·¡¢P/ECE¾å¤Î¥Õ¥¡¥¤¥ë¤ÏÁ´¤Æ¾Ã¤¨¤Æ¤·¤Þ¤¤¤Þ¤¹¤Î¤Ç¡¢¤´Ãí°Õ¤¯¤À¤µ¤¤¡£ ¤Þ¤¿¡¢¡ÖP/ECE¥«¡¼¥Í¥ë¡¦¥¢¥Ã¥×¥Ç¡¼¥È¡×(WinPku.exe)¤ä¡ÖP/ECE¥³¥ß¥å¥Ë¥±¡¼¥¿¡×(WinIsd.exe)¤ò»È¤Ã¤Æ¡¢ ¤¦¤Ã¤«¤ê2MBÈÇP/ECE¤Ë¥«¡¼¥Í¥ë¥¢¥Ã¥×¥Ç¡¼¥È¤ò¤«¤±¤Æ¤·¤Þ¤Ã¤¿¾ì¹ç¤Ë¤â¡¢¥³¥Þ¥ó¥É¡Ö=i¡×¤Î¤ªÀ¤Ïäˤʤ뤳¤È¤Ë¤Ê¤ê¤Þ¤¹¡£ ¡ÖP/ECE¥«¡¼¥Í¥ë¡¦¥¢¥Ã¥×¥Ç¡¼¥È¡×¤ä¡ÖP/ECE¥³¥ß¥å¥Ë¥±¡¼¥¿¡×¤Ç¥«¡¼¥Í¥ë¥¢¥Ã¥×¥Ç¡¼¥È¤ò¹Ô¤¦¤È¡¢ 512KB°Ê¹ß¤Î¥»¥¯¥¿¤¬¡È̵¸ú¤Ê¥»¥¯¥¿¡É¤È¥Þ¡¼¥¯¤µ¤ì¤Æ¤·¤Þ¤¤¡¢¤»¤Ã¤«¤¯¤Î2MBÈÇP/ECE¤¬Ä̾ï¤Î512KBÈÇP/ECE¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¤¤Þ¤¹¡£ 2MBÈÇP/ECE¤ËÌ᤹¤Ë¤Ï¡¢¡ÖFLASH2MB¸þ¤±²þ¤¥«¡¼¥Í¥ëµÚ¤Ó¥·¥¹¥Æ¥à¡×¤Îreadme.txt¥Õ¥¡¥¤¥ë¤Ë½ñ¤«¤ì¤Æ¤¤¤ë¤è¤¦¤Ë¡¢ 2MBÈÇ¥«¡¼¥Í¥ë¤òžÁ÷¤·¤¿¸å¡¢2MBÍÑISD¤Î¥³¥Þ¥ó¥É¡Ö=i¡×¤Ç¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ò½é´ü²½¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ 2MBÈÇ¥«¡¼¥Í¥ë¤òžÁ÷¤·¤¿¤À¤±¤Ç¤Ï¡¢512KB°Ê¹ß¤Î¥»¥¯¥¿¤ÏÍ­¸ú¤Ë¤Ê¤ê¤Þ¤»¤ó¡ª ËͤâÀèÆü¤³¤ì¤ò¤ä¤Ã¤Æ¤·¤Þ¤Ã¤Æ¡¢¤Á¤ç¤Ã¤È¥Ï¥Þ¥ê¤Þ¤·¤¿¡£ »²¾È¡§¡¡¡¡¡¡¡¡¡¡¡ÖÏ»ÇÈÍ夵¤ó¤Î¥¹¥Ú¡¼¥¹¡×¡Êhttp://rokuhara.jp.org¡Ë ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢ª¡Ö¤á¤Ã¤Á¤ã¹¬¤»FRASH¥á¥â¥ê4Çܲ½·×²è¡×¡Êhttp://www2s.biglobe.ne.jp/~rokuhara/piece/flash2mb.htm¡Ë ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢ª¡ÖFLASH2MB¸þ¤±²þ¤¥«¡¼¥Í¥ëµÚ¤Ó¥·¥¹¥Æ¥à¡×¡Êhttp://www2s.biglobe.ne.jp/~rokuhara/piece/flash2mb.lzh¡Ë ------------------------------------------------------------------------------------------------------------------------------- ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¥³¥Þ¥ó¥É¤Ï°Ê¾å¤Ç¤¹¡£ ¼¡²ó¤Ï¡¢¥á¥â¥ê¥À¥ó¥×Åù¤ÎÄã¿å½à¥³¥Þ¥ó¥É¤Ë¤Ä¤¤¤Æ¸«¤Æ¤¤¤³¤¦¤È»×¤¤¤Þ¤¹¡£ ¡Ê³¤­¤Þ¤¹¡Ä¡Ë * Sun Dec 22 08:26:00 JST 2002 Naoyuki Sawa - ISD¥Þ¥Ë¥å¥¢¥ë#2 ¡ÊÁ°²ó¤«¤é¤Î³¤­¡Ä¡Ë º£²ó¤Ï¡¢ISD¥³¥Þ¥ó¥É¤ÎÃæ¤Ç¤âÆä˻ÈÍÑÉÑÅÙ¤¬¹â¤¤¤È»×¤ï¤ì¤ë¡¢¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¥³¥Þ¥ó¥É¤Ë¤Ä¤¤¤Æ¸«¤Æ¤¤¤­¤Þ¤¹¡£ ¤½¤ÎÁ°¤Ë¡¢¥³¥Þ¥ó¥ÉÀâÌÀÁ´È̤˴ؤ¹¤ëÃí°ÕÅÀ¤Ç¤¹¡£ ISD¤Ï´û¤Ë¡ÖÆþÎÏ¥ª¥Ú¥ì¡¼¥·¥ç¥ó¥â¡¼¥É¡×¤Ç¥³¥Þ¥ó¥ÉÂÔ¤Á¾õÂ֤ˤʤäƤ¤¤ë¤â¤Î¤È²¾Äꤷ¤Æ¡¢ÀâÌÀ¤ò¹Ô¤¦¤³¤È¤Ë¤·¤Þ¤¹¡£ ISD¤Îµ¯Æ°¡¦½ªÎ»¼ê½ç¤Ë¤Ä¤¤¤Æ¤Ï¡¢¥³¥Þ¥ó¥ÉÆþÎÏÎã¤Ë´Þ¤á¤Þ¤»¤ó¡£ Î㤨¤Ð¡¢¼¡¤Î¤è¤¦¤Ê¥³¥Þ¥ó¥ÉÆþÎÏÎ㤬¤¢¤Ã¤¿¾ì¹ç¡¢ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡=d hello.pex ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡=w world.pex ISD¤Îµ¯Æ°¡¦½ªÎ»¼ê½ç¤â´Þ¤á¤ë¤È¡¢¼ÂºÝ¤Ë¤Ï¼¡¤Î¤è¤¦¤Ë¥¿¥¤¥×¤·¤Æ¤¯¤À¤µ¤¤¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡isd ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ä¡ÖÆþÎÏ¥ª¥Ú¥ì¡¼¥·¥ç¥ó¥â¡¼¥É¡×¤ÇISD¤òµ¯Æ°¤·¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡=d hello.pex¡¡¡¡¡¡¡¡ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡=w world.pex¡¡¡¡¡¡¡¡ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡q ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÄISD¤ò½ªÎ»¤·¤Þ¤¹¡£ ¡ÖÆþÎÏ¥ª¥Ú¥ì¡¼¥·¥ç¥ó¥â¡¼¥É¡×¤Ë¤Ä¤¤¤Æ¤Ï¡¢Á°²ó¤ÎÀâÌÀ¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ ------------------------------------------------------------------------------------------------------------------------------- ======================== ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¥³¥Þ¥ó¥É ======================== ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¥³¥Þ¥ó¥É¤Ï¡¢¥Õ¥¡¥¤¥ë°ìÍ÷ɽ¼¨¤ä¥Õ¥¡¥¤¥ëžÁ÷¤Ê¤É¡¢¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ë´Ø¤¹¤ëÁàºî¤ò¹Ô¤¦¥³¥Þ¥ó¥É¤Ç¤¹¡£ Á´Éô¤Ç£µ¤Ä¤Î¥³¥Þ¥ó¥É¤¬¤¢¤ê¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡= ¡¡¡¡¡¡¡¡¥Õ¥¡¥¤¥ë°ìÍ÷¤òɽ¼¨¤·¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡=w¡¡¡¡¡¡¡¡¥Õ¥¡¥¤¥ë¤ò½ñ¤­¹þ¤ß¤Þ¤¹¡£¡ÊPC¢ªP/ECE¡Ë ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡=r¡¡¡¡¡¡¡¡¥Õ¥¡¥¤¥ë¤òÆɤ߽Ф·¤Þ¤¹¡£¡ÊP/ECE¢ªPC¡Ë ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡=d¡¡¡¡¡¡¡¡P/ECE¾å¤Î¥Õ¥¡¥¤¥ë¤òºï½ü¤·¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡=i¡¡¡¡¡¡¡¡¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ò½é´ü²½¤·¤Þ¤¹¡£ ¤´Í÷¤Î¤è¤¦¤Ë¡¢¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¥³¥Þ¥ó¥É¤ÏÁ´¤Æ¡Ö=¡×¤Ç»Ï¤Þ¤ê¤Þ¤¹¡£ ¤È¤³¤í¤Ç¡¢ISD¤Î¥Ø¥ë¥×¡Ê¥³¥Þ¥ó¥É¡Ö?¡×¤Çɽ¼¨¤µ¤ì¤Þ¤¹¡Ë¤ò¸«¤ë¤È¡¢¤â¤¦°ì¤Ä¡Ö=¡×¤Ç»Ï¤Þ¤ë¥³¥Þ¥ó¥É¤¬ºÜ¤Ã¤Æ¤¤¤Þ¤¹¡£ »þ¹ïÀßÄꥳ¥Þ¥ó¥É¡Ö=t¡×¤Ç¤¹¡£ ¤¬¡¢¤³¤ì¤ÏISD¥Ø¥ë¥×¤Î¥ß¥¹¥×¥ê¥ó¥È¤Ç¡¢Àµ¤·¤¤»þ¹ïÀßÄꥳ¥Þ¥ó¥É¤Ï¡Öt¡×¤Ç¤¹¡£ »þ¹ïÀßÄꥳ¥Þ¥ó¥É¡Öt¡×¤Ë¤Ä¤¤¤Æ¤Ï¡¢¼¡²ó°Ê¹ß¤ËÀâÌÀ¤·¤Þ¤¹¡£ --------------- =¡§¥Õ¥¡¥¤¥ë°ìÍ÷ --------------- ½ñ¼°¡§¡¡¡¡¡¡¡¡¡¡= P/ECE¾å¤Ë¤¢¤ë¥Õ¥¡¥¤¥ë°ìÍ÷¤È¡¢³«¤­¥»¥¯¥¿¿ô¡¦¥Ð¥¤¥È¿ô¤òɽ¼¨¤·¤Þ¤¹¡£ Î㣱¡§¡¡¡¡¡¡¡¡¡¡= ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡½ÐÎÏ·ë²Ì¤Ï¼¡¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡+ 0: 2703 startup.pex ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡+ 1: 92352 rt.pex ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡+ 2: 11408 rt.fpk ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡+ 3: 57400 padv.pex ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡+ 4:137719 padv.fpk ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ 11 sectors (45056 bytes) free ¥Õ¥¡¥¤¥ë°ìÍ÷¥³¥Þ¥ó¥É¤Ë¤Ä¤¤¤Æ¤Ï¡¢ÆäËÃí°ÕÅÀ¤â¤¢¤ê¤Þ¤»¤ó¡£ ¥Õ¥¡¥¤¥ë°ìÍ÷¤ÏP/ECE¥³¥ß¥å¥Ë¥±¡¼¥¿Åù¤ò»È¤Ã¤Æ¤â¸«¤é¤ì¤ë¤Î¤Ç¤¹¤¬¡¢ISD¤Î¥Õ¥¡¥¤¥ë°ìÍ÷¥³¥Þ¥ó¥É¤â°Õ³°¤ÈÊØÍø¤Ç¤¹¡£ ɸ½à¤Î³«È¯´Ä¶­¤ò»È¤Ã¤ÆP/ECE¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ÎºîÀ®¤ò¹Ô¤¦¾ì¹ç¡¢¤Û¤È¤ó¤É¤Îºî¶È¤ÏDOSÁë¤Ç¤Îºî¶È¤È¤Ê¤ê¤Þ¤¹¡£ ¤½¤ÎºÝ¡¢¥Õ¥¡¥¤¥ë°ìÍ÷¤ò¸«¤ë¤¿¤á¤À¤±¤ËP/ECE¥³¥ß¥å¥Ë¥±¡¼¥¿¤òµ¯Æ°¤·¤Ê¤¯¤Æ¤â¡¢¥³¥Þ¥ó¥É¥×¥í¥ó¥×¥È¤«¤é ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡isd = ¤È¥¿¥¤¥×¤¹¤ë¤À¤±¤Ç¡¢P/ECE¾å¤Î¥Õ¥¡¥¤¥ë°ìÍ÷¤¬Ä´¤Ù¤é¤ì¤Þ¤¹¡£ DOS¤Î¡ÖDIR¡×¥³¥Þ¥ó¥É¤ÈƱ¤¸´¶³Ð¤Ç¤¹¤Í¡£ -------------------- =w¡§¥Õ¥¡¥¤¥ë½ñ¤­¹þ¤ß -------------------- ½ñ¼°¡§¡¡¡¡¡¡¡¡¡¡=w <¥Õ¥¡¥¤¥ë̾> PC¾å¤Ë¤¢¤ë¥Õ¥¡¥¤¥ë¤ò¡¢P/ECE¤Ë½ñ¤­¹þ¤ß¤Þ¤¹¡£ P/ECE¾å¤Ë´û¤ËƱ̾¤Î¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤·¤¿¾ì¹ç¤Ï¡¢´û¸¤Î¥Õ¥¡¥¤¥ë¤Ë¾å½ñ¤­¤·¤Þ¤¹¡£ Î㣱¡§¡¡¡¡¡¡¡¡¡¡=w date.pex ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¸½ºß¤Îºî¶È¥Õ¥©¥ë¥À¤Ë¤¢¤ë¡Ödate.pex¡×¤ò¡¢P/ECE¤Ë½ñ¤­¹þ¤ß¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡½ñ¤­¹þ¤ß¤ËÀ®¸ù¤¹¤ë¤È¡¢¼¡¤Î¤è¤¦¤Ê½ÐÎϤ¬²èÌ̤Ëɽ¼¨¤µ¤ì¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡date.pex ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡FlashErase c77000 0 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡FlashWrite c77000 130000 4c5 0 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡FlashErase c28000 0 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡FlashWrite c28000 130000 1000 0 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡date.pex¤¬Â¸ºß¤·¤Ê¤¤¾ì¹ç¤Ï¡¢½ñ¤­¹þ¤ß¤Ë¼ºÇÔ¤·¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¥Õ¥¡¥¤¥ë̾¤À¤±¤¬²èÌ̤Ëɽ¼¨¤µ¤ì¡¢¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸Åù¤ÏÆäËɽ¼¨¤µ¤ì¤Ê¤¤¤Î¤ÇÍ×Ãí°Õ¤Ç¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡date.pex ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¶õ¤­ÍÆÎ̤¬Â­¤ê¤Ê¤¯¤Æ½ñ¤­¹þ¤ß¤Ë¼ºÇÔ¤·¤¿¾ì¹ç¤Ï¡¢¤Á¤ã¤ó¤È¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤âɽ¼¨¤µ¤ì¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡date.pex ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¶õ¤­¤¬Â­¤ê¤Þ¤»¤ó¡£ Î㣲¡§¡¡¡¡¡¡¡¡¡¡=w C:\usr\PIECE\app\date.pex ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÖC:\usr\PIECE\app\date.pex¡×¤ò¡¢P/ECE¤Ë½ñ¤­¹þ¤ß¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¸½ºß¤Îºî¶È¥Õ¥©¥ë¥À°Ê³°¤Î¾ì½ê¤Ë¤¢¤ë¥Õ¥¡¥¤¥ë¤ò½ñ¤­¹þ¤à¤È¤­¤Ï¡¢¤³¤ÎÎã¤Î¤è¤¦¤Ë¥Õ¥ë¥Ñ¥¹¤Ç»ØÄꤷ¤Æ¤¯¤À¤µ¤¤¡£ Î㣳¡§¡¡¡¡¡¡¡¡¡¡=w date ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¸½ºß¤Îºî¶È¥Õ¥©¥ë¥À¤Ë¡Ödate.pex¡×¤¬¤¢¤ì¤Ð¡¢¡Ödate.pex¡×¤òP/ECE¤Ë½ñ¤­¹þ¤ß¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¥Õ¥¡¥¤¥ë̾¤Î³ÈÄ¥»Ò¤ò¾Êά¤¹¤ë¤È¡¢³ÈÄ¥»Ò¡Ö.pex¡×¤¬¼«Æ°Åª¤ËÊä¤ï¤ì¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¤â¤·ËÜÅö¤Ë¡Ödate¡×¤È¤¤¤¦¥Õ¥¡¥¤¥ë¤ò½ñ¤­¹þ¤ß¤«¤Ã¤¿¤Î¤À¤È¤·¤Æ¤â¡¢ISD¤¬¡Ö.pex¡×¤òÊä¤Ã¤Æ¤·¤Þ¤¤¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡½¾¤Ã¤ÆISD¤Î¡Ö=w¡×¥³¥Þ¥ó¥É¤Ç¤Ï¡¢³ÈÄ¥»Ò¤Î¤Ê¤¤¥Õ¥¡¥¤¥ë̾¤ò»ý¤Ä¥Õ¥¡¥¤¥ë¤ò½ñ¤­¹þ¤à¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó¡ª Î㣴¡§¡¡¡¡¡¡¡¡¡¡=w readme.txt ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ö.pex¡×°Ê³°¤Î³ÈÄ¥»Ò¤ò»ý¤Ä¥Õ¥¡¥¤¥ë¤ò½ñ¤­¹þ¤à¾ì¹ç¤Ï¡¢³ÈÄ¥»Ò¤ò¾Êά¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡É¬¤º¡¢³ÈÄ¥»Ò¤Þ¤Ç´Þ¤á¤Æ»ØÄꤷ¤Æ¤¯¤À¤µ¤¤¡£ Î㣵¡§¡¡¡¡¡¡¡¡¡¡=wdate.pex ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¼Â¤Ï¡¢¡Ö=w¡×¤È¥Õ¥¡¥¤¥ë̾¤Î´Ö¤Î¶õÇòʸ»ú¤Ï¡¢¤¢¤Ã¤Æ¤â¤Ê¤¯¤Æ¤â¹½¤¤¤Þ¤»¤ó¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¤³¤ÎÎã¤Î¤è¤¦¤Ë¡¢¡Ö=w¡×¤È¥Õ¥¡¥¤¥ë̾¤ò³¤±¤Æ½ñ¤¤¤Æ¤âÂç¾æÉפǤ¹¡£ °Ê²¼¤Ï°­¤¤Îã¤Ç¤¹¡£ Î㣶¡§¡¡¡¡¡¡¡¡¡¡=w hello.pex world.pex ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ê£¿ô¤Î¥Õ¥¡¥¤¥ë¤ò°ìÅ٤˽ñ¤­¹þ¤à¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¤³¤ÎÎã¤Î¾ì¹ç¡¢¡Öhello.pex¡×¤Ï½ñ¤­¹þ¤Þ¤ì¤Þ¤¹¤¬¡¢¡Öworld.pex¡×¤Î»ØÄê¤Ï´°Á´¤Ë̵»ë¤µ¤ì¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¤¹¤Ê¤ï¤Á¡¢ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡=w hello.pex ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¤È»ØÄꤷ¤¿¤Î¤ÈÁ´¤¯Æ±¤¸·ë²Ì¤È¤Ê¤ê¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Öworld.pex¡×¤ò»ØÄꤷ¤¿¤³¤È¤ËÂФ¹¤ë¥¨¥é¡¼¤ä·Ù¹ðÅù¤âɽ¼¨¤µ¤ì¤Þ¤»¤ó¡£ Î㣷¡§¡¡¡¡¡¡¡¡¡¡=w *.pex ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¥ï¥¤¥ë¥É¥«¡¼¥É¤Ë¤è¤ë¥Õ¥¡¥¤¥ë»ØÄê¤Ï¤Ç¤­¤Þ¤»¤ó¡£ ¥Õ¥¡¥¤¥ë½ñ¤­¹þ¤ß¥³¥Þ¥ó¥É¤¬Ìò¤ËΩ¤Ä¤Î¤Ï¡¢Makefile¤Çpex¤òP/ECE¤ËžÁ÷¤¹¤ë¾ì¹ç¤Ç¤¹¡£ Î㤨¤Ð¼¡¤Î¤è¤¦¤ÊÆâÍƤÎMakefile¤¬¤¢¤Ã¤¿¾ì¹ç ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡all: hello.srf ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡pex: hello.pex ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡hello.srf: hello.c ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡pcc33 hello.c ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡hello.pex: hello.srf ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ppack -e hello.srf -ohello.pex ¡Ömake¡×¤Ç¡Öhello.srf¡×¤¬ºîÀ®¤µ¤ì¡¢¡Ömake pex¡×¤Ç¡Öhello.pex¡×¤¬À¸À®¤µ¤ì¤Þ¤¹¡£ P/ECE¤Ø¤Îpex¥Õ¥¡¥¤¥ëžÁ÷¤â¼«Æ°²½¤¹¤ë¤¿¤á¤Ë¤Ï¡¢¼¡¤ÎÆó¹Ô¤òÄɲä·¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡all: hello.srf ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡pex: hello.pex ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡hello.srf: hello.c ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡pcc33 hello.c ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡hello.pex: hello.srf ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ppack -e hello.srf -ohello.pex ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡install: hello.pex¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢«¤³¤ì¤òÄɲà ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡isd =w hello.pex¡¡¡¡¡¡¡¡¡¡¡¡¢«¤³¤ì¤òÄɲà ¡Ömake install¡×¤È¥¿¥¤¥×¤¹¤ì¤Ð¡¢¡Öhello.pex¡×¤ÎºîÀ®¡¦Å¾Á÷¤Þ¤Ç¤¬¼«Æ°Åª¤Ë¹Ô¤ï¤ì¤Þ¤¹¡£ hello.pex¤«¤éÍøÍѤ¹¤ë¥Ç¡¼¥¿¥Õ¥¡¥¤¥ëÅù¤¬¤¢¤ë¾ì¹ç¤Ï¡¢¥Ç¡¼¥¿¥Õ¥¡¥¤¥ë¤ÎžÁ÷¤âÄɲ䷤Ƥª¤­¤Þ¤·¤ç¤¦¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡all: hello.srf ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡pex: hello.pex ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡hello.srf: hello.c ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡pcc33 hello.c ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡hello.pex: hello.srf ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ppack -e hello.srf -ohello.pex ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡install: hello.pex ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡isd =w hello.pex ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡isd =w hell_dat.fpk¡¡¡¡¡¡¡¡¢«¤³¤ì¤òÄɲà ------------------------------------------------------------------------------------------------------------------------------- ¤Á¤ç¤Ã¤ÈŤ¯¤Ê¤Ã¤¿¤Î¤Ç¡¢º£²ó¤Ï¤³¤³¤Þ¤Ç¤Ç¤¹¡£ »Ä¤ê£³¤Ä¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¥³¥Þ¥ó¥É¤Ë¤Ä¤¤¤Æ¤Ï¡¢¼¡²ó¤Ø¡£ ¡Ê¡Ä³¤­¤Þ¤¹¡Ë * Fri Dec 20 12:30:00 JST 2002 Naoyuki Sawa - ISD¥Þ¥Ë¥å¥¢¥ë#1 P/ECE³«È¯¥Ä¡¼¥ë¤ÎÃæ¤Ç¤âÆä˽ÅÍפʤΤ¬¡¢USBžÁ÷¥Ä¡¼¥ë/´Ê°×¥â¥Ë¥¿¡¼¡ØISD¡Ù¤Ç¤¹¡£ ÃÏÌ£¤Ê¤¬¤éÈó¾ï¤Ë¿µ¡Ç½¤Ç¡¢PC¦¤Î¥Ä¡¼¥ë¤È¤·¤ÆɬÍפʵ¡Ç½¤ò¤Û¤È¤ó¤ÉÁ´ÉôÈ÷¤¨¤Æ¤¤¤Þ¤¹¡£ ¥Ð¡¼¥¸¥ç¥ó¥Á¥§¥Ã¥¯¡¢¥Õ¥¡¥¤¥ëžÁ÷¡¢²èÌÌ¥­¥ã¥×¥Á¥ã¡¢¥×¥í¥°¥é¥à¤Î°ì»þÄä»ß¡¢¥«¡¼¥Í¥ë¹¹¿·¤Ê¤É¤¬¡¢¤³¤ì°ì¤Ä¤Ç¤Þ¤«¤Ê¤¨¤Þ¤¹¡£ ¥³¥Þ¥ó¥É¥é¥¤¥ó¥Ä¡¼¥ë¤ò¹¥¤à³«È¯¼Ô¤µ¤ó¤Ï¡¢´û¤Ë»È¤¤¤³¤Ê¤·¤Æ¤ª¤é¤ì¤ë¤Î¤Ç¤Ï¤Ê¤¤¤Ç¤·¤ç¤¦¤«¡£ ISD¤ò»È¤¦ºÝ¤ÎÌäÂêÅÀ¤È¤·¤Æ¡¢P/ECE³«È¯´Ä¶­¤Ë¤ÏISD¤Î¾Ü¤·¤¤ÀâÌÀ¤¬Æþ¤Ã¤Æ¤¤¤Ê¤¤¡¢¤È¤¤¤¦ÅÀ¤¬µó¤²¤é¤ì¤Þ¤¹¡£ ISD¤Î¥½¡¼¥¹¡ÊC:\usr\PIECE\tools\isd¡Ë¤ä¡¢¡Öisd ?¡×¤Çɽ¼¨¤µ¤ì¤ë¥Ø¥ë¥×¤Ç½¼Ê¬¤È¤â¸À¤¨¤Þ¤¹¤¬¡¢¤ä¤Ï¤ê¤Þ¤È¤Þ¤Ã¤¿ÀâÌÀ¤¬Íߤ·¤¤¤È¤³¤í¤Ç¤¹¡£ ¡ÊËͤϤ¿¤Þ¤Ë¤·¤«ISD¤ò»È¤ï¤Ê¤¤¤Î¤Ç¡¢¤½¤Î¤¿¤Ó¤Ë»È¤¤Êý¤ò˺¤ì¤Æ¡¢ISD¤Î¥½¡¼¥¹¤òÆɤߤ«¤¨¤·¤¿¤ê¤·¤Æ¤Þ¤¹¡Ä(^^;¡Ë ¤½¤³¤Ç¡¢º£²ó¤è¤ê¿ô²ó¤Ëʬ¤±¤Æ¡¢ISD¤Î»È¤¤Êý¤ò¤Þ¤È¤á¤Æ¤ß¤è¤¦¤È»×¤¤¤Þ¤¹¡£ º£²ó¤Ï¤Þ¤º¡¢ISD¤Îµ¯Æ°ÊýË¡¤Ë¤Ä¤¤¤Æ¤Ç¤¹¡£ ------------------------------------------------------------------------------------------------------------------------------- ======== µ¯Æ°ÊýË¡ ======== ISD¤Ï¡¢»°¤Ä¤Îµ¯Æ°¥â¡¼¥É¤ò»ý¤Ã¤Æ¤¤¤Þ¤¹¡£ ¡¦¡Ö¥×¥í¥°¥é¥à¼Â¹Ô¥â¡¼¥É¡× ¡¦¡Ö°ú¿ô¥ª¥Ú¥ì¡¼¥·¥ç¥ó¥â¡¼¥É¡× ¡¦¡ÖÆþÎÏ¥ª¥Ú¥ì¡¼¥·¥ç¥ó¥â¡¼¥É¡× ¤Ç¤¹¡£ ¢¨¡Ö°ú¿ô¥ª¥Ú¥ì¡¼¥·¥ç¥ó¥â¡¼¥É¡×¤È¡ÖÆþÎÏ¥ª¥Ú¥ì¡¼¥·¥ç¥ó¥â¡¼¥É¡×¤Î¥Í¡¼¥ß¥ó¥°¤Ï¡¢ISD¤Î¥½¡¼¥¹¤Î¥³¥á¥ó¥È¤ËͳÍ褷¤Þ¤¹¡£ ¡¡¡Ö¥×¥í¥°¥é¥à¼Â¹Ô¥â¡¼¥É¡×¤ÏÊص¹¾å¡¢Ëͤ¬¾¡¼ê¤Ë̾ÉÕ¤±¤Þ¤·¤¿¡£ -------------------- ¥×¥í¥°¥é¥à¼Â¹Ô¥â¡¼¥É -------------------- µ¯Æ°ÊýË¡£±¡§¡¡¡¡isd [#<¥Ç¥Ð¥¤¥¹ÈÖ¹æ>] -run µ¯Æ°ÊýË¡£²¡§¡¡¡¡isd [#<¥Ç¥Ð¥¤¥¹ÈÖ¹æ>] -run µ¯Æ°ÊýË¡£³¡§¡¡¡¡isd [#<¥Ç¥Ð¥¤¥¹ÈÖ¹æ>] -run srf¥Õ¥¡¥¤¥ë¤òľÀܼ¹Ԥ¹¤ë¥â¡¼¥É¤Ç¤¹¡£ srf¥Õ¥¡¥¤¥ë¤Î¼Â¹Ô³«»Ï¸å¡¢ISD¤Ï¤¹¤°¤Ë½ªÎ»¤·¤Þ¤¹¡£ µ¯Æ°ÊýË¡£±¤Î¤è¤¦¤Ë¡¢srf¥Õ¥¡¥¤¥ë̾¤ò»ØÄꤹ¤ë¤È¡¢¤½¤Îsrf¥Õ¥¡¥¤¥ë¤ò¼Â¹Ô¤·¤Þ¤¹¡£ Î㣱¡§¡¡¡¡¡¡¡¡¡¡isd -run C:\usr\PIECE\app\hello\hello.srf ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÖC:\usr\PIECE\app\hello\hello.srf¡×¤ò¼Â¹Ô¤·¤Þ¤¹¡£ µ¯Æ°ÊýË¡£²¤Î¤è¤¦¤Ë¡¢srf¥Õ¥¡¥¤¥ë¤Î³ÈÄ¥»Ò¡Ö.srf¡×¤ò¾Êά¤·¤Æ¤â¹½¤¤¤Þ¤»¤ó¡£ Î㣲¡§¡¡¡¡¡¡¡¡¡¡isd -run C:\usr\PIECE\app\hello\hello ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÖC:\usr\PIECE\app\hello\hello.srf¡×¤ò¼Â¹Ô¤·¤Þ¤¹¡£ µ¯Æ°ÊýË¡£³¤Î¤è¤¦¤Ë¡¢¥Õ¥¡¥¤¥ë̾¤Î»ØÄê¤ò´°Á´¤Ë¾Êά¤¹¤ë¤È¡¢¸½ºß¤Îºî¶È¥Õ¥©¥ë¥À¤«¤ésrf¥Õ¥¡¥¤¥ë¤òõ¤·¤Æ¡¢ºÇ½é¤Ë¸«¤Ä¤«¤Ã¤¿srf¥Õ¥¡¥¤¥ë¤ò¼Â¹Ô¤·¤Þ¤¹¡£ ¸½ºß¤Îºî¶È¥Õ¥©¥ë¥À¤ËÊ£¿ô¤Îsrf¥Õ¥¡¥¤¥ë¤¬¤¢¤Ã¤¿¾ì¹ç¤Ï¡¢¤É¤Îsrf¥Õ¥¡¥¤¥ë¤¬¼Â¹Ô¤µ¤ì¤ë¤«¤Ïͽ¬¤Ç¤­¤Þ¤»¤ó¡£ Î㣳¡§¡¡¡¡¡¡¡¡¡¡C: ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡cd \usr\PIECE\app\hello\ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡isd -run ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÖC:\usr\PIECE\app\hello\¡×¥Õ¥©¥ë¥À¤ÎÃæ¤Ë¤¢¤ë¡Öhello.srf¡×¤ò¼Â¹Ô¤·¤Þ¤¹¡£ P/ECE¤¬Ê£¿ôÂæÀܳ¤µ¤ì¤Æ¤¤¤ë¤È¤­¤Ï¡¢¥Ç¥Ð¥¤¥¹ÈÖ¹æ¤ò»ØÄꤷ¤Æ¡¢ÆóÂæÌܰʹߤÎP/ECE¤Çsrf¥Õ¥¡¥¤¥ë¤ò¼Â¹Ô¤¹¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¡£ ¥Ç¥Ð¥¤¥¹ÈÖ¹æ¤Ï¡¢0¤¬°ìÂæÌܤÎP/ECE¡¢1¤¬ÆóÂæÌܤÎP/ECE¡¢2¤¬»°ÂæÌܤÎP/ECE¡¢...¤òɽ¤·¤Þ¤¹¡£ ¥Ç¥Ð¥¤¥¹ÈÖ¹æ¤ò»ØÄꤷ¤Ê¤±¤ì¤Ð¡¢°ìÂæÌܤÎP/ECE¤Çsrf¥Õ¥¡¥¤¥ë¤ò¼Â¹Ô¤·¤Þ¤¹¡£ ¥Ç¥Ð¥¤¥¹ÈÖ¹æ¤ò»ØÄꤹ¤ë¤³¤È¤ÏÌÇ¿¤Ë¤¢¤ê¤Þ¤»¤ó¤¬¡¢ÀÖ³°ÀþÄÌ¿®¥×¥í¥°¥é¥à¤Ê¤É¤ò³«È¯¤·¤Æ¤¤¤ë¾ì¹ç¤Ï¤³¤Îµ¡Ç½¤¬ÊØÍø¤Ë»È¤¨¤Þ¤¹¡£ Makefile¤ä¥Ð¥Ã¥Á¥Õ¥¡¥¤¥ë¤Ê¤É¤Ë¡¢ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡isd #0 -run ir.srf ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡isd #1 -run ir.srf ¤È½ñ¤¤¤Æ¤ª¤¯¤È¡¢¡Öir.srf¡×¤òÆóÂæ¤ÎP/ECE¤Ç¼Â¹Ô¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ ¡Ö¥×¥í¥°¥é¥à¼Â¹Ô¥â¡¼¥É¡×¤Ë¤Ä¤¤¤Æ¤Ï¡¢°Ê¾å¤Ç¤¹¡£ ¡Ö¥×¥í¥°¥é¥àµ¯Æ°¥â¡¼¥É¡×¤ò´Êñ¤Ë»È¤¦¤¿¤á¤Ë¡¢¥Ð¥Ã¥Á¥Õ¥¡¥¤¥ë¡ÖC:\usr\PIECE\bin\run.bat¡×¤¬ÍÑ°Õ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ ¡ÖC:\usr\PIECE\bin\run.bat¡×¤ÎÆâÍƤϡ¢¼¡¤Î¤È¤ª¤ê¤Ç¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡@isd -run %1 srf¥Õ¥¡¥¤¥ë¤ò¼Â¹Ô¤¹¤ë¤¿¤á¤Ë¤è¤¯¡Örun¡×¥³¥Þ¥ó¥É¤ò»È¤¤¤Þ¤¹¤¬¡¢¡Örun¡×¥³¥Þ¥ó¥É¤ÏISD¤Î¡Ö¥×¥í¥°¥é¥à¼Â¹Ô¥â¡¼¥É¡×¤ÎÊÌ̾¤Ê¤Î¤Ç¤¹¡£ ¤Á¤Ê¤ß¤ËÀèƬ¤Î¡Ö@¡×¤Ï¡¢¥Ð¥Ã¥Á¥Õ¥¡¥¤¥ë¤ÎÃ椫¤é¼Â¹Ô¤¹¤ë¥³¥Þ¥ó¥É̾¤ò¡¢²èÌ̤Ëɽ¼¨¤·¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¤¿¤á¤Îµ­¹æ¤Ç¤¹¡£ ¤À¤«¤é¡¢¡Örun¡×¥³¥Þ¥ó¥É¤ò»È¤Ã¤Æ¤â¡¢¥Ð¥Ã¥Á¥Õ¥¡¥¤¥ë¤ÎÃ椫¤éISD¤ò¸Æ¤ó¤Ç¤¤¤ëÍͻҤϲèÌ̤Ëɽ¼¨¤µ¤ì¤Þ¤»¤ó¡£ ------------------------ °ú¿ô¥ª¥Ú¥ì¡¼¥·¥ç¥ó¥â¡¼¥É ------------------------ µ¯Æ°ÊýË¡£±¡§¡¡¡¡isd [#¥Ç¥Ð¥¤¥¹ÈÖ¹æ] <¥³¥Þ¥ó¥É> µ¯Æ°ÊýË¡£²¡§¡¡¡¡isd [#¥Ç¥Ð¥¤¥¹ÈÖ¹æ] <¥³¥Þ¥ó¥É>;<¥³¥Þ¥ó¥É>;... ISD¤Ø¤Î¥³¥Þ¥ó¥É¤ò¡¢ISDµ¯Æ°»þ¤Ë¤¤¤Ã¤·¤ç¤Ë»ØÄꤹ¤ë¥â¡¼¥É¤Ç¤¹¡£ ³Æ¥³¥Þ¥ó¥É¤ò¼Â¹Ô¸å¡¢ISD¤Ï¤¹¤°¤Ë½ªÎ»¤·¤Þ¤¹¡£ ¤Ê¤ª¡¢¥Ç¥Ð¥¤¥¹ÈÖ¹æ¤Ë¤Ä¤¤¤Æ¤Ï¡Ö¥×¥í¥°¥é¥à¼Â¹Ô¥â¡¼¥É¡×¤ÈƱ¤¸¤Ç¤¹¤Î¤Ç¡¢ÀâÌÀ¤ò¾Êά¤·¤Þ¤¹¡£ µ¯Æ°ÊýË¡£±¤Ï¡¢¥³¥Þ¥ó¥É¤ò°ì¤Ä¤À¤±»ØÄꤹ¤ë¡¢¤¤¤Á¤Ð¤ó´ðËÜŪ¤ÊÊýË¡¤Ç¤¹¡£ Î㣱¡Ý£±¡§¡¡¡¡¡¡isd v ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡P/ECE¥«¡¼¥Í¥ë¤Î¥Ð¡¼¥¸¥ç¥ó¾ðÊó¤òɽ¼¨¤·¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¥³¥Þ¥ó¥É¡Öv¡×¤Ï¡¢¥Ð¡¼¥¸¥ç¥ó¾ðÊó¤òɽ¼¨¤¹¤ë¤¿¤á¤Î¥³¥Þ¥ó¥É¤Ç¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ê¢¨¸Ä¡¹¤Î¥³¥Þ¥ó¥É¤Î¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï¸å½Ò¤·¤Þ¤¹¡£°Ê²¼Æ±ÍÍ¡Ë ¥³¥Þ¥ó¥É¤¬¶õÇò¤ò´Þ¤à¾ì¹ç¤Ï¡¢¥³¥Þ¥ó¥ÉÁ´ÂΤò¡Ö"¡×¤Ç°Ï¤à¤Î¤¬°ìÈÌŪ¤Ç¤¹¤¬¡¢É¬¿Ü¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£ Î㣱¡Ý£²¡§¡¡¡¡¡¡isd "d 100000" ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡isd d 100000 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¤É¤Á¤é¤âƱ¤¸¤¯¡¢0x100000ÈÖÃϤ«¤é128¥Ð¥¤¥Èʬ¤Î¥á¥â¥êÆâÍƤò¥Ð¥¤¥Ê¥ê¥À¥ó¥×¤·¤Þ¤¹¡£ ¥³¥Þ¥ó¥É¡Öd¡×¤Ï¡¢¥á¥â¥êÆâÍƤò¥Ð¥¤¥Ê¥ê¥À¥ó¥×¤¹¤ë¤¿¤á¤Î¥³¥Þ¥ó¥É¤Ç¤¹¡£ Í­¸ú¤Ê¥³¥Þ¥ó¥É¤Î¸å¤í¤ËÉÔÍפÊʸ»úÎ󤬤¯¤Ã¤Ä¤¤¤Æ¤¤¤Æ¤â¡¢·Ù¹ð¤â¤Ê¤¯Ã±¤Ë̵»ë¤µ¤ì¤Þ¤¹¤¬¡¢¤³¤Î¤Õ¤ë¤Þ¤¤¤Ë°Í¸¤¹¤ë¤Î¤Ï˾¤Þ¤·¤¯¤¢¤ê¤Þ¤»¤ó¡£ ¼¡¤ÎÎã¤Ï¡¢´Ö°ã¤Ã¤¿¥³¥Þ¥ó¥É»ØÄê¤ÎÎã¤Ç¤¹¡£ Î㣱¡Ý£³¡§¡¡¡¡¡¡isd vHOGE ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¥³¥Þ¥ó¥É¡Öv¡×¤Î¸å¤Î¡ÖHOGE¡×¤Ï̵»ë¤µ¤ì¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Öisd v¡×¤È»ØÄꤷ¤¿¤Î¤ÈƱ¤¸·ë²Ì¤È¤Ê¤ê¡¢¡ÖHOGE¡×¤ËÂФ¹¤ë·Ù¹ð¤Ê¤É¤âɽ¼¨¤µ¤ì¤Þ¤»¤ó¡£ °ìÅÙ¤ËÊ£¿ô¤Î¥³¥Þ¥ó¥É¤ò»ØÄꤹ¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¡£ Ê£¿ô¤Î¥³¥Þ¥ó¥É¤ò»ØÄꤹ¤ë¾ì¹ç¤Ï¡¢µ¯Æ°ÊýË¡£²¤Î¤è¤¦¤Ë¡¢³Æ¥³¥Þ¥ó¥É¤ò¡Ö;¡×¤Ç¶èÀڤäÆʤ٤ޤ¹¡£ Î㣲¡Ý£±¡§¡¡¡¡¡¡isd v;= ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¥Ð¡¼¥¸¥ç¥ó¾ðÊó¤È¡¢¥Õ¥¡¥¤¥ë°ìÍ÷¤òɽ¼¨¤·¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¥³¥Þ¥ó¥É¡Ö=¡×¤Ï¡¢¥Õ¥¡¥¤¥ë°ìÍ÷¤òɽ¼¨¤¹¤ë¤¿¤á¤Î¥³¥Þ¥ó¥É¤Ç¤¹¡£ ¥³¥Þ¥ó¥ÉʤӤ¬¶õÇò¤ò´Þ¤à¾ì¹ç¤Ï¡¢¥³¥Þ¥ó¥ÉʤÓÁ´ÂΤò¡Ö"¡×¤Ç°Ï¤à¤Î¤¬°ìÈÌŪ¤Ç¤¹¤¬¡¢É¬¿Ü¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£ Î㣲¡Ý£²¡§¡¡¡¡¡¡isd "d 100000;d 200000" ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡isd d 100000;d 200000 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¤É¤Á¤é¤âƱ¤¸¤¯¡¢0x100000ÈÖÃϤ«¤é¤Î128¥Ð¥¤¥Èʬ¤Î¥á¥â¥êÆâÍƤò¥Ð¥¤¥Ê¥ê¥À¥ó¥×¤·¡¢ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Â³¤±¤Æ¡¢0x200000ÈÖÃϤ«¤é¤Î128¥Ð¥¤¥Èʬ¤Î¥á¥â¥êÆâÍƤò¥Ð¥¤¥Ê¥ê¥À¥ó¥×¤·¤Þ¤¹¡£ ¥³¥Þ¥ó¥É¤ò¶èÀÚ¤ë¡Ö;¡×¤Îº¸±¦¤Ë¤Ï¡¢¶õÇòʸ»ú¤òÃÖ¤«¤Ê¤¤¤Û¤¦¤¬¤¤¤¤¤Ç¤·¤ç¤¦¡£ ¼ÂºÝ¤Ë¤Ï¡¢¡Ö;¡×º¸Â¦¤Ë¤Ï¶õÇò¤ò´Þ¤á¤Æ¤É¤ó¤Êʸ»ú¤¬¤¢¤Ã¤Æ¤â̵»ë¤µ¤ì¤ë¤Î¤Ç¤¹¤¬¡¢¤³¤Î¤Õ¤ë¤Þ¤¤¤Ë°Í¸¤¹¤ë¤Î¤Ï˾¤Þ¤·¤¯¤¢¤ê¤Þ¤»¤ó¡£ ¡Ö;¡×¤Î±¦Â¦¤Ë¶õÇòʸ»ú¤òÃÖ¤¤¤¿¾ì¹ç¤Ï¡¢·Ù¹ð¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£ ¼¡¤ÎÎã¤Ï¡¢´Ö°ã¤Ã¤¿¥³¥Þ¥ó¥É»ØÄê¤ÎÎã¤Ç¤¹¡£ Î㣲¡Ý£³¡§¡¡¡¡¡¡isd vHOGE;= ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Î㣱¡Ý£³¤ÈƱ¤¸¤¯¡¢¥³¥Þ¥ó¥É¡Öv¡×¤Î¸å¤Î¡ÖHOGE¡×¤Ï̵»ë¤µ¤ì¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Öisd v;=¡×¤È»ØÄꤷ¤¿¤Î¤ÈƱ¤¸·ë²Ì¤È¤Ê¤ê¡¢¡ÖHOGE¡×¤ËÂФ¹¤ë·Ù¹ð¤Ê¤É¤âɽ¼¨¤µ¤ì¤Þ¤»¤ó¡£ Î㣲¡Ý£´¡§¡¡¡¡¡¡isd "v ; =" isd v ; = ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¤É¤Á¤é¤âƱ¤¸¤¯¡¢¡Ö;¡×¤Î¸å¤í¤Ë¤¢¤ë¶õÇòʸ»ú¤ËÂФ·¤Æ¡¢¼¡¤Î¤è¤¦¤Ê·Ù¹ð¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡skip ' ' ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡·Ù¹ð¤Ï½Ð¤ë¤â¤Î¤Î¥³¥Þ¥ó¥É¼«ÂΤÏÀµ¤·¤¯¼Â¹Ô¤µ¤ì¡¢¥Ð¡¼¥¸¥ç¥ó¾ðÊó¤È¥Õ¥¡¥¤¥ë°ìÍ÷¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ö;¡×¤Îº¸Â¦¤Ë¤¢¤ë¶õÇòʸ»ú¤ËÂФ·¤Æ¤Ï¡¢·Ù¹ð¤Ïɽ¼¨¤µ¤ì¤Þ¤»¤ó¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¶õÇòʸ»ú¤À¤«¤é̵»ë¤µ¤ì¤¿¤Î¤Ç¤Ï¤Ê¤¯¡¢¡Ö;¡×¤Îº¸Â¦¤Ë¤Ï¤É¤ó¤Êʸ»ú¤¬¤¢¤Ã¤Æ¤â̵»ë¤µ¤ì¤ë¤Î¤Ç¤¹¡£¡Ê¶õÇò¤âHOGE¤âƱ¤¸¤Ç¤¹¡Ë ------------------------ ÆþÎÏ¥ª¥Ú¥ì¡¼¥·¥ç¥ó¥â¡¼¥É ------------------------ µ¯Æ°ÊýË¡¡§¡¡¡¡¡¡isd [#<¥Ç¥Ð¥¤¥¹ÈÖ¹æ>] ISD¤Ø¤Î¥³¥Þ¥ó¥É¤ò¡¢ÂÐÏ÷Á¼°¤Ç°ì¹Ô¤Å¤Ä»ØÄꤹ¤ë¥â¡¼¥É¤Ç¤¹¡£ ¤³¤Î¥â¡¼¥É¤ÇISD¤òµ¯Æ°¤¹¤ë¤È¡¢P/ECE¤ËÀܳ¸å¡¢¥×¥í¥ó¥×¥È¤òɽ¼¨¤·¤Æ¥³¥Þ¥ó¥ÉÂÔ¤Á¼õ¤±¾õÂ֤Ȥʤê¤Þ¤¹¡£ ¥³¥Þ¥ó¥É¡Öq¡×¡Ê½ªÎ»¡Ë¤ò»ØÄꤹ¤ë¤Þ¤Ç¡¢ISD¤Ï½ªÎ»¤·¤Þ¤»¤ó¡£ ¤Ê¤ª¡¢¥Ç¥Ð¥¤¥¹ÈÖ¹æ¤Ë¤Ä¤¤¤Æ¤Ï¡Ö¥×¥í¥°¥é¥à¼Â¹Ô¥â¡¼¥É¡×¤ÈƱ¤¸¤Ç¤¹¤Î¤Ç¡¢ÀâÌÀ¤ò¾Êά¤·¤Þ¤¹¡£ Î㣱¡§¡¡¡¡¡¡¡¡¡¡isd ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡v ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡= ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡q ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡°ì¹ÔÌÜ¡§¡ÖÆþÎÏ¥ª¥Ú¥ì¡¼¥·¥ç¥ó¥â¡¼¥É¡×¤ÇISD¤òµ¯Æ°¤·¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Æó¹ÔÌÜ¡§¥³¥Þ¥ó¥É¡Öv¡×¤ò»ØÄꤷ¡¢¥Ð¡¼¥¸¥ç¥ó¾ðÊó¤òɽ¼¨¤·¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡»°¹ÔÌÜ¡§¥³¥Þ¥ó¥É¡Ö=¡×¤ò»ØÄꤷ¡¢¥Õ¥¡¥¤¥ë°ìÍ÷¤òɽ¼¨¤·¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡»Í¹ÔÌÜ¡§¥³¥Þ¥ó¥É¡Öq¡×¤ò»ØÄꤷ¡¢ISD¤ò½ªÎ»¤·¤Þ¤¹¡£ ¡Ö°ú¿ô¥ª¥Ú¥ì¡¼¥·¥ç¥ó¥â¡¼¥É¡×¤ÈƱ¤¸¤¯¡¢¡ÖÆþÎÏ¥ª¥Ú¥ì¡¼¥·¥ç¥ó¥â¡¼¥É¡×¤Ç¤â°ìÅÙ¤ËÊ£¿ô¤Î¥³¥Þ¥ó¥É¤ò»ØÄê¤Ç¤­¤Þ¤¹¡£ Î㣲¡§¡¡¡¡¡¡¡¡¡¡isd ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡v;= ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡d 100000;d 200000 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡q ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡°ì¹ÔÌÜ¡§¡ÖÆþÎÏ¥ª¥Ú¥ì¡¼¥·¥ç¥ó¥â¡¼¥É¡×¤ÇISD¤òµ¯Æ°¤·¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Æó¹ÔÌÜ¡§¥Ð¡¼¥¸¥ç¥ó¾ðÊó¤òɽ¼¨¤·¡¢Â³¤±¤Æ¤Ç¥Õ¥¡¥¤¥ë°ìÍ÷¤òɽ¼¨¤·¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡»°¹ÔÌÜ¡§0x100000ÈÖÃϤ«¤é¤Î128¥Ð¥¤¥Èʬ¤ò¥Ð¥¤¥Ê¥ê¥À¥ó¥×¤·¡¢Â³¤±¤Æ0x200000ÈÖÃϤ«¤é¤Î128¥Ð¥¤¥Èʬ¤ò¥Ð¥¤¥Ê¥ê¥À¥ó¥×¤·¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡»Í¹ÔÌÜ¡§¥³¥Þ¥ó¥É¡Öq¡×¤ò»ØÄꤷ¡¢ISD¤ò½ªÎ»¤·¤Þ¤¹¡£ ¡Ö°ú¿ô¥ª¥Ú¥ì¡¼¥·¥ç¥ó¥â¡¼¥É¡×¤Ç¤Ï¡¢¥³¥Þ¥ó¥É¤ò¡Ö"¡×¤Ç°Ï¤Ã¤Æ¤Ï¤¤¤±¤Þ¤»¤ó¡£ ¼¡¤ÎÎã¤Ï¡¢´Ö°ã¤Ã¤¿¥³¥Þ¥ó¥É»ØÄê¤ÎÎã¤Ç¤¹¡£ Î㣳¡§¡¡¡¡¡¡¡¡¡¡isd ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡"v;=" ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡q ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Æó¹ÔÌÜÀèƬ¤Î¡Ö"¡×¤ËÂФ¹¤ë·Ù¹ð¤¬É½¼¨¤µ¤ì¡¢¼¡¤Ë¡Ö;¡×¤¬¸«¤Ä¤«¤ë¤Þ¤Ç¤ÎÁ´¤Æ¤Îʸ»ú¤¬Ìµ»ë¤µ¤ì¤Þ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡½¾¤Ã¤Æ¡¢¥³¥Þ¥ó¥É¡Öv¡×¤Ï¼Â¹Ô¤µ¤ì¤º¡¢¥Ð¡¼¥¸¥ç¥ó¾ðÊó¤Ïɽ¼¨¤µ¤ì¤Þ¤»¤ó¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ö;¡×¤Î¸å¤í¤Ë¤¢¤ë¥³¥Þ¥ó¥É¡Ö=¡×¤Ï¼Â¹Ô¤µ¤ì¤Þ¤¹¡£ ------------------------------------------------------------------------------------------------------------------------------- ¼¡²ó¤Ï¡¢³Æ¥³¥Þ¥ó¥É¤Î¾ÜºÙ¤Ë¤Ä¤¤¤Æ¸«¤Æ¤¤¤³¤¦¤È»×¤¤¤Þ¤¹¡£ ¡Ê³¤­¤Þ¤¹¡Ä¡Ë * Thu Dec 12 06:30:00 JST 2002 Naoyuki Sawa - strtok()¤ËÂçÌäÂê S1C33 Family C¥³¥ó¥Ñ¥¤¥é¥Ñ¥Ã¥±¡¼¥¸¡ÊP/ECE¤Îɸ½à£Ã¥é¥¤¥Ö¥é¥ê¡Ë¤Îstrtok()´Ø¿ô¤Ë¤Ï¡¢½ÅÂç¤ÊÌäÂ꤬¤¢¤ê¤Þ¤¹¡£ »ØÄꤷ¤¿Ê¸»úÎó¤Î½ªÃ¼¤òÆͤ­È´¤±¤Æ¥È¡¼¥¯¥óʬ³ä¤ò³¤±¤Æ¤·¤Þ¤¦¡¢¤È¤¤¤¦¤â¤Î¤Ç¤¹¡£ --------------------------------------------------------------------------------------------------- ¤Þ¤º¡¢PC¾å¤ÎC¥³¥ó¥Ñ¥¤¥é¤ò»È¤Ã¤Æ¡¢¼¡¤Î¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤·¤Æ¤ß¤Þ¤·¤ç¤¦¡£ #include #include #include char s1[] = "a/b/c\0d/e/f"; int main() { ¡¡¡¡¡¡¡¡char* p; ¡¡¡¡¡¡¡¡p = strtok(s1, "/"); ¡¡¡¡¡¡¡¡while(p != NULL) { ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡fprintf(stderr, "(%s)", p); ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡p = strtok(NULL, "/"); ¡¡¡¡¡¡¡¡} ¡¡¡¡¡¡¡¡fprintf(stderr, "\n"); ¡¡¡¡¡¡¡¡return 0; } ʸ»úÎós1¤ÎÃæ¤Î¡Ö/¡×¤Ç¶èÀÚ¤é¤ì¤¿³ÆÉôʬ¤ò¡¢½ç¤Ë¡Ö(¡×¡Á¡Ö)¡×¤Ç°Ï¤Ã¤Æɽ¼¨¤¹¤ë¥×¥í¥°¥é¥à¤Ç¤¹¡£ ʸ»úÎós1¤Ï¡Öa/b/c\0d/e/f¡×¤Ç¤¹¤¬¡¢¡Öc¡×¤Î¸å¤í¤Î¥Ì¥ëʸ»ú¤Ç½ªÃ¼¤·¤Æ¤¤¤ë¤Î¤Ç¡¢¡Öa/b/c¡×¤ÈÅù²Á¤Ç¤¹¡£ ½¾¤Ã¤Æ¡¢·ë²Ì¤Ï¼¡¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£ ¡Ö(a)(b)(c)¡× --------------------------------------------------------------------------------------------------- ¤Ç¤Ï¼¡¤Ë¡¢P/ECE¤Ç¼¡¤Î¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤·¤Æ¤ß¤Þ¤·¤ç¤¦¡£ ¥½¡¼¥¹¤Î¥À¥¦¥ó¥í¡¼¥É¤Ï¤³¤Á¤é¡§¡¡http://www.piece-me.org/archive/strtok1-20021212-src.zip #include #include #include #include unsigned char vbuff[DISP_X * DISP_Y]; /* ²¾ÁÛVRAM */ char s1[] = "a/b/c\0d/e/f"; void pceAppInit() { ¡¡¡¡¡¡¡¡char* p; ¡¡¡¡¡¡¡¡/* °ìÈÌŪ¤Ê½é´ü²½ */ ¡¡¡¡¡¡¡¡pceLCDDispStop(); ¡¡¡¡¡¡¡¡pceLCDSetBuffer(vbuff); ¡¡¡¡¡¡¡¡pceLCDDispStart(); /* ²èÌÌ¥¯¥ê¥¢ */ ¡¡¡¡¡¡¡¡memset(vbuff, 0, sizeof vbuff); ¡¡¡¡¡¡¡¡pceFontSetPos(0, 0); ¡¡¡¡¡¡¡¡/*{{¤³¤ÎÉôʬ¤¬¼Â¸³¥³¡¼¥É¤ÎËÜÂΤǤ¹*/ ¡¡¡¡¡¡¡¡p = strtok(s1, "/"); ¡¡¡¡¡¡¡¡while(p != NULL) { ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡pceFontPrintf("(%s)", p); ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡p = strtok(NULL, "/"); ¡¡¡¡¡¡¡¡} ¡¡¡¡¡¡¡¡/*}}¤³¤ÎÉôʬ¤¬¼Â¸³¥³¡¼¥É¤ÎËÜÂΤǤ¹*/ ¡¡¡¡¡¡¡¡/* ²èÌÌžÁ÷ */ ¡¡¡¡¡¡¡¡pceLCDTrans(); } void pceAppProc(int count) { /* SELECT¥Ü¥¿¥ó¤¬²¡¤µ¤ì¤¿¤é½ªÎ»¤·¤Þ¤¹ */ if(pcePadGet() & TRG_SELECT) pceAppReqExit(0); } void pceAppExit() { } ¼Â¸³ÆâÍƤÏPCÍÑ¤Î¥×¥í¥°¥é¥à¤ÈƱ¤¸¤Ç¤¹¤Î¤Ç¡¢¡Ö(a)(b)(c)¡×¤Èɽ¼¨¤µ¤ì¤ë¤Ï¤º¤Ç¤¹¤¬¡¢¼ÂºÝ¤Ë¤Ï¡¢ ¡Ö(a)(b)(c)(d)(e)(f)¡× ¤Èɽ¼¨¤µ¤ì¤Æ¤·¤Þ¤¤¤Þ¤¹¡ª --------------------------------------------------------------------------------------------------- S1C33 Family C¥³¥ó¥Ñ¥¤¥é¥Ñ¥Ã¥±¡¼¥¸¤Îstrtok()´Ø¿ô¤Ï¡¢Ê¸»úÎó½ªÃ¼¤Î¥Ì¥ëʸ»ú¤Î¸¡½Ð¤ËÌäÂ꤬¤¢¤ê¤Þ¤¹¡£ ¤É¤¦¤ä¤é¡¢¥Ì¥ëʸ»ú¤¬Æó¤Ä°Ê¾åϢ³¤·¤Æ¤¤¤¿¾ì¹ç¤Ë¤Î¤ß¡¢Ê¸»úÎó½ªÃ¼¤òǧ¼±¤¹¤ë¤è¤¦¤Ç¤¹¡£ Î㤨¤Ð¡¢Àè¤Û¤É¤Î¥×¥í¥°¥é¥à¤Ç¡¢ char s1[] = "a/b/c\0d/e/f"; ¤ò¡¢ char s1[] = "a/b/c\0\0d/e/f"; ¤ËÊѹ¹¤¹¤ë¤È¡¢ ¡Ö(a)(b)(c)¡× ¤Èɽ¼¨¤µ¤ì¤Þ¤¹¡£ Àè¤Û¤É¤Î¥×¥í¥°¥é¥à¤Ç¡¢É½¼¨¤¬¡Ö(f)¡×¤Þ¤Ç¤Ç½ª¤ï¤Ã¤Æ¤¤¤¿¤Î¤â¡¢¤¿¤Þ¤¿¤Þ¡Öf¡×¤Î¸å¤í¤Ë¥Ì¥ëʸ»ú¤¬¤¤¤¯¤Ä¤« ʤó¤Ç¤¤¤¿¤¿¤á¤Ç¡¢¤â¤·¤½¤¦¤Ê¤Ã¤Æ¤¤¤Ê¤±¤ì¤Ð±Ê±ó¤Ë½ª¤ï¤é¤º¡¢ ¡Ö(a)(b)(c)(d)(e)(f)(¥´¥ß)(¥´¥ß)(¥´¥ß)...¡× ¤Èɽ¼¨¤µ¤ì¤Æ¤·¤Þ¤Ã¤Æ¤¤¤¿¤Ç¤·¤ç¤¦¡£ --------------------------------------------------------------------------------------------------- ·ëÏÀ¡§ S1C33 Family C¥³¥ó¥Ñ¥¤¥é¥Ñ¥Ã¥±¡¼¥¸¤Îstrtok()´Ø¿ô¤Ï¡¢»È¤Ã¤Æ¤Ï¤¤¤±¤Þ¤»¤ó¡£ ²óÈòÊýË¡¡§ ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥×¥í¥°¥é¥à¤ÎÃæ¤Çstrtok()¤ò¼ÂÁõ¤·¤Æ¡¢¥é¥¤¥Ö¥é¥êÆâ¤Îstrtok()¤òÃÖ¤­´¹¤¨¤Æ¤·¤Þ¤¤¤Þ¤·¤ç¤¦¡£ char* strtok(char* s1, const char* s2) { /* find next token in s1[] delimited by s2[] */ ¡¡¡¡¡¡¡¡static char* ssave = ""; /* for safety */ ¡¡¡¡¡¡¡¡char *sbegin, *send; ¡¡¡¡¡¡¡¡sbegin = s1 ? s1 : ssave; ¡¡¡¡¡¡¡¡sbegin += strspn(sbegin, s2); ¡¡¡¡¡¡¡¡if(*sbegin == '\0') { /* end of scan */ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ssave = ""; /* for safety */ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡return NULL; ¡¡¡¡¡¡¡¡} ¡¡¡¡¡¡¡¡send = sbegin + strcspn(sbegin, s2); ¡¡¡¡¡¡¡¡if(*send != '\0') *send++ = '\0'; ¡¡¡¡¡¡¡¡ssave = send; ¡¡¡¡¡¡¡¡return sbegin; } // P.J.¥×¥é¥¦¥¬¡¼Ãø¡Öɸ½à£Ã¥é¥¤¥Ö¥é¥ê ANSI/ISO/JIS Cµ¬³Ê¡×¡Ê¥È¥Ã¥Ñ¥ó¡Ë // ½éÈÇ 467¥Ú¡¼¥¸ ¿Þ14.20 strtok.c ¤ò¤½¤Ã¤¯¤ê¤½¤Î¤Þ¤Þ»È¤ï¤»¤Æ夭¤Þ¤·¤¿¡£ ¤½¤¦¤¤¤¨¤Ð¡¢¤ª¤Ç¥Þ¥ë¤Î¥½¡¼¥¹¤âɸ½à¤Îstrtok()¤ò»È¤ï¤º¡¢¼«Á°¤Îstrtok()´Ø¿ô¤òÍÑ°Õ¤·¤Æ¤½¤ì¤ò»È¤Ã¤Æ¤¤¤Þ¤·¤¿¡£ ¡Ê\usr\PIECE\app\odemaru\piece_ex.c 56¹ÔÌÜ¡Á PIECE_StrTok()´Ø¿ô¡Ë ɸ½àstrtok()´Ø¿ô¤ÎÌäÂê¤ò²óÈò¤¹¤ë¤¿¤á¤À¤Ã¤¿¤Î¤Ç¤¹¤Í¡£ * Sun Oct 13 10:03:00 JST 2002 Naoyuki Sawa - 64¥Ó¥Ã¥ÈÀ°¿ô±é»»¥é¥¤¥Ö¥é¥ê C¸À¸ì¤Ç64¥Ó¥Ã¥ÈÀ°¿ô±é»»¤ò¹Ô¤¦¤Ë¤Ï¡Ölong long¡×¤ò»È¤¤¤Þ¤¹¡£Éä¹æ̵¤·¤Î¾ì¹ç¤Ï¡Öunsigned long long¡×¤Ç¤¹¡£ ¡Ölong long¡×·¿¤Ï¡¢1999ǯ¤Ë¼è¤ê·è¤á¤é¤ì¤¿¿·¤·¤¤C¸À¸ìµ¬³Ê¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë»ÅÍͤǤ¹¡£ P/ECE¤ÎC¥³¥ó¥Ñ¥¤¥é¤Ï¸Å¤¤C¸À¸ìµ¬³Ê¤Ë±è¤Ã¤Æºî¤é¤ì¤Æ¤¤¤Þ¤¹¤¬¡¢¡Ölong long¡×·¿¤Ï´û¤Ë¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ ¤½¤ì¤Ç¤Ï¡¢64¥Ó¥Ã¥ÈÀ°¿ô±é»»¤ò»î¤·¤Æ¤ß¤Þ¤·¤ç¤¦¡£¼¡¤Î¤è¤¦¤Ê¥×¥í¥°¥é¥à¤ò½ñ¤¤¤Æ¡§ void smain() { long long a, b, c; a = 15372468987LL; b = 12345678901LL; c = a + b; } ¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤È... test1.o: Warning: Unresolved external symbol '__adddi3'. ¤¢¤ì¡©¥ê¥ó¥¯¥¨¥é¡¼¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¤¤Þ¤·¤¿¡£__adddi3¤È¤¤¤¦´Ø¿ô¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¡¢¤È¸À¤Ã¤Æ¤¤¤Þ¤¹¡£ ¤½¤ó¤Ê´Ø¿ô¤Ï¸Æ¤ó¤À³Ð¤¨¤¬¤Ê¤¤¤Î¤Ç¤¹¤¬¡¢¤³¤ì¤Ï¤¤¤Ã¤¿¤¤¤É¤¦¤¤¤¦¤³¤È¤Ç¤·¤ç¤¦¤«¡© - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - P/ECE¤ÎCPU S1C33209¤Ï¡¢64¥Ó¥Ã¥ÈÀ°¿ô±é»»¤ò¹Ô¤¦¤¿¤á¤Î¥Ï¡¼¥É¥¦¥§¥¢¤ò»ý¤Ã¤Æ¤¤¤Þ¤»¤ó¡£ 64¥Ó¥Ã¥ÈÀ°¿ô±é»»¤ÏľÀÜ¥¢¥»¥ó¥Ö¥é¥³¡¼¥É¤ËÊÑ´¹¤µ¤ì¤ë¤Î¤Ç¤Ï¤Ê¤¯¡¢64¥Ó¥Ã¥ÈÀ°¿ô±é»»¤ò¹Ô¤¦´Ø¿ô¤Î¸Æ¤Ó½Ð¤·¤ËÃÖ¤­´¹¤¨¤é¤ì¤Þ¤¹¡£ Î㤨¤Ð¡¢Àè¤Û¤É¤Î¥×¥í¥°¥é¥à¤Î¡Öc = a + b¡×¤ÎÉôʬ¤Ï¡¢¼¡¤Î¤è¤¦¤Ê¥¢¥»¥ó¥Ö¥é¥³¡¼¥É¤Ë¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤Þ¤¹¡£ xld.w %r12,[%sp+12] /* (%r13,%r12) ¤Ë­¤µ¤ì¤ë¿ô(a)¤òÆþ¤ì¤Þ¤¹¡£ */ xld.w %r13,[%sp+16] xld.w %r14,[%sp+20] /* (%r15,%r14) ¤Ë­¤¹¿ô(b)¤òÆþ¤ì¤Þ¤¹¡£ */ xld.w %r15,[%sp+24] xcall __adddi3 /* (%r11,%r10) = (%r13,%r12) + (%r15,%r14) ¤ò¹Ô¤¦¥µ¥Ö¥ë¡¼¥Á¥ó */ xld.w [%sp+28],%r10 /* ·ë²Ì¤ò¥á¥â¥ê¤Ë½ñ¤­Ìᤷ¤Þ¤¹¡£ */ xld.w [%sp+32],%r11 ¤Á¤Ê¤ß¤Ë¡¢´Ø¿ô¸Æ¤Ó½Ð¤·¤ËÃÖ¤­´¹¤¨¤é¤ì¤ë¤Î¤Ï64¥Ó¥Ã¥ÈÀ°¿ô±é»»¤Ë¸Â¤Ã¤¿¤³¤È¤Ç¤Ï¤Ê¤¯¡¢ ÉâÆ°¾®¿ôÅÀ±é»»¤ä32¥Ó¥Ã¥È½ü»»¤Ê¤É¤â¡¢¼Â¤Ï´Ø¿ô¸Æ¤Ó½Ð¤·¤ËÃÖ¤­´¹¤¨¤é¤ì¤Æ¤¤¤ë¤Î¤Ç¤¹¡£ 32¥Ó¥Ã¥È½ü»»¤Ë´Ø¤·¤Æ¤Ï¡¢CPU¤¬½ü»»Ì¿Îá¤ò»ý¤Ã¤Æ¤¤¤Þ¤¹¤¬¡¢35Ì¿Îá¤âɬÍפȤ·¤Þ¤¹¡£ ¤¢¤Á¤³¤Á¤Ç32¥Ó¥Ã¥È½ü»»¤ò¹Ô¤¦¾ì¹ç¡¢¤½¤Î¾ì¤½¤Î¾ì¤ËŸ³«¤·¤Æ¤¤¤Æ¤Ï¥×¥í¥°¥é¥à¥µ¥¤¥º¤¬Èó¾ï¤ËÂ礭¤¯¤Ê¤Ã¤Æ¤·¤Þ¤¦¤Î¤Ç¡¢ ¥×¥í¥°¥é¥à¥µ¥¤¥º¤ò¾®¤µ¤¯¤¹¤ë¤¿¤á¤Ë¡¢¤Þ¤È¤á¤Æ´Ø¿ô¸Æ¤Ó½Ð¤·¤Ë¤·¤Æ¤¤¤ë¤Î¤Ç¤¹¤Í¡£ ÉâÆ°¾®¿ôÅÀ±é»»¤ò¹Ô¤¦´Ø¿ô¡Ê__addsf3¤ä__divsf3¤Ê¤É¡Ë¤Ï¡¢ÉâÆ°¾®¿ôÅÀ±é»»¥é¥¤¥Ö¥é¥ê¤È¤·¤Æ¡¢\usr\PIECE\lib\fp.lib ¤ËÆþ¤Ã¤Æ¤¤¤Þ¤¹¡£ 32¥Ó¥Ã¥È½ü»»¤ò¹Ô¤¦´Ø¿ô¡Ê__divsi3¤ä__modsi3¤Ê¤É¡Ë¤Ï¡¢À°¿ô¾ê;±é»»¥é¥¤¥Ö¥é¥ê¤È¤·¤Æ¡¢\usr\PIECE\lib\idiv.lib ¤ËÆþ¤Ã¤Æ¤¤¤Þ¤¹¡£ ¤³¤Î¤¢¤¿¤ê¤ÎÀâÌÀ¤Ï¡¢ ¡ØS1C33 Family C¥³¥ó¥Ñ¥¤¥é¥Ñ¥Ã¥±¡¼¥¸ ¥Þ¥Ë¥å¥¢¥ë¡Ù¡Ê\usr\PIECE\docs\datasheet\EPSON\S5U1C33000C_J.pdf¡Ë £·¡¥¥¨¥ß¥å¥ì¡¼¥·¥ç¥ó¥é¥¤¥Ö¥é¥ê¡Ê93¡Á95¥Ú¡¼¥¸¡Ë ¤ËºÜ¤Ã¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢¤´»²¾È¤¯¤À¤µ¤¤¡£ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ¤½¤ì¤Ç¤Ï¡¢64¥Ó¥Ã¥ÈÀ°¿ô±é»»¤ò¹Ô¤¦´Ø¿ô¤Ï¡¢¤É¤Î¥é¥¤¥Ö¥é¥ê¤ËÆþ¤Ã¤Æ¤¤¤ë¤Î¤Ç¤·¤ç¤¦¤«¡© ¡¦¡¦¡¦Æþ¤Ã¤Æ¤¤¤Þ¤»¤ó¡ª Æþ¤Ã¤Æ¤¤¤Ê¤¤¤Î¤Ç¤¹¡£ C¥³¥ó¥Ñ¥¤¥é¤Ï³Î¤«¤Ë¡Ölong long¡×¤òǧ¼±¤·¡¢64¥Ó¥Ã¥ÈÀ°¿ô±é»»´Ø¿ô¤ò¸Æ¤Ó½Ð¤¹¥¢¥»¥ó¥Ö¥é¥³¡¼¥É¤òÀ¸À®¤·¤Æ¤¤¤ë¤Î¤Ç¤¹¤¬¡¢ ´Î¿´¤Î64¥Ó¥Ã¥ÈÀ°¿ô±é»»¥é¥¤¥Ö¥é¥ê¤¬Ä󶡤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£ P/ECE¤ÎCD-ROM¤ËÆþ¤ì˺¤ì¤¿¡¢¤È¤¤¤¦¤ï¤±¤Ç¤Ï¤Ê¤µ¤½¤¦¤Ç¤¹¡£ Àè¤Û¤É¤Î»ñÎÁ¤Ç¤â¡¢64¥Ó¥Ã¥ÈÀ°¿ô±é»»¥é¥¤¥Ö¥é¥ê¤Ë¤Ä¤¤¤Æ¤ÏÁ´¤¯¿¨¤ì¤é¤ì¤Æ¤¤¤Þ¤»¤ó¤«¤é¡¢ ¤É¤¦¤ä¤é¡¢EPSON¤µ¤ó¤ÎC¥³¥ó¥Ñ¥¤¥é¥Ñ¥Ã¥±¡¼¥¸ÇÛÉÛ¥»¥Ã¥È¤Ë¤â¤È¤â¤È´Þ¤Þ¤ì¤Æ¤¤¤Ê¤¤¤è¤¦¤Ç¤¹¡£ C¥³¥ó¥Ñ¥¤¥é¤ÏÂбþ¤·¤Æ¤¤¤ë¤Î¤Ë¡¢¥é¥¤¥Ö¥é¥ê¤¬Ä󶡤µ¤ì¤Æ¤¤¤Ê¤¤¡¢¤È¤¤¤¦¤Î¤Ï¤É¤¦¤¤¤¦¤³¤È¤Ç¤·¤ç¤¦¤«¡© ¹Í¤¨¤é¤ì¤ë¤Î¤Ï¡¢C¥³¥ó¥Ñ¥¤¥é¤Î¡Ölong long¡×Âбþ¤¬ÉÔ½¼Ê¬¤Ç¡¢¥é¥¤¥Ö¥é¥ê¤òÍÑ°Õ¤·¤¿¤À¤±¤Ç¤ÏÀµ¤·¤¯»È¤¨¤Ê¤¤¤¿¤á¡¢ 64¥Ó¥Ã¥ÈÀ°¿ô±é»»¥é¥¤¥Ö¥é¥ê¤âºî¤Ã¤¿¤±¤ÉÇÛÉÛ¤·¤Ê¤«¤Ã¤¿¡¢¤È¤¤¤¦¥±¡¼¥¹¤Ç¤¹¡£ ¤·¤«¤·¤Ê¤¬¤é¡¢¤¤¤¯¤Ä¤«¥×¥í¥°¥é¥à¤ò½ñ¤¤¤Æ»î¤·¤Æ¤ß¤¿¸Â¤ê¤Ç¤Ï¡¢À¸À®¤µ¤ì¤ë¥³¡¼¥É¤ËÆäËÌäÂ꤬¤¢¤ë¤è¤¦¤Ë¤Ï¸«¤¨¤Þ¤»¤ó¤Ç¤·¤¿¡£ ¤½¤³¤Ç¡¢64¥Ó¥Ã¥ÈÀ°¿ô±é»»¥é¥¤¥Ö¥é¥ê¤ò¼«Á°¤ÇÍÑ°Õ¤·¤Æ¤ß¤ë¤³¤È¤Ë¤·¤Þ¤·¤¿¡£ 64¥Ó¥Ã¥ÈÀ°¿ô±é»»¤Î´Ø¿ô̾¤Ï¼¡¤Î¤È¤ª¤ê¤Ç¤¹¡§ __negdi2 (%r11,%r10) ¢« -(%r13,%r12) __adddi3 (%r11,%r10) ¢« (%r13,%r12) + (%r15,%r14) __subdi3 (%r11,%r10) ¢« (%r13,%r12) - (%r15,%r14) __muldi3 (%r11,%r10) ¢« (%r13,%r12) * (%r15,%r14) __divdi3 (%r11,%r10) ¢« (%r13,%r12) / (%r15,%r14) ¢¨Éä¹æÉÕ¤­ __udivdi3 (%r11,%r10) ¢« (%r13,%r12) / (%r15,%r14) ¢¨Éä¹æ̵¤· __moddi3 (%r11,%r10) ¢« (%r13,%r12) % (%r15,%r14) ¢¨Éä¹æÉÕ¤­ __umoddi3 (%r11,%r10) ¢« (%r13,%r12) % (%r15,%r14) ¢¨Éä¹æ̵¤· ¤³¤ì¤é¤Î´Ø¿ô¤ò¼ÂÁõ¤·¤¿¥½¡¼¥¹¤Ï¤³¤Á¤é¡£¥Æ¥¹¥ÈÍÑ¥×¥í¥°¥é¥à¤â´Þ¤ó¤Ç¤¤¤Þ¤¹¡§ http://www.piece-me.org/archive/int64-20021013-src.zip ¥Æ¥¹¥È¥×¥í¥°¥é¥à¤Î·ë²Ì¤Î²èÌ̤Ϥ³¤¦¤Ê¤ê¤Þ¤¹¡§ http://www.piece-me.org/int64-20021013.png ¤È¤ê¤¢¤¨¤º¡¢¤Á¤ã¤ó¤ÈÆ°¤¤¤Æ¤¤¤ë¤ß¤¿¤¤¤Ç¤¹¤Í¡£ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - º£²ó¼ÂÁõ¤·¤¿64¥Ó¥Ã¥ÈÀ°¿ô±é»»¥é¥¤¥Ö¥é¥ê¤Ë¤Ï¡¢¤Þ¤À¼¡¤Î¤è¤¦¤ÊÌäÂêÅÀ¡¦ÉÔ°ÂÅÀ¤¬¤¢¤ê¤Þ¤¹¡£ °ìÉô̤¼ÂÁõ¤Î´Ø¿ô¤¬¤¢¤ê¤Þ¤¹ -------------------------- ÉâÆ°¾®¿ôÅÀ¢Î64¥Ó¥Ã¥ÈÀ°¿ô¤ÎÊÑ´¹¤ò¹Ô¤¦¤¿¤á¤Î´Ø¿ô¤ò¤Þ¤À¼ÂÁõ¤·¤Æ¤¤¤Þ¤»¤ó¡£ ÉâÆ°¾®¿ôÅÀ¢Î64¥Ó¥Ã¥ÈÀ°¿ô¤ÎÊÑ´¹¤ËɬÍפʴؿô¤Ï¡¢__fixsfdi,__fixunssfdi,__floatdisf¤Ç¤¹¡£ ÉâÆ°¾®¿ôÅÀ¤¬Íí¤ó¤Ç¤¯¤ë¤È¤Á¤ç¤Ã¤ÈÌÌÅݤʤΤȡ¢¤³¤Î¤è¤¦¤Ê·¿ÊÑ´¹¤ÏÅöÌÌɬÍפʤ¤¤È¹Í¤¨¤¿¤Î¤Ç¡¢º£²ó¤Ï¼ÂÁõ¤·¤Þ¤»¤ó¤Ç¤·¤¿¡£ ¤Þ¤¿¡¢¤Ê¤¼¤«ÉâÆ°¾®¿ôÅÀ¢Î64¥Ó¥Ã¥ÈÀ°¿ô¤ÎÊÑ´¹»þ¤Ë__cmpdi2¤È¤¤¤¦´Ø¿ô¤¬¸Æ¤Ð¤ì¤ë¤³¤È¤â¤¢¤ê¤Þ¤¹¡£ ´Ø¿ô̾¤«¤é¿ä¬¤¹¤ë¤È¡Ölong long¡×Ʊ»Î¤ÎÈæ³Ó¤Î¤è¤¦¤Ç¤¹¤¬¡¢ Ä̾ï¤Î¡Ölong long¡×Ʊ»Î¤ÎÈæ³Ó¤Ï´Ø¿ô¸Æ¤Ó½Ð¤·¤ËÃÖ¤­´¹¤¨¤é¤ì¤º¡¢Ä¾ÀÜ¥¢¥»¥ó¥Ö¥é¥³¡¼¥É¤ËŸ³«¤µ¤ì¤Æ¤¤¤ë¤Î¤Ç¤¹¡£ Î㤨¤Ð¡¢¼¡¤Î¤è¤¦¤Ê¥×¥í¥°¥é¥à¤Ï¡§ void test(long long a, long long b) { if(a > b) return; ... } ľÀÜ¥¢¥»¥ó¥Ö¥é¥³¡¼¥É¤ËŸ³«¤µ¤ì¤Þ¤¹¡£__cmpdi2¤Ï¸Æ¤Ð¤ì¤Æ¤¤¤Þ¤»¤ó¡£ cmp %r13,%r15 /* ¾å°Ì32¥Ó¥Ã¥È¤ÎÈæ³Ó */ xjrgt __L1 xjrne __L2 cmp %r12,%r14 /* ²¼°Ì32¥Ó¥Ã¥È¤ÎÈæ³Ó */ xjrugt __L1 __L2: ... __L1: ret ͽÁۤǤ¹¤¬¡¢¤¿¤Ö¤óÀΤÏÄ̾ï¤Î¡Ölong long¡×Ʊ»Î¤ÎÈæ³Ó¤â__cmpdi2¤Î¸Æ¤Ó½Ð¤·¤ËÊÑ´¹¤µ¤ì¤Æ¤¤¤¿¤Î¤À¤È»×¤¤¤Þ¤¹¡£ ¤½¤Î¸å¡¢C¥³¥ó¥Ñ¥¤¥é¤ÎºÇŬ²½¤Ë¤è¤ê¡¢¸úΨ¤ÎÎɤ¤¥³¡¼¥É¤¬À¸À®¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¡¢ Ä̾ï¤ÎÈæ³Ó¤Ï´Ø¿ô¸Æ¤Ó½Ð¤·¤Ç¤Ï¤Ê¤¯¡¢Ä¾ÀÜ¥¢¥»¥ó¥Ö¥é¥³¡¼¥É¤ËŸ³«¤µ¤ì¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¤Î¤Ç¤Ï¤Ê¤¤¤Ç¤·¤ç¤¦¤«¡£ ÉâÆ°¾®¿ôÅÀ¢Î64¥Ó¥Ã¥ÈÀ°¿ô¤ÎÃæ¤ÎÈæ³Ó½èÍý¡Ê¤Ê¤¼·¿ÊÑ´¹¤ËÈæ³Ó¤¬É¬ÍפʤΤ«¤è¤¯¤ï¤«¤Ã¤Æ¤¤¤Ê¤¤¤Î¤Ç¤¹¤¬(^^;¡Ë¤Ï¡¢ ²¿¤é¤«¤ÎÍýͳ¤Ë¤è¤ê¡Ê¤â¤·¤«¤·¤¿¤éºÇŬ²½Ëº¤ì¡©¡ËÀΤÎ̾»Ä¤Ç__cmpdi2¤Î¸Æ¤Ó½Ð¤·¤Î¤Þ¤Þ¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤Î¤Ç¤Ï¤Ê¤¤¤«¤È»×¤¤¤Þ¤¹¡£ %r4¤È%r12¡Á%r15¤¬Ç˲õ¤µ¤ì¤Þ¤¹ ----------------------------- S1C33 Family C¥³¥ó¥Ñ¥¤¥é¤Î´Ø¿ô¸Æ¤Ó½Ð¤·µ¬Ìó¤Ë¤è¤ê¡¢´Ø¿ô¤Ï%r4¡Á%7¡¦%r12¡Á%r15¤òÇ˲õ¤·¤Æ¤â¤¤¤¤¤³¤È¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£ º£²ó¼ÂÁõ¤·¤¿64¥Ó¥Ã¥ÈÀ°¿ô±é»»¥é¥¤¥Ö¥é¥ê¤â¡¢¤³¤ì¤é¤Î¥ì¥¸¥¹¥¿¤òºî¶ÈÍѤ˻Ȥ¦¤Î¤Ç¡¢¸Æ¤Ó½Ð¤µ¤ì¤¿¤È¤­¤ÎÃͤòÊÝ»ý¤·¤Þ¤»¤ó¡£ ¤¿¤Ö¤ó¤³¤ì¤ÇÌäÂê¤Ê¤¤¤È¤Ï»×¤¦¤Î¤Ç¤¹¤¬¡¢ÉâÆ°¾®¿ôÅÀ±é»»¥é¥¤¥Ö¥é¥ê¤äÀ°¿ô¾ê;±é»»¥é¥¤¥Ö¥é¥ê¡¢64¥Ó¥Ã¥ÈÀ°¿ô±é»»¥é¥¤¥Ö¥é¥ê¤Ï C¥³¥ó¥Ñ¥¤¥é¤½¤Î¤â¤Î¤Ë¿¼¤¯´Ø¤ï¤Ã¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢¤â¤·¤«¤·¤¿¤éC¥³¥ó¥Ñ¥¤¥é¤Ï¤³¤ì¤é¤Î¥é¥¤¥Ö¥é¥ê´Ø¿ô¤ËÂФ·¤Æ¡¢ Ä̾ï¤Î´Ø¿ô¤È¤Ï°Û¤Ê¤ë¡¢ÆÃÊ̤ʴؿô¸Æ¤Ó½Ð¤·µ¬Ìó¤ò´üÂÔ¤·¤Æ¤¤¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡£ ¤â¤·¤âC¥³¥ó¥Ñ¥¤¥é¤¬¤³¤ì¤é¤Î´Ø¿ô¤ËÂФ·¤Æ¡ÈÁ´¥ì¥¸¥¹¥¿¤¬Êݸ¤µ¤ì¤ë¤³¤È¡É¤ò´üÂÔ¤·¤Æ¤¤¤¿¾ì¹ç¡¢ ͽ´ü¤·¤Ê¤¤¥ì¥¸¥¹¥¿¤¬Ç˲õ¤µ¤ì¤Æ¤·¤Þ¤¦¤³¤È¤Ë¤è¤Ã¤Æ¡¢´Ö°ã¤Ã¤¿Æ°ºî¤ò°ú¤­µ¯¤³¤¹²ÄǽÀ­¤¬¤¢¤ê¤Þ¤¹¡£ ¤³¤ì¤Þ¤Ç¼Â¸³¤·¤¿¤È¤³¤íÌäÂê¤Ê¤¤¤Î¤Ç¡¢¤¿¤Ö¤óÂç¾æÉפÀ¤È¤Ï»×¤¦¤Î¤Ç¤¹¤¬¡¢¡ØS1C33 Family C¥³¥ó¥Ñ¥¤¥é¥Ñ¥Ã¥±¡¼¥¸ ¥Þ¥Ë¥å¥¢¥ë¡Ù¤Ë ¤³¤ÎÅÀ¤Ë´Ø¤¹¤ëÀâÌÀ¤¬¤Ê¤¤¤¿¤á¡¢¤Þ¤À¾¯¤·É԰¤Ǥ¹¡£ ¾è»»¡¦½ü»»¤ÏÃÙ¤¤¤Ç¤¹ -------------------- ¾è»»¥ë¡¼¥Á¥ó¡Ê__muldi3¡Ë¤Ï¡¢¸ÅŵŪ¤Ê£±¥Ó¥Ã¥È¤Å¤Ä¤ÎÉ®»»Êý¼°¤òºÎ¤Ã¤Æ¤¤¤Þ¤¹¡£ S1C33 CPU¤Î¾è»»Ì¿Îá¤òÍøÍѤ·¤Æ¡¢32¥Ó¥Ã¥È¤Å¤Ä¤Þ¤È¤á¤Æ·×»»¤¹¤ì¤Ð¡¢¤â¤Ã¤È¹â®²½¤Ç¤­¤ë¤È»×¤¤¤Þ¤¹¡£ ½ü»»¡¦¾ê;¥ë¡¼¥Á¥ó¡Ê__divdi3¡¤__moddi3¤Ê¤É¡Ë¤Ï¡¢S1C33 CPU¤Îdiv0s¡¤div1¡¤div2s¡¤div3sÌ¿Îá¤ÎÆ°ºî¤ò¤½¤Ã¤¯¤ê¤½¤Î¤Þ¤Þ¿¿»÷¤Æºî¤ê¤Þ¤·¤¿¡£ ¤³¤ì¤é¤ÎÌ¿Î᤬32¥Ó¥Ã¥È¤Ç½èÍý¤·¤Æ¤¤¤ë¤È¤³¤í¤ò¡¢Ã±¤Ë64¥Ó¥Ã¥Èʬ¹Ô¤¦¤è¤¦¤Ë³ÈÄ¥¤·¤¿¤À¤±¤Ç¤¹¡£ div1Ì¿Îá¤Ê¤É¤¬¥Ï¡¼¥É¥¦¥§¥¢¤Ç¹Ô¤Ã¤Æ¤¤¤ë½èÍý¤ò¥½¥Õ¥È¥¦¥§¥¢¤ËÃÖ¤­´¹¤¨¤Þ¤·¤¿¤Î¤Ç¡¢1¥Ó¥Ã¥ÈÅö¤¿¤ê10ÇܰʾåÃÙ¤¯¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£ ¤µ¤é¤Ë¥Ó¥Ã¥È¿ô¤¬2ÇܤǤ¹¤Î¤Ç¡¢20Çܰʾ塣¾¤Î½èÍý¤â¹Í¤¨¤ë¤È¡¢30Çܰʾå¤ÏÃÙ¤¯¤Ê¤Ã¤Æ¤¤¤ë¤È»×¤¤¤Þ¤¹¡£ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ¥Ð¥°¡¦¹â®²½ÊýË¡¤Ê¤É¡¢¤ªµ¤ÉÕ¤­¤ÎÅÀ¤¬¤¢¤ê¤Þ¤·¤¿¤é¡¢¤´°ìÊ󤯤À¤µ¤ì¤Ð¹¬¤¤¤Ç¤¹¡£ 64¥Ó¥Ã¥ÈÀ°¿ô±é»»¤¬¼ÂºÝ¤Ë¤É¤ÎÄøÅÙɬÍפʤΤ«¡©¤È¹Í¤¨¤ë¤È¡¢¤¢¤Þ¤êÎϤòÆþ¤ì¤ëÉôʬ¤Ç¤Ï¤Ê¤¤¤è¤¦¤Êµ¤¤â¤·¤Þ¤¹¤¬¡¢ ¼ÂÍÑÀ­¤Ï¤È¤â¤«¤¯¡¢¾®¤µ¤Ê¥µ¥Ö¥ë¡¼¥Á¥ó¤Î¥¢¥»¥ó¥Ö¥é¥³¡¼¥Ç¥£¥ó¥°¤Ï³Ú¤·¤¤¤Ç¤¹¤è¤Í¡£ * Thu Sep 19 12:30:00 JST 2002 Naoyuki Sawa - calloc()¤¬¼ºÇÔ¤¹¤ë ---- ¾õ¶· ---- ɸ½à£Ã¥é¥¤¥Ö¥é¥ê¤Ë¤Ï¡¢¼ç¤ËÆó¼ïÎà¤Î¥á¥â¥ê³ä¤êÅö¤Æ´Ø¿ô¤¬¤¢¤ê¤Þ¤¹¡£ malloc()¤Ècalloc()¤Ç¤¹¡£ malloc()¤¬Ã±¤Ë¥á¥â¥ê¤ò³ä¤êÅö¤Æ¤ë¤À¤±¤Ê¤Î¤ËÂФ·¡¢calloc()¤Ï³ä¤êÅö¤Æ¤¿¥á¥â¥ê¤Î¥¼¥í¥¯¥ê¥¢¤â¹Ô¤Ã¤Æ¤¯¤ì¤Þ¤¹¡£ ¥×¥í¥°¥é¥à¦¤Ç¥¼¥í¥¯¥ê¥¢¤ò¹Ô¤ï¤Ê¤¯¤ÆºÑ¤àʬcalloc()¤ÎÊý¤¬ÊØÍø¤Ê¤Î¤Ç¡¢malloc()¤è¤ê¤âcalloc()¤ÎÊý¤ò¹¥¤ó¤Ç»È¤Ã¤Æ¤¤¤¿¤Î¤Ç¤¹¤¬¡¢ P/ECE³«È¯´Ä¶­¤Îcalloc()¡Ê°Ê²¼¡¢P/ECEÈÇcalloc()¤È¸Æ¤Ö¤³¤È¤Ë¤·¤Þ¤¹¡Ë¤Ë¤Ï¤Á¤ç¤Ã¤ÈÍî¤È¤··ê¤¬¤¢¤ë¤³¤È¤Ëµ¤ÉÕ¤­¤Þ¤·¤¿¡£ Ʊ¤¸¥µ¥¤¥º¤Î¥á¥â¥ê³ä¤êÅö¤Æ¤Ç¡¢malloc()¤ò»È¤¨¤ÐÀ®¸ù¤¹¤ë¤Î¤Ëcalloc()¤ò»È¤¦¤È¼ºÇÔ¤¹¤ë¤³¤È¤¬¤¢¤ë¡¢¤È¤¤¤¦¤â¤Î¤Ç¤¹¡£ ¥µ¥ó¥×¥ë¥×¥í¥°¥é¥à¤òÍÑ°Õ¤·¤Þ¤·¤¿¡£ http://www.piece-me.org/archive/calloc-20020919-src.zip ¤³¤Î¥µ¥ó¥×¥ë¥×¥í¥°¥é¥à¤Ï¡¢16¥­¥í¥Ð¥¤¥È¤Î¥Ò¡¼¥×Îΰ褫¤é¡¢¸Þ¼ïÎà¤ÎÊýË¡¤Ç8¥­¥í¥Ð¥¤¥È¤Î¥á¥â¥ê³ä¤êÅö¤Æ¤ò»î¹Ô¤·¤Þ¤¹¡£ ¸Þ¼ïÎà¤ÎÊýË¡¤Ï¡¢¼¡¤Î¤è¤¦¤Ê¤â¤Î¤Ç¤¹¡£ £±¡¥¡¡calloc(2048, 4) 4¥Ð¥¤¥È¡ß2048¸Ä¤Î¥á¥â¥ê³ä¤êÅö¤Æ £²¡¥¡¡calloc(4, 2048) 2048¥Ð¥¤¥È¡ß4¸Ä¤Î¥á¥â¥ê³ä¤êÅö¤Æ £³¡¥¡¡calloc(8192, 1) 1¥Ð¥¤¥È¡ß8192¸Ä¤Î¥á¥â¥ê³ä¤êÅö¤Æ £´¡¥¡¡calloc(1, 8192) 8192¥Ð¥¤¥È¡ß1¸Ä¤Î¥á¥â¥ê³ä¤êÅö¤Æ £µ¡¥¡¡malloc(8192) 8192¥Ð¥¤¥È¤Î¥á¥â¥ê³ä¤êÅö¤Æ ¤¤¤º¤ì¤â·ë²ÌŪ¤Ë¤Ï8¥­¥í¥Ð¥¤¥È¤Î¥á¥â¥ê³ä¤êÅö¤Æ¤¬¹Ô¤ï¤ì¤ë¤Ï¤º¤Ê¤Î¤Ç¡¢¤¹¤Ù¤ÆÀ®¸ù¤¹¤ë¤Ï¤º¤Ç¤¹¡£ ¤È¤³¤í¤¬¡¢¥µ¥ó¥×¥ë¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤·¤Æ¤ß¤ë¤È¡¢ £³¡¥¡¡calloc(8192, 1) 1¥Ð¥¤¥È¡ß8192¸Ä¤Î¥á¥â¥ê³ä¤êÅö¤Æ ¤¬¼ºÇÔ¤¹¤ë¤Î¤Ç¤¹¡£ ¤½¤ì°Ê³°¤Î£±¡¤£²¡¤£´¡¤£µ¤ÏÀ®¸ù¤·¤Þ¤¹¡£¤Ê¤¼¤Ç¤·¤ç¤¦¤«¡© ---- ¸¶°ø ---- calloc()¤Î°ú¿ô»ÅÍͤϡ¢¼¡¤Î¤È¤ª¤ê¤Ç¤¹¡£ void* calloc(size_t num, size_t size); num Í×ÁÇ¿ô size ³ÆÍ×ÁǤΥХ¤¥Èñ°Ì¤Ç¤ÎŤµ °ìÈÌŪ¤Ê½èÍý·Ï¤Îcalloc()¤Î¼ÂÁõ¤Ï¡¢¤À¤¤¤¿¤¤¼¡¤Î¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£ void* calloc(size_t num, size_t size) { int n; void* p; n = num * size; /* ³ä¤êÅö¤Æ¥Ð¥¤¥È¿ô¤ò·×»» */ p = malloc(n); /* ³ä¤êÅö¤Æ¤ò¹Ô¤Ã¤Æ¤ß¤ë */ if(p != NULL) memset(p, 0, n); /* À®¸ù¤Ê¤é¥¼¥í¥¯¥ê¥¢ */ return p; } ¤È¤³¤í¤¬¡¢P/ECEÈÇcalloc()¤Î¼ÂÁõ¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤ß¤¿¤¤¤Ç¤¹¡£ void* calloc(size_t num, size_t size) { int n; void* p; size = size + 3 & ~3; /* Í×ÁÇ¥µ¥¤¥º¤ò4¥Ð¥¤¥Èñ°Ì¤ËÀÚ¤ê¾å¤² */ n = num * size; /* ³ä¤êÅö¤Æ¥Ð¥¤¥È¿ô¤ò·×»» */ p = malloc(n); /* ³ä¤êÅö¤Æ¤ò¹Ô¤Ã¤Æ¤ß¤ë */ if(p != NULL) memset(p, 0, n); /* À®¸ù¤Ê¤é¥¼¥í¥¯¥ê¥¢ */ return p; } ³ä¤êÅö¤Æ¥Ð¥¤¥È¿ô¤ò·×»»¤¹¤ëÁ°¤Ë¡¢Í×ÁÇ¥µ¥¤¥º¤ò4¥Ð¥¤¥Èñ°Ì¤ËÀÚ¤ê¾å¤²¤Æ¤¤¤Þ¤¹¡£ ¤³¤ì¤òƧ¤Þ¤¨¤Æ¡¢Àè¤Û¤É¤Î¸Þ¼ïÎà¤Î³ä¤êÅö¤ÆÊýË¡¤Ç¤½¤ì¤¾¤ì²¿¥Ð¥¤¥È¤Î³ä¤êÅö¤Æ¤¬¹Ô¤ï¤ì¤è¤¦¤È¤·¤Æ¤¤¤¿¤Î¤«¤ò¹Í¤¨¤Æ¤ß¤ë¤È¡¢ £±¡¥¡¡calloc(2048, 4) 4¥Ð¥¤¥È¡ß2048¸Ä¤Î¥á¥â¥ê³ä¤êÅö¤Æ ¢ª (4+3&~3) * 2048 = 4 * 2048 = 8192[¥Ð¥¤¥È] £²¡¥¡¡calloc(4, 2048) 2048¥Ð¥¤¥È¡ß4¸Ä¤Î¥á¥â¥ê³ä¤êÅö¤Æ ¢ª (2048+3&~3) * 4 = 2048 * 4 = 8192[¥Ð¥¤¥È] £³¡¥¡¡calloc(8192, 1) 1¥Ð¥¤¥È¡ß8192¸Ä¤Î¥á¥â¥ê³ä¤êÅö¤Æ ¢ª (1+3&~3) * 8192 = 4 * 8192 = 32768[¥Ð¥¤¥È] £´¡¥¡¡calloc(1, 8192) 8192¥Ð¥¤¥È¡ß1¸Ä¤Î¥á¥â¥ê³ä¤êÅö¤Æ ¢ª (8192+3&~1) * 1 = 8192 * 1 = 8192[¥Ð¥¤¥È] £µ¡¥¡¡malloc(8192) 8192¥Ð¥¤¥È¤Î¥á¥â¥ê³ä¤êÅö¤Æ ¢ª 8192[¥Ð¥¤¥È] £³¤À¤±¤¬32KB¤â¤Î³ä¤êÅö¤Æ¤ò¹Ô¤ª¤¦¤È¤·¤Æ¤¤¤Þ¤¹¡£ ¥Ò¡¼¥×Îΰè¤Ï16KB¤·¤«½àÈ÷¤·¤Æ¤¤¤Þ¤»¤ó¤«¤é¡¢¤Ê¤ë¤Û¤É¼ºÇÔ¤¹¤ë¤Ï¤º¤Ç¤¹¡£ ¥Ò¡¼¥×Îΰ褬32KB°Ê¾å¤¢¤ì¤ÐÀ®¸ù¤·¤Þ¤¹¤¬¡¢24KBʬ¤â¤ÎÎΰ褬̵Â̤ˤʤäƤ·¤Þ¤¤¤Þ¤¹¡£ ¤Ç¤Ï¤Ê¤¼P/ECEÈÇcalloc()¤Ï¡¢¤ï¤¶¤ï¤¶Í×ÁÇ¥µ¥¤¥º¤ò4¥Ð¥¤¥Èñ°Ì¤ËÀÚ¤ê¾å¤²¤Æ¤¤¤ë¤Î¤Ç¤·¤ç¤¦¤«¡© ³Î¤«¤Ëcalloc()¤Î»ÅÍͤǤϡ¢³ä¤êÅö¤Æ¤é¤ì¤¿³ÆÍ×ÁǤ¬Å¬ÀڤʥХ¤¥È¶­³¦¤ËÇÛÃÖ¤µ¤ì¤ë¤è¤¦¡¢°ú¿ôsize¤Ë¤è¤Ã¤Æ³ä¤êÅö¤Æ¥µ¥¤¥º¤òÄ´À°¤·¤Æ¤â¹½¤ï¤Ê¤¤¤³¤È¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£ ¤¿¤Ö¤ó¡¢int¡¤short¡¤char·¿¤Î¥á¥ó¥ÐÊÑ¿ô¤¬º®ºß¤·¤Æ¤¤¤ë¹½Â¤ÂΤΤ¿¤á¤ÎÇÛθ¤À¤È»×¤¤¤Þ¤¹¡£ struct TEST { int a; /* +0¡Á3 */ char b; /* +4 */ }; /* =5¥Ð¥¤¥È */ ¹½Â¤ÂÎTEST¤Î¥µ¥¤¥º¤Ï5¥Ð¥¤¥È¤Ê¤Î¤Ç¡Ê¢¨¼Â¤Ï¤½¤¦¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£¸å½Ò¤·¤Þ¤¹¡Ë¡¢¤¹¤­´Ö¤Ê¤¯Ê¤٤ë¤È¡¢¥á¥ó¥ÐÊÑ¿ôa¤Ï5¥Ð¥¤¥È¤´¤È¤ËÇÛÃÖ¤µ¤ì¤Æ¤·¤Þ¤¤¤Þ¤¹¡£ S1C33 CPU¤Ç¤Ï¡¢intÊÑ¿ô¤Ï4¥Ð¥¤¥È¶­³¦¤ËÇÛÃÖ¤µ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¤¤¤±¤Þ¤»¤ó¡£ Æó¤ÄÌܰʹߤÎÍ×ÁǤΥá¥ó¥ÐÊÑ¿ôa¤Ï4¥Ð¥¤¥È¶­³¦¤ËÇÛÃÖ¤µ¤ì¤Æ¤¤¤Ê¤¤¤Î¤Ç¡¢Æɤ߽ñ¤­¤·¤è¤¦¤È¤¹¤ë¤È¥¢¥É¥ì¥¹¥¨¥é¡¼¤¬È¯À¸¤·¤Æ¤·¤Þ¤¤¤Þ¤¹¡£ struct TEST +=========+ +0 | | | int a | | | | | +---------+ +4 | char b | +=========+ +5 <- Æó¤ÄÌܤÎÍ×ÁǤΥá¥ó¥ÐÊÑ¿ôa¤Ë¥¢¥¯¥»¥¹¤¹¤ë¤È¥¢¥É¥ì¥¹¥¨¥é¡¼¡ª | | | int a | | | | | +---------+ +9 | char b | +=========+ +10 : : ¥¢¥É¥ì¥¹¥¨¥é¡¼¤òËɤ°¤Ë¤Ï¡¢¥á¥ó¥ÐÊÑ¿ôb¤Î¸å¤í¤Ë3¥Ð¥¤¥Èʬ¤Î¥Ñ¥Ç¥£¥ó¥°¡ÊµÍ¤áʪ¡Ë¤òÄɲ䷤ơ¢¹½Â¤ÂÎTEST¤Î¥µ¥¤¥º¤ò4¤ÎÇÜ¿ô¤Ë¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ struct TEST +=========+ +0 | | | int a | | | | | +---------+ +4 | char b | +---------+ +5 | | | µÍ¤áʪ | | | +=========+ +8 <- £Ï£Ë¡ª | | | int a | | | | | +---------+ +12 | char b | +---------+ +13 | | | µÍ¤áʪ | | | +=========+ +16 : : P/ECEÈÇcalloc()¤Ï¡¢¤³¤Î¥Ñ¥Ç¥£¥ó¥°¤Îʬ¤Î¥µ¥¤¥º¤ò¹Íθ¤·¤Æ¡¢Í×ÁÇ¥µ¥¤¥º¤ò4¥Ð¥¤¥Èñ°Ì¤ËÀÚ¤ê¾å¤²¤Æ¤¤¤ë¤Î¤À¤È»×¤¤¤Þ¤¹¡£ ¤·¤«¤·¤Ê¤¬¤é¼ÂºÝ¤Ë¤Ï¡¢¤³¤Î¤è¤¦¤ÊÇÛθ¤ÏÉÔÍפǤ¹¡£ ¹½Â¤ÂΤγƥá¥ó¥Ð¤¬Å¬ÀڤʥХ¤¥È¶­³¦¤ËÇÛÃÖ¤µ¤ì¤ë¤è¤¦¤Ë¥Ñ¥Ç¥£¥ó¥°¤òÄɲ乤ë¤Î¤Ï¡¢¥é¥¤¥Ö¥é¥ê´Ø¿ô¤ÎÌò³ä¤Ç¤Ï¤Ê¤¯£Ã¥³¥ó¥Ñ¥¤¥é¤ÎÌò³ä¤À¤«¤é¤Ç¤¹¡£ Àè¤Û¤É¤Î¹½Â¤ÂÎTEST¤Î¥µ¥¤¥º¤òÄ´¤Ù¤Æ¤ß¤ë¤È¡¢ sizeof(struct TEST) ¢ª 8 8¥Ð¥¤¥È¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£ ¹½Â¤ÂÎTEST¤ÎÇÛÎó¤òºîÀ®¤·¤¿¾ì¹ç¤Ë¡¢Æó¤ÄÌܰʹߤÎÍ×ÁǤΥá¥ó¥ÐÊÑ¿ôa¤¬4¥Ð¥¤¥È¶­³¦¤ËÇÛÃÖ¤µ¤ì¤ë¤è¤¦¡¢ºÇ¸å¤Ë3¥Ð¥¤¥È¤Î¥Ñ¥Ç¥¤¥ó¥°¤¬Äɲ䵤줿¤«¤é¤Ç¤¹¡£ ñ¤Ë¼¡¤Î¤è¤¦¤Ë½ñ¤¯¤À¤±¤ÇÂç¾æÉפǤ¹¡£ calloc(num, sizeof(struct TEST));¡¡¢«Æ±¤¸¢ª¡¡calloc(num, 8); ¤È¤¤¤¦¤ï¤±¤Ç¡¢P/ECEÈÇcalloc()¤Î¼ÂÁõ¤ÏÌÀ¤é¤«¤Ë´Ö°ã¤¤¤È¤¤¤¦¤ï¤±¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£ ŬÀڤʥХ¤¥È¶­³¦¤Ø¤ÎÇÛÃÖ¤ò¿´ÇÛ¤·¤¹¤®¤¿¤¢¤Þ¤ê¡¢³ä¤êÅö¤Æ¥µ¥¤¥º¤¬Â礭¤¯¤Ê¤ê¤¹¤®¤Æ¤·¤Þ¤Ã¤¿¤À¤±¤Ç¤¹¡£ ¤·¤«¤·¡¢1¥Ð¥¤¥Èñ°Ì¤Î¥á¥â¥ê³ä¤êÅö¤Æ¡Ê¤¤¤Á¤Ð¤ó¤è¤¯»È¤¦¥Ñ¥¿¡¼¥ó¤Ç¤¹¡Ë¤¬¾ï¤Ë3Çܤâ¤Î̵Â̤ÊÎΰè¤òȼ¤¦¤È¤¤¤¦¤Î¤Ï¡¢¤Á¤ç¤Ã¤È¥­¥Ó¥·¥¤¤È¤³¤í¤Ç¤¹¡£ calloc(1000, sizeof(char)) /* 1000ʸ»úʬ¤Î¥á¥â¥ê³ä¤êÅö¤Æ¡£¤·¤«¤·¼ÂºÝ¤Ë¤Ï4000ʸ»úʬ¡ª3000ʸ»úʬ¤Ï̵ÂÌ */ ---- Âкö ---- ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥×¥í¥°¥é¥à¤ÎÃæ¤Çcalloc()¤ò¼ÂÁõ¤·¤Æ¡¢¥é¥¤¥Ö¥é¥êÆâ¤Îcalloc()¤òÃÖ¤­´¹¤¨¤Æ¤·¤Þ¤¤¤Þ¤·¤ç¤¦¡£ void* calloc(size_t num, size_t size) { int n; void* p; n = num * size; /* ³ä¤êÅö¤Æ¥Ð¥¤¥È¿ô¤ò·×»» */ p = malloc(n); /* ³ä¤êÅö¤Æ¤ò¹Ô¤Ã¤Æ¤ß¤ë */ if(p != NULL) memset(p, 0, n); /* À®¸ù¤Ê¤é¥¼¥í¥¯¥ê¥¢ */ return p; } * Fri Aug 15 12:30:00 JST 2002 Naoyuki Sawa - C¥³¥ó¥Ñ¥¤¥é¤ÎºÇŬ²½¥ß¥¹¡¦¥ì¥Ý¡¼¥È P/ECE³«È¯´Ä¶­¤ÎC¥³¥ó¥Ñ¥¤¥é¤Î¡¢ºÇŬ²½¥ß¥¹¤Ë¤è¤ëÉÔ¶ñ¹ç¥ì¥Ý¡¼¥È¤Ç¤¹¡£ ¤Þ¤º¡¢Ëͤ¬ºî¤í¤¦¤È¤·¤¿´Ø¿ô¡Öhit_test()¡×¤Ë¤Ä¤¤¤ÆÀâÌÀ¤·¤Þ¤¹¡£ ¤³¤Î´Ø¿ô¤ÎÌÜŪ¤Ï¡¢È×Ì̾å¤Ë4¡ß4¤Î¥³¥Þ¤¬ÃÖ¤±¤ë¤«¤É¤¦¤«¡©¤òÄ´¤Ù¤ë¤³¤È¤Ç¤¹¡£ ¥³¥Þ¤òÃÖ¤­¤¿¤¤°ÌÃ֤κ¸¾åºÂɸ¤ò»ØÄꤷ¤Æ¡¢ÃÖ¤±¤ë¤Ê¤é0¡¢ÃÖ¤±¤Ê¤±¤ì¤Ð1¤òÊÖ¤·¤Þ¤¹¡£ ÃÖ¤±¤Ê¤¤Íýͳ¤È¤·¤Æ¤Ï¡¢¼¡¤Î¤è¤¦¤Ê¤â¤Î¤¬¤¢¤ê¤Þ¤¹¡£ ¡¦»ØÄꤵ¤ì¤¿ºÂɸ¤òº¸¾å¸¶ÅÀ¤È¤¹¤ë4¡ß4¤ÎÈϰϤ¬¡¢È×Ì̤ò¤Ï¤ß½Ð¤·¤Æ¤¤¤ë¾ì¹ç¡£ ¡¦»ØÄꤵ¤ì¤¿ºÂɸ¤òº¸¾å¸¶ÅÀ¤È¤¹¤ë4¡ß4¤ÎÈϰϤˡ¢´û¤Ë¥³¥Þ¤¬ÃÖ¤«¤ì¤Æ¤¤¤ë¾ì¹ç¡£ ¤³¤Î´Ø¿ô¤ò»È¤Ã¤ÆÉÔ¶ñ¹ç¤òºÆ¸½¤¹¤ë¡¢¥µ¥ó¥×¥ë¥×¥í¥°¥é¥à¤ò¼¨¤·¤Þ¤¹¡£ (¥×¥í¥¸¥§¥¯¥È°ì¼°¤Ï¤³¤Á¤é: http://www.piece-me.org/archive/forbug-20020815-src.zip) --------------------------------------------------------------------------------------------------- C01| /* C02| * forbug.c C03| * C04| * for()ʸ¤ÎºÇŬ²½¥Ð¥°ºÆ¸½¥×¥í¥°¥é¥à C05| * Copyright (C) 2002 Naoyuki Sawa C06| * C07| * * Thu Aug 15 04:30:00 JST 2002 Naoyuki Sawa C08| * - ºîÀ®³«»Ï¡£ C09| */ C10| #include C11| C12| /* ºÇŬ²½¥³¥ó¥Ñ¥¤¥ë¡ÊÌäÂêȯÀ¸¤¹¤ë¡Ë¡§ C13| * pcc33 -b -gp=0x0 -near -O2 -Wall forbug.c pat.c C14| * ºÇŬ²½¤·¤Ê¤¤¥³¥ó¥Ñ¥¤¥ë¡ÊÌäÂêȯÀ¸¤·¤Ê¤¤¡Ë¡§ C15| * pcc33 -b -gp=0x0 -near -Wall forbug.c pat.c C16| */ C17| C18| /* 16x16¥Þ¥¹¤ÎÈ×ÌÌÄêµÁ C19| * ³Æ°ÌÃÖ¤ÎÍ×ÁǤ¬¡¢0¤Ê¤é¥³¥Þ¤¬ÃÖ¤«¤ì¤Æ¤¤¤Þ¤»¤ó¡£ C20| * 1¤Ê¤é¥³¥Þ¤¬ÃÖ¤«¤ì¤Æ¤¤¤Þ¤¹¡£ C21| */ C22| #define COLS 16 C23| #define ROWS 16 C24| unsigned char field[COLS][ROWS]; C25| C26| /* (x,y)¡Á(x+3,y+3)¤Î4x4¥Þ¥¹¤ÎÈϰϤˡ¢´û¤Ë¥³¥Þ¤¬ÃÖ¤«¤ì¤Æ¤¤¤ë¤«¤òÄ´¤Ù¤Þ¤¹¡£ C27| * * (x,y)¡Á(x+3,y+3)¤Î°ìÉô¤Ç¤âÈ×Ì̤ò¤Ï¤ß½Ð¤·¤Æ¤¤¤¿¤é¡¢1¤òÊÖ¤·¤Þ¤¹¡£ C28| * (x,y)¡Á(x+3,y+3)¤ÎÈϰϤˤҤȤĤǤ⥳¥Þ¤¬ÃÖ¤«¤ì¤Æ¤¤¤¿¤é¡¢1¤òÊÖ¤·¤Þ¤¹¡£ C29| * * (x,y)¡Á(x+3,y+3)¤¬È×ÌÌÆâ¤Ç¡¢¤½¤ÎÈϰϤˤҤȤĤ⥳¥Þ¤¬¤Ê¤¤¾ì¹ç¤Î¤ß¡¢0¤òÊÖ¤·¤Þ¤¹¡£ C30| */ C31| int C32| hit_test(int x, int y) C33| { C34| int x0, y0; /* ½Ä²£¤Î¥ë¡¼¥×¥«¥¦¥ó¥¿ */ C35| int x1, y1; /* È×Ì̤òÁöºº¤¹¤ëºÂɸÊÑ¿ô */ C36| C37| for(y0 = 0, y1 = y; y0 < 4; y0++, y1++) { C38| if(y1 < 0 || ROWS - 1 < y1) { /* ½Ä¤Ï¤ß½Ð¤·¥Á¥§¥Ã¥¯ */ C39| return 1; /* ¤Ï¤ß½Ð¤·¤Æ¤¿¤é1¤òÊÖ¤¹ */ C40| } C41| for(x0 = 0, x1 = x; x0 < 4; x0++, x1++) { C42| if(x1 < 0 || COLS - 1 < x1) { /* ²£¤Ï¤ß½Ð¤·¥Á¥§¥Ã¥¯ */ C43| return 1; /* ¤Ï¤ß½Ð¤·¤Æ¤¿¤é1¤òÊÖ¤¹ */ C44| } C45| if(field[y1][x1]) { /* ´û¤Ë¥³¥Þ¤¬ÃÖ¤«¤ì¤Æ¤ë¤«¥Á¥§¥Ã¥¯ */ C46| return 1; /* ÃÖ¤«¤ì¤Æ¤¿¤é1¤òÊÖ¤¹ */ C47| } C48| } C49| } C50| C51| return 0; C52| } C53| C54| void C55| smain() C56| { C57| int retval; C58| C59| /* (-1,8)¡Á(2,11)¤Î4x4¤ÎÈϰϤ¬È×ÌÌÆâ¤Ç¡¢¤Ò¤È¤Ä¤â¥³¥Þ¤¬ÃÖ¤«¤ì¤Æ¤¤¤Ê¤¤¤«¡© C60| * ÌÀ¤é¤«¤ËÈ×Ì̳°¡Êº¸¤Ë¤Ï¤ß½Ð¤·¤Æ¤¤¤ë¡Ë¤Ê¤Î¤Ç¡¢1¤¬µ¢¤ë¤Ï¤º¤Ê¤Î¤Ç¤¹¤¬¡¢ C61| * ºÇŬ²½¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤È0¤¬µ¢¤Ã¤Æ¤­¤Þ¤¹! C62| */ C63| retval = hit_test(-1, 8); C64| cls(); C65| printnum(retval); C66| while(!pad()) { } C67| } --------------------------------------------------------------------------------------------------- hit_test()´Ø¿ô¤Ï¡¢ÆäËÊ£»¨¤Ê½èÍý¤ò¹Ô¤Ã¤Æ¤¤¤ë¤ï¤±¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£ ¥²¡¼¥à¤Ë¸Â¤é¤Ê¤¤¡¢¤´¤¯°ìÈÌŪ¤Ê½Å¤Ê¤êȽÄê¤Î¥í¥¸¥Ã¥¯¤À¤È»×¤¤¤Þ¤¹¡£ ¤È¤³¤í¤¬¡¢¤³¤Î¥½¡¼¥¹¤ò¡Ö-O2¡×¥ª¥×¥·¥ç¥óÉÕ¤­¤ÇºÇŬ²½¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤È¡¢Àµ¤·¤¤·ë²Ì¤¬µ¢¤Ã¤Æ¤­¤Þ¤»¤ó¡£ ¥µ¥ó¥×¥ë¥×¥í¥°¥é¥à¤Ç¤Ï¡¢(-1,8)¤ò´ð½à¤È¤¹¤ë4¡ß4¤ÎÈϰϤ˥֥í¥Ã¥¯¤¬ÃÖ¤±¤ë¤«¤É¤¦¤«¤òȽÄꤷ¤Æ¤¤¤Þ¤¹¡£ ÌÀ¤é¤«¤Ëº¸Â¦¤Ë¤Ï¤ß½Ð¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢C42¹ÔÌܤÎȽÄê¤Ë°ú¤Ã¤«¤«¤ê¡¢¡Ö¥³¥Þ¤¬ÃÖ¤±¤Ê¤¤¡á1¡×¤¬µ¢¤Ã¤Æ¤¯¤ë¤Ï¤º¤Ç¤¹¡£ ¤·¤«¤·¼ÂºÝ¤Ë»î¤·¤Æ¤ß¤ë¤È¡¢¡Ö¥³¥Þ¤¬ÃÖ¤±¤ë¡á0¡×¤¬µ¢¤Ã¤Æ¤¯¤ë¤Î¤Ç¤¹¡£ »î¤·¤Ë¡Ö-O2¡×¥ª¥×¥·¥ç¥ó̵¤·¤ÇºÇŬ²½¤·¤Ê¤¤¥³¥ó¥Ñ¥¤¥ë¤ò¹Ô¤Ã¤Æ¤ß¤ë¤È¡¢Àµ¤·¤¯1¤¬µ¢¤Ã¤Æ¤­¤Þ¤¹¡£ ¤È¤¤¤¦¤³¤È¤Ï¡¢¤É¤¦¤ä¤éC¥³¥ó¥Ñ¥¤¥é¤ÎºÇŬ²½¥ß¥¹¤Î¤è¤¦¤Ç¤¹¡£ ¤½¤³¤Ç¡¢¾åµ­hit_test()´Ø¿ô¤òºÇŬ²½¥³¥ó¥Ñ¥¤¥ë¤·¤¿¾ì¹ç¤Î¡¢¥¢¥»¥ó¥Ö¥é¥½¡¼¥¹¤òÄ´¤Ù¤Æ¤ß¤Þ¤·¤¿¡£ --------------------------------------------------------------------------------------------------- A01| /* int hit_test(int x, int y) A02| * [in] A03| * r12 x A04| * r13 y A05| * [out] A06| * r10 result A07| */ A08| .align 1 A09| .global hit_test A10| hit_test: A11| ; .frame %sp,4,$31 # vars= 0, regs= 1/0, args= 0, extra= 0 A12| ; .mask 0x80000000,-4 A13| ; .fmask 0x00000000,0 A14| ld.w %r5,0x0 /* r5 <- 0 (r5¤¬ÊÑ¿ôy0¤ËÂбþ) */ A15| xld.w %r11,field /* r11 <- &field[0][0] */ A16| ld.w %r10,%r13 /* r10 <- y */ A17| xsll %r10,4 /* r10 <- y * 16 */ A18| add %r10,%r11 /* r10 <- &field[y][0] */ A19| __L5: A20| xcmp %r13,15 /* IF y > 15 THEN L16 */ A21| xjrugt __L16 /* (Éä¹æ̵¤·Èæ³Ó¤Ê¤Î¤Ç¡¢y<0¤Î¾ì¹ç¤â¤³¤ì¤ÇȽÄê¤Ç¤­¤Þ¤¹) */ A22| ld.w %r14,0x0 /* r14 <- 0 (r14¤¬ÊÑ¿ôx0¤ËÂбþ) */ A23| ld.w %r11,%r12 /* r11 <- x */ A24| add %r11,%r10 /* r11 <- &field[y][ x] */ A25| xadd %r4,%r10,15 /* r4 <- &field[y][15] */ A26| __L10: A27| cmp %r11,%r4 /* IF &field[y][x] > &field[y][15] THEN L16 */ A28| xjrugt __L16 /* (¢¨¤³¤³¤¬ÌäÂꡪ¤³¤ì¤Ç¤Ïx<0¤Î¾ì¹ç¤òȽÄê¤Ç¤­¤Þ¤»¤ó) */ A29| xld.ub %r15,[%r11] /* r15 <- field[y][x] */ A30| cmp %r15,0x0 /* IF field[y][x] = 0 THEN L9 */ A31| xjreq __L9 A32| __L16: A33| xld.w %r10,0x00000001 /* return 1 */ A34| xjp __L15 A35| __L9: A36| xadd %r14,%r14,1 /* r14 <- r14 + 1 (r14¤¬ÊÑ¿ôx0¤ËÂбþ) */ A37| xadd %r11,%r11,1 /* r11 <- &field[y][x+1,2,3] (¥Ý¥¤¥ó¥¿¤ò±¦ÎÙ¤Ø) */ A38| xcmp %r14,3 /* IF x0 <= 3 THEN L10 */ A39| xjrle __L10 A40| xadd %r5,%r5,1 /* r5 <- r5 + 1 (r5¤¬ÊÑ¿ôy0¤ËÂбþ) */ A41| xadd %r10,%r10,16 /* r10 <- &field[y+1,2,3][0] (¥Ý¥¤¥ó¥¿¤ò²¼ÎÙ¤Ø) */ A42| xadd %r13,%r13,1 /* y <- y + 1 */ A43| xcmp %r5,3 /* IF y0 <= 3 THEN L5 */ A44| xjrle __L5 A45| ld.w %r10,%r15 /* return 0 (r15¤Ïɬ¤º0¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£A30¡ÁA31¹Ô»²¾È) */ A46| __L15: A47| ret --------------------------------------------------------------------------------------------------- ¤Þ¤ºÃíÌܤ·¤Æ¤¤¤¿¤À¤­¤¿¤¤ÅÀ¤Ï¡¢¸µ¤ÎC¥½¡¼¥¹¤Î½ÄÊý¸þ¤Ï¤ß½Ð¤·È½Äê¥í¥¸¥Ã¥¯¡§ C38| if(y1 < 0 || ROWS - 1 < y1) { /* ½Ä¤Ï¤ß½Ð¤·¥Á¥§¥Ã¥¯ */ ¤¬¡¢¼¡¤Î¤è¤¦¤ËºÇŬ²½¤µ¤ì¤Æ¤¤¤ëÅÀ¤Ç¤¹¡£ A20| xcmp %r13,15 /* IF y > 15 THEN L16 */ A21| xjrugt __L16 /* (Éä¹æ̵¤·Èæ³Ó¤Ê¤Î¤Ç¡¢y<0¤Î¾ì¹ç¤â¤³¤ì¤ÇȽÄê¤Ç¤­¤Þ¤¹) */ ¤³¤ì¤ÏÌäÂꤢ¤ê¤Þ¤»¤ó¡£ if((int)y1 < 0 || 15 < (int)y1) { ... } /* ¸µ¤ÎC¥½¡¼¥¹¤Î¥í¥¸¥Ã¥¯ */ ¤È¡¢ if(15 < (unsigned)y1) { ... } /* ºÇŬ²½¤µ¤ì¤¿¥¢¥»¥ó¥Ö¥é¥½¡¼¥¹¤Î¥í¥¸¥Ã¥¯ */ ¤Ï¡¢Åù²Á¤À¤«¤é¤Ç¤¹¡£ Î㤨¤Ð¡¢¡Öy1 = -1¡×¤Î¾ì¹ç¡¢¸µ¤ÎC¥½¡¼¥¹¤Î¥í¥¸¥Ã¥¯¤Ç¤Ï¡Ö-1 < 0¡×¤Ç¾ò·ï¤¬À®Î©¤·¤Þ¤¹¡£ -1¤ÏÉä¹æ̵¤·À°¿ô¤È¸«¤Ê¤»¤Ð0xffffffff¤Ê¤Î¤Ç¡¢¥¢¥»¥ó¥Ö¥é¤Î¥í¥¸¥Ã¥¯¤Ç¤â¡Ö15 < 0xffffffff¡×¤ÇÀ®Î©¤·¤Þ¤¹¡£ ¤È¤¤¤¦¤ï¤±¤Ç¡¢½ÄÊý¸þ¤Î¤Ï¤ß½Ð¤·È½Äê¤Ë¤ÏÌäÂꤢ¤ê¤Þ¤»¤ó¡£ ÌäÂê¤Ï¡¢²£Êý¸þ¤Î¤Ï¤ß½Ð¤·È½Äê¤Ç¤¹¡£ ¸µ¤ÎC¥½¡¼¥¹¤Î²£Êý¸þ¤Ï¤ß½Ð¤·È½Äê¥í¥¸¥Ã¥¯¡§ C42| if(x1 < 0 || COLS - 1 < x1) { /* ²£¤Ï¤ß½Ð¤·¥Á¥§¥Ã¥¯ */ ¤¬¡¢¼¡¤Î¤è¤¦¤ËºÇŬ²½¤µ¤ì¤Æ¤¤¤ëÅÀ¤ËÃíÌܤ·¤Æ¤¯¤À¤µ¤¤¡£ A27| cmp %r11,%r4 /* IF &field[y][x] > &field[y][15] THEN L16 */ A28| xjrugt __L16 /* (¢¨¤³¤³¤¬ÌäÂꡪ¤³¤ì¤Ç¤Ïx<0¤Î¾ì¹ç¤òȽÄê¤Ç¤­¤Þ¤»¤ó) */ ¤³¤ì¤Ï¥À¥á¤Ç¤¹¡ª XºÂɸ¤½¤Î¤Þ¤Þ¤Ç¤ÎÈæ³Ó¤Ç¤Ï¤Ê¤¯¡¢È×Ì̾å¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ë¤·¤¿¸å¤Ç¡¢¥¢¥É¥ì¥¹ÃͤòÈæ³Ó¤¹¤ë¤è¤¦¤ËºÇŬ²½¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ ¥¢¥É¥ì¥¹ÃͤÇÈæ³Ó¤¹¤ë¤Î¤Ï¹½¤ï¤Ê¤¤¤Î¤Ç¤¹¤¬¡¢¥¢¥É¥ì¥¹Èæ³Ó¤ÈÀè¤Û¤É¤ÎÉä¹æ̵¤·Èæ³Ó¤Ë¤è¤ëºÇŬ²½¤ÎÊýË¡¤ÏÊ»ÍѤǤ­¤Þ¤»¤ó¡£ Î㤨¤Ð¡Ö&field[0][0] = 0x110000, x = -1, y = 8¡×¤Î¾ì¹ç¡¢ºÇŬ²½¸å¤Î¥í¥¸¥Ã¥¯¤Ç¤Ï¼¡¤Î¤è¤¦¤ÊȽÄê¤ò¹Ô¤Ã¤Æ¤·¤Þ¤¤¤Þ¤¹¡£ IF &field[8][-1] > &field[8][15] THEN L16 ¥¢¥É¥ì¥¹ÃͤòŸ³«¤¹¤ë¤È¡¢ IF 0x11007f > 0x11008f THEN L16 ËÜÅö¤ÏL16¤Øʬ´ô¤·¤Ê¤±¤ì¤Ð¤¤¤±¤Ê¤¤¤Î¤Ç¤¹¤¬¡¢¤³¤Î¥í¥¸¥Ã¥¯¤Ç¤Ïº¸Â¦¤Ø¤Î¤Ï¤ß½Ð¤·¤¬È½Äê¤Ç¤­¤Þ¤»¤ó¡£ ¤À¤«¤é¥µ¥ó¥×¥ë¥×¥í¥°¥é¥à¤Î·ë²Ì¤¬¡¢¡Ö¥³¥Þ¤¬ÃÖ¤±¤Ê¤¤¡á1¡×¤Ç¤Ï¤Ê¤¯¡¢¡Ö¥³¥Þ¤¬ÃÖ¤±¤ë¡á0¡×¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¦¤Î¤Ç¤¹¡£ ¥³¥ó¥Ñ¥¤¥é¤ÎºÇŬ²½¥ß¥¹¤È¤¤¤¦¤Î¤Ï¡¢P/ECE¤ÎC¥³¥ó¥Ñ¥¤¥é¤Ë¸Â¤é¤º¡¢¤è¤¯¤¢¤ë¤³¤È¤Ç¤¹¡£ ºÇŬ²½¥ß¥¹¤¬È¯À¸¤¹¤ë¾õ¶·¤È¡¢²óÈòÊýË¡¤¬¤­¤Á¤ó¤È¤ï¤«¤Ã¤Æ¤¤¤ì¤Ð¡¢½ÅÂç¤ÊÌäÂê¤Ë¤Ï¤Ê¤ê¤Þ¤»¤ó¡£ ¤¬¡¢º£²ó¤Î¥±¡¼¥¹¤Ç¤Á¤ç¤Ã¤È¥­¥Ó¥·¥¤¤Ê¤¢...¤È´¶¤¸¤ë¤Î¤Ï¡¢ ¤¢¤Þ¤ê¤Ë¤âÉáÄ̤Υ±¡¼¥¹¤ÇÌäÂ꤬À¸¤¸¤Æ¤¤¤ë¤¿¤á¡¢¤É¤¦¤¤¤¦¾õ¶·¤ÇºÇŬ²½¥ß¥¹¤¬È¯À¸¤¹¤ë¤Î¤«¿ä¬¤Ç¤­¤Ê¤¤ÅÀ¡£ ¤Þ¤¿¡¢ÌäÂê¤òȯÀ¸¤¹¤ë¥³¡¼¥É¤¬¤½¤â¤½¤âñ½ã¤Ç¤¹¤Î¤Ç¡¢Ê̤ÎÊýË¡¤ËÃÖ¤­´¹¤¨¤Æ¤â³Î¼Â¤Ë²óÈò¤Ç¤­¤½¤¦¤Ë¤Ê¤¤ÅÀ¤Ç¤¹¡£ for()¤Î¤«¤Ã¤³¤ÎÃæ¤Ë¡Ö,¡×¤ò»È¤Ã¤Æ¥Þ¥ë¥Á¥¹¥Æ¡¼¥È¥á¥ó¥È¤ò½ñ¤¯¤Î¤¬¥Þ¥º¥¤¤Î¤«¤È¹Í¤¨¤Æ¡¢¼¡¤Î¤è¤¦¤Ë½ñ¤­´¹¤¨¤Æ¤ß¤Þ¤·¤¿¡£ --------------------------------------------------------------------------------------------------- /* ¤³¤¦½ñ¤­´¹¤¨¤Æ¤â¥À¥á¤ÊÎ㡪 */ int hit_test(int x, int y) { int x0, y0; /* ½Ä²£¤Î¥ë¡¼¥×¥«¥¦¥ó¥¿ */ int x1, y1; /* È×Ì̤òÁöºº¤¹¤ëºÂɸÊÑ¿ô */ y1 = y; for(y0 = 0; y0 < 4; y0++) { if(y1 < 0 || ROWS - 1 < y1) { /* ½Ä¤Ï¤ß½Ð¤·¥Á¥§¥Ã¥¯ */ return 1; /* ¤Ï¤ß½Ð¤·¤Æ¤¿¤é1¤òÊÖ¤¹ */ } x1 = x; for(x0 = 0; x0 < 4; x0++) { if(x1 < 0 || COLS - 1 < x1) { /* ²£¤Ï¤ß½Ð¤·¥Á¥§¥Ã¥¯ */ return 1; /* ¤Ï¤ß½Ð¤·¤Æ¤¿¤é1¤òÊÖ¤¹ */ } if(field[y1][x1]) { /* ´û¤Ë¥³¥Þ¤¬ÃÖ¤«¤ì¤Æ¤ë¤«¥Á¥§¥Ã¥¯ */ return 1; /* ÃÖ¤«¤ì¤Æ¤¿¤é1¤òÊÖ¤¹ */ } x1++; } y1++; } return 0; } --------------------------------------------------------------------------------------------------- ¤¬¡¢·ë²Ì¤ÏƱ¤¸¡£ ¤ä¤Ã¤Ñ¤êº¸Êý¸þ¤Î¤Ï¤ß½Ð¤·È½Äê¤Ë¼ºÇÔ¤·¡¢¡Ö¥³¥Þ¤¬ÃÖ¤±¤ë¡á0¡×¤¬µ¢¤Ã¤Æ¤­¤Þ¤¹¡£ ¤¤¤í¤¤¤í»î¤·¤¿·ë²Ì¡¢ºÇŬ²½¥ß¥¹¤Ë¼ºÇÔ¤·¤Ê¤¤½ñ¤­Êý¤Î°ìÎã¤È¤·¤Æ¡¢¼¡¤Î¤è¤¦¤ÊC¥½¡¼¥¹¤Ê¤éOK¤ß¤¿¤¤¤Ç¤¹¡§ --------------------------------------------------------------------------------------------------- /* °ì±þ¡¢¤³¤¦½ñ¤­´¹¤¨¤ì¤ÐOK¤ß¤¿¤¤... */ int hit_test(int x, int y) { #define x1 (x + x0) #define y1 (y + y0) int x0, y0; /* ½Ä²£¤Î¥ë¡¼¥×¥«¥¦¥ó¥¿ */ for(y0 = 0; y0 < 4; y0++) { if(y1 < 0 || ROWS - 1 < y1) { /* ½Ä¤Ï¤ß½Ð¤·¥Á¥§¥Ã¥¯ */ return 1; /* ¤Ï¤ß½Ð¤·¤Æ¤¿¤é1¤òÊÖ¤¹ */ } for(x0 = 0; x0 < 4; x0++) { if(x1 < 0 || COLS - 1 < x1) { /* ²£¤Ï¤ß½Ð¤·¥Á¥§¥Ã¥¯ */ return 1; /* ¤Ï¤ß½Ð¤·¤Æ¤¿¤é1¤òÊÖ¤¹ */ } if(field[y1][x1]) { /* ´û¤Ë¥³¥Þ¤¬ÃÖ¤«¤ì¤Æ¤ë¤«¥Á¥§¥Ã¥¯ */ return 1; /* ÃÖ¤«¤ì¤Æ¤¿¤é1¤òÊÖ¤¹ */ } } } return 0; #undef x1 #undef y1 } --------------------------------------------------------------------------------------------------- °ì±þ¡¢Àµ¤·¤¤·ë²Ì¡Ö¥³¥Þ¤¬ÃÖ¤±¤Ê¤¤¡á1¡×¤¬µ¢¤Ã¤Æ¤­¤Þ¤¹¡£ ¤·¤«¤·¤³¤ì¤Ï¡¢hit_test()´Ø¿ô¤Î¾ì¹ç¤Ï¤¿¤Þ¤¿¤ÞºÇŬ²½¥ß¥¹¤Ë°ú¤Ã¤«¤«¤é¤Ê¤¯¤Ê¤Ã¤¿¤È¤¤¤¦¤À¤±¤Ç¡¢ º¬ËÜŪ¤Ê²ò·è¤Ë¤Ï¤Ê¤Ã¤Æ¤¤¤Þ¤»¤ó¡£ ¤³¤ÎÉÔ¶ñ¹ç¤Î³Î¼Â¤Ê²óÈòÊýË¡¤ò¤´Â¸ÃΤΤ«¤¿¤¬¤ª¤é¤ì¤Þ¤·¤¿¤é¡¢¤¼¤Ò¶µ¤¨¤Æ¤¯¤À¤µ¤¤¡£ ¤è¤í¤·¤¯¤ª´ê¤¤¤¤¤¿¤·¤Þ¤¹¡£ ¤µ¤Æ¡¢º£²ó¤Î¥ì¥Ý¡¼¥È¤Ç¸À¤¤¤¿¤¤¤Î¤Ï¡¢¡ÖP/ECE¤ÎC¥³¥ó¥Ñ¥¤¥é¤Ï¥À¥á¡×¤È¤¤¤¦¤³¤È¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£ Á°½Ò¤ÎÄ̤ꡢ¤É¤ó¤Ê¥³¥ó¥Ñ¥¤¥é¤Ë¤â¿¤«¤ì¾¯¤Ê¤«¤ìºÇŬ²½¥ß¥¹¤Ï¤¢¤ë¤È»×¤¤¤Þ¤¹¡£ P/ECE¤Î¾ì¹ç¤ËÌäÂê¤Ê¤Î¤Ï¡¢¸½»þÅÀ¤Ç¤ÏC¥³¥ó¥Ñ¥¤¥é¤ÎÁªÂò»è¤¬¤Ê¤¯¡¢ÉÕ°¤ÎC¥³¥ó¥Ñ¥¤¥é¤ò»È¤¦¤·¤«¤Ê¤¤¤³¤È¤Ç¤¹¡£ ¤Þ¤¿¡¢C¥³¥ó¥Ñ¥¤¥é¤ËÉÔ¶ñ¹ç¤¬¤¢¤Ã¤Æ¤â¡¢¥Ð¡¼¥¸¥ç¥ó¥¢¥Ã¥×¤Ç½¤Àµ¤µ¤ì¤ë¸«¹þ¤ß¤¬¤Û¤È¤ó¤É¤Ê¤¤¤³¤È¤Ç¤¹¡£ ¤â¤·¤«¤·¤¿¤éEPSON¤µ¤ó¤Ï¿·¤·¤¤¥Ð¡¼¥¸¥ç¥ó¤ÎC¥³¥ó¥Ñ¥¤¥é¤òÇÛÉÛ¤·¤Æ¤¤¤ë¤Î¤«¤âÃΤì¤Þ¤»¤ó¤¬¡¢ ¥¨¥ó¥É¥æ¡¼¥¶¡¼¤¬C¥³¥ó¥Ñ¥¤¥é¤À¤±¤òÆþ¼ê¤¹¤ë¤Î¤Ï¤«¤Ê¤êº¤Æñ¤À¤È»×¤ï¤ì¤Þ¤¹¡£ ¤Ê¤±¤ì¤Ðºî¤ë¤·¤«¤¢¤ê¤Þ¤»¤ó¡£ ¿·¤·¤¤gcc¤òS1C33 CPUÍѤ˰ܿ¢¡Äµ¤¤¬±ó¤¯¤Ê¤ê¤½¤¦¤Ç¤¹¤¬¡¢¼ÂºÝ¤Ë¾¤ÎCPUÍѤ˰ܿ¢¤Ê¤µ¤Ã¤Æ¤¤¤ë¥æ¡¼¥¶¡¼¤µ¤ó¤â ÂçÀª¤¤¤é¤Ã¤·¤ã¤¤¤Þ¤¹¤Î¤Ç¡¢ÉÔ²Äǽ¤Ç¤Ï¤Ê¤¤¤Ï¤º¡£ ¤Þ¤¿ÁÔÂç¤ÊÌÜɸ¤¬¤Ç¤­¤Æ¤·¤Þ¤¤¤Þ¤·¤¿¡£ ÁȤ߹þ¤ßCPU¤ÎÊÙ¶¯¡¦USB¤ÎÊÙ¶¯¡¦ÅŻҲóÏ©¤ÎÊÙ¶¯¤Î¸å¤Ï¥³¥ó¥Ñ¥¤¥é¤Î°Ü¿¢¡Ä¤ä¤ë¤³¤ÈÌÜÇò²¡¤·¤Ç¤¹(^^; * Fri Jul 19 05:00:00 JST 2002 Naoyuki Sawa - ¥³¥Ô¡¼¤¹¤ë¤Î¤Ï instdef.c ¤À¤± ¼«ºî¥×¥í¥°¥é¥à¤Ë²»³Ú¥é¥¤¥Ö¥é¥ê¤òÁȤ߹þ¤à¾ì¹ç¡¢P/ECE³«È¯´Ä¶­¤Î¥Õ¥©¥ë¥À¤«¤é¥×¥í¥°¥é¥àºîÀ®ÍѤΥե©¥ë¥À¤Ø¡¢ ¤¤¤¯¤Ä¤«¤Î¥Õ¥¡¥¤¥ë¤ò¥³¥Ô¡¼¤·¤Ê¤±¤ì¤Ð¤¤¤±¤Þ¤»¤ó¡£ ¤ª¤µ¤ó¤Ý°½¹á¤Î¥Á¥å¡¼¥È¥ê¥¢¥ë¤Ç¤Ï¡¢¼¡¤Î¤è¤¦¤Ë»Ø¼¨¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ °½¹á¤Î²èÁü¥Õ¥¡¥¤¥ë¤¬¤¢¤ë¥Õ¥©¥ë¥À¡Êɸ½à¤Ç¤Ïc:\usr\piece\docs\tutorial\ayaka¡Ë¤Ë¡Öwavetbl¡×¤È¤¤¤¦ ¥Õ¥©¥ë¥À¤¬¤¢¤ê¤Þ¤¹¤Î¤Ç¡¢¤½¤ÎÃæ¿È¤Î¡Öwavetbl.c¡×¤È¡Ösnd¥Õ¥©¥ë¥À¡×¤òµ®Êý¤Îºî¶È¥Õ¥©¥ë¥À¡Êayaka¡Ë¤Ë ¥³¥Ô¡¼¤·¤Æ¤¯¤À¤µ¤¤¡£ ¡ÊC:\usr\PIECE\HTML\tutorial_f.htm ¡Ú°½¹á¤¬Ê⤯¥×¥í¥°¥é¥à¤Ë²»³Ú¤òÄɲ乤ë¡Û ¤è¤ê¡Ë ¤Þ¤¿¡¢P/ECE Hand Book¤Ç¤Ï¡¢¼¡¤Î¤è¤¦¤Ë»Ø¼¨¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ sysdev\music\makefile sysdev\music\wavetable.c sysdev\music\instdef.c sysdev\music\musdef.h sysdev\music\wave\*.* ¡ÊP/ECE Hand Book ¡Ø³«È¯Tips¡Ù ²»³Ú¤ò±éÁÕ¤·¤¿¤¤ (p.098) ¤è¤ê¡Ë Ëͤϵ­²±ÎϤ¬¤è¤¯¤Ê¤¤¤Î¤Ç¡¢Æó¤Ä°Ê¾å¤Î¥Õ¥¡¥¤¥ë̾¤Ï³Ð¤¨¤Æ¤é¤ì¤Þ¤»¤ó(^^; ²»³Ú¥é¥¤¥Ö¥é¥ê¤ò»È¤Ã¤¿Îý½¬¥×¥í¥°¥é¥à¤òºî¤ë¤¿¤Ó¤Ë¡¢¤³¤ì¤é¤Î»ñÎÁ¤òÆɤßÊÖ¤·¤Æ¥³¥Ô¡¼¤¹¤ë¥Õ¥¡¥¤¥ë¤òÄ´¤Ù¤Æ¤¤¤Þ¤·¤¿¡£ Ëè²óƱ¤¸¥Õ¥¡¥¤¥ë¤ò¥³¥Ô¡¼¤·¤Ê¤±¤ì¤Ð¤¤¤±¤Ê¤¤¤Î¤Ê¤é¡¢¤Ê¤¼¥é¥¤¥Ö¥é¥ê¤ËÆþ¤ì¤Æ¤ª¤¤¤Æ¤¯¤ì¤Ê¤«¤Ã¤¿¤Î¤Ç¤·¤ç¤¦¤«¡© ¡¦¡¦¡¦¼Â¤ÏÆþ¤Ã¤Æ¤¤¤Þ¤·¤¿¡£ ¼«ºî¥×¥í¥°¥é¥à¤Ë²»³Ú¥é¥¤¥Ö¥é¥ê¤òÁȤ߹þ¤¿¤á¤Ë¡¢P/ECE³«È¯´Ä¶­¤«¤é¥³¥Ô¡¼¤¹¤ëɬÍפ¬¤¢¤ë¥Õ¥¡¥¤¥ë¤Ï¡¢ sysdev\music\instdef.c ¤³¤ì¤Ò¤È¤Ä¤À¤±¤Ç¤¹¡£ instdef.c¤À¤±¤ò¥³¥Ô¡¼¤·¤¿¥µ¥ó¥×¥ë¥×¥í¥°¥é¥à¡¢¥½¡¼¥¹¤Ï¤³¤Á¤é¡§ http://www.piece-me.org/archive/musprg1-20020719-src.zip instdef.c¤ÎÃæ¤Ë¤Ï¡¢²»¿§¥Æ¡¼¥Ö¥ë¤À¤±¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ INST *inst[] = { ... }; ²»¿§¥Æ¡¼¥Ö¥ë¤Ï¾®¤µ¤¤¤Î¤Ç¡¢instdef.c¥Õ¥¡¥¤¥ë¼«ÂΤò¥³¥Ô¡¼¤·¤Ê¤¯¤Æ¤â¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥×¥í¥°¥é¥à¤Î¥½¡¼¥¹¤ÎÃæ¤Ë instdef.c¤ÎÆâÍƤÀ¤±¤ò¥«¥Ã¥È¡õ¥Ú¡¼¥¹¥È¤·¤Æ¤·¤Þ¤Ã¤Æ¤âÎɤ¤¤È»×¤¤¤Þ¤¹¡£ ²»¿§¥Ç¡¼¥¿ËÜÂΤÏmuslib.lib¤ÎÃæ¤Ë¤¢¤ê¡¢²»¿§¥Æ¡¼¥Ö¥ë¤«¤é»²¾È¤µ¤ì¤Æ¤¤¤ë²»¿§¥Ç¡¼¥¿¤À¤±¤¬¡¢¼ÂºÝ¤Ë¥ê¥ó¥¯¤µ¤ì¤Þ¤¹¡£ ¤µ¤Æ¡¢instdef.c¤Î²»¿§¥Æ¡¼¥Ö¥ë¤ÏÁ´¤Æ¤Î²»¿§¤Ø¤Î»²¾È¤ò´Þ¤ó¤Ç¤¤¤Þ¤¹¤Î¤Ç¡¢instdef.c¤ÎÆâÍƤò¤½¤Î¤Þ¤Þ»È¤¦¤È¡¢ muslib.lib¤ÎÃæ¤Ë¤¢¤ëÁ´¤Æ¤Î²»¿§¥Ç¡¼¥¿¤¬¥ê¥ó¥¯¤µ¤ì¤Æ¤·¤Þ¤¤¤Þ¤¹¡£ ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Î¶Ê¥Ç¡¼¥¿¤¬»È¤Ã¤Æ¤¤¤Ê¤¤²»¿§¥Ç¡¼¥¿¤ò¥ê¥ó¥¯¤¹¤ë¤È¡¢¥×¥í¥°¥é¥à¤¬ÌµÂ̤ËÂ礭¤¯¤Ê¤Ã¤Æ¤·¤Þ¤¤¤Þ¤¹¡£ ÉÔÍפʲ»¿§¤òºï½ü¤·¤Æ¥×¥í¥°¥é¥à¤ò¾®¤µ¤¯¤¹¤ëÊýË¡¤¬¡¢"P/ECE" Official WebPage ³«È¯¼Ô·Ç¼¨ÈÄ ¤ËºÜ¤Ã¤Æ¤¤¤Þ¤¹¡£ »²¾Èµ­»ö¤Ï¤³¤Á¤é¡§ http://www.piece-me.com/kyview/article/d/devpiece/8/opcilm/index.html ²»¿§¥Æ¡¼¥Ö¥ë¤òÊÔ½¸¤·¤Æ¡¢ÉÔÍפʲ»¿§¤Ø¤Î»²¾È¤òºï½ü¤·¤Æ¤·¤Þ¤¤¤Þ¤·¤ç¤¦¡£ ÉÔÍפʲ»¿§¤ò¥ê¥ó¥¯¤·¤Ê¤¤¥µ¥ó¥×¥ë¥×¥í¥°¥é¥à¡¢¥½¡¼¥¹¤Ï¤³¤Á¤é¡§ http://www.piece-me.org/archive/musprg2-20020719-src.zip Àè¤Û¤É¤Î¥×¥í¥°¥é¥à¤ÏSRF¥Õ¥¡¥¤¥ë¥µ¥¤¥º¤¬48KB¤°¤é¤¤¤¢¤ê¤Þ¤·¤¿¤¬¡¢²»¿§¤ò¸º¤é¤¹¤È8KBÄøÅ٤˾®¤µ¤¯¤Ê¤ê¤Þ¤·¤¿¡£ * Mon Jul 15 21:23:00 JST 2002 Naoyuki Sawa - 1.25¤Î1¾è¤Ï¥¼¥í¡© "P/ECE" Official WebPage ³«È¯¼Ô·Ç¼¨ÈĤˤƼÁÌ䤵¤»¤Æ夤¤¿·ï¤ÎÈ÷˺Ͽ¤Ç¤¹¡£¸µµ­»ö¤Ï¤³¤Á¤é¡£ http://www.piece-me.com/kyview/article/d/devpiece/10/kaxilm/index.html ¤´²óÅú¤¯¤À¤µ¤Ã¤¿¡¢£±£¶¤Ó¤Ã¤È¤µ¤ó(http://www.interq.or.jp/www-user/wanderer/)¤Ë´¶¼Õ¤¤¤¿¤·¤Þ¤¹¡£ ¡ÖS1C33 Family C¥³¥ó¥Ñ¥¤¥é¥Ñ¥Ã¥±¡¼¥¸¡×¤Îpow()´Ø¿ô¤Ï¡¢¤Á¤ç¤Ã¤ÈÉÔ¶ñ¹ç¤¬¤¢¤ë¤è¤¦¤Ç¤¹¡£ ÆÃÄê¤Î¾õ¶·¤Ç¡¢¤¼¤ó¤¼¤ó´Ö°ã¤Ã¤¿ÃÍ(¥¼¥í)¤òÊÖ¤¹¤³¤È¤¬¤¢¤ê¤Þ¤¹¡£ Èù̯¤Ê¥³¡¼¥Ç¥£¥ó¥°¤Î°ã¤¤¤Ç¡¢¾É¾õ¤¬È¯À¸¤·¤¿¤ê¤·¤Ê¤«¤Ã¤¿¤ê¤¹¤ë¤è¤¦¤Ç¡¢¸¶°øÉÔÌÀ¤Ç¤¹¡£ ºÆ¸½¥×¥í¥°¥é¥à¤Ï¤³¤Á¤é¡§ http://www.piece-me.org/archive/powtest-src.zip "P/ECE" Official WebPage ³«È¯¼Ô·Ç¼¨ÈĤˤƥ¢¥É¥Ð¥¤¥¹Äº¤¤¤¿²óÈòÊýË¡¤Ï¼¡¤Î¤È¤ª¤ê¤Ç¤¹¡£ pow()¤òľÀܸƤ֤ΤǤϤʤ¯¡¢pow()¤ò¸Æ¤Ó½Ð¤¹¤À¤±¤Îñ½ã¤Ê´Ø¿ôpow_wrap()¤ò·Ðͳ¤µ¤»¤Þ¤¹¡£ ¤Ä¤Þ¤ê¡¢ fn() { ... c = pow(a, b); ... } ¤ÎÉôʬ¤ò¡¢ double pow_wrap(double x, double y) { return pow(x, y); } fn() { ... c = pow_wrap(a, b); ... } ¤ËÊѹ¹¤¹¤ë¤Î¤Ç¤¹¡£¤Ê¤¼¤³¤ì¤Ç¼£¤ë¤Î¤«¤µ¤Ã¤Ñ¤ê¤ï¤«¤ê¤Þ¤»¤ó¤¬¡Ä(^^; ²óÈòÊýË¡¥µ¥ó¥×¥ë¥×¥í¥°¥é¥à¤Ï¤³¤Á¤é¡§ http://www.piece-me.org/archive/powtest2-src.zip ¸½ºß¤Î¤È¤³¤í¤³¤ÎÊýË¡¤Ç²óÈò¤Ç¤­¤Æ¤¤¤Þ¤¹¤¬¡¢¸¶°øÉÔÌÀ¤Ê¤À¤±¤ËÉÔµ¤Ì£¤Ç¤¹¡£ pow()¤Ø¤Î¥Ñ¥é¥á¡¼¥¿¤Î¼è¤êÆÀ¤ëÈϰϤ¬Í½Â¬¤Ç¤­¤º¡¢¼è¤êÆÀ¤ë¥Ñ¥é¥á¡¼¥¿¤ÎÈϰϤËÂФ·¤Æ ½¼Ê¬¤Ê¥Æ¥¹¥È¤¬¤Ç¤­¤Ê¤¤¥±¡¼¥¹¤Ç¤Ï¡¢¤Ê¤ë¤Ù¤¯pow()¤Ï»È¤ï¤Ê¤¤Êý¤¬Îɤµ¤½¤¦¤Ç¤¹¡£ Äɵ­¡§¤â¤¦°ì¤Ä¤Î²óÈòÊýË¡ ¡Öpow(x, y)¡×¤Ï¡Öexp(log(x) * (y)¡×¤ËŸ³«¤Ç¤­¤ë¤½¤¦¤Ç¤¹¡£¡ÊWeb¤Ç¡È¤Ù¤­¾è¡É¤Ë¤Ä¤¤¤ÆÄ´¤Ù¤Þ¤·¤¿¡Ë ¤â¤·¤â¡¢pow()´Ø¿ôñÂΤËÌäÂ꤬¤¢¤ë¤Î¤Ê¤é¤Ð¡¢pow()´Ø¿ô¤ò»È¤ï¤Ê¤±¤ì¤ÐÌäÂê¤ò²óÈò¤Ç¤­¤ë¤Ï¤º¤Ç¤¹¡£ ¤½¤³¤Ç¡¢#include ¤Îľ¸å¤Ç¼¡¤Î¤è¤¦¤ËÄêµÁ¤·¤Æ¡¢pow()¤òÃÖ¤­´¹¤¨¤Æ¤·¤Þ¤¤¤Þ¤¹¡£ #include #define pow(x,y) (exp(log(x) * (y))) /* pow()¤ò»È¤ï¤Ê¤¤¤Ù¤­¾è¤Î·×»» */ ¥µ¥ó¥×¥ë¥×¥í¥°¥é¥à¤Ï¤³¤Á¤é¡§ http://www.piece-me.org/archive/powtest3-src.zip ¤³¤ÎÊýË¡¤Ç¤âÌäÂê²óÈò¤Ç¤­¤ë¤³¤È¤ò³Îǧ¤·¤Þ¤·¤¿¤¬¡¢´Ø¿ô¸Æ¤Ó½Ð¤·¤¬Áý¤¨¤ë¤¿¤á¡¢ Á°½Ò¤Î²óÈòÊýË¡¤è¤ê¤â¤«¤Ê¤ê¼Â¹Ô®ÅÙ¤¬ÃÙ¤¯¤Ê¤Ã¤Æ¤·¤Þ¤¤¤Þ¤¹¡£ ®ÅÙ¤¬Í׵ᤵ¤ì¤ë¾ìÌ̤Ǥϡ¢Á°½Ò¤Î²óÈòÊýË¡¤ò»È¤Ã¤¿Êý¤¬¤¤¤¤¤È»×¤¤¤Þ¤¹¡£ ¤È¤³¤í¤Ç¡¢¥ê¥ó¥«¤ÎÀ¸À®¤¹¤ë¥Þ¥Ã¥×¥Õ¥¡¥¤¥ë¤«¤é¡¢pow()´Ø¿ô¤Î¥µ¥¤¥º¤òÄ´¤Ù¤¿¤È¤³¤í¡¢¤«¤Ê¤êÂ礭¤¤¤Ç¤¹¡£ ¼¡¤Î¤è¤¦¤Ê¡¢Ã±½ã¤Ê¼ÂÁõ¤Ç¤Ï¤Ê¤¤¤è¤¦¤Ç¤¹¡£ double pow(double x, double y) { return exp(log(x) * y); } ¤¿¤Ö¤ó¹â®²½¤Î¤¿¤á¡¢Ê£»¨¤ËºÇŬ²½¤µ¤ì¤¿¼ÂÁõ¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤Î¤À¤È»×¤¤¤Þ¤¹¡£ ¤½¤³¤Ë¡¢ÌäÂêȯÀ¸¤Î¸¶°ø¤¬¤¢¤ë¤Î¤Ç¤Ï¤Ê¤¤¤Ç¤·¤ç¤¦¤«¡© * Sat Jul 6 22:38:00 JST 2002 Naoyuki Sawa - PCEWAVEINFO¤Ï³«Êü¤µ¤ì¤Ê¤¤ ºòǯ12·î25Æü¤Î¸¦µæµ­Ï¿¡ÖPCEWAVEINFO¤ÏautoÊÑ¿ô¤Ë¤·¤Æ¤Ï¤¤¤±¤Ê¤¤¡×¤Ç¡¢ pceWaveDataOut()¤ËÅϤ¹PCEWAVEINFO¹½Â¤ÂΤϡ¢autoÊÑ¿ô¤Ë¤·¤Æ¤Ï¤¤¤±¤Ê¤¤Íýͳ¤òÄ´¤Ù¤Þ¤·¤¿¡£ pceWaveDataOut()¤ÏºÆÀ¸½ªÎ»»þ¤Ë¡¢PCEWAVEINFO¹½Â¤ÂΤÎstat¥á¥ó¥Ð¤ËPW_STAT_END¤ò½ñ¤­¹þ¤à¤Î¤Ç¡¢ pceWaveDataOut()¤ËÅϤ·¤¿PCEWAVEINFO¹½Â¤ÂΤΥá¥â¥êÎΰè¤òÊ̤ÎÍÑÅӤ˺ÆÍøÍѤ·¤¿¤ê¤·¤Æ¤¤¤ë¤È¡¢ ¤½¤ÎÎΰè¤ËPW_STAT_END¤¬½ñ¤­¹þ¤Þ¤ì¤Æ¡¢¥Ç¡¼¥¿¤¬²õ¤ì¤Æ¤·¤Þ¤¦¡¢¤È¤¤¤¦Íýͳ¤Ç¤·¤¿¡£ ¤½¤Î¸å¡¢BIOS 1.14¤«¤é1.18¤Ø¤Î¥¢¥Ã¥×¥°¥ì¡¼¥É»þ¤Ë¡¢¤³¤ÎÌäÂê¤Ï½¤Àµ¤µ¤ì¤Þ¤·¤¿¡£ BIOS 1.18¤Î¹¹¿·ÆâÍÆ¡Êhttp://www.piece-me.com/dl/update118.html¡Ë¤Ë¤Ï¡¢¼¡¤Î¤è¤¦¤Êµ­½Ò¤¬¤¢¤ê¤Þ¤¹¡£ ¡ü¥Ð¥°¥Õ¥£¥Ã¥¯¥¹ ¡¦WaveºÆÀ¸¤Ç²òÊüºÑ¤ß¤Î¥Ð¥Ã¥Õ¥¡¤Ë½ñ¤­¹þ¤à¥Ð¥°½¤Àµ ¤Þ¤¿¡¢¥«¡¼¥Í¥ë¥½¡¼¥¹¡Êc:\usr\piece\sysdev\pcekn\snd.c¡Ë¤Ë¤â¡¢¼¡¤Î¤è¤¦¤Ê¥³¥á¥ó¥È¤¬¤¢¤ê¤Þ¤¹¡£ v1.16 2002.01.05 MIO.H ²òÊüºÑ¤ß¤Î¥Ð¥Ã¥Õ¥¡¤Ë½ñ¤­¹þ¤à¥Ð¥°½¤Àµ ¤½¤·¤Æ¼ÂºÝ¤Ë¡¢¥«¡¼¥Í¥ë¥½¡¼¥¹¤â½¤Àµ¤µ¤ì¤Æ¤¤¤ë¤è¤¦¤Ç¤¹¡£¡Êsnd.c¤Î286¹ÔÌܤÈ349¹ÔÌÜ¡Ë //newp->stat = PW_STAT_START; Íפé¤Ê¤¤ //wp->pwiee->stat = PW_STAT_END; Íפé¤Ê¤¤ ¤³¤Î¤è¤¦¤Ë¡¢PCEWAVEINFO¹½Â¤ÂΤγ«ÊüÌäÂ꤬½¤Àµ¤µ¤ì¤¿¤³¤È¤ÏÃΤäƤ¤¤¿¤Î¤Ç¤¹¤¬¡¢ ¤Á¤«¤´¤í¤Ï¡¢¸ú²Ì²»ÉÕ¤­¤Î¥×¥í¥°¥é¥à¤ÏÁ´Éô¥·¥ó¥×¥ë¥é¥¤¥Ö¥é¥ê¤ÇÁȤó¤Ç¤¤¤¿¤Î¤Ç¡¢ ËÜÅö¤ËPCEWAVEINFO¹½Â¤ÂΤòautoÊÑ¿ô¤Ë¤·¤ÆpceWaveDataOut()¤¬»È¤¨¤ë¤Î¤«¤É¤¦¤«¡¢ ¼Â¸³¤·¤Æ¤¤¤Þ¤»¤ó¤Ç¤·¤¿¡£ ÀèÆü¤«¤é¡¢µ×¤·¤Ö¤ê¤Ë¥³¥¢API¤ò»È¤Ã¤Æ¥×¥í¥°¥é¥à¤òÁȤó¤Ç¤¤¤Þ¤¹¡£ ¤Ç¡¢PCEWAVEINFO¹½Â¤ÂΤòautoÊÑ¿ô¤Ë¤·¤ÆpceWaveDataOut()¤ò»È¤Ã¤Æ¤ß¤Þ¤·¤¿¡£ ¡¦¡¦¡¦¤ä¤Ã¤Ñ¤êÍî¤Á¤Þ¤¹¡¦¡¦¡¦ ¤Ê¤¼¡©¥«¡¼¥Í¥ë¥½¡¼¥¹¤ò¸«¤ë¸Â¤ê¡¢ÌäÂê¤Î¤«½ê¤Ï½¤Àµ¤µ¤ì¤Æ¤¤¤ë¤è¤¦¤Ç¤¹¤¬¡Ä ¸¶°ø¤Ï¡¢stat¥á¥ó¥Ð¤Ø¤Î¡Ö½ñ¹þ¤ß¡×¤Ç¤Ï¤Ê¤¯¡¢pfEndProc¥á¥ó¥Ð¤Î¡Ö»²¾È¡×¤Ë¤¢¤ê¤Þ¤·¤¿¡£ PCEWAVEINFO¤ÎpfEndProc¤Ë´Ø¿ô¥¢¥É¥ì¥¹¤ò»ØÄꤷ¤Æ¤ª¤¯¤È¡¢WAVE¥Ç¡¼¥¿¤¬ºÆÀ¸½ªÎ»¤·¤¿¤È¤­¤Ë´Ø¿ô¤¬¥³¡¼¥ë¥Ð¥Ã¥¯¤µ¤ì¤Þ¤¹¡£ pfEndProc¤¬NULL¤Ê¤é¡¢¥³¡¼¥ë¥Ð¥Ã¥¯¤Ï¹Ô¤ï¤ì¤Þ¤»¤ó¡£ ¤¤¤º¤ì¤Ë¤»¤è¡¢¥µ¥¦¥ó¥É¥É¥é¥¤¥Ð¤Ï¤É¤³¤«¤ËpfEndProc¤ÎÆâÍƤòÊݸ¤·¤Æ¤ª¤«¤Ê¤±¤ì¤Ð¤¤¤±¤Þ¤»¤ó¡£ ¤È¤³¤í¤¬¸½ºß(1.18)¤Î¼ÂÁõ¤Ç¤Ï¡¢ºÆÀ¸½ªÎ»»þ¤Ë¡¢pceWaveDataOut()¤ËÅϤµ¤ì¤¿¥Ý¥¤¥ó¥¿¤ò·Ðͳ¤·¤ÆpfEndProc¤ÎÆâÍƤò »²¾È¤·¤Æ¤·¤Þ¤Ã¤Æ¤¤¤Þ¤¹¡£ ¶ñÂÎŪ¤Ë¤Ï¡¢pceWaveDataOut()¤ËÅϤµ¤ì¤¿¥Ý¥¤¥ó¥¿¤¬¡¢WAVEPLAY.pwi00¤Ë¤½¤Î¤Þ¤ÞÊݸ¤µ¤ì(snd.c:setpwi())¡¢ ºÆÀ¸½ªÎ»»þ¤ËWAVEPLAY.pwiee¤Ë°Ü¤µ¤ì(snd.c:make_xwave())¡¢¤³¤Îpwiee¤ò·Ðͳ¤·¤ÆpfEndProc¤¬»²¾È¤µ¤ì¤Þ¤¹(snd.c:make_xwave())¡£ pceWaveDataOut()¤ËÅϤµ¤ì¤¿¥Ý¥¤¥ó¥¿¤Î»Ø¤¹Àè¤ÎPCEWAVEINFO¹½Â¤ÂΤϴû¤Ë³«Êü¤µ¤ì¤Æ¤¤¤ë¤³¤È¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤Î¤Ç¡¢ pfEndProc¥á¥ó¥Ð¤Î¥á¥â¥êÎΰè¤â¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ë¤è¤Ã¤ÆÊ̤ÎÍÑÅӤ˺ÆÍøÍѤµ¤ì¡¢ÆâÍƤÏÊѤï¤Ã¤Æ¤¤¤ë¤Ï¤º¤Ç¤¹¡£ ¤½¤Î·ë²Ì¡¢´Ø¿ô¥¢¥É¥ì¥¹¤¸¤ã¤Ê¤¤¥Ç¡¼¥¿¤ò´Ø¿ô¥¢¥É¥ì¥¹¤È¤·¤Æ¼èÆÀ¤·¤Æ¤·¤Þ¤¤¡¢¤Ç¤¿¤é¤á¤Ê¥¢¥É¥ì¥¹¤Ø¤Î´Ø¿ô¸Æ¤Ó½Ð¤·¤ò ¹Ô¤Ã¤Æ¤·¤Þ¤¤¡¢TRAP¤¬È¯À¸¤¹¤ë¤Î¤Ç¤¹¡£ ¤³¤ì¤Ï¡¢autoÊÑ¿ô¤Î·ï¤È¤ÏÊ̤ÎÌäÂê¤Ç¤¹¡£ ¤¿¤È¤¨PCEWAVEINFO¹½Â¤ÂΤò¥°¥í¡¼¥Ð¥ëÊÑ¿ô¤ä¥¹¥¿¥Æ¥£¥Ã¥¯ÊÑ¿ô¤Ë¤·¤Æ¤¤¤Æ¤â¡¢ ºÆÀ¸½ªÎ»¤¹¤ë¤Þ¤Ç¤ÏPCEWAVEINFO¹½Â¤ÂΤÎÆâÍƤò¤¦¤«¤Ä¤ËÊѹ¹¤Ç¤­¤Þ¤»¤ó¡£ ºÆÀ¸Ãæ¤ÎPCEWAVEINFO¡ÊËÜÅö¤Ê¤é¤ÐPCEWAVEINFO¤Ï¨ºÂ¤Ë³«Êü¤µ¤ì¤ë¤Ï¤º¤Ê¤Î¤Ç¡¢¡ÈºÆÀ¸Ãæ¤ÎPCEWAVEINFO¡É¤È¤¤¤¦³µÇ°¼«ÂÎ ¤¢¤ê¤¨¤Ê¤¤¤Î¤Ç¤¹¤¬¡Ä¡Ë¤ÎpfEndProc¥á¥ó¥Ð¤ò½ñ¤­´¹¤¨¤Æ¤·¤Þ¤¦¤È¡¢pceWaveDataOut()¤ò¸Æ¤ó¤À¤È¤­¤ÎpfEndProc¤Ç¤Ï¤Ê¤¯¡¢ ½ñ¤­´¹¤¨¤¿¸å¤ÎpfEndProc¤Ë½¾¤Ã¤Æ¥³¡¼¥ë¥Ð¥Ã¥¯¤¬¹Ô¤ï¤ì¤Æ¤·¤Þ¤¦¤Î¤Ç¤¹¡£ ¼Â¸³¥×¥í¥°¥é¥à¤òºîÀ®¤·¤Æ¤ß¤Þ¤·¤¿¡£ ¥Ð¥¤¥Ê¥ê¡§ http://www.piece-me.org/archive/endproc-20020706-bin.zip ¥½¡¼¥¹¡¡¡§ http://www.piece-me.org/archive/endproc-20020706-src.zip ¡¦PCEWAVEINFO¹½Â¤ÂΤϥ°¥í¡¼¥Ð¥ëÊÑ¿ô¤Ë¤·¤Æ¤¢¤ê¤Þ¤¹¡£ ¡¦£Á¥Ü¥¿¥ó¤ò²¡¤¹¤È¡¢É½¼¨¥á¥Ã¥»¡¼¥¸¤ò¡ÖºÆÀ¸Ãæ¤Ç¤¹¡×¤ËÀßÄꤷ¤¿¸å¡¢£±ÉÃÄøÅ٤θú²Ì²»¤òºÆÀ¸³«»Ï¤·¤Þ¤¹¡£ ¡¡PCEWAVEINFO.pfEndProc=NULL¤Ë¤·¤Æ¤¢¤ê¤Þ¤¹¤Î¤Ç¡¢ºÆÀ¸½ªÎ»»þ¤Ë¤Ï¥³¡¼¥ë¥Ð¥Ã¥¯¤Ï¹Ô¤ï¤ì¤º¡¢²¿¤âµ¯¤³¤ê¤Þ¤»¤ó¡£ ¡¡ºÆÀ¸½ªÎ»¤·¤Æ¤â¡¢É½¼¨¥á¥Ã¥»¡¼¥¸¤Ï¡ÖºÆÀ¸Ãæ¤Ç¤¹¡×¤Î¤Þ¤Þ¤Ç¤¹¡£ ¡¦£Â¥Ü¥¿¥ó¤ò²¡¤¹¤È¡¢PCEWAVEINFO.pfEndProc¤Ë´Ø¿ô¥¢¥É¥ì¥¹¤òÀßÄꤷ¤Þ¤¹¡£ ¡¡¤½¤Î´Ø¿ô¤Ç¤Ï¡¢É½¼¨¥á¥Ã¥»¡¼¥¸¤ò¡ÖºÆÀ¸½ªÎ»¤·¤Þ¤·¤¿¡×¤ËÊѹ¹¤·¤Þ¤¹¡£ ¡¦£Á¥Ü¥¿¥ó¤ò²¡¤·¤Æ¸ú²Ì²»¤¬ºÆÀ¸¤µ¤ì¤Æ¤¤¤ë¤¢¤¤¤À¤Ë¡¢£Â¥Ü¥¿¥ó¤ò²¡¤·¤ÆpfEndProc¤òÀßÄꤷ¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£ ¡¡ºÆÀ¸½ªÎ»»þ¤Ë¡¢É½¼¨¥á¥Ã¥»¡¼¥¸¤¬¡ÖºÆÀ¸½ªÎ»¤·¤Þ¤·¤¿¡×¤ËÊѤï¤ê¤Þ¤¹¡£ ¡¡pceWaveDataOut()¤ò¸Æ¤ó¤À¸å¤ÎPCEWAVEINFO.pfEndProc¤Ø¤ÎÊѹ¹¤¬¡¢È¿±Ç¤µ¤ì¤Æ¤·¤Þ¤¦¤³¤È¤¬³Îǧ¤Ç¤­¤Þ¤¹¡£ ²óÈòÊýË¡¤Ï¡¢¼¡¤Î¤È¤ª¤ê¤Ç¤¹¡£ ¡¦PCEWAVEINFO¹½Â¤ÂΤϥ°¥í¡¼¥Ð¥ëÊÑ¿ô¤Þ¤¿¤Ï¥¹¥¿¥Æ¥£¥Ã¥¯ÊÑ¿ô¤Ë¤¹¤ë¡£ ¡¡°ÊÁ°¤ÎautoÊÑ¿ô¤Î·ï¤È¤ÏÊÌÌäÂê¤Ç¤¹¤¬¡¢ºÆÀ¸½ªÎ»»þ¤Þ¤ÇpfEndProc¤ÎÆâÍƤòÊÝ»ý¤·¤Ê¤±¤ì¤Ð¤¤¤±¤Ê¤¤¤Î¤Ç¡¢ ¡¡¤ä¤Ï¤êautoÊÑ¿ô¤Ë¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó¡£ ¡¦ºÆÀ¸½ªÎ»¤Þ¤Ç¡¢PCEWAVEINFO¤ÎÆâÍƤò½ñ¤­´¹¤¨¤Æ¤Ï¤¤¤±¤Ê¤¤¡£ ¡¡PCEWAVEINFO¹½Â¤ÂΤ¬¥°¥í¡¼¥Ð¥ëÊÑ¿ô¤Þ¤¿¤Ï¥¹¥¿¥Æ¥£¥Ã¥¯ÊÑ¿ô¤Ê¤Î¤Ç¡¢Ëè²ó»È¤¤¤Þ¤ï¤¹¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¤¬¡¢ ¡¡¿·¤·¤¤WAVE¾ðÊó¤Î¥»¥Ã¥È¥¢¥Ã¥×Á°¤ËÁ°²ó¤ÎºÆÀ¸¤¬´°Î»¤·¤Æ¤¤¤Ê¤±¤ì¤Ð¤¤¤±¤Þ¤»¤ó¡£ ¡¦ºÆÀ¸´°Î»ÂÔ¤Á¤ò¹Ô¤ï¤Ê¤¤¾ì¹ç¤Ï¡¢pceWaveAbort()¤Ç³Î¼Â¤ËºÆÀ¸Ää»ß¤·¤Æ¤«¤é¡¢PCEWAVEINFO¤ÎÆâÍƤò½ñ¤­´¹¤¨¤Þ¤¹¡£ ¡¡ PCEWAVEINFO¤Î¥»¥Ã¥È¥¢¥Ã¥×¢ªpceWaveAbort()¢ªpceWaveDataOut() /* °­¤¤Îã */ ¡¡¤È¤¤¤¦½ç¤Ç¤Ï¥À¥á¤Ç¤¹¡ª ¡¡ pceWaveAbort()¢ªPCEWAVEINFO¤Î¥»¥Ã¥È¥¢¥Ã¥×¢ªpceWaveDataOut() /* Îɤ¤Îã */ ¡¡¤È¤¤¤¦¼ê½ç¤Ç¹Ô¤ï¤Ê¤±¤ì¤Ð¤¤¤±¤Þ¤»¤ó¡£ * Sat Jul 6 22:38:00 JST 2002 Naoyuki Sawa - ²»¿§¥Ù¥ó¥Á¥Þ¡¼¥¯#2 º£²ó¤Ï¡¢¥ê¥Õ¥¡¥ì¥ó¥¹¤Îµ­½Ò¤ËÈ¿¤·¤Æ¡Ö¹â®¡×²»¿§¤¬Ä̾ï¤Î²»¿§¤è¤ê¤â®¤¤¸¶°ø¤òÄ´¤Ù¤ëͽÄê¤Ç¤·¤¿¡£ ¤·¤«¤·¡¢¼ÂºÝ¤Ë²»¿§½èÍý¤ò¹Ô¤Ã¤Æ¤¤¤ë c:\usr\piece\sysdev\music\musfast.s ¤ò¾¯¤·¸«¤Æ¤ß¤¿¤È¤³¤í¡¢ ¡Ö¹â®¡×²»¿§¤ÎÊý¤¬Â®¤¤¤Î¤ÏÄ´¤Ù¤ë¤Þ¤Ç¤â¤Ê¤¯°ìÌÜÎÆÁ³¤Ç¤¹¡£ ¤É¤¦¤ä¤é¡¢¡Ö¹â®¡×²»¿§¤ÎÊý¤¬ÃÙ¤¤¡¢¤È¤¤¤¦¤Î¤Ï¡¢¥ê¥Õ¥¡¥ó¥ì¥ó¥¹¤Îñ½ã¤Ê½ñ¤­´Ö°ã¤¤¤À¤Ã¤¿¤è¤¦¤Ç¤¹¡£ ¤È¤¤¤¦¤ï¤±¤Ç¡¢²»¿§¥Ù¥ó¥Á¥Þ¡¼¥¯¤ÎÏÃÂê¤Ï¤³¤³¤Þ¤Ç¤Ë¤·¤Æ¡¢º£²ó¤ÏÊ̤ÎÏÃÂê¤ò¼è¤ê¾å¤²¤Æ¤ß¤¿¤¤¤È»×¤¤¤Þ¤¹¡£ ¾å¤Îµ­»ö¤Ø¤É¤¦¤¾¡£ * Fri Jul 5 00:00:00 JST 2002 Naoyuki Sawa - ²»¿§¥Ù¥ó¥Á¥Þ¡¼¥¯#1 ¡ÖP/ECE Hand Book¡×¤Î¡Ø½é¿´¼Ô¤Î¤¿¤á¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¹ÖºÂ¡¦P/ECE¤Ç²»³Ú¤ò³Ú¤·¤â¤¦¡ª¡Ù¤òÆɤó¤Ç¡¢ MML¤Î»È¤¤Êý¤òÊÙ¶¯Ãæ¤Ç¤¹¡£ P/ECE³«È¯´Ä¶­¤Î²»³Ú¥é¥¤¥Ö¥é¥ê¥Þ¥Ë¥å¥¢¥ë¤Ç¤ÏÍý²ò¤·¤Å¤é¤«¤Ã¤¿ÅÀ¤â¡¢¤ï¤«¤ê¤ä¤¹¤¯²òÀ⤵¤ì¤Æ¤¤¤Þ¤¹¡£ Æäˡ¢¥ê¥º¥à¥Ñ¡¼¥È¤Î²òÀ⤬½¨°ï¡ª ¤³¤ì¤Þ¤Ç¡Ö!!¡×¤ä¡Ö?¡×¤Î°ÕÌ£¤¬¤è¤¯¤ï¤«¤é¤º¡¢¤É¤³¤«¤Ë½ñ¤¤¤Æ¤¢¤ëÀâÌÀ¤ò¸«Íî¤È¤·¤Æ¤ë¤Î¤«¤Ê¡Ä¤È»×¤Ã¤Æ¤¤¤Þ¤·¤¿¡£ ¤³¤Îµ­»ö¤Ç¤Ï¡Ö!!¡×¤ä¡Ö?¡×¤Ê¤É¤ÎÆæ¤Êɽµ­Ë¡¤Ï»È¤ï¤º¡¢¡ÖF =1¡×¤â»È¤ï¤º¤Ë¡¢¥ê¥º¥à¥Ñ¡¼¥È¤òµ­½Ò¤·¤Æ¤¤¤Þ¤¹¡£ ¥ê¥º¥à²»¿§¤â¾¤Î²»¿§¤ÈƱ¤¸¤è¤¦¤Ë°·¤¦¡£µ¤ÉÕ¤¤¤Æ¤ß¤ì¤Ð´Êñ¤Ê¤³¤È¤À¤Ã¤¿¤Î¤Ç¤¹¤¬¡¢Ìܤ«¤éÎڤǤ¹¡£ Ëͤϡ¢²»³Ú¤Ï¤¼¤ó¤¼¤ó¥À¥á¡ÊMSX¤Î²»³Ú´Ä¶­¡ÖMuSICA¡×¤ò¤Á¤ç¤Ã¤È¤«¤¸¤Ã¤¿¤À¤±¡Ë¤Ê¤Î¤Ç¤¹¤¬¡¢ ¤³¤Îµ¡²ñ¤Ë¤â¤¦°ìÅÙ¥Á¥ã¥ì¥ó¥¸¤·¤Æ¤ß¤è¤¦¤«¤Ê¡¢¤È¤¤¤¦µ¤¤Ë¤Ê¤Ã¤Æ¤­¤Æ¤Þ¤¹¡£ ¤È¸À¤Ã¤¿Ëµ¤«¤é¡¢²»³Ú¤½¤Î¤â¤Î¤òÎ¥¤ì¤ÆºÙ¤«¤¤ÏäËÆþ¤Ã¤Æ¹Ô¤¯¤Î¤Ç¤¹¤¬(^^; ¡ØP/ECE¤Ç²»³Ú¤ò³Ú¤·¤â¤¦¡ª¡Ù¤Îµ­»ö¤Î²»¿§¤Ë´Ø¤¹¤ëÀâÌÀ¤Ë¤Ï¡¢¼¡¤Î¤è¤¦¤Êµ­½Ò¤¬¤¢¤ê¤Þ¤¹¡£ ̾Á°¤Ë¡Ö¹â®¡×¤¬ÉÕ¤¯²»¿§¤ÎÊý¤¬½èÍý¤¬½Å¤¤¤Î¤Ç¡¢ ½èÍý¤ò·Ú¤¯¤¹¤ë¤¿¤á¤Ë¤Ï¡Ö¹â®¡×¤¬ÉÕ¤«¤Ê¤¤²»¿§¤ò»È¤Ã¤¿Êý¤¬¤¤¤¤ ¡Ê086¥Ú¡¼¥¸¤¢¤¿¤ê¤ÎÍ×Ìó¡Ë ¤Ä¤Þ¤ê¡¢²»¿§@0,@1,@2¤ò»È¤¦¤È¥²¡¼¥à¤¬ÃÙ¤¯¤Ê¤ë¤Î¤Ç¡¢@3,@4,@5¤ò»È¤¨¡¢¤È¤¤¤¦¤³¤È¤Ç¤¹¤Í¡£ P/ECE³«È¯´Ä¶­¤Î²»³Ú¥é¥¤¥Ö¥é¥ê¥Þ¥Ë¥å¥¢¥ë¤Ë¤â¡¢Æ±Íͤε­½Ò¤¬¤¢¤ê¤Þ¤¹¡£ ¤·¤«¤·¡¢¤Á¤ç¤Ã¤ÈÂԤäƤ¯¤À¤µ¤¤¡£¡Ö¹â®¡×²»¿§¤ÎÊý¤¬¡ÖÄ㮡ס©²¿¤È¤Ê¤¯Ä¾´¶¤ËÈ¿¤·¤Þ¤¹¡£ ¤È¤¤¤¦¤ï¤±¤Ç¡¢³Î¤«¤á¤Æ¤ß¤ë¤³¤È¤Ë¤·¤Þ¤·¤¿¡£ Ʊ¤¸¶Ê¤Ç¡¢²»¿§¤À¤±¤òÊѤ¨¤¿¥Ç¡¼¥¿¤ò¡¢6¤Ä¤Î²»¿§Ê¬ÍÑ°Õ¤·¤Þ¤¹¡£ ¤½¤ì¤é¤Î¶Ê¤òBGM¤Ëή¤·¤Ê¤¬¤é¡¢¥×¥í¥°¥é¥à¤Ç1000Ëü²ó¶õ¥ë¡¼¥×¤ò²ó¤·¤Æ¡¢½êÍ×»þ´Ö¤ò·×¤ê¤Þ¤¹¡£ ¶õ¥ë¡¼¥×¤¬²ó¤Ã¤Æ¤¤¤ë´Ö¤ÏpceAppProc()¤òÈ´¤±¤Þ¤»¤ó¤Î¤Ç¡¢²»³Ú¥é¥¤¥Ö¥é¥ê¤Î½èÍý¤Î½Å¤µ¤¬Ä¾ÀܱƶÁ¤¹¤ë¤Ï¤º¤Ç¤¹¡£ ¼Â¸³¥×¥í¥°¥é¥à¤Ï¤³¤Á¤é¡§ ¥Ð¥¤¥Ê¥ê¡¡http://www.piece-me.org/archive/musbench-20020705-bin.zip ¥½¡¼¥¹¡¡¡¡http://www.piece-me.org/archive/musbench-20020705-src.zip ¾å²¼¥«¡¼¥½¥ë¤Ç¶Ê¤òÊѹ¹¤·¡¢A¥Ü¥¿¥ó¤Ç·×¬³«»Ï¤ò³«»Ï¤·¤Þ¤¹¡£ ·×¬½ªÎ»¤·¤¿¤é¡¢½êÍ×»þ´Ö¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£ ·ë²Ì¤Ï¼¡¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤·¤¿¡£ ¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ü ¡Ã¡¡¡¡¡¡¡¡¡¡£Â£Ç£Í¡¡¡¡¡¡¡¡¡¡¡Ã½êÍ×»þ´Ö¡Ã ¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ü ¡Ã²»³Ú¤Ê¤·¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã10.158Éáà ¡Ã²»¿§£°¤Î¶Ê¡§¶ë·ÁÇÈ(¹â®)¡¡¡Ã13.741Éáà ¡Ã²»¿§£±¤Î¶Ê¡§¤Î¤³¤®¤ê(¹â®)¡Ã14.616Éáà ¡Ã²»¿§£²¤Î¶Ê¡§»°³ÑÇÈ(¹â®)¡¡¡Ã14.976Éáà ¡Ã²»¿§£³¤Î¶Ê¡§¶ë·ÁÇÈ¡¡¡¡¡¡¡¡¡Ã26.240Éáà ¡Ã²»¿§£´¤Î¶Ê¡§¤Î¤³¤®¤ê¡¡¡¡¡¡¡Ã26.241Éáà ¡Ã²»¿§£µ¤Î¶Ê¡§»°³ÑÇÈ¡¡¡¡¡¡¡¡¡Ã26.245Éáà ¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ü ½êÍ×»þ´Ö¤¬¾¯¤Ê¤¤¤Û¤É¡¢½èÍý¤¬·Ú¤¤¤³¤È¤ò¼¨¤·¤Þ¤¹¡£ 1000Ëü²ó¤Î¶õ¥ë¡¼¥×¤Î½èÍý¤ÏÊѲ½¤·¤Ê¤¤¤Î¤Ç¡¢½êÍ×»þ´Ö¤Îº¹¤Ï²»³Ú¥é¥¤¥Ö¥é¥ê¤Î½èÍý»þ´Ö¤Îº¹¡£ ²»¿§°Ê³°¤Î¶Ê¥Ç¡¼¥¿¤ÏƱ¤¸¤Ç¤¹¤Î¤Ç¡¢¤¹¤Ê¤ï¤Á¡¢²»¿§¤Î½èÍý¤Î½Å¤µ¤Îº¹¤È¤¤¤¦¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£ ·ë²Ì¤ò¸«¤ë¤È¡¢Ì¾Á°¤Ë¡Ö¹â®¡×¤¬ÉÕ¤¯²»¿§¤ÎÊý¤¬°µÅÝŪ¤Ë½èÍý¤¬·Ú¤¤¡á¡Ö¹â®¡×¤Ç¤¹¡£ ¡Ö¹â®¡×²»¿§¤ÎÊý¤¬¡Ö¹â®¡×¤È¤¤¤¦¡¢Ç¼ÆÀ¤Î¤¤¤¯·ë²Ì¤¬ÆÀ¤é¤ì¤Þ¤·¤¿¡£ ¤Ê¤¼¡¢²»¿§¤Ë¤è¤Ã¤Æ¤³¤ó¤Ê¤Ë¤â½èÍý¤Î½Å¤µ¤¬°ã¤Ã¤Æ¤¯¤ë¤Î¤Ç¤·¤ç¤¦¤«¡© ¡Ê³¤­¤Þ¤¹¡Ä¡Ë * Fri Jun 17 00:00:00 JST 2002 Naoyuki Sawa - zlib¤ò»È¤¦#3 ¡Ê¡ÄÁ°²ó¤«¤é¤Î³¤­¡Ë Á°¡¹²ó¤Î¡Özlib¤ò»È¤¦#1¡×¤Ç¡¢¤³¤ó¤Ê¤³¤È¤ò½ñ¤­¤Þ¤·¤¿¡£ | pceZlibExpand()¤ò¥³¥Ô¡¼¡§ | pceZlibExpand()¤Î¥½¡¼¥¹¤ò¥¢¥×¥ê¥±¥·¥ç¥ó¥×¥í¥°¥é¥à¤Ë¥³¥Ô¡¼¤·¤Æ»È¤¦¡¢¤È¤¤¤¦¼ê¤Ï¤É¤¦¤Ç¤·¤ç¤¦¤«¡£ | ²Äǽ¤À¤È¤Ï»×¤¦¤Î¤Ç¤¹¤¬¡¢ËͤÏÃÇÇ°¤·¤Þ¤·¤¿¡£ | pceZlibExpand()¤Ïpex¥Õ¥¡¥¤¥ë¤ÎŸ³«¤ËÆò½¤·¤Æ¤¤¤Æ¡¢¤Á¤ç¤Ã¤ÈÆüì¤Ê¥á¥â¥ê³ä¤êÅö¤Æ¾õ¶·¤òÁ°Äó¤È¤·¤Æºî¤é¤ì¤Æ¤¤¤ë¤è¤¦¤Ç¤¹¡£ pceZlibExpand()¤Î»ÈÍѤϤ¢¤­¤é¤á¤Æ¡¢Á°²ó¡Özlib¤ò»È¤¦#2¡×¤Ç¡¢¥ª¥ê¥¸¥Ê¥ë¤Îzlib¥é¥¤¥Ö¥é¥ê¤ò»È¤Ã¤Æ¤ß¤Þ¤·¤¿¡£ ¤·¤«¤·¼Â¤Ï¡¢zlib¥é¥¤¥Ö¥é¥ê¤ò¤½¤Î¤Þ¤Þ»È¤¦ÊýË¡¤Ë¤Ï¡¢¤Á¤ç¤Ã¤ÈÌäÂ꤬¤¢¤Ã¤¿¤Î¤Ç¤¹¡£ zlib¤ÎŸ³«¥ë¡¼¥Á¥ó¤ò»È¤¦¤Ë¤Ï¡¢£±£µ¡Á£³£µKBÄøÅ٤κî¶ÈÎΰ褬ɬÍ× ºÇ¶á¤ÎPC¤Ï¿ôÉ´MB¤â¤ÎRAM¤ò»ý¤Ã¤Æ¤¤¤ë¤Î¤Ç¡¢¤³¤ÎÄøÅ٤Υá¥â¥ê¾ÃÈñ¤ÏÌäÂê¤Ë¤Ê¤é¤Ê¤¤¤Î¤Ç¤¹¤¬¡¢ P/ECE¤Ï¸µ¡¹256KB¤·¤«RAM¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¤Î¤Ç¡¢35KB¤â¤Î¥á¥â¥ê¾ÃÈñ¤Ï¤«¤Ê¤ê¤­¤Ó¤·¤¤¤Ç¤¹¡£ pceZlibExpand()¤ÏRAM¤¬¾¯¤Ê¤¤´Ä¶­¤ËÆò½¤·¤¿¤Ä¤¯¤ê¤Ë¤Ê¤Ã¤Æ¤¤¤Æ¡¢¥á¥â¥ê¾ÃÈñ¤Ï¤«¤Ê¤ê¾®¤µ¤¯ÍÞ¤¨¤é¤ì¤Æ¤¤¤ë¤ß¤¿¤¤¤Ç¤¹¡£ ¤Ç¤­¤ì¤ÐpceZlibExpand()¤ò»È¤¤¤¿¤¤¤È¤³¤í¤Ê¤Î¤Ç¤¹¤¬¡¢¤É¤¦¤â»È¤¤Êý¤¬¤è¤¯¤ï¤«¤é¤Ê¤¤¡Ä ¤È»×¤Ã¤Æ¤¤¤¿¤È¤³¤í¡¢¡Ö¤Ñ¤º¤ë¤ÎP/ECE (http://www.marchen.to/~piece/)¡×¤Î¤Þ¤«¤Ù¤Ò¤í¤·¤µ¤ó¤«¤é¡¢ ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥×¥í¥°¥é¥à¤ËpceZlibExpand()¤òÁȤ߹þ¤àÊýË¡¤Ë¤Ä¤¤¤Æ¡¢¥µ¥ó¥×¥ë¥×¥í¥°¥é¥àÅù¤Î¾ðÊó¤ò夭¤Þ¤·¤¿¡£ ¤µ¤Ã¤½¤¯ÁȤ߹þ¤ó¤Ç¤ß¤¿¤È¤³¤í¡¢³Î¤«¤ËpceZlibExpand()¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤Þ¤·¤¿¡£¤Þ¤«¤Ù¤µ¤ó¡¢¤¢¤ê¤¬¤È¤¦¤´¤¶¤¤¤Þ¤·¤¿¡£ ¤È¤¤¤¦¤ï¤±¤Ç¡¢¼«ºî¥×¥í¥°¥é¥à¤ÎŸ³«¥ë¡¼¥Á¥ó¤Ï¡¢zlib¥é¥¤¥Ö¥é¥ê¤«¤épceZlibExpand()¤ØÀÚ¤êÂؤ¨¤ë¤³¤È¤Ë¤·¤Þ¤·¤¿¡£ pceZlibExpand()¤ÎÁȤ߹þ¤ßÊý¤Ë¤Ä¤¤¤Æ¤Ï¡¢£¶·î£²£¸ÆüȯÇä¤Î¡ÖP/ECE Hand Book¡×¤ò¤´Í÷²¼¤µ¤¤¡£¡Ê¤Ê¤ó¤Æ¤¤¤¤¥¿¥¤¥ß¥ó¥°¡Ä¡Ë zlib¥é¥¤¥Ö¥é¥ê¤ÎÊý¤â¡¢¤â¤¦¤Á¤ç¤Ã¤È¤À¤±»È¤¤¹þ¤ó¤Ç¤ß¤è¤¦¤È»×¤¤¤Þ¤¹¡£ * Fri Jun 15 22:00:00 JST 2002 Naoyuki Sawa - zlib¤ò»È¤¦#2 ¡Ê¡ÄÁ°²ó¤«¤é¤Î³¤­¡Ë P/ECEÍÑzlib¥é¥¤¥Ö¥é¥ê¤òºî¤ê¤Þ¤·¤ç¤¦¡£¼ê½ç¤Ï¼¡¤ÎÄ̤ꡣ zlib¤Î¥½¡¼¥¹°ì¼°¤ò¥À¥¦¥ó¥í¡¼¥É¤·¤Þ¤¹ ------------------------------------ zlib¤ÎËܲȥµ¥¤¥È¡Özlib Home Page¡×¤«¤é¡¢zlib¤Î¥½¡¼¥¹°ì¼°¤ò¥À¥¦¥ó¥í¡¼¥É¤·¤Þ¤¹¡£ http://www.gzip.org/zlib/ zlib¤Î¥½¡¼¥¹°ì¼°¤Ï¡¢¤¤¤¯¤Ä¤«¤Î¥ß¥é¡¼¥µ¥¤¥È¤«¤é¥À¥¦¥ó¥í¡¼¥É¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ Ëͤϡ¢¤³¤Á¤é¤Î¥ß¥é¡¼¥µ¥¤¥È¤òÍøÍѤµ¤»¤Æ¤â¤é¤¤¤Þ¤·¤¿¡£ http://www.libpng.org/pub/png/src/zlib-1.1.4.tar.gz ¥½¡¼¥¹°ì¼°¤òŸ³«¤·¤Þ¤¹ ---------------------- ¥À¥¦¥ó¥í¡¼¥É¤·¤¿¥Õ¥¡¥¤¥ë¤òŸ³«¤·¤Æ¤¯¤À¤µ¤¤¡£ ¡Özlib-1.1.4¡×¤È¤¤¤¦Ì¾Á°¤Î¥Õ¥©¥ë¥À¤¬¤Ç¤­¤Æ¡¢¤½¤ÎÃæ¤Ë¥½¡¼¥¹°ì¼°¤¬Å¸³«¤µ¤ì¤Þ¤¹¡£ P/ECEÍÑMakefile¤òÍÑ°Õ¤·¤Þ¤¹ --------------------------- zlib-1.1.4¥Õ¥©¥ë¥À¤ÎÃæ¤Ë¤Ï´û¤ËMakefile¤¬¤¢¤ê¤Þ¤¹¤¬¡¢P/ECE³«È¯´Ä¶­¤Ç¤Ï¤½¤Î¤Þ¤Þ»È¤¦¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó¡£ ¥³¥ó¥Ñ¥¤¥é¥ª¥×¥·¥ç¥ó¤ä¥é¥¤¥Ö¥é¥ê¹½ÃÛÍѤΥ³¥Þ¥ó¥É¤Ê¤É¤¬¡¢P/ECE³«È¯´Ä¶­¤È¤Ï°ã¤Ã¤Æ¤¤¤ë¤«¤é¤Ç¤¹¡£ ½¤Àµ¤¹¤ë¤è¤ê¤â¡¢½ñ¤­Ä¾¤·¤¿Êý¤¬Á᤽¤¦¤Ç¤¹¡£ ¤È¤¤¤¦¤ï¤±¤Ç¡¢½ñ¤­Ä¾¤·¤Æ¤ß¤¿¤Î¤¬¤³¤Á¤é¡§¡ÊÁ°²ó¡¢¾Ò²ð¤·¤¿¤Î¤ÈƱ¤¸¤â¤Î¤Ç¤¹¡Ë http://www.piece-me.org/archive/zlib-1.1.4-piece.mk ¥À¥¦¥ó¥í¡¼¥É¤·¤¿¤é¡¢¥Õ¥¡¥¤¥ë̾¤ò¡ÖMakefile¡×¤ËÊѹ¹¤·¤Æ¤¯¤À¤µ¤¤¡£ ¤½¤·¤Æ¡¢zlib-1.1.4¥Õ¥©¥ë¥À¤ÎÃæ¤ÎMakefile¤Ë¡¢¾å½ñ¤­¥³¥Ô¡¼¤·¤Æ¤¯¤À¤µ¤¤¡£ ¥³¥ó¥Ñ¥¤¥ë¤·¤Þ¤¹ ---------------- ¥³¥Þ¥ó¥É¥×¥í¥ó¥×¥È¤ò³«¤­¡¢zlib-1.1.4¥Õ¥©¥ë¥À¤ÎÃæ¤Ø°ÜÆ°¤·¤Æ¡¢¡Ömake¡×¤È¥¿¥¤¥×¤·¤Æ¤¯¤À¤µ¤¤¡£ ¤·¤Ð¤é¤¯ÂԤäơ¢¡ÖLibrarian Completed¡×¤È¤¤¤¦¥á¥Ã¥»¡¼¥¸¤¬½Ð¤¿¤é¡¢¥³¥ó¥Ñ¥¤¥ë´°Î»¤Ç¤¹¡£ ɬÍפʥե¡¥¤¥ë¤À¤±¼è¤ê½Ð¤·¤Þ¤¹ ------------------------------ zlib-1.1.4¥Õ¥©¥ë¥À¤ÎÃæ¤Ë¤Ï¡¢¤¿¤¯¤µ¤ó¤Î¥Õ¥¡¥¤¥ë¤¬¤¢¤ê¤Þ¤¹¤¬¡¢ ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤«¤ézlib¥é¥¤¥Ö¥é¥ê¤ò»È¤¦¤¿¤á¤Ë¡¢¤³¤ì¤é¤¬Á´¤ÆɬÍפʤ櫓¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£ ɬÍפʥե¡¥¤¥ë¤Ï¡¢¼¡¤Î»°¤Ä¤À¤±¤Ç¤¹¡§ zlib.h ¡Ä ºÇ½é¤«¤é¤¢¤ê¤Þ¤¹¡£ zutil.h ¡Ä ºÇ½é¤«¤é¤¢¤ê¤Þ¤¹¡£ libz.lib ¡Ä ¤µ¤Ã¤­¥³¥ó¥Ñ¥¤¥ë¤·¤Æ¤Ç¤­¤¿¥é¥¤¥Ö¥é¥ê¤¬¤³¤ì¤Ç¤¹¡£ ¾¤Î¥Õ¥¡¥¤¥ë¤Ïº£¤Î¤È¤³¤íɬÍפʤ¤¤Î¤Ç¡¢¾Ã¤·¤Æ¤·¤Þ¤Ã¤Æ¤âÂç¾æÉפǤ¹¡£ ¤½¤ì¤Ç¤Ï¡¢zlib¥é¥¤¥Ö¥é¥ê»È¤Ã¤Æ¡¢°µ½Ì¤µ¤ì¤¿²èÁü¥Õ¥¡¥¤¥ë¤òŸ³«¤·¡¢²èÌ̤Ëɽ¼¨¤·¤Æ¤ß¤Þ¤¹¡£ ¥µ¥ó¥×¥ë¥×¥í¥°¥é¥à¤Ï¤³¤Á¤é¡§ http://www.piece-me.org/archive/zapp-20020615-src.zip ¡Ê³¤­¤Þ¤¹¡Ä¡Ë * Fri Jun 14 22:20:00 JST 2002 Naoyuki Sawa - zlib¤ò»È¤¦#1 P/ECE¤Î¼Â¹Ô¥Õ¥¡¥¤¥ë(°Ê²¼¡¢pex¥Õ¥¡¥¤¥ë¤È¸Æ¤Ó¤Þ¤¹)¤Ï¡¢¥Õ¥é¥Ã¥·¥å¥á¥â¥ê¤ÎÍÆÎ̤òÀáÌ󤹤뤿¤á¤Ë¡¢zlib¤Ç°µ½Ì¤·¤Æ¤¢¤ê¤Þ¤¹¡£ Ä̾ï¤Îpex¥Õ¥¡¥¤¥ëºîÀ®¼ê½ç¤Ç¤Ï¡¢¥³¥ó¥Ñ¥¤¥ë¡¦¥ê¥ó¥¯¤·¤Æ¤Ç¤­¤¿¥Õ¥¡¥¤¥ë(*.srf)¡¢¥¿¥¤¥È¥ëʸ»ú¡¢¥¢¥¤¥³¥ó¥Ç¡¼¥¿(*.pid)¤ò¡¢ ppack.exe¤ò»È¤Ã¤Æ¤Þ¤È¤á¤Æ¡¢pex¥Õ¥¡¥¤¥ë¤ËÊÑ´¹¤·¤Þ¤¹¡£ ¤³¤Î¤È¤­¡¢srf¥Õ¥¡¥¤¥ë¤ÎÉôʬ¤¬¡¢zlib¤Ë¤è¤Ã¤Æ°µ½Ì¤µ¤ì¤Þ¤¹¡£ pex¥Õ¥¡¥¤¥ë¤¬°µ½Ì¤µ¤ì¤Æ¤¤¤ë¤Î¤Ç¡¢P/ECE¾å¤Ç¼Â¹Ô¤¹¤ë¤¿¤á¤Ë¤Ï¡¢¤³¤ì¤òŸ³«¤·¤Ê¤±¤ì¤Ð¤¤¤±¤Þ¤»¤ó¡£ P/ECE¥«¡¼¥Í¥ë¤Ë¤Ï¡¢pex¥Õ¥¡¥¤¥ë¤òŸ³«¤¹¤ë¤¿¤á¤Î´Ø¿ô¡ÖpceZlibExpand()¡×¤¬ÍÑ°Õ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£(inflate.c) »ÄÇ°¤Ê¤¬¤é¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥×¥í¥°¥é¥à¤«¤épceZlibExpand()¤ò¸Æ¤Ó½Ð¤¹¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó¡£ ¤â¤·¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤«¤é¤âpceZlibExpand()¤Î¤è¤¦¤Ê°µ½Ì¥Õ¥¡¥¤¥ëŸ³«API¤¬»È¤¨¤¿¤Ê¤é¡¢Ìò¤ËΩ¤Ä¾ìÌ̤Ϥ«¤Ê¤ê¤¢¤ë¤È»×¤¤¤Þ¤¹¡£ Î㤨¤Ð¡¢¥°¥é¥Õ¥£¥Ã¥¯¥Ç¡¼¥¿¤ä²»³Ú¥Ç¡¼¥¿¤ò¥×¥í¥°¥é¥à¤È¤¤¤Ã¤·¤ç¤Ë¥³¥ó¥Ñ¥¤¥ë¡¦¥ê¥ó¥¯¤»¤º¡¢ ÆÈΩ¤·¤¿ÊÌ¥Õ¥¡¥¤¥ë(*.pgd,*.pmd)¤Ë¤·¤¿¤ê¡¢¤Þ¤È¤á¤Æ¥Õ¥¡¥¤¥ë¥Ñ¥Ã¥¯·Á¼°(*.fpk)¤Ë¤¹¤ë¤³¤È¤¬¤¢¤ê¤Þ¤¹¡£ ¥×¥í¥°¥é¥à¤È¥Ç¡¼¥¿¤òʬ¤±¤ë¤È¡¢¾ìÌÌ¡¦¾ìÌ̤ÇɬÍפʥǡ¼¥¿¤À¤±¤ò¥í¡¼¥É¤Ç¤­¤ë¤Î¤Ç¡¢¤¿¤¯¤µ¤ó¤Î¥Ç¡¼¥¿¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ ¤·¤«¤·¤³¤ÎÊýË¡¤Ç¤Ï¡¢¥Ç¡¼¥¿¥Õ¥¡¥¤¥ë¤Ë¤Ïppack.exe¤Ë¤è¤ë°µ½Ì¤¬¤«¤«¤é¤Ê¤¤¤Î¤Ç¡¢Á´¤Æpex¥Õ¥¡¥¤¥ë¤ËµÍ¤á¹þ¤ó¤À¾ì¹ç¤Ë³Ó¤Ù¤Æ¡¢ ¥Õ¥é¥Ã¥·¥å¥á¥â¥êÍÆÎ̤ò¤ò¤¿¤¯¤µ¤ó¾ÃÈñ¤¹¤ë¡¢¤È¤¤¤¦·çÅÀ¤¬¤¢¤ê¤Þ¤¹¡£ ¤â¤·°µ½Ì¥Õ¥¡¥¤¥ëŸ³«API¤¬»È¤¨¤¿¤Ê¤é¡¢¥Ç¡¼¥¿¥Õ¥¡¥¤¥ë¤â°µ½Ì¤·¤Æ¤ª¤¤¤Æ¡¢É¬ÍפÊÉôʬ¤À¤±¤òŸ³«¤·¤Ê¤¬¤é¥í¡¼¥É¤¹¤ë¤³¤È¤Ç¡¢ ¥Õ¥é¥Ã¥·¥å¥á¥â¥êÍÆÎ̤òÀáÌó¤Ç¤­¤ë¤Ï¤º¤Ç¤¹¡£ Á°½Ò¤ÎÄ̤ꡢ¸½¾õ¤Ç¤Ï¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥×¥í¥°¥é¥à¤«¤épceZlibExpand()¤ò¸Æ¤Ö¤³¤È¤¬¤Ç¤­¤Ê¤¤¤Î¤Ç¡¢¼«Á°¤ÇÍÑ°Õ¤·¤Þ¤·¤ç¤¦¡£ ¤¤¤¯¤Ä¤«¡¢ÊýË¡¤¬¤¢¤ê¤Þ¤¹¡£ ¤ª¤Ç¥Þ¥ë°µ½Ì¤ò»È¤¦¡§ ¤ª¤Ç¥Þ¥ë¤Ï¡¢Èó¾ï¤Ë¤¿¤¯¤µ¤ó¤Î¥°¥é¥Õ¥£¥Ã¥¯¥Ç¡¼¥¿¤ò»È¤¦¤¿¤á¤Ë¡¢¥Ç¡¼¥¿¥Õ¥¡¥¤¥ë(odemaru.grp)¤ò°µ½Ì¤·¤Æ»ý¤Ã¤Æ¤¤¤Þ¤¹¡£ °µ½Ì¤·¤Æ¤âP/ECE¤Î¥Õ¥é¥Ã¥·¥å¥á¥â¥êÍÆÎ̤®¤ê¤®¤ê¤Ç¤¹¤¬¡Ä ¤ª¤Ç¥Þ¥ë¤Î¥Ç¡¼¥¿¥Õ¥¡¥¤¥ë¤Ï¡¢pex¥Õ¥¡¥¤¥ë¤Î°µ½Ì¤Ë»È¤ï¤ì¤Æ¤¤¤ëzlib¤È¤Ï°ã¤¦¡¢Æȼ«¤ÎÊýË¡¤Ç°µ½Ì¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ Ÿ³«¥×¥í¥°¥é¥à¤Ï¡¢¤ª¤Ç¥Þ¥ë¤Î¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë¤Î¤Ç¡¢¤³¤ì¤ò¥³¥Ô¡¼¤·¤Æ»È¤¦¤³¤È¤¬¤Ç¤­¤½¤¦¤Ç¤¹¡£ ¤¬¡¢»ÄÇ°¤Ê¤¬¤é¡¢°µ½Ì¥×¥í¥°¥é¥à¤¬¤¢¤ê¤Þ¤»¤ó¡£ ¤è¤Ã¤Æ¡¢¤³¤ÎÊýË¡¤ÏµÑ²¼¤Ç¤¹¡£ pceZlibExpand()¤ò¥³¥Ô¡¼¡§ pceZlibExpand()¤Î¥½¡¼¥¹¤ò¥¢¥×¥ê¥±¥·¥ç¥ó¥×¥í¥°¥é¥à¤Ë¥³¥Ô¡¼¤·¤Æ»È¤¦¡¢¤È¤¤¤¦¼ê¤Ï¤É¤¦¤Ç¤·¤ç¤¦¤«¡£ ²Äǽ¤À¤È¤Ï»×¤¦¤Î¤Ç¤¹¤¬¡¢ËͤÏÃÇÇ°¤·¤Þ¤·¤¿¡£ pceZlibExpand()¤Ïpex¥Õ¥¡¥¤¥ë¤ÎŸ³«¤ËÆò½¤·¤Æ¤¤¤Æ¡¢¤Á¤ç¤Ã¤ÈÆüì¤Ê¥á¥â¥ê³ä¤êÅö¤Æ¾õ¶·¤òÁ°Äó¤È¤·¤Æºî¤é¤ì¤Æ¤¤¤ë¤è¤¦¤Ç¤¹¡£ zlib¤ò»È¤¦¡§ ¤È¤¤¤¦¤ï¤±¤Ç¡¢º£²ó¤Ïzlib¤ÎÊÙ¶¯¤â·ó¤Í¤Æ¡¢¥ª¥ê¥¸¥Ê¥ë¤Îzlib¥½¡¼¥¹¤«¤éP/ECEÍÑzlib¥é¥¤¥Ö¥é¥ê¤ò¹½ÃÛ¤·¤Æ¤ß¤ë¤³¤È¤Ë¤·¤Þ¤·¤¿¡£ ¤³¤ì¤Þ¤Ç¡¢zlib¤ò»È¤Ã¤¿¥¢¥×¥ê¥±¡¼¥·¥ç¥ó(gzip¤äunzip¤Ê¤É¤Î°µ½Ì¡¦Å¸³«¥Ä¡¼¥ë¡¢png²èÁü·Á¼°¤Ê¤É)¤Ï¤¤¤í¤¤¤í»È¤Ã¤Æ¤­¤Þ¤·¤¿¤¬¡¢ zlib¥é¥¤¥Ö¥é¥ê¤½¤Î¤â¤Î¤ò¥×¥í¥°¥é¥à¤«¤éľÀÜÍøÍѤ·¤¿¤³¤È¤Ï¤Ê¤«¤Ã¤¿¤Î¤Ç¡¢¤¤¤¤µ¡²ñ¤Ç¤¹¡£ P/ECEÍÑzlib¥é¥¤¥Ö¥é¥ê¤ò¹½ÃÛ¤¹¤ë¡¢¤È¤¤¤Ã¤Æ¤â¡¢ÆäËÆñ¤·¤¤ÅÀ¤Ï¤¢¤ê¤Þ¤»¤ó¤Ç¤·¤¿¡£ ¥½¡¼¥¹°ì¼°¤ò¥À¥¦¥ó¥í¡¼¥É¤·¤Æ¡¢P/ECEÍѤÎMakefile¤ò½ñ¤¤¤¿¤À¤±¤Ç¤¹¡£ ¥×¥í¥°¥é¥à½¤Àµ¤Ê¤É¤Î°Ü¿¢ºî¶È¤Ï¡¢°ìÀÚɬÍפ¢¤ê¤Þ¤»¤ó¤Ç¤·¤¿¡£ P/ECEÍÑzlib¥é¥¤¥Ö¥é¥ê¹½ÃÛÍѤÎMakefile¤Ï¤³¤Á¤é http://www.piece-me.org/archive/zlib-1.1.4-piece.mk ¾Ü¤·¤¯¤Ï¼¡²ó¤Ë¡£ ¡Ê³¤­¤Þ¤¹¡Ä¡Ë * Wed Jun 12 21:30:00 JST 2002 Naoyuki Sawa - S1C3320£¸(#2) ¡Ê¡ÄÁ°²ó¤«¤é¤Î³¤­¡Ë ¡ÖS1C33208¡×¤È¡ÖS1C33209¡×¤ÎÆÃħ¤ò¡¢¥Ç¡¼¥¿¥·¡¼¥È¤ÇÈæ³Ó¤·¤Æ¤ß¤Þ¤·¤¿¡£ ¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü ¡Ã¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£Ó£±£Ã£³£³£²£°£¸¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£Ó£±£Ã£³£³£²£°£¹¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã ¡Ü¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡Ü¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡Ü¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡Ü ¡Ã£Ã£Í£Ï£Ó¡¡£Ì£Ó£É¡¡£³£²¥Ó¥Ã¥ÈÊÂÎó½èÍý¡Ã£Ó£±£Ã£³£³£°£°£°¡Ê¡á£Å£°£Ã£³£³£°£°£°¡Ë£Ò£É£Ó£Ã¥³¥¢¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã¢«¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã ¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü ¡Ã¥á¥¤¥ó¥¯¥í¥Ã¥¯¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã£¶£°£Í£È£ú¡Ê£Í£á£ø¡¥¡¢³°Éô¥¯¥í¥Ã¥¯ÆþÎÏ¡¡£±£µ£Í£È£ú¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã¢«¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã ¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü ¡Ã¥µ¥Ö¥¯¥í¥Ã¥¯¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã£³£²¡¥£·£¶£¸£ë£È£ú¡Ê£Ô£ù£ð¡¥¡Ë¡¡¿å¾½È¯¿®¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã¢«¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã ¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü ¡ÃÌ¿Î᥻¥Ã¥È¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã£±£¶¥Ó¥Ã¥È¸ÇÄêĹ¡¢Ä¾¸òÀ­¤ÎÎɤ¤£±£°£µ¼ïÎà¤ÎÌ¿Îá¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã¢«¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã ¡Ã¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÃÀÑϱ黻̿Îá¡Ê£Í£Á£ÃÌ¿Îá¡¡£²¥µ¥¤¥¯¥ë¼Â¹Ô¡Ë¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã ¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü ¡ÃÆ⢣ңÁ£ÍÍÆÎÌ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã£¸¡¤£±£¹£²¥Ð¥¤¥È¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã¢«¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã ¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü ¡Ã¥¯¥í¥Ã¥¯¥¿¥¤¥Þ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã£±£ã£è¡¥¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã¢«¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã ¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü ¡Ã¥×¥í¥°¥é¥Þ¥Ö¥ë¥¿¥¤¥Þ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã£¸¥Ó¥Ã¥È¡ß£´£ã£è¡¥¡¢£±£¶¥Ó¥Ã¥È¡ß£¶£ã£è¡¥¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã£¸¥Ó¥Ã¥È¡ß£¶£ã£è¡¥¡¢£±£¶¥Ó¥Ã¥È¡ß£¶£ã£è¡¥¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã ¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü ¡Ã£Ð£×£Í¥¿¥¤¥Þ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã£±£¶¥Ó¥Ã¥È¥×¥í¥°¥é¥Þ¥Ö¥ë¥¿¥¤¥Þ¤Ë¤è¤ê¼Â¸½¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã¡Êµ­ºÜ̵¤·¡Ë¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã ¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü ¡Ã¥¦¥©¥Ã¥Á¥É¥Ã¥°¥¿¥¤¥Þ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã£±£¶¥Ó¥Ã¥È¥×¥í¥°¥é¥Þ¥Ö¥ë¥¿¥¤¥Þ¤Ë¤è¤ê¼Â¸½¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã¢«¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã ¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü ¡Ã¥·¥ê¥¢¥ë¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¡¡¡¡¡¡¡¡¡¡¡¡¡Ã£²£ã£è¡¥¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã£´£ã£è¡¥¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã ¡Ã¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã¥¯¥í¥Ã¥¯Æ±´ü¼°¡¦Ä´ÊâƱ´ü¼°¤òÁªÂò²Äǽ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã¥¯¥í¥Ã¥¯Æ±´ü¼°¡¦Ä´ÊâƱ´ü¼°¤òÁªÂò²Äǽ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã ¡Ã¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÃÀÖ³°Àþ¡Ê£É£ò£Ä£Á¡Ë¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤È¤·¤Æ¤â»ÈÍѲÄǽ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÃÀÖ³°Àþ¡Ê£É£ò£Ä£Á¡Ë¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤È¤·¤Æ¤â»ÈÍѲÄǽ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã ¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü ¡Ã£±£°¥Ó¥Ã¥È£Á¡¿£ÄÊÑ´¹´ï¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÃÃ༡Èæ³ÓÊý¼°¡¡ÆþÎÏ£¸£ã£è¡¥¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã¢«¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã ¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü ¡Ã¹â®£Ä£Í£Á¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã£´£ã£è¡¥¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã¢«¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã ¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü ¡Ã¥¤¥ó¥Æ¥ê¥¸¥§¥ó¥È£Ä£Í£Á¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã£±£²£¸£ã£è¡¥¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã¢«¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã ¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü ¡ÃÈÆÍÑÆþ½ÐÎϥݡ¼¥È¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÃÆþÎÏ£±£³¥Ó¥Ã¥È¡¢½ÐÎÏ£²£¹¥Ó¥Ã¥È¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã¢«¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã ¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü ¡Ã³ä¤ê¹þ¤ß¥³¥ó¥È¥í¡¼¥é¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã³°Éô³ä¹þ¤ß¡§£±£°¼ïÎà¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã¢«¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã ¡Ã¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÃÆâÉô³ä¹þ¤ß¡§£²£¹¼ïÎà¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã ¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü ¡Ã³°Éô¥Ð¥¹¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¡¡¡¡¡¡¡¡¡¡¡¡¡Ã¥¢¥É¥ì¥¹£²£´¥Ó¥Ã¥È¡¢¥Ç¡¼¥¿£±£¶¥Ó¥Ã¥È¡¢¥Á¥Ã¥×¥¤¥Í¡¼¥Ö¥ë£·ËÜ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã¢«¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã ¡Ã¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã£Ä£Ò£Á£Í¡¢¥Ð¡¼¥¹¥È£Ò£Ï£Íľ·ë²Äǽ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã ¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü ¡Ã½Ð²Ù·ÁÂÖ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã£Ñ£Æ£Ð£µ¡Ý£±£²£¸£ð£é£î¡¿£Ñ£Æ£Ð£±£µ¡Ý£±£²£¸£ð£é£î¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã¢«¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã ¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü ¡ÃÅŸ»ÅÅ°µ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÃÆâÉôÆ°ºîÅÅ°µ¡§£±¡¥£¸¡Á£³¡¥£¶£Ö¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã¢«¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã ¡Ã¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã£É¡¿£ÏÅÅ°µ¡¡¡§£±¡¥£¸¡Á£µ¡¥£µ£Ö¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã ¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü ¡Ã¾ÃÈñÅÅή¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã£È£Á£Ì£Ô»þ¡§£²£·¦Ì£Á¡Ê£³¡¥£³£Ö¡¢£³£²¡¥£·£¶£¸£ë£È£ú¡¡¥¯¥í¥Ã¥¯¥¿¥¤¥ÞÆ°ºî¡¡£Ô£ù£ð¡¥¡Ë¡Ã£Ó£Ì£Å£Å£Ð»þ¡§£±£°¦Ì£Á¡¡¡¡¡Ê£³¡¥£³£Ö¡¢£³£²¡¥£·£¶£¸£ë£È£ú¡¡¥¯¥í¥Ã¥¯¥¿¥¤¥ÞÆ°ºî¡¡£Ô£ù£ð¡¥¡Ë¡Ã ¡Ã¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã¡¡¡¡¡¡¡¡¡¡¡¡¡§£²¡¥£µ¦Ì£Á¡¡¡Ê£²¡¥£°£Ö¡¢£³£²¡¥£·£¶£¸£ë£È£ú¡¡¥¯¥í¥Ã¥¯¥¿¥¤¥ÞÆ°ºî¡¡£Ô£ù£ð¡¥¡Ë¡Ã ¡Ã¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÃÄ̾ïÆ°ºî»þ¡§£¶£µ£í£Á¡Ê£³¡¥£³£Ö¡¢£µ£°£Í£È£ú¡¡£Ô£ù£ð¡¥¡Ë¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÃÄ̾ïÆ°ºî»þ¡¡¡§£¶£µ£í£Á¡¡¡¡¡Ê£³¡¥£³£Ö¡¢£µ£°£Í£È£ú¡¡£Ô£ù£ð¡¥¡Ë¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã ¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü ¤´Í÷¤ÎÄ̤ê¤Û¤È¤ó¤ÉƱ¤¸¤Ç¤¹¤¬¡¢¤¤¤¯¤Ä¤«°ã¤Ã¤Æ¤¤¤ë¹àÌܤ⤢¤ê¤Þ¤¹¡£ ¤³¤ì¤é¤Î¹àÌܤ¬¡¢S1C33208¤«¤éS1C33209¤Ø¤ÎÊѹ¹ÅÀ¤Ê¤Î¤Ç¤·¤ç¤¦¤«¡© ¡¦PWM¥¿¥¤¥Þ ¡¡S1C33208¤Î¥Ç¡¼¥¿¥·¡¼¥È¤Ë¤Ïµ­ºÜ¤¬¤¢¤ë¤Î¤Ë¡¢S1C33209¤Î¥Ç¡¼¥¿¥·¡¼¥È¤Ë¤Ïµ­ºÜ¤¬¤¢¤ê¤Þ¤»¤ó¤Ç¤·¤¿¡£ ¡¡¤·¤«¤·¤³¤ì¤Ïñ¤Ë¡¢S1C33209¥Ç¡¼¥¿¡¼¥È¤Îµ­ºÜϳ¤ì¡Ê¤Þ¤¿¤Ïñ¤Ë¡ÈÆÃħ¡É¤«¤é³°¤·¤¿¤À¤±¡Ë¤À¤È»×¤¤¤Þ¤¹¡£ ¡¡¸½¤ËP/ECE¤Ï¡¢16¥Ó¥Ã¥È¥×¥í¥°¥é¥Þ¥Ö¥ë¥¿¥¤¥Þ¤ò»È¤Ã¤Æ¡¢PWMÊý¼°¤Î¥µ¥¦¥ó¥É½ÐÎϤò¹Ô¤Ã¤Æ¤¤¤Þ¤¹¡£ ¡¡¤È¤¤¤¦¤ï¤±¤Ç¡¢PWM¥¿¥¤¥Þ¤Ë´Ø¤·¤Æ¤Ï¡¢S1C33208¤ÈS1C33209¤ÏƱ¤¸¤È¹Í¤¨¤Æ¤¤¤¤¤È»×¤¤¤Þ¤¹¡£ ¡¦¾ÃÈñÅÅή ¡¡Ä̾ïÆ°ºî»þ¤Î¾ÃÈñÅÅή¤ÏƱ¤¸¤Ç¤¹¤¬¡¢¾ÊÅÅÎϥ⡼¥É¤Î¾ÃÈñÅÅή¤Îµ­ºÜ¤¬°Û¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£ ¡¡S1C33208¤ÏHALT»þ¡Ê¤Á¤ç¤Ã¤È¾ÊÅÅÎϤʥ⡼¥É¡Ë¡¢S1C33209¤ÏSLEEP»þ¡Ê¤¹¤´¤¯¾ÊÅÅÎϤʥ⡼¥É¡Ë¤ÎÃͤʤΤǡ¢Ã±½ã¤ËÈæ³Ó¤Ç¤­¤Þ¤»¤ó¡£ ¡¡S1C33209¤Î¥Ç¡¼¥¿¥·¡¼¥È¤Ë¤ÏÍÍ¡¹¤Ê¾ò·ï¤Ç¤ÎHALT»þ¤Î¾ÃÈñÅÅή¤âºÜ¤Ã¤Æ¤¤¤ë¤Î¤Ç¡¢Èæ³Ó¤Ï²Äǽ¤À¤È»×¤¦¤Î¤Ç¤¹¤¬¡¢Ãμ±ÉÔ­¤Ç¤è¤¯¤ï¤«¤ê¤Þ¤»¤ó¤Ç¤·¤¿¡£ ¡¡ËͤˤϤޤÀ¡¢¾ÃÈñÅÅή¤òµ¤¤Ë¤¹¤ë¤Û¤É¤Î¥Ï¡¼¥ÉÃ챤¬¤Ê¤¤¤Î¤Ç¡¢¤³¤ÎÏÃÂê¤Ï¤Þ¤¿¤¤¤º¤ì¶½Ì£¤¬½Ð¤¿¤È¤­¤Ë¼è¤ê¾å¤²¤ë¤³¤È¤Ë¤·¤Þ¤¹¡£ ¡¦¥×¥í¥°¥é¥Þ¥Ö¥ë¥¿¥¤¥Þ ¡¡8¥Ó¥Ã¥È¥¿¥¤¥Þ¤¬ÁýÀߤµ¤ì¡¢S1C33208¤Î4¥Á¥ã¥Í¥ë¤«¤é¡¢S1C33209¤Ç¤Ï6¥Á¥ã¥Í¥ë¤Ë¤Ê¤ê¤Þ¤·¤¿¡£ ¡¡¿·¤·¤¯Äɲ䵤줿¤Î¤Ï¡¢Ch.4¤ÈCh.5¤Ç¤¹¡£ ¡¡S1C33209¥Ç¡¼¥¿¥·¡¼¥È¤ÎI/O¥Ý¡¼¥È¥¢¥É¥ì¥¹É½¤ò¸«¤ë¤È¡¢Ch.0¡Á3¤ÎÀßÄêÍÑI/O¥Ý¡¼¥È¤Ïʤó¤Ç½¸¤Þ¤Ã¤Æ¤¤¤ë¤Î¤Ë¡¢ ¡¡Ch.4¡Á5ÀßÄêÍÑI/O¥Ý¡¼¥È¤À¤±¤¬Î¥¤ì¤¿¤È¤³¤í¤Ë¤¢¤Ã¤¿¤ê¤¹¤ë¤Î¤Ï¡¢¸å¤«¤éÄɲ䵤줿¤«¤é¤À¤Ã¤¿¤Î¤Ç¤¹¤Í¡£ ¡¡¤µ¤Æ¡¢¡ÖP/ECE¸¦µæ¼¼¡ÁS1C33ʬ¼¼ 8¥Ó¥Ã¥È¥×¥í¥°¥é¥Þ¥Ö¥ë¥¿¥¤¥Þ¡×¤Î²ó¡§ http://www.piece-me.org/piece-lab/s1c33/20020115.html ¡¡¤Ç¤â¼è¤ê¾å¤²¤Þ¤·¤¿¤è¤¦¤Ë¡¢Ch.4¡Á5¤Ï¡¢Ch.0¡Á3¤Ë³Ó¤Ù¤Æ¡¢¤Á¤ç¤Ã¤Èµ¡Ç½¤¬¸ÂÄꤵ¤ì¤Æ¤¤¤Þ¤¹¡£ ¡¡Ã¼»Ò¤Ø¤Î¥¯¥í¥Ã¥¯½ÐÎϤ䡢¥¿¥¤¥Þ³ä¤ê¹þ¤ß¤ÎȯÀ¸¸»¤È¤·¤ÆÍøÍѤǤ­¤Ê¤¤¡Ê¤Þ¤¿¤ÏÍøÍѤ·¤Å¤é¤¤¡Ë¤Î¤Ç¤¹¡£ ¡¡Ch.4¡Á5¤òÄɲä·¤¿ÌÜŪ¤Ï²¿¤À¤Ã¤¿¤Î¤Ç¤·¤ç¤¦¤«¡©¤½¤ì¤Ï¡Ä ¡¦¥·¥ê¥¢¥ë¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹ ¡¡¥·¥ê¥¢¥ë¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤¬ÁýÀߤµ¤ì¡¢S1C33208¤Î2¥Á¥ã¥Í¥ë¤«¤é¡¢S1C33209¤Ç¤Ï4¥Á¥ã¥Í¥ë¤ËÇÜÁý¤·¤Þ¤·¤¿¡£ ¡¡¤Ê¤ë¤Û¤É¡¢·×¬µ¡´ï¤ò¤Ä¤Ê¤¤¤À¤ê¤¹¤ë¾ì¹ç¡¢2¥Á¥ã¥Í¥ë¤Ç¤Ï¤Á¤ç¤Ã¤È¤³¤³¤í¤â¤È¤Ê¤¤¡£ ¡¡4¥Á¥ã¥Í¥ëÍߤ·¤¤¡¢¤È¤¤¤¦Í×˾¤¬¤¢¤Ã¤¿¤Î¤«¤âÃΤì¤Þ¤»¤ó¡£ ¡¡¿·¤·¤¯Äɲ䵤줿¤Î¤ÏCh.2¤ÈCh.3¤Ç¡¢´û¸¤ÎCh.0¡Á1¤ÈƱ¤¸µ¡Ç½¤òÈ÷¤¨¤Æ¤¤¤Þ¤¹¡£ ¡¡¥·¥ê¥¢¥ë¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤ò»È¤¦¤Ë¤Ï¡¢¤É¤³¤«¤é¤«¥¯¥í¥Ã¥¯¤ò¶¡µë¤·¤Ê¤±¤ì¤Ð¤¤¤±¤Þ¤»¤ó¡£ ¡¡ÆâÉô¥¯¥í¥Ã¥¯¤ò»È¤¦¾ì¹ç¡¢¥·¥ê¥¢¥ë¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹Ch.0¤Ï8¥Ó¥Ã¥È¥¿¥¤¥ÞCh.2¤«¤é¡£ ¡¡¥·¥ê¥¢¥ë¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹Ch.1¤Ï8¥Ó¥Ã¥È¥¿¥¤¥ÞCh.3¤«¤é¡¢¥¯¥í¥Ã¥¯¶¡µë¤òÆÀ¤Þ¤¹¡£ ¡¡8¥Ó¥Ã¥È¥¿¥¤¥ÞCh.0¤ÈCh.1¤Ï´û¤ËÍÑÅÓ¤¬·è¤Þ¤Ã¤Æ¤¤¤Þ¤¹¡ÊDRAM¥ê¥Õ¥ì¥Ã¥·¥å¡¢A/DÊÑ´¹³«»Ï¥È¥ê¥¬¡¢OSC3¤Îȯ¿®°ÂÄêÂÔ¤Á»þ´Ö¤Ê¤É¡Ë¤Î¤Ç¡¢ ¡¡8¥Ó¥Ã¥È¥¿¥¤¥ÞCh.0¡Á1¤ò»È¤Ã¤Æ¥·¥ê¥¢¥ë¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹Ch.2¡Á3¤Ë¥¯¥í¥Ã¥¯¤ò¶¡µë¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó¡£ ¡¡¤Þ¤¿¡¢16¥Ó¥Ã¥È¥¿¥¤¥Þ¤ÏÈÆÍÑŪ¤Ê¤Ä¤¯¤ê¤Ê¤Î¤Ç¡¢¥·¥ê¥¢¥ë¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ø¤Î¥¯¥í¥Ã¥¯¶¡µë¤Î¤è¤¦¤ÊÀìÍÑŪ¤ÊÍÑÅӤˤÏÉÔ¸þ¤­¤Î¤è¤¦¤Ç¤¹¡£ ¡¡¤½¤³¤Ç¡¢¥·¥ê¥¢¥ë¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹Ch.2¡Á3¤Ø¤Î¥¯¥í¥Ã¥¯¶¡µë¤Î¤¿¤á¤Ë¡¢8¥Ó¥Ã¥È¥¿¥¤¥Þ¤Ë¤âCh.4¡Á5¤¬Äɲ䵤줿¤Î¤À¤È»×¤¤¤Þ¤¹¡£ ¡¡¤³¤ÎÍÑÅÓ¤ËÆò½¤·¤Æ¤¤¤ë¤Î¤Ç¡¢Â¾¤Î´û¸¤Î8¥Ó¥Ã¥È¥¿¥¤¥ÞCh.0¡Á3¤è¤ê¤âµ¡Ç½¤¬¸ÂÄꤵ¤ì¤Æ¤¤¤ë¤Î¤Ç¤¹¤Í¡£ ·ëÏÀ¡£S1C33208¤«¤éS1C33209¤Ø¤ÎÊѹ¹ÅÀ¡§ ¡Ö¥·¥ê¥¢¥ë¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤¬¡¢£²¥Á¥ã¥Í¥ë¤«¤é£´¥Á¥ã¥Í¥ë¤ËÁý¤¨¤Þ¤·¤¿¡£¡× ¡ÊÁý¤¨¤¿¥Á¥ã¥Í¥ë¤Î¤¿¤á¤Ë¡¢£¸¥Ó¥Ã¥È¥¿¥¤¥Þ¤â£²¥Á¥ã¥Í¥ëÄɲ䵤ì¤Þ¤·¤¿¡£¡Ë * Tue Jun 11 21:00:00 JST 2002 Naoyuki Sawa - S1C3320£¸(#1) P/ECE¤ÎCPU¡ÖS1C33209¡×¤Î¼þÊÕ²óÏ©¤òľÀÜÁàºî¤¹¤ë¼Â¸³¥×¥í¥°¥é¥à¤òºîÀ®¤¹¤ë¤¿¤á¤Ë¡¢ I/O¥Ý¡¼¥È¥¢¥É¥ì¥¹ÄêµÁ¥Õ¥¡¥¤¥ë¡Öc33208.h¡×¤ò»È¤Ã¤Æ¤­¤Þ¤·¤¿¡£ ¤³¤ÎÄêµÁ¥Õ¥¡¥¤¥ë¡¢Ì¾Á°¤«¤é¤â¤ï¤«¤ë¤è¤¦¤Ë¡¢S1C33209ÍѤǤϤ¢¤ê¤Þ¤»¤ó¡£ Ʊ¤¸S1C33¥·¥ê¡¼¥º¤ÎCPU¤Ç¤¹¤¬¡¢S1C33209¤è¤ê¤âµì¤¤¥â¥Ç¥ë¡ÖS1C33208¡×ÍѤÎÄêµÁ¥Õ¥¡¥¤¥ë¤Ç¤¹¡£ c33208.h¤ÎÆâÍƤȡ¢S1C33209¤Î¥Ç¡¼¥¿¥·¡¼¥È¤ò¸«³Ó¤Ù¤¿¤È¤³¤í¡¢Î¾¼Ô¤ÎÆâÍƤÎÂçÉôʬ¤Ï¹ç¤Ã¤Æ¤¤¤Þ¤¹¡£ ¤·¤«¤·°ìÉô¡¢¥Ç¡¼¥¿¥·¡¼¥È¤Ë¤ÏºÜ¤Ã¤Æ¤¤¤ë¤Î¤Ë¡¢c33208.h¤Ë¤ÏÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤I/O¥Ý¡¼¥È¤â¤¢¤ê¤Þ¤¹¡£ S1C33209¤¬S1C33208¤Î¥Þ¥¤¥Ê¡¼¥¢¥Ã¥×¥°¥ì¡¼¥ÉÈǤǤ¢¤ë¤³¤È¤Ï¤¿¤Ö¤ó´Ö°ã¤¤¤Ê¤¤¤Î¤Ç¤¹¤¬¡¢ ¶ñÂÎŪ¤Ë¤É¤³¤¬ÊѤï¤Ã¤¿¤«¡©¤Ë´Ø¤¹¤ë»ñÎÁ¤¬¡¢¤³¤ì¤Þ¤Ç¸«¤Ä¤±¤é¤ì¤Þ¤»¤ó¤Ç¤·¤¿¡£ ¤È¤¤¤¦¤Î¤â¡¢ËܲÈEPSON¤Î¥Ç¡¼¥¿¥·¡¼¥ÈÃÖ¤­¾ì¡§ ¥È¥Ã¥×¥Ú¡¼¥¸ http://www.epsondevice.com/domcfg.nsf -> ¥É¥­¥å¥á¥ó¥È http://www.epsondevice.com/www/jp/doc.nsf -> 32-bit¥Þ¥¤¥¯¥í¥³¥ó¥Ô¥å¡¼¥¿ (S1C33 Family) http://www.epsondevice.com/www/PDFS/epdoc.nsf/selectView?OpenForm&32mcu (2002/06/11¸½ºß) ¤Ë¤Ï¡¢´û¤ËS1C33208¤Ë´Ø¤¹¤ë»ñÎÁ¤Ï¤Ê¤¯¡¢Web¤ò¸¡º÷¤·¤Æ¤ß¤Æ¤â¡¢¤Û¤È¤ó¤É»ñÎÁ¤¬¸«¤Ä¤«¤é¤Ê¤¤¤Î¤Ç¤¹¡£ c33208.h¤ÎÃæ¤Î¥³¥á¥ó¥È¤«¤é¿ä»¡¤¹¤ë¤Ë¡¢S1C33208¤¬Åо줷¤¿¤Î¤Ï¤¿¤Ö¤ó1999ǯº¢¤À¤Ã¤¿¤È»×¤ï¤ì¤Þ¤¹¡£ ¤Þ¤¿¡¢¤³¤Á¤é¤Î¥í¡¼¥É¥Þ¥Ã¥×¡§ http://www.epson-esec2002.com/prdct/MCU.html (2002/06/11¸½ºß) ¤Ë¤è¤ë¤È¡¢S1C33209¤ÎÅоì¤Ï2001ǯ¤Ç¤¹¡£¡ÊP/ECE¤ÎÅоì¤ÈƱ¤¸Ç¯¤Ç¤¹¤Í¡Ë S1C33208¤ÏÆóǯ´Ö¤â»È¤ï¤ì¤Æ¤¤¤¿¤Ï¤º¤Ê¤Î¤Ë¡¢¤³¤Î¾ðÊó¤Î¾¯¤Ê¤µ¤Ï¤¤¤Ã¤¿¤¤¡Ä S1C33209¤â¸¡º÷¤Ë¥Ò¥Ã¥È¤¹¤ë¤Î¤Ï¤Û¤È¤ó¤ÉP/ECE¤¬¤é¤ß¤Ê¤Î¤Ç¡¢¤â¤È¤â¤È¥Þ¥¤¥Ê¡¼¤Ê¥·¥ê¡¼¥º¤Ê¤Î¤«¤â¡© Ⱦ¤Ð¤¢¤­¤é¤á¤Æ¤¤¤¿¤Î¤Ç¤¹¤¬¡¢º£Æü¡¢S1C33208¤Î¥Ç¡¼¥¿¥·¡¼¥È¤ò¸«¤Ä¤±¤ë¤³¤È¤¬¤Ç¤­¤Þ¤·¤¿¡£ ¤³¤ì¤Þ¤Ç¡ÖS1C33208¡×¤Î̾Á°¤Ç¸¡º÷¤·¤Æ¤¤¤¿¤Î¤¬¡¢¤Ê¤«¤Ê¤«¸«¤Ä¤±¤é¤ì¤Ê¤«¤Ã¤¿¸¶°ø¤Ç¤·¤¿¡£ µì̾¾Î¤Î¡ÖE0C33208¡×¤Ç¸¡º÷¤¹¤ì¤Ð¤è¤«¤Ã¤¿¤Î¤Ç¤¹¤Í¡£ ¾ðÊ󤬾¯¤Ê¤¤¤³¤È¤ËÊѤï¤ê¤Ï¤¢¤ê¤Þ¤»¤ó¡ÊGoogle¸¡º÷¤Ç¤¿¤Ã¤¿2¥Ú¡¼¥¸¡Ë¤¬¡¢ÀèƬ¤ËPDF¤¬¥Ò¥Ã¥È¤·¤Þ¤·¤¿¡£ ¤È¤¤¤¦¤ï¤±¤Ç¡¢S1C33208¡Êµì̾¾ÎE0C33208¡Ë¤Î¥Ç¡¼¥¿¥·¡¼¥È¤Ï¤³¤Á¤é¡§ http://www.2k1.co.uk/products/epson/downloads/ds_33208.pdf (2002/06/11¸½ºß) ¤Ê¤¼¤³¤³¤À¤±¤Ë»Ä¤Ã¤Æ¤¤¤ë¤Î¤«ÉԻ׵ĤǤ¹¤¬¡¢¤È¤ê¤¢¤¨¤º»Ä¤Ã¤Æ¤¤¤ë¤¦¤Á¤ËÊá³Í¤·¤Æ¤ª¤­¤Þ¤·¤ç¤¦¡£ S1C33208¤ÈS1C33209¤Î¥Ç¡¼¥¿¥·¡¼¥È¤ò¸«³Ó¤Ù¤ë¤È¡¢¤ä¤Ï¤ê¼þÊÕ²óÏ©¤¬¤¤¤¯¤Ä¤«¶¯²½¤µ¤ì¤Æ¤¤¤ë¤è¤¦¤Ç¤¹¡£ Á°ÃÖ¤­¤¬Ä¹¤¹¤®¤¿¤¿¤á¡¢ËÜÂê¤ËÆþ¤Ã¤¿¤È¤³¤í¤Çº£Æü¤Ï¤ª¤·¤Þ¤¤¡£ ¡Ê³¤­¤Þ¤¹¡Ä¡Ë * Sat Jun 01 20:35:00 JST 2002 Naoyuki Sawa - °ìÉô½ñ¤­´¹¤¨¤ÏÉÔ²Ä ºÇ¶á¤Ë¤Ê¤Ã¤Æ¡¢¤ä¤Ã¤ÈpceFile·ÏAPI¤ò»È¤¤»Ï¤á¤Þ¤·¤¿¡£ º£²ó¤Ï¡¢pceFileWriteSct()¤ò»È¤Ã¤Æ¤¤¤Æµ¤ÉÕ¤¤¤¿¤³¤È¤Î¥á¥â¤Ç¤¹¡£ ¥»¥¯¥¿¤Î°ìÉô¤À¤±¤ò¡¢pceFileWriteSct()¤ò»È¤Ã¤Æ½ñ¤­´¹¤¨¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó¡£ Î㤨¤Ð¡¢¼¡¤Î¤è¤¦¤ÊÆâÍƤΥƥ­¥¹¥È¥Õ¥¡¥¤¥ë¡Öhello.txt¡×¤òP/ECE¤ËžÁ÷¤·¤Æ¤ª¤­¤Þ¤¹¡£ hello, world ¤³¤Î¥Õ¥¡¥¤¥ë¤Î°ìÉô¤ò¡¢pceFileWriteSct()¤ò»È¤Ã¤Æ½ñ¤­´¹¤¨¤è¤¦¤È¤·¤Æ¤ß¤Þ¤¹¡£ pceFileOpen(&fa, "hello.txt", FOMD_WR); pceFileWriteSct(&fa, "HELL!", 0, 5); ÀèƬ¤«¤é£µÊ¸»úʬ¤Ë½ñ¤­¹þ¤ß¤Þ¤¹¤Î¤Ç¡¢·ë²Ì¤Ï HELL!, world ¤È¤Ê¤ê¤½¤¦¤Ë¸«¤¨¤Þ¤¹¤¬¡¢¼ÂºÝ¤Ë¤Ï¤³¤¦¤Ê¤ê¤Þ¤¹¡£ HELL! ¡¦¡¦¡¦¡¦ ¡ÖHELL!¡×¤è¤ê¤â¸å¤í¤Ï¡¢¥´¥ß¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¤¤Þ¤¹¡£ ¤Ê¤¼¤³¤¦¤Ê¤ë¤Î¤Ç¤·¤ç¤¦¤«¡© pceFileWriteSct()¤ÎÆâÉôÆ°ºî¤Ï¡¢¼¡¤Î¤è¤¦¤Ê¤â¤Î¤Ç¤¹¡£ ¡¦»ØÄꤵ¤ì¤¿¥»¥¯¥¿¤ò¡¢¤¤¤Ã¤¿¤ó¤¼¤ó¤Ö¾Ãµî¤¹¤ë¡£ ¡¦»ØÄꤵ¤ì¤¿Ä¹¤µ¤Îʬ¤À¤±¡¢¥Ç¡¼¥¿¤ò½ñ¤­¹þ¤à¡£ ½¾¤Ã¤Æ¡¢»ØÄꤵ¤ì¤¿¥»¥¯¥¿¤Î¤¦¤Á¡¢½ñ¤­¹þ¤Þ¤Ê¤«¤Ã¤¿Éôʬ¤Î´û¸¤Î¥Ç¡¼¥¿¤Ï¾Ãµî¤µ¤ì¤Æ¤·¤Þ¤¤¤Þ¤¹¡£ ¾Ãµî¤µ¤ì¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¤Ë¤Ï¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥×¥í¥°¥é¥à¦¤ÇÂкö¤·¤Ê¤±¤ì¤Ð¤¤¤±¤Ê¤¤¤è¤¦¤Ç¤¹¡£ ¡¦Êѹ¹¤·¤¿¤¤¥Ç¡¼¥¿¤ò´Þ¤à¥»¥¯¥¿Á´ÂÎ(4096¥Ð¥¤¥È)¤ò¡¢RAM¤ËÆɤ߹þ¤à¡£(pceFileReadSct»ÈÍÑ) ¡¦RAM¤ËÆɤ߹þ¤ó¤À¥Ç¡¼¥¿¤ò¡¢É¬Íפ˱þ¤¸¤ÆÊѹ¹¤¹¤ë¡£ ¡¦Êѹ¹¤¬½ª¤ï¤Ã¤¿¤é¡¢¥»¥¯¥¿Á´ÂÎ(4096¥Ð¥¤¥È)¤ò¥Õ¥¡¥¤¥ë¤Ë½ñ¤­Ì᤹¡£(pceFileWriteSct»ÈÍÑ) * Fri May 31 21:00:00 JST 2002 Naoyuki Sawa - make ¥á¥â P/ECE³«È¯´Ä¶­¤ËÆþ¤Ã¤Æ¤ë¡Ömake¡×¥æ¡¼¥Æ¥£¥ê¥Æ¥£¤Ï¡¢°ìÈÌŪ¤ÊUnix¾å¤Îmake¤ä¡¢VisualC++¤ÎnmakeÅù¤Ë³Ó¤Ù¤Æ¡¢ °ìÉô¡¢µ¡Ç½À©¸Â¤µ¤ì¤¿¤â¤Î¤È¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£ µ¡Ç½À©¸Â¤µ¤ì¤Æ¤¤¤ëÅÀ¤Ë¤Ä¤­¤Þ¤·¤Æ¤Ï¡¢Æ±¤¸¤¯P/ECE³«È¯´Ä¶­¤ËÆþ¤Ã¤Æ¤ë»ñÎÁ¤Î ¡ØS1C33¥Õ¥¡¥ß¥êC¥³¥ó¥Ñ¥¤¥é¥Ñ¥Ã¥±¡¼¥¸¥Þ¥Ë¥å¥¢¥ë¡Ù(C:\usr\PIECE\docs\datasheet\EPSON\S5U1C33000C_J.pdf) ¤Î¡Ö17.1 make (463¥Ú¡¼¥¸¡Á)¡×¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ Ψľ¤Ë¸À¤Ã¤Æ¡¢P/ECE³«È¯´Ä¶­¤Îmake¤Ï¡¢¤«¤Ê¤êµ¡Ç½À©¸Â¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ ¤Ç¤âËͤξì¹ç¡¢¸µ¡¹¡¢GNU make¤Ê¤É¤Î°ìÈÌŪ¤Êmake¤Ï¡¢µ¡Ç½Ë­ÉÙ¤¹¤®¤ÆÁ´Á³»È¤¤¤³¤Ê¤»¤Æ¤¤¤Þ¤»¤ó¤Ç¤·¤¿¡£ ²¿Å٥ޥ˥奢¥ë¤òÆɤó¤Ç¤â¡¢$*¤È$<¤È$@¤Î°ã¤¤¤¬³Ð¤¨¤é¤ì¤Ê¤«¤Ã¤¿¤ê¡Ä¡ÊºÐ¤«¤ÊTT¡Ë P/ECE³«È¯´Ä¶­¤Îmake¤°¤é¤¤¤¬¡¢ËͤˤϤÁ¤ç¤¦¤É¤¤¤¤¤«¤âÃΤì¤Þ¤»¤ó¡£ ¤µ¤Æ¡¢P/ECE³«È¯´Ä¶­¤Îmake¤ò»È¤Ã¤Æ¤¤¤Æ¡¢¤Á¤ç¤Ã¤Èµ¤ÉÕ¤¤¤¿¤³¤È¤ò¥á¥â¤·¤Æ¤ª¤­¤Þ¤¹¡£ ------------------------------------------------------------- ¥³¥á¥ó¥È¤Î³«»Ï¤ò¼¨¤¹¡Ö#¡×¤Ï¡¢¹Ô¤ÎÀèƬ¤Ë½ñ¤«¤Ê¤±¤ì¤Ð¤¤¤±¤Þ¤»¤ó ------------------------------------------------------------- Î㤨¤Ð¡¢Unix¾å¤Îmake¤Ê¤é¤Ð¡¢¼¡¤Î¤è¤¦¤Ê¥³¥á¥ó¥È¹Ô¤ò½ñ¤¯¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ all: # *** ¤³¤Î¹Ô¤Ï¥³¥á¥ó¥È *** echo "OK!" ¤·¤«¤·P/ECE¤Îmake¤Ç¤Ï¡¢¡Ö# *** ¤³¤Î¹Ô¤Ï¥³¥á¥ó¥È ***¡×¤ò¥³¥Þ¥ó¥É¤È¤·¤Æ¼Â¹Ô¤·¤è¤¦¤È¤·¤Æ¡¢¥¨¥é¡¼¤Ë¤Ê¤ê¤Þ¤¹¡£ VisualC++¤Înmake¤Ç¤â¡¢P/ECE¤Îmake¤Î¾ì¹ç¤ÈƱ¤¸¤è¤¦¤Ë¡¢¥¨¥é¡¼¤Ë¤Ê¤ê¤Þ¤¹¡£ ¤Ç¤Ï¡¢Unix¾å¤Îmake¤Ç¤Ï¡¢¤Ê¤¼¥¨¥é¡¼¤Ë¤Ê¤é¤Ê¤«¤Ã¤¿¤Î¤Ç¤·¤ç¤¦¤«¡© Unix¤Ç¤Ï¡¢¡Ö#¡×¤³¤Îʸ»ú¤¬¥á¥¤¥¯¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ë¥³¥á¥ó¥È³«»Ïʸ»ú¤Ç¤¢¤ë¤ÈƱ»þ¤Ë¡¢ ¥·¥§¥ë¤ËÂФ¹¤ë¥³¥á¥ó¥È³«»Ïʸ»ú¤Ç¤â¤¢¤ë¤«¤é¤Ç¤¹¡£ Unix¾å¤Îmake¤â¡¢¡Ö# *** ¤³¤Î¹Ô¤Ï¥³¥á¥ó¥È ***¡×¤ò¥³¥Þ¥ó¥É¤È¤·¤Æ¼Â¹Ô¤·¤è¤¦¤È¤·¤Þ¤¹¤¬¡¢ ¥³¥Þ¥ó¥É¤Î¼Â¹Ô¤òÃç²ð¤¹¤ë¥·¥§¥ë¤¬¡¢¡Ö#¡×¤³¤Îʸ»ú°Ê¹ß¤ò¥³¥á¥ó¥È¤È¸«¤Ê¤·¤Æ¼Î¤Æ¤Æ¤¯¤ì¤ë¤è¤¦¤Ç¤¹¡£ ¤Ä¤Þ¤ê¡¢Unix¾å¤Îmake¤Ç¥¨¥é¡¼¤Ê¤é¤Ê¤«¤Ã¤¿¤Î¤Ï¡¢¤¿¤Þ¤¿¤Þ¡¢¤È¸À¤¨¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡£ ¡Ê¡Ö#¡×¤¬¹Ô¤ÎÀèƬ¤Ë¤Ê¤±¤ì¤Ð¤¤¤±¤Ê¤¤¤Ã¤Æ¡¢P/ECE¤Îmake¤Ç¥¨¥é¡¼¤ËÁø¶ø¤¹¤ë¤Þ¤ÇÃΤê¤Þ¤»¤ó¤Ç¤·¤¿...(^^;¡Ë ¾å¤ÎÎã¤òÀµ¤·¤¯½ñ¤­Ä¾¤¹¤È¡¢¼¡¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£ all: # *** ¤³¤Î¹Ô¤Ï¥³¥á¥ó¥È *** echo "OK!" ¤Ê¤ó¤È¤Ê¤¯¸«¤Å¤é¤¤¤Ç¤¹¤¬¡¢»ÅÊý¤¬¤¢¤ê¤Þ¤»¤ó¡£ ¤¢¤ë¤¤¤Ï¼¡¤Î¤è¤¦¤Ê¼êÃʤǡ¢¹Ô¤ÎÅÓÃ椫¤é¥³¥á¥ó¥È¤ò»Ï¤á¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¤¬¡¢¤³¤³¤Þ¤Ç¤ä¤ëɬÍפϤʤµ¤½¤¦¡£ all: cmd /c rem *** ¤³¤Î¹Ô¤Ï¥³¥á¥ó¥È *** echo "OK!" ¤Ê¤ª¡¢°Í¸´Ø·¸¹Ô¤Ë´Ø¤·¤Æ¤Ï¡¢¹Ô¤ÎÅÓÃ椫¤é¡Ö#¡×¤Ç¥³¥á¥ó¥È¤ò»Ï¤á¤Æ¤âÂç¾æÉפǤ¹¡£ ¼¡¤ÎÎã¤Ï¡¢P/ECE¤Îmake¡¢nmake¡¢Unix¾å¤Îmake¤Î¤¤¤º¤ì¤Ç¤â¡¢Àµ¤·¤¯Æ°ºî¤·¤Þ¤¹¡£ all: # *** ¤³¤ÎÉôʬ¤Ï¥³¥á¥ó¥È *** echo "OK!" ---------------------------------------------------------------------- Ê̤Υե©¥ë¥À¤Ë¤¢¤ë¥á¥¤¥¯¥Õ¥¡¥¤¥ë¤ò¼Â¹Ô¤¹¤ë¤Ë¤Ï¡¢-C¥ª¥×¥·¥ç¥ó¤ò»È¤¤¤Þ¤¹ ---------------------------------------------------------------------- Unix¾å¤Îmake¤Ê¤é¡¢¼¡¤Î¤è¤¦¤Ë¤¹¤ë¤È¤³¤í¡¢ cd lib; make all P/ECE¤Îmake¤Ç¤Ï¥¨¥é¡¼¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¤¤Þ¤¹¡£ Windows¤Î¥·¥§¥ë¤Ï¡¢¡Ö;¡×¤ò»È¤Ã¤¿¥Þ¥ë¥Á¥¹¥Æ¡¼¥È¥á¥ó¥È¤ËÂбþ¤·¤Æ¤¤¤Ê¤¤¤¿¤á¤Ç¤¹¡£ P/ECE¤Îmake¤Ç¡¢¾å¤ÎÎã¤ÈƱ¤¸¤³¤È¤ò¹Ô¤¦¤Ë¤Ï¡¢ make -Clib all ¤È½ñ¤­¤Þ¤¹¡£ -C¥ª¥×¥·¥ç¥ó¤ò»È¤¦¤È¡¢»ØÄꤵ¤ì¤¿¥Õ¥©¥ë¥À¤Ø°ÜÆ°¤·¤Æ¤«¤é¥á¥¤¥¯¥Õ¥¡¥¤¥ë¤òÆɤ߹þ¤ß¤Þ¤¹¡£ -C¥ª¥×¥·¥ç¥ó¤Ï¡¢Unix¾å¤Îmake¤Ë¤Ï¤Ê¤¤¡¢P/ECE³«È¯´Ä¶­¤Îmake¤ËÆÃÍ­¤Î¥ª¥×¥·¥ç¥ó¤ß¤¿¤¤¤Ç¤¹¡£ * Fri May 26 00:00:00 JST 2002 Naoyuki Sawa - ´Ø¿ô¥¢¥É¥ì¥¹¤ò¥·¥ó¥Ü¥ëÄêµÁ¤·¤Æ¸Æ¤Ó½Ð¤¹ ¡Ö´Ø¿ô¥Ý¥¤¥ó¥¿·¿¤Ë¥­¥ã¥¹¥È¤·¤Æ¤Ï¤¤¤±¤Ê¤¤¡×¤Î²ó¡Ê°Ê²¼¡¢Á°²ó¤Èά¤·¤Þ¤¹¡Ë¤Î³¤­¤Ç¤¹¡£ ÀäÂÐ¥¢¥É¥ì¥¹call¤ò¹Ô¤¦¤Ë¤Ï¡¢¥¤¥ó¥é¥¤¥ó¥¢¥»¥ó¥Ö¥é¤ò»È¤Ã¤Æ¡¢¼¡¤Î¤è¤¦¤Ë¡§ asm("xld.w %r1, 0x00c034aa"); asm("call %r1"); ½ñ¤«¤Ê¤±¤ì¤Ð¤¤¤±¤Ê¤¤¡¢¤È¤¤¤¦¤Î¤¬¡¢Á°²ó¤Î·ëÏÀ¤Ç¤·¤¿¡£ ¤Á¤Ê¤ß¤Ë0x00c034aa¤Ï¡¢BIOS 1.18¤Ë¤ª¤±¤ë¡¢pceLCDTrans()¤Î¥¢¥É¥ì¥¹¤Ç¤¹¡£ ´Ø¿ô¥¢¥É¥ì¥¹¤òľÀÜ¥×¥í¥°¥é¥àÃæ¤Ëµ­½Ò¤¹¤ë¤È¡¢¥×¥í¥°¥é¥à¤¬ÆɤߤŤ餯¤Ê¤ê¤Þ¤¹¡£ ¾å¤Î¥³¡¼¥É¤Ï¡¢¼¡¤Î¤è¤¦¤Ë½ñ¤±¤ì¤Ð¡¢Æɤߤ䤹¤¯¤Ê¤ë¤Ç¤·¤ç¤¦¡£ asm("xld.w %r1, pceLCDTrans"); asm("call %r1"); ¤½¤³¤Ç¤Þ¤º¤Ï¡¢¥«¡¼¥Í¥ëÆâ¤Î´Ø¿ô¥¢¥É¥ì¥¹°ìÍ÷¤òÄêµÁ¤·¤¿¡¢.h¥Õ¥¡¥¤¥ë¤òÍÑ°Õ¤·¤Þ¤¹¡£ ¥«¡¼¥Í¥ëÆâ¤Î´Ø¿ô¥¢¥É¥ì¥¹¤Ï¡¢¡Öc:\usr\piece\sysdev\pcekn\pcekn.sym¡×¤«¤éÆÀ¤é¤ì¤Þ¤¹¤Î¤Ç¡¢ ¥¹¥¯¥ê¥×¥È¤ò»È¤Ã¤Æ.h¥Õ¥¡¥¤¥ë¤ËÊÑ´¹¤·¤Þ¤·¤ç¤¦¡£ pcekn.sym¤ò.h¥Õ¥¡¥¤¥ë¤ËÊÑ´¹¤¹¤ë¥¹¥¯¥ê¥×¥È¤Ï¤³¤Á¤é http://www.piece-me.org/archive/pcekn_sym.sed ¡Ê¢¨Á°²ó¤Î¥µ¥ó¥×¥ë¥×¥í¥°¥é¥à¤Î¤ª¤Þ¤±¥Õ¥©¥ë¥À¤ËÆþ¤Ã¤Æ¤¿¤Î¤È¡¢Æ±¤¸¤â¤Î¤Ç¤¹¡Ë »È¤¤Êý¤Ï¡¢¼¡¤ÎÄ̤ê¤Ç¤¹¡§ sed -nf pcekn_sym.sed c:\usr\piece\sysdev\pcekn\pcekn.sym > pcekn_sym.h ¡Ê¢¨P/ECE³«È¯´Ä¶­¤ò¡Öc:\usr\piece¡×°Ê³°¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤·¤¿¾ì¹ç¤Ï¡¢Å¬µ¹Êѹ¹¡Ë ¤³¤ì¤Ç¡¢¥«¡¼¥Í¥ëÆâ¤Î´Ø¿ô¥¢¥É¥ì¥¹°ìÍ÷¤òÄêµÁ¤·¤¿¡¢pcekn_sym.h¥Õ¥¡¥¤¥ë¤¬ºîÀ®¤µ¤ì¤Þ¤¹¡£ °Ê²¼¤Ë¡¢pcekn_sym.h¤Î°ìÉô¤ò¼¨¤·¤Þ¤¹¡§ #define pcekn_BootEntry00 0x00c02004 #define pcekn_BootEntry 0x00c02078 #define pcekn_pceGUID 0x00c02048 #define pcekn_InitVector 0x00c02208 #define pcekn_pceVectorSetTrap 0x00c021aa #define pcekn_pceVectorSetKs 0x00c021d2 #define pcekn_UnusedTrapVector 0x00c021fa #define pcekn_UnusedKsVector 0x00c021fe ¥·¥ó¥Ü¥ë̾¤ÎÀèƬ¤Ë¡Öpcekn_¡×¤È¤¤¤¦¥×¥ì¥Õ¥£¥¯¥¹¤òÉÕ¤±¤ÆÄêµÁ¤¹¤ë¤³¤È¤Ë¤·¤Þ¤·¤¿¡£ ¤³¤Î¤è¤¦¤Ë¤·¤¿Íýͳ¤Ï¡¢¥·¥ó¥Ü¥ë̾¤ò¤½¤Î¤Þ¤Þ»È¤¦¤È¡¢¸ø³«¤µ¤ì¤Æ¤¤¤ëAPI¤Î̾Á°¤È ¤Ö¤Ä¤«¤Ã¤Æ¤·¤Þ¤¦¤³¤È¤¬¤¢¤ë¤«¤é¤Ç¤¹¡£¡ÊpceVectorSetTrap¤äpceVectorSetKs¤¬¤½¤¦¤Ç¤¹¡Ë ¤µ¤Æ¡¢pcekn_sym.h¤ò»È¤Ã¤Æ¡¢¼¡¤Î¤è¤¦¤Ë½ñ¤¯¤³¤È¤¬½ÐÍè¤ë¤Ç¤·¤ç¤¦¤«¡§ #include "pcekn_sym.h" ¡Êά¡Ë asm("xld.w %r1, pcekn_pceLCDTrans"); asm("call %r1"); ¼Â¤Ï¡¢¤³¤Î¤è¤¦¤Ë½ñ¤¯¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó¡£ ¡Öpcekn_pceLCDTrans¡×¤È¤¤¤¦¥·¥ó¥Ü¥ë¤Ï¡¢C¥×¥ê¥×¥í¥»¥Ã¥µ¤Ë¤è¤Ã¤ÆŸ³«¤µ¤ì¤ë¤Î¤Ç¤¹¤¬¡¢ asm("¡Á")ʸ¤ÎÃæ¤Ïñ¤Ê¤ëʸ»úÎó¤È¸«¤Ê¤µ¤ì¤ë¤è¤¦¤Ç¡¢Å¸³«¤ÎÂоݳ°¤À¤«¤é¤Ç¤¹¡£ pcekn_pceLCDTrans¤Ï¡¢C¥×¥ê¥×¥í¥»¥Ã¥µ¤ÎÃʳ¬¤ÇŸ³«¤µ¤ì¤Ê¤±¤ì¤Ð¤¤¤±¤Þ¤»¤ó¡£ ¤½¤³¤Ç¡¢¼¡¤Î¤è¤¦¤Ê´Ø¿ô¤òÍÑ°Õ¤·¤Þ¤¹¡£ int call(int addr) { asm("call %r12"); } S1C33¤Î»ÅÍͤǤϡ¢´Ø¿ô¤Ø¤Î°ú¿ô¤Ï¡¢%r12,%r13,%r14,%r15,¤ª¤è¤Ó¥¹¥¿¥Ã¥¯¤ËÅϤ¹¤³¤È¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£ °ú¿ôaddr¤Ï´û¤Ë%r12¥ì¥¸¥¹¥¿¤ËÆþ¤Ã¤Æ¤¤¤ë¤Î¤Ç¡¢¤½¤Î¤Þ¤Þ¡Öcall %r12¡×¤È¤¹¤ì¤Ð¤¤¤¤¤Î¤Ç¤¹¡£ ¤Þ¤¿¡¢S1C33¤Î»ÅÍͤǤϡ¢Ìá¤êÃͤ¬¤¢¤ë¾ì¹ç¡¢%r10,¤ª¤è¤Ó%r11¥ì¥¸¥¹¥¿¤ËÊÖ¤¹¤³¤È¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£ ¡Öcall %r12¡×¤Î¸Æ¤Ó½Ð¤·À褫¤é¤ÎÌá¤êÃͤϡ¢¤½¤Î¤Þ¤Þcall()´Ø¿ô¤Î¸Æ¤Ó½Ð¤·¸µ¤ØÊÖ¤µ¤ì¤ë¤Î¤Ç¤¹¡£ {{¤Á¤ç¤Ã¤È´ó¤êÆ»¡¢C¸À¸ì¤ÎÏà call()´Ø¿ô¤ÎÌá¤êÃͤϡ¢¾åµ­¤Î¤è¤¦¤ÊÆ°¤­¤Ë¤è¤Ã¤Æ¡¢Ä¾ÀÜ%r10¥ì¥¸¥¹¥¿¤Ë³ÊǼ¤µ¤ì¤ë¤¿¤á¡¢ int¤òÊÖ¤¹´Ø¿ô¤Ç¤¢¤ë¤Ë¤â¤«¤«¤ï¤é¤º¡¢returnÌ¿Î᤬¤¢¤ê¤Þ¤»¤ó¡£ C¸À¸ì¤Î¥×¥í¥°¥é¥à¤È¤·¤Æ¤Ï´Ö°ã¤Ã¤Æ¤¤¤ë¤è¤¦¤Ë¸«¤¨¡¢¥³¥ó¥Ñ¥¤¥é¤¬·Ù¹ð¤«¥¨¥é¡¼¤ò½Ð¤·¤½¤¦¤Ê¤â¤Î¤Ç¤¹¤¬¡¢ ¼ÂºÝ¤Ë¤Ï¡¢¥³¥ó¥Ñ¥¤¥é¤Ï·Ù¹ð¤â¥¨¥é¡¼¤â½Ð¤·¤Þ¤»¤ó¡£ ¤³¤Î¾ì¹ç¤Ï¡¢·Ù¹ð¤â¥¨¥é¡¼¤â½Ð¤Ê¤¯¤Æ¤¦¤ì¤·¤¤¤Î¤Ç¤¹¤¬¡¢¤Ê¤¼½Ð¤Ê¤«¤Ã¤¿¤Î¤Ç¤·¤ç¤¦¤«¡© ¡Ö¥×¥í¥°¥é¥ß¥ó¥°¸À¸ì£ÃÂ裲ÈǡפòÆɤßľ¤·¤Æ¤ß¤¿¤È¤³¤í¡¢¤É¤¦¤ä¤é¤³¤ì¤Ï¡¢C¸À¸ì¤È¤·¤ÆÀµ¤·¤¤¤è¤¦¤Ç¤¹¡£ ¡ØÃͤòÊÖ¤¹´Ø¿ô¤Ë¡Öreturn ¼°¡×¤¬¤Ê¤«¤Ã¤¿¤ê¡¢Ã±¤Ê¤ë¡Öreturn¡×¤ÇÈ´¤±¤¿¤ê¤¹¤ë¤Î¤Ï¡¢Ê¸Ë¡Åª¤Ë¤ÏÀµ¤·¤¤¡Ù ¤È¤¤¤¦¤³¤È¤¬¤ï¤«¤ê¤Þ¤·¤¿¡£¡Ê1.7¡Ö´Ø¿ô¡×¤Î¡¢31¡Á32¥Ú¡¼¥¸¤¢¤¿¤ê¤Ç¤¹¡Ë Î㤨¤Ð¼¡¤Î¤è¤¦¤Ê´Ø¿ô¤Ï¡¢¤¤¤º¤ì¤âC¸À¸ì¤Îʸˡ¤È¤·¤Æ¤ÏÀµ¤·¤¤¤Î¤Ç¤¹¡£ int sum(int a, int b) { } /* ¥´¥ß¤òÊÖ¤¹ */ int sum(int a, int b) { return; } /* ¥´¥ß¤òÊÖ¤¹ */ int sum(int a, int b) { return a + b; } /* Àµ¤·¤¤·ë²Ì¤òÊÖ¤¹ */ ¤¦¡Á¤à¡¢¤³¤ì¤ÏÃΤê¤Þ¤»¤ó¤Ç¤·¤¿¡£¸È©¤Ê¥³¡¼¥Ç¥£¥ó¥°¤Î¼êÃʤȤ·¤Æ¡¢»È¤¨¤½¤¦¤À¡Ä(^^; ¤Á¤Ê¤ß¤ËC++¸À¸ì¤Ç¤Ï¡¢Ê¸Ë¡¤Î»ÅÍͤ¬¸·¤·¤¯¤Ê¤Ã¤Æ¤¤¤ë¤Î¤Ç¡¢¥¨¥é¡¼¤Ë¤Ê¤ê¤Þ¤¹¡£ }}´ó¤êÆ»½ªÎ» call()´Ø¿ô¤òÍøÍѤ·¤Æ¡¢pceLCDTrans()¤ò¸Æ¤Ó½Ð¤¹¤Ë¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¤·¤Þ¤¹¡£ call(pcekn_pceLCDTrans); ºÇŬ²½¥ª¥×¥·¥ç¥ó¤ä¡¢¤½¤Î¾¤Î¥³¥ó¥Ñ¥¤¥ë¥ª¥×¥·¥ç¥ó¤òÉÕ¤±¤¿¤ê³°¤·¤¿¤ê¤·¤Æ»î¤·¤Æ¤ß¤¿¤È¤³¤í¡¢ ¤É¤Î¾ì¹ç¤Ë¤â¡¢Àµ¤·¤¯Æ°¤¯¤è¤¦¤Ç¤¹¡£ º£²ó¤Î¥µ¥ó¥×¥ë¥×¥í¥°¥é¥à¤Ï¤³¤Á¤é http://www.piece-me.org/archive/direct2-20020526.zip * Mon May 20 00:00:00 JST 2002 Naoyuki Sawa - ¥Õ¥¡¥¤¥ë¤«¤é°ìʸ»ú¤Å¤ÄÆɤ߹þ¤à P/ECE¤Ë¤Ï¡¢¥Õ¥¡¥¤¥ë¤«¤é¥Ç¡¼¥¿¤òÆɤ߹þ¤àAPI¡ÖpceFileReadSct()¡×¤¬¤¢¤ê¤Þ¤¹¡£ ¤³¤ÎAPI¤Î·çÅÀ¤È¤·¤Æ¡¢ ¥Õ¥¡¥¤¥ë¤Î£´£Ë£Âñ°Ì¤Î°ÌÃÖ¤«¤é¤·¤«Æɤ߹þ¤ß³«»Ï¤Ç¤­¤Ê¤¤ ¤È¤¤¤¦ÅÀ¤¬µó¤²¤é¤ì¤Þ¤¹¡£Î㤨¤Ð¡¢ ¡Ö¥Õ¥¡¥¤¥ë¤ÎÀèƬ¤«¤é8191(=8KB-1)¥Ð¥¤¥ÈÌܤΥǡ¼¥¿¤ò1¥Ð¥¤¥È¤À¤±»È¤¤¤¿¤¤¡×¾ì¹ç¡¢ ¤¤¤Ã¤¿¤ó¡¢¥Ð¥Ã¥Õ¥¡¤Ë4096¥Ð¥¤¥ÈÌÜ¡Á8191¥Ð¥¤¥ÈÌܤΥǡ¼¥¿¤òÆɤ߹þ¤ó¤Ç¡¢ ¥Ð¥Ã¥Õ¥¡¤ÎÃæ¤Î4095¥Ð¥¤¥ÈÌܤò¼è¤ê½Ð¤¹¡¢¤Ê¤ó¤Æ¤³¤È¤ò¤·¤Ê¤±¤ì¤Ð¤¤¤±¤Þ¤»¤ó¡£ pceFileReadSct(&fa, buffer, 8191 / 4096, 4096); data = buffer[4095]; »þ´ÖŪ¤Ë¤â(1¥Ð¥¤¥È»È¤¤¤¿¤¤¤À¤±¤Ê¤Î¤Ë¡¢4KB¤ÎžÁ÷¤ò¹Ô¤Ã¤Æ¤¤¤Þ¤¹)¡¢ ¶õ´ÖŪ¤Ë¤â(1¥Ð¥¤¥È»È¤¤¤¿¤¤¤À¤±¤Ê¤Î¤Ë¡¢4KB¤Î¥Ð¥Ã¥Õ¥¡¤¬É¬ÍפǤ¹)¡¢Èó¾ï¤Ë¥à¥À¤Ç¤¹¡£ ¤½¤³¤Ç¡¢pceFileReadSct()¤Ë¤Ï¡¢¤³¤Î·çÅÀ¤òÄ¢¾Ã¤·¤Ë¤¹¤ë¡¢ÁÇÀ²¤é¤·¤¤µ¡Ç½¤¬È÷¤ï¤Ã¤Æ¤¤¤Þ¤¹¡£ Æɤ߹þ¤à¥Ð¥Ã¥Õ¥¡¤Î¥¢¥É¥ì¥¹¤ËNULL¤ò»ØÄꤹ¤ë¤È¡¢¥Õ¥é¥Ã¥·¥å¥á¥â¥ê¾å¤Ç¤Î¥»¥¯¥¿¥¢¥É¥ì¥¹¤ò ľÀÜ¡¢ÆÀ¤ë¤³¤È¤¬½ÐÍè¤ë¤Î¤Ç¤¹¡£¸å¤Ï¡¢¥Õ¥é¥Ã¥·¥å¥á¥â¥ê¾å¤Î¥Ç¡¼¥¿¤ËľÀÜ¥¢¥¯¥»¥¹¤¹¤ì¤Ð£Ï£Ë¡£ ¤³¤Îµ¡Ç½¤òÍøÍѤ·¤Æ¡¢¥Õ¥¡¥¤¥ë¤«¤é°ìʸ»ú¤Å¤ÄÆɤ߹þ¤à¥µ¥ó¥×¥ë¥×¥í¥°¥é¥à¤òºî¤Ã¤Æ¤ß¤Þ¤·¤¿¡£ http://www.piece-me.org/archive/read-20020519.zip ¥Õ¥é¥Ã¥·¥å¥á¥â¥ê¾å¤Î¥Ç¡¼¥¿¤ËľÀÜ¥¢¥¯¥»¥¹¤Ç¤­¤ë¤³¤Îµ¡Ç½¡¢¤¹¤´¤¯µ¤¤ËÆþ¤Ã¤Æ¤Þ¤¹¡£ À߷׼ԤαÑÃǤËÇï¼ê¡ª º£²ó¤Î¥Í¥¿¤Ï¡¢¡Ö"P/ECE" Official WebPage¡×¤Î¡Ö³«È¯¼Ô·Ç¼¨Èġפè¤ê夭¤Þ¤·¤¿¡£ * Fri May 17 22:30:00 JST 2002 Naoyuki Sawa - ´Ø¿ô¥Ý¥¤¥ó¥¿·¿¤Ë¥­¥ã¥¹¥È¤·¤Æ¤Ï¤¤¤±¤Ê¤¤ Á°²ó¤Î¼Â¸³¤Ç¡¢InitFlashAcc()¤òľÀÜ¥¢¥É¥ì¥¹»ØÄꤷ¤Æ¡¢¸Æ¤Ó½Ð¤·¤Þ¤·¤¿¡£ ¤½¤Î¤È¤­µ¤ÉÕ¤¤¤¿¤Î¤Ç¤¹¤¬¡¢pcc33(P/ECE³«È¯´Ä¶­ÉÕ°¤Î£Ã¥³¥ó¥Ñ¥¤¥é)¤Ç¡¢ API¥¢¥É¥ì¥¹¤òľÀÜ»ØÄꤷ¤Æ¸Æ¤Ó½Ð¤¹¾ì¹ç¡¢Èù̯¤Ê¥³¡¼¥Ç¥£¥ó¥°¤Î°ã¤¤¤È ºÇŬ²½¤Î̵ͭ¤Ë¤è¤Ã¤Æ¡¢´üÂÔÄ̤ê¤Î·ë²Ì¤Ë¤Ê¤é¤Ê¤¤¤³¤È¤¬¤¢¤ë¤è¤¦¤Ç¤¹¡£ ·ëÏÀ¤«¤é¸À¤¤¤Þ¤¹¤È¡¢ ¡Ö´Ø¿ô¤Î¥¢¥É¥ì¥¹¤ò¼¨¤¹¿ôÃͤò¡¢´Ø¿ô¥Ý¥¤¥ó¥¿·¿¤Ë¥­¥ã¥¹¥È¤·¤Æ¤Ï¤¤¤±¤Ê¤¤¡× ¤ß¤¿¤¤¤Ç¤¹¡£ ¸·Ì©¤Ê£Ã¸À¸ì¤Î»ÅÍͤȤ·¤Æ¤Ï¡¢¤³¤ì¤ÏÀµ¤·¤¯Æ°¤«¤Ê¤¯¤ÆÀµ²ò¤Ê¤Î¤«¤âÃΤì¤Þ¤»¤ó¤¬¡¢ Á°½Ò¤ÎÄ̤ꡢÈù̯¤Ê¥³¡¼¥Ç¥£¥ó¥°¤Î°ã¤¤¤äºÇŬ²½¥ª¥×¥·¥ç¥ó¤Î̵ͭ¤Ë¤è¤Ã¤Æ¡¢ Æ°¤¤¤¿¤êÆ°¤«¤Ê¤«¤Ã¤¿¤ê¤¹¤ë¤Î¤Ç¡¢¤Á¤ç¤Ã¤È¤Ä¤Þ¤Å¤­¤Þ¤·¤¿¡£ ¤½¤ì¤Ç¤Ï¡¢Îã¤òµó¤²¤Þ¤¹¡£ pceLCDTrans() API¤Î¥¢¥É¥ì¥¹¤Ï¡¢BIOS 1.18¤Ç¤Ï¡¢0x00c034aa¤È¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£ ¤³¤Î¥¢¥É¥ì¥¹¤òľÀܸƤӽФ¹£Ã¥×¥í¥°¥é¥à¤Ï¡¢Ä¾´¶Åª¤Ë¤Ï¼¡¤Î¤è¤¦¤Ë¤Ê¤ë¤Ç¤·¤ç¤¦¡£ <Îã1.c> ((void (*)())0x00c034aa)(); ¤È¤³¤í¤¬¤³¤ì¤Ï¡¢ºÇŬ²½¤Î̵ͭ¤Ë´Ø¤ï¤é¤º¡¢Àµ¤·¤¯Æ°ºî¤·¤Þ¤»¤ó¡£ pcc33¤Ë-b¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¤Æ¡¢£Ã¥³¥ó¥Ñ¥¤¥é¤¬À¸À®¤·¤¿¥¢¥»¥ó¥Ö¥é¥½¡¼¥¹¤ò ¸«¤Æ¤ß¤ë¤È¡¢¼¡¤Î¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£ <Îã1.ps> xcall 0x00c034aa °ì¸«¡¢Àµ¤·¤¯¸«¤¨¤Þ¤¹¤¬¡¢¼Â¤ÏÀµ¤·¤¯¤Ê¤¤¤Î¤Ç¤¹¡£ C33(P/ECE¤ÎCPU)¤Ç¤Ï¡¢Ä¾Ãͤò°ú¿ô¤Ë¼è¤ëcallÌ¿Îá¤Ï¡¢ÁêÂÐ¥¢¥É¥ì¥¹call¤Ç¤¹¡£ ¤Ä¤Þ¤ê¤³¤ì¤Ï¡¢¡Ö¤³¤ÎÌ¿Îá¤Î¼¡¤Î¥¢¥É¥ì¥¹¡Ü0x00c034aa¡×¤Ø¤ÎcallÌ¿Îá¤Ê¤Î¤Ç¤¹¡£ ¥³¥ó¥Ñ¥¤¥é¤«¥¢¥»¥ó¥Ö¥é¤¬¡¢0x00c034aa¤ÏÀäÂÐ¥¢¥É¥ì¥¹¤À¤Èǧ¼±¤·¤Æ¤¤¤ì¤Ð¡¢ ÁêÂÐ¥¢¥É¥ì¥¹¤Ø¤ÎÊÑ´¹¤¬´üÂԤǤ­¤ë¤Î¤Ç¤¹¤¬¡¢¤½¤¦¤Ï¤Ê¤Ã¤Æ¤¤¤Ê¤¤¤è¤¦¤Ç¤¹¡£ C33¤ÇÀäÂÐ¥¢¥É¥ì¥¹call¤ò¹Ô¤¦¤Ë¤Ï¡¢¥¢¥É¥ì¥¹Ãͤò¤¤¤Ã¤¿¤ó¥ì¥¸¥¹¥¿¤ËÂåÆþ¤·¡¢ ¥ì¥¸¥¹¥¿¤ò²ð¤·¤Æcall¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£¤½¤³¤Ç¡¢¼¡¤Î¤è¤¦¤Ë½ñ¤¤¤Æ¤ß¤Þ¤¹¡£ <Îã2.c> void (*fn)() = (void (*)())0x00c034aa; fn(); ¤¹¤ë¤È¡¢¤ª¤ª¤è¤½´üÂÔÄ̤ê¤Ë¡¢¼¡¤Î¤è¤¦¤Ê¥¢¥»¥ó¥Ö¥é¥½¡¼¥¹¤¬À¸À®¤µ¤ì¡¢ <Îã2.ps> xld.w [%sp+4],%r0 xld.w %r10,0x00c034aa xld.w [%sp],%r10 xld.w %r0,[%sp] call %r0 Àµ¤·¤¯Æ°ºî¤·¤Þ¤¹¡£¤É¤¦¤ä¤é¡¢¥¢¥É¥ì¥¹¤òľÀÜ»ØÄꤷ¤ÆAPI¤ò¸Æ¤Ó½Ð¤¹¤Ë¤Ï¡¢ ´Ø¿ô¥Ý¥¤¥ó¥¿·¿¤ÎÊÑ¿ô¤Ë¥¢¥É¥ì¥¹¤òÂåÆþ¤·¤Æ¤«¤é¡¢¸Æ¤Ó½Ð¤»¤Ð¤¤¤¤¤è¤¦¤Ç¤¹¡£ ¤È¤³¤í¤¬¡ª¡ª pcc33¤ËºÇŬ²½¥¹¥¤¥Ã¥Á-O2¤òÉÕ¤±¤ë¤È¡¢¤³¤ì¤âÀµ¤·¤¯Æ°¤«¤Ê¤¯¤Ê¤ê¤Þ¤¹¡£ -O2¤òÉÕ¤±¤Æ¥³¥ó¥Ñ¥¤¥ë¤·¤¿¾ì¹ç¤Î¥¢¥»¥ó¥Ö¥é¥½¡¼¥¹¤Ï¡¢¤³¤¦¤Ê¤ê¤Þ¤¹¡£ <Îã2.ps ºÇŬ²½> xcall 0x00c034aa ¤´Í÷¤ÎÄ̤ꡢÎã1¤ÈƱ¤¸¥¢¥»¥ó¥Ö¥é¥½¡¼¥¹¤¬À¸À®¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ ¥³¥ó¥Ñ¥¤¥é¤ÎºÇŬ²½¤Ë¤è¤ê¡¢ÊÑ¿ô¤Ø¤ÎÂåÆþ¤¬¾Êά¤µ¤ì¤Æ¤·¤Þ¤Ã¤¿¤«¤é¤Ç¤¹¡£ ¢¨¤½¤â¤½¤â£Ã¸À¸ì»ÅÍͤËÈ¿¤¹¤ë¤³¤È¤ò¤ä¤Ã¤Æ¤¤¤ë¤Î¤Ç¶¯¤¯¤Ï¸À¤¨¤Ê¤¤¤Î¤Ç¤¹¤¬¡¢ ¢¨¤³¤ÎºÇŬ²½¤ÏÌäÂê¤À¤È»×¤¤¤Þ¤¹¡£ ¢¨Á°½Ò¤ÎÄ̤ꡢC33¤Ç¤Ï¡Öcall ľÃ͡פȡÖcall ¥ì¥¸¥¹¥¿¡×¤Î¤Õ¤ë¤Þ¤¤¤Ï¡¢ ¢¨Á´¤¯°Û¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£ºÇŬ²½¤Ë¤è¤Ã¤Æ¡¢ ¢¨ ¡ÖľÃÍ -> ÊÑ¿ô; ÊÑ¿ô -> ¥ì¥¸¥¹¥¿; call ¥ì¥¸¥¹¥¿¡× ¢¨¤È¤¤¤¦½èÍý¤ò¡¢ ¢¨ ¡Öcall ľÃÍ¡× ¢¨¤ËÃÖ¤­´¹¤¨¤ë¤³¤È¤ÏÀäÂФ˽ÐÍè¤Ê¤¤¤Ï¤º¤Ç¤¹¡£¤·¤«¤·¡¢¼Â¸³·ë²Ì¤ò¸«¤ë¸Â¤ê¡¢ ¢¨pcc33¡Ê¤¬¸Æ¤Ó½Ð¤¹gcc33¡Ë¤Ï¡¢¤³¤ÎÃÖ¤­´¹¤¨¤ò¹Ô¤Ã¤Æ¤·¤Þ¤¦¤è¤¦¤Ç¤¹¡£ ·ë¶É¡¢ºÇŬ²½¤Î̵ͭ¤Ë¤è¤é¤ºÀµ¤·¤¯Æ°ºî¤µ¤»¤ë¤¿¤á¤Ë¤Ï¡¢¥¤¥ó¥é¥¤¥ó¥¢¥»¥ó¥Ö¥é¤Ç ½ñ¤¯¤·¤«¤Ê¤¤¤è¤¦¤Ç¤¹¡£ <Îã3.c> asm("xld.w %r1, 0x00c034aa"); asm("call %r1"); À¸À®¤µ¤ì¤¿¥¢¥»¥ó¥Ö¥é¥½¡¼¥¹¤Ï¡¢ÅöÁ³¡¢¼¡¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£ <Îã3.asm> xld.w %r1, 0x00c034aa call %r1 ºÇŬ²½¥¹¥¤¥Ã¥Á-O2¤òÉÕ¤±¤Æ¤â¡¢¤â¤Á¤í¤ó¡¢·ë²Ì¤ÏÊѤï¤ê¤Þ¤»¤ó¡£ <Îã3.asm ºÇŬ²½> xld.w %r1, 0x00c034aa call %r1 º£²ó¤Î¼Â¸³¥×¥í¥°¥é¥à¤Ï¤³¤Á¤é http://www.piece-me.org/archive/direct-20020517.zip * Thu May 16 12:00:00 JST 2002 Naoyuki Sawa - ¥Õ¥é¥Ã¥·¥å¥á¥â¥êAPI¤ò¥à¥ê¥ä¥ê»È¤¦ P/ECE¤¦¤¿¤ï¤ì¤ë¤â¤Î·×²è¤Î°ì´Ä¤Ç¡¢¥Õ¥é¥Ã¥·¥å¥á¥â¥ê¤ÎľÀܽñ¤­´¹¤¨¤ò»î¤·¤Þ¤·¤¿¡£ ¤Ê¤¼¤³¤ó¤Ê¤³¤È¤ò»î¤·¤¿¤«¤È¤¤¤¦¤È¡¢Â礭¤Ê²èÁü¥Ç¡¼¥¿¤ò¥Õ¥é¥Ã¥·¥å¥á¥â¥ê¾å¤Ë ÃÖ¤¤¤¿¤Þ¤ÞÍøÍѤ¹¤ë¤¿¤á¤Ë¡¢¼Â¹Ô»þ¤Ë¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥Ç¥Õ¥é¥°¤ò¹Ô¤¦¤¿¤á¤Ç¤¹¡£ ¤µ¤Æ¡¢¥Õ¥é¥Ã¥·¥å¥á¥â¥ê¤òľÀܽñ¤­´¹¤¨¤ë¤¿¤á¤ÎAPI¤È¤·¤Æ¡¢ pceFlashErase()¤ÈpceFlashWrite()¤¬ÍÑ°Õ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£(¤¿¤À¤·Èó¸ø¼°¤Ç¤¹) pceFlashErase()¤ÈpceFlashWrite()¤Ï¡¢piece.h¤ËºÜ¤Ã¤Æ¤¤¤ë¤È¤³¤í¤ò¸«¤ë¤È¡¢ ¥æ¡¼¥¶¡¼¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤«¤é»È¤¨¤ë¤è¤¦¤Ë¸«¤¨¤Þ¤¹¤¬¡¢¼Â¤Ï»È¤¨¤Þ¤»¤ó¡£ ¥«¡¼¥Í¥ë¥µ¡¼¥Ó¥¹¥Ù¥¯¥¿¤ËÅÐÏ¿¤µ¤ì¤Æ¤¤¤Ê¤¤¤«¤é¤Ç¤¹¡£ pceFlashErase()¤ÈpceFlashWrite()¤ò¥«¡¼¥Í¥ë¥µ¡¼¥Ó¥¹¥Ù¥¯¥¿¤ËÅÐÏ¿¤¹¤ë¤¿¤á¤Î InitFlashAcc()¤ÏÄêµÁ¤µ¤ì¤Æ¤¤¤ë(fmacc.c)¤Î¤Ç¤¹¤¬¡¢¤É¤³¤«¤é¤â¸Æ¤Ð¤ì¤Æ¤¤¤Þ¤»¤ó¡£ ¤½¤Î¤¿¤á¡¢pceFlashErase()¤ÈpceFlashWrite()¤ËÂбþ¤¹¤ë¥Ù¥¯¥¿¥¨¥ó¥È¥ê¤Ï¡¢ ¥Ç¥Õ¥©¥ë¥È¤ÎUnusedKsVector()¤ò»Ø¤·¤¿¤Þ¤Þ¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£ UnusedKsVector()¤Ï²¿¤â¤»¤º¤Ë-1¤òÊÖ¤¹´Ø¿ô(pcekn.c)¤Ê¤Î¤Ç¡¢ ¥æ¡¼¥¶¡¼¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬pceFlashErase()¤äpceFlashWrite()¤ò¸Æ¤Ó½Ð¤¹¤È¡¢ ²¿¤â¤»¤º¤Ë-1¤òÊÖ¤¹¤À¤±¤Ê¤Î¤Ç¤¹¡£ BootEntry()½é´ü²½´Ø¿ô(pcekn.c)¤«¤é¡¢³Æ¼ï¥µ¥Ö¥·¥¹¥Æ¥à¤Î½é´ü²½¤¬¸Æ¤Ð¤ì¡¢ ¥«¡¼¥Í¥ë¥µ¡¼¥Ó¥¹¥Ù¥¯¥¿¤¬ÀßÄꤵ¤ì¤Þ¤¹¡£ InitFlashAcc()¤â¤³¤³¤«¤é¸Æ¤Ð¤ì¤ë¤Ù¤­¤À¤È»×¤¦¤Î¤Ç¤¹¤¬¡¢¸Æ¤Ó˺¤ì¤Ç¤·¤ç¤¦¤«¡£ ¤½¤ì¤È¤â¡¢¥Õ¥é¥Ã¥·¥å¥á¥â¥ê¤Î½ñ¤­´¹¤¨¤Ï´í¸±¤Ê¤Î¤Ç¡¢¥æ¡¼¥¶¡¼¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤«¤é ÍøÍѤǤ­¤Ê¤¤¤è¤¦¤Ë¡¢¤ï¤¶¤È¸Æ¤ó¤Ç¤¤¤Ê¤¤¤Î¤Ç¤·¤ç¤¦¤«¡£ ¥Ù¥¯¥¿¥¨¥ó¥È¥ê¤ÏÍÑ°Õ¤µ¤ì¤Æ¤¤¤ë¤È¤³¤í¤ò¸«¤ë¤È¡¢InitFlashAcc()¤Î¸Æ¤Ó˺¤ì¤Î ²ÄǽÀ­¤¬¹â¤¤¤è¤¦¤Ë»×¤¦¤Î¤Ç¤¹¤¬¡Ä¡Ê¤ï¤¶¤È¤À¤Ã¤¿¤é¤´¤á¤ó¤Ê¤µ¤¤¡Ë pceFlashErase()¤ÈpceFlashWrite()¤ò¥æ¡¼¥¶¡¼¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤«¤é»È¤¦¤Ë¤Ï¡¢ ²¿¤È¤«¤·¤ÆInitFlashAcc()¤ò¸Æ¤Ó½Ð¤·¡¢¥«¡¼¥Í¥ë¥µ¡¼¥Ó¥¹¥Ù¥¯¥¿¤òÀßÄꤷ¤Æ¤ä¤é¤Ê¤±¤ì¤Ð¤¤¤±¤Þ¤»¤ó¡£ º£²ó¤Ï¡¢Èó¾ï¤Ë´í¸±¤ÊÊýË¡¤Ç¤¹¤¬¡¢¥¢¥É¥ì¥¹·è¤áÂǤÁ¤Ç¸Æ¤Ó½Ð¤¹¤³¤È¤Ë¤·¤Þ¤·¤¿¡£ BIOS¤Î¥Ð¡¼¥¸¥ç¥ó¤¬ÊѤï¤ë¤È¡¢¥¢¥É¥ì¥¹¤â¤º¤ì¤ë¤Î¤Ç¡¢Â¿Ê¬Æ°¤«¤Ê¤¯¤Ê¤ë¤È»×¤¤¤Þ¤¹¡£ ¼Â¸³¥×¥í¥°¥é¥à¤Ï¤³¤Á¤é http://www.piece-me.org/archive/flash-20020516.zip ¼Â¸³ÍÑ¥Õ¥¡¥¤¥ë¤òºîÀ®¤·¡¢¤½¤ÎÆâÍƤò¡¢¥Õ¥¡¥¤¥ëAPI¤Ç¤Ï¤Ê¤¯¥Õ¥é¥Ã¥·¥å¥á¥â¥êAPI¤ò»È¤Ã¤Æ¡¢ ľÀܽñ¤­´¹¤¨¤Æ¤¤¤Þ¤¹¡£(¢¨Á°½Ò¤Î¤È¤ª¤ê¡¢BIOS 1.18 ÀìÍѤǤ¹¡ª) * Mon Feb 4 20:16:32 JST 2002 Naoyuki Sawa - ¥«¡¼¥Í¥ë¤¤¤Á¤ã¤â¤ó¥³¡¼¥Ê¡¼½ÐÄ¥Èǡʥ饤¥Ö¥é¥êÊÔ¡Ë µ×¡¹¤Ë¡¢¥·¥ó¥×¥ë¥é¥¤¥Ö¥é¥ê¤Ç¥ß¥Ë¥²¡¼¥à¤òºî¤Ã¤Æ¤ß¤è¤¦¤È»×¤¤¤Þ¤·¤¿¡£ PieceSystem Ver1.18¤ÇÄɲ䵤줿¡¢¥·¥ó¥×¥ë¥é¥¤¥Ö¥é¥ê¤Î¿·µ¡Ç½¤â»È¤Ã¤Æ¤ß¤¿¤¤¤Ç¤¹¤Í¡£... C:\usr\PIECE\lib\simple.lib: Warning: Unresolved external symbol 'va_end'. C:\usr\PIECE\lib\simple.lib: Warning: Unresolved external symbol 'va_start'. ...¤½¤ì°ÊÁ°¤ÎÌäÂê¤Ç¤·¤¿¡£¥ê¥ó¥¯¤Ç¤­¤Ê¤¯¤Ê¤Ã¤Æ¤Þ¤¹(;;) ºÆ¸½ÊýË¡¤Ï¼¡¤ÎÄ̤ê¤Ç¤¹¡£ÉÕ°¤Îsimple¥×¥í¥°¥é¥à¤Ç¡¢prog.txt¤ÎÆó¹ÔÌܤò¡¢ printstr("SKI GAME"); ¤«¤é¡¢ siprintf("SKI GAME"); ¤ËÊѹ¹¤·¤Æmake¤¹¤ë¤È¡¢¾åµ­¤Î¥á¥Ã¥»¡¼¥¸¤¬½Ð¤Æ¡¢¼Â¹Ô¥Õ¥¡¥¤¥ë¤ÏÀ¸À®¤µ¤ì¤Þ¤»¤ó¡£¡¡ Ëͤ¿¤Á¤ÎP/ECE³«È¯´Ä¶­¤Ç¤Ï¡¢va_start¤äva_end¤Ï¥Þ¥¯¥í¤È¤·¤ÆÄêµÁ¤µ¤ì¤Æ¤¤¤ë¤Î¤Ç¤¹¤¬¡¢ ¥·¥ó¥×¥ë¥é¥¤¥Ö¥é¥ê¤ÎºîÀ®´Ä¶­¤Ç¤Ï¡¢va_start¤äva_end¤¬´Ø¿ô¤Ë¤Ê¤Ã¤Æ¤¿¤Î¤«¤âÃΤì¤Þ¤»¤ó¡£ PieceSystem Ver1.18¤¬¥ê¥ê¡¼¥¹¤µ¤ì¤Æ¡¢¤â¤¦°ì½µ´Ö°Ê¾å·Ð¤Ã¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢ ¤È¤Ã¤¯¤Ëȯ³Ð¤·¤Æ¤¤¤ë¤È»×¤¤¤Þ¤¹¤·¡¢¼¡²ó¤Î¥ê¥ê¡¼¥¹¤Ç¤Ï½¤Àµ¤µ¤ì¤ë¤È»×¤¤¤Þ¤¹¤¬... ¥·¥ó¥×¥ë¥é¥¤¥Ö¥é¥ê¤Ï¤ª¼ê·Ú¡¦¹âµ¡Ç½¤Ç¡¢¤«¤Ê¤êµ¤¤ËÆþ¤Ã¤Æ¤¿¤À¤±¤Ë¡¢¤Á¤ç¤Ã¤ÈÄˤ¤¤È¤³¤í¤Ç¤¹¡£ * Tue Jan 29 20:20:03 JST 2002 Naoyuki Sawa - ¤ª¤Ç¥Þ¥ë¹â®ÈÇ ºòÆü¤Î¸¦µæµ­Ï¿¤Ç¤Á¤ç¤Ã¤Èͽ¹ð(?)¤·¤¿Ä̤ꡢ¤ª¤Ç¥Þ¥ë¤Ë¹â®ÈÇpceLCDDrawObject¤òÁȤ߹þ¤ó¤Ç¤ß¤Þ¤·¤¿¡£ ºòÆü¤Î»þÅÀ¤Ç¤Ï¡¢Å¾Á÷¸µ¥Ó¥Ã¥È¥Þ¥Ã¥×¤Ï2bit¥Ç¡¼¥¿maskÉÕ¤­¡¦È¿Å¾¤Ê¤·¡¢¤À¤±¤ËÂбþ¤·¤Æ¤¤¤Þ¤·¤¿¤¬¡¢ ¤ª¤Ç¥Þ¥ë¹â®ÈǤËÁȤ߹þ¤ó¤À¤â¤Î¤Ï¡¢Å¾Á÷¸µ¥Ó¥Ã¥È¥Þ¥Ã¥×¤Ï2bit¥Ç¡¼¥¿maskÉÕ¤­¡¢¤Þ¤¿¤Ï¡¢mask¤Ê¤·¡£ ¾å²¼º¸±¦È¿Å¾¤Ë¤âÂбþ¤·¤Þ¤·¤¿¡£¥³¡¼¥ÉŸ³«¤·¤Þ¤¯¤Ã¤¿·ë²Ì¡¢8KB¶á¤¤¥µ¥¤¥ºÁý²Ã¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¤¤Þ¤·¤¿¡£ ¥ª¥ê¥¸¥Ê¥ë¤ÎpceLCDDrawObject¤¬¡¢¤¢¤Þ¤ê¹â®²½¤µ¤ì¤Æ¤¤¤Ê¤«¤Ã¤¿Íýͳ¤¬¡¢¤è¤¯Íý²ò¤Ç¤­¤Þ¤·¤¿¡£ Á´¤Æ¤Î¥×¥í¥°¥é¥à¤¬¹â®ÉÁ²è¤òÍ׵᤹¤ë¤ï¤±¤Ç¤â¤Ê¤¤¤Î¤Ë¡¢¤¢¤Þ¤êÂ礭¤Ê¥ë¡¼¥Á¥ó¤Ë¤Ç¤­¤Ê¤¤¤Ç¤¹¤è¤Í¡£ ¤µ¤Æ¡¢¤ª¤Ç¥Þ¥ë¥Ù¥ó¥Á¤Î·ë²Ìȯɽ¤Ç¤¹¡£Æ±¤¸¥»¡¼¥Ö¥Ç¡¼¥¿¤ò»È¤Ã¤Æ¡¢¥µ¥¦¥ó¥ÉON¤Î¾õÂ֤Ǥª¤Ç¤«¤±¤·¡¢ ¤ª¤Ç¤«¤±³«»Ï¡Áµ¢´Ô¤Þ¤Ç¤Î»þ´Ö¤ò·×¬¤·¤Þ¤·¤¿¡£¥¢¥¤¥Æ¥àȯ¸«²ó¿ô¤Î°ã¤¤¤â±Æ¶Á¤·¤Þ¤¹¤¬¡¢¤¢¤ëÄøÅ٤ΠÌܰ¤ˤϤʤë¤È»×¤¤¤Þ¤¹¡£¤¢¡¢pceAppSetProcPeriod¤È¤«¤ÎÄ´À°¤Ï¤·¤Æ¤¤¤Ê¤¤¤Î¤Ç¡¢¿®¤¸¤Æ¤¯¤À¤µ¤¤(^^; STATUS: POW=652 INT=886 DEX=682 2930J ¥¢¥¯¥¢¥×¥é¥¹¥Ó¥ë¤Ø¤ª¤Ç¤«¤±¡Áµ¢´Ô¤Þ¤Ç ¤ª¤Ç¥Þ¥ë(ËÜʪ) -> £¸Ê¬£´£µÉà ¤ª¤Ç¥Þ¥ë¹â®ÈÇ -> £µÊ¬£µ£°Éà ¿ô»ú¤Ç¸«¤ë¤È¤¢¤Þ¤ê¹â®²½¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¤¬¡¢¥µ¥¦¥ó¥ÉOFF¤Ë¤«¤Ê¤ê¶á¤¤Â®Å٤ˤϤʤ俤Ȼפ¤¤Þ¤¹¡£ ¤â¤Ã¤È¤â¡¢¤ª¤Ç¥Þ¥ë¹â®ÈǤΰյÁ¤Ï¤½¤ì¼«ÂΤˤ¢¤ë¤Î¤Ç¤Ï¤Ê¤¯¡¢ ¡Ö¤³¤ì¤°¤é¤¤¤¢¤ª¤Ã¤Æ¤ª¤±¤Ð¡¢¤À¤ì¤«(ËܲȤǤâ²Ä)pceLCDDrawObject¤òÅ°ÄìŪ¤Ë¹â®²½¤·¤Æ¤¯¤ì¤ë¤Î¤Ç¤Ï¡©¡× ¤È¤¤¤¦ÅÀ¤Ë¤¢¤Ã¤¿¤ê¤·¤Þ¤¹¡£¤è¤í¤·¤¯¤ª´ê¤¤¤·¤Þ¤¹¡Á(^^; * Tue Jan 29 20:20:03 JST 2002 Naoyuki Sawa - ¥«¡¼¥Í¥ë¤¤¤Á¤ã¤â¤ó¥³¡¼¥Ê¡¼½ÐÄ¥ÈÇ BIOS1.18¸½ºß¡¢pceLCDDrawObject¤Î2bit¥Ç¡¼¥¿(mask̵¤·)ÉÁ²è¤Ë¤ÏÉÔ¶ñ¹ç¤¬¤¢¤ë¤è¤¦¤Ç¤¹¡£ ºÆ¸½¥×¥í¥°¥é¥à¤Ï¤³¤Á¤é¡£(¤Þ¤¿¤Ï¡¢¥È¥Ã¥×¥Ú¡¼¥¸¤Î¥ê¥ó¥¯¤«¤é) http://www.piece-me.org/archive/drawerr-20020129.zip ºÆ¸½ÊýË¡¡§ drawerr.pex¤òžÁ÷¤·¡¢¼Â¹Ô¤·¤Æ¤¯¤À¤µ¤¤¡£64x16¥Ô¥¯¥»¥ë¤Î2bit¥Ç¡¼¥¿(mask̵¤·)¤òº¸±¦È¿Å¾¤ÇÉÁ²è¤¹¤ë¡¢Ã±½ã¤Ê¥×¥í¥°¥é¥à¤Ç¤¹¡£ ¥Ñ¥Ã¥É¤Î¾å²¼º¸±¦¤Ç¥­¥ã¥é¥¯¥¿¤òÆ°¤«¤¹¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£º¸±¦¤ËÆ°¤«¤¹¤È¡¢»þ¡¹¥­¥ã¥é¥¯¥¿¤¬Êø¤ì¤ë¤Î¤¬³Îǧ¤Ç¤­¤ë¤È»×¤¤¤Þ¤¹¡£ ¥×¥í¥°¥é¥à¤ò½ªÎ»¤¹¤ë¤Ë¤Ï¡¢A¥Ü¥¿¥ó¤ò²¡¤·¤Æ¤¯¤À¤µ¤¤¡£ ¸¶°ø¡§ pceLCDDrawObject¤Ï¡¢2bit¥Ç¡¼¥¿(mask̵¤·)¤òÉÁ²è¤¹¤ë¤È¤­¡¢ÆÃÄê¤Î¾ò·ï¤Ç¹â®¥ë¡¼¥Á¥ó¤ò»È¤¦¤è¤¦¤Ëºî¤é¤ì¤Æ¤¤¤ë¤è¤¦¤Ç¤¹¡£ ¹â®¥ë¡¼¥Á¥ó¤¬»È¤ï¤ì¤ë¾ò·ï¤Ï¡¢ ¡¦Å¾Á÷ÀèXºÂɸ¤¬4¤ÎÇÜ¿ô¤Ç¤¢¤ë¤³¤È¡£ ¡¦Å¾Á÷¸µXºÂɸ¤¬4¤ÎÇÜ¿ô¤Ç¤¢¤ë¤³¤È¡£ ¡¦Å¾Á÷Éý¤¬4¤ÎÇÜ¿ô¤Ç¤¢¤ë¤³¤È¡£ ¤³¤ì¤é¤Î¾ò·ï¤¬Á´¤ÆËþ¤¿¤µ¤ì¤ë¤È¡¢¥Æ¡¼¥Ö¥ë¤òÍøÍѤ·¤Æ4¥Ô¥¯¥»¥ë¤Þ¤È¤á¤ÆÉÁ²è¤ò¹Ô¤¤¡¢»°ÇÜÄøÅ٤ι⮲½¤¬Ã£À®¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ ¤·¤«¤·¤Ê¤¬¤é¡¢º¸±¦È¿Å¾»þ¤Ë¤Ï4¥Ô¥¯¥»¥ë¤òº¸±¦µÕž¤·¤¿¥Æ¡¼¥Ö¥ë¤òÍøÍѤ¹¤Ù¤­¤Ê¤Î¤Ç¤¹¤¬¡¢¸½ºß¤Î¼ÂÁõ¤Ç¤Ï¤½¤¦¤Ê¤Ã¤Æ¤¤¤Þ¤»¤ó¡£ º¸±¦È¿Å¾¤·¤Ê¤¤¤È¤­¤ÈƱ¤¸¥Æ¡¼¥Ö¥ë¤ò»È¤Ã¤Æ¤·¤Þ¤Ã¤Æ¤¤¤ë¤¿¤á¡¢4¥Ô¥¯¥»¥ë°ÜÆ°¤¹¤ë¤´¤È¤Ë¥­¥ã¥é¥¯¥¿¤¬Êø¤ì¤ë·ë²Ì¤È¤Ê¤ê¤Þ¤¹¡£ ²óÈòÊýË¡¡§ ¤³¤ÎÉÔ¶ñ¹ç¤¬¸½ºß¤Þ¤Ç»Ä¤Ã¤Æ¤¤¤ë¤È¤¤¤¦¤³¤È¤Ï¡¢¤¢¤Þ¤ê2bit¥Ç¡¼¥¿(mask̵¤·)¤Ï»È¤ï¤ì¤Æ¤¤¤Ê¤¤¡¢¤È¤¤¤¦¤³¤È¤Ç¤·¤ç¤¦¤«¡© Ëͤ⤢¤Þ¤ê»È¤¤¤Þ¤»¤ó(^^; ¡¦2bit¥Ç¡¼¥¿(mask̵¤·)¤Ï»È¤ï¤Ê¤¤¡£2bit¥Ç¡¼¥¿maskÉÕ¤­¤ÇÂåÍѤ¹¤ë¡£¤¿¤À¤·¡¢¾¯¤·Â®ÅÙÄã²¼¤·¤Þ¤¹¡£ ¡¦2bit¥Ç¡¼¥¿(mask̵¤·)¤òÉÁ¤¯¤È¤­¤Ï¡¢º¸±¦È¿Å¾¤Ï»È¤ï¤Ê¤¤¡£ * Mon Jan 28 21:09:06 JST 2002 Naoyuki Sawa - ÆóÇÜ®¤¯¤Ê¤ê¤Þ¤·¤¿ ºòÆü¤Ë°ú¤­Â³¤­¡¢pceLCDDrawObject¤Î¹â®²½¤ÎÏÃÂê¤Ç¤¹¡£ ºòÆü¤Î¸¦µæµ­Ï¿¤Ç¤Ï¡¢´û¸¤ÎºÇŬ²½ºÑ¤ß¥ë¡¼¥Á¥ó¤ò»È¤ï¤»¤Æĺ¤¯¤Î¤â¼ê¤«¤Ê¡¢¤È½ñ¤­¤Þ¤·¤¿¤¬¡¢ ¤Þ¤º¤ÏÎý½¬¤Î¤¿¤á¤Ë¡¢¼«Ê¬¤Ç¤â¼ÂÁõ¤·¤Æ¤ß¤ë¤³¤È¤Ë¤·¤Þ¤·¤¿¡£ ¹â®ÈÇpceLCDDrawObject¤òÁȤ߹þ¤ó¤À¥½¡¼¥¹¤Ï¤³¤Á¤é http://www.piece-me.org/archive/tstspd-20020128-src.zip ¹â®ÈÇpceLCDDrawObject¤ÎÉôʬ¤Ï¡¢¤³¤ó¤Ê´¶¤¸¤Ç¤¹¡£ ----------------------------------------------------------------------------- #define KSNO_LCDDrawObject 100 /* pceLCDDrawObject¤Î¥«¡¼¥Í¥ë¥µ¡¼¥Ó¥¹ÈÖ¹æ */ static int (*old_LCDDrawObject)(DRAW_OBJECT); /* ËÜʪ¤ÎpceLCDDrawObject¤òÊݸ */ static int new_LCDDrawObject(DRAW_OBJECT obj) { PIECE_VRAM dest; PIECE_BMP src; int n, x, y, step, dest_stride, src_stride; unsigned char *dest_buf, *src_mask, mask; unsigned short *src_buf, pixel; /* ñ½ãžÁ÷¤Ç¤Ê¤±¤ì¤Ð¡¢ËÜʪ¤ËǤ¤»¤Þ¤¹¡£ */ if(obj.param != DRW_NOMAL) return old_LCDDrawObject(obj); /* žÁ÷¸µ¥Ó¥Ã¥È¥Þ¥Ã¥×¾ðÊó¤ò¼èÆÀ¡£ * 2bit¥Þ¥¹¥¯ÉÕ¤­¥Ó¥Ã¥È¥Þ¥Ã¥×¤Ç¤Ê¤±¤ì¤Ð¡¢ËÜʪ¤ËǤ¤»¤Þ¤¹¡£ */ src = *obj.src; if(src.header.bpp != 2 || src.header.mask != 1) return old_LCDDrawObject(obj); /* žÁ÷ÀèVRAM¾ðÊó¤ò¼èÆÀ¡£ */ if(obj.dest != NULL) { dest = *obj.dest; } else { dest.w = DISP_X; dest.h = DISP_Y; dest.buf = pceLCDSetBuffer(INVALIDPTR); } /* žÁ÷À襯¥ê¥Ã¥Ô¥ó¥°¡£ */ if(obj.dx < obj.clip.left) { n = obj.clip.left - obj.dx; /* º¸¤Ë¤Ï¤ß½Ð¤¿¥Ô¥¯¥»¥ë¿ô */ obj.dx = obj.clip.left; obj.dw -= n; obj.sx += n; } if(obj.dx + obj.dw > obj.clip.right) { obj.dw = obj.clip.right - obj.dx; } if(obj.dw <= 0) return 0; /* ²èÌ̳° */ if(obj.dy < obj.clip.top) { n = obj.clip.top - obj.dy; /* ¾å¤Ë¤Ï¤ß½Ð¤¿¥Ô¥¯¥»¥ë¿ô */ obj.dy = obj.clip.top; obj.dh -= n; obj.sy += n; } if(obj.dy + obj.dh > obj.clip.bottom) { obj.dh = obj.clip.bottom - obj.dy; } if(obj.dh <= 0) return 0; /* ²èÌ̳° */ /* žÁ÷¸µ¥¯¥ê¥Ã¥Ô¥ó¥°¤Ï¹Ô¤¤¤Þ¤»¤ó¡£ * ¸µ¡¹»ØÄꤵ¤ì¤¿Å¾Á÷¸µ¶ë·Á¤¬Å¾Á÷¸µ¥Ó¥Ã¥È¥Þ¥Ã¥×Æâ¤Ë¼ý¤Þ¤Ã¤Æ¤¤¤¿¤Ê¤é¤Ð¡¢ * žÁ÷À襯¥ê¥Ã¥Ô¥ó¥°¤Ë¤è¤Ã¤ÆžÁ÷¸µ¤¬¤Ï¤ß½Ð¤¹¤³¤È¤Ï¤¢¤ê¤¨¤Ê¤¤¤«¤é¤Ç¤¹¡£ * ¤·¤«¤·ËÜʪ¤ÏžÁ÷¸µ¥¯¥ê¥Ã¥Ô¥ó¥°¤â¹Ô¤Ã¤Æ¤¤¤ë¤Î¤Ç¡¢¤³¤ÎÅÀ¤ÏÈó¸ß´¹¤Ç¤¹¡£ */ /* žÁ÷Àè¥Ô¥¯¥»¥ë¥¢¥É¥ì¥¹¤òµá¤á¤Þ¤¹¡£ */ dest_buf = dest.buf + dest.w * obj.dy + obj.dx; dest_stride = dest.w /* ¥é¥¤¥ó¥¹¥È¥é¥¤¥É */ - obj.dw; /* °ì¹Ô¤Ç²¿²ó¿Ê¤à¤« */ /* žÁ÷¸µ¥Ô¥¯¥»¥ë¥¢¥É¥ì¥¹¤òµá¤á¤Þ¤¹¡£ */ n = (src.header.w * obj.sy + obj.sx) / 8; src_buf = (unsigned short*)src.buf + n; src_mask = src.mask + n; src_stride = (src.header.w + 7) / 8 /* ¥é¥¤¥ó¥¹¥È¥é¥¤¥É */ - ((obj.sx & 7) + obj.dw - 1) / 8; /* °ì¹Ô¤Ç²¿²ó¿Ê¤à¤« */ /* ~~~ 8¥¹¥Æ¥Ã¥×´°Î»»þ¤Ë¿Ê¤à¤Î¤Ç¤Ï¤Ê¤¯¡¢9¥¹¥Æ¥Ã¥×ÌܤÎÀèƬ¤Ç¿Ê¤à¤«¤é */ y = obj.dh; /* »Ä¤ê¥é¥¤¥ó¿ô */ do { /* 8¥Ô¥¯¥»¥ëñ°Ì¤Î¤¦¤Á¡¢²¿¥Ô¥¯¥»¥ëÌܤ«¤é³«»Ï¤¹¤ë¤«¡© */ step = obj.sx & 7; /* ³«»ÏÅÀ¤«¤é»Ï¤Þ¤ë¤«ÅÓÃ椫¤é»Ï¤Þ¤ë¤«¤ï¤«¤é¤Ê¤¤¤Î¤Ç¡¢ * ½é²ó¤Ï¤¿¤È¤¨step=0¤Ç¤â¡¢¤³¤³¤ÇºÇ½é¤Î¥Ç¡¼¥¿¤ò¼èÆÀ¤¹¤ë¤³¤È¤Ë¤·¤Þ¤¹¡£ * ¢¨P/ECE¥Ó¥Ã¥È¥Þ¥Ã¥×¤Î¥Ô¥¯¥»¥ëʤӤϡ¢MSB¦¤¬º¸¤Î¥Ô¥¯¥»¥ë¤Ê¤ó¤Ç¤¹¤Í¡£ * S1C33¤Ï¥ê¥È¥ë¥¨¥ó¥Ç¥£¥¢¥ó¤Ê¤ó¤À¤«¤é¡¢LSB¦¤òº¸¤Î¥Ô¥¯¥»¥ë¤Ë¤·¤¿Êý¤¬°·¤¤¤ä¤¹¤¤¤È»×¤¦¤Î¤Ç¤¹¤¬¡£ * WindowsBMP¤ÏMSB¦¤¬º¸¤Î¥Ô¥¯¥»¥ë¤Ê¤Î¤«¤Ê¡©¤â¤·¤½¤¦¤Ê¤é¤Ð¡¢BMP¤Î»ÅÍͤ˹ç¤ï¤»¤¿¤Î¤«¤âÃΤì¤Þ¤»¤ó¡£ */ pixel = *src_buf; /* ¥Ô¥¯¥»¥ëÊÂ¤Ó¤Ï MSB:45670123:LSB ¤Î½ç¤Ç¤¹ */ mask = *src_mask; /* ¥Ô¥¯¥»¥ëÊÂ¤Ó¤Ï MSB:01234567:LSB ¤Î½ç¤Ç¤¹ */ /* ²¿¥Ô¥¯¥»¥ëÌܤ«¤é³«»Ï¤¹¤ë¤«¤Ë¤è¤Ã¤Æ¡¢Å¬ÀڤʰÌÃÖ¤ØÈô¤Ó¹þ¤ß¤Þ¤¹¡£ */ x = obj.dw; /* »Ä¤ê¥Ô¥¯¥»¥ë¿ô */ switch(step) { LOOP: /* ½é²ó¤Ï¤³¤³¤ÏÈô¤Ó±Û¤·¤Þ¤¹ */ /* 8¥Ô¥¯¥»¥ëñ°Ì¤Î³«»ÏÅÀ¤Ç¡¢¼¡¤Î¥Ç¡¼¥¿¤ò¼èÆÀ¤·¤Þ¤¹¡£ */ pixel = *++src_buf; mask = *++src_mask; #define PIXEL(p, m) \ /* ÉÔÆ©ÌÀ¥Ô¥¯¥»¥ë¤Ê¤é¡¢ÉÁ¤­¤Þ¤¹¡£ */ \ if(mask >> (m) & 1) *dest_buf = pixel >> (p) * 2 & 3; \ dest_buf++; \ /* 1¥é¥¤¥óžÁ÷´°Î»¤·¤¿¤é¡¢È´¤±¤Þ¤¹¡£ */ \ if(--x == 0) break; case 0: PIXEL(3, 7); case 1: PIXEL(2, 6); case 2: PIXEL(1, 5); case 3: PIXEL(0, 4); case 4: PIXEL(7, 3); case 5: PIXEL(6, 2); case 6: PIXEL(5, 1); default/*7*/: PIXEL(4, 0); goto LOOP; #undef PIXEL } /* žÁ÷À衦žÁ÷¸µ¥Ô¥¯¥»¥ë¥¢¥É¥ì¥¹¤ò¼¡¤Î¥é¥¤¥ó¤Ø¿Ê¤á¤Þ¤¹¡£ */ dest_buf += dest_stride; src_buf += src_stride; src_mask += src_stride; } while(--y != 0); return 1; } void hook_LCDDrawObject() { /* pceLCDDrawObject¤ò¥Õ¥Ã¥¯¤·¤Þ¤¹¡£ */ old_LCDDrawObject = pceVectorSetKs(KSNO_LCDDrawObject, new_LCDDrawObject); } void unhook_LCDDrawObject() { /* pceLCDDrawObject¤ò¥Õ¥Ã¥¯²ò½ü¤·¤Þ¤¹¡£ */ pceVectorSetKs(KSNO_LCDDrawObject, old_LCDDrawObject); } ----------------------------------------------------------------------------- ¤µ¤Æ¡¢·ë²Ìȯɽ¤Ç¤¹¡£ ËÜʪpceLCD(È´¤­Í­¤ê) -> 21.207Éà ... 100% ¹â®pceLCD(È´¤­Í­¤ê) -> 9.718Éà ... 218% ¢¨¤³¤ì¤Ç¤¹¡ª pclSprite (È´¤­Í­¤ê) -> 6.091Éà ... 348% ¤Þ¤¢¤Þ¤¢¤Ç¤¹¡£¤À¤±¤É¡¢¥¹¥×¥é¥¤¥È¥é¥¤¥Ö¥é¥ê¤Ë¤Ï±ó¤¯µÚ¤Ó¤Þ¤»¤ó¡£ ¤·¤«¤â¡¢¥¹¥×¥é¥¤¥È¥é¥¤¥Ö¥é¥ê¤Î¥½¡¼¥¹¤Ë¤Ï¡Ö̤¹â®²½¡×¤È¥³¥á¥ó¥È¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ ¥¹¥×¥é¥¤¥È¥é¥¤¥Ö¥é¥ê¤Ï¡¢º£¸å¤Þ¤À¤Þ¤À®¤¯¤Ê¤ë¤È¤¤¤¦¤³¤È¤Ç¤·¤ç¤¦¤Í¡£¼ê¶¯¤¤¡ª ´ê¤ï¤¯¤Ð¡¢¤½¤Î;ÎϤǤÁ¤ç¤Ã¤È¤À¤±pceLCDDrawObject¤â¹â®²½¤·¤ÆÍߤ·¤¤¤È¤³¤í¤Ç¤¹¤¬...(^^; º£²ó¼ÂÁõ¤·¤¿¹â®ÈÇpceLCDDrawObject¤Ï¡¢¼¡¤Î¾ò·ï¤¬Ëþ¤¿¤µ¤ì¤¿¾ì¹ç¤Î¤ß¹â®¥ë¡¼¥Á¥ó¤òÍøÍѤ·¡¢ °ì¤Ä¤Ç¤âËþ¤¿¤µ¤ì¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï¡¢ËÜʪ¤ÎpceLCDDrawObject¤Ë½èÍý¤òǤ¤»¤ë¤è¤¦¤Ë¤·¤Þ¤·¤¿¡£ ¹â®¥ë¡¼¥Á¥ó¤¬ÍøÍѤµ¤ì¤ë¾ò·ï¤Ï¡¢¼¡¤ÎÄ̤ê¤Ç¤¹¡£ ¡¦pceLCDSetObject¤Ë»ØÄꤷ¤¿param¤¬¡¢DRW_NOMAL¤Ç¤¢¤ë¤³¤È¡£ ¡¦Å¾Á÷¸µ¥Ó¥Ã¥È¥Þ¥Ã¥×¤¬¡¢¡Ö2bit¥Ç¡¼¥¿maskÉÕ¤­¡×¤Ç¤¢¤ë¤³¤È¡£ ¤³¤Î¾ò·ï¤òËþ¤¿¤¹ÉÁ²èÍ×µá(¹â®¥ë¡¼¥Á¥ó¤¬ÍøÍѤµ¤ì¤Þ¤¹)¤Î²ó¿ô¤è¤ê¤â¡¢ ¾ò·ï¤òËþ¤¿¤µ¤Ê¤¤ÉÁ²èÍ×µá(ËÜʪ¤Ë½èÍý¤òǤ¤»¤Þ¤¹)¤Î²ó¿ô¤ÎÊý¤¬°µÅÝŪ¤Ë¿¤¤¾ì¹ç¤Ï¡¢ ¹â®ÈÇpceLCDDrawObject¤«¤éËÜʪ¤ÎpceLCDDrawObject¤ò¸Æ¤Ó½Ð¤¹½èÍý¤¬Áý¤¨¤ëʬ¡¢ ¸µ¡¹¤Î½èÍý®ÅÙ¤è¤ê¤âÃÙ¤¯¤Ê¤Ã¤Æ¤·¤Þ¤¦²ÄǽÀ­¤¬¤¢¤ê¤Þ¤¹¡£ ¤Þ¤¿¡¢ËÜʪ¤ÎpceLCDDrawObject¤Ë³Ó¤Ù¤Æ¡¢°ìÅÀ¡¢½èÍý¤ò¾Ê¤¤¤¿Éôʬ¤¬¤¢¤ê¤Þ¤¹¡£ ¤½¤ì¤Ï¡¢Å¾Á÷¸µ¥Ó¥Ã¥È¥Þ¥Ã¥×¤ËÂФ¹¤ëžÁ÷¸µ¶ë·Á¤Î¥¯¥ê¥Ã¥Ô¥ó¥°½èÍý¤Ç¤¹¡£ žÁ÷¸µ¶ë·Á¤Ë¡¢Å¾Á÷¸µ¥Ó¥Ã¥È¥Þ¥Ã¥×¤ò¤Ï¤ß½Ð¤¹Îΰè¤ò»ØÄꤷ¤¿¾ì¹ç¤Ï¡¢Àµ¤·¤¯Æ°ºî¤·¤Þ¤»¤ó¡£ ·×¬¤Ë»È¤Ã¤¿¥Æ¥¹¥È¥×¥í¥°¥é¥à¤Ï¡¢¹â®ÈÇpceLCDDrawObject¤Ë¤«¤Ê¤êÍ­Íø¤Ê¾ò·ï¤¬Â·¤Ã¤Æ¤¤¤Þ¤¹¡£ ¤½¤³¤Ç¡¢¼ÂºÝ¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬ËÜÅö¤Ë®¤¯¤Ê¤ë¤Î¤«³Î¤«¤á¤ë¤¿¤á¤Ë¡¢ ¹â®ÈÇpceLCDDrawObject¤ò»È¤Ã¤Æ¡¢¥½¥ë¥À¥à¤â¤É¤­¤ò¥Ó¥ë¥É¤·Ä¾¤·¤Æ¤ß¤Þ¤·¤¿¡£ »î¤·¤Æ¤ß¤¿¤È¤³¤í¡¢¥½¥ë¥À¥à¤¬ÀѤߤ¢¤¬¤Ã¤¿¤È¤­¤ä¥²¡¼¥à¥ª¡¼¥Ð¡¼»þ¤Î¥½¥ë¥À¥à¤¬Êø¤ì¤ë¤È¤³¤í¤Ê¤É¡¢ Á°¥Ð¡¼¥¸¥ç¥ó¤Ç¤ÏÈó¾ï¤ËÃÙ¤¯¤Ê¤Ã¤Æ¤¤¤¿Éôʬ¤Î½èÍý®ÅÙ¤¬¡¢¤¢¤ëÄøÅÙ²þÁ±¤µ¤ì¤Æ¤¤¤Þ¤·¤¿¡£ ¤ª¤Ç¥Þ¥ë¤«BlackWings¤ËÁȤ߹þ¤ó¤Ç³Î¤«¤á¤¿Êý¤¬¥Õ¥§¥¢¤Ê¤Î¤Ç¤·¤ç¤¦¤±¤ì¤É¡¢¤½¤ì¤Ï¤Þ¤¿¤¤¤º¤ì¡¢¤Ç¤¹¡£ º£²ó¤Î¹â®¥ë¡¼¥Á¥ó¤Ï¡¢¥¢¥»¥ó¥Ö¥é¤ò»È¤Ã¤Æ¤ª¤é¤º¡¢¶Ëü¤Ê¥ë¡¼¥×Ÿ³«¤â¹Ô¤Ã¤Æ¤¤¤Þ¤»¤ó¡£ ¥¹¥È¥ì¡¼¥È¤Ê¼ÂÁõ¤Ç¤¢¤Þ¤ê¹©Éפâ¤Ê¤¤(¤È¤¤¤¦¤«¡¢¤³¤Î¤Ø¤ó¤¬Ëͤ賦¤Ç¤¹^^;)¤Î¤Ç¡¢ ¤Þ¤À¤Þ¤À¹â®²½¤Î;ÃϤ¬¤¢¤ë¤È»×¤¤¤Þ¤¹¡£¼«ºî¥×¥í¥°¥é¥à¤ÎÆ°ºî®ÅÙ¤¬¤Ê¤¼¤«ÃÙ¤¤¡¢ ¤È´¶¤¸¤Æ¤ª¤é¤ì¤ëÊý¤Ï¡¢pceLCDDrawObject¤Î¹â®²½¤ËÄ©À路¤Æ¤ß¤Æ¤Ï¤¤¤«¤¬¤Ç¤·¤ç¤¦¤«¡£ * Sun Jan 27 21:10:10 JST 2002 Naoyuki Sawa - pceLCDDrawObject¤Ï¥¹¥×¥é¥¤¥È¥é¥¤¥Ö¥é¥ê¤Î3.5ÇÜÃÙ¤¤!¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¤«¡© ¤³¤ì¤Þ¤Ç¡¢»÷¤¿¤è¤¦¤Ê½èÍý¤ÎÍî¤Á¤â¤Î¥Ñ¥º¥ë¤òÆóËܺî¤ê¤Þ¤·¤¿(¤É¤Á¤é¤âÅÓÃæ¤Ç¤¹¤¬^^;)¡£ ÉÁ²è´Ø¿ô¤È¤·¤Æ¡¢ºÇ½é¤ÎÊý¤Ï¥¹¥×¥é¥¤¥È¥é¥¤¥Ö¥é¥ê¡¢¸å¤ÎÊý¤Ï´ðËÜŪ¤ÊpceLCD·Ï´Ø¿ô¤ò»È¤¤¤Þ¤·¤¿¡£ ¤½¤Î¤È¤­´¶¤¸¤¿¤³¤È: ¡ÖpceLCDDrawObject¤Ã¤Æ¡¢¥¹¥×¥é¥¤¥È¥é¥¤¥Ö¥é¥ê¤Ë³Ó¤Ù¤Æ¤¹¤´¤¯ÃÙ¤¯¤Ê¤¤¤Ç¤¹¤«¡©¡× ¤È¤¤¤¦¤ï¤±¤Çº£²ó¡¢¼ÂºÝ¤Ë®ÅÙÈæ³Ó¤ò¹Ô¤Ã¤Æ¤ß¤Þ¤·¤¿¡£¥Æ¥¹¥È¾ò·ï¤Ï¼¡¤ÎÄ̤ê¤Ç¤¹¡£ ¡¦ÇطʤϿ¿¤ÃÇò¤È¤·¤Þ¤¹¡£ ¡¦8x8¥Ô¥¯¥»¥ë¤Î¥­¥ã¥é¥¯¥¿¤ò¡¢°ì²èÌÌÅö¤¿¤ê5000¸Äɽ¼¨¤·¤Þ¤¹¡£ ¡¦8x8¥Ô¥¯¥»¥ë¤ÎÆâÌõ¤Ï¡¢È¾Ê¬¤¬È´¤­¤Ç¡¢»Ä¤êȾʬ¤ò»Í¿§¤ÇÅùʬ¤·¤Þ¤¹¡£ ¡¦10²ó²èÌ̹¹¿·¤·¤Æ¡¢¤«¤«¤Ã¤¿»þ´Ö¤ò·×¤ê¤Þ¤¹¡£ ¥½¡¼¥¹¤Ï¤³¤Á¤é http://www.piece-me.org/archive/tstspd-20020127-src.zip tstspd.c¤ÎºÇ½é¤Î¤Û¤¦¤Ë¤¢¤ë¡¢ #define SPRITE ¤ò¥³¥á¥ó¥È¥¢¥¦¥È¤¹¤ë¤ÈpceLCD¤Î¥Æ¥¹¥È¡¢ÄêµÁ¤¹¤ë¤È¥¹¥×¥é¥¤¥È¥é¥¤¥Ö¥é¥ê¤Î¥Æ¥¹¥È¤Ë¤Ê¤ê¤Þ¤¹¡£ ¤½¤ì¤Ç¤Ï·ë²Ìȯɽ¤Ç¤¹¡£ pceLCDDrawObject -> 21.207Éà ¥¹¥×¥é¥¤¥È¥é¥¤¥Ö¥é¥ê -> 6.091Éà ¤Ê¤ó¤È¡¢3.5Çܰ㤤¤Þ¤¹¡ª »²¹Í¿ôÃͤȤ·¤Æ¡¢È´¤­Ìµ¤·¤Î¥Ç¡¼¥¿¤ò»È¤Ã¤¿¾ì¹ç¤ÎpceLCDDrawObject¤Î»þ´Ö¤Ï¡¢ pceLCDDrawObject(È´¤­Ìµ¤·) -> 14.713Éà ¤½¤ì¤Ç¤âÈ´¤­Í­¤ê¤Î¥¹¥×¥é¥¤¥È¥é¥¤¥Ö¥é¥ê¤Î®ÅÙ¤Ë2.5Çܶ᤯É餱¤Æ¤¤¤Þ¤¹¡£ ¤Ê¤ª¡¢¥¹¥×¥é¥¤¥È¥é¥¤¥Ö¥é¥ê¤ÏÈ´¤­Í­¤ê¸ÇÄê¤Ê¤Î¤Ç¡¢È´¤­Ìµ¤·¤Î»þ´Ö¤Ï·×¤ì¤Þ¤»¤ó¡£ ¥ï¥óP/ECE¤¯¤é¤Ö¤µ¤ó(http://ueno.cool.ne.jp/ueno/6408/piece/index.htm)¤Î¥Ù¥ó¥Á¥Þ¡¼¥¯·ë²Ì¤Ë¤è¤ë¤È¡¢ ºÇ½ªÅª¤Ê²èÌÌžÁ÷¤ËÍѤ¤¤ëpceLCDTrans¤ÈpceLCDTransDirect¤Î°ã¤¤¤À¤±¤Ç¤Ï¡¢¤³¤³¤Þ¤Çº¹¤¬¤Ä¤«¤Ê¤¤¤Ï¤º¤Ç¤¹¡£ ¤È¤¤¤¦¤³¤È¤Ï¡¢¤³¤Îº¹¤Ï¡¢pceLCDDrawObject¤È¥¹¥×¥é¥¤¥È¥é¥¤¥Ö¥é¥ê¤ÎÉÁ²èÀ­Ç½¤Î°ã¤¤¤À¤È¹Í¤¨¤é¤ì¤Þ¤¹¡£ ¤â¤Ã¤È¤â¡¢ÈÆÍÑÀ­½Å»ë¤ÎpceLCD·Ï´Ø¿ô¤È¡¢À©¸ÂÉÕ¤­¤Ç¹â®²½¤òÌܻؤ·¤¿¥¹¥×¥é¥¤¥È¥é¥¤¥Ö¥é¥ê¤ò¡¢ ñ½ã¤ËÈæ³Ó¤¹¤ë¤Î¤Ï¥Õ¥§¥¢¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£¤·¤«¤·µÕ¤Ë¸À¤¨¤Ð¡¢pceLCDDrawObject¤Î´ðËÜŪ¤Êµ¡Ç½¤·¤« »È¤ï¤Ê¤¤¤Î¤Ê¤é¤Ð¡¢ÀìÍѲ½¤·¤¿¼«Á°¤Î´Ø¿ô¤ËÃÖ¤­´¹¤¨¤Æ¡¢¤«¤Ê¤ê¤Î¹â®²½¤¬¿Þ¤ì¤ë¤Î¤Ç¤Ï¤Ê¤¤¤Ç¤·¤ç¤¦¤«¡£ ¥ï¥óP/ECE¤¯¤é¤Ö¤µ¤ó¤Î¥Ù¥ó¥Á¥Þ¡¼¥¯µ­»ö¤Ë¤Ï¡¢¹â®¤ÊÉÁ²è¥ë¡¼¥Á¥ó¤â¾Ò²ð¤µ¤ì¤Æ¤¤¤Þ¤·¤¿¤Î¤Ç¡¢ ¤³¤ì¤ò»È¤ï¤»¤Æ夤¤Æ¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤À¤±pceLCDDrawObject¸ß´¹¤Ë¤¹¤ë¡¢¤È¤¤¤¦¤Î¤â¼ê¤«¤â¤·¤ì¤Þ¤»¤ó¡£ ¤È¤â¤«¤¯¡¢pceLCDDrawObject¤Î®Å٤ϡ¢²¿¤È¤«¤·¤¿¤¤¤È¤³¤í¤Ç¤¹¡£ * Fri Jan 25 18:45:18 JST 2002 Naoyuki Sawa - ¤°¤ì¤¤¤È¡ª¥¢¥Ã¥×¥Ç¡¼¥È¡õ¥«¡¼¥Í¥ë¤¤¤Á¤ã¤â¤ó¥³¡¼¥Ê¡¼½ÐÄ¥Èǡʥġ¼¥ëÊÔ¡Ë Íè¤Þ¤·¤¿¡¢P/ECE¥¢¥Ã¥×¥Ç¡¼¥È¤Ç¤¹¡£¤Þ¤À¤¶¤Ã¤Èį¤á¤¿¤À¤±¤Ç¤¹¤¬¡¢º£²ó¤â¤¹¤´¤¤¤Ç¤¹¤è¡ª ÆäËÌ̤ܶʹ¹¿·ÅÀ¤ò¤¤¤¯¤Ä¤«µó¤²¤Æ¤ß¤è¤¦¤È»×¤Ã¤¿¤Î¤Ç¤¹¤¬¡¢¤É¤ì¤âÌ̤ܶÇÁª¤Ó¤­¤ì¤Þ¤»¤ó¡£ »ÅÊý¤¬Ìµ¤¤¤Î¤Ç¡¢ºÇ¹âÃæ¤ÎºÇ¹â¤ÎÌ̤ܶÀ¤±¤ò¡£P/ECEÊ£¿ôÂæÀܳÂбþ¡¢¥Ö¥é¥Ü¡¼¡ª Áᮡ¢mini ISD¤Î²þÎɤ˼è¤ê³Ý¤«¤ê¤Þ¤¹¡£¤È¤êµÞ¤®¡¢Ê£¿ôÂæÀܳ¤ËÂбþ¤·¤¿¥Ð¡¼¥¸¥ç¥ó¤ò¡¢ ËÜÆüÃæ¤Ë¥¢¥Ã¥×¥í¡¼¥É¤¹¤ë¤³¤È¤ò¤ªÌ󫤤¤¿¤·¤Þ¤¹¡£º£²ó¤Ïñ½ã¤Ê²þ¤¤À¤±¤Ë¤Ê¤ê¤Þ¤¹¤¬¡¢ ¤¤¤º¤ìP/ECE¤Î¿ô¤À¤±¥¦¥¤¥ó¥É¥¦¤ò³«¤±¤ë¤è¤¦¤Ë¤·¤¿¤¤¤Ç¤¹¡£(¤Þ¤ÀÃμ±ÉÔ­¤Ç¤Ç¤­¤Þ¤»¤ó^^;) ¾¤Ë¤âÀÖ³°Àþ²þÎÉ¡¢¥Þ¥ë¥Á¥¹¥ì¥Ã¥ÉÂбþ¡¢¥é¥¤¥ó¥¹¥¯¥í¡¼¥ëÄɲá¢etc¡¢etc¡¢... ³«È¯¼Ô¤Ê¤é¶¸´îÍðÉñ¤·¤½¤¦¤ÊÆâÍƤ¬ÌÜÇò²¡¤·¡£ÃÖ¤¤¤Æ¤«¤ì¤Ê¤¤¤è¤¦¤Ë¡¢Ä´ºº³«»Ï¤Ç¤¹¡£ [Äɵ­] pieceif.dll¤ÎÌäÂêÅÀ¤Ë¤Ä¤¤¤Æ P/ECE¤òÀܳ¤·¤Ê¤¤¾õÂ֤ǡ¢¼¡¤Î¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤·¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£ ---------------------------------------------------------------------- #define STRICT #include #include #include "c:/usr/PIECE/tools/isd/pieceif.h" #pragma comment(lib,"c:/usr/PIECE/tools/isd/pieceif.lib") int main() { fprintf(stderr, "°ì²óÌÜ -> %d\n", ismInitEx(0, PIECE_DEF_WAITN)); fprintf(stderr, "Æó²óÌÜ -> %d\n", ismInitEx(0, PIECE_DEF_WAITN)); return 0; } ---------------------------------------------------------------------- °ìÅÙÌܤÏÀµ¤·¤¯¼ºÇÔ¤¹¤ë¤Î¤Ç¤¹¤¬¡¢ÆóÅÙÌܤÏÀ®¸ù¤·¤Æ¤·¤Þ¤¤¤Þ¤¹¡ªP/ECE¤Ä¤Ê¤¬¤Ã¤Æ¤Ê¤¤¤Î¤Ë¡£ pieceif.c¤Î315¹ÔÌܤǼºÇÔ¤ò¸¡½Ð¤·¤¿¤È¤­¤Ë¡¢pu->hMutex¤ò³«Êü¤·¤Æ¤¤¤Ê¤¤¤Î¤¬¸¶°ø¤Ç¤Ï¤Ê¤¤¤«¤È»×¤¤¤Þ¤¹¡£ ¤È¤ê¤¢¤¨¤º²óÈòºö¤È¤·¤Æ¡¢ ¡¦ismInitEx()¤ò¸Æ¤ó¤À¤é¡¢¤½¤ì¤¬Î㤨¼ºÇÔ¤·¤Æ¤âismExit()¤ò¸Æ¤Ö¡£ ¤Þ¤¿¤Ï¡¢ ¡¦ismInitEx()¤ò¸Æ¤ÖľÁ°¤Ç¡¢É¬¤ºismExit()¤ò¸Æ¤Ö¡£ Ëͤϡ¢¸å¼Ô¤ÇÂбþ¤·¤Þ¤·¤¿¡£ * Thu Jan 24 06:00:00 JST 2002 Naoyuki Sawa - ÀÖ³°ÀþÄÌ¿®¤Ë¼ê¤ò½Ð¤·¤Þ¤·¤¿ ¤Þ¤º¤Ï¡¢P/ECE¤ÎÀÖ³°ÀþÄÌ¿®¤Ë¼è¤êÁȤó¤Ç¤ª¤é¤ì¤ë¡¢Àè¶î¼Ô¤ÎÊý¡¹¤ÎWeb¥Ú¡¼¥¸¤òÆɤߤޤ·¤¿¡£ ...¤É¤¦¤ä¤é¡¢ÀÖ³°ÀþÄÌ¿®API¤Ë¿¿ÀµÌ̤«¤é¼è¤êÁȤà¤È¡¢ÁêÅö¤Ê¶ìÏ«¤¬Èò¤±¤é¤ì¤Ê¤¤¤è¤¦¤Ç¤¹¡£ ¤Ê¤¼¡¢P/ECE¤ÎÀÖ³°ÀþÄÌ¿®¤Ï¡¢ ¡¦¤½¤ó¤Ê¤ËÃÙ¤¤¤Î¤Ç¤·¤ç¤¦¤«¡© ¡¦¤½¤ó¤Ê¤Ë´Ö°ã¤¦¤Î¤Ç¤·¤ç¤¦¤«¡© ¡¦Á´Æó½ÅÄÌ¿®¤Ç¤Ê¤¤¤Î¤Ç¤·¤ç¤¦¤«¡© ¤³¤ì¤é¤Îµ¿Ìä¤ò²ò·è¤¹¤ë¤¿¤á¤Ë¡¢¥«¡¼¥Í¥ë¥½¡¼¥¹¤òÆɤó¤Ç¤ß¤ë¤³¤È¤Ë¤·¤Þ¤·¤¿¡£ ...Æñ²ò¤Ç¤¹¡£ËͤˤϹâÅÙ¤¹¤®¤ÆÍý²ò¤Ç¤­¤Þ¤»¤ó¡£ ¤ï¤«¤ëÉôʬ¤À¤±¤«¤é¿ä¬¤¹¤ë¤È¡¢P/ECE¤ÎÀÖ³°ÀþÄÌ¿®¤Ï¼¡¤Î¤è¤¦¤Ë¹Ô¤ï¤ì¤Æ¤¤¤ë¤È»×¤¤¤Þ¤¹¡£ ¡¦Á÷¿®Éô¤Îȯ¸÷¥Ñ¥¿¡¼¥ó¤Ï¡¢¹â®ÅÀÌǤ¬°ìÄê»þ´Ö³¤¯¤Î¤È¡¢¾ÃÅô¤¬°ìÄê»þ´Ö³¤¯¤Î¤Î¡¢·«¤êÊÖ¤·¡£ ¡¦ÅÀÌǤȾÃÅô¤Î¥ï¥ó¥Ú¥¢¤ò1ÇÈ·Á¤È¤·¤Æ¡¢¤³¤ÎÇÈ·Á¤ÎŤµ¤Ç0¤Î¥Ó¥Ã¥È¤È1¤Î¥Ó¥Ã¥È¤òɽ¤¹¡£ ÇÈŤˤè¤Ã¤Æ¥Ç¡¼¥¿¤òɽ¤¹¤Î¤Ç¡¢Æ±¤¸¥µ¥¤¥º¤Î¥Ç¡¼¥¿¤Ç¤â¡¢ÆâÍƤˤè¤Ã¤ÆÁ÷¿®¤ËɬÍפʻþ´Ö¤¬°Û¤Ê¤ê¤Þ¤¹¡£ ¡ú¡ú¡ú Îã¤Ë¤è¤Ã¤Æ¡¢ËͤÏÀÖ³°ÀþÄÌ¿®¤Ë´Ø¤·¤Æ¡¢Á´¤¯¤ÎÁǿͤǤ¹¡£ ¡ú¡ú¡ú ¤À¤«¤é¡¢¤É¤¦¤·¤Æ¤³¤ó¤ÊÊ£»¨¤Ê¤³¤È¤ò¤·¤Æ¤¤¤ë¤Î¤«¤ï¤«¤ê¤Þ¤»¤ó¤Ç¤·¤¿¡£ ¡¦Á÷¿®¤¹¤ë¥Ç¡¼¥¿¤Î¥Ó¥Ã¥È¥Ñ¥¿¡¼¥ó¤ò¡¢Ã±½ã¤ËÅÀÅô(1)¡¦¾ÃÅô(0)¤ËÂбþ¤µ¤»¤Æ¡¢ ¡¦ÈóƱ´ü¥·¥ê¥¢¥ëÄÌ¿®¤Î¤è¤¦¤ÊÊýË¡¤òºÎ¤Ã¤¿Êý¤¬´Êñ¤À¤·¡¢Â®¤¤¤Î¤Ç¤Ï¤Ê¤¤¤«¡© ¡¦²óÏ©¿Þ¤ò¸«¤ë¤ÈÁ÷¿®Éô¤È¼õ¿®Éô¤ÏÆÈΩ¤·¤Æ¤¤¤ë¤«¤é¡¢Á´Æó½ÅÄÌ¿®¤¬¤Ç¤­¤ë¤Î¤Ç¤Ï¡© ¤·¤«¤·¡¢¤¤¤¯¤Ä¤«¤Î¼Â¸³¤È¡¢ÀÖ³°ÀþÄÌ¿®¤Ë´Ø¤¹¤ëWeb¥Ú¡¼¥¸¤òÆɤó¤Ç¡¢¤½¤ì¤ÏÉÔ²Äǽ¤È¤ï¤«¤ê¤Þ¤·¤¿¡£ ¤Þ¤º°ì¤ÄÌܤε¿Ì䡣ñ½ã¤ËÅÀÅô(1)¡¦¾ÃÅô(0)¤È¤·¤Æ¤Ï¤¤¤±¤Ê¤¤¤Î¤«¡©¤½¤¦¤Ç¤­¤Ê¤¤Íýͳ¡¢¤½¤ì¤Ï¡¢ ÀÖ³°Àþ¤ò½Ð¤·¤Æ¤¤¤ë¤Î¤¬P/ECE¤À¤±¤Ç¤Ï¤Ê¤¯¡¢¼«Á³¤Î¸÷¤ä·Ö¸÷Åô¤«¤é¤â½Ð¤Æ¤¤¤ë¤«¤é¤Ç¤¹¡£ ñ½ã¤ËÀÖ³°Àþ¤ò¼õ¸÷¤·¤¿¤é1¤Î¥Ó¥Ã¥È¤È¤¹¤ë¤È¡¢ÌÀ¤ë¤¤¤È¤³¤í¤Ç¤Ï¤º¤Ã¤È1¤Î¤Þ¤Þ¤Ë¤Ê¤ë¤«¤âÃΤì¤Þ¤»¤ó¡£ ¤À¤«¤é¡¢¼«Á³¤Î¸÷¤È´Ö°ã¤¨¤Ë¤¯¤¤¡¢38KHz¤ÎÅÀÌǤòÍøÍѤ·¤Æ¤¤¤ë¤Î¤Ç¤¹¤Í¡£¤Ê¤ë¤Û¤É¡¢Ç¼ÆÀ¤Ç¤¹¡£ 38KHz¤È¤¤¤¦¤Î¤ÏP/ECEÆÃÍ­¤Î»ÅÍͤǤϤʤ¯¡¢ÀÖ³°ÀþÄÌ¿®¤Î°ìÈÌŪ¤Ê·è¤Þ¤ê¤´¤È¤ß¤¿¤¤¤Ç¤¹¡£ ¤³¤Î®ÅÙ¤¬Áª¤Ð¤ì¤¿Íýͳ¤Î°ì¤Ä¤Ï¡¢·Ö¸÷Åô¤ÎÅÀÌǤò´Ö°ã¤¨¤Æǧ¼±¤·¤Æ¤·¤Þ¤ï¤Ê¤¤Â®Å٤ʤΤÀ¤½¤¦¤Ç¤¹¡£ P/ECE¤ÎÁ÷¿®Éô¤Ïñ¤Ê¤ëLED¤Ê¤Î¤Ç¡¢38KHz¤Î¥¯¥í¥Ã¥¯À¸À®¤Ë¤Ï16¥Ó¥Ã¥È¥¿¥¤¥Þ¤òÍøÍѤ·¤Æ¤¤¤Þ¤¹¡£ ¤³¤ì¤ËÂФ·¡¢P/ECE¤Î¼õ¿®Éô¤Ï¡¢¤½¤ì¼«ÂΤ¬38KHz¤ÎÀÖ³°Àþ¤·¤«Ç§¼±¤·¤Ê¤¤¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤è¤¦¤Ç¤¹¡£ Æó¤ÄÌܤε¿Ìä¡£ÈóƱ´ü¥·¥ê¥¢¥ëÄÌ¿®¤ÈƱ¤¸ÊýË¡¤Ç¤Ï¥À¥á¤Ê¤Î¤«¡©Î㤨¤Ð9600bps¤È²¾Äꤹ¤ë¤È¡¢ 1¤Î¥Ó¥Ã¥È¤Ê¤é1/9600ÉôÖ38KHz¤ÎÅÀÌǤò·Ñ³¤·¡¢0¤Î¥Ó¥Ã¥È¤Ê¤é1/9600Éô־ÃÅô¤ò°Ý»ý¤¹¤ë¡£ 8¥Ó¥Ã¥È¤´¤È¤Ë¥¹¥¿¡¼¥È¥Ó¥Ã¥È¤È¥¹¥È¥Ã¥×¥Ó¥Ã¥È¤òÉղ᣼õ¿®Â¦¤Ï9600Hz¤Î³ä¤ê¹þ¤ß¤Ç¥µ¥ó¥×¥ê¥ó¥°¡£ 9600Hz¤Î³ä¤ê¹þ¤ß¤Ï¥­¥Ä¥¤¤è¤¦¤Ë´¶¤¸¤Þ¤¹¤¬¡¢¸½¾õ¤ÎÀÖ³°ÀþAPI¤À¤Ã¤Æ38KHz¤Î³ä¤ê¹þ¤ß¤ò»È¤Ã¤Æ¤¤¤Þ¤¹¡£ °Ê¾å¤Î¤è¤¦¤ÊÊýË¡¤Ç¤Ï¥À¥á¤Ê¤Î¤«¡©¤³¤ì¤¬¥À¥á¤ÊÍýͳ¤Ï¡¢¤É¤¦¤ä¤éÁ÷¿®Éô¤Ç¤Ï¤Ê¤¯¼õ¿®Éô¤Ë¤¢¤ë¤è¤¦¤Ç¤¹¡£ ¼õ¿®Éô¤Ï¡¢38KHz¤ÎÀÖ³°Àþ¤ò¼õ¿®¤·¤Æ¤¤¤ë´Ö1¤ò½ÐÎϤ·¡¢¼õ¿®¤·¤Æ¤¤¤Ê¤¤´Ö0¤ò½ÐÎϤ¹¤ë¡¢¤Î¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£ ¼õ¿®¤Ê¤·¾õÂÖ¤«¤é¼õ¿®¤¢¤ê¾õÂÖ¤ØÊѲ½¤·¤¿½Ö´Ö¤Ë¡¢¥Ñ¥ë¥¹¤òÁ÷½Ð¤¹¤ë¤À¤±¤Ç¤¹¡£¥Ñ¥ë¥¹Éý¤Ë°ÕÌ£¤Ï¤¢¤ê¤Þ¤»¤ó¡£ ¤Ä¤Þ¤ê¡¢¤¤¤Þ38KHz¤ÎÀÖ³°Àþ¤ò¼õ¿®¤·¤Æ¤¤¤ë¤«¡©¤È¤¤¤¦ÀÅŪ¤Ê¾ðÊó¤ÏÆÀ¤é¤ì¤Ê¤¤¤è¤¦¤Ê¤Î¤Ç¤¹¡£ ³Î¤«¤Ë¤³¤Î»ÅÍͤǥǡ¼¥¿¤òÁ÷¤ë¤Ë¤Ï¡¢ÇÈŤòÊѤ¨¤ë¤³¤È¤Ë¤è¤Ã¤Æ¥Ñ¥ë¥¹È¯À¸´Ö³Ö¤òÊѤ¨¤ë¤·¤«¤¢¤ê¤Þ¤»¤ó¡£ ¤µ¤é¤ËWeb¾å¤Î¾ðÊó¤òÄ´¤Ù¤¿¤È¤³¤í¡¢ÀÖ³°ÀþÄÌ¿®¤Ç¤Ï¡¢ÇÈŤòÊѤ¨¤ë¤Î¤¬°ìÈÌŪ¤ÊÊýË¡¤ß¤¿¤¤¤Ç¤¹¡£ ñ¤ËON/OFF¤ÎÀÚ¤êÂؤ¨¤Ç¤Ï¡¢ÀÖ³°Àþ¤ÎÆÃÀ­¾å¡¢²¿¤«ÌäÂ꤬µ¯¤­¤ë¤Î¤«¤âÃΤì¤Þ¤»¤ó¡£ ¤³¤Î¤¢¤¿¤ê¤Ë¤Ä¤¤¤Æ¤Ï¡¢°ú¤­Â³¤­ÊÙ¶¯Ãæ¤Ç¤¹¡£ ¢¨ON/OFF¤Ë¤è¤ëɽ¸½¤Ï̵Íý¤Ç¤â¡¢1/9600ÉäÎñ°Ì»þ´ÖÆâ¤Ë¥Ñ¥ë¥¹¤¬Í褿¤«¤É¤¦¤«¡¢¤ÇÂåÍѤǤ­¤Ê¤¤¤«¤Ê¡© ¡¡¼ºÇÔ¤¹¤ë²ÄǽÀ­Âç¤Ç¤¹¤¬¡¢¤Á¤ç¤Ã¤È¼Â¸³¤·¤Æ¤ß¤¿¤¤¤È»×¤¤¤Þ¤¹¡£ ¢¨¸½ºß¤Î¥«¡¼¥Í¥ë¤Ï¡¢¥Ñ¥ë¥¹¤ò¸¡½Ð¤¹¤ë¤Î¤Ë¤Ê¤¼¤«¥ì¥Ù¥ë¥È¥ê¥¬¤ËÀßÄꤷ¡¢¤ï¤¶¤ï¤¶ÊÒÊý¤ò¼Î¤Æ¤Æ¤¤¤Þ¤¹¡£ ¡¡¥¨¥Ã¥¸¥È¥ê¥¬¤Ç¤Ï¥À¥á¤Ê¤Î¤Ç¤·¤ç¤¦¤«¡©¤³¤Îµ¿Ìä¤ò²ò·è¤¹¤ë¤¿¤á¤Ë¤â¡¢¤µ¤é¤Ë¼Â¸³¤¬É¬Íפߤ¿¤¤¤Ç¤¹¡£ »°¤ÄÌܤε¿Ìä¡£Á÷¿®Éô¤È¼õ¿®Éô¤òƱ»þ¤Ë»È¤Ã¤Æ¡¢Á´Æó½ÅÄÌ¿®¤Ï¤Ç¤­¤Ê¤¤¤Î¤«¡£ ¼Â¸³¤·¤Æ¤ß¤¿¤È¤³¤í¡¢¥Ç¡¼¥¿¤òÁ÷¿®¤¹¤ë¤È¡¢¤Ê¤¼¤«¼«Ê¬¼«¿È¤Ç¤â¤½¤Î¥Ç¡¼¥¿¤ò¼õ¿®¤·¤Æ¤·¤Þ¤¦¤Î¤Ç¤¹¡£ Á÷¿®Éô¤À¤±¤ò»Ø¤Ç¤Õ¤µ¤¤¤Ç»î¤·¤Æ¤ß¤ë¤È¡¢¼«Ê¬¤¬Á÷¤Ã¤¿¥Ç¡¼¥¿¤ò¼õ¿®¤¹¤ëÊѤÊÆ°ºî¤Ï¤Ê¤¯¤Ê¤ê¤Þ¤¹¡£ ¤³¤ì¤Ï¤É¤¦¤¤¤¦¤³¤È¤Ç¤·¤ç¤¦¤«¡© ºÇ½é¡¢Áê¼ê¤ÎP/ECE¤«Éô²°¤ÎÊɤËÀÖ³°Àþ¤¬È¿¼Í¤·¤Æ¡¢ÀÖ³°Àþ¤¬Ìá¤Ã¤Æ¤­¤Æ¤¤¤ë¤Î¤«¤È¹Í¤¨¡¢ ¶õ¤Ë¸þ¤«¤Ã¤ÆÁ÷¿®¤·¤Æ¤ß¤Þ¤·¤¿¡£...¥À¥á¤Ç¤¹¡£¼õ¿®¤·¤Æ¤·¤Þ¤¤¤Þ¤¹¡£¤È¤¤¤¦¤³¤È¤Ï¡¢ Á÷¿®Éô¤«¤é½Ð¤¿¸÷¤¬¡¢Ä¾ÀÜ¡¢Î٤μõ¿®Éô¤ËÆþ¤Ã¤Æ¤·¤Þ¤Ã¤Æ¤¤¤ë¤È¤·¤«¹Í¤¨¤é¤ì¤Þ¤»¤ó¡£ (¼õ¿®Éô¤«¤éÁ÷¿®Éô¤¬¸«¤¨¤Æ¤¤¤ë¤è¤¦¤Ë¤Ï»×¤¨¤Ê¤¤¤Î¤Ç¤¹¤¬...¥±¡¼¥¹¤ÎÃæ¤Ç¤Ï¸«¤¨¤Æ¤¤¤ë¤Î¤Ç¤«¤Ê¡©) »È¤¤¾¡¼ê¤òÎɤ¯¤¹¤ë¤¿¤á¤Ë¡¢Á÷¿®Éô¤Î¾È¼Í³ÑÅÙ¤ò¹­¤¯¤·¡¢¼õ¿®Éô¤Î¼õ¸÷³ÑÅ٤⹭¤¯¤¹¤ë¤È¡¢ ¤³¤¦¤Ê¤Ã¤Æ¤·¤Þ¤¦¤Î¤Ï»ÅÊý¤¬¤Ê¤¤¤Î¤Ç¤·¤ç¤¦¤«¡£Â¾¤ÎÀÖ³°ÀþÄÌ¿®µ¡´ï¤Ç¤Ï¤É¤¦¤Ê¤Î¤«¡¢µ¤¤Ë¤Ê¤ë¤È¤³¤í¤Ç¤¹¡£ ¤¤¤º¤ì¤Ë¤»¤è¡¢Á´Æó½ÅÄÌ¿®¤Î´õ˾¤Ï´°Á´¤ËÄÙ¤¨¤Þ¤·¤¿¡£ [Äɵ­] Îɤ¯¹Í¤¨¤¿¤é¡¢¥±¡¼¥¹¤ÎÃæ¤Ç¸«¤¨¤Æ¤¤¤ë¤Î¤Ê¤é¡¢»Ø¤ÇÁë¤ò¤Õ¤µ¤¤¤Ç¼õ¿®¤·¤Ê¤¯¤Ê¤ë¤Ï¤º¤Ï¤Ê¤¤¤Ç¤¹¤Í¡£ ¤µ¤é¤Ë¤½¤Î¸å¤Î¼Â¸³¤Ç¡¢»Ø¤Ç¤Õ¤µ¤¤¤Ç¤â¼õ¿®¤·¤Æ¤·¤Þ¤¦¥±¡¼¥¹¤¬Â¿È¯¤·¤Þ¤·¤¿¡£ ¤Þ¤¿¡¢USBÅŸ»¤Ç»È¤Ã¤Æ¤¤¤ë¤È¡¢²¿¤â¤·¤Æ¤¤¤Ê¤¯¤Æ¤â¥Ñ¥ë¥¹¤¬Íè¤Æ¤·¤Þ¤¦¤è¤¦¤Ç¤¹¡£ ¤É¤¦¤ä¤é¡¢Ã±½ã¤ËÁ÷¿®Éô¤Î¸÷¤¬¼õ¿®Éô¤ËÆþ¤Ã¤Æ¤¤¤ë¡¢¤È¤¤¤¦¸¶°ø¤Ç¤Ï¤Ê¤¤¤ß¤¿¤¤¤Ç¤¹¡£ ¤â¤¦¤¹¤³¤·¡¢Ä´ºº¤¬É¬ÍפǤ¹¡£ º£²ó¤ÎÀÖ³°ÀþÄÌ¿®¤Î¼Â¸³¤Ï¡¢16¥Ó¥Ã¥È¥¿¥¤¥Þ¤Î¼Â¸³¤â·ó¤Í¤Æ¤¤¤Þ¤·¤¿¡£ 16¥Ó¥Ã¥È¥¿¥¤¥Þ¤Î¼Â¸³¤Ë¤Ä¤¤¤Æ¤Ï¡¢¶á¡¹¡¢S1C33ʬ¼¼¤Ë¤ÆÊó¹ð¤·¤è¤¦¤È»×¤¤¤Þ¤¹¡£ * Wed Jan 16 12:33:19 JST 2002 Naoyuki Sawa - ¤ªÊõ¡¢È¯¸«¡ª EPSON¤µ¤ó¡¢¤´¤á¤ó¤Ê¤µ¤¤¡£ Á°²ó¡¢S1C33¤ÎI/O¥Ý¡¼¥È¥¢¥É¥ì¥¹ÄêµÁ¥Õ¥¡¥¤¥ë¤ÏÄ󶡤µ¤ì¤Æ¤¤¤Ê¤¤¤Î¤Ç¤Ï¤Ê¤¤¤«¡© ¤È½ñ¤¤¤Æ¤·¤Þ¤¤¤Þ¤·¤¿¤¬¡¢¤·¤Ã¤«¤êÄ󶡤µ¤ì¤Æ¤¤¤Þ¤·¤¿¡£ ¤·¤«¤â¡¢Ëͤ¬ºî¤Ã¤¿¤è¤¦¤Ê#define¤Ë¤è¤ë¥¢¥É¥ì¥¹¤ÎÍåÎó¤Ç¤Ï¤Ê¤¯¡¢ ¹½Â¤ÂΤȥӥåȥե£¡¼¥ë¥É¤ò»È¤Ã¤Æ¼þÊÕ²óÏ©¥¨¥ê¥¢¤Î³Æ¥Ó¥Ã¥È¤Þ¤ÇÄêµÁ¤·¤¿¡¢ Èó¾ï¤Ë¹âÅ٤ʤâ¤Î¤Ç¤·¤¿¡£ ¤³¤ÎÄêµÁ¥Õ¥¡¥¤¥ë¡¢P/ECE¤Î¥¤¥ó¥¹¥È¡¼¥ë¥Õ¥©¥ë¥À¤ËÆþ¤Ã¤Æ¤Þ¤·¤¿¡£(¤Ï¤º¤«¤·¡Á) C:\usr\PIECE\docs\datasheet\EPSON\ccEVv4.exe ¤ò²òÅष¤¿¥Ç¥£¥ì¥¯¥È¥ê¤ÎÃæ¤Î¡¢ SAMPLE\hdr33208\c33208.h ¤Ç¤¹¡£ ¤Á¤ç¤Ã¤È·¿ÈÖ¤¬°ã¤¦¤Î¤¬µ¤¤Ë¤Ê¤ê¤Þ¤¹¤¬¡¢ËöÈø¤Î1ÈÖ¤¯¤é¤¤¤Ê¤é¡¢¤­¤Ã¤È¥Þ¥¤¥Ê¡¼¥Á¥§¥ó¥¸¤Ç¤·¤ç¤¦¡£ ¤¶¤Ã¤Èį¤á¤¿´¶¤¸¤Ç¤Ï¡¢I/O¥Ý¡¼¥È¥¢¥É¥ì¥¹¤ä¥Ó¥Ã¥È¹½À®¤Ï¡¢S1C33209¤ÈƱ¤¸¤è¤¦¤Ç¤¹¡£ ¤È¤¤¤¦¤ï¤±¤Ç¡¢ËͤÎs1c33io.h¤Ï˺¤ì¤Æ¤¯¤À¤µ¤¤¡£(^^; c33208.h¤ò»È¤¤¤Þ¤·¤ç¤¦¡ª ËͤâÁᮡ¢ºòÆü½ñ¤¤¤¿8¥Ó¥Ã¥È¥¿¥¤¥Þ¤Î¼Â¸³¥×¥í¥°¥é¥à¤ò¡¢c33208.h¤ò»È¤Ã¤Æ½ñ¤­Ä¾¤·¤Æ¤ß¤ë¤Ä¤â¤ê¤Ç¤¹¡£ ¤Á¤ç¤Ã¤Èµ¤¤ò¤Ä¤±¤Ê¤±¤ì¤Ð¤¤¤±¤Ê¤¤ÅÀ¤È¤·¤Æ¡¢³ä¤ê¹þ¤ßÍ×°ø¥¯¥ê¥¢¥Ó¥Ã¥È(bINT_F8T_F8TU0)Åù¤Ë ¥Ó¥Ã¥È¥Õ¥£¡¼¥ë¥É¤Ç¥¢¥¯¥»¥¹¤¹¤ë¤È¡¢¼ÂºÝ¤Ë¤Ï¥ê¡¼¥É/¥â¥Ç¥Õ¥¡¥¤/¥é¥¤¥ÈÆ°ºî¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¦¤Î¤Ç¡¢ ¤Þ¤À½èÍý¤·¤Æ¤¤¤Ê¤¤(ȯÀ¸¤·¤¿½Ö´Ö¤Î)³ä¤ê¹þ¤ßÍ×°ø¤Þ¤Ç¥¯¥ê¥¢¤·¤Æ¤·¤Þ¤¦¶²¤ì¤¬¤¢¤ê¤Þ¤¹¡£ ¥ä¥Ð¤½¤¦¤Ê¤È¤³¤í¤Ï¥Ó¥Ã¥È¥Õ¥£¡¼¥ë¥É¤Î°ì¤Ä¼êÁ°¡¢¥Ð¥¤¥Èñ°Ì¤ÎpINT_F8T¤ò»È¤Ã¤Æ¡¢ ¥Ó¥Ã¥ÈÁàºî¤Ï¼«Ê¬¤ÇÌÀ¼¨Åª¤Ë½ñ¤¤¤¿Êý¤¬°ÂÁ´¤«¤âÃΤì¤Þ¤»¤ó¡£ ccEVv4.exe¤Ë¤Ï¡¢Â¾¤Ë¤â¡¢¼þÊÕ²óÏ©¤Î¥µ¥ó¥×¥ë¥×¥í¥°¥é¥àÅù¤¬¤É¤Ã¤µ¤êÆþ¤Ã¤Æ¤Þ¤¹¡£ ¤³¤ì¤é¤Î¥µ¥ó¥×¥ë¥×¥í¥°¥é¥à¤ò¼«Ê¬¤ÇÍý²ò¤¹¤ë¤Î¤¬¡¢º£¸å¤ÎS1C33ʬ¼¼¤ÎÊý¿Ë¤È¤Ê¤ê¤½¤¦¤Ç¤¹¡£ ³Ú¤·¤¯¤Ê¤Ã¤Æ¤­¤Þ¤·¤¿¡ª Äɵ­: SAMPLE\drv33208\include¥Õ¥©¥ë¥À¤ÎÃæ¤Ë¤Ï¡¢¥Ó¥Ã¥È¥Õ¥£¡¼¥ë¥É¤ò»È¤ï¤Ê¤¤¡¢ ñ½ã¤ÊI/O¥Ý¡¼¥È¥¢¥É¥ì¥¹¤È¥Ó¥Ã¥È¥Þ¥¹¥¯¤ÎÄêµÁ¤â¡¢Æþ¤Ã¤Æ¤¤¤Þ¤¹¡£ ¾ì¹ç¤Ë¤è¤Ã¤Æ¤Ï¡¢¤³¤Á¤é¤ò»È¤Ã¤¿Êý¤¬¤ï¤«¤ê°×¤¤¤«¤âÃΤì¤Þ¤»¤ó¡£ * Thu Jan 13 12:25:01 JST 2002 Naoyuki Sawa - I/O¥Ý¡¼¥È¥¢¥É¥ì¥¹ mini ISD¤¬°ìÃÊÍ¤¿¤Î¤Ç¡¢Windows¦¤Î¥×¥í¥°¥é¥à¤Ï¤Ò¤È¤Þ¤º½ªÎ»¤Ç¤¹¡£ ¤Þ¤¿¡¢P/ECEËÜÂΤÎÊÙ¶¯¤ËÌá¤ë¤³¤È¤Ë¤·¤Þ¤·¤¿¡£ ¤µ¤Æ¡¢¤¢¤Á¤³¤Á¤ÎI/O¥Ý¡¼¥È¤òÁàºî¤¹¤ë¥×¥í¥°¥é¥à¤Î¼Â¸³¤ò¤¹¤ë»þ¤Ë¡¢ I/O¥Ý¡¼¥È¥¢¥É¥ì¥¹¤ÎÃͤòľÀÜ¥×¥í¥°¥é¥àÃæ¤Ë½ñ¤¯¤Î¤Ï¡¢´Ö°ã¤¤¤Î¸µ¤Ç¤¹¡£ ´Êñ¤Î¤¿¤á¤Ë¡¢I/O¥Ý¡¼¥È¥¢¥É¥ì¥¹¤òÄêµÁ¤·¤¿¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤¬¡¢ ¥á¡¼¥«¡¼(EPSON¤Ç¤¹¤Í)¤«¤éÄ󶡤µ¤ì¤Æ¤¤¤ë¤Î¤Ç¤Ï¤Ê¤¤¤«¤È»×¤¦¤Î¤Ç¤¹¤¬¡¢ ¥«¡¼¥Í¥ë¥½¡¼¥¹¤âÁ´¤ÆľÀÜ¥¢¥É¥ì¥¹Ãͤǽñ¤«¤ì¤Æ¤¤¤ë¤È¤³¤í¤ò¸«¤ë¤È¡¢ ¤â¤·¤«¤·¤¿¤é¡¢Ä󶡤µ¤ì¤Æ¤¤¤Ê¤¤¤Î¤«¤âÃΤì¤Þ¤»¤ó¡£ ¤½¤³¤Ç¡¢I/O¥Ý¡¼¥È¥¢¥É¥ì¥¹¤òÄêµÁ¤·¤¿¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤òºî¤Ã¤Æ¤ß¤Þ¤·¤¿¡£ http://www.piece-me.org/archive/s1c33io.h ÉÕ°¤Îs1c33209_221_222j.pdf¤«¤éÈ´¤­½Ð¤·¤ÆÀ°·Á¤·¤¿¤À¤±¤Ê¤Î¤Ç¤¹¤¬¡¢ ¼Â¤Ï¤³¤ÎPDF¥Õ¥¡¥¤¥ë¡¢¥Æ¥­¥¹¥È¤ÎÈ´¤­½Ð¤·¤¬¶Ø»ß¤µ¤ì¤Æ¤¤¤¿¤Î¤ò ̵Íý¤ä¤êÈ´¤­½Ð¤·¤Æ¤·¤Þ¤Ã¤¿¤Î¤Ç¡¢¤Á¤ç¤Ã¤ÈÌäÂꤢ¤ê¤«¤âÃΤì¤Þ¤»¤ó¡£ * Thu Jan 3 12:25:01 JST 2002 Naoyuki Sawa - ¤ä¤Ã¤Ñ¤ê2000¤ÎÊý¤¬°ÂÄꤷ¤Æ¤Þ¤·¤¿ P/ECE¤Î³«È¯´Ä¶­¤ò¡¢Windows Me¤«¤é2000¤Ë°Ü¹Ô¤·¤Þ¤·¤¿¡£ ¤Þ¤ÀȾÆü¤Û¤É¤·¤«»È¤Ã¤Æ¤¤¤Þ¤»¤ó¤¬¡¢´¶ÁÛ: ¡ÖUSB¤¬¤¹¤´¤¯°ÂÄꤷ¤¿¤è¤¦¤Êµ¤¤¬¤¹¤ë...¡× Me¤Ç¤Ï¡¢P/ECE¤òÉÕ¤±³°¤·¤·¤¿Çï»Ò¤Ë¡¢¤Ê¤¼¤«USBÀܳ¤¬¤Ç¤­¤Ê¤¯¤Ê¤ê¡¢ ¤½¤Î¤Þ¤ÞWindows¤Þ¤Ç¸Ç¤Þ¤Ã¤Æ¤·¤Þ¤¦¡¢¤È¤¤¤¦¸½¾Ý¤¬Æü¤Ë¿ô²ó¤¢¤ê¤Þ¤·¤¿¡£ Âкö¤È¤·¤Æ¡¢P/ECE¤ò¥¹¥ê¡¼¥×¤·¤¿¾õÂ֤ǤÏPC¤Ë¼è¤êÉÕ¤±¤Ê¤¤¡¢ ¤­¤Á¤ó¤È¥á¥Ë¥å¡¼¤ËÌá¤Ã¤Æ¤«¤é¼è¤ê³°¤¹¡¢¤Ê¤É¤Ëµ¤¤ò¤Ä¤±¤Æ¤¤¤¿¤Î¤Ç¤¹¤¬¡¢ ¤½¤ì¤Ç¤â¤ä¤Ï¤ê¸Ç¤Þ¤ë¤È¤­¤Ï¸Ç¤Þ¤Ã¤Æ¤¤¤¿¤Î¤Ç¤¹¡£ 2000¤Ë¤·¤Æ¤«¤é¤Ï¡¢¤«¤Ê¤êÍð˽¤ËÉÕ¤±³°¤·¤·¤Æ¤â¡¢¤¼¤ó¤¼¤óÌäÂê¤Ê¤·¡£ ¤³¤ì¤Þ¤Ç¡¢NT·ÏWindows¤Ë¤Ï¤¢¤Þ¤ê¤¤¤¤°õ¾Ý¤¬¤Ê¤«¤Ã¤¿¤Î¤Ç¤¹¤¬ (¤À¤Ã¤Æ¥²¡¼¥àÆ°¤«¤Ê¤¤¤â¤ó)¡¢¤³¤ó¤Ê¤Ë²÷Ŭ¤Ë¤Ê¤ë¤È¤Ï»×¤¤¤Þ¤»¤ó¤Ç¤·¤¿¡£ ¤â¤·¤«¤·¤Æ¡¢XP¤Ã¤Æ¤â¤Ã¤È²÷Ŭ¤Ê¤ó¤Ç¤·¤ç¤¦¤«¡© * Fri Dec 28 21:31:41 JST 2001 Naoyuki Sawa (29Æü¹¹¿·Ê¬) - ¡ÖÁ÷¤ë¡×¤È¡Ö¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤«¤é³«¤¯¡×¤Î°ã¤¤ º£²ó¤Ï¡¢P/ECE¤Ç¤Ï¤Ê¤¯¡¢Windows¤ÎÏÃÂê¤Ç¤¹¡£ mini ISD¤Î¥Ð¥°¤¬¤Ò¤È¤Ä¼è¤ì¤Þ¤·¤¿¡£ ±¦¥¯¥ê¥Ã¥¯¤·¤Æ¡ÖÁ÷¤ë¡×¤«¤é¤Î½ñ¤­¹þ¤ß¤Ê¤é¤Á¤ã¤ó¤ÈÆ°¤¯¤Î¤Ë¡¢ ¡Ö¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤«¤é³«¤¯¡×¤«¤é¤Î½ñ¤­¹þ¤ß¤À¤È¥¨¥é¡¼¤Ë¤Ê¤Ã¤Æ¤¤¤¿¸¶°ø¡£ ¤½¤ì¤Ï¡¢ ¡¦¡ÖÁ÷¤ë¡×¤Î¾ì¹ç¤Ï¥Õ¥¡¥¤¥ë̾¤Ï"¡Á"¤Ç°Ï¤Þ¤ì¤Ê¤¤¤¬ ¡¦¡Ö¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤«¤é³«¤¯¡×¤À¤È"¡Á"¤Ç°Ï¤Þ¤ì¤ë ¤È¤¤¤¦¤â¤Î¤Ç¤·¤¿¡£ Î㤨¤Ð¡¢¡Öc:\usr\piece\app\pex\tank.pfs¡×¤ò½ñ¤­¹þ¤à¾ì¹ç¡¢¡ÖÁ÷¤ë¡×¤Ê¤é minisd.exe c:\usr\piece\app\pex\tank.pfs ¤Èµ¯Æ°¤µ¤ì¤Þ¤¹¡£¤³¤ì¤ËÂФ·¡¢¡Ö¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤«¤é³«¤¯¡×¤ò»È¤Ã¤¿¾ì¹ç¤Ï minisd.exe "c:\usr\piece\app\pex\tank.pfs" ¤Èµ¯Æ°¤µ¤ì¤Þ¤¹¡£ ³ÈÄ¥»Ò´ØÏ¢ÉÕ¤±¤Î¾ì¹ç¤â¡¢¡Ö¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤«¤é³«¤¯¡×¤Î¾ì¹ç¤ÈƱÍͤǤ¹¡£ ¤³¤ì¤Ã¤Æ¡¢¤³¤¦¤¤¤¦»ÅÍͤʤΤǤ·¤ç¤¦¤«¡©Ëͤϡ¢ÃΤê¤Þ¤»¤ó¤Ç¤·¤¿¡£ ¡Ö¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤«¤é³«¤¯¡×¤Î·Á¼°¤ËÂбþ¤¹¤ëÊýË¡¤È¤·¤Æ¤Ï¡¢ "¡Á"¤Ç°Ï¤Þ¤ì¤¿¥Õ¥¡¥¤¥ë̾¤ò¤­¤Á¤ó¤È²òÀϤ¹¤Ù¤­¤Ê¤Î¤Ç¤¹¤¬¡¢ ¤È¤ê¤¢¤¨¤º¡¢¥Õ¥¡¥¤¥ë̾¤ÎÀÚ¤êʬ¤±Ê¸»ú¤È¤·¤Æ¡¢¶õÇòʸ»ú¤Ë²Ã¤¨¤Æ ¥À¥Ö¥ë¥¯¥ª¡¼¥Æ¡¼¥·¥ç¥ó¤â´Þ¤á¤Æ¤·¤Þ¤¤¤Þ¤·¤¿^^; * Thu Dec 27 22:39:04 JST 2001 Naoyuki Sawa - ¶Ë¾®¥Õ¥©¥ó¥ÈÀµ¼°µ­ºÜ ¤Þ¤¿¤Þ¤¿P/ECE¤Î¥¢¥Ã¥×¥Ç¡¼¥È¤Ç¤¹¡£¤â¤Ï¤äÀä¶ç¡£¶²¤ë¤Ù¤­¥Ñ¥ï¡¼¤À... ¤µ¤Æ¡¢°ÊÁ°¤ÎÏÃÂê¤Ë¤â¼è¤ê¾å¤²¤Þ¤·¤¿pceFontSetType(2)¤Î¶Ë¾®¥Õ¥©¥ó¥È¤¬¡¢ API¥ê¥Õ¥¡¥ì¥ó¥¹¤Ëµ­ºÜ¤µ¤ì¤Æ¤¤¤Þ¤·¤¿¡£¤³¤ì¤Ç°Â¿´¤·¤Æ»È¤¨¤Þ¤¹¤Í¡£ ¤½¤·¤Æ...Ãö̾Àî¤ÇÇä¤í¤¦¡ª¤¬¥ê¥ê¡¼¥¹¤µ¤ì¤Þ¤·¤¿¡£ ¥¢¥¯¥¢¥×¥é¥¹¤µ¤ó¡¢Ì̥ܶ²¡¼¥à¤Ê¤Î¤Ë¡¢¥¢¥Ê¥¦¥ó¥¹¤¬ÃÏÌ£¤¹¤®¤Ç¤¹^^; ¥È¥Ã¥×¥Ú¡¼¥¸¤ÎP/ECE¤Î²èÌ̤˥С¼¥ó¡ª¤ÈŽ¤ê¹þ¤à¤°¤é¤¤¤ä¤ó¤Ê¤¤¤È¡£ * Thu Dec 27 07:46:43 JST 2001 Naoyuki Sawa - Ã༡½èÍý¥×¥í¥°¥é¥à#2 ºÙ˦ʬÎö¥¢¥ª¥ß¥É¥í¥ó¤Î¥Ð¡¼¥¸¥ç¥ó0.01¤ò¸ø³«¤·¤Þ¤·¤¿¡£ ¤¼¤ó¤¼¤ó̤´°À®¤Ç¤ªÃѤº¤«¤·¤¤¸Â¤ê¤Ç¤¹¤¬¡¢ ¼Â¤Ï¤â¤Ã¤È¤ªÃѤº¤«¤·¤¤¤Î¤Ï¥½¡¼¥¹¥³¡¼¥É¤Ê¤Î¤Ç¤¹¡ª °ÊÁ°¡¢Ã༡½èÍý¥×¥í¥°¥é¥à¤Î¥¹¥±¥ë¥È¥ó¤ò¤´¾Ò²ð¤·¤Þ¤·¤¿¤¬¡¢ ¤³¤Î¥²¡¼¥à¤Ï¤Þ¤µ¤Ë¤½¤ì¤ò»È¤Ã¤Æ½ñ¤¤¤Æ¤¢¤ê¤Þ¤¹¡£ main()¤«¤é»Ï¤Þ¤Ã¤Æ¤Ù¤¿¡Á¤Ã¤Èή¤ì¤ë¡¢ P/ECE¤Ë¤¢¤ë¤Þ¤¸¤­ºÇ°­¤ÎÀ߷פò¤´´®Ç½¤¯¤À¤µ¤¤¡£ * Tue Dec 25 05:44:09 JST 2001 Naoyuki Sawa - PCEWAVEINFO¤ÏautoÊÑ¿ô¤Ë¤·¤Æ¤Ï¤¤¤±¤Ê¤¤ ¤Ê¤Ë¤ò¤¤¤Þ¤µ¤é...¤Ã¤Æ´¶¤¸¤Ç¤¹¤¬¡¢ËͤϺ£Æüµ¤¤¬¤Ä¤¤¤¿¤Î¤Ç^^;½ñ¤­¤Þ¤¹¡£ ADPCMºÆÀ¸¤ò´Êñ¤Ë¹Ô¤¦¤¿¤á¡¢¼¡¤Î¤è¤¦¤Ê´Ø¿ô¤òÍÑ°Õ¤·¤¿¤È¤·¤Þ¤·¤ç¤¦¡£ void sound_play(int ch, const void* data) { PCEWAVEINFO winfo; winfo = *(PCEWAVEINFO*)((char*)data + 8); winfo.pData = (char*)data + 8 + sizeof(PCEWAVEINFO); pceWaveDataOut(ch, &winfo); } ¤·¤«¤·¤³¤Î¥×¥í¥°¥é¥à¤Ï¡¢ÃÙ¤«¤ìÁᤫ¤ì¡¢°Û¾ïÆ°ºî¤òµ¯¤³¤·¤Þ¤¹¡£ ¤½¤ÎÍýͳ¤Ï¡¢¥µ¥¦¥ó¥ÉºÆÀ¸´°Î»»þ¤Ë¡¢winfo.stat¤ËPW_STAT_END¤¬ ½ñ¤­¹þ¤Þ¤ì¤ë¤«¤é¤Ç¤¹¡£¼ÂºÝ¤Ë¤Ï¡¢¥µ¥¦¥ó¥ÉºÆÀ¸´°Î»»þ¤Ë¤Ï¤È¤Ã¤¯¤Ë sound_play()´Ø¿ô¤«¤é¥ê¥¿¡¼¥ó¤·¤Æ¤¤¤Æ¡¢winfo¤Î¼ÂÂΤϤ¢¤ê¤Þ¤»¤ó¡£ ¤½¤Î¥¢¥É¥ì¥¹¤Ë¤Ï¡¢Ê̤δؿô¤Î¥í¡¼¥«¥ëÊÑ¿ô¤Ê¤É¤¬Â¸ºß¤¹¤ë¤Ç¤·¤ç¤¦¡£ ¤Ä¤Þ¤ê¡¢Ê̤ÎÊÑ¿ô¤Ë¤¤¤­¤Ê¤êPW_STAT_END¤¬½ñ¤­¹þ¤Þ¤ì¤ë¤³¤È¤Ë¤Ê¤ê¡¢ ¥×¥í¥°¥é¥à¤Ï°Û¾ïÆ°ºî¤òµ¯¤³¤·¤Æ¤·¤Þ¤¦¤Î¤Ç¤¹¡£ sound_play()´Ø¿ô¤Ï¡¢¼¡¤Î¤è¤¦¤Ë½ñ¤­´¹¤¨¤ë¤ÈÀµ¤·¤¯Æ°¤­¤Þ¤¹¡£ void sound_play(int ch, const void* data) { static PCEWAVEINFO winfo[4]; winfo[ch] = *(PCEWAVEINFO*)((char*)data + 8); winfo[ch].pData = (char*)data + 8 + sizeof(PCEWAVEINFO); pceWaveDataOut(ch, &winfo[ch]); } ºÆÀ¸¥Á¥ã¥ó¥Í¥ë¤´¤È¤ËPCEWAVEINFO¤òʬ¤±¤ëɬÍפϤʤ¤¤Î¤Ç¤¹¤¬¡¢µ¤Ê¬¤ÎÌäÂê¤Ç¤¹¡£ ¤è¤êÀµ³Î¤Ë¤Ï¡¢³«È¯¥­¥Ã¥ÈÉÕ°¤Îadpcm/hello.c¤ò¤´Í÷²¼¤µ¤¤¡£ ¤½¤¦¡¢ÉÕ°¤Îadpcm/hello.c¥µ¥ó¥×¥ë¥³¡¼¥É¤Ë¤Ï¡¢²òÅú¤¬ºÜ¤Ã¤Æ¤¤¤¿¤Î¤Ç¤¹¡£ ¤Ë¤â¤«¤«¤ï¤é¤º¡¢Ëͤ¬¤³¤Î·ï¤Ç¥Ï¥Þ¤Ã¤Æ¤·¤Þ¤Ã¤¿¸¶°ø¤Ï¡¢API¥ê¥Õ¥¡¥ì¥ó¥¹¤Ë¤¢¤ê¤Þ¤¹¡£ P/ECE API¥ê¥Õ¥¡¥ì¥ó¥¹¤Ë¤Ï¡¢¼¡¤Î¤è¤¦¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ > ver1.07 °Ê¹ß¤Ï PW_TYPE_CONT ¤ò»ØÄꤷ¤Ê¤¤¾ì¹ç¤Ë¸Â¤ê > *pwave ¤Ï¨ºÂ¤Ë²òÊü¤µ¤ì¤Þ¤¹¡£ ¤³¤ì¤Ç¤Ï¡¢PCEWAVEINFO¤Ï¥¹¥¿¥Ã¥¯¾å¤Ë¼è¤ì¤ë¤È»×¤Ã¤Æ¤·¤Þ¤¤¤Þ¤¹¤è¤Í¡©¤Í¡© ¤½¤â¤½¤â¡¢ºÆÀ¸½ªÎ»»þ¤ËPW_STAT_END¤ò½ñ¤­¹þ¤ó¤Ç¤¯¤ì¤Ê¤¯¤Æ·ë¹½¤Ç¤¹¡£ ¤Á¤ç¤Ã¤È¤°¤Á¤Ã¤Ý¤¯¤Ê¤Ã¤Æ¤·¤Þ¤¤¤Þ¤·¤¿¡£¤´¤á¤ó¤Ê¤µ¤¤¡£ ¥á¥ê¡¼¥¯¥ê¥¹¥Þ¥¹¡ª * Sun Dec 23 07:24:23 JST 2001 Naoyuki Sawa - memset()¤Î°ú¿ô¤Ë¤´ÍÑ¿´ P/ECEÉÕ°¤Î¥³¥ó¥Ñ¥¤¥é¤Ç¡¢¼¡¤Î¤è¤¦¤Ê¥³¡¼¥É¤ò¥³¥ó¥Ñ¥¤¥ë¤·¤Æ¤ß¤Þ¤·¤ç¤¦¡£ memset(vbuf, sizeof vbuf); ¤³¤ì¡¢ÌÀ¤é¤«¤Ë memset(vbuf, 0, sizeof vbuf); ¤Î½ñ¤­´Ö°ã¤¤¤Ê¤Î¤Ç¤¹¤¬¡¢¤·¤«¤·¥¨¥é¡¼¤Ê¤¯¥³¥ó¥Ñ¥¤¥ë¤Ç¤­¤Æ¤·¤Þ¤¤¤Þ¤¹¡£ ¤â¤Á¤í¤ó¡¢Àµ¤·¤¯Æ°ºî¤·¤Þ¤»¤ó¡£ ¤Ê¤¼¡¢¤³¤¦¤Ê¤ë¤«¡£ memset()¤Ïstring.h¤ÇÀë¸À¤µ¤ì¤Æ¤¤¤ë¤Î¤Ç¤¹¤¬¡¢ string.h¤Ç¤Î´Ø¿ôÀë¸À·Á¼°¤¬¡¢¸Å¤¤·Á¼°¤Ç½ñ¤«¤ì¤Æ¤¤¤ë¤«¤é¤Ç¤¹¡£ ¤Ä¤Þ¤ê¡¢ void* memset(void* s, int c, size_t n); ¤Ç¤Ï¤Ê¤¯¡¢ char* memset(); ¤ÈÀë¸À¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ C¸À¸ì¤ÏC++¸À¸ì¤È°ã¤¤¡¢°ú¿ô¥ê¥¹¥È¤¬¶õ¤ÇÀë¸À¤µ¤ì¤Æ¤¤¤ë´Ø¿ô¤Ï¡¢ ¼ÂºÝ¤ÎÄêµÁ¤ä»ÈÍÑ»þ¤Ë¡¢¤É¤ó¤Ê°ú¿ô¤ò»ØÄꤷ¤Æ¤â¥¨¥é¡¼¤Ë¤Ê¤ê¤Þ¤»¤ó¡£ ¤³¤Î¾ì¹ç¤¬¤Þ¤µ¤Ë¤½¤ì¤ËÅö¤ê¤Þ¤¹¡£ Ʊ¤¸¤¯string.h¤ÇÀë¸À¤µ¤ì¤Æ¤¤¤ëstrcpy()¤ästrlen()¤Ê¤É¿¿ô¤Î´Ø¿ô¡¢ time.h¤ÇÀë¸À¤µ¤ì¤Æ¤¤¤ë´Ø¿ô¤â¡¢¤É¤ó¤Ê°ú¿ô¤ò»ØÄꤷ¤Æ¤â ¥³¥ó¥Ñ¥¤¥ë¥¨¥é¡¼¤Ë¤Ê¤é¤Ê¤¤¤Î¤Ç¡¢Ãí°Õ¤¬É¬ÍפǤ¹¡£ ÆäËstring.h¤ÇÀë¸À¤µ¤ì¤Æ¤¤¤ë´Ø¿ô¤Ï¡¢Â¿ÍѤ¹¤ë¤â¤Î¤Ð¤«¤ê¤Ê¤Î¤Ç¡¢ °ú¿ô¤ò´Ö°ã¤¦²ÄǽÀ­¤â¹â¤¯¡¢Èó¾ï¤Ë´í¸±¤Ç¤¹¡£ ¤È¤³¤í¤Çmemset()¤ÎÀë¸À¡¢Ìá¤êÃͤâ°ã¤Ã¤Æ¤¤¤ë¤è¤¦¤Ç¤¹¤¬¡¢ ÀΤÎmemset()¤Ïvoid*¤¸¤ã¤Ê¤¯¤Ã¤Æchar*¤òÊÖ¤·¤Æ¤¤¤¿¤Î¤Ç¤·¤ç¤¦¤«¡© ¼ê¸µ¤ÎK&RÂè2ÈǤǤϡ¢´û¤Ëvoid*¤òÊÖ¤¹¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¤¬... * Sat Dec 22 01:09:08 JST 2001 Naoyuki Sawa - BIOS ver1.14 º£½µËö¤âP/ECE¤Î¥¢¥Ã¥×¥Ç¡¼¥È¤¬¤¢¤ê¤Þ¤·¤¿¡£ ¤³¤ó¤Ê¼ê¸ü¤¤¥µ¥Ý¡¼¥È¤·¤Æ¡¢¥á¡¼¥«¡¼¤ÏÂç¾æÉפʤó¤Ç¤·¤ç¤¦¤«¡© ;·×¤Ê¤ªÀ¤ÏäǤ·¤ç¤¦¤¬¡¢¿´ÇÛ¤·¤Æ¤·¤Þ¤¤¤Þ¤¹¡£ º£²ó¤Î¥¢¥Ã¥×¥Ç¡¼¥È¤Ç¡¢P/ECE¥³¥ß¥å¥Ë¥±¡¼¥¿¤¬¥É¥é¥Ã¥°&¥É¥í¥Ã¥×¤ËÂбþ¤·¤¿ÌÏÍÍ¡£ ËͤÎmini ISD¤Ï¡¢ÍѺѤߤȤʤäƤ·¤Þ¤¤¤Þ¤·¤¿¡£ ¤¢¤È¤Ï¡¢P/ECE¤«¤éWindows¤Ø¤Î¥É¥é¥Ã¥°&¥É¥í¥Ã¥×¤ò¼ÂÁõ¤·¤Æº¹Ê̲½¤¹¤ë¤·¤«¤Ê¤¤¤Î¤Ç¤¹¤¬¡¢ ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤«¤é¥¨¥¯¥¹¥×¥í¡¼¥é¤Ø¤Î¥É¥é¥Ã¥°&¥É¥í¥Ã¥×¤Ã¤Æ¡¢¤ä¤êÊýÃΤé¤Ê¤¤...^^; ¤¦¡Á¤à¡¢¤Á¤ç¤Ã¤ÈÊÙ¶¯¤¬É¬ÍפǤ¹¡£ BIOS ver1.14¤«¤éBIOS ver1.14¤Ø¤Î¥¢¥Ã¥×¥Ç¡¼¥È(¤Ä¤Þ¤êƱ°ì¥Ð¡¼¥¸¥ç¥ó¤Î¾å½ñ¤­)»þ¤Ë¡¢ ¥¢¥ä¥·¥¤¿¶¤ëÉñ¤¤¤¬¤¢¤ê¤Þ¤·¤¿¤Î¤Ç¡¢¥È¥é¥Ö¥ë¥·¥å¡¼¥È·Ç¼¨ÈĤËÊó¹ð¤·¤Þ¤·¤¿¡£ P/ECE¾å¤Î¥Õ¥¡¥¤¥ë¤òÁ´¤Æ¾Ã¤µ¤Ê¤¤¤È¡¢Æ±°ì¥Ð¡¼¥¸¥ç¥ó¤Î¾å½ñ¤­¤Ë¼ºÇÔ¤¹¤ë¤È¤¤¤¦¤â¤Î¤Ç¤¹¡£ ¤¦¤Á¤À¤±¤Î¸½¾Ý¤Ê¤é¤¤¤¤¤Î¤Ç¤¹¤¬¡£ * Wed Dec 19 17:18:36 JST 2001 Naoyuki Sawa - __FILE__¥Þ¥¯¥í¤¬Àµ¤·¤¯Å¸³«¤µ¤ì¤Ê¤¤ pcc33¤Ï¡¢__FILE__¥Þ¥¯¥í¤òÀµ¤·¤¯Å¸³«¤·¤Ê¤¤ÌÏÍͤǤ¹¡£ Î㤨¤Ð¡¢¤³¤ó¤Ê´Ø¿ô¤ò´Þ¤à¥×¥í¥°¥é¥à... const char* test() { return __FILE__; } ¤ò¡¢ pcc33 -c sample.c ¤Ç¥³¥ó¥Ñ¥¤¥ë¤·¤Æ¤ß¤ë¤È¡¢ "sample.c"¤Ç¤Ï¤Ê¤¯"sample.$"¤ËŸ³«¤µ¤ì¤Þ¤¹¡£ pcc33¤ÏÆâÉô¤Çgcc33¤ò¸Æ¤Ó½Ð¤·¤Æ¤¤¤ë¤Î¤Ç¡¢ ¤è¤ê¥Ô¥å¥¢¤Êgcc33¤òľÀÜ»È¤Ã¤Æ gcc33 -c sample.c ¤È¤·¤Æ¤ß¤ë¤È¡¢¤Á¤ã¤ó¤È"sample.c"¤ËŸ³«¤µ¤ì¤Þ¤¹¡£ ¤¿¤Ö¤ó¡¢pcc33¤¬Á°½èÍý¤ò¹Ô¤Ã¤¿°ì»þ¥Õ¥¡¥¤¥ë¡¢ sample.$¤ËÂФ·¤Ægcc33¤¬¸Æ¤Ó½Ð¤µ¤ì¤Æ¤¤¤ë¤Î¤Ç¤·¤ç¤¦¤Í¡£ ¼ÂºÝ¤Ë¤Ïgcc33¤òľÀܻȤ¦¤³¤È¤Ï¾¯¤Ê¤¤¤È»×¤¦¤Î¤Ç¡¢ ÅöÌÌ¡¢¥é¥ó¥¿¥¤¥à¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤Ê¤É¤Ëɽ¼¨¤µ¤ì¤ë ¥Õ¥¡¥¤¥ë̾¤¬¤ª¤«¤·¤¤¤È¤¤¤¦ÅÀ¤Ï²æËý¤»¤¶¤ë¤òÆÀ¤Ê¤¤¤è¤¦¤Ç¤¹¡£ ¤¢¡¢¤¤¤Þµ¤¤¬ÉÕ¤­¤Þ¤·¤¿¤¬¡¢Á°½èÍý¤ò¹Ô¤Ã¤¿¸å¤Î¥Õ¥¡¥¤¥ë¤Ç __FILE__¤¬Å¸³«¤µ¤ì¤Æ¤¤¤ë¤Î¤Ê¤é¡¢¤­¤Ã¤È__LINE__¤âƱ¤¸¤«¤Ê¡© ¤â¤·¤½¤¦¤Ê¤é¤Ð¡¢¹ÔÈֹ椬ÊѤï¤ë¤Î¤Ï¤­¤Ó¤·¤¤¤Ê¤¡... Íס¢Ä´ºº¤Ç¤¹¡£ * Sun Dec 16 20:00:58 JST 2001 Naoyuki Sawa - ¥½¥ë¥À¥à/¥»¥­¡¼¥í ¤½¤í¤½¤í¼ÂºÝ¤ËP/ECE¤Ç¥²¡¼¥à¤òºî¤é¤Í¤Ð¡£ ¤Þ¤º¤Ï¸¦µæ¤È¤¤¤¦Ì¾Ìܤǡ¢¥½¥ë¥À¥à/¥»¥­¡¼¥í(JARECO 1992)¤ÇÍ·¤Ö¡£ Í·¤ÖÍ·¤Ö¡£¤ª¤â¤·¤ì¡Á¡£ ¤³¤Î¥²¡¼¥à¡¢Èó¾ï¤Ë¥Þ¥¤¥Ê¡¼¤ÊÉôÎà¤ËÆþ¤ê¤Þ¤¹¤¬¡¢ ONE OF MY BEST Íî¤Á¤â¤Î¥Ñ¥º¥ë¥²¡¼¥à¤Ê¤Î¤Ç¤¹¡£ Íî¤Á¤â¤Î¥Ñ¥º¥ë¤È¤¤¤¦¤È¡¢±¦¤âº¸¤âÏ¢º¿¡¦Ï¢º¿¤ÎÉ÷Ĭ¤Ç¤¢¤Ã¤¿Åö»þ¡¢ ¤ï¤¬Æ»¤ò¹Ô¤¯ÃÏÆ»¤Çø¡¹¤È¤·¤¿¥²¡¼¥àÀ­¡¢ ¥¹¥Ô¡¼¥Ç¥£¤Ê¥½¥ë¥À¥à¤È¡¢¤¸¤Ã¤¯¤ê¹¶Î¬¥»¥­¡¼¥í¡¢¤Î£²¥â¡¼¥É¡£ ½½Ç¯¶á¤¯·Ð¤Ã¤¿º£¤Ç¤â¡¢¤Þ¤Ã¤¿¤¯¿§¤¢¤»¤Æ¤ª¤ê¤Þ¤»¤ó¡£ ¤Þ¤¢¡¢90%¤°¤é¤¤¶Ê°Í¸¥²¡¼¤Ê¤Î¤ÏÈݤá¤Þ¤»¤ó¤¬... ³§Íͤ⳹Ãæ¤Ç¸«¤«¤±¤¿¤é¡¢¤¼¤ÒÍ·¤ó¤Ç¤ß¤ë¤³¤È¤ò¤ª´«¤á¤·¤Þ¤¹¡£ ¤Þ¤º¸«¤«¤±¤Ê¤¤¤±¤É^^; ¤µ¤Æ¡¢¤â¤¦£±¥²¡¼¥à¹Ô¤­¤Þ¤¹¤«¡£...¤Ï¤Ã¡ªËͤϲ¿¤ò¤ä¤Ã¤Æ¤ë¤ó¤À¡© * Sun Dec 16 09:04:57 JST 2001 Naoyuki Sawa - NULL¥Ý¥¤¥ó¥¿¤Ø¤Î½ñ¤­¹þ¤ß P/ECE¤ÎCPU¡¢S1C33¤Ë¤Ï¥á¥â¥êÊݸǽ¤¬¤Ê¤¤¤Î¤Ç¡¢ ¥Æ¥­¥È¡¼¤Ê¥¢¥É¥ì¥¹¤òÆɤ߽ñ¤­¤·¤Æ¤â¡¢¤½¤Î¾ì¤Ç¤¹¤°¤Ë ¡Ö¥¢¥É¥ì¥¹0x12345678¤¬Read¤Ë¤Ê¤ì¤Þ¤»¤ó¤Ç¤·¤¿¡£¡×(by Win2K) ¤È¤¤¤¦¤è¤¦¤Ê¥¨¥é¡¼¤Ïɽ¼¨¤µ¤ì¤Þ¤»¤ó¡£ ¸å¡¹¡¢¤¸¤ï¤¸¤ï¤È¸ú²Ì¤¬(°­¤¤¸ú²Ì¤Ç¤¹¤¬)¸½¤ì¤Æ¤­¤Þ¤¹¡£ ¤³¤ì¤Ç¤Ï¤È¤Æ¤â¥Ç¥Ð¥Ã¥°¤¬¤ä¤ê¤Å¤é¤¤... ¤à¤Á¤ã¤¯¤Á¤ã¤Ê¥¢¥É¥ì¥¹¤Ø¤Î½ñ¤­¹þ¤ß *(char*)0x00000123 = 45; ¤ä¡¢NULL¥Ý¥¤¥ó¥¿¤ÎÆɤ߽Ф· a = *(char*)NULL ¤ò¸¡½Ð¤¹¤ëÊýË¡¤Ï¤Á¤ç¤Ã¤È»×¤¤¤Ä¤«¤Ê¤¤¤Î¤Ç¡¢¤Þ¤º¤Ï NULL¥Ý¥¤¥ó¥¿¤Ø¤Î½ñ¤­¹þ¤ß¤À¤±¤Ç¤â¸¡½Ð¤¹¤ë¤³¤È¤Ë¤·¤Þ¤·¤ç¤¦¡£ int save000; void pceAppInit() { save000 = *(int*)NULL; ... } void pceAppProc() { ... if(*(int*)NULL != save000) die("Write address 0"); } ¤Á¤Ê¤ß¤Ë¸½ºß¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢0000¡Á0005¤Î°ÌÃ֤ˤϡ¢ NULL¥Ý¥¤¥ó¥¿¸Æ¤Ó½Ð¤·¸¡½ÐÍѤΥ¸¥ã¥ó¥×Ì¿Î᤬ÃÖ¤«¤ì¤Æ¤¤¤Þ¤¹¡£ ¤³¤Î¤¦¤Á0000¡Á0003¤òÊݸ¤·¤Æ¤ª¤¤¤Æ¡¢½ñ¤­´¹¤¨¤é¤ì¤Æ¤¤¤Ê¤¤¤« »þ¡¹¥Á¥§¥Ã¥¯¤¹¤ë¤ï¤±¤Ç¤¹¡£ S1C33¤ÈƱÍͤ˥á¥â¥êÊݸǽ¤ò»ý¤¿¤Ê¤¤¡¢ 8086¤äZ80ÍѤÎC¥³¥ó¥Ñ¥¤¥é¤¬ºÎ¤Ã¤Æ¤¤¤¿ÊýË¡¤ò»²¹Í¤Ë¤·¤Þ¤·¤¿¡£ * Fri Dec 14 21:30:49 JST 2001 Naoyuki Sawa - Ã༡½èÍý¥×¥í¥°¥é¥à Ëͤϥº¥Ü¥é¡¼¤Ê¥×¥í¥°¥é¥Þ¤Ê¤Î¤Ç¡¢main()¤À¤±¤ÇÁ´Éô¤ä¤ê¤¿¤¤¤Î¤Ç¤¹¡£ ¤â¤Ã¤Ègoto¤ò»È¤¤¤¿¤¤¤Î¤Ç¤¹¡Á¡ª ¤È¤¤¤¦¤ï¤±¤Ç¡¢Ã༡½èÍý¥×¥í¥°¥é¥à¤Î¥µ¥ó¥×¥ë¤Ç¤¹¡£ http://www.piece-me.org/archive/sample-20011214.c ¥ª¥Õ¥£¥·¥ã¥ë³«È¯·Ç¼¨ÈĤˤÆȯ¸À¤µ¤»¤Æ¤¤¤¿¤À¤¤¤¿¤È¤³¤í¡¢ ¡Ömain()¤¬¤¢¤ë¤È°Â¿´¤¹¤ë¡×¤È¤¤¤¦¤´°Õ¸«¤ò¤¤¤¿¤À¤­¤Þ¤·¤¿¡£ ¤½¤¦¤¤¤¨¤Ð¡¢main()¤ÎÀµ¤·¤¤ÄêµÁ¤Ï¡¢ int main(); ¤Þ¤¿¤Ï int main(int argc, char* argv[]); ¤Þ¤¿¤Ï int main(int argc, char* argv[], char* envp[]); ¤Ç¤¹¤¬¡¢¾åµ­¤Î¥µ¥ó¥×¥ë¤Ç¤Ï void main(); ¤È¤·¤Æ¤¤¤Þ¤·¤¿¡£¤³¤ì¤Ï¥Ï¥º¥«¥·¥¤¤Î¤Ç¡¢¤µ¤Ã¤½¤¯¼£¤·¤¿¤Î¤¬¤³¤Á¤é¡£ http://www.piece-me.org/archive/sample-20011214a.c main()¤«¤é¤ÎÌá¤êÃͤ¬¡¢pceAppReqExit()¤Ø¤Î°ú¿ô¤Ë¤Ê¤ê¤Þ¤¹¡£ ¤â¤Ã¤È¤â¡¢¸½ºß¤Î¤È¤³¤ípceAppReqExit()¤Ø¤Î°ú¿ô¤Ï̵»ë¤µ¤ì¤Æ¤ª¤ê¡¢ ¤Ä¤Þ¤ê¡¢Á´¤¯Ìµ°ÕÌ£¤Ê½¤Àµ¤Ç¤¹^^; ¤¢¡¢Ê̤Ëmain()¤«¤éÀ©¸æ¤òÊÖ¤µ¤Ê¤¯¤Æ¤â¡¢ int main() { /* ¤¤¤í¤¤¤í½èÍý */ pceAppReqExit(½ªÎ»¥³¡¼¥É); yield(); /* ¤³¤ì¤Ç¤ª¤·¤Þ¤¤ */ /* ¤³¤³¤Ø¤ÏÍè¤Þ¤»¤ó */ } ¤³¤ì¤Ç½ªÎ»¤Ç¤­¤Þ¤¹¡£ #define exit(n) pceAppReqExit(n); yield(); ¤ÈÄêµÁ¤·¤Æ¤ª¤¯¤È¡¢¤Á¤ç¤Ã¤È¤¤¤¤¤«¤â¤·¤ì¤Þ¤»¤ó¡£ * Wed Dec 12 23:10:35 JST 2001 Naoyuki Sawa - ¶¯À©¥ê¥»¥Ã¥È(¤Ä¤Å¤­) ¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤òɽ¼¨¤·¤ÆÄä»ß¤¹¤ë´Ø¿ô¤Î¼ÂÁõÎã¤Ç¤¹¡£ START¥Ü¥¿¥ó¤ÈSELECT¥Ü¥¿¥ó¤ò²¡¤¹¤È¡¢¥á¥Ë¥å¡¼¤ËÌá¤ê¤Þ¤¹¡£ void die(const char* fmt, ...) { #ifdef PIECE asm(" xcall pceLCDDispStop ; pceLCDDispStop(); xld.w %r12, _def_vbuff ; pceLCDSetBuffer(_def_vbuff); xcall pceLCDSetBuffer xcall pceLCDDispStart ; pceLCDDispStart(); xld.w %r12, 2 ; pceFontSetType(2); xcall pceFontSetType xld.w %r12, 3 ; pceFontSetTxColor(3); xcall pceFontSetTxColor xld.w %r12, 0 ; pceFontSetBkColor(0); xcall pceFontSetBkColor xld.w %r12, 0 ; pceFontSetPos(0, 0); xld.w %r13, 0 xcall pceFontSetPos xld.w %r4, die_L10 ; pceFontPrintf(fmt, ...); xld.w [%sp], %r4 xjp pceFontPrintf die_L10: xcall pceLCDTrans ; pceFontLCDTrans(); die_L20: ; do { xcall pcePadGetDirect ; pad = pcePadGetDirect(); xcmp %r10, 0xC0 ; } while(pad != (PAD_C | PAD_D)); jrne die_L20 xld.w %r4, [0xC00000] ; system reset jp %r4 "); #else /*PIECE*/ va_list ap; va_start(ap, fmt); fprintf(stderr, fmt, ap); fprintf(stderr, "\n"); va_end(ap); abort(); #endif /*PIECE*/ } * Tue Dec 11 22:06:04 JST 2001 Naoyuki Sawa - ¶¯À©¥ê¥»¥Ã¥È SELECT+START¤Î0.5ÉÃĹ²¡¤·¤Ç¤«¤«¤ë¥ê¥»¥Ã¥È¤Ï¡¢ ¼Â¤Ï¥ê¥»¥Ã¥È¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£ ¥«¡¼¥Í¥ë¤¬SELECT+START¤Î0.5ÉÃĹ²¡¤·¤ò¸¡½Ð¤·¤¿¤é¡¢ ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ÎÂå¤ï¤ê¤ËpceAppExit()¤ò¸Æ¤ó¤Ç¤¤¤ë¤À¤±¤Ç¤¹¡£ ¤Ä¤Þ¤ê¡¢Á´¤¯ÉáÄ̤Υ¢¥×¥ê¥±¡¼¥·¥ç¥ó½ªÎ»¼ê³¤­¤È¤Ê¤ê¤Þ¤¹¡£ ¥¢¥×¥ê¥±¡¼¥·¥ç¥óÆâÉô¤Çͽ´ü¤·¤Ê¤¤¥¨¥é¡¼¤ò¸¡½Ð¤·¤¿¾ì¹ç¤Ê¤É¡¢ ¶¯À©¥ê¥»¥Ã¥È¤ò¤«¤±¤¿¤¤¤³¤È¤¬¤¢¤ê¤Þ¤¹¡£ API¤Ë¤Ï¤½¤Î¤è¤¦¤Êµ¡Ç½¤¬¤Ê¤¤¤è¤¦¤Ê¤Î¤Ç¡¢ ľÀܥꥻ¥Ã¥È¥Ù¥¯¥¿¤ØÈô¤Ö¤³¤È¤Ë¤·¤Þ¤·¤¿¡£ asm("xld.w %r4, [0xC00000]"); asm("jp %r4"); ¤¿¤À¤·¡¢¤³¤ì¤Ç¤Ï¼þÊÕ²óÏ©¤¬¥ê¥»¥Ã¥È¤µ¤ì¤Ê¤¤¤Î¤Ç¡¢ ¿¾¯´í¸±¤Ê¤Î¤Ç¤¹¤¬¡¢¤¤¤Þ¤Î¤È¤³¤í¤Á¤ã¤ó¤ÈÆ°¤¤¤Æ¤¤¤Þ¤¹¡£ P/ECE¥«¡¼¥Í¥ë¤Ï¼þÊÕ²óÏ©¤Î¥³¡¼¥ë¥É¥ê¥»¥Ã¥È¾õÂÖ¤ò²¾Äꤻ¤º¡¢ ¤­¤Á¤ó¤ÈºÆ½é´ü²½¤·¤Æ¤¯¤ì¤Æ¤¤¤ë¤ß¤¿¤¤¤Ç¤¹¡£ * Tue Dec 11 21:53:29 JST 2001 Naoyuki Sawa - ¥¢¥¤¥Æ¥à¥Õ¥ë¥³¥ó¥×¥ê¡¼¥È¤Ç¤¹ ¤æ¤¦¤Ù¡¢¥¢¥¤¥Æ¥à¥Õ¥ë¥³¥ó¥×¥ê¡¼¥È¤·¤Þ¤·¤¿¡£ ¤³¤ì¤Î¤É¤³¤¬¤ª¤â¤·¤í¤«¤Ã¤¿¤Î¤«¡¢¤¸¤Ö¤ó¤Ç¤â¤ï¤«¤é¤Ê¤¤¤Î¤Ç¤¹¤¬¡¢ ¤È¤â¤«¤¯¡¢¤Ê¤¼¤«¡¢¤È¤Æ¤â¡¢¤È¤Æ¤â¡¢¤¿¤Î¤·¤¤¥²¡¼¥à¤Ç¤·¤¿¡£ ¤Ü¤¯¤â¡¢¤³¤ó¤Ê¤¿¤Î¤·¤¤¥²¡¼¥à¤¬¤Ä¤¯¤ì¤ë¥×¥í¥°¥é¥Þ¤Ë ¤Ê¤ê¤¿¤¤¤Ç¤¹¡£ * Mon Dec 10 12:25:03 JST 2001 Naoyuki Sawa - ¶Ë¾®¥Õ¥©¥ó¥È pceFontSetType¤Î°ú¿ô¤Ï¡¢¥Þ¥Ë¥å¥¢¥ë¤Ë¤Ï¡¢ 0: 5x10 Ä̾ï¥Õ¥©¥ó¥È (ÆüËܸ줢¤ê) 1: 8x16 ³ÈÂç¥Õ¥©¥ó¥È (ÆüËܸì¤Ê¤·) ¤·¤«ºÜ¤Ã¤Æ¤¤¤Ê¤¤¤¬¡¢ 2: 4x 6 ¶Ë¾®¥Õ¥©¥ó¥È (ÆüËܸì¤Ê¤·) ¤â¤¢¤ë¡£ TRAP²èÌ̤ǥ쥸¥¹¥¿¥À¥ó¥×¤Ë»È¤¦¤¿¤á¤Î¥Õ¥©¥ó¥È¤Î¤è¤¦¤À¤¬¡¢ ¥æ¡¼¥¶¡¼¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤âÉáÄ̤˻Ȥ¨¤ë¡£»È¤ª¤¦¡£ ¤¿¤À¤·ÆüËܸì¤Ï¤Ê¤¤(Ⱦ³Ñ¥«¥Ê¤â¤Ê¤¤¡£¤³¤ì¤Ï¥¿¥¤¥×1¤âƱÍÍ)¡£ ¥¹¥³¥¢É½¼¨¤Ê¤É¤Ë¤Á¤ç¤¦¤ÉÎɤ¤¤«¤â¤·¤ì¤Ê¤¤¡£ * Sun Dec 9 02:18:55 JST 2001 Naoyuki Sawa - ¶õÇò¤ò´Þ¤à¥Õ¥¡¥¤¥ë̾¤Ïºï½ü¤Ç¤­¤¤¤Ê¤¤ ½ñ¤­¹þ¤ß¤Ï¤Ç¤­¤ë(ismPFFSWrite)¤¬¡¢ºï½ü¤Ç¤­¤Ê¤¤(ismPFFSDelete)¡£ ¥·¥¹¥Æ¥à¥¢¥Ã¥×¥Ç¡¼¥È¤Ç̵Íý¤ä¤ê¾Ã¤¹¤·¤«¤Ê¤¯¤Ê¤ë¡£´í¸±! * Sat Dec 8 19:52:24 JST 2001 Naoyuki Sawa - API¥ê¥Õ¥¡¥ì¥ó¥¹¸í¿¢ pclSpriteBGClear¤ÎÀâÌÀ¤Ç¡¢ ¡Öbg1¤Î¥×¥ì¡¼¥ó(µ¼»÷¥³¥ó¥½¡¼¥ë¤È¤·¤Æ¤Îʸ»úɽ¼¨Íѥץ졼¥ó)¤Î¡¢ ¥³¥ó¥½¡¼¥ëÈϰϤΥ­¥ã¥é¥¯¥¿¤ò¥¯¥ê¥¢¤·¤Þ¤¹¡£¡×¤È¤¢¤ë¤¬¡¢ bg0¤Î´Ö°ã¤¤¤Ç¤Ï¤Ê¤¤¤«¡£(1.12a) * Sat Dec 8 19:42:43 JST 2001 Naoyuki Sawa - stddef.h¤Ï¥¤¥ó¥¯¥ë¡¼¥É¤·¤Ê¤¤ stddef.h¤ò¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ë¤È¡¢wchar_t¤Î¿½ÅÄêµÁ¥¨¥é¡¼¤Ë¤Ê¤ë¡£ ¸¶°øÉÔÌÀ¡£ ¤½¤¦¤¤¤¨¤Ð¡¢S5U1C33000C_J.pdf¤Î4¥Ú¡¼¥¸¤Î°ìÍ÷¤Ë¤â´Þ¤Þ¤ì¤Æ¤¤¤Ê¤¤¡£ ¤¢¤Þ¤ê½ÅÍפʥإåÀ¥Õ¥¡¥¤¥ë¤Ç¤Ï¤Ê¤¤¤è¤¦¤Ê¤Î¤Ç¡¢³°¤·¤ÆÍͻҸ«¡£ * Sat Dec 8 19:35:14 JST 2001 Naoyuki Sawa - ÊØÍø¤Ê¥·¥¹¥Æ¥àÄê¿ô DISP_X = 128 ²èÌ̤β£¥Ô¥¯¥»¥ë¿ô DISP_Y = 88 ²èÌ̤νĥԥ¯¥»¥ë¿ô BG_CX = 32 BG¤Î²£¥­¥ã¥é¿ô BG_CY = 32 BG¤Î½Ä¥­¥ã¥é¿ô * Sat Dec 8 18:50:03 JST 2001 Naoyuki Sawa - va_start()¤Ë¤Ä¤¤¤Æ stdarg.h¤ò¥¤¥ó¥¯¥ë¡¼¥É¤·¤¿¤À¤±¤Ç¤Ï¡¢_BOUNDARY¤¬Ì¤ÄêµÁ¤Ë¤Ê¤ë¡£ smcvals.h¤ò¥¤¥ó¥¯¥ë¡¼¥É¤·¤Ê¤±¤ì¤Ð¤¤¤±¤Ê¤¤¡£ S1C33¥¢¡¼¥­¥Æ¥¯¥Á¥ã°Í¸¤Î¥Ó¥Ã¥È¿ô¤Ê¤É¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¤è¤¦¤À¡£ * Sat Dec 8 18:50:43 JST 2001 - errno¤¬Ì¤ÄêµÁ¤Ë¤Ê¤ë ¥æ¡¼¥¶¡¼¥×¥í¥°¥é¥àÃæ¤ÇÄêµÁ¤·¤Ê¤±¤ì¤Ð¤¤¤±¤Ê¤¤¡£ BlackWings¤ä¥¿¥ó¥¯¥Ð¥È¥ë¤Î¥½¡¼¥¹¤Ç¤â¡¢¤½¤¦¤ä¤Ã¤Æ¤ë¡£ S1C33 Family C Compiler Package ¤Î»ÅÍͤÀ¡£ S5U1C33000C_J.pdf¤Î104¥Ú¡¼¥¸¤ò»²¾È¡£ ¤¿¤À¤·¡¢errno¤òÊѹ¹¤¹¤ë²ÄǽÀ­¤Î¤¢¤ëɸ½à´Ø¿ô¤ò»È¤ï¤Ê¤±¤ì¤Ð¡¢ (Î㤨¤Ð¡¢P/ECEÀìÍѥ饤¥Ö¥é¥ê´Ø¿ô¤À¤±¤ò»È¤Ã¤Æ¤¤¤ì¤Ð) ¤½¤â¤½¤âerrno¤¬É¬ÍפǤʤ¤¤Î¤Ç¡¢Ì¤ÄêµÁ¥¨¥é¡¼¤Ë¤Ï¤Ê¤é¤Ê¤¤¡£