+===========+
|P/ECE¸¦µæ¼¼|
+===========+
P/ECE¸¦µæµÏ¿
=============
* Wed Apr 06 00:00:00 JST 2005 Naoyuki Sawa
- ¥¹¥È¥ê¡¼¥àºÆÀ¸¤Î¤Þ¤È¤á#2
º£²ó¤âHTML¤Ç½ñ¤¤Þ¤·¤¿¡£°Ê²¼¤ÎURL¤ò¤´Í÷²¼¤µ¤¤¡£
http://www.piece-me.org/piece-lab/stream/stream2.html
* Sat Mar 26 19:35:00 JST 2005 Naoyuki Sawa
- ¥¹¥È¥ê¡¼¥àºÆÀ¸¤Î¤Þ¤È¤á#1
º£²ó¤ÏHTML¤Ç½ñ¤¤Þ¤·¤¿¡£°Ê²¼¤ÎURL¤ò¤´Í÷²¼¤µ¤¤¡£
http://www.piece-me.org/piece-lab/stream/stream1.html
* Fri Feb 25 06:00:00 JST 2005 Naoyuki Sawa
- ³¡¦¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¤Î¸íưºî¡Á"jp.d %rb"Ì¿Îá¤Ï»ÈÍÑÉÔ²Ä
2003ǯ12·î17Æü¡Á23Æü¤ÎP/ECE¸¦µæµÏ¿¡Ö¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¤Î¸íưºî¡×¤Ç¡¢"jp.d %rb"Ì¿Îá¤ÎľÁ°¤Ë¥á¥â¥ê¥¢¥¯¥»¥¹Ì¿Îá¤òÃÖ¤¯¤È¥Ç¥£¥ì¥¤¥ÉÌ¿Î᤬¼Â¹Ô¤µ¤ì¤Ê¤¤¡¢
¤È¤¤¤¦ÉÔ¶ñ¹ç¤Ë¤Ä¤¤¤Æµ¤·¤Þ¤·¤¿¡£
¡ü¥Ç¥£¥ì¥¤¥ÉÌ¿Î᤬Àµ¤·¤¯¼Â¹Ô¤µ¤ì¤ëÎã
ld.b %r4, %r7 ; ¥á¥â¥ê¥¢¥¯¥»¥¹°Ê³°¤ÎÌ¿Îá
jp.d %r6 ; %r6¥ì¥¸¥¹¥¿¤Î»Ø¤¹¥¢¥É¥ì¥¹¤Ø¥¸¥ã¥ó¥×¡Ä
add %r5, 1 ; ¡Ä¤¹¤ëÁ°¤Ë¡¢¤³¤Î¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¤ò¼Â¹Ô¤·¤Þ¤¹¡£
¡ü¥Ç¥£¥ì¥¤¥ÉÌ¿Î᤬Àµ¤·¤¯¼Â¹Ô¤µ¤ì¤ëÎã
ld.b [%r4], %r7 ; ¥á¥â¥ê¥¢¥¯¥»¥¹Ì¿Îá
jp.d %r6 ; %r6¥ì¥¸¥¹¥¿¤Î»Ø¤¹¥¢¥É¥ì¥¹¤Ø¥¸¥ã¥ó¥×¡Ä
add %r5, 1 ; ¡Ä¤¹¤ëÁ°¤Ë¡¢¤³¤Î¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¤ò¼Â¹Ô¤·¤Ê¤±¤ì¤Ð¤¤¤±¤Ê¤¤¤Î¤Ç¤¹¤¬¡¢¼Â¹Ô¤µ¤ì¤Þ¤»¤ó!!
¾Ü¤·¤¯¤Ï¡¢2003ǯ12·î17Æü¡Á23Æü¤ÎP/ECE¸¦µæµÏ¿¡Ö¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¤Î¸íưºî¡×¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£
-----------------------------------------------------------------------------
"jp.d %rb"Ì¿Îá¤ÎľÁ°¤Ë¥á¥â¥ê¥¢¥¯¥»¥¹Ì¿Îá¤òÃÖ¤¯¤³¤È¤µ¤¨¤·¤Ê¤±¤ì¤ÐÀµ¤·¤¯Æ°ºî¤¹¤ë¤Î¤Ê¤é¤Ð¡¢
¥×¥í¥°¥é¥ß¥ó¥°»þ¤Ëµ¤¤ò¤Ä¤±¤Æ¤µ¤¨¤¤¤ì¤Ð¡¢"jp.d %rb"Ì¿Îá¤Î¸íưºî¤ò³Î¼Â¤Ë²óÈò¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
¤·¤«¤·¼ÂºÝ¤Ë¤Ï¡¢¸íưºî¤¬È¯À¸¤¹¤ë¾ò·ï¤Ï¤½¤ì¤À¤±¤Ç¤Ï¤Ê¤¯¡¢»ö¼Â¾å"jp.d %rb"Ì¿Îá¤Ï»ÈÍÑÉÔ²Äǽ¤Ç¤¢¤ë¤³¤È¤¬¤ï¤«¤ê¤Þ¤·¤¿¡£
¤½¤Î¾ò·ï¤È¤Ï¡¢
"jp.d %rb"Ì¿Îá¤Î¼Â¹Ô¤È¡¢DMAžÁ÷¤Ë¤è¤ë¥á¥â¥ê¥¢¥¯¥»¥¹¤Î¥¿¥¤¥ß¥ó¥°¤¬½Å¤Ê¤ë¤È¡¢
"jp.d %rb"Ì¿Îá¤Î¥Ç¥£¥ì¥¤¥¹¥í¥Ã¥È¤ËÃÖ¤«¤ì¤¿¥Ç¥£¥ì¥¤¥ÉÌ¿Î᤬¼Â¹Ô¤µ¤ì¤Ê¤¤¡£
¤È¤¤¤¦¤â¤Î¤Ç¤¹¡£
DMAžÁ÷¤Ë¤è¤ë¥á¥â¥ê¥¢¥¯¥»¥¹¤Î¥¿¥¤¥ß¥ó¥°¤ò¡¢¥×¥í¥°¥é¥ß¥ó¥°»þ¤Ë¥µ¥¤¥¯¥ëñ°Ì¤Ç´°Á´¤ËÇİ®¤¹¤ë¤³¤È¤Ï¡¢¤Þ¤ºÉÔ²Äǽ¤Ç¤¹¡£
"jp.d %rb"Ì¿Îá¤Î¸íưºî¤ò³Î¼Â¤Ë²óÈò¤¹¤ë¤³¤È¤Ï¤Ç¤¤º¡¢½¾¤Ã¤Æ¡¢"jp.d %rb"Ì¿Îá¤Ï»ÈÍÑÉԲġ¢¤È¤¤¤¦¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£
¤µ¤Æ¡¢¤½¤ì¤Ç¤Ï¡¢
"jp.d %rb"Ì¿Îá¤Î¼Â¹Ô¤È¡¢DMAžÁ÷¤Ë¤è¤ë¥á¥â¥ê¥¢¥¯¥»¥¹¤Î¥¿¥¤¥ß¥ó¥°¤¬½Å¤Ê¤ë¤È¡¢
"jp.d %rb"Ì¿Îá¤Î¥Ç¥£¥ì¥¤¥¹¥í¥Ã¥È¤ËÃÖ¤«¤ì¤¿¥Ç¥£¥ì¥¤¥ÉÌ¿Î᤬¼Â¹Ô¤µ¤ì¤Ê¤¤¡£
¤³¤È¤ò³Îǧ¤·¤Æ¤ß¤Þ¤·¤ç¤¦¡£
¼Â¸³¥×¥í¥°¥é¥à¤Ï¤³¤Á¤é: http://www.piece-me.org/archive/jpdbug-20050225.zip
¼Â¸³¥×¥í¥°¥é¥àtest1¡Átest4¤¬¡¢°Ê²¼¤ÎÀâÌÀ¤Î¡¡Á¤¤ËÂбþ¤·¤Æ¤¤¤Þ¤¹¡£
-----------------------------------------------------------------------------
¡¤Þ¤º¤Ï¡¢"jp.d %rb"Ì¿Î᤬Àµ¤·¤¯Æ°ºî¤¹¤ëÎã¤ò³Îǧ¤·¤Þ¤¹¡£
¥¢¥»¥ó¥Ö¥é¤Ç½ñ¤«¤ì¤¿¼¡¤Î¤è¤¦¤Ê¥Æ¥¹¥È¥ë¡¼¥Á¥ó¤òC¸À¸ì¤«¤é¸Æ¤Ó½Ð¤·¤Æ¡¢ÊÑ¿ôRESULT¤Ë³ÊǼ¤µ¤ì¤¿Ãͤò²èÌ̤Ëɽ¼¨¤·¤Þ¤¹¡£
test1:
xld.w %r4, 1000000 ; 1000000²ó¥ë¡¼¥×¤·¤Þ¤¹¡£
xld.w %r5, 0 ; 1²óËè¤Ë1¤Å¤Ä¥«¥¦¥ó¥È¥¢¥Ã¥×¤·¤Þ¤¹¡£
xld.w %r6, skip ; jp.dÌ¿Îá¤Î¥¸¥ã¥ó¥×À襢¥É¥ì¥¹¤Ç¤¹¡£
loop:
jp.d %r6 ; jp.dÌ¿Îá¤ò»È¤Ã¤Æ°Ê²¼¤Î¶è´Ö¤òÈô¤Ó±Û¤¨¤Þ¤¹¡£
add %r5, 1 ; jp.dÌ¿Îá¤Î¥Ç¥£¥ì¥¤¥¹¥í¥Ã¥È¤Ç¥«¥¦¥ó¥È¥¢¥Ã¥×¤ò¹Ô¤¤¤Þ¤¹¡£
;
;{{--------------------------------------------------------
; ¤³¤Î¶è´Ö¤ÏÈô¤Ó±Û¤¨¤ë¤Î¤Ç¡¢¼Â¹Ô¤µ¤ì¤Þ¤»¤ó¡£
; ËÜÅö¤ËÈô¤Ó±Û¤¨¤Æ¤¤¤ë¤³¤È¤ò³Îǧ¤¹¤ë¤¿¤á¤Ë¡¢
; Ëü°ì¡¢¤³¤Î¶è´Ö¤òÈô¤Ó±Û¤¨¤º¤Ë¼Â¹Ô¤µ¤ì¤¿¤é¡¢
; ¥¢¥É¥ì¥¹¥¨¥é¡¼¤¬È¯À¸¤¹¤ë¤è¤¦¤Ë¤·¤Æ¤ª¤¤Þ¤¹¡£
xld.w %r15, 1
ld.w %r15, [%r15]
;}}--------------------------------------------------------
;
skip:
xsub %r4, %r4, 1 ; ¥ë¡¼¥×½èÍý¤ò¹Ô¤¤¤Þ¤¹¡£
xjrne loop
xld.w [RESULT], %r5 ; ¥«¥¦¥ó¥È¥¢¥Ã¥×¤Î·ë²Ì¤ò³ÊǼ¤·¤Þ¤¹¡£
ret
¥Æ¥¹¥È¥ë¡¼¥Á¥ó¤ÎÆâÍÆ¤Ï¡¢¼¡¤Î¤È¤ª¤ê¤Ç¤¹¡£
1000000²ó¤Î¥ë¡¼¥×¤ò¹Ô¤¤¡¢¥ë¡¼¥×¤¬1²ó¤Þ¤ï¤ë¤¿¤Ó¤Ë¥«¥¦¥ó¥¿¤ò1¤Å¤ÄÁý¤ä¤·¤Þ¤¹¡£
¤³¤Î¤È¤¡¢¡Ö¥«¥¦¥ó¥¿¤ò1¤Å¤ÄÁý¤ä¤¹¡×½èÍý("add %5,1")¤ò¡¢"jp.d %rb"Ì¿Îá¤Î¥Ç¥£¥ì¥¤¥¹¥í¥Ã¥È¤Ç¹Ô¤Ã¤Æ¤¤¤Þ¤¹¡£
1000000²ó¤Î¥ë¡¼¥×¤¬½ªÎ»¤·¤¿¤é¡¢¥«¥¦¥ó¥¿¤ÎÃͤò¡¢¥°¥í¡¼¥Ð¥ëÊÑ¿ôRESULT¤Ë³ÊǼ¤·¤Þ¤¹¡£
Àµ¤·¤¯¼Â¹Ô¤µ¤ì¤¿¤Ê¤é¤Ð¡¢¥°¥í¡¼¥Ð¥ëÊÑ¿ôRESULT¤Ë¤Ï1000000¤¬³ÊǼ¤µ¤ì¤Æ¤¤¤ë¤Ï¤º¤Ç¤¹¡£
¤½¤ì¤Ç¤Ï¼Â¹Ô¤·¤Æ¤ß¤Þ¤¹¡£
·ë²Ì: 1000000
´üÂԤɤª¤ê¡¢¥°¥í¡¼¥Ð¥ëÊÑ¿ôRESULT¤Ë¤Ï1000000¤¬³ÊǼ¤µ¤ì¤Þ¤·¤¿¡£
¤³¤Î¥Æ¥¹¥È¥ë¡¼¥Á¥ó¤Ç¤Ï¡¢"jp.d %rb"Ì¿Îá¤ÎľÁ°¤Ë¥á¥â¥ê¥¢¥¯¥»¥¹Ì¿Î᤬̵¤¤¤Î¤Ç¡¢"jp.d %rb"Ì¿Î᤬Àµ¤·¤¯Æ°ºî¤·¡¢
¥Ç¥£¥ì¥¤¥¹¥í¥Ã¥È¤ËÃÖ¤«¤ì¤¿¥Ç¥£¥ì¥¤¥ÉÌ¿Î᤬¤¤Á¤ó¤È¼Â¹Ô¤µ¤ì¤Æ¤¤¤ë¤³¤È¤¬¤ï¤«¤ê¤Þ¤¹¡£
-----------------------------------------------------------------------------
¢¼¡¤Ë¡¢"jp.d %rb"Ì¿Î᤬¸íưºî¤¹¤ëÎã¤ò³Îǧ¤·¤Þ¤¹¡£
2003ǯ12·î17Æü¡Á23Æü¤ÎP/ECE¸¦µæµÏ¿¡Ö¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¤Î¸íưºî¡×¤Ç³Îǧ¤·¤¿¤Î¤ÈƱ¤¸¾ò·ï¤Ç¤¹¤±¤ì¤É¡¢
ǰ¤Î¤¿¤á¤Ë¡¢º£²ó¤â¡¢¤â¤¦¤¤¤Á¤É³Îǧ¤·¤Æ¤ª¤¯¤³¤È¤Ë¤·¤Þ¤·¤¿¡£
¥Æ¥¹¥È¥ë¡¼¥Á¥ó¤ò¼¡¤Î¤è¤¦¤ËÊѹ¹¤·¤Þ¤¹¡£
test2:
xld.w %r4, 1000000 ; 1000000²ó¥ë¡¼¥×¤·¤Þ¤¹¡£
xld.w %r5, 0 ; 1²óËè¤Ë1¤Å¤Ä¥«¥¦¥ó¥È¥¢¥Ã¥×¤·¤Þ¤¹¡£
xld.w %r6, skip ; jp.dÌ¿Îá¤Î¥¸¥ã¥ó¥×À襢¥É¥ì¥¹¤Ç¤¹¡£
xld.w %r7, DUMMY ; jp.d¤Î¸íưºî¤òºÆ¸½¤¹¤ë¤¿¤á¤Î¥á¥â¥ê½ñ¤¹þ¤ß¥¢¥É¥ì¥¹¤Ç¤¹¡£
loop:
ld.b [%r7], %r7 ; jp.dÌ¿Îá¤ÎľÁ°¤Ç¥á¥â¥ê¥¢¥¯¥»¥¹¤¹¤ë¤È¡¢jp.d¤¬¸íưºî¤·¤Þ¤¹¡£
; (¹â®RAM¾å¤Ç¼Â¹Ô¤¹¤ë¾ì¹ç¤ÏÆÉ¤ß½ñ¤Î¾Êý¡¢SRAM¤Î¾ì¹ç¤Ï½ñ¤¹þ¤ß¤Î¤ß)
jp.d %r6 ; jp.dÌ¿Îá¤ò»È¤Ã¤Æ°Ê²¼¤Î¶è´Ö¤òÈô¤Ó±Û¤¨¤Þ¤¹¡£
add %r5, 1 ; jp.dÌ¿Îá¤ÎÃٱ䥹¥í¥Ã¥È¤Ç¥«¥¦¥ó¥È¥¢¥Ã¥×¤ò¹Ô¤¤¤Þ¤¹¡£
;
;{{--------------------------------------------------------
; ¤³¤Î¶è´Ö¤ÏÈô¤Ó±Û¤¨¤ë¤Î¤Ç¡¢¼Â¹Ô¤µ¤ì¤Þ¤»¤ó¡£
; ËÜÅö¤ËÈô¤Ó±Û¤¨¤Æ¤¤¤ë¤³¤È¤ò³Îǧ¤¹¤ë¤¿¤á¤Ë¡¢
; Ëü°ì¡¢¤³¤Î¶è´Ö¤òÈô¤Ó±Û¤¨¤º¤Ë¼Â¹Ô¤µ¤ì¤¿¤é¡¢
; ¥¢¥É¥ì¥¹¥¨¥é¡¼¤¬È¯À¸¤¹¤ë¤è¤¦¤Ë¤·¤Æ¤ª¤¤Þ¤¹¡£
xld.w %r15, 1
ld.w %r15, [%r15]
;}}--------------------------------------------------------
;
skip:
xsub %r4, %r4, 1 ; ¥ë¡¼¥×½èÍý¤ò¹Ô¤¤¤Þ¤¹¡£
xjrne loop
xld.w [RESULT], %r5 ; ¥«¥¦¥ó¥È¥¢¥Ã¥×¤Î·ë²Ì¤ò³ÊǼ¤·¤Þ¤¹¡£
ret
¡¤È¤Î°ã¤¤¤Ï¡¢"jp.d %rb"Ì¿Îá¤ÎľÁ°¤Ë¥À¥ß¡¼¤Î¥á¥â¥ê¥¢¥¯¥»¥¹Ì¿Îá¤òÃÖ¤¤¤¿¤³¤È¤À¤±¤Ç¤¹¡£
¼Â¹Ô¤·¤Æ¤ß¤ë¤È¡¢
·ë²Ì: 84
¤È¤Ê¤ê¤Þ¤·¤¿¡£(¼Â¹Ô¤¹¤ë¤¿¤Ó¤Ë¡¢¿ô»ú¤Ï¾¯¤·ÊѲ½¤·¤Þ¤¹)
ËÜÅö¤Ï1000000¤È¤Ê¤ë¤Ï¤º¤Î¤È¤³¤í84¤Ç¤¹¤«¤é¡¢¤Û¤È¤ó¤É¤Î"jp.d %rb"Ì¿Îá¤Ï¸íưºî¤·¤Æ¤¤¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¤¬¡¢¤ï¤º¤«¤ËÀµ¾ïưºî¤Î²ó¤¬¤¢¤ê¤Þ¤¹¡£
¤³¤ì¤Ï²¿¤«¤È¸À¤¦¤È¡¢"jp.d %rb"Ì¿Îá¤ÎľÁ°¤Ç³ä¤ê¹þ¤ß¤¬È¯À¸¤·¡¢¥á¥â¥ê¥¢¥¯¥»¥¹Ì¿Îá¤È"jp.d %rb"Ì¿Îá¤Î´Ö¤Ç³ä¤ê¹þ¤ß¥ë¡¼¥Á¥ó¤¬¼Â¹Ô¤µ¤ì¤¿¾ì¹ç¤Ë¡¢
¥á¥â¥ê¥¢¥¯¥»¥¹Ì¿Îá¤È"jp.d %rb"Ì¿Î᤬Ϣ³¤Ç¼Â¹Ô¤µ¤ì¤Ê¤¤¤Î¤Ç¡¢"jp.d %rb"Ì¿Î᤬Àµ¤·¤¯Æ°ºî¤¹¤ë¤Î¤Ç¤¹¡£
¤¿¤á¤·¤Ë¡¢³ä¤ê¹þ¤ß¤ò´°Á´¤Ë¶Ø»ß¤·¤Æ¡¢Æ±¤¸¥Æ¥¹¥È¥ë¡¼¥Á¥ó¤ò¼Â¹Ô¤·¤Æ¤ß¤ë¤È¡¢
·ë²Ì: 0
¤È¤Ê¤ê¡¢"jp.d %rb"Ì¿Î᤬¤¹¤Ù¤Æ°Û¾ïưºî¤¹¤ë¤³¤È¤¬³Îǧ¤Ç¤¤Þ¤¹¡£
¤Ê¤ª¡¢¤³¤Î°Û¾ïưºî¤ò³Îǧ¤¹¤ë¥Æ¥¹¥È¥×¥í¥°¥é¥à¤Ï¡¢¤È¤¤É¤¥Ï¥ó¥°¥¢¥Ã¥×¤¹¤ë¤³¤È¤¬¤¢¤ê¤Þ¤¹¡£
¥á¥â¥ê¥¢¥¯¥»¥¹Ì¿Îá¤È"jp.d %rb"Ì¿Î᤬Ϣ³¤¹¤ë¤È¡¢¥Ç¥£¥ì¥¤¥ÉÌ¿Î᤬¼Â¹Ô¤µ¤ì¤Ê¤¤¤À¤±¤Ç¤Ê¤¯¡¢Í½Â¬¤Ç¤¤Ê¤¤Æ°ºî¤È¤Ê¤ë¤³¤È¤â¤¢¤ë¤ß¤¿¤¤¤Ç¤¹¡£
-----------------------------------------------------------------------------
£¤µ¤Æ¡¢¤³¤³¤«¤é¤¬ËÜÂê¤Ç¤¹¡£
¤Þ¤º¡¢¥Æ¥¹¥È¥ë¡¼¥Á¥ó¤ÎÆâÍÆ¤ò¡¤ÈƱ¤¸¤â¤Î¤ËÌᤷ¤Þ¤¹¡£
"jp.d %rb"Ì¿Î᤬Àµ¤·¤¯Æ°ºî¤·¤Æ¡¢¡È·ë²Ì: 1000000¡É¤Èɽ¼¨¤µ¤ì¤ë¤Ï¤º¤Î¥Æ¥¹¥È¥ë¡¼¥Á¥ó¤Ç¤¹¡£
¤¿¤À¤·¡¢¡¤È¤Î°ã¤¤¤Ï¡¢¥Ð¥Ã¥¯¥°¥é¥¦¥ó¥É¤Ç¥µ¥¦¥ó¥É¤òºÆÀ¸¤·¤Ê¤¬¤é¥Æ¥¹¥È¥ë¡¼¥Á¥ó¤ò¼Â¹Ô¤¹¤ë¡¢¤È¤¤¤¦ÅÀ¤Ç¤¹¡£
¥µ¥¦¥ó¥ÉºÆÀ¸¤Ë¤Ï¡¢Ä̾ï¤ÎP/ECE¥µ¥¦¥ó¥ÉAPI pceWaveDataOut() ¤ò»È¤¤¤Þ¤¹¡£
¼Â¹Ô¤·¤Æ¤ß¤ë¤È¡¢
·ë²Ì: 994836
1%̤Ëþ¤Ç¤¹¤±¤ì¤É¡¢"jp.d %rb"Ì¿Î᤬¸íưºî¤·¤Æ¤¤¤Þ¤¹¡£(¼Â¹Ô¤¹¤ë¤¿¤Ó¤Ë¡¢¿ô»ú¤Ï¾¯¤·ÊѲ½¤·¤Þ¤¹)
¡¤È¤Î°ã¤¤¤Ï¡¢¥Ð¥Ã¥¯¥°¥é¥¦¥ó¥É¤Ç¥µ¥¦¥ó¥É¤òºÆÀ¸¤·¤Æ¤¤¤ë¤³¤È¤À¤±¤Ç¤¹¤«¤é¡¢¥µ¥¦¥ó¥ÉºÆÀ¸¤¬"jp.d %rb"¤Î¸íưºî¤Î¸¶°ø¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤³¤È¤Ï³Î¼Â¤Ç¤¹¡£
¥µ¥¦¥ó¥ÉºÆÀ¸½èÍý¤ÎÆâÍÆ¤Ï¡¢¼ç¤Ë¡ÈDMA¤Ë¤è¤ë¥á¥â¥êžÁ÷¡É¤È¡ÈDMA´°Î»³ä¤ê¹þ¤ß¡É¤Î¤Õ¤¿¤Ä¤Ç¤¹¡£
¤³¤Î¤¦¤Á¡¢¡ÈDMA´°Î»³ä¤ê¹þ¤ß¡É¤¬¸íưºî¤Î¸¶°ø¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤È¤Ï¹Í¤¨¤Å¤é¤¤¤Ç¤¹¡£
¤Ê¤¼¤Ê¤é¡¢¥µ¥¦¥ó¥ÉºÆÀ¸¤ò¹Ô¤Ã¤Æ¤¤¤Ê¤¯¤Æ¤â¡¢¡ÈDMA´°Î»³ä¤ê¹þ¤ß¡É°Ê³°¤Î³ä¤ê¹þ¤ß¤ÏÉÑÈˤËȯÀ¸¤·¤Æ¤¤¤ë¤«¤é¤Ç¤¹¡£
¡ÈDMA´°Î»³ä¤ê¹þ¤ß¡É°Ê³°¤Î³ä¤ê¹þ¤ß¤¬"jp.d %rb"¤Î¸íưºî¤ò°ú¤µ¯¤³¤µ¤º¡¢¡ÈDMA´°Î»³ä¤ê¹þ¤ß¡É¤À¤±¤¬¸íưºî¤ò°ú¤µ¯¤³¤¹¤È¤Ï»×¤¨¤Ê¤¤¤«¤é¤Ç¤¹¡£
¤½¤ó¤Ê¤ï¤±¤Ç¡¢¸¶°ø¤Ï¡ÈDMA¤Ë¤è¤ë¥á¥â¥êžÁ÷¡É¤Ë¤¢¤ë¤È¥¢¥¿¥ê¤òÉÕ¤±¤Æ¤ß¤ë¤³¤È¤Ë¤·¤Þ¤·¤¿¡£
-----------------------------------------------------------------------------
¤¡ÈDMA¤Ë¤è¤ë¥á¥â¥êžÁ÷¡É¤¬"jp.d %rb"Ì¿Îá¤Î¸íưºî¤Î¸¶°ø¤Ç¤¢¤ë¤³¤È¤ò³Îǧ¤·¤Þ¤·¤ç¤¦¡£
¥µ¥¦¥ó¥ÉºÆÀ¸½èÍý¤Î¤è¤¦¤ÊÊ£»¨¤Ê½èÍý¤Ç¤Ï¤Ê¤¯¡¢½ã¿è¤ËDMAžÁ÷¤À¤±¤ò¹Ô¤Ã¤Æ¤ß¤Þ¤¹¡£
¡¤ä£¤ÈƱ¤¸¥Æ¥¹¥È¥ë¡¼¥Á¥ó¤Î¥Ð¥Ã¥¯¥°¥é¥¦¥ó¥É¤Çñ½ã¤ÊDMAžÁ÷¤ò¹Ô¤Ã¤Æ¡¢"jp.d %rb"Ì¿Îá¤Î¸íưºî¤¬È¯À¸¤¹¤ë¤«¤É¤¦¤«¤ò³Îǧ¤·¤Þ¤¹¡£
¥Æ¥¹¥È¥ë¡¼¥Á¥ó¤ò¸Æ¤Ó½Ð¤¹Á°¤Ë¡¢¼¡¤Î¤è¤¦¤Ê¼ê½ç¤ÇDMAžÁ÷¤ò³«»Ï¤·¤Þ¤¹¡£
DISABLE;
/*---------- DMA¥È¥ê¥¬ÍÑ¥¿¥¤¥Þ¤ÎÀßÄê ----------*/
/* ¥¯¥í¥Ã¥¯ÁªÂò = ¦È/1 (¥¿¥¤¥Þ¥«¥¦¥ó¥È¥À¥¦¥ó¼þ´ü = 24MHz)
*/
bCLKSEL_T8_P8TPCK3 = 1;
/* ¥¯¥í¥Ã¥¯À©¸æ = On
*/
bCLKCTL_T8_23_P8TON3 = 1;
/* ¥ê¥í¡¼¥É¥Ç¡¼¥¿ = 240-1 (DMA¥È¥ê¥¬¼þ´ü = 100KHz)
*/
pT8_RLD3 = 240-1;
/* ¥×¥ê¥»¥Ã¥È¡¢Run¡£
*/
pT8_CTL3 = (1<<1) | (1<<0);
/*---------- DMA¤ÎÀßÄê ----------*/
/* ¥³¥ó¥È¥í¡¼¥ë¾ðÊó¤òÀßÄꤹ¤ëÁ°¤Ë¡¢¹â®DMA Ch.3¤ò³Î¼Â¤ËÄä»ß¤·¤Þ¤¹¡£
*/
HS3_DISABLE;
/* ¥È¥ê¥¬Í×°ø = 8bit¥¿¥¤¥ÞCh.3¥¢¥ó¥À¡¼¥Õ¥í¡¼
*/
bHSDMA_HTGR2_HSD3S = HS3_8T3;
/* ¥¢¥É¥ì¥¹¥â¡¼¥É = ¥Ç¥å¥¢¥ë
* žÁ÷¥«¥¦¥ó¥¿ = 0xffffff²ó (¤³¤Î¥×¥í¥°¥é¥à¤Ç¤Ï¡¢ÌÀ¼¨Åª¤ËÄä»ß¤µ¤ì¤ë¤Þ¤Ç)
*/
pHS3_CNT = (1<<31) | (1<<28)-1;
/* žÁ÷¥Ç¡¼¥¿¥µ¥¤¥º = ¥Ð¥¤¥È
* žÁ÷¸µ¥¢¥É¥ì¥¹À©¸æ = ¸ÇÄê
* žÁ÷¸µ¥¢¥É¥ì¥¹ = &DUMMY1
*/
pHS3_SADR = (int)&DUMMY1;
/* žÁ÷¥â¡¼¥É = ¥·¥ó¥°¥ëžÁ÷
* žÁ÷À襢¥É¥ì¥¹À©¸æ = ¸ÇÄê
* žÁ÷À襢¥É¥ì¥¹ = &DUMMY2
*/
pHS3_DADR = (int)&DUMMY2;
/* ¹â®DMA Ch.3¤ò͸ú¤Ë¤¹¤ëÁ°¤Ë¡¢³Î¼Â¤Ë¥È¥ê¥¬¥Õ¥é¥°¤ò¥¯¥ê¥¢¤·¤Þ¤¹¡£
*/
pHS3_TF = 1;
/* ¹â®DMA Ch.3¤ò͸ú¤Ë¤·¤Þ¤¹¡£
*/
HS3_ENABLE;
ENABLE;
DMAžÁ÷¤ÎÆâÍÆ¤Ï¡¢¥À¥ß¡¼ÊÑ¿ôÎΰ褫¤éÊ̤ΥÀ¥ß¡¼ÊÑ¿ôÎÎ°è¤Ø¡¢100KHz¤ÎÉÑÅ٤ǥá¥â¥êžÁ÷¤ò¹Ô¤¦¡¢¤È¤¤¤¦¤â¤Î¤Ç¤¹¡£
¥µ¥¦¥ó¥ÉºÆÀ¸¤ÈƱÍͤˡ¢DMAžÁ÷¤È¥Æ¥¹¥È¥ë¡¼¥Á¥ó¤ÏʹԤ·¤Æ¼Â¹Ô¤µ¤ì¤Þ¤¹¡£
¥µ¥¦¥ó¥ÉºÆÀ¸¤Î¾ì¹ç¤È°ã¤Ã¤Æ¡¢DMAžÁ÷¤Ë¤«¤«¤ï¤ë³ä¤ê¹þ¤ß¤ÏȯÀ¸¤·¤Þ¤»¤ó¡£
¤½¤ì¤Ç¤Ï¡¢¼Â¹Ô¤·¤Æ¤ß¤Þ¤¹¡£
·ë²Ì: 974426
ͽÁۤɤª¤ê¡¢"jp.d %rb"¤¬¸íưºî¤·¤Þ¤·¤¿¡£(¼Â¹Ô¤¹¤ë¤¿¤Ó¤Ë¡¢¿ô»ú¤Ï¾¯¤·ÊѲ½¤·¤Þ¤¹)
¥µ¥¦¥ó¥ÉºÆÀ¸¤Î¾ì¹ç¤è¤ê¤â¡¢¾¯¤·¸íưºî¤ÎÉÑÅÙ¤¬Â¿¤¤¤Ç¤¹¤Í¡£
¤½¤ÎÍýͳ¤Ï¡¢¥µ¥¦¥ó¥ÉºÆÀ¸¤ÎDMAžÁ÷¥ì¡¼¥È¤Ï32KHz¤Ç¤¢¤ë¤Î¤ËÂФ·¤Æ¡¢¤¤Î¥Æ¥¹¥È¥×¥í¥°¥é¥à¤ÎžÁ÷¥ì¡¼¥È¤Ï100KHz¤À¤«¤é¤Ç¤¹¡£
DMAžÁ÷¤ÎȯÀ¸¤¹¤ëÉÑÅÙ¤¬Â¿¤¤Ê¬¡¢"jp.d %rb"¤È½Å¤Ê¤ë³ÎΨ¤¬¹â¤¯¡¢·ë²Ì¡¢"jp.d %rb"¤¬¸íưºî¤¹¤ëÉÑÅ٤⿤¯¤Ê¤ë¤ï¤±¤Ç¤¹¡£
¤¿¤á¤·¤Ë¡¢DMAžÁ÷¥ì¡¼¥È¤ò10ÇܤËÁý¤·¤Æ¤ß¤ë¤È¡¢
/* ¥ê¥í¡¼¥É¥Ç¡¼¥¿ = 24-1 (DMA¥È¥ê¥¬¼þ´ü = 1MHz)
*/
pT8_RLD3 = 24-1;
"jp.d %rb"¸íưºî¤ÎÉÑÅÙ¤¬¤â¤Ã¤È¹â¤¯¤Ê¤ë¤³¤È¤¬³Îǧ¤Ç¤¤Þ¤¹¡£
·ë²Ì: 699436
-----------------------------------------------------------------------------
°Ê¾å¤Î¼Â¸³¤Ç¡¢
"jp.d %rb"Ì¿Îá¤Î¼Â¹Ô¤È¡¢DMAžÁ÷¤Ë¤è¤ë¥á¥â¥ê¥¢¥¯¥»¥¹¤Î¥¿¥¤¥ß¥ó¥°¤¬½Å¤Ê¤ë¤È¡¢
"jp.d %rb"Ì¿Îá¤Î¥Ç¥£¥ì¥¤¥¹¥í¥Ã¥È¤ËÃÖ¤«¤ì¤¿¥Ç¥£¥ì¥¤¥ÉÌ¿Î᤬¼Â¹Ô¤µ¤ì¤Ê¤¤¡£
¤³¤È¤¬³Îǧ¤Ç¤¤Þ¤·¤¿¡£
Àè¤Ë¤â½Ò¤Ù¤¿¤è¤¦¤Ë¡¢DMAžÁ÷¤Î¥¿¥¤¥ß¥ó¥°¤Ë°Í¸¤¹¤ë¸íưºî¤Ï¡¢²óÈòÉÔ²Äǽ¤Ç¤¹¡£
P/ECE¤Î¾ì¹ç¡¢¥µ¥¦¥ó¥ÉºÆÀ¸¤ÈÊ»ÍѤ·¤Ê¤±¤ì¤ÐÎɤ¤¤Î¤Ç¤¹¤±¤ì¤É¡¢¤½¤ì¤Ï¸½¼ÂŪ¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£
·ëÏÀ¤Ï¡¢
¨®¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¯
¨"jp.d %rb"Ì¿Îá¤Ï¡¢¤¤¤«¤Ê¤ë¾ì¹ç¤Ë¤ª¤¤¤Æ¤â¡úÀäÂФˡú»È¤Ã¤Æ¤Ï¤¤¤±¤Ê¤¤¨
¨±¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨°
¤È¤Ê¤ê¤Þ¤¹¡£
¤Ê¤ª¡¢P/ECE³«È¯´Ä¶¤Îɸ½àC¥³¥ó¥Ñ¥¤¥é¤ÏºÇŬ²½µ¡Ç½¤¬¼å¤¯¡¢"jp.d %rb"Ì¿Îá¤òÀ¸À®¤·¤Þ¤»¤ó¤Î¤Ç¡¢C¸À¸ì¤À¤±¤ò»È¤Ã¤Æ¥×¥í¥°¥é¥ß¥ó¥°¤·¤Æ¤¤¤ë¸Â¤ê¤Ï°ÂÁ´¤Ç¤¹¡£
¥¢¥»¥ó¥Ö¥é¤ò»È¤Ã¤Æ¡¢¼êºî¶È¤ÇºÇŬ²½¤¹¤ë¾ì¹ç¤Ë¤Ï¡¢Í×Ãí°Õ¤Ç¤¹¡£
-----------------------------------------------------------------------------
¤µ¤Æ¡¢°Ê²¼¤Ï;Ã̤Ǥ¹¡£
"jp.d %rb"Ì¿Îá¤ÈDMAžÁ÷¤ÎÊ»ÍѤˤè¤ë¸íưºî¤Ëµ¤ÉÕ¤¤¤¿·Ð°Þ¤Ë¤Ä¤¤¤Æ¡¢µ¤·¤Æ¤ª¤³¤¦¤È»×¤¤¤Þ¤¹¡£
¸½ºß¡¢¡Ö¥²¡¼¥à¥Ü¡¼¥¤/EMU¡×¤ÎºîÀ®Ãæ¤Ê¤Î¤Ç¤¹¤±¤ì¤É¡¢¥µ¥¦¥ó¥É¤òÄɲä·¤¿¤È¤¿¤ó¤Ë¡¢CPU¥¨¥ß¥å¥ì¡¼¥·¥ç¥ó¤¬Àµ¤·¤¯¼Â¹Ô¤µ¤ì¤Ê¤¯¤Ê¤ë¤È¤¤¤¦ÌäÂ꤬ȯÀ¸¤·¤Þ¤·¤¿¡£
ºÇ½é¡¢¥µ¥¦¥ó¥É¥¨¥ß¥å¥ì¡¼¥·¥ç¥ó¥ë¡¼¥Á¥ó¤Ë¥Ð¥°¤¬¤¢¤Ã¤Æ¡¢ÉÔÀµ¤Ê¥á¥â¥ê¤òÇ˲õ¤·¤Æ¤¤¤ë¤Î¤«¤È¹Í¤¨¤ÆÄ´¤Ù¤Æ¤ß¤¿¤Î¤Ç¤¹¤¬¡¢¤¤¤¯¤éÄ´¤Ù¤Æ¤â´Ö°ã¤Ã¤Æ¤¤¤Þ¤»¤ó¡£
¸¶°ø¤òÆÍ¤µÍ¤á¤Æ¤¤¤¯¤È¡¢¥µ¥¦¥ó¥É¥¨¥ß¥å¥ì¡¼¥·¥ç¥ó¥ë¡¼¥Á¥ó¤ò¸Æ¤Ð¤Ê¤¯¤Æ¤â¡¢Ã±¤ËpceWaveDataOut()¤ò¸Æ¤Ö¤À¤±¤Ç¡¢ÌäÂ꤬ȯÀ¸¤¹¤ë¤³¤È¤¬¤ï¤«¤ê¤Þ¤·¤¿¡£
¤½¤³¤Ç¡¢pceWaveDataOut()¤ò¸Æ¤ó¤À¾ì¹ç¤È¸Æ¤Ð¤Ê¤¤¾ì¹ç¤È¤Ç¡¢CPU¥¨¥ß¥å¥ì¡¼¥·¥ç¥ó¤Î¥È¥ì¡¼¥¹¥í¥°¤òÈæ³Ó¤·¤Æ¤ß¤Þ¤·¤¿¡£
¤¹¤ë¤È¡¢pceWaveDataOut()¤ò¸Æ¤ó¤À¾ì¹ç¤Ë¡¢¤È¤¤É¤¡¢»Ä¤êCPU¼Â¹Ô¥µ¥¤¥¯¥ë¤Î¥«¥¦¥ó¥È¥À¥¦¥ó¤¬¹Ô¤ï¤ì¤Æ¤¤¤Ê¤¤¤³¤È¤¬¤ï¤«¤ê¤Þ¤·¤¿¡£
¤³¤ó¤Ê¤«¤ó¤¸¤Ç¤¹¡£
pceWaveDataOut()¤ò¸Æ¤Ð¤Ê¤¤¾ì¹ç pceWaveDataOut()¤ò¸Æ¤ó¤À¾ì¹ç
------------------------------ ------------------------------
PC=1000: »Ä¤ê¼Â¹Ô¥µ¥¤¥¯¥ë=440 PC=1000: »Ä¤ê¼Â¹Ô¥µ¥¤¥¯¥ë=440
PC=1001: »Ä¤ê¼Â¹Ô¥µ¥¤¥¯¥ë=436 PC=1001: »Ä¤ê¼Â¹Ô¥µ¥¤¥¯¥ë=436
PC=1002: »Ä¤ê¼Â¹Ô¥µ¥¤¥¯¥ë=432 PC=1002: »Ä¤ê¼Â¹Ô¥µ¥¤¥¯¥ë=436 <- ¸º¤Ã¤Æ¤Ê¤¤!!
PC=1003: »Ä¤ê¼Â¹Ô¥µ¥¤¥¯¥ë=428 PC=1003: »Ä¤ê¼Â¹Ô¥µ¥¤¥¯¥ë=432
PC=1004: »Ä¤ê¼Â¹Ô¥µ¥¤¥¯¥ë=424 PC=1004: »Ä¤ê¼Â¹Ô¥µ¥¤¥¯¥ë=428
PC=1005: »Ä¤ê¼Â¹Ô¥µ¥¤¥¯¥ë=420 PC=1005: »Ä¤ê¼Â¹Ô¥µ¥¤¥¯¥ë=424
PC=1006: »Ä¤ê¼Â¹Ô¥µ¥¤¥¯¥ë=416 PC=1006: »Ä¤ê¼Â¹Ô¥µ¥¤¥¯¥ë=420
¾å¤ÎÎã¤Ç¤Ï¡¢1002ÈÖÃϤÎÌ¿Îá¤Î¥¨¥ß¥å¥ì¡¼¥·¥ç¥ó¤Ç¸íưºî¤¬È¯À¸¤·¤Æ¤¤¤Þ¤¹¤¬¡¢¼Â¹Ô¤¹¤ë¤¿¤Ó¤Ë¸íưºî¤¬È¯À¸¤¹¤ë¥¢¥É¥ì¥¹¤¬ÊѲ½¤¹¤ë¤Î¤Ç¤¹¡£
²¿ÅÙ¤«»î¤·¤Æ¤ß¤Æ¡¢¸íưºî¤¬È¯À¸¤¹¤ëÌ¿Îá¤Î¥¨¥ß¥å¥ì¡¼¥·¥ç¥ó¥ë¡¼¥Á¥ó¤Î¶¦ÄÌÀ¤Ëµ¤¤¬ÉÕ¤¤Þ¤·¤¿¡£
¤½¤ì¤é¤Î¥¨¥ß¥å¥ì¡¼¥·¥ç¥ó¥ë¡¼¥Á¥ó¤Ï¤¹¤Ù¤Æ¡¢¼¡¤Î¤è¤¦¤Ê¥³¡¼¥ÉʤӤò»È¤Ã¤Æ¤¤¤¿¤«¤é¤Ç¤¹¡£
ld.w %r0, %r4 ; (¥á¥â¥ê¥¢¥¯¥»¥¹°Ê³°¤ÎÌ¿Îá¡£"jp.d %r11"¤Ï¸íưºî¤·¤Ê¤¤¤Ï¤º¡¢¤À¤Ã¤¿¤Î¤Ç¤¹¤±¤ì¤É¡Ä)
jp.d %r11 ; ¥á¥â¥ê½ñ¤¹þ¤ß¥ë¡¼¥Á¥ó¤Ø¥¸¥ã¥ó¥×
sub %r7, 4 ; "jp.d %rb"Ì¿Îá¤Î¥Ç¥£¥ì¥¤¥¹¥È¥Ã¥È¤Ç¡¢»Ä¤ê¼Â¹Ô¥µ¥¤¥¯¥ë¤ò¸º¤é¤¹
¤Ä¤Þ¤ê¡¢¤È¤¤É¤"sub %r7,4"¤¬¼Â¹Ô¤µ¤ì¤Æ¤¤¤Ê¤¤¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£
°ÊÁ°¤ÎP/ECE¸¦µæµÏ¿¡Ö¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¤Î¸íưºî¡×¤Ç¡¢"jp.d %rb"¤È¥á¥â¥ê¥¢¥¯¥»¥¹Ì¿Îá¤ÎÁêÀ¤¬°¤¤¤³¤È¤Ï´û¤Ë¤ï¤«¤Ã¤Æ¤¤¤Þ¤·¤¿¡£
¥µ¥¦¥ó¥É¤òÄɲä·¤¿ÅÓü¤ËȯÀ¸¤·¤¿¸íưºî¡¢¥á¥â¥ê¥¢¥¯¥»¥¹¡¢¡¢¡¢¤È¤Ê¤ë¤È¡¢¥µ¥¦¥ó¥ÉºÆÀ¸¤Î¤¿¤á¤ÎDMAžÁ÷¤·¤«¹Í¤¨¤é¤ì¤Þ¤»¤ó¡£
¤½¤³¤Çº£²ó¤Î¤è¤¦¤ÊÄ´ºº¤ò¹Ô¤Ã¤Æ¤ß¤¿¤È¤³¤í¡¢"jp.d %rb"Ì¿Îá¤ÈDMAžÁ÷¤ÎÊ»ÍÑ¤Ç°Û¾ïÆ°ºî¤¬È¯À¸¤¹¤ë¤³¤È¤¬¤ï¤«¤Ã¤¿¡¢¤È¤¤¤¦¤ï¤±¤Ç¤¹¡£
º£²ó¤Ï¡¢Ã±½ã¤ÇÄ귿Ū¤Ê½èÍý¤ò·«¤êÊÖ¤¹CPU¥¨¥ß¥å¥ì¡¼¥·¥ç¥ó¥ë¡¼¥Á¥ó¤ÎÃæ¤Ç¤Î¸íưºî¤À¤Ã¤¿¤¿¤á¤Ë¡¢Èæ³ÓŪ´Êñ¤Ë¸¶°ø¤¬¿ä¬¤Ç¤¤Þ¤·¤¿¡£
¤â¤·¤â¡¢Ä̾ï¤Î¥²¡¼¥à¥×¥í¥°¥é¥à¤ÎÆþ¤êÁȤó¤À¥ë¡¼¥Á¥ó¤ÎÃæ¤Ç¡¢¤´¤¯µ©¤ËȯÀ¸¤¹¤ë¤è¤¦¤Ê¸íưºî¤À¤Ã¤¿¤Ê¤é¤Ð¡¢¸¶°øµæÌÀ¤Ë¤Ï¤â¤Ã¤È»þ´Ö¤¬¤«¤«¤Ã¤Æ¤¤¤¿¤È»×¤¤¤Þ¤¹¡£
¤¢¤ë°ÕÌ£¡¢¹¬±¿¤À¤Ã¤¿¤«¤âÃΤì¤Þ¤»¤ó¡£
* Fri Feb 11 04:56:00 JST 2005 Naoyuki Sawa
- ³¡¦¼Â¤Ï¥Ç¥£¥ì¥¤¥ÉÌ¿Îá
º£²ó¤Î¥Æ¡¼¥Þ¤Ï¡¢2003ǯ4·î12Æü¤ÎµÏ¿¡Ö¼Â¤Ï¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¡×¤Î³¤¤Ç¤¹¡£
======================================================================================================================
¤Þ¤º¤Ï¡¢Á°²ó¤Î¤ª¤µ¤é¤¤¤«¤é¡£
P/ECE¤ÎCPU S1C33209¤Ï¡¢RISC CPU¤ÎÆÃħ¤Î¤Ò¤È¤Ä¡¢¡Ö¥Ç¥£¥ì¥¤¥Éʬ´ôµ¡Ç½¡×¤ò»ý¤Ã¤Æ¤¤¤Þ¤¹¡£
¥Ç¥£¥ì¥¤¥Éʬ´ôµ¡Ç½¤È¤Ï¡¢Ê¬´ôÌ¿Îá¤Î¼Â¹Ô¤è¤êÀè¤Ëʬ´ôÌ¿Îá¤Îľ¸å¤ÎÌ¿Îá¤ò¼Â¹Ô¤·¡¢¼Â¹Ô¸úΨ¤ò²Ô¤°µ¡Ç½¤Ç¤¹¡£
¥Ç¥£¥ì¥¤¥Éʬ´ôµ¡Ç½¤ò»È¤¦Ê¬´ôÌ¿Îá¤ò¡¢¡Ö¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¡×¤È¸Æ¤Ó¤Þ¤¹¡£
¤Þ¤¿¡¢¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¤Îľ¸å¤ËÃÖ¤«¤ì¤ëÌ¿Îá¤ò¡¢¡Ö¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¡×¤È¸Æ¤Ó¤Þ¤¹¡£
¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿ÎᾸå¤Î¡¢¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¤òÃÖ¤¯¤³¤È¤¬¤Ç¤¤ë°ÌÃÖ¤ò¡¢¡Ö¥Ç¥£¥ì¥¤¥É¥¹¥í¥Ã¥È¡×¤È¸Æ¤Ó¤Þ¤¹¡£
¤¹¤Ù¤Æ¤ÎÌ¿Î᤬¡¢¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¤È¤·¤Æ»ÈÍѤǤ¤ë¤ï¤±¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£
¤¢¤ëÌ¿Î᤬¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¤È¤·¤Æ»ÈÍѤǤ¤ë¤«Èݤ«¤Ë¤Ä¤¤¤Æ¡¢´ðËÜŪ¤ÊȽÃÇ´ð½à¤Ï¼¡¤ÎÄ̤ê¤Ç¤¹¡£
¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¤Ï°Ê²¼¤Î¾ò·ï¤ò¤¹¤Ù¤ÆËþ¤¿¤·¤Æ¤¤¤ë¤³¤È¤¬É¬ÍפǤ¹¡£
¡¦1¥µ¥¤¥¯¥ëÌ¿Îá
¡¦¥á¥â¥ê¤ò¥¢¥¯¥»¥¹¤·¤Ê¤¤
¡¦extÌ¿Îá¤Ë¤è¤ë³ÈÄ¥¤Ê¤·
¡ØS1C33209¥³¥¢CPU¥Þ¥Ë¥å¥¢¥ë¡Ù(C:\usr\PIECE\docs\datasheet\EPSON\33000Core-J.pdf)
p.30¡Ö¥Ç¥£¥ì¥¤¥Éʬ´ôµ¡Ç½¡×¤è¤ê
Ʊ¥Ú¡¼¥¸¤Ë¤Ï¡¢¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¤È¤·¤Æ»ÈÍѤǤ¤ëÌ¿Îá¤Î°ìÍ÷¤¬¼¨¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
¤µ¤é¤Ë¤½¤Î²¼¤Ë¡¢¼¡¤Î¤è¤¦¤ÊÃí°Õ¤¬µ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
Ãí¡§¾åµ¤Î¾ò·ï¤òËþ¤¿¤µ¤Ê¤¤Ì¿Îá¤Ïưºî¤¬ÉÔÄê¤È¤Ê¤ë¤¿¤á¡¢¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¤È¤·¤Æ»ÈÍѤ¹¤ë¤³¤È¤Ï¶Ø»ß¤·¤Þ¤¹¡£
¤È¤³¤í¤¬¡¢EPSON¼Ò¼«¿È¤Ë¤è¤ëɸ½à¥é¥¤¥Ö¥é¥ê¤Î¼ÂÁõ¤¬¡¢¤³¤Î¥ë¡¼¥ë¤òÇˤäƤ¤¤Þ¤·¤¿¡£
¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¤È¤·¤Æ»ÈÍѤǤ¤Ê¤¤¤Ï¤º¤Î"ld.w %rd,%ss"Ì¿Îá¤ò¡¢¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¤È¤·¤Æ»ÈÍѤ·¤Æ¤¤¤¿¤Î¤Ç¤¹¡£
²¿Ä̤꤫¤ÎÌ¿ÎáʤӤò»î¤·¤Æ¤ß¤¿¤È¤³¤í¡¢"ld.w %rd,%ss"Ì¿Îá¤Ï¡¢¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¤È¤·¤ÆÌäÂê¤Ê¤¯»ÈÍѤǤ¤ë¤³¤È¤¬¤ï¤«¤ê¤Þ¤·¤¿¡£
EPSON¼Ò¤â»È¤Ã¤Æ¤¤¤ë¤Î¤Ç¤¹¤«¤é¡¢¤¿¤Ö¤óÂç¾æÉפʤΤǤ·¤ç¤¦¡£
°Ê¾å¡¢Á°²ó¤Î¤ª¤µ¤é¤¤¤Ç¤·¤¿¡£
======================================================================================================================
¤½¤Î¸å¡¢¼«ºî¥×¥í¥°¥é¥à¤Ç"ld.w %rd,%ss"Ì¿Îá¤ò¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¤È¤·¤Æ»È¤Ã¤Æ¤¤Þ¤·¤¿¤¬¡¢¤³¤ì¤Þ¤Ç¤Î¤È¤³¤íÌäÂê¤Ï½Ð¤Æ¤¤¤Þ¤»¤ó¡£
¤ä¤Ã¤Ñ¤ê¡¢Âç¾æÉפÀ¤Ã¤¿¤è¤¦¤Ç¤¹¡£
¤µ¤Æ¡¢¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¤È¤·¤Æ»ÈÍÑÉԲĤȤµ¤ì¤Æ¤¤¤ëÌ¿Îá¤Î¤Ê¤«¤Ë¡¢"ld.w %rd,%ss"Ì¿Îá¤è¤ê¤â¤Ã¤È»ÈÍÑÉÑÅ٤ι⤤¤â¤Î¤¬¤¢¤ê¤Þ¤¹¡£
char¢ÎintÊÑ´¹¤äshort¢ÎintÊÑ´¹¤ò¹Ô¤¦¡¢°Ê²¼¤ÎÌ¿Îá·²¤Ç¤¹¡£
ld.b %rd,%rs char¢ÎintÊÑ´¹
ld.ub %rd,%rs unsigned char¢ÎintÊÑ´¹¡¢(value&0xff)¤ÎÂåÍÑ
ld.h %rd,%rs short¢ÎintÊÑ´¹
ld.uh %rd,%rs unsigned short¢ÎintÊÑ´¹¡¢(value&0xffff)¤ÎÂåÍÑ
°Ê¹ß¤Îʸ¤Ç¤Ï¡¢¤³¤ì¤é¤ÎÌ¿Îá¤ò¡È·¿ÊÑ´¹Ì¿Îá¡É¤È¸Æ¤Ö¤³¤È¤Ë¤·¤Þ¤¹¡£
·¿ÊÑ´¹Ì¿Îá¤Ï¤¹¤Ù¤Æ¡Ö1¥µ¥¤¥¯¥ëÌ¿Îá¡×¤Ç¡Ö¥á¥â¥ê¤ò¥¢¥¯¥»¥¹¤·¤Ê¤¤¡×Ì¿Îá¤Ç¡ÖextÌ¿Îá¤Ë¤è¤ë³ÈÄ¥¤Ê¤·¡×¤Î¾ò·ï¤òËþ¤¿¤·¤Æ¤¤¤Þ¤¹¡£
¤Ë¤â¤«¤«¤ï¤é¤º¡¢¡ØS1C33209¥³¥¢CPU¥Þ¥Ë¥å¥¢¥ë¡Ù¤Ç¤Ï¡¢¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¤È¤·¤Æ»ÈÍѲÄǽ¤ÊÌ¿Îá¤Ëµó¤²¤é¤ì¤Æ¤¤¤Þ¤»¤ó¡£
¼ÂºÝ¤Ë¥×¥í¥°¥é¥à¤òÁȤó¤Ç¤¤¤ë¤È¡¢·¿ÊÑ´¹Ì¿Î᤬¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¤È¤·¤Æ»È¤¨¤Ê¤¤¤¿¤á¤Ë¡¢²ù¤·¤¤»×¤¤¤ò¤¹¤ë¤³¤È¤¬¤è¤¯¤¢¤ê¤Þ¤¹¡£
add %r12, %r13¡¡¡¡¡¡¡¡¡¡; a = a + b
ld.ub %r10, %r12¡¡¡¡¡¡¡¡; return (unsigned char)a
ret
¢"ld.ub %r10,%r12"¤¬¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¤È¤·¤Æ»ÈÍѲÄǽ¤À¤Ã¤¿¤Ê¤é¤Ð¡¢¼¡¤Î¤è¤¦¤ËʤÓÂØ¤¨¤Æ¹â®²½¤Ç¤¤ë¤Î¤Ç¤¹¤¬¡¦¡¦¡¦
add %r12, %r13¡¡¡¡¡¡¡¡¡¡; a = a + b
ret.d ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; return (unsigned char)a
ld.ub %r10, %r12¡¡¡¡¡¡¡¡; *delay*
¼ÂºÝ¤Ë¤Ï¡¢"ld.ub %r10,%r12"¤¬¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¤È¤·¤Æ»ÈÍѲÄǽ¤Ç¤Ê¤¤¤¿¤á¤Ë¡¢Ê¤ÓÂØ¤¨¡ÈÉԲġɤǤ¹¡ª¡ª
°ì¸«¡¢¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¤È¤·¤Æ»ÈÍѲÄǽ¤Ê"and"Ì¿Îá¤ÇÂåÍѤ·¤Æ¤·¤Þ¤¨¤Ð¤¤¤¤¤è¤¦¤Ë¤â¸«¤¨¤Þ¤¹¤±¤ì¤É¡¢¤½¤ì¤Ï¤Ç¤¤Þ¤»¤ó¡£
add %r12, %r13¡¡¡¡¡¡¡¡¡¡; a = a + b
ret.d ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; return a & 0xff
xand %r10, %r12, 0xff ¡¡; *delay*
¢"xand %r10,%r12,0xff"¤Ï¡¢¥³¥ó¥Ñ¥¤¥é¤Ë¤è¤Ã¤Æ¼¡¤Î¤è¤¦¤ËŸ³«¤µ¤ì¤Þ¤¹¡£
add %r12, %r13¡¡¡¡¡¡¡¡¡¡; a = a + b
ret.d ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; return a & 0xff
ext 0xff¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; ¨¤
and %r10, %r12¡¡¡¡¡¡¡¡¡¡; ¨ª 2Ì¿Îá¤ËŸ³«¤µ¤ì¤Æ¤·¤Þ¤¤¡¢¥Ç¥£¥ì¥¤¥É¥¹¥í¥Ã¥È¤Ë¼ý¤Þ¤ê¤Þ¤»¤ó¡ª¡ª
·¿ÊÑ´¹Ì¿Îá¤ò»È¤¦¤È¤¤Ï¡¢¥Ç¥£¥ì¥¤¥Éʬ´ôµ¡Ç½¤ò»È¤Ã¤¿¹â®²½¤ò¤¢¤¤é¤á¤ë¤·¤«¤Ê¤¤¤Î¤Ç¤·¤ç¤¦¤«¡©
======================================================================================================================
¡Ö1¥µ¥¤¥¯¥ëÌ¿Îá¡×¡Ö¥á¥â¥ê¤ò¥¢¥¯¥»¥¹¤·¤Ê¤¤¡×¡ÖextÌ¿Îá¤Ë¤è¤ë³ÈÄ¥¤Ê¤·¡×¤Î¾ò·ï¤òËþ¤¿¤·¤Æ¤¤¤ë¤Ë¤â¤«¤«¤ï¤é¤º¡¢
¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¤È¤·¤Æ»ÈÍѲÄǽ¤Ç¤Ê¤¤Ì¿Îá¤È¤·¤Æ¤Ï¡¢·¿ÊÑ´¹Ì¿Îá¤Î¾¤Ë¡¢"div1"¤ä"halt"Ì¿Îá¤Ê¤É¤¬¤¢¤ê¤Þ¤¹¡£
"div1"¤ä"halt"Ì¿Îá¤Ï¤ä¤äÆÃ¼ì¤ÊÉôÎà¤ÎÌ¿Îá¤Ç¤¹¤«¤é¡¢¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¤È¤·¤Æ»ÈÍѲÄǽ¤Ç¤Ê¤¯¤Æ¤â¡¢¤Ê¤ó¤È¤Ê¤¯Ç¼ÆÀ¤Ç¤¤Þ¤¹¡£
¤·¤«¤·¡¢·¿ÊÑ´¹Ì¿Îá¤Î¤è¤¦¤Êñ½ã¤Ç»ÈÍÑÉÑÅ٤ι⤤̿Î᤬¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¤È¤·¤Æ»ÈÍѲÄǽ¤Ç¤Ê¤¤¤È¤¤¤¦¤Î¤Ï¡¢Ç¼ÆÀ¤Ç¤¤Þ¤»¤ó¡£
¤½¤³¤Ç¤Õ¤È¹Í¤¨¤¿¤Î¤¬¡¢¡Ö¤â¤·¤«¤·¤Æ¼ÂºÝ¤Ë¤Ï·¿ÊÑ´¹Ì¿Îá¤â¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¤È¤·¤Æ»ÈÍѲÄǽ¤Ê¤Î¤Ç¤Ï¤Ê¤¤¤«¡©¡×
»×¤¨¤Ð"ld.w %rd,%ss"Ì¿Îá¤À¤Ã¤Æ¡¢¥Þ¥Ë¥å¥¢¥ë¤Ë¤ÏµºÜ¤µ¤ì¤Æ¤¤¤Ê¤¤¤±¤ì¤É¡¢°ÅÌÛ¸øÁ³¤Î¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¤À¤Ã¤¿¤ï¤±¤Ç¤¹¤«¤é¡£
¤½¤ì¤Ç¤Ï¤µ¤Ã¤½¤¯»î¤·¤Æ¤ß¤Þ¤·¤ç¤¦¡£
---------------------------------------------------------
foo:
add %r12, %r13¡¡¡¡¡¡¡¡¡¡; a = a + b
ret.d ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; return (unsigned char)a
ld.ub %r10, %r12¡¡¡¡¡¡¡¡; *delay*
---------------------------------------------------------
¤³¤Î¥¢¥»¥ó¥Ö¥é¥ë¡¼¥Á¥ó¤ò¡¢C¸À¸ì¥×¥í¥°¥é¥à¤«¤é¸Æ¤Ó½Ð¤·¤Æ¤ß¤Þ¤¹¡£
---------------------------------------------------------
extern int foo(int a, int b);
n = foo(0x12345678, 0x9abcdef0);
pceFontPrintf("%08x", n);
---------------------------------------------------------
·ë²Ì¤Ï¡¢¡Ö00000068¡×¤Èɽ¼¨¤µ¤ì¤Þ¤·¤¿¡£
0x12345678 + 0x9abcdef0 = 0xacf13568
(unsigned char)0xacf13568 = 0x68
¤Ç¤¹¤«¤é¡¢Àµ¤·¤¤·ë²Ì¤Ç¤¹¡£
¼Â¹Ô»þ´Ö¤ò·×¬¤·¤Æ¤ß¤ë¤È¡¢¥Ç¥£¥ì¥¤¥Éʬ´ôµ¡Ç½¤ò»È¤Ã¤¿¤³¤È¤Ë¤è¤ë¹â®²½¤Î¸ú²Ì¤¬³Îǧ¤Ç¤¤Þ¤·¤¿¡£
Á°¸å¿ôÌ¿Îá¤ÎʤӤò²¿Ä̤꤫¤ËÊѤ¨¤Æ¤ß¤¿¤ê¡¢¥×¥í¥°¥é¥à¤ä¥Ç¡¼¥¿¤òSRAM¤ä¹â®RAM¤ËÇÛÃÖ¤·¤Æ¤â¡¢¤¹¤Ù¤ÆÀµ¤·¤¤·ë²Ì¤È¤Ê¤ê¤Þ¤¹¡£
"ld.b %rd,%rs"¡¢"ld.h %rd,%rs"¡¢"ld.uh %rd,%rs"Ì¿Îá¤Ë¤Ä¤¤¤Æ¤âƱÍͤ˻¤Æ¤ß¤¿¤È¤³¤í¡¢¤¹¤Ù¤ÆÀµ¤·¤¤·ë²Ì¤¬ÆÀ¤é¤ì¤Þ¤·¤¿¡£
»°Ç¯´ÖǺ¤ó¤Ç¤¤¤¿¤Î¤¬²Ä¾Ð¤·¤¯¤Ê¤Ã¤Æ¤¯¤ë¤°¤é¤¤¡¢¤¢¤Ã¤±¤Ê¤¤ËëÀÚ¤ì¤Ç¤¹¡£
¨®¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¯
¨¨®¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¯¨
¨¨¡¡·¿ÊÑ´¹Ì¿Îá¤â¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¤Ç¤·¤¿¡¡¨¨
¨¨±¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨°¨
¨±¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨°
¤â¤Ã¤È¤â¡¢¥Æ¥¹¥È¥×¥í¥°¥é¥à¤ÇÀµ¤·¤¤·ë²Ì¤¬ÆÀ¤é¤ì¤¿¤À¤±¤Ç¤Ï¡¢¤¢¤é¤æ¤ë¾ìÌ̤ÇÀµ¤·¤¤·ë²Ì¤¬ÆÀ¤é¤ì¤ë¤È¤Ï¸Â¤ê¤Þ¤»¤ó¡£
¥Þ¥Ë¥å¥¢¥ë¤Ë¤â¡Ö¾åµ¤Î¾ò·ï¤òËþ¤¿¤µ¤Ê¤¤Ì¿Îá¤Ïưºî¤¬¡úÉÔÄê¡ú¤È¤Ê¤ë¤¿¤á¡Á¡×¤Èµ¤µ¤ì¤Æ¤¤¤ë¤è¤¦¤Ë¡¢
¥Æ¥¹¥È¥×¥í¥°¥é¥à¤Ç¤Ï¤¿¤Þ¤¿¤ÞÀµ¤·¤¤·ë²Ì¤¬ÆÀ¤é¤ì¤¿¤À¤±¤«¤âÃΤì¤Ê¤¤¤«¤é¤Ç¤¹¡£
¤·¤«¤·¡¢"ld.w %rd,%ss"¤ÎÁ°Î㤫¤é¤¹¤ë¤È¡¢¤¿¤Ö¤ó¤É¤ó¤Ê¾ìÌ̤ǤâÂç¾æÉפʵ¤¤¬¤·¤Þ¤¹¡£ËͤΥ«¥ó¤Ç¤¹¤±¤ì¤É¡£¡£¡£(^^;
·¿ÊÑ´¹Ì¿Î᤬¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¤È¤·¤Æ»È¤¨¤ë¤³¤È¤Î¥á¥ê¥Ã¥È¤Ï¡¢¤â¤·¤«¤·¤¿¤éÉÔ°ÂÄ꤫¤â¡Ä¤È¤¤¤¦¥ê¥¹¥¯¤ò¾å²ó¤ê¤Þ¤¹¡£
¤Ê¤Ë¤è¤ê¡¢»È¤Ã¤Æ¤ß¤Ê¤±¤ì¤ÐÉÔ°ÂÄ꤫¤É¤¦¤«¤â¤ï¤«¤ê¤Þ¤»¤ó¤«¤é¡¢º£¸å¤ÏÀѶËŪ¤Ë»È¤Ã¤Æ¤ß¤ë¤³¤È¤Ë¤·¤è¤¦¤È»×¤¤¤Þ¤¹¡£
======================================================================================================================
¤½¤ó¤Ê¤ï¤±¤Ç¡¢·¿ÊÑ´¹Ì¿Îá¤â¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¤È¤·¤Æ(¤¿¤Ö¤ó)»ÈÍѲÄǽ¤Ç¤¢¤ë¤³¤È¤¬¤ï¤«¤ê¤Þ¤·¤¿¡£
¤â¤Ã¤ÈÁ᤯¤Ë»î¤·¤Æ¤ª¤±¤Ð¤è¤«¤Ã¤¿¡£¡£¡£
¤µ¤Æ¡¢¤³¤¦¤Ê¤Ã¤Æ¤¯¤ë¤È¡¢¡Ö·¿ÊÑ´¹Ì¿Îá°Ê³°¤Ë¤â¡¢¼Â¤Ï¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¤È¤·¤Æ»ÈÍѲÄǽ¤ÊÌ¿Î᤬¤¢¤ë¤Î¤Ç¤Ï¡©¡×¤È»×¤¨¤Æ¤¤Þ¤¹¡£
¤Á¤ç¤Ã¤È»î¤·¤Æ¤ß¤¿¤È¤³¤í¡¢
¡¦1¥µ¥¤¥¯¥ëÌ¿Îá
¡¦¥á¥â¥ê¤ò¥¢¥¯¥»¥¹¤·¤Ê¤¤
¡¦extÌ¿Îá¤Ë¤è¤ë³ÈÄ¥¤Ê¤·
¤Î¾ò·ï¤ò¤Þ¤Ã¤¿¤¯Ìµ»ë¤·¤Æ¡¢¤Û¤È¤ó¤É¤ÎÌ¿Î᤬¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¤È¤·¤Æ(°ì±þ¤Ï)ưºî¤¹¤ë¤³¤È¤¬¤ï¤«¤ê¤Þ¤·¤¿¡£
xjp.d bar
mlt.w %r12, %r13¡¡¡¡¡¡¡¡; 5¥µ¥¤¥¯¥ëÌ¿Îᡪ¡ª
¤È¤«¡¢
xjp.d bar
ld.w %r10, [%r12] ¡¡¡¡¡¡; ¥á¥â¥ê¤ò¥¢¥¯¥»¥¹¤¹¤ë¡ª¡ª
¤È¤«¡¢
xjp.d bar
ext 0xff¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; ʬ´ôÀè¤ÎÌ¿Îá¤Îext³ÈÄ¥¤òÀè¼è¤ê¡ª¡ª
.
.
.
bar:
and %r10, %r12¡¡¡¡¡¡¡¡¡¡; "xand %r10, %r12, 0xff"¤Ë¤Ê¤ê¤Þ¤¹
¤È¤«¡¢·Ú¤¯»î¤·¤¿¸Â¤ê¤Ç¤Ï¡¢¤¹¤Ù¤ÆÀµ¤·¤¤·ë²Ì¤¬ÆÀ¤é¤ì¤Þ¤·¤¿¡£
¼Â¹Ô»þ´Ö¤ò·×¬¤·¤Æ¤ß¤ë¤È¡¢¥Ç¥£¥ì¥¤¥Éʬ´ôµ¡Ç½¤ò»È¤Ã¤¿¤³¤È¤Ë¤è¤ë¹â®²½¤Î¸ú²Ì¤¬³Îǧ¤Ç¤¤Þ¤¹¡£
ÆÃ¤ËÆó¤ÄÌܤΡ¢¥á¥â¥ê¥¢¥¯¥»¥¹Ì¿Îá¤ò¥Ç¥£¥ì¥¤¥É¥¹¥í¥Ã¥È¤ËÆþ¤ì¤¿Îã¤Ç¡¢ÂçÉý¤Ê¹â®²½¤Î¸ú²Ì¤¬¤¢¤ë¤ß¤¿¤¤¤Ç¤¹¡£
¤·¤«¤·¤Ê¤¬¤é¤µ¤¹¤¬¤Ë¤³¤ì¤é¤ÎÊ£»¨¤ÊÌ¿Îá¤Ë¤Ê¤Ã¤Æ¤¯¤ë¤È¡¢¾õ¶·¤Ë¤è¤Ã¤Æ¤Ï·ë²Ì¤¬ÉÔ°ÂÄê¤Ë¤Ê¤ë¤Î¤Ç¤Ï¤Ê¤¤¤«¤È¤¤¤¦µ¤¤â¤·¤Þ¤¹¡£
¤È¤ê¤¢¤¨¤ºº£²ó¤Ï¡Ö·¿ÊÑ´¹Ì¿Îá¤â¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¡×¤È¤¤¤¦·ë²Ì¤ËËþ¤·¡¢¤½¤Î¾¤ÎÌ¿Îá¤Î¼Â¸³¤Ï¤Þ¤¿º£¸å¡¢¤È¤·¤¿¤¤¤È»×¤¤¤Þ¤¹¡£
* Sun Dec 5 16:00:00 JST 2004 Naoyuki Sawa
- ADPCM¤Î»ÅÁȤß#5
º£²ó¤â³¨¤¬Â¿¤¤¤Î¤ÇHTML¤Ç½ñ¤¤Þ¤·¤¿¡£°Ê²¼¤ÎURL¤ò¤´Í÷²¼¤µ¤¤¡£
http://www.piece-me.org/piece-lab/adpcm/adpcm5.html
* Sat Dec 4 14:45:00 JST 2004 Naoyuki Sawa
- ADPCM¤Î»ÅÁȤß#4
º£²ó¤â³¨¤¬Â¿¤¤¤Î¤ÇHTML¤Ç½ñ¤¤Þ¤·¤¿¡£°Ê²¼¤ÎURL¤ò¤´Í÷²¼¤µ¤¤¡£
http://www.piece-me.org/piece-lab/adpcm/adpcm4.html
* Fri Dec 3 00:00:00 JST 2004 Naoyuki Sawa
- ADPCM¤Î»ÅÁȤß#3
º£²ó¤â³¨¤¬Â¿¤¤¤Î¤ÇHTML¤Ç½ñ¤¤Þ¤·¤¿¡£°Ê²¼¤ÎURL¤ò¤´Í÷²¼¤µ¤¤¡£
http://www.piece-me.org/piece-lab/adpcm/adpcm3.html
* Wed Dec 1 00:00:00 JST 2004 Naoyuki Sawa
- ADPCM¤Î»ÅÁȤß#2
º£²ó¤â³¨¤¬Â¿¤¤¤Î¤ÇHTML¤Ç½ñ¤¤Þ¤·¤¿¡£°Ê²¼¤ÎURL¤ò¤´Í÷²¼¤µ¤¤¡£
http://www.piece-me.org/piece-lab/adpcm/adpcm2.html
* Tue Nov 30 06:00:00 JST 2004 Naoyuki Sawa
- ADPCM¤Î»ÅÁȤß#1
º£²ó¤Ï³¨¤¬Â¿¤¤¤Î¤ÇHTML¤Ç½ñ¤¤Þ¤·¤¿¡£°Ê²¼¤ÎURL¤ò¤´Í÷²¼¤µ¤¤¡£
http://www.piece-me.org/piece-lab/adpcm/adpcm1.html
* Sat Nov 7 09:00:00 JST 2004 Naoyuki Sawa
- ¹½Â¤ÂΥѥ寤ËÌäÂꤢ¤ê#2
Á°²ó¡¢P/ECE³«È¯´Ä¶¤Ç¤Ï¡¢¹½Â¤ÂΥѥ寤Τ¿¤á¤Î__attribute__((packed))¤¬Àµ¤·¤¯Æ°ºî¤·¤Ê¤¤¡¢¤È¤¤¤¦¤È¤³¤í¤Þ¤Ç¤ªÏä·¤Þ¤·¤¿¡£
¶ñÂÎŪ¤Ë¤Ï¡¢¹½Â¤ÂÎ¥µ¥¤¥º¤ÏÀµ¤·¤¯¥Ñ¥Ã¥¯¤µ¤ì¤ë¤Î¤À¤±¤ì¤É¡¢½é´ü²½ºÑ¤ß¹½Â¤ÂÎ¤ÎÆâÍÆ¤¬¥Ñ¥Ã¥¯¤µ¤ì¤Æ¤¤¤Ê¤¤¡¢¤È¤¤¤¦¾É¾õ¤Ç¤¹¡£
º£²ó¤Ï¡¢¤½¤Î¸¶°ø¤òõ¤Ã¤Æ¤ß¤Þ¤¹¡£
·ëÏÀ¤À¤±¸À¤¦¤È°ì¸À¤Ç½ª¤ï¤Ã¤Æ¤·¤Þ¤¦¤Î¤Ç¤¹¤¬¡¢¤½¤ì¤Ç¤ÏÌÌÇò¤¯¤Ê¤¤¤Î¤Ç(^^;¡¢Ëͤ¬Ä´ºº¤·¤¿¤È¤¤Î¼ê½ç¤òÄɤäÆÀâÌÀ¤·¤Æ¤ß¤Þ¤¹¡£
Ť¤¤Ç¤¹¤±¤ì¤É¡¢¤ª¤Ä¤¤¢¤¤¤¯¤À¤µ¤¤¡£
¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£
¢£¥³¥ó¥Ñ¥¤¥é½ÐÎϤòÈæ³Ó¤·¤Æ¤ß¤ë¢£
¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£
¤µ¤Æ¤½¤ì¤Ç¤Ï¡¢¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¤¢¤ê(¡á¹½Â¤ÂΥѥå¯Ìµ¤·)¤Î¾ì¹ç¤È¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È̵¤·(¡á¹½Â¤ÂΥѥ寤¢¤ê)¤Î¾ì¹ç¤È¤Ç¡¢
C¸À¸ì¥½¡¼¥¹¤¬¤É¤Î¤è¤¦¤Ë¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¡¢¤É¤Î¤è¤¦¤Ê¥¢¥»¥ó¥Ö¥é¥³¡¼¥É¤¬À¸À®¤µ¤ì¤Æ¤¤¤ë¤Î¤«¸«¤Æ¤ß¤Þ¤¹¡£
C¸À¸ì¥½¡¼¥¹¤ÎÆâÍÆ¤Ï¡¢Á°²ó¤Î¸åȾ¢££Ð¡¿£Å£Ã£Å¤Î¾ì¹ç¡ÁÌäÂêȯÀ¸!!¢£¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£
¤Þ¤º¤Ï¡¢¸åȾÉôʬ¤Ë¤¢¤ë¡¢pceAppProc()´Ø¿ô¤¬¤É¤Î¤è¤¦¤Ë¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤Æ¤¤¤ë¤Î¤«¸«¤Æ¤ß¤Þ¤¹¡£
ºÇ½é¤Ë¡¢__attribute__((packed))¤ò»ØÄꤷ¤Ê¤¤¡¢¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¤¢¤ê¤Î¾ì¹ç¡£
[¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¤¢¤ê]
; void pceAppProc(int count)
; {
; ¡¡¡¡int i;
; ¡¡¡¡unsigned char* p;
;
; ¡¡¡¡memset(vbuff, 0, sizeof vbuff);
; ¡¡¡¡pceFontSetType(2);
; ¡¡¡¡pceFontSetPos(0, 0);
;
; ¡¡¡¡p = (unsigned char*)&cid;
; ¡¡¡¡pceFontPrintf("size = %d\n", sizeof(MMC_CID_INFO));
; ¡¡¡¡for(i = 0; i < sizeof(MMC_CID_INFO); i++) {
; ¡¡¡¡¡¡¡¡pceFontPrintf("%02x ", p[i]);
; ¡¡¡¡}
;
; ¡¡¡¡pceLCDTrans();
; }
;
; ¤ÎÉôʬ¤¬¡¢¼¡¤Î¤è¤¦¤Ë¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤Þ¤¹¡£
pceAppProc:
¡¡¡¡¡¡¡¡pushn¡¡%r2
¡¡¡¡¡¡¡¡xsub¡¡%sp,%sp,8
¡¡¡¡¡¡¡¡xld.w¡¡%r12,vbuff
¡¡¡¡¡¡¡¡ld.w¡¡%r13,0x0
¡¡¡¡¡¡¡¡xld.w¡¡%r14,0x00002c00
¡¡¡¡¡¡¡¡xcall¡¡memset
¡¡¡¡¡¡¡¡xld.w¡¡%r12,0x00000002
¡¡¡¡¡¡¡¡xcall¡¡pceFontSetType
¡¡¡¡¡¡¡¡ld.w¡¡%r12,0x0
¡¡¡¡¡¡¡¡ld.w¡¡%r13,%r12
¡¡¡¡¡¡¡¡xcall¡¡pceFontSetPos
¡¡¡¡¡¡¡¡xld.w¡¡%r10,__LC0
¡¡¡¡¡¡¡¡xld.w¡¡[%sp],%r10
¡¡¡¡¡¡¡¡xld.w¡¡%r10,0x00000014¡¡¡¡¡¡¡¡; 0x00000014(20) = sizeof(MMC_CID_INFO)
¡¡¡¡¡¡¡¡xld.w¡¡[%sp+4],%r10
¡¡¡¡¡¡¡¡xcall¡¡pceFontPrintf
¡¡¡¡¡¡¡¡xld.w¡¡%r2,__LC1
¡¡¡¡¡¡¡¡xld.w¡¡%r0,cid
¡¡¡¡¡¡¡¡xadd¡¡%r1,%r0,15
__L6:
¡¡¡¡¡¡¡¡xld.w¡¡[%sp],%r2
¡¡¡¡¡¡¡¡xld.ub¡¡%r10,[%r0]
¡¡¡¡¡¡¡¡xld.w¡¡[%sp+4],%r10
¡¡¡¡¡¡¡¡xcall¡¡pceFontPrintf
¡¡¡¡¡¡¡¡xadd¡¡%r0,%r0,1
¡¡¡¡¡¡¡¡cmp¡¡%r0,%r1
¡¡¡¡¡¡¡¡xjrule¡¡__L6
¡¡¡¡¡¡¡¡xcall¡¡pceLCDTrans
¡¡¡¡¡¡¡¡xadd¡¡%sp,%sp,8
¡¡¡¡¡¡¡¡popn¡¡%r2
¡¡¡¡¡¡¡¡ret
¼¡¤Ë¡¢__attribute__((packed))¤ò»ØÄꤷ¤¿¡¢¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È̵¤·¤Î¾ì¹ç¡£
[¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È̵¤·]
; void pceAppProc(int count)
; {
; ¡¡¡¡int i;
; ¡¡¡¡unsigned char* p;
;
; ¡¡¡¡memset(vbuff, 0, sizeof vbuff);
; ¡¡¡¡pceFontSetType(2);
; ¡¡¡¡pceFontSetPos(0, 0);
;
; ¡¡¡¡p = (unsigned char*)&cid;
; ¡¡¡¡pceFontPrintf("size = %d\n", sizeof(MMC_CID_INFO));
; ¡¡¡¡for(i = 0; i < sizeof(MMC_CID_INFO); i++) {
; ¡¡¡¡¡¡¡¡pceFontPrintf("%02x ", p[i]);
; ¡¡¡¡}
;
; ¡¡¡¡pceLCDTrans();
; }
;
; ¤ÎÉôʬ¤¬¡¢¼¡¤Î¤è¤¦¤Ë¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤Þ¤¹¡£
pceAppProc:
¡¡¡¡¡¡¡¡pushn¡¡%r2
¡¡¡¡¡¡¡¡xsub¡¡%sp,%sp,8
¡¡¡¡¡¡¡¡xld.w¡¡%r12,vbuff
¡¡¡¡¡¡¡¡ld.w¡¡%r13,0x0
¡¡¡¡¡¡¡¡xld.w¡¡%r14,0x00002c00
¡¡¡¡¡¡¡¡xcall¡¡memset
¡¡¡¡¡¡¡¡xld.w¡¡%r12,0x00000002
¡¡¡¡¡¡¡¡xcall¡¡pceFontSetType
¡¡¡¡¡¡¡¡ld.w¡¡%r12,0x0
¡¡¡¡¡¡¡¡ld.w¡¡%r13,%r12
¡¡¡¡¡¡¡¡xcall¡¡pceFontSetPos
¡¡¡¡¡¡¡¡xld.w¡¡%r10,__LC0
¡¡¡¡¡¡¡¡xld.w¡¡[%sp],%r10
¡¡¡¡¡¡¡¡xld.w¡¡%r10,0x00000010¡¡¡¡¡¡¡¡; 0x00000010(16) = sizeof(MMC_CID_INFO)
¡¡¡¡¡¡¡¡xld.w¡¡[%sp+4],%r10
¡¡¡¡¡¡¡¡xcall¡¡pceFontPrintf
¡¡¡¡¡¡¡¡xld.w¡¡%r2,__LC1
¡¡¡¡¡¡¡¡xld.w¡¡%r0,cid
¡¡¡¡¡¡¡¡xadd¡¡%r1,%r0,15
__L6:
¡¡¡¡¡¡¡¡xld.w¡¡[%sp],%r2
¡¡¡¡¡¡¡¡xld.ub¡¡%r10,[%r0]
¡¡¡¡¡¡¡¡xld.w¡¡[%sp+4],%r10
¡¡¡¡¡¡¡¡xcall¡¡pceFontPrintf
¡¡¡¡¡¡¡¡xadd¡¡%r0,%r0,1
¡¡¡¡¡¡¡¡cmp¡¡%r0,%r1
¡¡¡¡¡¡¡¡xjrule¡¡__L6
¡¡¡¡¡¡¡¡xcall¡¡pceLCDTrans
¡¡¡¡¡¡¡¡xadd¡¡%sp,%sp,8
¡¡¡¡¡¡¡¡popn¡¡%r2
¡¡¡¡¡¡¡¡ret
sizeof(MMC_CID_INFO)¤ÎÃͤ¬¡¢¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¤¢¤ê¤Î¾ì¹ç¤Ï¥Ñ¥Ç¥£¥ó¥°¹þ¤ß¤Ç20¥Ð¥¤¥È¡¢¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È̵¤·¤Î¾ì¹ç¤Ï16¥Ð¥¤¥È¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£
P/ECE³«È¯´Ä¶¤ÎC¥³¥ó¥Ñ¥¤¥é¤Ï¡¢¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¤¢¤ê¤Î¾ì¹ç¤È̵¤·¤Î¾ì¹ç¤È¤Ç¡¢¹½Â¤ÂÎ¥µ¥¤¥º¤Î°ã¤¤¤ò¤¤Á¤ó¤È½èÍý¤Ç¤¤Æ¤¤¤ë¤³¤È¤¬¤ï¤«¤ê¤Þ¤¹¡£
¹½Â¤ÂÎ¥µ¥¤¥º¤¬ÊѲ½¤¹¤ë¤³¤È°Ê³°¤Ï¡¢¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¤¢¤ê¤Î¾ì¹ç¤â̵¤·¤Î¾ì¹ç¤â¡¢¤Þ¤Ã¤¿¤¯Æ±¤¸¥³¥ó¥Ñ¥¤¥ë·ë²Ì¤Ç¤¹¡£
ÌäÂꤢ¤ê¤Þ¤»¤ó¡£
¤½¤ì¤Ç¤Ï¡¢Á°È¾Éôʬ¤Î¡¢½é´ü²½ºÑ¤ß¹½Â¤ÂΤÎÄêµÁ¤¬¤É¤Î¤è¤¦¤Ë¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤Æ¤¤¤ë¤«¸«¤Æ¤ß¤Þ¤¹¡£
ºÇ½é¤Ë¡¢__attribute__((packed))¤ò»ØÄꤷ¤Ê¤¤¡¢¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¤¢¤ê¤Î¾ì¹ç¡£
[¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¤¢¤ê]
; //CID(Card IDentification number)¡¡¥«¡¼¥ÉID¥ì¥¸¥¹¥¿¾ðÊó¹½Â¤ÂÎ
; typedef struct tag_MMC_CID_INFO
; {
; ¡¡¡¡unsigned char¡¡ ucMID;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// + 0, 1: ManufactureID(8bit)
; ¡¡¡¡unsigned short¡¡usOID;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// + 2, 2: OEM/Application ID(16bit)
; ¡¡¡¡unsigned char¡¡ ucPNM[6];¡¡¡¡¡¡¡¡¡¡ // + 4, 6: Product name(48bit)
; ¡¡¡¡unsigned char¡¡ ucPRV;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +10, 1: Product revision(8bit)
; ¡¡¡¡unsigned long¡¡ ulPSN;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +12, 4: Product serial number(32bit)
; ¡¡¡¡unsigned char¡¡ ucMDT;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +16, 1: Manufacturing date(8bit)
; ¡¡¡¡unsigned char¡¡ ucCRC;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +17, 1: 7-bit CRC checksum(7bit)
; } __attribute__((packed)) MMC_CID_INFO; // =20
;
; MMC_CID_INFO cid = {
; ¡¡¡¡0xff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned char¡¡ ucMID;¡¡¡¡// + 0, 1: ManufactureID(8bit)
; ¡¡¡¡0xffff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned short¡¡usOID;¡¡¡¡// + 2, 2: OEM/Application ID(16bit)
; ¡¡¡¡{ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }, // unsigned char¡¡ ucPNM[6]; // + 4, 6: Product name(48bit)
; ¡¡¡¡0xff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned char¡¡ ucPRV;¡¡¡¡// +10, 1: Product revision(8bit)
; ¡¡¡¡0xffffffff, ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡// unsigned long¡¡ ulPSN;¡¡¡¡// +12, 4: Product serial number(32bit)
; ¡¡¡¡0xff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned char¡¡ ucMDT;¡¡¡¡// +16, 1: Manufacturing date(8bit)
; ¡¡¡¡0xff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned char¡¡ ucCRC;¡¡¡¡// +17, 1: 7-bit CRC checksum(7bit)
; };
;
; ¤ÎÉôʬ¤¬¡¢¼¡¤Î¤è¤¦¤Ë¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤Þ¤¹¡£
¡¡¡¡¡¡¡¡.align¡¡2
cid:
¡¡¡¡¡¡¡¡.byte¡¡ 255
¡¡¡¡¡¡¡¡.space¡¡1
¡¡¡¡¡¡¡¡.half¡¡ 65535
¡¡¡¡¡¡¡¡.byte¡¡ 255
¡¡¡¡¡¡¡¡.byte¡¡ 255
¡¡¡¡¡¡¡¡.byte¡¡ 255
¡¡¡¡¡¡¡¡.byte¡¡ 255
¡¡¡¡¡¡¡¡.byte¡¡ 255
¡¡¡¡¡¡¡¡.byte¡¡ 255
¡¡¡¡¡¡¡¡.byte¡¡ 255
¡¡¡¡¡¡¡¡.space¡¡1
¡¡¡¡¡¡¡¡.word¡¡ -1
¡¡¡¡¡¡¡¡.byte¡¡ 255
¡¡¡¡¡¡¡¡.byte¡¡ 255
¡¡¡¡¡¡¡¡.space¡¡2
¼¡¤Ë¡¢__attribute__((packed))¤ò»ØÄꤷ¤¿¡¢¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È̵¤·¤Î¾ì¹ç¡£
[¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È̵¤·]
; //CID(Card IDentification number)¡¡¥«¡¼¥ÉID¥ì¥¸¥¹¥¿¾ðÊó¹½Â¤ÂÎ
; typedef struct tag_MMC_CID_INFO
; {
; ¡¡¡¡unsigned char¡¡ ucMID;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// + 0, 1: ManufactureID(8bit)
; ¡¡¡¡unsigned short¡¡usOID;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// + 1, 2: OEM/Application ID(16bit)
; ¡¡¡¡unsigned char¡¡ ucPNM[6];¡¡¡¡¡¡¡¡¡¡ // + 3, 6: Product name(48bit)
; ¡¡¡¡unsigned char¡¡ ucPRV;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// + 9, 1: Product revision(8bit)
; ¡¡¡¡unsigned long¡¡ ulPSN;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +10, 4: Product serial number(32bit)
; ¡¡¡¡unsigned char¡¡ ucMDT;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +14, 1: Manufacturing date(8bit)
; ¡¡¡¡unsigned char¡¡ ucCRC;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +15, 1: 7-bit CRC checksum(7bit)
; } __attribute__((packed)) MMC_CID_INFO; // =16
;
; MMC_CID_INFO cid = {
; ¡¡¡¡0xff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned char¡¡ ucMID;¡¡¡¡// + 0, 1: ManufactureID(8bit)
; ¡¡¡¡0xffff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned short¡¡usOID;¡¡¡¡// + 1, 2: OEM/Application ID(16bit)
; ¡¡¡¡{ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }, // unsigned char¡¡ ucPNM[6]; // + 3, 6: Product name(48bit)
; ¡¡¡¡0xff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned char¡¡ ucPRV;¡¡¡¡// + 9, 1: Product revision(8bit)
; ¡¡¡¡0xffffffff, ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡// unsigned long¡¡ ulPSN;¡¡¡¡// +10, 4: Product serial number(32bit)
; ¡¡¡¡0xff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned char¡¡ ucMDT;¡¡¡¡// +14, 1: Manufacturing date(8bit)
; ¡¡¡¡0xff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned char¡¡ ucCRC;¡¡¡¡// +15, 1: 7-bit CRC checksum(7bit)
; };
;
; ¤ÎÉôʬ¤¬¡¢¼¡¤Î¤è¤¦¤Ë¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤Þ¤¹¡£
¡¡¡¡¡¡¡¡.align¡¡2
cid:
¡¡¡¡¡¡¡¡.byte¡¡ 255
¡¡¡¡¡¡¡¡.half¡¡ 65535
¡¡¡¡¡¡¡¡.byte¡¡ 255
¡¡¡¡¡¡¡¡.byte¡¡ 255
¡¡¡¡¡¡¡¡.byte¡¡ 255
¡¡¡¡¡¡¡¡.byte¡¡ 255
¡¡¡¡¡¡¡¡.byte¡¡ 255
¡¡¡¡¡¡¡¡.byte¡¡ 255
¡¡¡¡¡¡¡¡.byte¡¡ 255
¡¡¡¡¡¡¡¡.word¡¡ -1
¡¡¡¡¡¡¡¡.byte¡¡ 255
¡¡¡¡¡¡¡¡.byte¡¡ 255
¤ª¤ä¡©°ì¸«ÌäÂê¤Ê¤¤¤è¤¦¤Ë¸«¤¨¤Þ¤¹¡£
¤ï¤«¤ê¤ä¤¹¤¤¤è¤¦¤Ë¡¢¥³¥á¥ó¥È¤ËÉÕ¤±¤Æ¤ß¤Þ¤·¤ç¤¦¡£
[¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¤¢¤ê]
¡¡¡¡¡¡¡¡.align¡¡2¡¡¡¡¡¡¡¡; ¼¡¤Î°ÌÃÖ¤¬³Î¼Â¤Ë(1<<2)=4¤ÎÇÜ¿ô¥¢¥É¥ì¥¹¤«¤é»Ï¤Þ¤ë¤è¤¦¤Ë¤¹¤ë¡£
cid:
¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡; // unsigned char¡¡ ucMID;¡¡¡¡// + 0, 1: ManufactureID(8bit)
¡¡¡¡¡¡¡¡.space¡¡1¡¡¡¡¡¡¡¡; // (¥Ñ¥Ç¥£¥ó¥°)¡¡¡¡¡¡¡¡¡¡¡¡¡¡// + 1, 1:
¡¡¡¡¡¡¡¡.half¡¡ 65535¡¡¡¡; // unsigned short¡¡usOID;¡¡¡¡// + 2, 2: OEM/Application ID(16bit)
¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡; // unsigned char¡¡ ucPNM[6]; // + 4, 6: Product name(48bit)
¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡;
¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡;
¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡;
¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡;
¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡;
¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡; // unsigned char¡¡ ucPRV;¡¡¡¡// +10, 1: Product revision(8bit)
¡¡¡¡¡¡¡¡.space¡¡1¡¡¡¡¡¡¡¡; // (¥Ñ¥Ç¥£¥ó¥°)¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +11, 1:
¡¡¡¡¡¡¡¡.word¡¡ -1¡¡¡¡¡¡ ; // unsigned long¡¡ ulPSN;¡¡¡¡// +12, 4: Product serial number(32bit)
¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡; // unsigned char¡¡ ucMDT;¡¡¡¡// +16, 1: Manufacturing date(8bit)
¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡; // unsigned char¡¡ ucCRC;¡¡¡¡// +17, 1: 7-bit CRC checksum(7bit)
¡¡¡¡¡¡¡¡.space¡¡2¡¡¡¡¡¡¡¡; // (¥Ñ¥Ç¥£¥ó¥°)¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +18, 2:
¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¤¢¤ê¤Î¾ì¹ç¤Ë¤Ä¤¤¤Æ¤Ï¡¢´°Á´¤ËÌäÂꤢ¤ê¤Þ¤»¤ó¡£
Á°²ó¹Ô¤Ã¤¿P/ECE¾å¤Ç¤Î¥Æ¥¹¥È¤Ç¤â¡¢´üÂÔÄ̤ê¤Î¼Â¹Ô·ë²Ì¤È¤Ê¤Ã¤Æ¤¤¤Þ¤·¤¿¡£
¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¤¢¤ê¤Î¾ì¹ç¤Ë¤Ä¤¤¤Æ¤Ï¡¢¤â¤¦¸¡Æ¤¤¹¤ëɬÍפϤʤµ¤½¤¦¤Ç¤¹¡£
ÌäÂê¤Ï¡¢¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È̵¤·¤Î¾ì¹ç¤Ç¤¹¡£
[¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È̵¤·]
¡¡¡¡¡¡¡¡.align¡¡2¡¡¡¡¡¡¡¡; ¼¡¤Î°ÌÃÖ¤¬³Î¼Â¤Ë(1<<2)=4¤ÎÇÜ¿ô¥¢¥É¥ì¥¹¤«¤é»Ï¤Þ¤ë¤è¤¦¤Ë¤¹¤ë¡£
cid:
¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡; // unsigned char¡¡ ucMID;¡¡¡¡// + 0, 1: ManufactureID(8bit)
¡¡¡¡¡¡¡¡.half¡¡ 65535¡¡¡¡; // unsigned short¡¡usOID;¡¡¡¡// + 1, 2: OEM/Application ID(16bit)
¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡; // unsigned char¡¡ ucPNM[6]; // + 3, 6: Product name(48bit)
¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡;
¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡;
¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡;
¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡;
¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡;
¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡; // unsigned char¡¡ ucPRV;¡¡¡¡// + 9, 1: Product revision(8bit)
¡¡¡¡¡¡¡¡.word¡¡ -1¡¡¡¡¡¡ ; // unsigned long¡¡ ulPSN;¡¡¡¡// +10, 4: Product serial number(32bit)
¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡; // unsigned char¡¡ ucMDT;¡¡¡¡// +14, 1: Manufacturing date(8bit)
¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡; // unsigned char¡¡ ucCRC;¡¡¡¡// +15, 1: 7-bit CRC checksum(7bit)
¥³¥ó¥Ñ¥¤¥ë·ë²Ì¤Î¥¢¥»¥ó¥Ö¥é¥³¡¼¥É¤ò¸«¤ë¸Â¤ê¤Ï¡¢ÌäÂê̵¤µ¤½¤¦¤Ë¸«¤¨¤Þ¤¹¡£
¤¬¡¢¼Â¤Ï¡¢¾å¤Î¥³¥á¥ó¥È¤Î¤è¤¦¤Ê¥á¥â¥êÇÛÃ֤ˤϤʤé¤Ê¤¤¤Î¤Ç¤¹¡£
¡Ø¥¢¥»¥ó¥Ö¥é¤Ë¤â°ÅÌۤΥ¢¥é¥¤¥á¥ó¥Èµ¡Ç½¤¬¤¢¤ë¡Ù¤È¤¤¤¦¤Î¤¬¤½¤ÎÍýͳ¤Ç¤¹¡£
¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£
¢£¥¢¥»¥ó¥Ö¥é¤Î¥¢¥é¥¤¥á¥ó¥Èµ¡Ç½¢£
¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£
P/ECE³«È¯´Ä¶¤ËÆþ¤Ã¤Æ¤¤¤ë¡¢¡ÖS1C33 Family C¥³¥ó¥Ñ¥¤¥é¥Ñ¥Ã¥±¡¼¥¸ Ver.4¡×¤Î¥Þ¥Ë¥å¥¢¥ë¤ò³«¤¤¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£
(C:\usr\PIECE\docs\datasheet\EPSON\S5U1C33000C_J.pdf)
¥Þ¥Ë¥å¥¢¥ë171¥Ú¡¼¥¸(PDF¤Ç¤Ï187¥Ú¡¼¥¸ÌÜ)¡¢¡Ö11.8.6 ¥Ç¡¼¥¿ÄêµÁµ¼»÷Ì¿Îá¡×¤Î¤È¤³¤í¤Ë¡¢¼¡¤Î¤è¤¦¤Êµ½Ò¤¬¤¢¤ê¤Þ¤¹¡£
.wordµ¼»÷Ì¿Îá
¡üÃí°Õ»ö¹à
¡¦ÄêµÁ¤·¤¿¥Ç¡¼¥¿¤ÏľÁ°¤Ë.alignÌ¿Î᤬¤Ê¤¤¸Â¤ê¡¢¥ï¡¼¥É¶³¦¥¢¥É¥ì¥¹¤«¤éÇÛÃÖ¤µ¤ì¤Þ¤¹¡£
¡¡¸½ºß°ÌÃÖ¤¬¥ï¡¼¥É¶³¦¥¢¥É¥ì¥¹°Ê³°¤Î¾ì¹ç¡¢¥Ç¡¼¥¿¤òÇÛÃÖ¤¹¤ë¥ï¡¼¥É¶³¦¥¢¥É¥ì¥¹¤Þ¤Ç¤Î´Ö¤Ï0x00¤¬ÀßÄꤵ¤ì¤Þ¤¹¡£
.halfµ¼»÷Ì¿Îá
¡üÃí°Õ»ö¹à
¡¦ÄêµÁ¤·¤¿¥Ç¡¼¥¿¤ÏľÁ°¤Ë.alignÌ¿Î᤬¤Ê¤¤¸Â¤ê¡¢¥Ï¡¼¥Õ¥ï¡¼¥É¶³¦¥¢¥É¥ì¥¹¤«¤éÇÛÃÖ¤µ¤ì¤Þ¤¹¡£
¡¡¸½ºß°ÌÃÖ¤¬´ñ¿ô¥¢¥É¥ì¥¹¤Î¾ì¹ç¡¢¸½ºß°ÌÃ֤ˤÏ0x00¤¬ÀßÄꤵ¤ì¤Þ¤¹¡£
¤³¤ì¤Ç¤¹!!
¤Ä¤Þ¤ê¡¢¥³¥ó¥Ñ¥¤¥ë·ë²Ì¤Î¥¢¥»¥ó¥Ö¥é¥³¡¼¥É¤¬as33.exe¤Ë¤è¤Ã¤Æ¥¢¥»¥ó¥Ö¥ë¤µ¤ì¤ë¤È¡¢¼¡¤Î¤è¤¦¤Ê¥á¥â¥êÇÛÃ֤ˤʤäƤ¤¤¿¤Î¤Ç¤¹¡£
[¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È̵¤·]
¡¡¡¡¡¡¡¡.align¡¡2¡¡¡¡¡¡¡¡; ¼¡¤Î°ÌÃÖ¤¬³Î¼Â¤Ë(1<<2)=4¤ÎÇÜ¿ô¥¢¥É¥ì¥¹¤«¤é»Ï¤Þ¤ë¤è¤¦¤Ë¤¹¤ë¡£
cid:
¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡; // unsigned char¡¡ ucMID;¡¡¡¡// + 0, 1: ManufactureID(8bit)
¡¡¡¡¡¡¡¡(0x00)¡¡¡¡¡¡¡¡¡¡ ; // (¥Ñ¥Ç¥£¥ó¥°)¡¡¡¡¡¡¡¡¡¡¡¡¡¡// + 1, 1:
¡¡¡¡¡¡¡¡.half¡¡ 65535¡¡¡¡; // unsigned short¡¡usOID;¡¡¡¡// + 2, 2: OEM/Application ID(16bit)
¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡; // unsigned char¡¡ ucPNM[6]; // + 4, 6: Product name(48bit)
¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡;
¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡;
¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡;
¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡;
¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡;
¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡; // unsigned char¡¡ ucPRV;¡¡¡¡// +10, 1: Product revision(8bit)
¡¡¡¡¡¡¡¡(0x00)¡¡¡¡¡¡¡¡¡¡ ; // (¥Ñ¥Ç¥£¥ó¥°)¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +11, 1:
¡¡¡¡¡¡¡¡.word¡¡ -1¡¡¡¡¡¡ ; // unsigned long¡¡ ulPSN;¡¡¡¡// +12, 4: Product serial number(32bit)
¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡; // unsigned char¡¡ ucMDT;¡¡¡¡// +16, 1: Manufacturing date(8bit)
¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡; // unsigned char¡¡ ucCRC;¡¡¡¡// +17, 1: 7-bit CRC checksum(7bit)
¹½Â¤ÂÎËöÈø¤Î¥Ñ¥Ç¥£¥ó¥°¤¬¹Í褵¤ì¤Ê¤¤¤³¤È¤ò½ü¤±¤Ð¡¢¤³¤Î¥á¥â¥êÇÛÃÖ¤ÏC¥³¥ó¥Ñ¥¤¥é¤Ë¤è¤Ã¤Æ¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¤¬¹Ô¤ï¤ì¤¿¾ì¹ç¤ÈƱ¤¸¤Ç¤¹¡£
__attribute__((packed))¤¬»ØÄꤵ¤ì¤¿»þ¡¢C¥³¥ó¥Ñ¥¤¥é¤ÏÌÀ¼¨Åª¤Ê¥Ñ¥Ç¥£¥ó¥°(.spaceµ¼»÷Ì¿Îá)¤Î¥³¡¼¥É½ÐÎϤò¾Ê¤¤¤Æ¡¢¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¤ò̵¤¯¤·¤¿¤Ä¤â¤ê¤Ç¤¤¤ë¤Î¤Ç¤¹¤¬¡¢
¼ÂºÝ¤Ë¤Ï¥¢¥»¥ó¥Ö¥é¤Ë¤è¤Ã¤Æ¥Õ¥£¡¼¥ë¥Éñ°Ì¤Î¥¢¥é¥¤¥á¥ó¥È¤¬¹Ô¤ï¤ì¤Æ¤·¤Þ¤¤¡¢·ë²Ì¡¢¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¤¢¤ê¤Î¾ì¹ç¤ÈƱ¤¸¥á¥â¥êÇÛÃ֤ˤʤäƤ·¤Þ¤Ã¤Æ¤¤¤¿¡¢¤È¤¤¤¦¤ï¤±¤Ç¤¹¡£
¤Ç¤Ï¡¢¤É¤Î¤è¤¦¤Ê¥¢¥»¥ó¥Ö¥é¥³¡¼¥É½ÐÎϤʤé¤Ð¡¢Àµ¤·¤¯¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È̵¤·¤Î¥á¥â¥êÇÛÃ֤ˤʤë¤Î¤Ç¤·¤ç¤¦¤«¡©
.alignµ¼»÷Ì¿Î᤬¡¢Visual C++¤Ë¤ª¤±¤ë#pragma pack¤ß¤¿¤¤¤Ê¤â¤Î¤À¤È¹Í¤¨¤ë¤È¡¢¼¡¤Î¤è¤¦¤Ê¥¢¥»¥ó¥Ö¥é¥³¡¼¥É¤ò»×¤¤¤Ä¤¤Þ¤¹¡£
[¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È̵¤·¤Ë¤¹¤ë¤Ë¤Ï¡©]
¡¡¡¡¡¡¡¡.align¡¡0¡¡¡¡¡¡¡¡; ¼¡¤Î°ÌÃÖ¤¬(1<<0)=1¤ÎÇÜ¿ô¥¢¥É¥ì¥¹¤«¤é»Ï¤Þ¤ë¤è¤¦¤Ë¤¹¤ë¡£
cid:
¡¡¡¡¡¡¡¡.byte¡¡ 255
¡¡¡¡¡¡¡¡.half¡¡ 65535
¡¡¡¡¡¡¡¡.byte¡¡ 255
¡¡¡¡¡¡¡¡.byte¡¡ 255
¡¡¡¡¡¡¡¡.byte¡¡ 255
¡¡¡¡¡¡¡¡.byte¡¡ 255
¡¡¡¡¡¡¡¡.byte¡¡ 255
¡¡¡¡¡¡¡¡.byte¡¡ 255
¡¡¡¡¡¡¡¡.byte¡¡ 255
¡¡¡¡¡¡¡¡.word¡¡ -1
¡¡¡¡¡¡¡¡.byte¡¡ 255
¡¡¡¡¡¡¡¡.byte¡¡ 255
¤¬¡¢¤³¤ì¤Ç¤Ï¥À¥á¤Ç¤¹¡£
¼ÂºÝ¤Ë¥×¥í¥°¥é¥à¤ò½ñ¤¤¤Æ¤ß¤Æ¡¢¤³¤ì¤Ç¤Ï¥À¥á¤Ê¤³¤È¤ò³Îǧ¤·¤Þ¤·¤¿¡£
[¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È̵¤·¤Ë¤¹¤ë¤Ë¤Ï¡©(¼ºÇÔÎã)]
#include
unsigned char vbuff[128 * 88];
//CID(Card IDentification number)¡¡¥«¡¼¥ÉID¥ì¥¸¥¹¥¿¾ðÊó¹½Â¤ÂÎ
typedef struct tag_MMC_CID_INFO
{
¡¡¡¡unsigned char¡¡ ucMID;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// + 0, 1: ManufactureID(8bit)
¡¡¡¡unsigned short¡¡usOID;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// + 1, 2: OEM/Application ID(16bit)
¡¡¡¡unsigned char¡¡ ucPNM[6];¡¡¡¡¡¡¡¡¡¡ // + 3, 6: Product name(48bit)
¡¡¡¡unsigned char¡¡ ucPRV;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// + 9, 1: Product revision(8bit)
¡¡¡¡unsigned long¡¡ ulPSN;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +10, 4: Product serial number(32bit)
¡¡¡¡unsigned char¡¡ ucMDT;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +14, 1: Manufacturing date(8bit)
¡¡¡¡unsigned char¡¡ ucCRC;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +15, 1: 7-bit CRC checksum(7bit)
} __attribute__((packed)) MMC_CID_INFO; // =16
//½é´ü²½ºÑ¤ß¹½Â¤ÂΤÎÄêµÁ¤ò¡¢¥¤¥ó¥é¥¤¥ó¥¢¥»¥ó¥Ö¥é¤Ç½ñ¤Ä¾¤·¤Æ¤ß¤Þ¤¹¡£
extern MMC_CID_INFO cid;
asm("
¡¡¡¡¡¡¡¡.align¡¡0¡¡¡¡¡¡¡¡; ¼¡¤Î°ÌÃÖ¤¬(1<<0)=1¤ÎÇÜ¿ô¥¢¥É¥ì¥¹¤«¤é»Ï¤Þ¤ë¤è¤¦¤Ë¤¹¤ë¡£
cid:
¡¡¡¡¡¡¡¡.byte¡¡ 255
¡¡¡¡¡¡¡¡.half¡¡ 65535
¡¡¡¡¡¡¡¡.byte¡¡ 255
¡¡¡¡¡¡¡¡.byte¡¡ 255
¡¡¡¡¡¡¡¡.byte¡¡ 255
¡¡¡¡¡¡¡¡.byte¡¡ 255
¡¡¡¡¡¡¡¡.byte¡¡ 255
¡¡¡¡¡¡¡¡.byte¡¡ 255
¡¡¡¡¡¡¡¡.byte¡¡ 255
¡¡¡¡¡¡¡¡.word¡¡ -1
¡¡¡¡¡¡¡¡.byte¡¡ 255
¡¡¡¡¡¡¡¡.byte¡¡ 255
");
void pceAppInit()
{
¡¡¡¡pceLCDSetBuffer(vbuff);
¡¡¡¡pceLCDDispStart();
}
void pceAppProc(int count)
{
¡¡¡¡int i;
¡¡¡¡unsigned char* p;
¡¡¡¡memset(vbuff, 0, sizeof vbuff);
¡¡¡¡pceFontSetType(2);
¡¡¡¡pceFontSetPos(0, 0);
¡¡¡¡p = (unsigned char*)&cid;
¡¡¡¡pceFontPrintf("size = %d\n", sizeof(MMC_CID_INFO));
¡¡¡¡for(i = 0; i < sizeof(MMC_CID_INFO); i++) {
¡¡¡¡¡¡¡¡pceFontPrintf("%02x ", p[i]);
¡¡¡¡}
¡¡¡¡pceLCDTrans();
}
void pceAppExit()
{
}
-------------------------------------------------------------------------------------------
¢£¢£ ·ë²Ì ¢£¢£
size = 16
ff 00 ff ff ff ff ff ff ff ff ff 00 ff ff ff ff
-------------------------------------------------------------------------------------------
C¸À¸ì¤Ç½ñ¤¤¤¿¾ì¹ç¤Î¡¢¸í¤Ã¤¿½ÐÎÏ·ë²Ì¤ÈÊѤï¤Ã¤Æ¤¤¤Þ¤»¤ó¡£
¤Ê¤¼¥À¥á¤«¡¢¥Þ¥Ë¥å¥¢¥ë174¥Ú¡¼¥¸(PDF¤Ç¤Ï190¥Ú¡¼¥¸ÌÜ)¤Î¡¢.alignµ¼»÷Ì¿Îá¤ÎÀâÌÀ¤ò¸«¤Æ¤¯¤À¤µ¤¤¡£
.alignµ¼»÷Ì¿Îá
¡üµ¡Ç½
¡¡¤³¤Îµ¼»÷Ì¿Îá¤Îľ¸å¤Ë½Ð¸½¤¹¤ë¥Ç¡¼¥¿¤ò£²¡°£Î¥Ð¥¤¥È¶³¦¤Ë¥¢¥é¥¤¥á¥ó¥È¤·¤Þ¤¹(£Î¡á¶³¦»ØÄêÃÍ)¡£
¡üÃí°Õ»ö¹à
¡¡.alignµ¼»÷Ì¿Îá¤Ïľ¸å¤Ë¤¢¤ë¥Ç¡¼¥¿ÄêµÁµ¼»÷Ì¿Îá¤ËÂФ·¤Æ¤Î¤ß͸ú¤Ç¤¹¡£
¡¡¤·¤¿¤¬¤Ã¤Æ¡¢¥¢¥é¥¤¥á¥ó¥È¤¬É¬Íפʥǡ¼¥¿¤òÄêµÁ¤¹¤ë¾ì¹ç¤Ë¤Ï¡¢¥Ç¡¼¥¿ÄêµÁµ¼»÷Ì¿Îá¸Ä¡¹¤Ë.alignµ¼»÷Ì¿Îá¤ò»ÈÍѤ¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£
¤½¤¦¡¢.alignµ¼»÷Ì¿Îá¤Ï¡ØÄ¾¸å¤Î¡Ù¥Ç¡¼¥¿ÄêµÁµ¼»÷Ì¿Îá¤ËÂФ·¤Æ¤·¤«¡¢¸ú²Ì¤¬¤Ê¤¤¤Î¤Ç¤¹¡£
ľ¸å¤è¤ê¤¦¤·¤í¤Î¥Ç¡¼¥¿ÄêµÁµ¼»÷Ì¿Îá¤Ï¡¢Ä̾ï¤É¤ª¤ê¡¢°ÅÌۤΥ¢¥é¥¤¥á¥ó¥È¤¬¤Ê¤µ¤ì¤Æ¤·¤Þ¤¤¤Þ¤¹¡£
¡¡¡¡¡¡¡¡.align¡¡0¡¡¡¡¡¡¡¡; ¼¡¤Î°ÌÃÖ¤¬(1<<0)=1¤ÎÇÜ¿ô¥¢¥É¥ì¥¹¤«¤é»Ï¤Þ¤ë¤è¤¦¤Ë¤¹¤ë¡£
cid:
¡¡¡¡¡¡¡¡.byte¡¡ 255
¡¡¡¡¡¡¡¡.half¡¡ 65535¡¡¡¡; ¤³¤³¤«¤é¸å¤í¤Ï¡¢Ä̾ï¤É¤ª¤ê¡¢°ÅÌۤΥ¢¥é¥¤¥á¥ó¥È¤¬¤Ê¤µ¤ì¤Æ¤·¤Þ¤¤¤Þ¤¹¡£
¡¡¡¡¡¡¡¡.byte¡¡ 255
¡¡¡¡¡¡¡¡.byte¡¡ 255
¡¡¡¡¡¡¡¡.byte¡¡ 255
¡¡¡¡¡¡¡¡.byte¡¡ 255
¡¡¡¡¡¡¡¡.byte¡¡ 255
¡¡¡¡¡¡¡¡.byte¡¡ 255
¡¡¡¡¡¡¡¡.byte¡¡ 255
¡¡¡¡¡¡¡¡.word¡¡ -1
¡¡¡¡¡¡¡¡.byte¡¡ 255
¡¡¡¡¡¡¡¡.byte¡¡ 255
ľ¸å¤Î¥Ç¡¼¥¿µ¼»÷Ì¿Îá¤ËÂФ·¤Æ.align¤¬Í¸ú¤À¤È¤¦¤¤¤¦¤Î¤Ê¤é¤Ð¡¢¼¡¤Î¤è¤¦¤Ë½ñ¤±¤Ð¤¤¤¤¤Î¤Ç¤·¤ç¤¦¤«¡©
[¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È̵¤·¤Ë¤¹¤ë¤Ë¤Ï¡©]
¡¡¡¡¡¡¡¡.align¡¡2¡¡¡¡¡¡¡¡; ¹½Â¤ÂΤÎÀèÆ¬¤ò4¤ÎÇÜ¿ô¥¢¥É¥ì¥¹¤«¤é»Ï¤á¤ë¤¿¤á¤Ë¡¢ÀèÆ¬¤Î.align 2¤ÏɬÍ×!!
cid:
¡¡¡¡¡¡¡¡.byte¡¡ 255
¡¡¡¡¡¡¡¡.align¡¡0¡¡¡¡¡¡¡¡; ¼¡¤Î.half¤Î°ÅÌۤΥ¢¥é¥¤¥á¥ó¥È¤òÍÞÀ©¤¹¤ë¡£
¡¡¡¡¡¡¡¡.half¡¡ 65535
¡¡¡¡¡¡¡¡.byte¡¡ 255
¡¡¡¡¡¡¡¡.byte¡¡ 255
¡¡¡¡¡¡¡¡.byte¡¡ 255
¡¡¡¡¡¡¡¡.byte¡¡ 255
¡¡¡¡¡¡¡¡.byte¡¡ 255
¡¡¡¡¡¡¡¡.byte¡¡ 255
¡¡¡¡¡¡¡¡.byte¡¡ 255
¡¡¡¡¡¡¡¡.align¡¡0¡¡¡¡¡¡¡¡; ¼¡¤Î.word¤Î°ÅÌۤΥ¢¥é¥¤¥á¥ó¥È¤òÍÞÀ©¤¹¤ë¡£
¡¡¡¡¡¡¡¡.word¡¡ -1
¡¡¡¡¡¡¡¡.byte¡¡ 255
¡¡¡¡¡¡¡¡.byte¡¡ 255
¤½¤ì¤Ç¤Ï¡¢¤â¤¦¤¤¤Á¤É¥×¥í¥°¥é¥à¤ò½ñ¤¤¤Æ»î¤·¤Æ¤ß¤Þ¤¹¡£
[¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È̵¤·¤Ë¤¹¤ë¤Ë¤Ï¡©(¼ºÇÔÎã)]
#include
unsigned char vbuff[128 * 88];
//CID(Card IDentification number)¡¡¥«¡¼¥ÉID¥ì¥¸¥¹¥¿¾ðÊó¹½Â¤ÂÎ
typedef struct tag_MMC_CID_INFO
{
¡¡¡¡unsigned char¡¡ ucMID;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// + 0, 1: ManufactureID(8bit)
¡¡¡¡unsigned short¡¡usOID;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// + 1, 2: OEM/Application ID(16bit)
¡¡¡¡unsigned char¡¡ ucPNM[6];¡¡¡¡¡¡¡¡¡¡ // + 3, 6: Product name(48bit)
¡¡¡¡unsigned char¡¡ ucPRV;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// + 9, 1: Product revision(8bit)
¡¡¡¡unsigned long¡¡ ulPSN;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +10, 4: Product serial number(32bit)
¡¡¡¡unsigned char¡¡ ucMDT;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +14, 1: Manufacturing date(8bit)
¡¡¡¡unsigned char¡¡ ucCRC;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +15, 1: 7-bit CRC checksum(7bit)
} __attribute__((packed)) MMC_CID_INFO; // =16
//½é´ü²½ºÑ¤ß¹½Â¤ÂΤÎÄêµÁ¤ò¡¢¥¤¥ó¥é¥¤¥ó¥¢¥»¥ó¥Ö¥é¤Ç½ñ¤Ä¾¤·¤Æ¤ß¤Þ¤¹¡£
extern MMC_CID_INFO cid;
asm("
¡¡¡¡¡¡¡¡.align¡¡2¡¡¡¡¡¡¡¡; ¹½Â¤ÂΤÎÀèÆ¬¤ò4¤ÎÇÜ¿ô¥¢¥É¥ì¥¹¤«¤é»Ï¤á¤ë¤¿¤á¤Ë¡¢ÀèÆ¬¤Î.align 2¤ÏɬÍ×!!
cid:
¡¡¡¡¡¡¡¡.byte¡¡ 255
¡¡¡¡¡¡¡¡.align¡¡0¡¡¡¡¡¡¡¡; ¼¡¤Î.half¤Î°ÅÌۤΥ¢¥é¥¤¥á¥ó¥È¤òÍÞÀ©¤¹¤ë¡£
¡¡¡¡¡¡¡¡.half¡¡ 65535
¡¡¡¡¡¡¡¡.byte¡¡ 255
¡¡¡¡¡¡¡¡.byte¡¡ 255
¡¡¡¡¡¡¡¡.byte¡¡ 255
¡¡¡¡¡¡¡¡.byte¡¡ 255
¡¡¡¡¡¡¡¡.byte¡¡ 255
¡¡¡¡¡¡¡¡.byte¡¡ 255
¡¡¡¡¡¡¡¡.byte¡¡ 255
¡¡¡¡¡¡¡¡.align¡¡0¡¡¡¡¡¡¡¡; ¼¡¤Î.word¤Î°ÅÌۤΥ¢¥é¥¤¥á¥ó¥È¤òÍÞÀ©¤¹¤ë¡£
¡¡¡¡¡¡¡¡.word¡¡ -1
¡¡¡¡¡¡¡¡.byte¡¡ 255
¡¡¡¡¡¡¡¡.byte¡¡ 255
");
void pceAppInit()
{
¡¡¡¡pceLCDSetBuffer(vbuff);
¡¡¡¡pceLCDDispStart();
}
void pceAppProc(int count)
{
¡¡¡¡int i;
¡¡¡¡unsigned char* p;
¡¡¡¡memset(vbuff, 0, sizeof vbuff);
¡¡¡¡pceFontSetType(2);
¡¡¡¡pceFontSetPos(0, 0);
¡¡¡¡p = (unsigned char*)&cid;
¡¡¡¡pceFontPrintf("size = %d\n", sizeof(MMC_CID_INFO));
¡¡¡¡for(i = 0; i < sizeof(MMC_CID_INFO); i++) {
¡¡¡¡¡¡¡¡pceFontPrintf("%02x ", p[i]);
¡¡¡¡}
¡¡¡¡pceLCDTrans();
}
void pceAppExit()
{
}
-------------------------------------------------------------------------------------------
¢£¢£ ·ë²Ì ¢£¢£
size = 16
ff 00 ff ff ff ff ff ff ff ff ff 00 ff ff ff ff
-------------------------------------------------------------------------------------------
¤ä¤Ã¤Ñ¤ê¥À¥á¤Ç¤¹¡£
²¿Ä̤꤫»î¤·¤¿·ë²Ì¡¢¤É¤¦¤ä¤é.alignµ¼»÷Ì¿Îá¤Ï¡Ö¥Ñ¥Ç¥£¥ó¥°¤òÁý¤ä¤¹¤³¤È¤Ï¤Ç¤¤ë¤¬¸º¤é¤¹¤³¤È¤Ï¤Ç¤¤Ê¤¤¡×¤³¤È¤¬¤ï¤«¤ê¤Þ¤·¤¿¡£
¤¿¤È¤¨¤Ð¡¢Ä̾.byteµ¼»÷Ì¿Îá¤Ë¤Ï°ÅÌۤΥ¢¥é¥¤¥á¥ó¥È¤Ï¤¢¤ê¤Þ¤»¤ó¡£
¤¬¡¢¹½Â¤ÂΤÎÀèÆ¬¥Õ¥£¡¼¥ë¥É¤¬unsigned char·¿¤Ç¤¢¤ë¤è¤¦¤Ê¾ì¹ç¤Ê¤É¡¢unsigned charÃͤò¶¯À©Åª¤Ë4¤ÎÇÜ¿ô¥¢¥É¥ì¥¹¤ËÃÖ¤¤¿¤¤¾ì¹ç¤Ë¡¢
.byteµ¼»÷Ì¿Îá¤ÎÁ°¤Ë.align 2¤ò»ØÄꤷ¤¿¤ê¤¹¤ë¤ï¤±¤Ç¡¢¤³¤Î¤è¤¦¤Ê.alignµ¼»÷Ì¿Îá¤Î»È¤¤Êý¤Ï£Ï£Ë¤Ç¤¹¡£
¤¬¡¢µÕ¤Ë¡¢¤â¤È¤â¤È°ÅÌۤΥ¢¥é¥¤¥á¥ó¥È¤Ë¤è¤Ã¤Æ.halfµ¼»÷Ì¿Îá¤ä.wordµ¼»÷Ì¿Îá¤ÎľÁ°¤Ë¥Ñ¥Ç¥£¥ó¥°¤¬Äɲäµ¤ì¤Æ¤¤¤¿¤â¤Î¤È¤·¤Æ¡¢
¤½¤Î¥Ñ¥Ç¥£¥ó¥°¤ò¼è¤ê½ü¤¯¤¿¤á¤Ë.align 0¤ò»ØÄꤷ¤Æ¤â¡¢¤½¤ì¤Ï̵»ë¤µ¤ì¤Æ¤·¤Þ¤¦¤Î¤Ç¤¹¡£
°Ê¾å¤Î¿¶¤ëÉñ¤¤¤Ï¥Þ¥Ë¥å¥¢¥ë¤Ë¤ÏºÜ¤Ã¤Æ¤¤¤Ê¤¤¤è¤¦¤Ç¤¹¤±¤ì¤É¡¢¤Þ¤¢¡¢´¶³ÐŪ¤ËÍý²ò¤Ç¤¤Ê¤¯¤â¤¢¤ê¤Þ¤»¤ó¡£
¤½¤ó¤Ê¤ï¤±¤Ç·ë¶É¡¢¥¢¥»¥ó¥Ö¥é¤Ë¤è¤ë°ÅÌۤΥ¢¥é¥¤¥á¥ó¥È¤òÍÞÀ©¤¹¤ë¤Ë¤Ï¡¢¼¡¤Î¤è¤¦¤Ë1¥Ð¥¤¥È¤Å¤ÄÄêµÁ¤¹¤ë¤·¤«¤Ê¤¤¤ß¤¿¤¤¤Ç¤¹¡£
[¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È̵¤·¤Ë¤¹¤ë¤Ë¤Ï¡©(¤¤¤Á¤ª¤¦À®¸ùÎã¤Ç¤¹¤¬¡Ä)]
#include
unsigned char vbuff[128 * 88];
//CID(Card IDentification number)¡¡¥«¡¼¥ÉID¥ì¥¸¥¹¥¿¾ðÊó¹½Â¤ÂÎ
typedef struct tag_MMC_CID_INFO
{
¡¡¡¡unsigned char¡¡ ucMID;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// + 0, 1: ManufactureID(8bit)
¡¡¡¡unsigned short¡¡usOID;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// + 1, 2: OEM/Application ID(16bit)
¡¡¡¡unsigned char¡¡ ucPNM[6];¡¡¡¡¡¡¡¡¡¡ // + 3, 6: Product name(48bit)
¡¡¡¡unsigned char¡¡ ucPRV;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// + 9, 1: Product revision(8bit)
¡¡¡¡unsigned long¡¡ ulPSN;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +10, 4: Product serial number(32bit)
¡¡¡¡unsigned char¡¡ ucMDT;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +14, 1: Manufacturing date(8bit)
¡¡¡¡unsigned char¡¡ ucCRC;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +15, 1: 7-bit CRC checksum(7bit)
} __attribute__((packed)) MMC_CID_INFO; // =16
//½é´ü²½ºÑ¤ß¹½Â¤ÂΤÎÄêµÁ¤ò¡¢¥¤¥ó¥é¥¤¥ó¥¢¥»¥ó¥Ö¥é¤Ç½ñ¤Ä¾¤·¤Æ¤ß¤Þ¤¹¡£
extern MMC_CID_INFO cid;
asm("
¡¡¡¡¡¡¡¡.align¡¡2¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; ¹½Â¤ÂΤÎÀèÆ¬¤ò4¤ÎÇÜ¿ô¥¢¥É¥ì¥¹¤«¤é»Ï¤á¤ë¤¿¤á¤Ë¡¢ÀèÆ¬¤Î.align 2¤ÏɬÍ×!!
cid:
¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡¡¡¡¡¡¡¡¡; // + 0, 1: ManufactureID(8bit)
¡¡¡¡¡¡¡¡.byte 255,255¡¡¡¡¡¡¡¡¡¡; // + 1, 2: OEM/Application ID(16bit)
¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡¡¡¡¡¡¡¡¡; // + 3, 6: Product name(48bit)
¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡¡¡¡¡¡¡¡¡;
¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡¡¡¡¡¡¡¡¡;
¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡¡¡¡¡¡¡¡¡;
¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡¡¡¡¡¡¡¡¡;
¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡¡¡¡¡¡¡¡¡;
¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡¡¡¡¡¡¡¡¡; // + 9, 1: Product revision(8bit)
¡¡¡¡¡¡¡¡.byte¡¡ 255,255,255,255¡¡; // +10, 4: Product serial number(32bit)
¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡¡¡¡¡¡¡¡¡; // +14, 1: Manufacturing date(8bit)
¡¡¡¡¡¡¡¡.byte¡¡ 255¡¡¡¡¡¡¡¡¡¡¡¡¡¡; // +15, 1: 7-bit CRC checksum(7bit)
");
void pceAppInit()
{
¡¡¡¡pceLCDSetBuffer(vbuff);
¡¡¡¡pceLCDDispStart();
}
void pceAppProc(int count)
{
¡¡¡¡int i;
¡¡¡¡unsigned char* p;
¡¡¡¡memset(vbuff, 0, sizeof vbuff);
¡¡¡¡pceFontSetType(2);
¡¡¡¡pceFontSetPos(0, 0);
¡¡¡¡p = (unsigned char*)&cid;
¡¡¡¡pceFontPrintf("size = %d\n", sizeof(MMC_CID_INFO));
¡¡¡¡for(i = 0; i < sizeof(MMC_CID_INFO); i++) {
¡¡¡¡¡¡¡¡pceFontPrintf("%02x ", p[i]);
¡¡¡¡}
¡¡¡¡pceLCDTrans();
}
void pceAppExit()
{
}
-------------------------------------------------------------------------------------------
¢£¢£ ·ë²Ì ¢£¢£
size = 16
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-------------------------------------------------------------------------------------------
short¤äint¤Î¥Õ¥£¡¼¥ë¥É¤ò¡¢¿Í¼ê¤Ç1¥Ð¥¤¥È¤Å¤Äʬ²ò¤·¤ÆÄêµÁ¤¹¤ë¤È¤¤¤¦¤Î¤ÏÁ´¤¯¸½¼ÂŪ¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¤¬¡¢
C¥³¥ó¥Ñ¥¤¥é¤¬¥¢¥»¥ó¥Ö¥é¥³¡¼¥É¤ò¼«Æ°À¸À®¤¹¤ëʬ¤Ë¤Ï¡¢¤ä¤Ã¤Æ¤¯¤ì¤Æ¤âÎɤµ¤½¤¦¤Ë»×¤¨¤Þ¤¹¤¬....
¤¿¤Ö¤ó¡¢EPSON¥³¥ó¥Ñ¥¤¥é¤Ï¤³¤Î¤è¤¦¤Ê¥±¡¼¥¹¤òÁÛÄꤷ¤Æ¤¤¤Ê¤«¤Ã¤¿¤Î¤À¤È»×¤¤¤Þ¤¹¡£
;Ã̤Ǥ¹¤¬¡¢Linux PC¾å¤ÇGCC¤ò»È¤Ã¤¿¾ì¹ç¤Ï¡¢¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È̵¤·¤Î¾ì¹ç¤Ë¼¡¤Î¤è¤¦¤Ê¥¢¥»¥ó¥Ö¥é¥³¡¼¥É¤¬À¸À®¤µ¤ì¤Þ¤¹¡£
cid:
¡¡¡¡¡¡¡¡.byte¡¡ -1
¡¡¡¡¡¡¡¡.value¡¡-1
¡¡¡¡¡¡¡¡.byte¡¡ -1
¡¡¡¡¡¡¡¡.byte¡¡ -1
¡¡¡¡¡¡¡¡.byte¡¡ -1
¡¡¡¡¡¡¡¡.byte¡¡ -1
¡¡¡¡¡¡¡¡.byte¡¡ -1
¡¡¡¡¡¡¡¡.byte¡¡ -1
¡¡¡¡¡¡¡¡.byte¡¡ -1
¡¡¡¡¡¡¡¡.long¡¡ -1
¡¡¡¡¡¡¡¡.byte¡¡ -1
¡¡¡¡¡¡¡¡.byte¡¡ -1
ºÇ½é¤Ë¸«¤¿¡¢P/ECE¾å¤Ç¤Î¸í¤Ã¤¿Îã¤ÈƱ¤¸¤Ë¸«¤¨¤Þ¤¹¤¬¡¢PC¤Î¾ì¹ç¤Ï¤³¤ì¤ÇÂç¾æÉפʤΤǤ¹¡£
Linux PC¤Î¥¢¥»¥ó¥Ö¥é¤ÏP/ECE¤Î¥¢¥»¥ó¥Ö¥é¤È°ã¤Ã¤Æ¡¢½é´ü¾õÂ֤ǤϰÅÌۤΥ¢¥é¥¤¥á¥ó¥È¤ò¹Ô¤ï¤Ê¤¤¤ß¤¿¤¤¤Ç¤¹¡£
¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£
¢£¹½Â¤ÂΥѥ寤ò»È¤Ã¤Æ¤âÂç¾æÉפʥ±¡¼¥¹¢£
¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£
°Ê¾å¤Î¤è¤¦¤Ë¡¢P/ECE³«È¯´Ä¶¤Ç¤Ï__attribute__((packed))¤Ë¤è¤ë¹½Â¤ÂΥѥ寤¬¤«¤Ê¤êÂ礤ÊÌäÂê¤òÊú¤¨¤Æ¤¤¤ë¤³¤È¤¬¤ï¤«¤ê¤Þ¤·¤¿¡£
Ä̾¡Ö»È¤ï¤Ê¤¤¤Û¤¦¤¬Îɤ¤¡×¤Î¤Ï´Ö°ã¤¤¤¢¤ê¤Þ¤»¤ó¡£
¤¬¡¢¤Þ¤Ã¤¿¤¯»È¤¨¤Ê¤¤¤«¤È¤¤¤¦¤È¤½¤¦¤Ç¤â¤Ê¤¯¤Æ¡¢¤è¤¯Ãí°Õ¤·¤Æ»È¤¨¤ÐÌò¤ËΩ¤Ä¥±¡¼¥¹¤â¤¢¤ê¤Þ¤¹¡£
¤«¤Ê¤êºÙ¤«¤¤Ïäˤʤê¤Þ¤¹¤Î¤Ç¡¢É¬Íפʤ±¤ì¤ÐÆÉ¤ßÈô¤Ð¤·¤Æ¤¯¤À¤µ¤¤¡£
¡½é´üºÑ¤ß¹½Â¤ÂΤò»È¤ï¤Ê¤¤¥±¡¼¥¹
¤Ò¤È¤Ä¤á¤Ï¡¢½é´ü²½ºÑ¤ß¹½Â¤ÂΤò»È¤ï¤Ê¤¤¤³¤È¤¬³Î¼Â¤Ë¤ï¤«¤Ã¤Æ¤¤¤ë¥±¡¼¥¹¤Ç¤¹¡£
P/ECE¾å¤ÇÀµ¤·¤¯Æ°ºî¤·¤Ê¤«¤Ã¤¿C¸À¸ì¥×¥í¥°¥é¥à¤ò¡¢½é´ü²½ºÑ¤ß¹½Â¤ÂΤò»È¤ï¤Ê¤¤¤è¤¦¡¢¼¡¤Î¤è¤¦¤Ë½ñ¤´¹¤¨¤Æ¤ß¤Þ¤·¤¿¡£
[¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È̵¤·¡¢½é´ü²½ºÑ¤ß¹½Â¤ÂΤò»È¤ï¤Ê¤¤]
#include
unsigned char vbuff[128 * 88];
//CID(Card IDentification number)¡¡¥«¡¼¥ÉID¥ì¥¸¥¹¥¿¾ðÊó¹½Â¤ÂÎ
typedef struct tag_MMC_CID_INFO
{
¡¡¡¡unsigned char¡¡ ucMID;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// + 0, 1: ManufactureID(8bit)
¡¡¡¡unsigned short¡¡usOID;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// + 1, 2: OEM/Application ID(16bit)
¡¡¡¡unsigned char¡¡ ucPNM[6];¡¡¡¡¡¡¡¡¡¡ // + 3, 6: Product name(48bit)
¡¡¡¡unsigned char¡¡ ucPRV;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// + 9, 1: Product revision(8bit)
¡¡¡¡unsigned long¡¡ ulPSN;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +10, 4: Product serial number(32bit)
¡¡¡¡unsigned char¡¡ ucMDT;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +14, 1: Manufacturing date(8bit)
¡¡¡¡unsigned char¡¡ ucCRC;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +15, 1: 7-bit CRC checksum(7bit)
} __attribute__((packed)) MMC_CID_INFO; // =16
MMC_CID_INFO cid;
void pceAppInit()
{
¡¡¡¡pceLCDSetBuffer(vbuff);
¡¡¡¡pceLCDDispStart();
}
void pceAppProc(int count)
{
¡¡¡¡int i;
¡¡¡¡unsigned char* p;
¡¡¡¡//¹½Â¤ÂÎ¥Õ¥£¡¼¥ë¥É¤ËÃͤò¤Ò¤È¤Ä¤Å¤Ä³ÊǼ
¡¡¡¡cid.ucMID = 0xff;
¡¡¡¡cid.usOID = 0xffff;
¡¡¡¡cid.ucPNM[0] = 0xff;
¡¡¡¡cid.ucPNM[1] = 0xff;
¡¡¡¡cid.ucPNM[2] = 0xff;
¡¡¡¡cid.ucPNM[3] = 0xff;
¡¡¡¡cid.ucPNM[4] = 0xff;
¡¡¡¡cid.ucPNM[5] = 0xff;
¡¡¡¡cid.ucPRV = 0xff;
¡¡¡¡cid.ulPSN = 0xffffffff;
¡¡¡¡cid.ucMDT = 0xff;
¡¡¡¡cid.ucCRC = 0xff;
¡¡¡¡memset(vbuff, 0, sizeof vbuff);
¡¡¡¡pceFontSetType(2);
¡¡¡¡pceFontSetPos(0, 0);
¡¡¡¡p = (unsigned char*)&cid;
¡¡¡¡pceFontPrintf("size = %d\n", sizeof(MMC_CID_INFO));
¡¡¡¡for(i = 0; i < sizeof(MMC_CID_INFO); i++) {
¡¡¡¡¡¡¡¡pceFontPrintf("%02x ", p[i]);
¡¡¡¡}
¡¡¡¡pceLCDTrans();
}
void pceAppExit()
{
}
-------------------------------------------------------------------------------------------
¢£¢£ ·ë²Ì ¢£¢£
size = 16
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-------------------------------------------------------------------------------------------
Àµ¤·¤¤·ë²Ì¤¬ÆÀ¤é¤ì¤Þ¤·¤¿¡£
½é´ü²½ºÑ¤ß¹½Â¤ÂΤξì¹ç¤Ï¥Õ¥£¡¼¥ë¥É¤Ò¤È¤Ä¤Ò¤È¤Ä¤¬¥Ç¡¼¥¿ÄêµÁµ¼»÷Ì¿Îá¤Ë¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿¤¿¤á¡¢Á°½Ò¤Î¤è¤¦¤Ê°ÅÌۤΥ¢¥é¥¤¥á¥ó¥ÈÌäÂ꤬ȯÀ¸¤·¤¿¤ï¤±¤Ç¤¹¤¬¡¢
̤½é´ü²½¹½Â¤ÂΤξì¹ç¤Ï¥Õ¥£¡¼¥ë¥É¤Ò¤È¤Ä¤Ò¤È¤Ä¤ËÂбþ¤¹¤ëµ¼»÷Ì¿Î᤬À¸À®¤µ¤ì¤ë¤ï¤±¤Ç¤Ï¤Ê¤¯¡¢¼¡¤Î¤è¤¦¤Ê¥¢¥»¥ó¥Ö¥é¥³¡¼¥É¤¬À¸À®¤µ¤ì¤Þ¤¹¡£
.comm¡¡¡¡cid 16¡¡¡¡; 16¥Ð¥¤¥È¤Î¥°¥í¡¼¥Ð¥ëÊÑ¿ôÎΰè¤ò³ÎÊݤ»¤è¡¢¤È¤¤¤¦°ÕÌ£
¹½Â¤ÂÎ¥Õ¥£¡¼¥ë¥É¤ËÃͤò¤Ò¤È¤Ä¤Å¤Ä³ÊǼ¤¹¤ëÉôʬ¤ÎC¸À¸ì¥×¥í¥°¥é¥à¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤Þ¤¹¡£(ÆÉ¤àɬÍפʤ¤¤Ç¤¹(^^;)
xld.w¡¡¡¡%r0,cid
xld.w¡¡¡¡%r10,0x000000ff
xld.b¡¡¡¡[%r0],%r10¡¡¡¡¡¡¡¡¡¡; + 0, 1: ManufactureID(8bit)
xld.ub¡¡ %r11,[%r0+1]¡¡¡¡¡¡¡¡; + 1, 2: OEM/Application ID(16bit) (¼ê½ç¤Ë̵Â̤¬¤¢¤ê¤Þ¤¹¤¬¡¢´Ö°ã¤¤¤Ç¤Ï¤Ê¤¤¤Ç¤¹)
or¡¡¡¡¡¡ %r11,%r10
xld.b¡¡¡¡[%r0+1],%r11
xld.ub¡¡ %r11,[%r0+2]
or¡¡¡¡¡¡ %r11,%r10
xld.b¡¡¡¡[%r0+2],%r11
xld.b¡¡¡¡[%r0+3],%r10¡¡¡¡¡¡¡¡; + 3, 6: Product name(48bit)
xld.b¡¡¡¡[%r0+4],%r10
xld.b¡¡¡¡[%r0+5],%r10
xld.b¡¡¡¡[%r0+6],%r10
xld.b¡¡¡¡[%r0+7],%r10
xld.b¡¡¡¡[%r0+8],%r10
xld.b¡¡¡¡[%r0+9],%r10¡¡¡¡¡¡¡¡; + 9, 1: Product revision(8bit)
xld.ub¡¡ %r11,[%r0+10]¡¡¡¡¡¡ ; +10, 4: Product serial number(32bit) (¼ê½ç¤Ë̵Â̤¬¤¢¤ê¤Þ¤¹¤¬¡¢´Ö°ã¤¤¤Ç¤Ï¤Ê¤¤¤Ç¤¹)
or¡¡¡¡¡¡ %r11,%r10
xld.b¡¡¡¡[%r0+10],%r11
xld.ub¡¡ %r11,[%r0+11]
or¡¡¡¡¡¡ %r11,%r10
xld.b¡¡¡¡[%r0+11],%r11
xld.ub¡¡ %r11,[%r0+12]
or¡¡¡¡¡¡ %r11,%r10
xld.b¡¡¡¡[%r0+12],%r11
xld.ub¡¡ %r11,[%r0+13]
or¡¡¡¡¡¡ %r11,%r10
xld.b¡¡¡¡[%r0+13],%r11
xld.b¡¡¡¡[%r0+14],%r10¡¡¡¡¡¡ ; +14, 1: Manufacturing date(8bit)
xadd¡¡¡¡ %r1,%r0,15¡¡¡¡¡¡¡¡¡¡; +15, 1: 7-bit CRC checksum(7bit)
xld.b¡¡¡¡[%r1],%r10
C¥³¥ó¥Ñ¥¤¥é¤Ï¡¢¥Ñ¥Ã¥¯¤µ¤ì¤¿¹½Â¤ÂΤγƥե£¡¼¥ë¥É¤ÎÀµ¤·¤¤¥ª¥Õ¥»¥Ã¥È¤òǧ¼±¤·¤Æ¤¤¤ë¤Î¤Ç¡¢Àµ¤·¤¤¥³¡¼¥É¤¬À¸À®¤µ¤ì¤Æ¤¤¤Þ¤¹¡£(¤Á¤ç¤Ã¤È̵Â̤¢¤ê¤Þ¤¹¤±¤ì¤É)
¤¤¤Þ¾å¤Ç¼¨¤·¤¿¥×¥í¥°¥é¥àÎã¤Î¤è¤¦¤Ê¡¢¹½Â¤ÂΤγƥե£¡¼¥ë¥É¤ò¥×¥í¥°¥é¥à¤Ç¤Ò¤È¤Ä¤Å¤Ä½é´ü²½¤¹¤ë¥±¡¼¥¹¤Ë²Ã¤¨¤Æ¡¢
¥Õ¥¡¥¤¥ë¤òÆÉ¤ß¹þ¤ó¤À¤ê¥Ç¥Ð¥¤¥¹¤«¤é¥Ð¥¤¥ÈÎó¤ò¼õ¿®¤·¤Æ¡¢¤½¤Î¤Þ¤Þ¹½Â¤ÂÎÊÑ¿ô¤Ë³ÊǼ¤¹¤ë¥±¡¼¥¹¤Ç¤â¡¢½é´ü²½ºÑ¤ß¹½Â¤ÂΤò»È¤¦É¬Íפ¬¤Ê¤¤¤Î¤Ç£Ï£Ë¤Ç¤¹¡£
¢¹½Â¤ÂÎËöÈø¤Î¥Ñ¥Ç¥£¥ó¥°¤À¤±¤ò½üµî¤¹¤ë¾ì¹ç
¤â¤È¤â¤È¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¤¢¤ê¤Î¾ì¹ç¤Ë¤â¥Õ¥£¡¼¥ë¥É´Ö¤Ë¤Ï¥Ñ¥Ç¥£¥ó¥°¤¬¤Ê¤¯¤Ã¤Æ¡¢¹½Â¤ÂÎËöÈø¤À¤±¤Ë¥Ñ¥Ç¥£¥ó¥°¤¬¤¢¤ë¤è¤¦¤Ê¾ì¹ç¤Ë¡¢
¹½Â¤ÂÎËöÈø¤Î¥Ñ¥Ç¥£¥ó¥°¤ò¼è¤ê½ü¤¤¤Æ¤½¤Î¤Ö¤ó¹½Â¤ÂÎ¥µ¥¤¥º¤ò¾®¤µ¤¯¤·¤¿¤¤¥±¡¼¥¹¤Ç¡¢__attribute__((packed))¤¬ÍøÍѲÄǽ¤Ç¤¹¡£
¤½¤ó¤ÊÅÔ¹ç¤ÎÎɤ¤Ï䬤¢¤ë¤«¡ª¤È¸À¤ï¤ì¤½¤¦¤Ç¤¹¤¬(^^;¡¢¤¢¤ê¤Þ¤¹¡£
USB»ÅÍͤι½Â¤ÂΤǤ¹¡£
USB»ÅÍͤι½Â¤ÂΤϡ¢³Æ¥Õ¥£¡¼¥ë¥É¤Î¥ª¥Õ¥»¥Ã¥È¤Ë´Ø¤·¤Æ¤Ï¥Ñ¥Ç¥£¥ó¥°Ìµ¤·¤ÇŬÀڤʥ¢¥é¥¤¥á¥ó¥È¤Ë¤Ê¤ë¤è¤¦Äê¤á¤é¤ì¤Æ¤¤¤ë¤³¤È¤¬Â¿¤¤¤Î¤Ç¤¹¤±¤ì¤É¡¢
¤Ê¤¼¤«ËöÈø¤Ë1¥Ð¥¤¥È¤Î¥Õ¥£¡¼¥ë¥É¤¬¤¢¤Ã¤¿¤ê¤·¤Æ¡¢¹½Â¤ÂΥѥå¯Ìµ¤·¤Ç¤ÏËöÈø¤Ë¥Ñ¥Ç¥£¥ó¥°¤¬ÉÕ¤¤¤Æ¤·¤Þ¤¦¤è¤¦¤Ê¥±¡¼¥¹¤¬¤è¤¯¤¢¤ë¤ß¤¿¤¤¤Ê¤Î¤Ç¤¹¡£
¤¿¤È¤¨¤Ð¡¢USBÄÌ¿®Ã¼ÅÀ¤ÎÆÃÀ¤òµ½Ò¤¹¤ë¤¿¤á¤Î¹½Â¤ÂΤȤ·¤Æ¡¢¥¨¥ó¥É¥Ý¥¤¥ó¥È¥Ç¥£¥¹¥¯¥ê¥×¥¿¤È¤¤¤¦¹½Â¤ÂΤ¬¤¢¤ê¤Þ¤¹¡£
typedef struct _ENDPOINT_DESCRIPTOR {
¡¡¡¡unsigned char bLength;¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡/* + 0, 1 */
¡¡¡¡unsigned char bDescriptorType;¡¡¡¡¡¡¡¡¡¡¡¡/* + 1, 1 */
¡¡¡¡unsigned char bEndpointAddress;¡¡¡¡¡¡¡¡¡¡ /* + 2, 1 */
¡¡¡¡unsigned char bAttributes;¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡/* + 3, 1 */
¡¡¡¡unsigned short wMaxPacketSize;¡¡¡¡¡¡¡¡¡¡¡¡ /* + 4, 2 */
¡¡¡¡unsigned char bInterval;¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡/* + 6, 1 */
} __attribute__((packed)) ENDPOINT_DESCRIPTOR; /* = 7 */
USB¥Ç¥Ð¥¤¥¹(P/ECE¦¤Ç¤¹)¤Ï¡¢¥Ç¥Ð¥¤¥¹¤ÎÄÌ¿®ÆÃÀ¤ò¥Û¥¹¥È(PC¦¤Ç¤¹)¤ØÃΤ餻¤ë¤¿¤á¤Ë¡¢¥¨¥ó¥É¥Ý¥¤¥ó¥È¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò¥Ç¥Ð¥¤¥¹¤«¤é¥Û¥¹¥È¤ØÁ÷¿®¤·¤Þ¤¹¡£
¥¨¥ó¥É¥Ý¥¤¥ó¥È¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ÎÆâÍÆ¤¬ÊѲ½¤¹¤ë¤³¤È¤Ï¤Þ¤º¤Ê¤¤¤Î¤Ç¡¢½é´ü²½ºÑ¤ß¹½Â¤ÂΤȤ·¤Æ¤¢¤é¤«¤¸¤áÍѰդ·¤Æ¤ª¤¤Þ¤¹¡£
½é´ü²½ºÑ¤ß¥¨¥ó¥É¥Ý¥¤¥ó¥È¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò¥Ç¥Ð¥¤¥¹¤«¤é¥Û¥¹¥È¤ØÁ÷¿®¤¹¤ë¥×¥í¥°¥é¥à¤Ï¡¢¤À¤¤¤¿¤¤¼¡¤Î¤è¤¦¤Ê¤«¤ó¤¸¤Ë¤Ê¤ê¤Þ¤¹¡£
const ENDPOINT_DESCRIPTOR endpoint_desc_ep2in = {
¡¡¡¡sizeof(ENDPOINT_DESCRIPTOR),¡¡¡¡//unsigned char bLength;¡¡¡¡¡¡¡¡¡¡¡¡/* + 0, 1 */
¡¡¡¡ENDPOINT_DESCRIPTOR_TYPE,¡¡¡¡¡¡ //unsigned char bDescriptorType;¡¡¡¡/* + 1, 1 */
¡¡¡¡0x82,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ //unsigned char bEndpointAddress;¡¡ /* + 2, 1 */
¡¡¡¡2,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//unsigned char bAttributes;¡¡¡¡¡¡¡¡/* + 3, 1 */
¡¡¡¡EP2_NONISO_PACKET_SIZE,¡¡¡¡¡¡¡¡ //unsigned short wMaxPacketSize;¡¡¡¡ /* + 4, 2 */
¡¡¡¡0,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//unsigned char bInterval;¡¡¡¡¡¡¡¡¡¡/* + 6, 1 */
};
D12_WriteEndpoint(1/*½ÐÎÏüÅÀ¤Î»ØÄê*/, &endpoint_desc_ep2in, sizeof(ENDPOINT_DESCRIPTOR));
¢¨ËÜÅö¤Ï¥¨¥ó¥É¥Ý¥¤¥ó¥È¥Ç¥£¥¹¥¯¥ê¥×¥¿¤À¤±¤òñÂΤÇÁ÷¿®¤¹¤ë¤³¤È¤Ï¤Ê¤¤¤Î¤Ç¤¹¤±¤ì¤É¡¢ÀâÌÀ¤ò´Êñ¤Ë¤¹¤ë¤¿¤á¤Ë¡¢¤³¤³¤Ç¤Ï¹Í¤¨¤Ê¤¤¤³¤È¤Ë¤·¤Þ¤¹¡£
°Ê¾å¤Ï¡¢Àµ¤·¤¯Æ°ºî¤¹¤ë¥×¥í¥°¥é¥à¤ÎÎã¤Ç¤¹¡£
¤µ¤Æ¡¢¤â¤·¤âENDPOINT_DESCRIPTOR¤ÎÄêµÁ¤Î¤È¤³¤í¤Ç__attribute__((packed))¤ò»ØÄꤷ¤Ê¤«¤Ã¤¿¤é¤É¤¦¤Ê¤ë¤Ç¤·¤ç¤¦¤«¡©
typedef struct _ENDPOINT_DESCRIPTOR {
¡¡¡¡unsigned char bLength;¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡/* + 0, 1 */
¡¡¡¡unsigned char bDescriptorType;¡¡¡¡¡¡¡¡¡¡¡¡/* + 1, 1 */
¡¡¡¡unsigned char bEndpointAddress;¡¡¡¡¡¡¡¡¡¡ /* + 2, 1 */
¡¡¡¡unsigned char bAttributes;¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡/* + 3, 1 */
¡¡¡¡unsigned short wMaxPacketSize;¡¡¡¡¡¡¡¡¡¡¡¡ /* + 4, 2 */
¡¡¡¡unsigned char bInterval;¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡/* + 6, 1 */
¡¡¡¡(¥Ñ¥Ç¥£¥ó¥°)¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ /* + 7, 1 */
} ENDPOINT_DESCRIPTOR;¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ /* = 8 */
const ENDPOINT_DESCRIPTOR endpoint_desc_ep2in = {
¡¡¡¡sizeof(ENDPOINT_DESCRIPTOR),¡¡¡¡//unsigned char bLength;¡¡¡¡¡¡¡¡¡¡¡¡/* + 0, 1 */ ... ËÜÅö¤Ï7¤È¤¹¤Ù¤¤Ê¤Î¤Ë¡¢8¤¬ÀßÄꤵ¤ì¤Æ¤·¤Þ¤¦!!
¡¡¡¡ENDPOINT_DESCRIPTOR_TYPE,¡¡¡¡¡¡ //unsigned char bDescriptorType;¡¡¡¡/* + 1, 1 */
¡¡¡¡0x82,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ //unsigned char bEndpointAddress;¡¡ /* + 2, 1 */
¡¡¡¡2,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//unsigned char bAttributes;¡¡¡¡¡¡¡¡/* + 3, 1 */
¡¡¡¡EP2_NONISO_PACKET_SIZE,¡¡¡¡¡¡¡¡ //unsigned short wMaxPacketSize;¡¡¡¡ /* + 4, 2 */
¡¡¡¡0,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//unsigned char bInterval;¡¡¡¡¡¡¡¡¡¡/* + 6, 1 */
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//(¥Ñ¥Ç¥£¥ó¥°)¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ /* + 7, 1 */
};
D12_WriteEndpoint(1/*½ÐÎÏüÅÀ¤Î»ØÄê*/, &endpoint_desc_ep2in, sizeof(ENDPOINT_DESCRIPTOR));
// ËÜÅö¤Ï D12_WriteEndpoint(1, &endpoint_desc_ep2in, 7) ¤È¤¹¤Ù¤¤Ê¤Î¤Ë¡¢
// D12_WriteEndpoint(1, &endpoint_desc_ep2in, 8) ¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¦!!
bLength¥Õ¥£¡¼¥ë¥É¤ÎÃͤäÁ÷¿®¥Ð¥¤¥È¿ô¤¬Àµ¤·¤¯¤Ê¤¤¤¿¤á¡¢¤³¤Î¥×¥í¥°¥é¥à¤ÏÀµ¤·¤¯Æ°ºî¤·¤Þ¤»¤ó¡£
bLength¥Õ¥£¡¼¥ë¥É¤äÁ÷¿®¥Ð¥¤¥È¿ô¤È¤·¤Æ¡¢sizeof(ENDPOINT_DESCRIPTOR)¤ò»È¤¦¤Î¤Ç¤Ï¤Ê¤¯¡¢ÌÀ¼¨Åª¤Ë"7"¤È½ñ¤±¤Ð²ò·è¤¹¤ë¤Î¤Ç¤¹¤¬¡¢
¤Ò¤È¤Ä¤Ò¤È¤Ä¤Î¹½Â¤ÂÎ¥µ¥¤¥º¤ò³Ð¤¨¤ë¤è¤ê¤â¡¢¤Ç¤¤ë¤Ê¤é¤Ðsizeof¤¬»È¤¨¤¿¤Û¤¦¤¬³Ú¤Ç¤¹¤è¤Í¡£
¤Á¤ç¤Ã¤ÈºÙ¤«¤¤Ïäˤʤê¤Þ¤¹¤¬¡¢Ä̾¥¨¥ó¥É¥Ý¥¤¥ó¥È¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ÏÊ£¿ôÄêµÁ¤·¤Þ¤¹¡£
¤¬¡¢¤½¤ÎºÝ¡¢½é´ü²½ºÑ¤ß¥¨¥ó¥É¥Ý¥¤¥ó¥È¥Ç¥£¥¹¥¯¥ê¥×¥¿¹½Â¤ÂΤò¡¢ÇÛÎó¤Ë¤·¤Æ¤Ï¤¤¤±¤Þ¤»¤ó¡£
¥¨¥ó¥É¥Ý¥¤¥ó¥È¥Ç¥£¥¹¥¯¥ê¥×¥¿¹½Â¤ÂΤϡ¢Ã±ÂΤʤé¤Ð¥Ñ¥Ç¥£¥ó¥°Ìµ¤·¤ÇŬÀڤʥ¢¥é¥¤¥á¥ó¥È¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤Î¤Ç¤¹¤±¤ì¤É¡¢
ÇÛÎó¤Ë¤¹¤ë¤ÈÆó¤ÄÌܤÎÍ×ÁǤÎÅÓÃæ¤Ç¥¢¥é¥¤¥á¥ó¥È¤¬Êø¤ì¡¢¥¢¥»¥ó¥Ö¥é¤Ë¤è¤ë°ÅÌۤΥ¢¥é¥¤¥á¥ó¥È¤¬¹Ô¤ï¤ì¤Æ¡¢ÉÔÍפʥѥǥ£¥ó¥°¤¬Æþ¤Ã¤Æ¤·¤Þ¤¦¤«¤é¤Ç¤¹¡£
const ENDPOINT_DESCRIPTOR endpoint_desc[2] = { {
¡¡¡¡sizeof(ENDPOINT_DESCRIPTOR),¡¡¡¡//unsigned char bLength;¡¡¡¡¡¡¡¡¡¡¡¡/* + 0, 1 */
¡¡¡¡ENDPOINT_DESCRIPTOR_TYPE,¡¡¡¡¡¡ //unsigned char bDescriptorType;¡¡¡¡/* + 1, 1 */
¡¡¡¡0x82,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ //unsigned char bEndpointAddress;¡¡ /* + 2, 1 */
¡¡¡¡2,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//unsigned char bAttributes;¡¡¡¡¡¡¡¡/* + 3, 1 */
¡¡¡¡EP2_NONISO_PACKET_SIZE,¡¡¡¡¡¡¡¡ //unsigned short wMaxPacketSize;¡¡¡¡ /* + 4, 2 */
¡¡¡¡0,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//unsigned char bInterval;¡¡¡¡¡¡¡¡¡¡/* + 6, 1 */
}, {
¡¡¡¡sizeof(ENDPOINT_DESCRIPTOR),¡¡¡¡//unsigned char bLength;¡¡¡¡¡¡¡¡¡¡¡¡/* + 7, 1 */
¡¡¡¡ENDPOINT_DESCRIPTOR_TYPE,¡¡¡¡¡¡ //unsigned char bDescriptorType;¡¡¡¡/* + 8, 1 */
¡¡¡¡0x02,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ //unsigned char bEndpointAddress;¡¡ /* + 9, 1 */
¡¡¡¡2,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//unsigned char bAttributes;¡¡¡¡¡¡¡¡/* +10, 1 */
¡¡¡¡EP2_NONISO_PACKET_SIZE,¡¡¡¡¡¡¡¡ //unsigned short wMaxPacketSize;¡¡¡¡ /* +11, 2 */
¡¡¡¡0,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//unsigned char bInterval;¡¡¡¡¡¡¡¡¡¡/* +13, 1 */
} };¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ /* =14 */
¢¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤È...
¡¡¡¡.align¡¡2
endpoint_desc:
¡¡¡¡.byte¡¡ 7¡¡¡¡¡¡¡¡//unsigned char bLength;¡¡¡¡¡¡¡¡¡¡¡¡/* + 0, 1 */
¡¡¡¡.byte¡¡ 5¡¡¡¡¡¡¡¡//unsigned char bDescriptorType;¡¡¡¡/* + 1, 1 */
¡¡¡¡.byte¡¡130¡¡¡¡¡¡¡¡//unsigned char bEndpointAddress;¡¡ /* + 2, 1 */
¡¡¡¡.byte¡¡ 2¡¡¡¡¡¡¡¡//unsigned char bAttributes;¡¡¡¡¡¡¡¡/* + 3, 1 */
¡¡¡¡.half¡¡ 64¡¡¡¡¡¡¡¡//unsigned short wMaxPacketSize;¡¡¡¡ /* + 4, 2 */
¡¡¡¡.byte¡¡ 0¡¡¡¡¡¡¡¡//unsigned char bInterval;¡¡¡¡¡¡¡¡¡¡/* + 6, 1 */
¡¡¡¡.byte¡¡ 7¡¡¡¡¡¡¡¡//unsigned char bLength;¡¡¡¡¡¡¡¡¡¡¡¡/* + 7, 1 */
¡¡¡¡.byte¡¡ 5¡¡¡¡¡¡¡¡//unsigned char bDescriptorType;¡¡¡¡/* + 8, 1 */
¡¡¡¡.byte¡¡ 2¡¡¡¡¡¡¡¡//unsigned char bEndpointAddress;¡¡ /* + 9, 1 */
¡¡¡¡.byte¡¡ 2¡¡¡¡¡¡¡¡//unsigned char bAttributes;¡¡¡¡¡¡¡¡/* +10, 1 */
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//(¤³¤³¤Ë¥Ñ¥Ç¥£¥ó¥°¤¬Æþ¤Ã¤Æ¤·¤Þ¤¦!!) /* +11, 1 */
¡¡¡¡.half¡¡ 64¡¡¡¡¡¡¡¡//unsigned short wMaxPacketSize;¡¡¡¡ /* +12, 2 */ ¤º¤ì¤Æ¤ë!!
¡¡¡¡.byte¡¡ 0¡¡¡¡¡¡¡¡//unsigned char bInterval;¡¡¡¡¡¡¡¡¡¡/* +14, 1 */ ¤º¤ì¤Æ¤ë!!
Ê£¿ô¤Î¥¨¥ó¥É¥Ý¥¤¥ó¥È¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò½é´ü²½ºÑ¤ß¹½Â¤ÂΤȤ·¤ÆÄêµÁ¤¹¤ë¾ì¹ç¤Ï¡¢ÇÛÎó¤Ë¤¹¤ë¤Î¤Ç¤Ê¤¯¡¢¤Ò¤È¤Ä¤Ò¤È¤ÄÄêµÁ¤·¡¢
¼Â¹Ô»þ¤Ë¤¯¤Ã¤Ä¤±¤ÆÁ÷¿®¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£
const ENDPOINT_DESCRIPTOR endpoint_desc_ep2in = {
sizeof(ENDPOINT_DESCRIPTOR),
ENDPOINT_DESCRIPTOR_TYPE,
0x82,
2,
EP2_NONISO_PACKET_SIZE,
0,
};
const ENDPOINT_DESCRIPTOR endpoint_desc_ep2out = {
sizeof(ENDPOINT_DESCRIPTOR),
ENDPOINT_DESCRIPTOR_TYPE,
0x02,
2,
EP2_NONISO_PACKET_SIZE,
0,
};
memcpy(&tmpbuf[sizeof(ENDPOINT_DESCRIPTOR) * 0], &endpoint_desc_ep2in, sizeof(ENDPOINT_DESCRIPTOR));
memcpy(&tmpbuf[sizeof(ENDPOINT_DESCRIPTOR) * 1], &endpoint_desc_ep2in, sizeof(ENDPOINT_DESCRIPTOR));
D12_WriteEndpoint(1/*½ÐÎÏüÅÀ¤Î»ØÄê*/, &tmpbuf, sizeof(ENDPOINT_DESCRIPTOR) * 2);
¢£¢£¢£¢£¢£
¢£¤Þ¤È¤á¢£
¢£¢£¢£¢£¢£
·ëÏÀ¤Ç¤¹¡£
¡ØP/ECE³«È¯´Ä¶¤Ç¤Ï¡¢__attribute__((packed))¤Ë¤è¤ë¹½Â¤ÂΥѥ寤ÏÍøÍÑÉԲĤǤ¹¡£¡Ù
³Î¼Â¤ËÌäÂ꤬²óÈò¤Ç¤¤ë¤È³Î¿®¤Ç¤¤ë¾ì¹ç¤Ë¸Â¤Ã¤Æ¡¢__attribute__((packed))¤âÍøÍѲÄǽ¤Ç¤¹¤¬¡¢
¤½¤ì¤Ï¤Þ¤ë¤Ç¡¢À¸¤Î¥¢¥»¥ó¥Ö¥é¤ä¥Ð¥¤¥Ê¥ê¥¨¥Ç¥£¥¿¤ò»È¤Ã¤Æ¥Ç¡¼¥¿¤òÁàºî¤·¤Æ¤¤¤ë¤è¤¦¤Ê´¶³Ð¤Ç¤¹¡£
¤â¤È¤â¤È#pargma pack¤ä__attribute__((packed))¤Ï½èÍý·Ï°Í¸¤Î³ÈÄ¥µ¡Ç½¤Ç¤¹¤·¡¢»È¤ï¤º¤ËºÑ¤à¤Ê¤é¤Ð¤½¤ì¤Ë±Û¤·¤¿¤³¤È¤Ï¤¢¤ê¤Þ¤»¤ó¡£
* Sat Nov 6 00:00:00 JST 2004 Naoyuki Sawa
- ¹½Â¤ÂΥѥ寤ËÌäÂꤢ¤ê#1
P/ECE³«È¯´Ä¶¤ÎC¥³¥ó¥Ñ¥¤¥é¤Ë¤ÏÌäÂ꤬¤¢¤ê¡¢¹½Â¤ÂΥѥ寤ò¹Ô¤¦¾ì¹ç¤ËÃí°Õ¤¬É¬ÍפǤ¹¡£
º£²ó¤Ï¡¢¤³¤ÎÌäÂê¤Ë¤Ä¤¤¤Æµ¤·¤Æ¤ª¤³¤¦¤È»×¤¤¤Þ¤¹¡£
P/ECEÆÃͤÎÌäÂêÅÀ¤À¤±ÆÉ¤ß¤¿¤¤¤«¤¿¤Ï¡¢¢££Ð¡¿£Å£Ã£Å¤Î¾ì¹ç¡ÁÌäÂêȯÀ¸!!¢£¤Þ¤ÇÆÉ¤ßÈô¤Ð¤·¤Æ¤¯¤À¤µ¤¤¡£
¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£
¢£°ìÈÌŪ¤ÊÏáÁ¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¢£
¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£
Ä̾C¸À¸ì¤Ç¹½Â¤ÂΤòÄêµÁ¤¹¤ë¤È¡¢³Æ¥Õ¥£¡¼¥ë¥É¤¬¥Õ¥£¡¼¥ë¥É¥µ¥¤¥º¤ÎÇÜ¿ô¤Î°ÌÃ֤˷¤¦¤è¤¦¤Ë¡¢°ÅÌۤζõÇòÎΰ褬Äɲ䵤ì¤Þ¤¹¡£
¤¿¤È¤¨¤Ð¼¡¤Î¤è¤¦¤Ê¹½Â¤ÂΤòÄêµÁ¤·¤¿¤È¤·¤Þ¤¹¡£
typedef struct _SAMPLE1 {
¡¡¡¡char c1;
¡¡¡¡short s2;
¡¡¡¡int i3;
¡¡¡¡char c4;
} SAMPLE1;
¤³¤ì¤À¤±¸«¤ë¤È¡¢³Æ¥Õ¥£¡¼¥ë¥É¤Î¥ª¥Õ¥»¥Ã¥È¤È¥µ¥¤¥º¡¢¤ª¤è¤Ó¹½Â¤ÂÎ¥µ¥¤¥º¤Ï¼¡¤Î¤è¤¦¤Ë¤Ê¤ë¤è¤¦¤Ë¸«¤¨¤ë¤Î¤Ç¤¹¤±¤ì¤É¡¢
(¥³¥á¥ó¥Èɽµ¤Ï /* +¥Õ¥£¡¼¥ë¥É¥ª¥Õ¥»¥Ã¥È, ¥Õ¥£¡¼¥ë¥É¥µ¥¤¥º */¡¢/* =¹½Â¤ÂÎ¥µ¥¤¥º */ ¤Ç¤¹¡£)
[¸í¤Ã¤¿ÇÛÃÖ]
typedef struct _STRUCT1 {
¡¡¡¡char c1;¡¡¡¡/* + 0, 1 */
¡¡¡¡short s2;¡¡¡¡/* + 1, 2 */
¡¡¡¡short s3;¡¡¡¡/* + 3, 2 */
¡¡¡¡int i4;¡¡¡¡/* + 5, 4 */
¡¡¡¡char c5;¡¡¡¡/* + 9, 1 */
} STRUCT1;¡¡¡¡¡¡¡¡/* =10 */
¼ÂºÝ¤Ë¤Ï¡¢³Æ¥Õ¥£¡¼¥ë¥É¤Î¥ª¥Õ¥»¥Ã¥È¤È¥µ¥¤¥º¡¢¤ª¤è¤Ó¹½Â¤ÂÎ¥µ¥¤¥º¤Ï¼¡¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
[ËÜÅö¤ÎÇÛÃÖ]
typedef struct _STRUCT1 {
¡¡¡¡char c1;¡¡¡¡/* + 0, 1 */
¡¡¡¡(¥Ñ¥Ç¥£¥ó¥°)¡¡/* + 1, 1 */
¡¡¡¡short s2;¡¡¡¡/* + 2, 2 */
¡¡¡¡short s3;¡¡¡¡/* + 4, 2 */
¡¡¡¡(¥Ñ¥Ç¥£¥ó¥°)¡¡/* + 6, 2 */
¡¡¡¡int i4;¡¡¡¡/* + 8, 4 */
¡¡¡¡char c5;¡¡¡¡/* +12, 1 */
¡¡¡¡(¥Ñ¥Ç¥£¥ó¥°)¡¡/* +13, 3 */
} STRUCT1;¡¡¡¡¡¡¡¡/* =16 */
s2¥Õ¥£¡¼¥ë¥É(2¥Ð¥¤¥ÈÀ°¿ô)¤ËÃíÌܤ·¤Æ¤¯¤À¤µ¤¤¡£
[¸í¤Ã¤¿ÇÛÃÖ]¤Ç¤Ï¡¢s2¥Õ¥£¡¼¥ë¥É¤¬¥ª¥Õ¥»¥Ã¥È1(2¤ÎÇÜ¿ô¤Ç¤Ê¤¤)¤«¤é»Ï¤Þ¤Ã¤Æ¤¤¤Þ¤¹¡£
2¤ÎÇÜ¿ô¤Ç¤Ê¤¤¥¢¥É¥ì¥¹¤ËÃÖ¤«¤ì¤¿2¥Ð¥¤¥ÈÀ°¿ô¤ÎÆÉ¤ß½ñ¤¤Ï¡¢CPU¤Î¼ïÎà¤Ë¤è¤Ã¤Æ¤Ï¤Ç¤¤Ê¤«¤Ã¤¿¤ê¡¢¤Ç¤¤Æ¤â¸úΨ¤¬°¤«¤Ã¤¿¤ê¤·¤Þ¤¹¡£
¤½¤³¤Ç¡¢2¥Ð¥¤¥ÈÀ°¿ô¤¬2¤ÎÇÜ¿ô¤Î¥¢¥É¥ì¥¹¤«¤é»Ï¤Þ¤ë¤è¤¦¡¢s2¥Õ¥£¡¼¥ë¥É¤ÎľÁ°¤Ë°ÅÌۤζõÇòÎΰ褬Äɲ䵤ì¤ë¤Î¤Ç¤¹¡£
°ÅÌۤζõÇòÎΰè¤Î¤³¤È¤ò¡¢¡È¥Ñ¥Ç¥£¥ó¥°¡É(µÍ¤áʪ)¤È¸Æ¤ó¤À¤ê¤·¤Þ¤¹¡£
i4¥Õ¥£¡¼¥ë¥É(4¥Ð¥¤¥ÈÀ°¿ô)¤Ë¤Ä¤¤¤Æ¤âƱÍͤǤ¹¡£
4¤ÎÇÜ¿ô¤Ç¤Ê¤¤¥¢¥É¥ì¥¹¤ËÃÖ¤«¤ì¤¿4¥Ð¥¤¥ÈÀ°¿ô¤ÎÆÉ¤ß½ñ¤¤Ï¡¢CPU¤Î¼ïÎà¤Ë¤è¤Ã¤Æ¤Ï¤Ç¤¤Ê¤«¤Ã¤¿¤ê¡¢¤Ç¤¤Æ¤â¸úΨ¤¬°¤«¤Ã¤¿¤ê¤·¤Þ¤¹¡£
¤½¤³¤Ç¡¢4¥Ð¥¤¥ÈÀ°¿ô¤¬4¤ÎÇÜ¿ô¤Î¥¢¥É¥ì¥¹¤«¤é»Ï¤Þ¤ë¤è¤¦¡¢i4¥Õ¥£¡¼¥ë¥É¤ÎľÁ°¤Ë¥Ñ¥Ç¥£¥ó¥°¤¬Äɲ䵤ì¤Þ¤¹¡£
°ì¸«¡¢¹½Â¤ÂÎËöÈø¤Î¥Ñ¥Ç¥£¥ó¥°¤ÏÉÔÍפ˸«¤¨¤Þ¤¹¡£
¤Ê¤¼¤³¤ì¤¬É¬Íפ«¤È¤¤¤¦¤È¡¢¹½Â¤ÂÎÇÛÎó¤òÄêµÁ¤·¤¿¤È¤¤Î¤¿¤á¤Ç¤¹¡£
¤â¤·¤â¹½Â¤ÂÎËöÈø¤Î¶õÇòÎΰ褬¤Ê¤«¤Ã¤¿¤È¤¹¤ë¤È¡¢¼¡¤Î¤è¤¦¤Ê¹½Â¤ÂÎÇÛÎó¤òÄêµÁ¤·¤¿¤È¤¤Ë¡¢
STRUCT1 struct1[2];
¥á¥â¥ê¾å¤ÎÇÛÃ֤ϼ¡¤Î¤è¤¦¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¤¤Þ¤¹¡£
[¸í¤Ã¤¿ÇÛÃÖ]
// struct1[0]
char c1;¡¡¡¡/* + 0, 1 */
(¥Ñ¥Ç¥£¥ó¥°)¡¡/* + 1, 1 */
short s2;¡¡¡¡/* + 2, 2 */
short s3;¡¡¡¡/* + 4, 2 */
(¥Ñ¥Ç¥£¥ó¥°)¡¡/* + 6, 2 */
int i4;¡¡¡¡/* + 8, 4 */
char c5;¡¡¡¡/* +12, 1 */
// struct1[1]
char c1;¡¡¡¡/* +13, 1 */
(¥Ñ¥Ç¥£¥ó¥°)¡¡/* +14, 1 */
short s2;¡¡¡¡/* +15, 2 */
short s3;¡¡¡¡/* +17, 2 */
(¥Ñ¥Ç¥£¥ó¥°)¡¡/* +19, 2 */
int i4;¡¡¡¡/* +21, 4 */
char c5;¡¡¡¡/* +25, 1 */
struct1[0]¤ÏŬÀڤʥե£¡¼¥ë¥ÉÇÛÃ֤Ǥ¹¤¬¡¢struct1[1]¤Îs2¤äs3¡¢i4¤ÎÇÛÃÖ¤¬Å¬ÀڤǤ¢¤ê¤Þ¤»¤ó¡£
s2¤Ès3¤Ï2¥Ð¥¤¥ÈÀ°¿ô¤Ê¤Î¤Ë2¤ÎÇÜ¿ô¥¢¥É¥ì¥¹¤ËÇÛÃÖ¤µ¤ì¤º¡¢i4¤Ï4¥Ð¥¤¥ÈÀ°¿ô¤Ê¤Î¤Ë4¤ÎÇÜ¿ô¥¢¥É¥ì¥¹¤ËÇÛÃÖ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£
¤³¤Î¤è¤¦¤ÊÌäÂê¤òÈò¤±¤ë¤¿¤á¡¢¹½Â¤ÂÎ¥µ¥¤¥º¤¬¡Ö¹½Â¤ÂΤÎÃæ¤Î¤¤¤Á¤Ð¤óÂ礤ʥե£¡¼¥ë¥É¤Î¥µ¥¤¥º¤ÎÇÜ¿ô¡×¤Ë¤Ê¤ë¤è¤¦¡¢¹½Â¤ÂΤÎËöÈø¤Ë¤â¥Ñ¥Ç¥£¥ó¥°¤¬Äɲ䵤ì¤Þ¤¹¡£
[Àµ¤·¤¤ÇÛÃÖ]
// struct1[0]
char c1;¡¡¡¡/* + 0, 1 */
(¥Ñ¥Ç¥£¥ó¥°)¡¡/* + 1, 1 */
short s2;¡¡¡¡/* + 2, 2 */
short s3;¡¡¡¡/* + 4, 2 */
(¥Ñ¥Ç¥£¥ó¥°)¡¡/* + 6, 2 */
int i4;¡¡¡¡/* + 8, 4 */
char c5;¡¡¡¡/* +12, 1 */
(¥Ñ¥Ç¥£¥ó¥°)¡¡/* +13, 3 */
// struct1[1]
char c1;¡¡¡¡/* +16, 1 */
(¥Ñ¥Ç¥£¥ó¥°)¡¡/* +17, 1 */
short s2;¡¡¡¡/* +18, 2 */
short s3;¡¡¡¡/* +20, 2 */
(¥Ñ¥Ç¥£¥ó¥°)¡¡/* +22, 2 */
int i4;¡¡¡¡/* +24, 4 */
char c5;¡¡¡¡/* +28, 1 */
(¥Ñ¥Ç¥£¥ó¥°)¡¡/* +29, 3 */
°Ê¾å¤Î¤è¤¦¤Ë¡¢¥³¥ó¥Ñ¥¤¥é¤¬¼«Æ°Åª¤Ë¥Ñ¥Ç¥£¥ó¥°¤òÄɲ䷤ơ¢³Æ¥Õ¥£¡¼¥ë¥É¤ÎÇÛÃÖ¤òŬÀÚ¤ËÊݤĤ³¤È¤ò¡¢¡È¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¡É¤È¸Æ¤ó¤À¤ê¤·¤Þ¤¹¡£
¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£
¢£°ìÈÌŪ¤ÊÏáÁ¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¤òÍÞÀ©¤¹¤ë¢£
¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£
Ä̾ï¤Ï¡¢¥³¥ó¥Ñ¥¤¥é¤¬¼«Æ°Åª¤Ë¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¤ò¹Ô¤Ã¤Æ¤¯¤ì¤ë¤Î¤Ç¡¢¥×¥í¥°¥é¥Þ¤ÏÆÃ¤Ëµ¤¤Ë¤¹¤ëɬÍפϤ¢¤ê¤Þ¤»¤ó¡£
¤¬¡¢µ©¤Ë¡¢¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¤¬¹Ô¤ï¤ì¤Æ¤Ïº¤¤ë¾ì¹ç¤¬¤¢¤ê¤Þ¤¹¡£
¥Í¥Ã¥È¥ï¡¼¥¯¤ä¥Ç¥Ð¥¤¥¹¤È¤ÎÄÌ¿®¤Ê¤É¡¢¤¢¤é¤«¤¸¤á»ÅÍͤǷè¤á¤é¤ì¤¿¥Õ¥£¡¼¥ë¥ÉÇÛÃ֤ι½Â¤ÂΤòÁ÷¼õ¿®¤¹¤ë¾ì¹ç¤Ç¤¹¡£
¥Í¥Ã¥È¥ï¡¼¥¯¤ä¥Ç¥Ð¥¤¥¹¤È¤ÎÄÌ¿®¤Ç¤Ï¡¢ÄÌ¿®¥Ç¡¼¥¿Î̤ò¾¯¤Ê¤¯¤¹¤ë¤¿¤á¤Ë¡¢2¥Ð¥¤¥ÈÀ°¿ô¤ä4¥Ð¥¤¥ÈÀ°¿ô¤â¥Ñ¥Ç¥£¥ó¥°Ìµ¤·¤Ç¤Ó¤Ã¤Á¤êµÍ¤á¹þ¤Þ¤ì¤Æ¤¤¤ë¾ì¹ç¤¬Â¿¤¤¤Ç¤¹¡£
¥á¥â¥ê¾å¤Ë¹½Â¤ÂΤòºî¤Ã¤Æ¤ª¤¤¤Æ¡¢¤½¤Î¥á¥â¥ê¥¤¥á¡¼¥¸¤òľÀÜÁ÷¿®¤¹¤ë¾ì¹ç¤ä¡¢¥á¥â¥ê¾å¤Î¹½Â¤ÂÎÊÑ¿ô¤ËľÀܼõ¿®¤¹¤ë¾ì¹ç¡¢
¹½Â¤ÂΤΥե£¡¼¥ë¥ÉÇÛÃ֤Ϥ¢¤é¤«¤¸¤á·è¤á¤é¤ì¤¿»ÅÍͤˤ¤Ã¤Á¤ê¹ç¤Ã¤Æ¤¤¤Ê¤±¤ì¤Ð¤¤¤±¤Þ¤»¤ó¡£
¤¿¤È¤¨¤Ð¡¢MMC(Multi Media Card)¤È¤ÎÄÌ¿®¤Ç¤Ï¡¢¼¡¤Î¤è¤¦¤Ê¹½Â¤ÂΤλÅÍͤ¬Äê¤á¤é¤ì¤Æ¤¤¤Þ¤¹¡£
(¤Þ¤É¤«¤ÎÀ¤³¦¤µ¤ó¤Î¡¢MMCÂбþ¥«¡¼¥Í¥ë¤Î¥½¡¼¥¹¤«¤é°úÍѤµ¤»¤Æ¤¤¤¿¤À¤¤Þ¤·¤¿)
[Àµ¤·¤¤ÇÛÃÖ]
//CID(Card IDentification number)¡¡¥«¡¼¥ÉID¥ì¥¸¥¹¥¿¾ðÊó¹½Â¤ÂÎ
typedef struct tag_MMC_CID_INFO
{
¡¡¡¡unsigned char ucMID;¡¡¡¡¡¡// + 0, 1: ManufactureID(8bit)
¡¡¡¡unsigned short usOID;¡¡¡¡¡¡// + 1, 2: OEM/Application ID(16bit)
¡¡¡¡unsigned char ucPNM[6]; ¡¡// + 3, 6: Product name(48bit)
¡¡¡¡unsigned char ucPRV;¡¡¡¡¡¡// + 9, 1: Product revision(8bit)
¡¡¡¡unsigned long ulPSN;¡¡¡¡¡¡// +10, 4: Product serial number(32bit)
¡¡¡¡unsigned char ucMDT;¡¡¡¡¡¡// +14, 1: Manufacturing date(8bit)
¡¡¡¡unsigned char ucCRC;¡¡¡¡¡¡// +15, 1: 7-bit CRC checksum(7bit)
} MMC_CID_INFO; ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡// =16
¤È¤³¤í¤¬¡¢¥³¥ó¥Ñ¥¤¥é¤Ë¤è¤Ã¤Æ¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¤¬¹Ô¤ï¤ì¤ë¤È¡¢¼ÂºÝ¤ÎÇÛÃ֤ϼ¡¤Î¤è¤¦¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¤¤Þ¤¹¡£
[¸í¤Ã¤¿ÇÛÃÖ]
//CID(Card IDentification number)¡¡¥«¡¼¥ÉID¥ì¥¸¥¹¥¿¾ðÊó¹½Â¤ÂÎ
typedef struct tag_MMC_CID_INFO
{
¡¡¡¡unsigned char ucMID;¡¡¡¡¡¡// + 0, 1: ManufactureID(8bit)
¡¡¡¡(¥Ñ¥Ç¥£¥ó¥°) // + 1, 1:
¡¡¡¡unsigned short usOID;¡¡¡¡¡¡// + 2, 2: OEM/Application ID(16bit)
¡¡¡¡unsigned char ucPNM[6]; ¡¡// + 4, 6: Product name(48bit)
¡¡¡¡unsigned char ucPRV;¡¡¡¡¡¡// +10, 1: Product revision(8bit)
¡¡¡¡(¥Ñ¥Ç¥£¥ó¥°) // +11, 1:
¡¡¡¡unsigned long ulPSN;¡¡¡¡¡¡// +12, 4: Product serial number(32bit)
¡¡¡¡unsigned char ucMDT;¡¡¡¡¡¡// +16, 1: Manufacturing date(8bit)
¡¡¡¡unsigned char ucCRC;¡¡¡¡¡¡// +17, 1: 7-bit CRC checksum(7bit)
¡¡¡¡(¥Ñ¥Ç¥£¥ó¥°) // +18, 2:
} MMC_CID_INFO; ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡// =20
¤³¤ì¤Ç¤Ï¥À¥á¤Ç¤¹¡£
¤½¤³¤Ç¡¢¥³¥ó¥Ñ¥¤¥é¤Ë¤è¤ë¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¤òÍÞÀ©¤·¡¢¥Ñ¥Ç¥£¥ó¥°¤ò¤Ê¤¯¤¹ÊýË¡¤¬ÍѰդµ¤ì¤Æ¤¤¤Þ¤¹¡£
¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¤òÍÞÀ©¤¹¤ëÊýË¡¤Ï¡¢¥³¥ó¥Ñ¥¤¥éËè¤Ë°ã¤Ã¤Æ¤¤¤Þ¤¹¡£
¤¿¤È¤¨¤Ð¡¢Visual C++¤Î¾ì¹ç¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¤·¤Þ¤¹¡£
#pragma pack(1)
//CID(Card IDentification number)¡¡¥«¡¼¥ÉID¥ì¥¸¥¹¥¿¾ðÊó¹½Â¤ÂÎ
typedef struct tag_MMC_CID_INFO
{
¡¡¡¡unsigned char ucMID;¡¡¡¡¡¡// + 0, 1: ManufactureID(8bit)
¡¡¡¡unsigned short usOID;¡¡¡¡¡¡// + 1, 2: OEM/Application ID(16bit)
¡¡¡¡unsigned char ucPNM[6]; ¡¡// + 3, 6: Product name(48bit)
¡¡¡¡unsigned char ucPRV;¡¡¡¡¡¡// + 9, 1: Product revision(8bit)
¡¡¡¡unsigned long ulPSN;¡¡¡¡¡¡// +10, 4: Product serial number(32bit)
¡¡¡¡unsigned char ucMDT;¡¡¡¡¡¡// +14, 1: Manufacturing date(8bit)
¡¡¡¡unsigned char ucCRC;¡¡¡¡¡¡// +15, 1: 7-bit CRC checksum(7bit)
} MMC_CID_INFO; ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡// =16
#pragma pack()
GCC¤Î¾ì¹ç¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¤·¤Þ¤¹¡£
//CID(Card IDentification number)¡¡¥«¡¼¥ÉID¥ì¥¸¥¹¥¿¾ðÊó¹½Â¤ÂÎ
typedef struct tag_MMC_CID_INFO
{
¡¡¡¡unsigned char ucMID;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// + 0, 1: ManufactureID(8bit)
¡¡¡¡unsigned short usOID;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// + 1, 2: OEM/Application ID(16bit)
¡¡¡¡unsigned char ucPNM[6]; ¡¡¡¡¡¡¡¡¡¡// + 3, 6: Product name(48bit)
¡¡¡¡unsigned char ucPRV;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// + 9, 1: Product revision(8bit)
¡¡¡¡unsigned long ulPSN;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +10, 4: Product serial number(32bit)
¡¡¡¡unsigned char ucMDT;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +14, 1: Manufacturing date(8bit)
¡¡¡¡unsigned char ucCRC;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +15, 1: 7-bit CRC checksum(7bit)
} __attribute__((packed)) MMC_CID_INFO; // =16
¢¨¸·Ì©¤Ë¸À¤¦¤È¡¢MMC¤È¤ÎÄÌ¿®¥Ç¡¼¥¿¤Ï¥Ð¥¤¥È½ç¤¬¥â¥È¥í¡¼¥éʤӤǡ¢Pentium¤äS1C33(P/ECE¤ÎCPU)¤Î¥¤¥ó¥Æ¥ëʤӤȤϵդǤ¹¡£
¡¡¤À¤«¤é¡¢¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¤À¤±Ìµ¤¯¤·¤Æ¤â¡¢¥á¥â¥ê¥¤¥á¡¼¥¸¤½¤Î¤Þ¤Þ¤ÇÁ÷¼õ¿®¤¹¤ë¤³¤È¤Ï¤Ç¤¤Þ¤»¤ó¡£
¡¡¤¬¡¢ÀâÌÀ¤ò´Êñ¤Ë¤¹¤ë¤¿¤á¤Ë¡¢¤³¤³¤Ç¤Ï¥Ð¥¤¥È½ç¤Î°ã¤¤¤Ï¹Í¤¨¤Ê¤¤¤³¤È¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡£
¤½¤ì¤Ç¤Ï¡¢ËÜÅö¤Ë¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¤¬ÍÞÀ©¤µ¤ì¤Æ¤¤¤ë¤«¡¢³Îǧ¤·¤Æ¤ß¤Þ¤·¤ç¤¦¡£
¥Æ¥¹¥È¤Î¤¿¤á¤Ë¡¢¥á¥â¥ê¾å¤Ë½é´ü²½ºÑ¤ß¤Î¹½Â¤ÂΤòÍѰդ·¡¢¤½¤ÎÆâÍÆ¤ò1¥Ð¥¤¥È¤Å¤Äɽ¼¨¤·¤Æ¤ß¤ë¤³¤È¤Ë¤·¤Þ¤¹¡£
¤Þ¤º¤Ï¡¢¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¤ò¡úÍÞÀ©¤·¤Ê¤¤¡ú¾ì¹ç¤Î¥á¥â¥êÆâÍÆ¤ò³Î¤«¤á¤Æ¤ß¤Þ¤¹¡£
[Windows PC & Visual C++ 6.0¡¢¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¤¢¤ê]
#include
//CID(Card IDentification number)¡¡¥«¡¼¥ÉID¥ì¥¸¥¹¥¿¾ðÊó¹½Â¤ÂÎ
typedef struct tag_MMC_CID_INFO
{
¡¡¡¡unsigned char¡¡ ucMID;¡¡¡¡¡¡// + 0, 1: ManufactureID(8bit)
¡¡¡¡unsigned short¡¡usOID;¡¡¡¡¡¡// + 2, 2: OEM/Application ID(16bit)
¡¡¡¡unsigned char¡¡ ucPNM[6];¡¡ // + 4, 6: Product name(48bit)
¡¡¡¡unsigned char¡¡ ucPRV;¡¡¡¡¡¡// +10, 1: Product revision(8bit)
¡¡¡¡unsigned long¡¡ ulPSN;¡¡¡¡¡¡// +12, 4: Product serial number(32bit)
¡¡¡¡unsigned char¡¡ ucMDT;¡¡¡¡¡¡// +16, 1: Manufacturing date(8bit)
¡¡¡¡unsigned char¡¡ ucCRC;¡¡¡¡¡¡// +17, 1: 7-bit CRC checksum(7bit)
} MMC_CID_INFO;¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // =20
MMC_CID_INFO cid = {
¡¡¡¡0xff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned char¡¡ ucMID;¡¡¡¡// + 0, 1: ManufactureID(8bit)
¡¡¡¡0xffff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned short¡¡usOID;¡¡¡¡// + 2, 2: OEM/Application ID(16bit)
¡¡¡¡{ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }, // unsigned char¡¡ ucPNM[6]; // + 4, 6: Product name(48bit)
¡¡¡¡0xff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned char¡¡ ucPRV;¡¡¡¡// +10, 1: Product revision(8bit)
¡¡¡¡0xffffffff, ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡// unsigned long¡¡ ulPSN;¡¡¡¡// +12, 4: Product serial number(32bit)
¡¡¡¡0xff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned char¡¡ ucMDT;¡¡¡¡// +16, 1: Manufacturing date(8bit)
¡¡¡¡0xff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned char¡¡ ucCRC;¡¡¡¡// +17, 1: 7-bit CRC checksum(7bit)
};
int main()
{
¡¡¡¡int i;
¡¡¡¡unsigned char* p;
¡¡¡¡p = (unsigned char*)&cid;
¡¡¡¡printf("size = %d\n", sizeof(MMC_CID_INFO));
¡¡¡¡for(i = 0; i < sizeof(MMC_CID_INFO); i++) {
¡¡¡¡¡¡¡¡printf("%02x ", p[i]);
¡¡¡¡}
¡¡¡¡return 0;
}
-------------------------------------------------------------------------------------------
¢£¢£ ·ë²Ì ¢£¢£
size = 20
ff 00 ff ff ff ff ff ff ff ff ff 00 ff ff ff ff ff ff 00 00
-------------------------------------------------------------------------------------------
¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¤¢¤ê¤Ê¤Î¤Ç¡¢¥Ñ¥Ç¥£¥ó¥°¤¬Äɲäµ¤ì¤Æ¤¤¤Þ¤¹¡£(00¤ÎÉôʬ)
¹½Â¤ÂÎ¥µ¥¤¥º¤â¥Ñ¥Ç¥£¥ó¥°¤ÎʬÁý¤¨¤Æ¡¢MMC»ÅÍͤè¤ê¤â4¥Ð¥¤¥È¿¤¤20¥Ð¥¤¥È¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£
¼¡¤Ë¡¢¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¤ò¡úÍÞÀ©¤·¤¿¡ú¾ì¹ç¤Î¥á¥â¥êÆâÍÆ¤ò³Î¤«¤á¤Æ¤ß¤Þ¤¹¡£
[Windows PC & Visual C++ 6.0¡¢¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È̵¤·]
#include
#pragma pack(1)
//CID(Card IDentification number)¡¡¥«¡¼¥ÉID¥ì¥¸¥¹¥¿¾ðÊó¹½Â¤ÂÎ
typedef struct tag_MMC_CID_INFO
{
¡¡¡¡unsigned char¡¡ ucMID;¡¡¡¡¡¡// + 0, 1: ManufactureID(8bit)
¡¡¡¡unsigned short¡¡usOID;¡¡¡¡¡¡// + 1, 2: OEM/Application ID(16bit)
¡¡¡¡unsigned char¡¡ ucPNM[6];¡¡ // + 3, 6: Product name(48bit)
¡¡¡¡unsigned char¡¡ ucPRV;¡¡¡¡¡¡// + 9, 1: Product revision(8bit)
¡¡¡¡unsigned long¡¡ ulPSN;¡¡¡¡¡¡// +10, 4: Product serial number(32bit)
¡¡¡¡unsigned char¡¡ ucMDT;¡¡¡¡¡¡// +14, 1: Manufacturing date(8bit)
¡¡¡¡unsigned char¡¡ ucCRC;¡¡¡¡¡¡// +15, 1: 7-bit CRC checksum(7bit)
} MMC_CID_INFO;¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // =16
#pragma pack()
MMC_CID_INFO cid = {
¡¡¡¡0xff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned char¡¡ ucMID;¡¡¡¡// + 0, 1: ManufactureID(8bit)
¡¡¡¡0xffff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned short¡¡usOID;¡¡¡¡// + 1, 2: OEM/Application ID(16bit)
¡¡¡¡{ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }, // unsigned char¡¡ ucPNM[6]; // + 3, 6: Product name(48bit)
¡¡¡¡0xff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned char¡¡ ucPRV;¡¡¡¡// + 9, 1: Product revision(8bit)
¡¡¡¡0xffffffff, ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡// unsigned long¡¡ ulPSN;¡¡¡¡// +10, 4: Product serial number(32bit)
¡¡¡¡0xff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned char¡¡ ucMDT;¡¡¡¡// +14, 1: Manufacturing date(8bit)
¡¡¡¡0xff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned char¡¡ ucCRC;¡¡¡¡// +15, 1: 7-bit CRC checksum(7bit)
};
int main()
{
¡¡¡¡int i;
¡¡¡¡unsigned char* p;
¡¡¡¡p = (unsigned char*)&cid;
¡¡¡¡printf("size = %d\n", sizeof(MMC_CID_INFO));
¡¡¡¡for(i = 0; i < sizeof(MMC_CID_INFO); i++) {
¡¡¡¡¡¡¡¡printf("%02x ", p[i]);
¡¡¡¡}
¡¡¡¡return 0;
}
-------------------------------------------------------------------------------------------
¢£¢£ ·ë²Ì ¢£¢£
size = 16
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-------------------------------------------------------------------------------------------
¥Ñ¥Ç¥£¥ó¥°¤¬¾Ã¤¨¤Æ¡¢¹½Â¤ÂÎ¥µ¥¤¥º¤âMMC»ÅÍͤɤª¤ê¤Î16¥Ð¥¤¥È¤Ë¤Ê¤ê¤Þ¤·¤¿¡£
GCC¤Î¾ì¹ç¤âƱÍͤǤ¹¡£
¤Þ¤º¤Ï¡¢¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¤ò¡úÍÞÀ©¤·¤Ê¤¤¡ú¾ì¹ç¡£
[Linux PC & GCC 3.3.3¡¢¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¤¢¤ê]
#include
//CID(Card IDentification number)¡¡¥«¡¼¥ÉID¥ì¥¸¥¹¥¿¾ðÊó¹½Â¤ÂÎ
typedef struct tag_MMC_CID_INFO
{
¡¡¡¡unsigned char¡¡ ucMID;¡¡¡¡¡¡// + 0, 1: ManufactureID(8bit)
¡¡¡¡unsigned short¡¡usOID;¡¡¡¡¡¡// + 2, 2: OEM/Application ID(16bit)
¡¡¡¡unsigned char¡¡ ucPNM[6];¡¡ // + 4, 6: Product name(48bit)
¡¡¡¡unsigned char¡¡ ucPRV;¡¡¡¡¡¡// +10, 1: Product revision(8bit)
¡¡¡¡unsigned long¡¡ ulPSN;¡¡¡¡¡¡// +12, 4: Product serial number(32bit)
¡¡¡¡unsigned char¡¡ ucMDT;¡¡¡¡¡¡// +16, 1: Manufacturing date(8bit)
¡¡¡¡unsigned char¡¡ ucCRC;¡¡¡¡¡¡// +17, 1: 7-bit CRC checksum(7bit)
} MMC_CID_INFO;¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // =20
MMC_CID_INFO cid = {
¡¡¡¡0xff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned char¡¡ ucMID;¡¡¡¡// + 0, 1: ManufactureID(8bit)
¡¡¡¡0xffff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned short¡¡usOID;¡¡¡¡// + 2, 2: OEM/Application ID(16bit)
¡¡¡¡{ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }, // unsigned char¡¡ ucPNM[6]; // + 4, 6: Product name(48bit)
¡¡¡¡0xff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned char¡¡ ucPRV;¡¡¡¡// +10, 1: Product revision(8bit)
¡¡¡¡0xffffffff, ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡// unsigned long¡¡ ulPSN;¡¡¡¡// +12, 4: Product serial number(32bit)
¡¡¡¡0xff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned char¡¡ ucMDT;¡¡¡¡// +16, 1: Manufacturing date(8bit)
¡¡¡¡0xff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned char¡¡ ucCRC;¡¡¡¡// +17, 1: 7-bit CRC checksum(7bit)
};
int main()
{
¡¡¡¡int i;
¡¡¡¡unsigned char* p;
¡¡¡¡p = (unsigned char*)&cid;
¡¡¡¡printf("size = %d\n", sizeof(MMC_CID_INFO));
¡¡¡¡for(i = 0; i < sizeof(MMC_CID_INFO); i++) {
¡¡¡¡¡¡¡¡printf("%02x ", p[i]);
¡¡¡¡}
¡¡¡¡return 0;
}
-------------------------------------------------------------------------------------------
¢£¢£ ·ë²Ì ¢£¢£
size = 20
ff 00 ff ff ff ff ff ff ff ff ff 00 ff ff ff ff ff ff 00 00
-------------------------------------------------------------------------------------------
¼¡¤Ë¡¢¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¤ò¡úÍÞÀ©¤·¤¿¡ú¾ì¹ç¡£
[Linux PC & GCC 3.3.3¡¢¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È̵¤·]
#include
//CID(Card IDentification number)¡¡¥«¡¼¥ÉID¥ì¥¸¥¹¥¿¾ðÊó¹½Â¤ÂÎ
typedef struct tag_MMC_CID_INFO
{
¡¡¡¡unsigned char¡¡ ucMID;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// + 0, 1: ManufactureID(8bit)
¡¡¡¡unsigned short¡¡usOID;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// + 1, 2: OEM/Application ID(16bit)
¡¡¡¡unsigned char¡¡ ucPNM[6];¡¡¡¡¡¡¡¡¡¡ // + 3, 6: Product name(48bit)
¡¡¡¡unsigned char¡¡ ucPRV;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// + 9, 1: Product revision(8bit)
¡¡¡¡unsigned long¡¡ ulPSN;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +10, 4: Product serial number(32bit)
¡¡¡¡unsigned char¡¡ ucMDT;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +14, 1: Manufacturing date(8bit)
¡¡¡¡unsigned char¡¡ ucCRC;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +15, 1: 7-bit CRC checksum(7bit)
} __attribute__((packed)) MMC_CID_INFO; // =16
MMC_CID_INFO cid = {
¡¡¡¡0xff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned char¡¡ ucMID;¡¡¡¡// + 0, 1: ManufactureID(8bit)
¡¡¡¡0xffff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned short¡¡usOID;¡¡¡¡// + 1, 2: OEM/Application ID(16bit)
¡¡¡¡{ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }, // unsigned char¡¡ ucPNM[6]; // + 3, 6: Product name(48bit)
¡¡¡¡0xff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned char¡¡ ucPRV;¡¡¡¡// + 9, 1: Product revision(8bit)
¡¡¡¡0xffffffff, ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡// unsigned long¡¡ ulPSN;¡¡¡¡// +10, 4: Product serial number(32bit)
¡¡¡¡0xff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned char¡¡ ucMDT;¡¡¡¡// +14, 1: Manufacturing date(8bit)
¡¡¡¡0xff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned char¡¡ ucCRC;¡¡¡¡// +15, 1: 7-bit CRC checksum(7bit)
};
int main()
{
¡¡¡¡int i;
¡¡¡¡unsigned char* p;
¡¡¡¡p = (unsigned char*)&cid;
¡¡¡¡printf("size = %d\n", sizeof(MMC_CID_INFO));
¡¡¡¡for(i = 0; i < sizeof(MMC_CID_INFO); i++) {
¡¡¡¡¡¡¡¡printf("%02x ", p[i]);
¡¡¡¡}
¡¡¡¡return 0;
}
-------------------------------------------------------------------------------------------
¢£¢£ ·ë²Ì ¢£¢£
size = 16
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-------------------------------------------------------------------------------------------
´üÂÔÄ̤ê¤Ç¤¹¡£
¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¤òÍÞÀ©¤¹¤ë¤³¤È¤ò¡¢¡È¹½Â¤ÂΥѥ寡ɤȸƤó¤À¤ê¤·¤Þ¤¹¡£
¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£
¢££Ð¡¿£Å£Ã£Å¤Î¾ì¹ç¡ÁÌäÂêȯÀ¸!!¢£
¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£
¾å½Ò¤ÎGCC¤ÎÎã¤Ï¡¢PC¾å¤ÇLinux(FedoraCore2)¤ò»È¤Ã¤Æ¹Ô¤¤¤Þ¤·¤¿¡£
¤µ¤Æ¡¢P/ECE³«È¯´Ä¶¤ÎC¥³¥ó¥Ñ¥¤¥é¤âGCC¤Ç¤¹¡£
¤Á¤ç¤Ã¤È¥Ð¡¼¥¸¥ç¥ó¤¬¸Å¤¤¤±¤É¡¢PC¾å¤ÇLinux¤ò»È¤Ã¤¿¾ì¹ç¤ÈƱ¤¸·ë²Ì¤¬´üÂÔ¤µ¤ì¤Þ¤¹¡£
¤Þ¤º¤Ï¡¢¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¤ò¡úÍÞÀ©¤·¤Ê¤¤¡ú¾ì¹ç¡£
[P/ECE & pcc33.exe¡¢¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¤¢¤ê]
#include
unsigned char vbuff[128 * 88];
//CID(Card IDentification number)¡¡¥«¡¼¥ÉID¥ì¥¸¥¹¥¿¾ðÊó¹½Â¤ÂÎ
typedef struct tag_MMC_CID_INFO
{
¡¡¡¡unsigned char¡¡ ucMID;¡¡¡¡¡¡// + 0, 1: ManufactureID(8bit)
¡¡¡¡unsigned short¡¡usOID;¡¡¡¡¡¡// + 2, 2: OEM/Application ID(16bit)
¡¡¡¡unsigned char¡¡ ucPNM[6];¡¡ // + 4, 6: Product name(48bit)
¡¡¡¡unsigned char¡¡ ucPRV;¡¡¡¡¡¡// +10, 1: Product revision(8bit)
¡¡¡¡unsigned long¡¡ ulPSN;¡¡¡¡¡¡// +12, 4: Product serial number(32bit)
¡¡¡¡unsigned char¡¡ ucMDT;¡¡¡¡¡¡// +16, 1: Manufacturing date(8bit)
¡¡¡¡unsigned char¡¡ ucCRC;¡¡¡¡¡¡// +17, 1: 7-bit CRC checksum(7bit)
} MMC_CID_INFO;¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // =20
MMC_CID_INFO cid = {
¡¡¡¡0xff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned char¡¡ ucMID;¡¡¡¡// + 0, 1: ManufactureID(8bit)
¡¡¡¡0xffff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned short¡¡usOID;¡¡¡¡// + 2, 2: OEM/Application ID(16bit)
¡¡¡¡{ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }, // unsigned char¡¡ ucPNM[6]; // + 4, 6: Product name(48bit)
¡¡¡¡0xff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned char¡¡ ucPRV;¡¡¡¡// +10, 1: Product revision(8bit)
¡¡¡¡0xffffffff, ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡// unsigned long¡¡ ulPSN;¡¡¡¡// +12, 4: Product serial number(32bit)
¡¡¡¡0xff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned char¡¡ ucMDT;¡¡¡¡// +16, 1: Manufacturing date(8bit)
¡¡¡¡0xff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned char¡¡ ucCRC;¡¡¡¡// +17, 1: 7-bit CRC checksum(7bit)
};
void pceAppInit()
{
¡¡¡¡pceLCDSetBuffer(vbuff);
¡¡¡¡pceLCDDispStart();
}
void pceAppProc(int count)
{
¡¡¡¡int i;
¡¡¡¡unsigned char* p;
¡¡¡¡memset(vbuff, 0, sizeof vbuff);
¡¡¡¡pceFontSetType(2);
¡¡¡¡pceFontSetPos(0, 0);
¡¡¡¡p = (unsigned char*)&cid;
¡¡¡¡pceFontPrintf("size = %d\n", sizeof(MMC_CID_INFO));
¡¡¡¡for(i = 0; i < sizeof(MMC_CID_INFO); i++) {
¡¡¡¡¡¡¡¡pceFontPrintf("%02x ", p[i]);
¡¡¡¡}
¡¡¡¡pceLCDTrans();
}
void pceAppExit()
{
}
-------------------------------------------------------------------------------------------
¢£¢£ ·ë²Ì ¢£¢£
size = 20
ff 00 ff ff ff ff ff ff ff ff ff 00 ff ff ff ff ff ff 00 00
-------------------------------------------------------------------------------------------
¤¢¤È¤Ï¡¢¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È¤ò¡úÍÞÀ©¤·¤¿¡ú¾ì¹ç¤¬´üÂÔÄ̤ê¤Î·ë²Ì¤Ê¤é¤Ð¡¢Á´¤Æ£Ï£Ë¤Ê¤Î¤Ç¤¹¤¬¡¦¡¦¡¦
[P/ECE & pcc33.exe¡¢¹½Â¤ÂÎ¥¢¥é¥¤¥á¥ó¥È̵¤·]
#include
unsigned char vbuff[128 * 88];
//CID(Card IDentification number)¡¡¥«¡¼¥ÉID¥ì¥¸¥¹¥¿¾ðÊó¹½Â¤ÂÎ
typedef struct tag_MMC_CID_INFO
{
¡¡¡¡unsigned char¡¡ ucMID;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// + 0, 1: ManufactureID(8bit)
¡¡¡¡unsigned short¡¡usOID;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// + 1, 2: OEM/Application ID(16bit)
¡¡¡¡unsigned char¡¡ ucPNM[6];¡¡¡¡¡¡¡¡¡¡ // + 3, 6: Product name(48bit)
¡¡¡¡unsigned char¡¡ ucPRV;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// + 9, 1: Product revision(8bit)
¡¡¡¡unsigned long¡¡ ulPSN;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +10, 4: Product serial number(32bit)
¡¡¡¡unsigned char¡¡ ucMDT;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +14, 1: Manufacturing date(8bit)
¡¡¡¡unsigned char¡¡ ucCRC;¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +15, 1: 7-bit CRC checksum(7bit)
} __attribute__((packed)) MMC_CID_INFO; // =16
MMC_CID_INFO cid = {
¡¡¡¡0xff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned char¡¡ ucMID;¡¡¡¡// + 0, 1: ManufactureID(8bit)
¡¡¡¡0xffff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned short¡¡usOID;¡¡¡¡// + 1, 2: OEM/Application ID(16bit)
¡¡¡¡{ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }, // unsigned char¡¡ ucPNM[6]; // + 3, 6: Product name(48bit)
¡¡¡¡0xff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned char¡¡ ucPRV;¡¡¡¡// + 9, 1: Product revision(8bit)
¡¡¡¡0xffffffff, ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡// unsigned long¡¡ ulPSN;¡¡¡¡// +10, 4: Product serial number(32bit)
¡¡¡¡0xff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned char¡¡ ucMDT;¡¡¡¡// +14, 1: Manufacturing date(8bit)
¡¡¡¡0xff,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // unsigned char¡¡ ucCRC;¡¡¡¡// +15, 1: 7-bit CRC checksum(7bit)
};
void pceAppInit()
{
¡¡¡¡pceLCDSetBuffer(vbuff);
¡¡¡¡pceLCDDispStart();
}
void pceAppProc(int count)
{
¡¡¡¡int i;
¡¡¡¡unsigned char* p;
¡¡¡¡memset(vbuff, 0, sizeof vbuff);
¡¡¡¡pceFontSetType(2);
¡¡¡¡pceFontSetPos(0, 0);
¡¡¡¡p = (unsigned char*)&cid;
¡¡¡¡pceFontPrintf("size = %d\n", sizeof(MMC_CID_INFO));
¡¡¡¡for(i = 0; i < sizeof(MMC_CID_INFO); i++) {
¡¡¡¡¡¡¡¡pceFontPrintf("%02x ", p[i]);
¡¡¡¡}
¡¡¡¡pceLCDTrans();
}
void pceAppExit()
{
}
-------------------------------------------------------------------------------------------
¢£¢£ ·ë²Ì ¢£¢£
size = 16
ff 00 ff ff ff ff ff ff ff ff ff 00 ff ff ff ff
-------------------------------------------------------------------------------------------
ÌäÂêȯÀ¸¤Ç¤¹!!
¹½Â¤ÂÎ¥µ¥¤¥º¤Ï³Î¤«¤Ë»ÅÍͤɤª¤ê¤Î16¥Ð¥¤¥È¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤Î¤Ç¤¹¤¬¡¢¤Ê¤¼¤«¥Ñ¥Ç¥£¥ó¥°¤¬»Ä¤Ã¤Æ¤¤¤Þ¤¹¡£
¤ï¤«¤ê¤ä¤¹¤¤¤è¤¦¤Ë¡¢·ë²Ì½ÐÎϤòʤÓÂØ¤¨¤Æ¤ß¤Þ¤¹¡£
-------------------------------------------------------------------------------------------
¢£¢£ ·ë²Ì ¢£¢£
size = 16
ff¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡// + 0, 1: ManufactureID(8bit)
00¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡// + 1, 1: ¤Ê¤¼¤«¥Ñ¥Ç¥£¥ó¥°¤¬»Ä¤Ã¤Æ¤¤¤ë¡©
ff ff¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // + 2, 2: OEM/Application ID(16bit)
ff ff ff ff ff ff¡¡ // + 4, 6: Product name(48bit)
ff¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +10, 1: Product revision(8bit)
00¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +11, 1: ¤Ê¤¼¤«¥Ñ¥Ç¥£¥ó¥°¤¬»Ä¤Ã¤Æ¤¤¤ë¡©
ff ff ff ff¡¡¡¡¡¡¡¡ // +12, 4: Product serial number(32bit)
??¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +??, 1: Manufacturing date(8bit) ¤Ï¤É¤³¤Ø¹Ô¤Ã¤¿¡©
??¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡// +??, 1: 7-bit CRC checksum(7bit) ¤Ï¤É¤³¤Ø¹Ô¤Ã¤¿¡©
-------------------------------------------------------------------------------------------
¤¤¤Ã¤¿¤¤¤É¤¦¤Ê¤Ã¤Æ¤¤¤ë¤Î¤Ç¤·¤ç¤¦¡©
¤³¤ÎÌäÂê¡¢P/ECE³«È¯´Ä¶¤ÎC¥³¥ó¥Ñ¥¤¥é(gcc33.exe)¤È¥¢¥»¥ó¥Ö¥é(as33.exe)¤Î¶¨Ä´¤¬¾å¼ê¤¯¤¤¤Ã¤Æ¤¤¤Ê¤¤¤³¤È¤¬¸¶°ø¤Ê¤Î¤Ç¤¹¡£
¾Ü¤·¤¯¤Ï¡¢¼¡²ó¤Ë¡£
(³¤¤Þ¤¹¡Ä)
* Sat May 16 00:00:00 JST 2004 Naoyuki Sawa
- Zlib¤ò¼ÂÁõ¤·¤Æ¤ß¤ë#2
Á°²ó¤Ï¡¢¾Ê¥á¥â¥ê¤ÊZlibŸ³«¥ë¡¼¥Á¥ó¤ò¼ÂÁõ¤·¤Æ¤ß¤Þ¤·¤¿¡£
¤Þ¤¿¡¢¤½¤Î¥ë¡¼¥Á¥ó¤ò»È¤Ã¤ÆZlib·Á¼°¤Î°µ½Ì¥Õ¥¡¥¤¥ë¤òŸ³«¤·¡¢²èÌÌɽ¼¨¤¹¤ë¥µ¥ó¥×¥ë¤òºîÀ®¤·¤Þ¤·¤¿¡£
¤·¤«¤·¤Ê¤¬¤é¡¢Zlib·Á¼°¤Î°µ½Ì¥Õ¥¡¥¤¥ë¤Ï¡¢¤½¤Î¤Þ¤Þ¤Ç¤Ï¾¯¡¹»È¤¤¤Å¤é¤¤Ì̤¬¤¢¤ê¤Þ¤¹¡£
¤¤¤Á¤Ð¤ó¤ÎÌäÂê¤Ï¡¢Zlib·Á¼°¤ËÂбþ¤·¤¿°µ½Ì¡¦Å¸³«¥Ä¡¼¥ë¤¬ÉáµÚ¤·¤Æ¤¤¤Ê¤¤¡¢¤È¤¤¤¦ÅÀ¤Ç¤¹¡£
Zlib¤Î»ÅÍͽñ¤Ë¤è¤ë¤È¡¢¼Â¤Ï¡ÖZlib·Á¼°¡×¤È¤Ï¡¢°µ½ÌÊýË¡¤Þ¤Ç´Þ¤á¤¿»ÅÍͤǤϤʤ¤¤½¤¦¤Ç¤¹¡£
°µ½ÌÊýË¡¤ò¼¨¤·¤¿¥Ø¥Ã¥À¤È¡¢°µ½Ì¥Ç¡¼¥¿ËÜÂΡ¢¤½¤·¤Æ¸¡ººÍÑ¥³¡¼¥É¤ÎʤӤò´ûÄꤷ¤Æ¤¤¤ë¤À¤±¤Î»ÅÍͤǤ¹¡£
¿Þ¤Ç¼¨¤¹¤È¡¢¤³¤ó¤Ê´¶¤¸¤Ç¤¹¡£
¡Ü¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡Ü
¡Ã£Ú£ì£é£â¥Ø¥Ã¥À¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã¢«Zlib»ÅÍÍ
¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü
¡Ã£Ú£ì£é£â¥Ø¥Ã¥À¤Ë½ñ¤¤¤Æ¤¢¤ë°µ½ÌÊýË¡¤ò»È¤Ã¤¿¡¢°µ½Ì¥Ç¡¼¥¿¡Ã
¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü
¡Ã¸¡ººÍÑ¥³¡¼¥É¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã¢«Zlib»ÅÍÍ
¡Ü¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡Ü
Windows WAV¥Õ¥¡¥¤¥ë·Á¼°¤¬¡¢PCM·Á¼°¡¦ADPCM·Á¼°¡¦MP3·Á¼°¤Ê¤É¡¢¤¤¤í¤¤¤í¤ÊÆâÉô·Á¼°¤ò»ý¤Ã¤Æ¤¤¤ë¤Î¤Ë»÷¤Æ¤¤¤Þ¤¹¡£
¤µ¤Æ¡¢¸½ºß¤Î¤È¤³¤íZlib·Á¼°¤ÇÍøÍѲÄǽ¤Ê°µ½ÌÊýË¡¤È¤·¤Æ¤Ï¡¢¡ÖDeflate°µ½Ì·Á¼°¡×¤À¤±¤¬µ¬Äꤵ¤ì¤Æ¤¤¤Þ¤¹¡£
°ìÈ̤ËZlib·Á¼°¤È¸Æ¤Ð¤ì¤ë¤Î¤Ï¡¢¸·Ì©¤Ë¤Ï¡ÖDeflate°µ½Ì·Á¼°¤Î°µ½Ì¥Ç¡¼¥¿¤ò»ý¤Ã¤¿¡¢Zlib·Á¼°¤Î¥Õ¥¡¥¤¥ë¡×¤Î¤³¤È¤À¤Ã¤¿¤Î¤Ç¤¹¡£
¤â¤Á¤í¤ó¡¢Á°²ó¼ÂÁõ¤·¤¿ZlibŸ³«¥ë¡¼¥Á¥ó¤â¡¢Deflate°µ½Ì·Á¼°¤Ë´ð¤¯¤â¤Î¤Ç¤¹¡£
Àè¤Û¤É¤Î¿Þ¤ò½ñ¤Ä¾¤¹¤È¡¢¼¡¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
¡Ü¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡Ü
¡Ã£Ú£ì£é£â¥Ø¥Ã¥À¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã¢«Zlib»ÅÍÍ
¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü
¡Ã£Ä£å£æ£ì£á£ô£å·Á¼°¤Î°µ½Ì¥Ç¡¼¥¿¡Ã
¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü
¡Ã¸¡ººÍÑ¥³¡¼¥É¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã¢«Zlib»ÅÍÍ
¡Ü¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡Ü
Zlib·Á¼°¤Î°µ½Ì¥Õ¥¡¥¤¥ë¤ò°·¤¦¤Ë¤Ï¡¢°µ½Ì¡¦Å¸³«¥Ä¡¼¥ë¤¬Zlib·Á¼°¤Î¥Ø¥Ã¥À¤ä¸¡ººÍÑ¥³¡¼¥É¤òǧ¼±¤Ç¤¤Ê¤±¤ì¤Ð¤¤¤±¤Þ¤»¤ó¡£
Ê£¿ô¤Î·Á¼°¤ËÂбþ¤·¤¿°µ½Ì¡¦Å¸³«¥Ä¡¼¥ë¤ÏÍÍ¡¹¤¢¤ê¤Þ¤¹¤¬¡¢Zlib·Á¼°¤ò°·¤¦¤³¤È¤Î¤Ç¤¤ë¥Ä¡¼¥ë¤Ï¸«¤Ä¤±¤é¤ì¤Þ¤»¤ó¤Ç¤·¤¿¡£
Ëͤϡ¢¤³¤Á¤é¤Î¥µ¥ó¥×¥ë¥×¥í¥°¥é¥à¤ò¤½¤Î¤Þ¤ÞZlib°µ½Ì¡¦Å¸³«¥Ä¡¼¥ë¤È¤·¤Æ»È¤ï¤»¤ÆÄº¤¤¤Æ¤¤¤Þ¤¹¡£
¡ÖHaruhiko Okumura's Home Page(http://www.matsusaka-u.ac.jp/~okumura/)¡×¤µ¤ó¤Î¥µ¥¤¥È¤Î¡¢
¡Özlib ÆþÌç(http://www.matsusaka-u.ac.jp/~okumura/compression/zlib.html)¡×¤Î¥Ú¡¼¥¸¤Î¡¢
¡Öcomptest.c(http://www.matsusaka-u.ac.jp/~okumura/compression/comptest.c)¡×¡£
¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤¿¤á¤Ë¤Ï¡¢¥ª¥ê¥¸¥Ê¥ë¤ÎZlib(http://www.gzip.org/zlib/)¤¬É¬ÍפǤ¹¡£
¤µ¤Æ¡¢Zlib·Á¼°¤è¤ê¤â°µÅÝŪ¤Ë¥á¥¸¥ã¡¼¤Ê°µ½Ì¥Õ¥¡¥¤¥ë·Á¼°¤È¤·¤Æ¡¢¡ÖZip·Á¼°¡×¤¬¤¢¤ê¤Þ¤¹¡£
Zip·Á¼°¤â¡¢Zlib·Á¼°¤ÈƱ¤¸¤¯¡¢°µ½ÌÊýË¡¤Þ¤Ç¤òÄê¤á¤¿»ÅÍͤǤϤ¢¤ê¤Þ¤»¤ó¡£
ÍÍ¡¹¤Ê°µ½ÌÊýË¡¤ò»È¤Ã¤¿°µ½Ì¥Ç¡¼¥¿¤Î³ÊǼÊýË¡¤ä¡¢¥Õ¥¡¥¤¥ë¾ðÊó¤òÉղ乤ëÊýË¡Åù¤òÄê¤á¤¿»ÅÍͤǤ¹¡£
Zip·Á¼°¤¬°·¤¦¡ÈÍÍ¡¹¤Ê°µ½ÌÊýË¡¡É¤ÎÃæ¤Ç¤âÆÃ¤ËÎɤ¯ÍøÍѤµ¤ì¤ë¤Î¤¬¡¢Á°½Ð¤Î¡ÖDeflate°µ½Ì·Á¼°¡×¤Ç¤¹¡£
Ʊ¤¸Deflate°µ½Ì·Á¼°¤ò»È¤Ã¤¿Zlib·Á¼°¤ÈZip·Á¼°¤Ï¡¢¥¬¥ï¤¬°ã¤¦¤À¤±¤ÇËܼÁ¤Ï¤Û¤È¤ó¤ÉƱ¤¸¡¢¤È¸À¤¨¤Þ¤¹¡£
Zlib·Á¼°¤È°ã¤Ã¤Æ¡¢Zip·Á¼°¤ÏÊ£¿ô¤Î¥Õ¥¡¥¤¥ë¤ò¤Þ¤È¤á¤Æ³ÊǼ¤Ç¤¤ë¤Î¤Ç¡¢¿Þ¤Ç¼¨¤¹¤È¤³¤ó¤Ê´¶¤¸¤Ë¤Ê¤ê¤Þ¤¹¡£
¡Ü¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡Ü
¡Ã£Ú£é£ð¥Õ¥¡¥¤¥ë¥Ø¥Ã¥À£±¡¢¸¡ººÍÑ¥³¡¼¥É¤â´Þ¤à¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã¢«Zip»ÅÍÍ
¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü
¡Ã£Ú£é£ð¥Õ¥¡¥¤¥ë¥Ø¥Ã¥À£±¤Ë½ñ¤¤¤Æ¤¢¤ë°µ½ÌÊýË¡¤ò»È¤Ã¤¿¡¢°µ½Ì¥Ç¡¼¥¿£±¡Ã
¡Ü¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡Ü
¡Ã£Ú£é£ð¥Õ¥¡¥¤¥ë¥Ø¥Ã¥À£²¡¢¸¡ººÍÑ¥³¡¼¥É¤â´Þ¤à¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã¢«Zip»ÅÍÍ
¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü
¡Ã£Ú£é£ð¥Õ¥¡¥¤¥ë¥Ø¥Ã¥À£²¤Ë½ñ¤¤¤Æ¤¢¤ë°µ½ÌÊýË¡¤ò»È¤Ã¤¿¡¢°µ½Ì¥Ç¡¼¥¿£²¡Ã
¡Ü¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡Ü
¡Ã¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¦¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã
¡Ã¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¦¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã
¡Ã¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¦¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã
¡Ü¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡Ü
¡Ã£Ú£é£ð¥Õ¥¡¥¤¥ë¥Ø¥Ã¥À£Î¡¢¸¡ººÍÑ¥³¡¼¥É¤â´Þ¤à¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã¢«Zip»ÅÍÍ
¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü
¡Ã£Ú£é£ð¥Õ¥¡¥¤¥ë¥Ø¥Ã¥À£Î¤Ë½ñ¤¤¤Æ¤¢¤ë°µ½ÌÊýË¡¤ò»È¤Ã¤¿¡¢°µ½Ì¥Ç¡¼¥¿£Î¡Ã
¡Ü¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡Ü
¡Ã¤½¤Î¾¤Î£Ú£é£ð¥Õ¥¡¥¤¥ë¾ðÊó¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã¢«Zip»ÅÍÍ
¡Ü¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡Ü
¤¢¤ëZip¥Õ¥¡¥¤¥ëÆâ¤Î°µ½Ì¥Ç¡¼¥¿¤¬¡¢Á´¤ÆDeflate°µ½Ì·Á¼°¤òÍøÍѤ·¤Æ¤¤¤¿¤Ê¤é¤Ð¡¢Àè¤Û¤É¤Î¿Þ¤Ï¼¡¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
¡Ü¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡Ü
¡Ã£Ú£é£ð¥Õ¥¡¥¤¥ë¥Ø¥Ã¥À£±¡¢¸¡ººÍÑ¥³¡¼¥É¤â´Þ¤à¡Ã¢«Zip»ÅÍÍ
¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü
¡Ã£Ä£å£æ£ì£á£ô£å·Á¼°¤Î°µ½Ì¥Ç¡¼¥¿£±¡¡¡¡¡¡¡¡¡¡¡Ã
¡Ü¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡Ü
¡Ã£Ú£é£ð¥Õ¥¡¥¤¥ë¥Ø¥Ã¥À£²¡¢¸¡ººÍÑ¥³¡¼¥É¤â´Þ¤à¡Ã¢«Zip»ÅÍÍ
¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü
¡Ã£Ä£å£æ£ì£á£ô£å·Á¼°¤Î°µ½Ì¥Ç¡¼¥¿£²¡¡¡¡¡¡¡¡¡¡¡Ã
¡Ü¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡Ü
¡Ã¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¦¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã
¡Ã¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¦¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã
¡Ü¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡Ü
¡Ã£Ú£é£ð¥Õ¥¡¥¤¥ë¥Ø¥Ã¥À£Î¡¢¸¡ººÍÑ¥³¡¼¥É¤â´Þ¤à¡Ã¢«Zip»ÅÍÍ
¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü
¡Ã£Ä£å£æ£ì£á£ô£å·Á¼°¤Î°µ½Ì¥Ç¡¼¥¿£Î¡¡¡¡¡¡¡¡¡¡¡Ã
¡Ü¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡Ü
¡Ã¤½¤Î¾¤Î£Ú£é£ð¥Õ¥¡¥¤¥ë¾ðÊó¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã¢«Zip»ÅÍÍ
¡Ü¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡Ü
Zip¥Õ¥¡¥¤¥ë¤Ë³ÊǼ¤¹¤ë°µ½Ì¥Ç¡¼¥¿¤Î·Á¼°¤È¤·¤Æ¤Ï¡¢Deflate°µ½Ì·Á¼°°Ê³°¤Ë¤â¤¤¤¯¤Ä¤«¤Î°µ½ÌÊýË¡¤¬µ¬Äꤵ¤ì¤Æ¤¤¤Þ¤¹¡£
¤·¤«¤·¡¢¼ê¸µ¤Ë¤¢¤ë¿¤¯¤ÎZip¥Õ¥¡¥¤¥ë¤òÄ´¤Ù¤Æ¤ß¤¿¤È¤³¤í¡¢¼ÂºÝ¤Ë»È¤ï¤ì¤Æ¤¤¤¿°µ½ÌÊýË¡¤ÏÆó¼ïÎà¤À¤±¤Ç¤·¤¿¡£
¡¦Ìµ°µ½Ì
¡¦Deflate°µ½Ì·Á¼°
½¾¤Ã¤Æ¡¢¤³¤ì¤éÆó¼ïÎà¤Î°µ½Ì·Á¼°¤ËÂбþ¤¹¤ë¤À¤±¤Ç¡¢¼ÂÍѾå¤Ï½¼Ê¬¤ÊZipŸ³«¥ë¡¼¥Á¥ó¤È¤Ê¤ë¤Ï¤º¤Ç¤¹¡£
̵°µ½Ì·Á¼°¤Ë¤Ä¤¤¤Æ¤Ï¡¢³ÊǼ¤µ¤ì¤Æ¤¤¤ë¥Ç¡¼¥¿¤ò¤½¤Î¤Þ¤Þ¥³¥Ô¡¼¤¹¤ë¤À¤±¤Ç¤¹¡£
Deflate°µ½Ì·Á¼°¤Ë¤Ä¤¤¤Æ¤Ï¡¢Á°²óºîÀ®¤·¤¿ZlibŸ³«¥ë¡¼¥Á¥ó¤ÎÆâÉô½èÍý¤¬Î®ÍѤǤ¤½¤¦¤Ç¤¹¡£
Zlib¥Ø¥Ã¥À¤È¸¡ºº¥³¡¼¥É¤ò°·¤Ã¤Æ¤¤¤ëÉôʬ¤Î¥×¥í¥°¥é¥à¤ò¾¯¤·½¤Àµ¤¹¤ë¤À¤±¤Ç¡¢ZipŸ³«¥ë¡¼¥Á¥ó¤òºîÀ®¤Ç¤¤Þ¤·¤¿¡£
ZipŸ³«¥ë¡¼¥Á¥ó¤òÍøÍѤ·¤¿¥µ¥ó¥×¥ë¤Ï¤³¤Á¤é¡£
P/ECEÍѤÈWindowsÍѤΥƥ¹¥È¥×¥í¥°¥é¥à¤òÍѰդ·¤Þ¤·¤¿¡£
P/ECEÍѥƥ¹¥È¥×¥í¥°¥é¥à¤Ï¡¢Zip¥Õ¥¡¥¤¥ë¤Ë³ÊǼ¤µ¤ì¤¿²èÁü¥Õ¥¡¥¤¥ë¤ò¡¢¼¡¡¹¼«Æ°Åª¤Ëɽ¼¨¤·¤Þ¤¹¡£
Windows¥Æ¥¹¥È¥×¥í¥°¥é¥àÍѤϡ¢Zip¥Õ¥¡¥¤¥ë¤Ë³ÊǼ¤µ¤ì¤¿¥Õ¥¡¥¤¥ë°ìÍ÷¤«¤é¡¢ÁªÂò¤µ¤ì¤¿²èÁü¤òŸ³«¤·¤ÆÉ½¼¨¤·¤Þ¤¹¡£
http://www.piece-me.org/archive/pzltest-20040316-piece.zip
http://www.piece-me.org/archive/pzltest-20040316-win32.zip
Á°²ó¤Èº£²ó¤È¤Ç¡¢Zlib/ZipŸ³«¥ë¡¼¥Á¥ó¤ò¼ÂÁõ¤·¤Æ¤ß¤Þ¤·¤¿¡£
Æóǯ¶á¤¯¡¢¤è¤¯¤ï¤«¤é¤Ê¤¤¤Þ¤Þ¤Ë»È¤Ã¤Æ¤¤¤¿Zlib¥é¥¤¥Ö¥é¥ê¤Ç¤·¤¿¤¬¡¢º£²ó¤Î¥×¥í¥°¥é¥ß¥ó¥°¤Ç¤ä¤Ã¤ÈÍý²ò¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤·¤¿¡£
Zlib/Zip·Á¼°¤Î»ÅÁȤߤòÍý²ò¤¹¤ë¤¿¤á¤Ë¡¢°Ê²¼¤Îµ»ö¤¬¤È¤Æ¤â»²¹Í¤Ë¤Ê¤ê¤Þ¤·¤¿¡£
¤ªÎé¤ò¿½¤·¾å¤²¤ë¤È¤È¤â¤Ë¡¢¤´¾Ò²ð¤µ¤»¤ÆÄº¤¤Þ¤¹¡£
¡ÖLabVIEW¾ðÊó¸ò´¹¤Î¥Ú¡¼¥¸(http://www.asahi-net.or.jp/~WR9K-OOHS/)¡×¤µ¤ó¤Î¥µ¥¤¥È¤Î¡¢
¡Ö¥Ê¥¤¥¸¥§¥ë»³¸ý¥³¡¼¥Ê¡¼(http://www.asahi-net.or.jp/~WR9K-OOHS/Pages/Nigel's/nigel.html)¡×¤Î¥Ú¡¼¥¸¡£
Zlib¤Î»ÅÍͽñ¤Î¡¢¤¤¤Á¤Ð¤ó½ÅÍפÊÉôʬ¤Ë´Ø¤¹¤ëÏÂÌõ¤¬¤¢¤ê¤Þ¤¹¡£
¤Þ¤¿¡¢°µ½Ìµ»Ë¡¤Î¾ÜºÙ¤Ë¤Ä¤¤¤Æ¡¢¤ï¤«¤ê¤ä¤¹¤¯ÏÀ¤¸¤é¤ì¤Æ¤¤¤Þ¤¹¡£
°µ½Ìµ»Ë¡°Ê³°¤Ë¤â¡¢¶½Ì£¿¼¤¤µ»ö¤¬¤¿¤¯¤µ¤ó¤¢¤ê¤Þ¤¹¡£
¡Ö£Ë£Ï£Î£Å's £Ä¡ÝStation(http://kone.vis.ne.jp/)¡×¤µ¤ó¤Î¥µ¥¤¥È¤Î¡¢
¡Öµ¤¤Þ¤°¤ì¤Êµº¤ì¸À(http://kone.vis.ne.jp/diary/)¡×¤Î¥Ú¡¼¥¸¡£
CRC¤Î·×»»ÊýË¡¤¬¡¢½ç¤òÄɤäƲòÀ⤵¤ì¤Æ¤¤¤Þ¤¹¡£
Zip·Á¼°¤Ç»È¤ï¤ì¤Æ¤¤¤ëCRC-32¤Î·×»»ÊýË¡¡¢Â¿¤¯¤Î¼ÂÁõÎã¤Ï¥Æ¡¼¥Ö¥ë¤òÍøÍѤ·¤Æ¤¤¤Þ¤¹¤¬¡¢¤½¤Î¥Æ¡¼¥Ö¥ë¤Ï¤É¤³¤«¤é½Ð¤Æ¤¯¤ë¤Î¤«¡©
¤³¤Á¤é¤Î¥Ú¡¼¥¸¤òÆÉ¤ó¤Çµ¿Ì䤬²ò·è¤·¤Þ¤·¤¿¡£
º£²ó¤ÎºîÀ®¤·¤¿ZipŸ³«¥ë¡¼¥Á¥ó¤Ï¡¢¥Æ¡¼¥Ö¥ë¤òÍøÍѤ·¤Ê¤¤´ðËÜŪ¤ÊÊýË¡¤Ç¼ÂÁõ¤·¤Æ¤ß¤Þ¤·¤¿¡£
* Sat May 13 16:00:00 JST 2004 Naoyuki Sawa
- Zlib¤ò¼ÂÁõ¤·¤Æ¤ß¤ë#1
2002ǯ6·î14Æü¡Á17Æü¤ÎP/ECE¸¦µæµÏ¿¡Özlib¤ò»È¤¦#1¡Á3¡×¤Ë¤Æ¡¢P/ECEÍÑ¥×¥í¥°¥é¥à¤ÇZlib¤ò»È¤¦ÊýË¡¤òÄ´¤Ù¤Þ¤·¤¿¡£
¤½¤Î¸å¡¢¤¤¤¯¤Ä¤«¤Î¼«ºî¥×¥í¥°¥é¥à¤Ç¡¢¼ÂºÝ¤ËZlib¤òÍøÍѤ·¤Þ¤·¤¿¡£
¤½¤ì¤é¤Ï°ì±þ¾å¼ê¤¯Æ°ºî¤·¤¿¤Î¤Ç¤¹¤¬¡¢P/ECEÍÑ¥×¥í¥°¥é¥à¤Ç¤ÏZlib¤¬»È¤¤¤Å¤é¤¤¤È´¶¤¸¤ëÅÀ¤â¤¤¤¯¤Ä¤«¤¢¤ê¤Þ¤·¤¿¡£
¤¤¤Á¤Ð¤ó¤ÎÌäÂê¤Ï¡¢¡Özlib¤ò»È¤¦#1¡Á3¡×¤Ç¤â½ñ¤¤¤¿¤è¤¦¤Ë¡¢¥á¥â¥ê¾ÃÈñÎ̤¬Â¿¤¹¤®¤ëÅÀ¤Ç¤¹¡£
°µ½Ì¥Ç¡¼¥¿¤ò³ÊǼ¤·¤Æ¤ª¤¯ÆþÎϥХåե¡¡¢Å¸³«¥Ç¡¼¥¿¤òºîÀ®¤¹¤ë¤¿¤á¤Î½ÐÎϥХåե¡¤Î¾¤Ë¡¢Ìó35¥¥í¥Ð¥¤¥È¤Îºî¶ÈÍÑ¥á¥â¥ê¤¬É¬ÍפǤ¹¡£
P/ECEÍÑ¥×¥í¥°¥é¥à¤Ç¤Ï¡¢¼ÂºÝ¤ËÍøÍѤ¹¤ë°µ½Ì¥Ç¡¼¥¿¤äŸ³«¥Ç¡¼¥¿¤Ï¤µ¤Û¤ÉÂ礤¯¤¢¤ê¤Þ¤»¤ó¡£¤¿¤¤¤Æ¤¤¿ô¥¥í¥Ð¥¤¥ÈÄøÅ٤Ǥ¹¡£
¤½¤ì¤è¤ê¤â¡¢ZlibÆâÉô¤Î°ì»þŪ¤Êºî¶ÈÍÑ¥á¥â¥ê¤Î¤¿¤á¤Ë¡¢35¥¥í¥Ð¥¤¥È¤âɬÍפʤΤ¬¤«¤Ê¤ê¸·¤·¤¤¤È¤³¤í¤Ç¤¹¡£
Zlib¤¬ºî¶ÈÍÑ¥á¥â¥ê¤ò³ÎÊݤǤ¤Ê¤¤¤È¡¢Å¸³«½èÍý¤¬¼ºÇÔ¤·¤Æ¤·¤Þ¤¤¤Þ¤¹¡£
¤½¤Î¸å¡ÖP/ECE HAND BOOK¡×¤Ë¡¢P/ECE¥«¡¼¥Í¥ë¥½¡¼¥¹¤ÎŸ³«¥ë¡¼¥Á¥ó¤ò»È¤¦ÊýË¡¤¬·ÇºÜ¤µ¤ì¤Þ¤·¤¿¡£
P/ECE¥«¡¼¥Í¥ë¥½¡¼¥¹¤ÎŸ³«¥ë¡¼¥Á¥ó¤âƱ¤¸Zlib¤Ç¤¹¤¬¡¢P/ECE¤Î¥á¥â¥ê¹½À®¤ËÆÃ²½¤·¤Æ¤¤¤Æ¡¢¤è¤ê¾¯¤Ê¤¤¥á¥â¥ê¤ÇŸ³«½èÍý¤¬²Äǽ¤Ç¤¹¡£
¤Þ¤¿¡¢¡ÖP/ECE HAND BOOK¡×¤ÎÊýË¡¤ò¸µ¤Ë¤·¤Æ¡¢Ê£¿ô¤Î°µ½Ì¥Õ¥¡¥¤¥ë¤ò¤Þ¤È¤á¤Æ°·¤¦ÊýË¡¤¬¡¢
¡Ö¤Æ¤È¤é¡ú¤Ý¤Ã¤È(http://www.zurachu.net/)¡×¤µ¤ó¤Î¥µ¥¤¥È¤Ç¾Ò²ð(http://www.zurachu.net/piece/tips/ppack.html)¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
Zlib¤Ë¤³¤À¤ï¤é¤Ê¤±¤ì¤Ð¡¢¤è¤ê¹â®¤Ê°µ½Ì¡¦Å¸³«ÊýË¡¤¬¡Öp/ware(http://park17.wakwak.com/~hitode/piece/index.html)¡×¤µ¤ó¤Î¥µ¥¤¥È¤Ç
¾Ò²ð(http://park17.wakwak.com/~hitode/piece/index.html#plz)¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
¤³¤ì¤é¤ÎÊýË¡¤ò»È¤ï¤»¤Æ¤â¤é¤¨¤Ð¼ÂÍѾå¤ÏÌäÂê²ò·è¤Ê¤Î¤Ç¤¹¤¬¡¢¤â¤¦¾¯¤·¤À¤±ÁǤÎZlib¤Ë¤³¤À¤ï¤Ã¤Æ¤ß¤¿¤¤¤È»×¤¤¤Þ¤¹¡£
¤½¤â¤½¤âËͤ¬Zlib¤ÎÆâÉôưºî¤òÍý²ò¤·¤Ê¤¤¤Þ¤Þ»È¤Ã¤Æ¤¤¤¿¤Î¤¬ÌäÂê¤Ê¤Î¤Ç¡¢¤³¤Îµ¡²ñ¤ËÊÙ¶¯¤·¤Æ¤ß¤è¤¦¤È¤¤¤¦¤ï¤±¤Ç¤¹¡£
¤µ¤Æ¡¢¤Ê¤¼Zlib¤Ï¤³¤ó¤Ê¤ËÂ礤ʺî¶ÈÍÑ¥á¥â¥ê¤òɬÍפȤ¹¤ë¤Î¤Ç¤·¤ç¤¦¤«¡©
Zlib¤Î°µ½Ì¡¦Å¸³«¥¢¥ë¥´¥ê¥º¥à¤Ï¡¢¡Ö¥Ï¥Õ¥Þ¥óÉ乿²½¡×¤È¡Ö¥¹¥é¥¤¥É¼½ñ°µ½Ì¡×¤Ë´ð¤Å¤¤¤Æ¤¤¤Þ¤¹¡£
¥Ï¥Õ¥Þ¥óÉ乿²½¤Ï¡¢ÉÑÈˤ˸½¤ì¤ëÃͤ˾®¤µ¤ÊÉ乿¡¢µ©¤Ë¸½¤ì¤ëÃͤËÂ礤ÊÉ乿¤ò³ä¤ê¿¶¤Ã¤Æ¡¢Á´ÂΤΥµ¥¤¥º¤ò¾®¤µ¤¯¤¹¤ëÊýË¡¤Ç¤¹¡£
¥Ï¥Õ¥Þ¥óÉ乿²½¤ÎŸ³«½èÍý¤Ë¤Ï¡¢¡Ö¥Ï¥Õ¥Þ¥óÌڡפȤ¤¤¦¥Ç¡¼¥¿¹½Â¤¤¬ÍøÍѤµ¤ì¤Þ¤¹¡£
¡Ö¥Ï¥Õ¥Þ¥óÌڡפϡ¢¥Ï¥Õ¥Þ¥óÉ乿¤«¤é¸µ¤ÎÃͤËÊÑ´¹¤¹¤ë¤¿¤á¤Î¼½ñ¤È¤Ê¤ê¤Þ¤¹¡£
¡Ö¥Ï¥Õ¥Þ¥óÌڡפòºîÀ®¤¹¤ë¤¿¤á¤Ë¡¢¤¤¤¯¤é¤«¤Î¥á¥â¥ê¤¬É¬ÍפǤ¹¡£
¤³¤ì¤¬¡¢Zlib¤¬Â礤ʺî¶ÈÍÑ¥á¥â¥ê¤òɬÍפȤ¹¤ëÍýͳ¤Î°ì¤ÄÌܤǤ¹¡£
¤·¤«¤·¼ÂºÝ¤Ë¤Ï¡¢Zlib¤ÇÍøÍѤµ¤ì¤ë¡Ö¥Ï¥Õ¥Þ¥óÌڡפϤµ¤Û¤ÉÂ礤ʥǡ¼¥¿¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£¤»¤¤¤¼¤¤¿ô¥¥í¥Ð¥¤¥ÈÄøÅ٤Ǥ¹¡£
¤è¤êÂ礤ʥá¥â¥ê¤òɬÍפȤ·¤Æ¤¤¤ë¤Î¤Ï¡¢¥¹¥é¥¤¥É¼½ñ°µ½Ì¥¢¥ë¥´¥ê¥º¥à¤ÇÍøÍѤµ¤ì¤ë¡Ö¥¹¥é¥¤¥ÉÁë¡×¥Ç¡¼¥¿¹½Â¤¤Ç¤¹¡£
¥¹¥é¥¤¥É¼½ñ°µ½Ì¤È¤Ï¡¢Æ±¤¸¥Ñ¥¿¡¼¥ó¤Î¥Ç¡¼¥¿Ê¤Ӥòµ÷Î¥¤ÈŤµ¤ËÃÖ¤´¹¤¨¤Æ¡¢Á´ÂΤΥµ¥¤¥º¤ò¾®¤µ¤¯¤¹¤ëÊýË¡¤Ç¤¹¡£
Î㤨¤Ð¡Ö012345678901234¡×¤È¤¤¤¦¥Ç¡¼¥¿Ê¤Ӥ¬¤¢¤Ã¤¿¾ì¹ç¡¢¼¡¤Î¤è¤¦¤Ê´¶¤¸¤Ç°µ½Ì¤·¤Þ¤¹¡£
¡Ö0123456789¡¢10ʸ»úÁ°¤«¤é¡¢5ʸ»ú·«¤êÊÖ¤·¡×
¤È¤³¤í¤Ç¡¢Zlib¤Î¼ÂÁõ¤ÏÆþÎϤâ½ÐÎϤâ´ðËÜŪ¤Ë¥¹¥È¥ê¡¼¥ß¥ó¥°¤Ç¤¹¡£
¤Ä¤Þ¤ê¡¢°ìÅÙÆÉ¤ß¹þ¤ó¤À¥Ç¡¼¥¿¤ÏºÆ¤ÓÆÉ¤ß¹þ¤á¤Ê¤¤¡¢°ìÅÙ½ÐÎϤ·¤¿¥Ç¡¼¥¿¤Ï¤â¤¦Ëº¤ì¤¿¡¢¤È¤¤¤¦¤ï¤±¤Ç¤¹¡£
¤·¤«¤·¡¢10ʸ»úÁ°¤Î¥Ç¡¼¥¿¤ò¤â¤¦°ìÅÙ½ÐÎϤ¹¤ë¤¿¤á¤Ë¤Ï¡¢10ʸ»úÁ°¤Ë½ÐÎϤ·¤¿¥Ç¡¼¥¿¤ò³Ð¤¨¤Æ¤ª¤«¤Ê¤±¤ì¤Ð¤¤¤±¤Þ¤»¤ó¡£
¤½¤³¤Ç¡¢¤¤¤¯¤é¤«¤Î½ÐÎϥХåե¡¤òÍѰդ·¡¢²áµî²¿Ê¸»úʬ¤«¤Î½ÐÎÏÍúÎò¤òµ²±¤·¤Æ¤ª¤¤Þ¤¹¡£
¤³¤ì¤ò¡Ö¥¹¥é¥¤¥ÉÁë¡×¤È¸Æ¤Ó¤Þ¤¹¡£
Zlib¤Î»ÅÍͤǤϡ¢ºÇÂç¤Ç¡Ö3Ëü2Àéʸ»úÁ°¤«¤é¡¢258ʸ»ú·«¤êÊÖ¤·¡×¤È¤¤¤¦»Ø¼¨¤¬Í¤êÆÀ¤ë¤³¤È¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£
½¾¤Ã¤Æ¡¢²áµî3Ëü2Àéʸ»úʬ¤Î½ÐÎÏÍúÎò¤òµ²±¤·¤Æ¤ª¤«¤Ê¤±¤ì¤Ð¤¤¤±¤Þ¤»¤ó¡£
¤Ä¤Þ¤ê¡¢32¥¥í¥Ð¥¤¥È¤Î¥¹¥é¥¤¥ÉÁ뤬ɬÍפȤʤê¤Þ¤¹¡£
¤³¤ì¤Çµ¿Ì䤬²ò·è¤·¤Þ¤·¤¿¡£35¥¥í¥Ð¥¤¥È¤Îºî¶ÈÍÑ¥á¥â¥ê¤ÎÂçÉôʬ¤Ï¡¢¥¹¥é¥¤¥ÉÁë¤Ë»È¤ï¤ì¤Æ¤¤¤¿¤Î¤Ç¤¹¡£
¤µ¤Æ¡¢¤µ¤¤Û¤É¡ÈZlib¤Î¼ÂÁõ¤ÏÆþÎϤâ½ÐÎϤâ´ðËÜŪ¤Ë¥¹¥È¥ê¡¼¥ß¥ó¥°¡É¤À¤«¤é¥¹¥é¥¤¥ÉÁ뤬ɬÍס¢¤È½ñ¤¤Þ¤·¤¿¡£
¤è¤ê¸ÂÄꤹ¤ë¤È¡¢¡È½ÐÎϤ¬¥¹¥È¥ê¡¼¥ß¥ó¥°¤À¤«¤é¡É½ÐÎÏÍúÎò¤òµ²±¤·¤Æ¤ª¤¯¤¿¤á¤Ë¥¹¥é¥¤¥ÉÁ뤬ɬÍפȤʤê¤Þ¤¹¡£
¤Ç¤Ï¡¢½ÐÎϤò¥¹¥È¥ê¡¼¥ß¥ó¥°¤Ë¤¹¤ëɬÍפϤ¢¤ë¤Î¤Ç¤·¤ç¤¦¤«¡©
Ëͤ¬ºî¤Ã¤¿P/ECE¡õZlib»ÈÍÑ¤Î¥×¥í¥°¥é¥à¤Ç¡¢½ÐÎÏ¥¹¥È¥ê¡¼¥ß¥ó¥°¤ò³èÍѤ·¤¿¥±¡¼¥¹¤Ï¤¿¤Ã¤¿°ìÅÙ¤À¤±¤Ç¤·¤¿¡£
¡ÖVGM¥×¥ì¥¤¥ä¡¼¡×¤Ç¤¹¡£
VGM¥×¥ì¥¤¥ä¡¼¤Ç¤Ï¡¢VGZ·Á¼°¤Ç°µ½Ì¤µ¤ì¤¿±éÁեǡ¼¥¿¤ò¾¯¤·¤Å¤ÄŸ³«¤·¤Ê¤¬¤é±éÁÕ½èÍý¤ò¹Ô¤¤¤Þ¤·¤¿¡£
¤·¤«¤·¤³¤ì¤È¤ÆÁ´Å¸³«¥Ç¡¼¥¿¤Ï½¼Ê¬P/ECE¤Î¥á¥â¥ê¤Ë¼ý¤Þ¤ëÄøÅ٤Υµ¥¤¥º¤Ç¡¢¤à¤·¤íºî¶ÈÍÑ¥á¥â¥ê¤ÎÊý¤¬Â礤¤¤°¤é¤¤¤Ç¤¹¡£
¤Ä¤Þ¤ê¡¢P/ECE¾å¤ÇZlib¤Î½ÐÎÏ¥¹¥È¥ê¡¼¥ß¥ó¥°¤¬É¬ÍפȤʤ륱¡¼¥¹¤Ï¤Ê¤«¤Ã¤¿¡¢¤È¸À¤¨¤Þ¤¹¡£
¤è¤êÂ礤ʰµ½Ì¡¦Å¸³«¥Ç¡¼¥¿¤ò°·¤¦¡¢PC¾å¤Î¥×¥í¥°¥é¥à¤Ç¤Ï¤¤¤¯¤Ö¤ó»ö¾ð¤âÊѤï¤Ã¤Æ¤¯¤ë¤Î¤Ç¤·¤ç¤¦¤¬¡¢
¾¯¤Ê¤¯¤È¤â¥²¡¼¥à¥×¥í¥°¥é¥à¤Ë¤ª¤¤¤Æ¤ÏÁ´¥Ç¡¼¥¿¤ò¥ª¥ó¥á¥â¥ê¤ËŸ³«¤¹¤ë¥±¡¼¥¹¤¬ÂçÉôʬ¤Ê¤Î¤Ç¤Ï¤Ê¤¤¤«¤È»×¤¤¤Þ¤¹¡£
¤½¤ó¤Ê¤ï¤±¤Ç¡¢¤É¤¦¤ä¤éZlib¤Î½ÐÎÏ¥¹¥È¥ê¡¼¥ß¥ó¥°¤ÏËͤˤÏɬÍפʤ¤¤è¤¦¤Ç¤¹¡£
Zlib¤Î½ÐÎÏ¥¹¥È¥ê¡¼¥ß¥ó¥°¤ò¤È¤ê¤ä¤á¤Æ¡¢ºî¶ÈÍÑ¥á¥â¥ê¤ÎɬÍ×Î̤ò¸º¤é¤¹¤³¤È¤Ë¤·¤Þ¤·¤¿¡£
¤µ¤Ã¤½¤¯Zlib¤Î¥½¡¼¥¹²þ¤¤Ë¤È¤ê¤«¤«¤Ã¤¿¤Î¤Ç¤¹¤¬¡¦¡¦¡¦Æñ²ò¤Ç¤¹(^^;
ZlibŸ³«¤Î¼ê½ç¤Ï¡¢¤µ¤Û¤ÉÊ£»¨¤Ê¤â¤Î¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£
ËܲȡÖThe gzip home page(http://www.gzip.org/)¡×¤µ¤ó¤Î¥µ¥¤¥È¤Î¡¢Zlib Home Site(http://www.gzip.org/zlib/)¡×
¢ª¡Özlib Documentation(http://www.gzip.org/zlib/zlib_docs.html)¡×¤Î¥Ú¡¼¥¸¤«¤é¡¢Zlib¤Î»ÅÍͽñ¤¬Æþ¼ê¤Ç¤¤Þ¤¹¡£
¥Ï¥Õ¥Þ¥óÌÚºîÀ®¤Î¤È¤³¤í¤¬Â¿¾¯¥È¥ê¥Ã¥¡¼¤Ç¤¹¤±¤ì¤É¡¢¤½¤ì°Ê³°¤Ï²ò¤ê°×¤¯¤Æ¥·¥ó¥×¥ë¤Ê»ÅÍͤǤ¹¡£
¤Ë¤â´Ø¤ï¤é¤ºZlib¤Î¥½¡¼¥¹¤¬Æñ²ò¤Ê¤Î¤Ï¡¢°Ü¿¢À¤È¹â®²½¤Î¤¿¤á¡¢¥×¥í¥°¥é¥à¤¬Ê£»¨²½¤·¤Æ¤¤¤ë¤Î¤¬¸¶°ø¤Î¤è¤¦¤Ç¤¹¡£
ÆÃ¤Ë¥Ï¥Õ¥Þ¥óÉü¹æ½èÍý¤Î¹â®²½¤Ë´Ø¤·¤Æ¤ÏÁêÅö¤ËÎϤ¬Æþ¤Ã¤Æ¤¤¤ë¤è¤¦¤Ç¡¢¥½¡¼¥¹Á´ÂΤΤ«¤Ê¤ê¤ÎÉôʬ¤òÀê¤á¤Æ¤¤¤Þ¤¹¡£
¤³¤ì¤é¤ÎÊ£»¨¤Ê¥ë¡¼¥Á¥ó¤Ë±Æ¶Á¤òÍ¿¤¨¤Ê¤¤¤è¤¦¡¢½ÐÎÏ¥¹¥È¥ê¡¼¥ß¥ó¥°¤À¤±¤ò¼è¤ê¤ä¤á¤ë¤Î¤Ï¡¢¤Á¤ç¤Ã¤È´í¸±¤Ê´¶¤¸¤Ç¤¹¡£
¤½¤³¤Çº£²ó¤Ï¡¢Zlib¤Î¥½¡¼¥¹¤ò²þ¤¤¹¤ë¤Î¤Ç¤Ï¤Ê¤¯¡¢¼«Á°¤ÇºÆ¼ÂÁõ¤·¤Æ¤ß¤ë¤³¤È¤Ë¤·¤Þ¤·¤¿¡£
¤Ç¤¤¢¤¬¤Ã¤¿¤Î¤¬¤³¤Á¤é¤Ç¤¹¡£
http://www.piece-me.org/archive/pzltest-20040313-piece.zip
http://www.piece-me.org/archive/pzltest-20040313-win32.zip
(¥Õ¥¡¥¤¥ëÆâÍÆ¤Ï¡¢README.TXT¤ò¤´Í÷²¼¤µ¤¤¡£¾ÜºÙ¤Ï¼¡²ó¤Ë¡£)
¢¨2004/03/14Äɵ: ¥Ð¥°½¤Àµ¤ª¤è¤ÓºÆÄ´À°¤·¤Þ¤·¤¿¡£
¡¡¤³¤Îµ»ö¤Î¤¤¤Á¤Ð¤óºÇ¸å¤Ë¡¢¹¹¿·ÈǤÎURL¤¬¤¢¤ê¤Þ¤¹¡£
P/ECEÍѤÈWindowsÍѤΥƥ¹¥È¥×¥í¥°¥é¥à¤òÍѰդ·¤Æ¤ß¤Þ¤·¤¿¡£
¤¤¤º¤ì¤âZlib°µ½Ì¤µ¤ì¤¿²èÁü¥Õ¥¡¥¤¥ë¤òŸ³«¤·¡¢²èÌÌɽ¼¨¤¹¤ë¥Æ¥¹¥È¥×¥í¥°¥é¥à¤Ç¤¹¡£
¥Æ¥¹¥È¥×¥í¥°¥é¥à¤ÏP/ECEÍѤÈWindowsÍѤÇÊÌ¡¹¤Ç¤¹¤¬¡¢ZlibŸ³«¥ë¡¼¥Á¥ó¤Î¥½¡¼¥¹¤Ï¤Û¤Ü¶¦Ä̤ȤʤäƤ¤¤Þ¤¹¡£
½ÐÎÏ¥¹¥È¥ê¡¼¥ß¥ó¥°¤ò¼è¤ê¤ä¤á¤¿¤Î¤Ç¡¢¥¹¥é¥¤¥ÉÁ뤬ÉÔÍפȤʤꡢºî¶ÈÍÑ¥á¥â¥ê¤Ï8¥¥í¥Ð¥¤¥ÈÄøÅ٤˸º¤ê¤Þ¤·¤¿¡£
¤â¤Ã¤È¸º¤é¤·¤Æ¤âÂç¾æÉפ½¤¦¤Ê¤Î¤Ç¤¹¤¬¡¢¤½¤ì¤Ïº£¸å¤ÎÄ´À°²ÝÂê¤Ç¤¹¡£
¥ª¥ê¥¸¥Ê¥ë¤ÎZlib¤È°Û¤Ê¤ê¡¢°Ü¿¢À¡¦¹â®²½¤Ë´Ø¤¹¤ëÉôʬ¤Ï¥Ð¥Ã¥µ¥ê¤Ç¤¹¡£
°Ü¿¢À¤Ë´Ø¤·¤Æ¤Ï¡¢ËͤÏÅöÌÌP/ECE¡¢Windows¡¢¤¢¤ÈPCÍѤÎLinux¤°¤é¤¤¤Çư¤±¤Ð½¼Ê¬¤Ê¤Î¤Ç¡¢¤Û¤È¤ó¤É²¿¤â¹Í¤¨¤Æ¤¤¤Þ¤»¤ó¡£
32¥Ó¥Ã¥È´Ä¶¤Ç¡¢¥Ð¥¤¥È¥ª¡¼¥À¡¼¤â¥ê¥È¥ë¥¨¥ó¥Ç¥£¥¢¥ó¤Ë·è¤áÂǤÁ¤Ç¤¹¡£
¹â®²½¤âÁ´¤¯¹Ô¤Ã¤Æ¤¤¤Þ¤»¤ó¤¬¡¢P/ECE¤Ç°·¤¦ÄøÅ٤Υǡ¼¥¿¥µ¥¤¥º¤Ê¤é¤Ð¡¢¤¢¤Þ¤ê°ã¤¤¤Ï´¶¤¸¤é¤ì¤Ê¤¤¤Ï¤º¤Ç¤¹¡£
Âç¤Þ¤«¤Ë¸À¤Ã¤Æ¡¢1ÉÃÅö¤ê10¡Á15¥¥í¥Ð¥¤¥È¤°¤é¤¤¤ÎŸ³«Â®ÅÙ¤À¤È»×¤¤¤Þ¤¹¡£
ŰÄìŪ¤Ë´ÊÁDz½¤·¤¿¤Î¤Ç¡¢¥×¥í¥°¥é¥à¥µ¥¤¥º¤Ï¥Ø¥Ã¥À¤È¥½¡¼¥¹¹ç¤ï¤»¤Æ1000¹ÔÄøÅ٤˾®¤µ¤¯¤Ê¤ê¤Þ¤·¤¿¡£
¥ª¥ê¥¸¥Ê¥ë¤ÎZlib¤â¡¢¤â¤È¤â¤È¤Ï¤³¤ì¤°¤é¤¤´ÊÁǤÀ¤Ã¤¿¤È»×¤¦¤Î¤Ç¤¹¡£
Ť¯»È¤ï¤ì¤Æ¤¤¤í¤¤¤í¤Ê´Ä¶¤Ë°Ü¿¢¤µ¤ì¡¢¤Þ¤¿¶¯ÎϤ˹⮲½¤µ¤ì¤¿·ë²Ì¡¢¸½ºß¤Î¤è¤¦¤ËÊ£»¨¤Ê¼ÂÁõ¤Ë¤Ê¤Ã¤¿¤Î¤Ç¤·¤ç¤¦¡£
º£²ó¼ÂÁõ¤·¤¿Zlib¥ë¡¼¥Á¥ó¤Ï¡¢¸À¤ï¤ÐÀèÁÄ´Ô¤ê¤Î¤è¤¦¤Ê¤â¤Î¤Ç¤¹¡£
P/ECE¤°¤é¤¤¤Îµ¬ÌϤδĶ¤Ë¤Ï¡¢¤³¤ì¤°¤é¤¤´ÊÁǤʼÂÁõ¤Ç½¼Ê¬¤Ê¤Î¤Ç¤Ï¤Ê¤¤¤«¤Ê¤¡¡¢¤È»×¤¤¤Þ¤·¤¿¡£
¡¦¡¦¡¦¤È¡¢¼ÂÁõ¤·¤Æ¤ß¤Æ¤«¤éP/ECE¥«¡¼¥Í¥ë¥½¡¼¥¹¤ÎŸ³«¥ë¡¼¥Á¥ó¤òÆÉ¤ßÊÖ¤¹¤È¡¢¿Þ¤é¤º¤â»÷¤¿´¶¤¸¤Ë¤Ê¤Ã¤Æ¤Þ¤¹¤Í¡£
¹Í¤¨¤ë¤³¤È¤ÏƱ¤¸¤Ç¤¹¤Í¤§(^^;
¡Ê³¤¤Þ¤¹¡Ä¡Ë
----------------------------------------------------------------------------------------------------
2004/03/14Äɵ:
¡¦¥Ð¥°½¤Àµ¤·¤Þ¤·¤¿¡£
¡¡Â礤ʰµ½Ì¥Ç¡¼¥¿¤òŸ³«¤¹¤ë¤È¡¢Å¸³«½èÍý¤Ë¼ºÇÔ¤·¤Æ¤·¤Þ¤Ã¤Æ¤¤¤¿¥Ð¥°¤ò½¤Àµ¤·¤Þ¤·¤¿¡£
¡¦ºî¶ÈÍÑ¥á¥â¥ê¥µ¥¤¥º¤òÄ´À°¤·¤Þ¤·¤¿¡£
¡¡ºòÆü¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ï¡¢¥Ï¥Õ¥Þ¥óÌÚºîÀ®¤Î¤¿¤á¤Ë8¥¥í¥Ð¥¤¥È¤Îºî¶ÈÍÑ¥á¥â¥ê¤ò³ÎÊݤ·¤Æ¤¤¤Þ¤·¤¿¡£
¡¡¤¤¤¯¤Ä¤«¤Î°µ½Ì¥Ç¡¼¥¿¤ò»î¤·¤Æ¤ß¤¿¤È¤³¤í¡¢¼ÂºÝ¤Ë»È¤ï¤ì¤Æ¤¤¤ë¤Î¤Ï¤½¤Î1/6ÄøÅ٤Ǥ·¤¿¡£
¡¡¤Á¤ç¤Ã¤È;͵¤¬¤¢¤ê¤¹¤®¤ë¤Î¤Ç¡¢ºî¶ÈÍÑ¥á¥â¥ê¤òȾʬ¤Î4¥¥í¥Ð¥¤¥È¤Ë¸º¤é¤·¤Æ¤ß¤Þ¤·¤¿¡£
¡¡¤Þ¤À3ÇÜÄøÅÙ¤Î;͵¤¬¤¢¤ê¤Þ¤¹¤«¤é¡¢¤¿¤Ö¤óÂç¾æÉפÀ¤È¤Ï»×¤¤¤Þ¤¹¤¬¡¢¤Á¤ç¤Ã¤ÈÃí°Õ¤¬É¬ÍפǤ¹¡£
¡¡¥ª¥ê¥¸¥Ê¥ë¤ÎZlib¤Ç¤â¡¢¥Ï¥Õ¥Þ¥óÌÚºîÀ®¤Î¤¿¤á¤Îºî¶ÈÍÑ¥á¥â¥ê¥µ¥¤¥º¤Ï¡¢¼Â¸³¤Ç·è¤á¤Æ¤¤¤ë¤è¤¦¤Ç¤¹¡£
¡¡ºî¶ÈÍÑ¥á¥â¥ê¤ÎºÇÂçɬÍ×¥µ¥¤¥º¤Ï¡¢ÍýÏÀ¤Çµá¤á¤é¤ì¤Ê¤¤¤ß¤¿¤¤¤Ç¤¹¡£
¥À¥¦¥ó¥í¡¼¥É¤Ï¤³¤Á¤é¡§
http://www.piece-me.org/archive/pzltest-20040314-piece.zip
http://www.piece-me.org/archive/pzltest-20040314-win32.zip
----------------------------------------------------------------------------------------------------
* Tue Dec 23 08:00:00 JST 2003 Naoyuki Sawa
- ¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¤Î¸íưºî#4
¡ÊÁ°²ó¤«¤é¤Î³¤¡Ä¡Ë
°ú¤Â³¤¡¢¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¤ÎľÁ°¤Ë¥á¥â¥ê¥¢¥¯¥»¥¹Ì¿Îá¤òÃÖ¤¤¤¿¾ì¹ç¤Î¡¢¸íưºî¤ÎÍ̵¤ò¼Â¸³¤·¤Þ¤¹¡£
Á°¡¹²ó¤Ï¡Öjp.d %rb¡×¡¢Á°²ó¤Ï¡Öcall.d %rb¡×¡Öret.d¡×¤Ë¤Ä¤¤¤ÆÄ´¤Ù¤Þ¤·¤¿¡£
º£²ó¤Ï¡¢»Ä¤ê¤Î¡Öjp.d sign8¡×¡Öjr.d sign8¡×¡Öcall.d sign8¡×¤Ë¤Ä¤¤¤ÆÄ´¤Ù¤Þ¤¹¡£
¡¡¡¡¡¡¡¡¡û¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá
¡¡¡¡¡¡¡¡ 1. jp.d sign8
¡¡¡¡¡¡¡¡ 2. jr.d sign8
¡¡¡¡¡¡¡¡ 3. call.d sign8
¡¡¡¡¡¡¡¡¡û¥á¥â¥ê¥¢¥¯¥»¥¹Ì¿Îá
¡¡¡¡¡¡¡¡ 1. ld.b [%rb], %rs
¡¡¡¡¡¡¡¡ 2. ld.ub [%rb], %rs
¡¡¡¡¡¡¡¡ 3. ld.h [%rb], %rs
¡¡¡¡¡¡¡¡ 4. ld.uh [%rb], %rs
¡¡¡¡¡¡¡¡ 5. ld.w [%rb], %rs
¡¡¡¡¡¡¡¡ 6. ld.b %rd, [%rb]
¡¡¡¡¡¡¡¡ 7. ld.h %rd, [%rb]
¡¡¡¡¡¡¡¡ 8. ld.w %rd, [%rb]
¡¡¡¡¡¡¡¡¡ûʬ´ô¸µ¡¦Ê¬´ôÀè
¡¡¡¡¡¡¡¡ 1. ¹â®RAM
¡¡¡¡¡¡¡¡ 2. SRAM
¡¡¡¡¡¡¡¡¡û¥á¥â¥ê¥¢¥¯¥»¥¹Àè
¡¡¡¡¡¡¡¡ 1. ¹â®RAM
¡¡¡¡¡¡¡¡ 2. SRAM
Á°²ó¤Þ¤Ç¤È°Û¤Ê¤ê¡¢Ê¬´ô¸µ¤Èʬ´ôÀè¤Î¥á¥â¥ê¤Î¼ïÎब°ã¤¦¥Ñ¥¿¡¼¥ó¤Ë¤Ä¤¤¤Æ¤Ï¼Â¸³¤·¤Æ¤¤¤Þ¤»¤ó¡£
¡Öjp.d sign8¡×¡Öjr.d sign8¡×¡Öcall.d sign8¡×¤ÏÁ°¸å256¥Ð¥¤¥È¤Þ¤Ç¤ÎÈϰϤˤ·¤«Ê¬´ô¤Ç¤¤Ê¤¤¤¿¤á¡¢
¹â®RAM(0x0000¡Á0x1fff)¤«¤éSRAM(0x100000¡Á0x13ffff)¤Ø¡¢¤¢¤ë¤¤¤ÏSRAM¤«¤é¹â®RAM¤Ø¤Ï¡¢±ó¤¹¤®¤ÆÊ¬´ô¤Ç¤¤Ê¤¤¤«¤é¤Ç¤¹¡£
¡Ê¡Öext¡×Ì¿Îá¤ÈÁȤ߹ç¤ï¤»¤ì¤ÐÁ°¸å256¥Ð¥¤¥È°Ê¾å¤ÎÈϰϤËʬ´ô¤Ç¤¤Þ¤¹¤¬¡¢¥á¥â¥ê¥¢¥¯¥»¥¹Ì¿Îá¤È¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¤Î´Ö¤Ë¡Öext¡×Ì¿Î᤬Æþ¤ê¤Þ¤¹¡£
¡¡¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¤ÎľÁ°¤Ë¥á¥â¥ê¥¢¥¯¥»¥¹Ì¿Î᤬¤¢¤ë¾õ¶·¤À¤±¤ò¥Æ¥¹¥È¤·¤Æ¤¤¤ë¤Î¤Ç¡¢¡Öext¡×Ì¿Îá¤ò¶´¤à¥±¡¼¥¹¤Ïº£²ó¤Ï½ü³°¤¹¤ë¤³¤È¤Ë¤·¤Þ¤·¤¿¡£¡Ë
¸¡¾ÚÍÑ¥×¥í¥°¥é¥à¤Ï¤³¤Á¤é¡§
¡¡¡¡¡¡¡¡¡Öjp.d sign8¡×¡¡¡¡¡¡ http://www.piece-me.org/archive/delyerr4-20031223.zip
¡¡¡¡¡¡¡¡¡Öjr.d sign8¡× http://www.piece-me.org/archive/delyerr5-20031223.zip
¡¡¡¡¡¡¡¡¡Öcall.d sign8¡×¡¡¡¡ http://www.piece-me.org/archive/delyerr6-20031223.zip
¸¡¾ÚÍÑ¥×¥í¥°¥é¥à¤Î·ë²Ì½ÐÎÏ¥Õ¥¡¥¤¥ë(À¸¤ÎCSV·Á¼°)¤Ï¤³¤Á¤é¡§
¡¡¡¡¡¡¡¡¡Öjp.d sign8¡×¡¡¡¡¡¡ http://www.piece-me.org/piece-lab/delyerr4-20031223-result.csv
¡¡¡¡¡¡¡¡¡Öjr.d sign8¡× http://www.piece-me.org/piece-lab/delyerr5-20031223-result.csv
¡¡¡¡¡¡¡¡¡Öcall.d sign8¡×¡¡¡¡ http://www.piece-me.org/piece-lab/delyerr6-20031223-result.csv
½ÐÎÏ·ë²Ì¥Õ¥¡¥¤¥ë¤òÆÉ¤ß¤ä¤¹¤¤¤è¤¦¤Ë²Ã¹©¤·¤Æ¤ß¤¿¤Î¤¬¤³¤Á¤é¡§
¡¡¡¡¡¡¡¡¡Öjp.d sign8¡×¡¡¡¡¡¡ http://www.piece-me.org/piece-lab/delyerr4-20031223-kekka.csv
¡¡¡¡¡¡¡¡¡Öjr.d sign8¡× http://www.piece-me.org/piece-lab/delyerr5-20031223-kekka.csv
¡¡¡¡¡¡¡¡¡Öcall.d sign8¡×¡¡¡¡ http://www.piece-me.org/piece-lab/delyerr6-20031223-kekka.csv
·ë²Ì¡¢
¡¡¡¡¡¡¡¡--------------------------------
¡¡¡¡¡¡¡¡Á´¤Æ¤ÎÁȤ߹ç¤ï¤»¤Ç¡¢¸íưºî̵¤·¡ª
¡¡¡¡¡¡¡¡--------------------------------
¡Öjp.d sign8¡×¡Öjr.d sign8¡×¡Öcall.d sign8¡×¤Ï¤¤¤º¤ì¤âÈó¾ï¤Ë»ÈÍÑÉÑÅ٤ι⤤¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¤Ç¡¢¤³¤ì¤Þ¤Ç¤Ë¤â¿ÍѤ·¤Æ¤¤¤Þ¤¹¡£
¤³¤ì¤Þ¤Ç¤Î»ÈÍѤˤª¤¤¤ÆÆÃ¤ËÌäÂê¤ÏȯÀ¸¤·¤Æ¤¤¤Ê¤«¤Ã¤¿¤Î¤Ç¡¢¸íưºî¾ò·ï¤¬Â¸ºß¤·¤Ê¤¤¤Î¤âͽÁÛÄ̤ê¤Ç¤·¤¿¡£
--------------------------------------------------------------------------------------------------
°Ê¾å¡¢»Í²ó¤ËÅϤäơ¢¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¤Î¸íưºî¾ò·ï¤òÄ´¤Ù¤Æ¤¤Þ¤·¤¿¡£
¤Þ¤ÀÁ´¤Æ¤Î¥á¥â¥ê¥¢¥¯¥»¥¹Ì¿Îá¤äÁ´¤Æ¤Î¾ò·ï¤ÎÁȤ߹ç¤ï¤»¤ò»î¤·¤¿¤ï¤±¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¤¬¡¢¤È¤ê¤¢¤¨¤º¤³¤³¤ÇÁí³ç¤·¤Æ¤ß¤Þ¤¹¡£
·ë¶É¡¢¥Þ¥Ë¥å¥¢¥ë¤ËµºÜ¤µ¤ì¤Æ¤¤¤Ê¤¤¸íưºî¾ò·ï¤¬Â¸ºß¤¹¤ë¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¤Ï¡¢¡Öjp.d %rb¡×¤À¤±¤Ç¤·¤¿¡£
¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¤ò»È¤Ã¤Æ¥×¥í¥°¥é¥à¤òºÇŬ²½¤¹¤ë¾ì¹ç¤Ë¡¢Ãí°Õ¤·¤Ê¤±¤ì¤Ð¤¤¤±¤Ê¤¤¥ë¡¼¥ë¤Ï¼¡¤ÎÄ̤ê¤Ç¤¹¡§
¡¡¡¡¡¡¡¡¡Ø¡Öjp.d %rb¡×Ì¿Îá¤ÎľÁ°¤Ë¥á¥â¥ê¥¢¥¯¥»¥¹Ì¿Îá¤òÃÖ¤¤¤Æ¤Ï¤¤¤±¤Ê¤¤¡Ù
¤È¤ê¤¢¤¨¤º¤³¤Î¥ë¡¼¥ë¤Ë½¾¤Ã¤Æ¤ª¤±¤Ð¡¢¸íưºî¤¹¤ë¤³¤È¤Ï¤Ê¤¤¤È»×¤¤¤Þ¤¹¡£
¤è¤ê¾Ü¤·¤¤¸íưºî¾ò·ï¤Ë¤Ä¤¤¤Æ¤Ï¡¢Á°¡¹²ó¤Î¸¦µæµÏ¿¡Ø¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¤Î¸íưºî#2¡Ù¤ò¤´»²¾È¤¯¤À¤µ¤¤¡£
¤³¤Î¥ë¡¼¥ë¡¢S1C33209 CPU¤Î¥Þ¥Ë¥å¥¢¥ë¤Ë¤ÏºÜ¤Ã¤Æ¤¤¤Þ¤»¤ó¡£
¥Þ¥Ë¥å¥¢¥ë¤ÎµºÜϳ¤ì¤«¡¢¤¢¤ë¤¤¤ÏÁÛÄê³°¤Î¸íưºî¤Ê¤Î¤«¡¦¡¦¡¦¤¤¤º¤ì¤Ë¤»¤è¡¢´í¸±ÅÙ¡ÖÂç¡×¤Ç¤¹¡£
* Mon Dec 22 22:00:00 JST 2003 Naoyuki Sawa
- ¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¤Î¸íưºî#3
¡ÊÁ°²ó¤«¤é¤Î³¤¡Ä¡Ë
Á°²ó¤Ï¡¢¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¡Öjp.d %rb¡×¤ÎľÁ°¤Ë¥á¥â¥ê¥¢¥¯¥»¥¹Ì¿Îá¤òÃÖ¤¤¤¿¾ì¹ç¤Î¡¢¸íưºî¤ÎÍ̵¤ò¼Â¸³¤·¤Þ¤·¤¿¡£
¤½¤Î·ë²Ì¡¢¤¤¤¯¤Ä¤«¤ÎÁȤ߹ç¤ï¤»¤Ç¸íưºî¤¹¤ë¤³¤È¤¬¤ï¤«¤ê¡¢
¡Ø¡Öjp.d %rb¡×Ì¿Îá¤ÎľÁ°¤Ë¥á¥â¥ê¥¢¥¯¥»¥¹Ì¿Îá¤òÃÖ¤¤¤Æ¤Ï¤¤¤±¤Ê¤¤¡Ù
¤È¤¤¤¦·ëÏÀ¤¬ÆÀ¤é¤ì¤Þ¤·¤¿¡£
º£²ó¤Ï¡¢¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¡Öcall.d %rb¡×¤È¡Öret.d¡×¤Ë¤Ä¤¤¤Æ¡¢Æ±Íͤ˼¸³¤·¤Æ¤ß¤ë¤³¤È¤Ë¤·¤Þ¤¹¡£
Á°²ó¼Â¸³¤·¤¿¡Öjp.d %rb¡×Ì¿Îá¡¢¼Â¤Ï¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¤ÎÃæ¤Ç¤Ï¤¤¤Á¤Ð¤ó»ÈÍÑÉÑÅÙ¤¬Ä㤤¤Ç¤¹¡£
¡Öjp %rb¡×¤ò»È¤¦¾ìÌ̤ϥơ¼¥Ö¥ë¥¸¥ã¥ó¥×½èÍý¤°¤é¤¤¤·¤«¤Ê¤¯¡¢C¸À¸ì¤Ç¤Ïswitchʸ¤ËÁêÅö¤·¤Þ¤¹¡£
switchʸ¤Î¼Â¹ÔÀǽ¤¬¥×¥í¥°¥é¥àÁ´ÂΤÎÀǽ¤ËÂ礤¯±Æ¶Á¤¹¤ë¤è¤¦¤Ê¥±¡¼¥¹¤Ï¡¢Èæ³ÓŪ¾¯¤Ê¤¤¤È»×¤¤¤Þ¤¹¡£
½¾¤Ã¤Æ¡¢¡Öjp %rb¡×¤ò¡Öjp.d %rb¡×¤ËÃÖ¤´¹¤¨¤Æ¤Þ¤Ç½èÍý®ÅÙ¤ò²Ô¤°¤è¤¦¤Ê¾ìÌ̤⡢¤¢¤Þ¤ê¤Ê¤¤¤È»×¤¦¤«¤é¤Ç¤¹¡£
¡Öjp.d %rb¡×¤Ë³Ó¤Ù¤Æ¡¢¡Öcall.d %rb¡×¤È¡Öret.d¡×¤Î»ÈÍÑÉÑÅ٤ϤϤ뤫¤Ë¹â¤¤¤Ç¤¹¡£
¡Öcall.d %rb¡×¤Ï´Ø¿ô¥Ý¥¤¥ó¥¿¸Æ¤Ó½Ð¤·¤Ë¸Â¤é¤º¡¢ÉÑÈˤ˻Ȥ¦´Ø¿ô¤Î¥¢¥É¥ì¥¹¤ò¥ì¥¸¥¹¥¿¤ËÊÝ»ý¤¹¤ë¤è¤¦¤Ê¥±¡¼¥¹¤ÇÉѽФ·¤Þ¤¹¡£
¡Öret.d¡×¤Ï¡¦¡¦¡¦¼Â¤ÏËͤϤ¢¤Þ¤ê»È¤Ã¤Æ¤¤¤Ê¤¤¤Î¤Ç¤¹¤¬¡¢EPSON¼Ò½ãÀµ¥é¥¤¥Ö¥é¥ê¤Î½ü»»¥ë¡¼¥Á¥ó¤¬¤³¤ì¤ò͸ú³èÍѤ·¤Æ¤¤¤Þ¤¹¡£
°ÊÁ°¤Î¸¦µæµÏ¿¡Ø¼Â¤Ï¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¡Ù¤Î²ó¤ò¤´»²¾È¤¯¤À¤µ¤¤¡£
¤È¤¤¤¦¤ï¤±¤Ç¡¢¡Öcall.d %rb¡×¡Öret.d¡×¤ÎľÁ°¤Ë¥á¥â¥ê¥¢¥¯¥»¥¹Ì¿Îá¤òÃÖ¤¤¤¿¾ì¹ç¤Î¡¢¸íưºî¤ÎÍ̵¤ò¼Â¸³¤·¤Æ¤ß¤Þ¤·¤¿¡£
¡¡¡¡¡¡¡¡¡û¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá
¡¡¡¡¡¡¡¡ 1. call.d %rb
¡¡¡¡¡¡¡¡ 2. ret.d
¡¡¡¡¡¡¡¡¡û¥á¥â¥ê¥¢¥¯¥»¥¹Ì¿Îá
¡¡¡¡¡¡¡¡ 1. ld.b [%rb], %rs
¡¡¡¡¡¡¡¡ 2. ld.ub [%rb], %rs
¡¡¡¡¡¡¡¡ 3. ld.h [%rb], %rs
¡¡¡¡¡¡¡¡ 4. ld.uh [%rb], %rs
¡¡¡¡¡¡¡¡ 5. ld.w [%rb], %rs
¡¡¡¡¡¡¡¡ 6. ld.b %rd, [%rb]
¡¡¡¡¡¡¡¡ 7. ld.h %rd, [%rb]
¡¡¡¡¡¡¡¡ 8. ld.w %rd, [%rb]
¡¡¡¡¡¡¡¡¡ûʬ´ô¸µ
¡¡¡¡¡¡¡¡ 1. ¹â®RAM
¡¡¡¡¡¡¡¡ 2. SRAM
¡¡¡¡¡¡¡¡¡ûʬ´ôÀè
¡¡¡¡¡¡¡¡ 1. ¹â®RAM
¡¡¡¡¡¡¡¡ 2. SRAM
¡¡¡¡¡¡¡¡¡û¥á¥â¥ê¥¢¥¯¥»¥¹Àè
¡¡¡¡¡¡¡¡ 1. ¹â®RAM
¡¡¡¡¡¡¡¡ 2. SRAM
¸¡¾ÚÍÑ¥×¥í¥°¥é¥à¤Ï¤³¤Á¤é¡§
¡¡¡¡¡¡¡¡¡Öcall.d %rb¡× http://www.piece-me.org/archive/delyerr2-20031222.zip
¡¡¡¡¡¡¡¡¡Öret.d¡×¡¡¡¡¡¡http://www.piece-me.org/archive/delyerr3-20031222.zip
¸¡¾ÚÍÑ¥×¥í¥°¥é¥à¤Î·ë²Ì½ÐÎÏ¥Õ¥¡¥¤¥ë(À¸¤ÎCSV·Á¼°)¤Ï¤³¤Á¤é¡§
¡¡¡¡¡¡¡¡¡Öcall.d %rb¡× http://www.piece-me.org/piece-lab/delyerr2-20031222-result.csv
¡¡¡¡¡¡¡¡¡Öret.d¡×¡¡¡¡¡¡http://www.piece-me.org/piece-lab/delyerr3-20031222-result.csv
½ÐÎÏ·ë²Ì¥Õ¥¡¥¤¥ë¤òÆÉ¤ß¤ä¤¹¤¤¤è¤¦¤Ë²Ã¹©¤·¤Æ¤ß¤¿¤Î¤¬¤³¤Á¤é¡§
¡¡¡¡¡¡¡¡¡Öcall.d %rb¡× http://www.piece-me.org/piece-lab/delyerr2-20031222-kekka.csv
¡¡¡¡¡¡¡¡¡Öret.d¡×¡¡¡¡¡¡http://www.piece-me.org/piece-lab/delyerr3-20031222-kekka.csv
·ë²Ì¡¢
¡¡¡¡¡¡¡¡--------------------------------
¡¡¡¡¡¡¡¡Á´¤Æ¤ÎÁȤ߹ç¤ï¤»¤Ç¡¢¸íưºî̵¤·¡ª
¡¡¡¡¡¡¡¡--------------------------------
¡Ê¤Þ¤À¥á¥â¥ê¥¢¥¯¥»¥¹Ì¿Îá¡Öpushn %rs¡×¡Öpopn %rd¡×¤È¤ÎÁȤ߹ç¤ï¤»¤ò»î¤·¤Æ¤¤¤Þ¤»¤¬¡¢Â¿Ê¬Âç¾æÉפ¸¤ã¤Ê¤¤¤«¤Ê¡©¤È»×¤¤¤Þ¤¹¡£¡Ë
¤³¤ì¤Ï½õ¤«¤ê¤Þ¤·¤¿¡ª
Á°½Ò¤ÎÄ̤ꡢ¼êºî¶È¤ÇºÇŬ²½¤ò¹Ô¤¦¾ì¹ç¤Ë¡Öcall.d %rb¡×¡Öret.d¡×¤ò»È¤¦¥±¡¼¥¹¤Ï¡¢¡Öjp.d %rb¡×¤è¤ê¤â¤º¤Ã¤È¿¤¤¤Ç¤¹¡£
¡Öcall.d %rb¡×¤È¡Öret.d¡×¤Ë¸íưºî¾ò·ï¤¬¤¢¤Ã¤¿¤é¡¢¤«¤Ê¤ê¥ä¥Ð¥¤¤³¤È¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤È¤³¤í¤Ç¤·¤¿¡£
¡¡¡¡¡¡¡¡¡Ø¡Öcall.d %rb¡×¡Öret.d¡×¤Î»ÈÍѤˤª¤¤¤Æ¤Ï¡¢»ÅÍͳ°¤Î¸íưºî¤ò¿´ÇÛ¤¹¤ëɬÍפϤ¢¤ê¤Þ¤»¤ó¡Ù
¤µ¤Æ¡¢»Ä¤ë¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¤Ï¡Öjp.d sign8¡×¡Öjr.d sign8¡×¡Öcall.d sign8¡×¤Ç¤¹¡£
¤³¤ì¤é¤ÎÌ¿Îá¤âÈó¾ï¤Ë»ÈÍÑÉÑÅÙ¤¬¹â¤¤¤Ç¤¹¤¬¡¢¤³¤ì¤Þ¤Ç¤Ë¤µ¤ó¤¶¤ó»È¤Ã¤ÆÆÃ¤ËÌäÂ꤬½Ð¤Æ¤¤¤Ê¤¤¤Î¤Ç¡¢Â¿Ê¬Âç¾æÉפÀ¤È»×¤¤¤Þ¤¹¡£
¼¡²ó¡¢¼Â¸³Í½Äê¤Ç¤¹¡£
(³¤¤Þ¤¹¡Ä)
* Sat Dec 20 12:00:00 JST 2003 Naoyuki Sawa
- ¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¤Î¸íưºî#2
¡ÊÁ°²ó¤«¤é¤Î³¤¡Ä¡Ë
²¿Ä̤꤫¤Î¥Ñ¥¿¡¼¥ó¤Ç¸¡¾Ú¤ò¹Ô¤Ã¤Æ¤ß¤¿¤È¤³¤í¡¢¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Î᤬¸íưºî¤¹¤ë¾ò·ï¤¬¤ª¤Ü¤í¤²¤Ë¸«¤¨¤Æ¤¤Þ¤·¤¿¡£
¤½¤Î¾ò·ï¤È¤Ï¡¢¤ª¤ª¤è¤½¼¡¤Î¤è¤¦¤Ê¤â¤Î¤Ç¤¹¡£
¡¡¡¡¡¡¡¡¡Ø¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¤ÎľÁ°¤Ë¥á¥â¥ê¥¢¥¯¥»¥¹Ì¿Î᤬¤¢¤ë¤È¡¢¥Ç¥£¥ì¥¤¥ÉÌ¿Î᤬¼Â¹Ô¤µ¤ì¤Ê¤¤¤³¤È¤¬¤¢¤ë¡Ù
Á°²ó¤Ï¥¤¥ó¥¿¡¼¥í¥Ã¥¯¾ò·ï¤Ë¤Ä¤¤¤Æ¾Ü¤·¤¯¿¨¤ì¤Þ¤·¤¿¤¬¡¢¤É¤¦¤ä¤é¥¤¥ó¥¿¡¼¥í¥Ã¥¯¤ÎÍ̵¤Ï´Ø·¸¤Ê¤¤´¶¤¸¤Ç¤¹¡£
Î㤨¤Ð¡¢¼¡¤Î¤è¤¦¤Ê¥³¡¼¥É¤ò¹â®RAM¤ËÃÖ¤¤¤Æ¼Â¹Ô¤·¤¿¾ì¹ç¤Ë¤â¸íưºî¤È¤Ê¤ê¡¢¥Ç¥£¥ì¥¤¥ÉÌ¿Î᤬¼Â¹Ô¤µ¤ì¤Þ¤»¤ó¡£
¡¡¡¡¡¡¡¡; ¤¢¤é¤«¤¸¤á%r10¤Ëʬ´ôÀ襢¥É¥ì¥¹¤¬Æþ¤Ã¤Æ¤¤¤ë¤â¤Î¤È¤·¤Þ¤¹¡£
¡¡¡¡¡¡¡¡xld.w %r4, 0x100000
¡¡¡¡¡¡¡¡xld.w %r5, [%r4+100]¡¡; ľÁ°¤Ë¥á¥â¥ê¥¢¥¯¥»¥¹Ì¿Î᤬¤¢¤ë¤È¡Ä
¡¡¡¡¡¡¡¡jp.d %r10¡¡¡¡¡¡¡¡¡¡¡¡ ; ¥¤¥ó¥¿¡¼¥í¥Ã¥¯¤·¤Æ¤¤¤Ê¤¯¤Æ¤â¡Ä
¡¡¡¡¡¡¡¡add %r6, 1¡¡¡¡¡¡¡¡¡¡¡¡; ¡ú¼Â¹Ô¤µ¤ì¤Ê¤¤!!¡ú
ͽÁ۰ʾå¤Ë¡¢¸íưºî¤Î±Æ¶Á¤ò¼õ¤±¤ëÈϰϤ¬¹¤¤¤è¤¦¤Êµ¤¤¬¤·¤Æ¤¤Þ¤·¤¿¡£
¤³¤ì¤Ï¾ÜºÙ¤Ë¸¡¾Ú¤·¤Æ¤ß¤ëɬÍפ¬¤¢¤ê¤½¤¦¤Ç¤¹¡£
¤½¤ì¤Ç¤Ï¡¢¤É¤ì¤°¤é¤¤¤Î¥Ñ¥¿¡¼¥ó¤ò¸¡¾Ú¤¹¤ëɬÍפ¬¤¢¤ë¤Î¤Ç¤·¤ç¤¦¤«¡©
¾¯¤Ê¤¯¸«ÀѤâ¤Ã¤Æ¤â¡¢¼¡¤Ëµó¤²¤ë¤°¤é¤¤¤Î¸¡¾Ú¤ÏɬÍפ½¤¦¤Ç¤¹¡£
¡¡¡¡¡¡¡¡¡û¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá
¡¡¡¡¡¡¡¡ 1. jp.d %rb
¡¡¡¡¡¡¡¡ 2. call.d %rb
¡¡¡¡¡¡¡¡ 3. ret.d
¡¡¡¡¡¡¡¡ 4. jp.d sign8
¡¡¡¡¡¡¡¡ 5. jr.d sign8
¡¡¡¡¡¡¡¡ 6. call.d sign8
¡¡¡¡¡¡¡¡¡û¥á¥â¥ê¥¢¥¯¥»¥¹Ì¿Îá
¡¡¡¡¡¡¡¡ 1. ld.b [%rb], %rs
¡¡¡¡¡¡¡¡ 2. ld.ub [%rb], %rs
¡¡¡¡¡¡¡¡ 3. ld.h [%rb], %rs
¡¡¡¡¡¡¡¡ 4. ld.uh [%rb], %rs
¡¡¡¡¡¡¡¡ 5. ld.w [%rb], %rs
¡¡¡¡¡¡¡¡ 6. ld.b %rd, [%rb]
¡¡¡¡¡¡¡¡ 7. ld.h %rd, [%rb]
¡¡¡¡¡¡¡¡ 8. ld.w %rd, [%rb]
¡¡¡¡¡¡¡¡ 9. pushn %rs
¡¡¡¡¡¡¡¡10. popn %rd
¡¡¡¡¡¡¡¡¡ûʬ´ô¸µ
¡¡¡¡¡¡¡¡ 1. ¹â®RAM
¡¡¡¡¡¡¡¡ 2. SRAM
¡¡¡¡¡¡¡¡¡ûʬ´ôÀè
¡¡¡¡¡¡¡¡ 1. ¹â®RAM
¡¡¡¡¡¡¡¡ 2. SRAM
¡¡¡¡¡¡¡¡¡û¥á¥â¥ê¥¢¥¯¥»¥¹Àè
¡¡¡¡¡¡¡¡ 1. ¹â®RAM
¡¡¡¡¡¡¡¡ 2. SRAM
6¡ß10¡ß2¡ß2¡ß2¡á480Ä̤ê¡Ä¤Á¤ç¤Ã¤Èµ¤¤¬±ó¤¯¤Ê¤Ã¤Æ¤¤Þ¤·¤¿(^^;
¤µ¤é¤ËÍߤò¸À¤¨¤Ð¡¢
¡¡¡¡¡¡¡¡¡¦³ÆÌ¿Î᤬extÌ¿Îá¤òȼ¤Ã¤Æ¤¤¤ë¤«Èݤ«
¡¡¡¡¡¡¡¡¡¦Ê¬´ôÀè¤ÎºÇ½é¤Ë¤¢¤ëÌ¿Îá¤Î¼ïÎà¤Ë¤è¤Ã¤Æ°ã¤¤¤Ï¤¢¤ë¤«
Åù¤Î¾ò·ï¤âÊѤ¨¤Æ»î¤·¤Æ¤ß¤¿¤¤¤È¤³¤í¤Ç¤¹¡£
¤Ç¤â¡¢¤¤¤¤Ê¤êÁ´Éô¤Ï̵Íý¤½¤¦¤Ê¤Î¤Ç¡¢¤È¤ê¤¢¤¨¤ºº£²ó¤Ï¼¡¤ÎÁȤ߹ç¤ï¤»¤À¤±¸¡¾Ú¤·¤Æ¤ß¤ë¤³¤È¤Ë¤·¤Þ¤·¤¿¡£
¡¡¡¡¡¡¡¡¡û¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá
¡¡¡¡¡¡¡¡ 1. jp.d %rb
¡¡¡¡¡¡¡¡¡û¥á¥â¥ê¥¢¥¯¥»¥¹Ì¿Îá
¡¡¡¡¡¡¡¡ 1. ld.b [%rb], %rs
¡¡¡¡¡¡¡¡ 2. ld.ub [%rb], %rs
¡¡¡¡¡¡¡¡ 3. ld.h [%rb], %rs
¡¡¡¡¡¡¡¡ 4. ld.uh [%rb], %rs
¡¡¡¡¡¡¡¡ 5. ld.w [%rb], %rs
¡¡¡¡¡¡¡¡ 6. ld.b %rd, [%rb]
¡¡¡¡¡¡¡¡ 7. ld.h %rd, [%rb]
¡¡¡¡¡¡¡¡ 8. ld.w %rd, [%rb]
¡¡¡¡¡¡¡¡¡ûʬ´ô¸µ
¡¡¡¡¡¡¡¡ 1. ¹â®RAM
¡¡¡¡¡¡¡¡ 2. SRAM
¡¡¡¡¡¡¡¡¡ûʬ´ôÀè
¡¡¡¡¡¡¡¡ 1. ¹â®RAM
¡¡¡¡¡¡¡¡ 2. SRAM
¡¡¡¡¡¡¡¡¡û¥á¥â¥ê¥¢¥¯¥»¥¹Àè
¡¡¡¡¡¡¡¡ 1. ¹â®RAM
¡¡¡¡¡¡¡¡ 2. SRAM
1¡ß8¡ß2¡ß2¡ß2¡á64Ä̤ꡣ
¤³¤ì¤À¤±¤Ç¤â¡¢¤¢¤ëÄøÅ٤η¹¸þ¤Ï¤Ä¤«¤á¤ë¤Î¤Ç¤Ï¤Ê¤¤¤«¤È»×¤¤¤Þ¤¹¡£
¸¡¾ÚÍÑ¥×¥í¥°¥é¥à¤Ï¤³¤Á¤é¡§
¡¡¡¡¡¡¡¡http://www.piece-me.org/archive/delyerr1-20031220.zip
¸¡¾ÚÍÑ¥×¥í¥°¥é¥à¤Î·ë²Ì½ÐÎÏ¥Õ¥¡¥¤¥ë(À¸¤ÎCSV·Á¼°)¤Ï¤³¤Á¤é¡§
¡¡¡¡¡¡¡¡http://www.piece-me.org/piece-lab/delyerr1-20031220-result.csv
½ÐÎÏ·ë²Ì¥Õ¥¡¥¤¥ë¤òÆÉ¤ß¤ä¤¹¤¤¤è¤¦¤Ë²Ã¹©¤·¤Æ¤ß¤¿¤Î¤¬¤³¤Á¤é¡§
¡¡¡¡¡¡¡¡http://www.piece-me.org/piece-lab/delyerr1-20031220-kekka.csv
Microsoft ExcelÅù¤Î¥¹¥×¥ì¥Ã¥É¥·¡¼¥È¥½¥Õ¥È¤ÇÆÉ¤ó¤Ç¤¯¤À¤µ¤¤¡£
½ÐÎÏ·ë²Ì¤«¤é¡¢¤¤¤¯¤Ä¤«¤Î¥ë¡¼¥ë¤¬¸«¤Æ¼è¤ì¤Þ¤¹¡£
----------------------------
ʬ´ôÀè¥á¥â¥ê¤Î¼ïÎà¤Ï´Ø·¸¤Ê¤¤
----------------------------
ʬ´ôÀè¥á¥â¥ê¤Î¼ïÎà(¹â®RAM/SRAM)¤À¤±¤¬°Û¤Ê¤ê¡¢Â¾¤Î¾ò·ï¤¬Á´¤ÆÆ±¤¸¥±¡¼¥¹¤Ç¤Ï¡¢É¬¤ºÆ±¤¸·ë²Ì¤È¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£
ʬ´ôÀè¥á¥â¥ê¤¬¹â®RAM¤Î¾ì¹ç¤ËÀµ¾ïưºî¤Ê¤é¡¢Ê¬´ôÀè¥á¥â¥ê¤òSRAM¤ËÊѤ¨¤Æ¤ß¤Æ¤âÀµ¾ïưºî¡£
ʬ´ôÀè¥á¥â¥ê¤¬¹â®RAM¤Î¾ì¹ç¤Ë¸íưºî¤Ê¤é¡¢Ê¬´ôÀè¥á¥â¥ê¤òSRAM¤ËÊѤ¨¤Æ¤ß¤Æ¤â¸íưºî¡£
¤³¤Î¥ë¡¼¥ë¤«¤é¿ä¬¤¹¤ë¤È¡¢¤¿¤Ö¤óʬ´ôÀè¤ÎºÇ½é¤Ë¤¢¤ëÌ¿Îá¤Î¼ïÎà¤â´Ø·¸¤Ê¤¤¤ó¤¸¤ã¤Ê¤¤¤«¤Ê¡©¤È»×¤¤¤Þ¤¹¡£
--------------------------------
¥á¥â¥ê¥¢¥¯¥»¥¹¤Î¥µ¥¤¥º¤Ï´Ø·¸¤Ê¤¤
--------------------------------
¥á¥â¥ê¥¢¥¯¥»¥¹¤Î¥µ¥¤¥º(BYTE/UNSIGNED BYTE/HALF/UNSIGNED HALF/WORD)¤À¤±¤¬°Û¤Ê¤ê¡¢Â¾¤Î¾ò·ï¤¬Á´¤ÆÆ±¤¸¥±¡¼¥¹¤Ç¤Ï¡¢É¬¤ºÆ±¤¸·ë²Ì¤È¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£
SRAM¤Ø¤Î¥á¥â¥ê¥¢¥¯¥»¥¹¤Î¾ì¹ç¡¢¥á¥â¥ê¥¢¥¯¥»¥¹¤Î¥µ¥¤¥º¤Ë¤è¤Ã¤Æ¥¿¥¤¥ß¥ó¥°¤¬°Û¤Ê¤ë¤Î¤Ç¤¹¤¬¡¢¤½¤ì¤Ï¸íưºî¤Î¾ò·ï¤Ë¤Ï´Ø·¸¤Ê¤¤¤è¤¦¤Ç¤¹¡£
-----------------------------------------
ʬ´ô¸µ¥á¥â¥ê¤¬¹â®RAM¤Ê¤é¡¢É¬¤º¸íưºî¤¹¤ë
-----------------------------------------
º£²ó¤ÎºÇ½é¤ËÄ󼨤·¤¿¡¢¸íưºî¤¹¤ë¥³¡¼¥É¤Î¾ò·ï¤¬¤³¤ì¤ËÁêÅö¤·¤Þ¤¹¡£
¹â®RAM¤ËžÁ÷¤·¤Æ»È¤¦¥×¥í¥°¥é¥à¤òºÇŬ²½¤¹¤ë¾ì¹ç¤Ï¡¢¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¤ÎľÁ°¤Ë¥á¥â¥ê¥¢¥¯¥»¥¹Ì¿Îá¤òÃÖ¤«¤Ê¤¤¤è¤¦¡¢Ãí°Õ¤·¤Ê¤±¤ì¤Ð¤¤¤±¤Þ¤»¤ó¡£
----------------------------------------------------------------
½ñ¤¹þ¤ß¥¢¥¯¥»¥¹Àè¥á¥â¥ê¤Èʬ´ô¸µ¥á¥â¥ê¤¬¶¦¤ËSRAM¤Ê¤é¡¢¸íưºî¤¹¤ë
----------------------------------------------------------------
º£²ó¤Î¸¡¾Ú¤Ç¿·¤¿¤Ë¸«¤Ä¤±¤¿¸íưºî¾ò·ï¤Ç¤¹¡£
Î㤨¤Ð¡¢¼¡¤Î¤è¤¦¤Ê¥³¡¼¥É¤òSRAM¾å¤Ç¼Â¹Ô¤¹¤ë¤È¸íưºî¤·¡¢¥Ç¥£¥ì¥¤¥ÉÌ¿Î᤬¼Â¹Ô¤µ¤ì¤Þ¤»¤ó¡£
¡¡¡¡¡¡¡¡; ¤¢¤é¤«¤¸¤á%r10¤Ëʬ´ôÀ襢¥É¥ì¥¹¤¬Æþ¤Ã¤Æ¤¤¤ë¤â¤Î¤È¤·¤Þ¤¹¡£
¡¡¡¡¡¡¡¡xld.w %r4, 0x130000¡¡ ; ¥¢¥¯¥»¥¹Àè¥á¥â¥ê¡áSRAM
¡¡¡¡¡¡¡¡xld.w [%r4], %r5¡¡¡¡¡¡; ¥á¥â¥ê¥¢¥¯¥»¥¹¡á½ñ¤¹þ¤ß
¡¡¡¡¡¡¡¡jp.d %r10
¡¡¡¡¡¡¡¡add %r6, 1¡¡¡¡¡¡¡¡¡¡¡¡; ¡ú¼Â¹Ô¤µ¤ì¤Ê¤¤!!¡ú
¤Ê¤ª¡¢¤³¤Î¥³¡¼¥É¤ò¹â®RAM¾å¤Ç¼Â¹Ô¤·¤¿¾ì¹ç¤ÏÁ°½Ð¤Î¾ò·ï¤Ë°ìÃפ·¡¢¤ä¤Ï¤ê¸íưºî¤·¤Þ¤¹¡£
¤Ä¤Þ¤ê¡¢SRAM¤Ø¤Î½ñ¤¹þ¤ß¤Îľ¸å¤Ë¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¤òÃÖ¤¤¤¿¾ì¹ç¤Ï¡¢¹â®RAM¤ËžÁ÷¤·¤Æ¼Â¹Ô¤¹¤ë¥×¥í¥°¥é¥à¤Ç¤Ê¤¯¤Æ¤â¸íưºî¤¹¤ë¡¢¤È¤¤¤¦¤³¤È¤Ç¤¹¡£
º£²ó¤Î¸¡¾Ú¤Î¤Þ¤È¤á¤Ç¤¹¡£
½ÐÎÏ·ë²Ì¤ò¸«¤ë¤È¡¢¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¤ÎľÁ°¤Ë¥á¥â¥ê¥¢¥¯¥»¥¹Ì¿Îá¤òÃÖ¤¤¤Æ¤â¸íưºî¤·¤Ê¤¤¥±¡¼¥¹¤Ï¤¤¤¯¤Ä¤«Â¸ºß¤·¤Þ¤¹¡£
Î㤨¤Ð¡¢Ê¬´ô¸µ¥×¥í¥°¥é¥à¤¬SRAM¾å¤Ë¤¢¤ê¡¢¤«¤Ä¡¢Ä¾Á°¤Î¥á¥â¥ê¥¢¥¯¥»¥¹¤¬ÆÉ¤ß¹þ¤ß¤Ê¤é¤Ð¡¢¸íưºî¤·¤Þ¤»¤ó¡£
¤·¤«¤·¤Ê¤¬¤é¡¢ºÇ¸å¤Ëµó¤²¤¿¤è¤¦¤ÊÆÃ¼ì¾ò·ï²¼¤Ç¸íưºî¤¹¤ë¥±¡¼¥¹¤¬¤¢¤ë¤¿¤á¡¢°ÂÁ´¤Î¤¿¤á¤Ë¤Ï¼¡¤Ë¼¨¤¹Ã±½ã¤Ê¥ë¡¼¥ë¤Ë½¾¤Ã¤Æ¤ª¤¯¤Î¤¬Îɤµ¤½¤¦¤Ç¤¹¡£
¡¡¡¡¡¡¡¡¡Ø¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¤ÎľÁ°¤Ë¤Ï¥á¥â¥ê¥¢¥¯¥»¥¹Ì¿Îá¤òÃÖ¤«¤Ê¤¤¡Ù
¤µ¤Æ¡¢º£²ó¤Ï¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¡Öjp.d %d¡×¤Ë¤Ä¤¤¤Æ¤À¤±¼Â¸³¤·¤Þ¤·¤¿¤¬¡¢Â¾¤Î¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¡Öcall.d %rb¡×¤ä¡Öjr.d sign8¡×Åù¤Ç¤Ï¤É¤¦¤Ç¤·¤ç¤¦¤«¡©
¤³¤ì¤Þ¤Ç¤Î·Ð¸³¤«¤é¿ä¬¤¹¤ë¤È¡¢¡Öjr.d sign8¡×¤ÏľÁ°¤Ë¥á¥â¥ê¥¢¥¯¥»¥¹Ì¿Î᤬¤¢¤Ã¤Æ¤âÂç¾æÉפ½¤¦¤Êµ¤¤¬¤¹¤ë¤Î¤Ç¤¹¤¬¡¦¡¦¡¦
¼¡²ó¤Ï¡¢¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¤Î¼ïÎà¤òÊѤ¨¤Æ»î¤·¤Æ¤ß¤è¤¦¤È»×¤¤¤Þ¤¹¡£
(³¤¤Þ¤¹¡Ä)
* Wed Dec 17 12:55:00 JST 2003 Naoyuki Sawa
- ¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¤Î¸íưºî#1
¡Ö¥¿¥ó¥¯¥Ð¥¿¥ê¥¢¥ó/EMU¡×¤Ë¤Æ¡¢6502¥¨¥ß¥å¥ì¡¼¥·¥ç¥ó¹â®²½¤Î¤¿¤á¤Ë¼êºî¶È¤Ç¥¢¥»¥ó¥Ö¥é¥×¥í¥°¥é¥à¤ÎºÇŬ²½¤ò¹Ô¤Ã¤¿¤Î¤Ç¤¹¤¬¡¢¼Â¤Ï¤«¤Ê¤ê¥Ï¥Þ¥ê¤Þ¤·¤¿¡£
ÌäÂê¤Î¸Ä½ê¤ÏÈæ³ÓŪ¾®¤µ¤Ê¥µ¥Ö¥ë¡¼¥Á¥ó¤Ç¡¢²¿ÅÙ¸«Ä¾¤·¤Æ¤â´Ö°ã¤Ã¤Æ¤¤¤Ê¤¤¤Ï¤º¤Ê¤Î¤Ë¡¢¤É¤¦¤ä¤Ã¤Æ¤â´üÂÔÄ̤ê¤Îưºî¤ò¤·¤Ê¤¤¤Î¤Ç¤¹¡£
»ÈÍÑÉÑÅ٤ι⤤¥µ¥Ö¥ë¡¼¥Á¥ó¤À¤Ã¤¿¤Î¤Ç¹â®RAM¤ËžÁ÷¤·¤Æ¼Â¹Ô¤·¤Æ¤¤¤¿¤È¤³¤í¤ò¡¢»î¤·¤ËSRAM¤ËÌᤷ¤Æ¤ß¤ë¤È¤Ê¤¼¤«ÌäÂê¤Ê¤¯¼Â¹Ô¤Ç¤¤Æ¤·¤Þ¤¦¡¦¡¦¡¦²¿¸Î¡©
»¶¡¹Çº¤ó¤ÀËö¤Ë¡¢¤É¤¦¤ä¤é¸¶°ø¤é¤·¤¤â¤Î¤¬ÄϤá¤Þ¤·¤¿¡£S1C33209 CPU¥³¥¢¤Î¡ú¸íưºî¡ú¡¢¤µ¤â¤Ê¤¯¤ÐCPU¥Þ¥Ë¥å¥¢¥ë¤Î¡úµºÜϳ¤ì¡ú¤Ã¤Ý¤¤¤Ç¤¹¡£
º£²ó¤Ï¡¢¤³¤Î·ï¤Ë¤Ä¤¤¤ÆµÏ¿¤·¤Æ¤ª¤³¤¦¤È»×¤¤¤Þ¤¹¡£
P/ECE¤ÎCPU S1C33209¤Ï¡¢Â¿¤¯¤Î°ìÈÌŪ¤ÊRISC¥×¥í¥»¥Ã¥µ¤ÈƱ¤¸¤¯¡¢¡Ö¥Ç¥£¥ì¥¤¥Éʬ´ôµ¡Ç½¡×¤òÈ÷¤¨¤Æ¤¤¤Þ¤¹¡£
¥Ç¥£¥ì¥¤¥Éʬ´ôµ¡Ç½¤Ë¤Ä¤¤¤Æ¤Ï¡¢°ÊÁ°¤Î¸¦µæµÏ¿¡Ø¼Â¤Ï¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¡Ù¤Ç¤â¿¨¤ì¤Þ¤·¤¿¤Î¤Ç¡¢¤½¤Á¤é¤âÊ»¤»¤Æ¤´»²¾È¤¯¤À¤µ¤¤¡£
º£²óÌäÂê¤È¤Ê¤Ã¤¿¸Ä½ê¤Ï¡¢¼¡¤Î¤è¤¦¤Ê½èÍý¤ò¹Ô¤¦Éôʬ¤Ç¤·¤¿¡£(¢¨¤«¤Ê¤ê´Êά²½¤·¤Æ¤¤¤Þ¤¹)
¡¡¡¡¡¡¡¡¡Ø6502µ¡³£¸ìÌ¿Îá¤ò1¥Ð¥¤¥ÈÆÉ¤ß¹þ¤ß¡¢¤½¤ÎÆâÍÆ¤Ë¤è¤Ã¤ÆÊ¬´ô¤¹¤ë¡Ù
C¸À¸ì¤Ç½ñ¤¯¤È¡¢¤³¤ó¤Ê´¶¤¸¤Î½èÍý¤Ç¤¹¡£
--------------------------------------------------------------------------------------------------
¡¡¡¡¡¡¡¡unsigned char* pc = ...;
¡¡¡¡¡¡¡¡switch(*pc++) {
¡¡¡¡¡¡¡¡case 0: ...; break;
¡¡¡¡¡¡¡¡case 1: ...; break;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡...
¡¡¡¡¡¡¡¡case 9: ...; break;
¡¡¡¡¡¡¡¡}
--------------------------------------------------------------------------------------------------
¤³¤ì¤ò¥¢¥»¥ó¥Ö¥é¤Ç½ñ¤¯¤È¡¢¼¡¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
--------------------------------------------------------------------------------------------------
1|¡¡¡¡¡¡¡¡¡¡;
2|¡¡¡¡¡¡¡¡¡¡; %r0¥ì¥¸¥¹¥¿¤ËÊÑ¿ôpc¤¬³ä¤êÅö¤Æ¤é¤ì¤Æ¤¤¤ë¤â¤Î¤È¤·¤Þ¤¹¡£
3|¡¡¡¡¡¡¡¡¡¡;
4|¡¡¡¡¡¡¡¡¡¡ld.ub %r1, [%r0]¡¡¡¡¡¡¡¡; code = *pc
5|¡¡¡¡¡¡¡¡¡¡xld.w %r2, TABLE¡¡¡¡¡¡¡¡; addr = TABLE[code]
6|¡¡¡¡¡¡¡¡¡¡sll %r1, 2
7|¡¡¡¡¡¡¡¡¡¡add %r1, %r2
8|¡¡¡¡¡¡¡¡¡¡ld.w %r3, [%r1]
9|¡¡¡¡¡¡¡¡¡¡jp.d %r3¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; goto addr
10|¡¡¡¡¡¡¡¡¡¡add %r0, 1¡¡¡¡¡¡¡¡¡¡¡¡¡¡; pc++
11|¡¡¡¡¡¡¡¡¡¡
12|¡¡TABLE:¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡; switchÍÑ¥¸¥ã¥ó¥×¥Æ¡¼¥Ö¥ë
13|¡¡¡¡¡¡¡¡¡¡.word CASE0
14|¡¡¡¡¡¡¡¡¡¡.word CASE1
15|¡¡¡¡¡¡¡¡¡¡...
16|¡¡¡¡¡¡¡¡¡¡.word CASE9
17|¡¡¡¡¡¡¡¡
18|¡¡CASE0:
19|¡¡¡¡¡¡¡¡¡¡...¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ ; code=0¤Î¾ì¹ç¤Î½èÍý
20|¡¡CASE1:
21|¡¡¡¡¡¡¡¡¡¡...¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ ; code=1¤Î¾ì¹ç¤Î½èÍý
22|¡¡¡¡¡¡¡¡¡¡...
23|¡¡CASE9:
24|¡¡¡¡¡¡¡¡¡¡...¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ ; code=9¤Î¾ì¹ç¤Î½èÍý
--------------------------------------------------------------------------------------------------
¢¨¤³¤ì°Ê¹ß¤ÎÀâÌÀ¤Ç¸Ä¡¹¤ÎÌ¿Îá¤Ë¤Ä¤¤¤Æ¼Â¹Ô¥µ¥¤¥¯¥ë¿ô¤òÄ´¤Ù¤Æ¹Ô¤¤Þ¤¹¤¬¡¢¤È¤ê¤¢¤¨¤º¥á¥â¥ê¥¢¥¯¥»¥¹»þ¤Î¥¦¥§¥¤¥È¥µ¥¤¥¯¥ë¤Ï½ü³°¤·¤Æ¹Í¤¨¤Þ¤¹¡£
9¡Á10¹ÔÌܤˤ´ÃíÌܤ¯¤À¤µ¤¤¡£
¥Ç¥£¥ì¥¤¥Éʬ´ôµ¡Ç½¤ò»È¤Ã¤Æ¡¢¥¸¥ã¥ó¥×Ì¿Îá¤ò1¥µ¥¤¥¯¥ë¹â®²½¤·¤Æ¤¤¤Þ¤¹¡£
¡¡¡¡¡¡¡¡jp.d %r3¡¡¡¡¡¡¡¡; 1¥µ¥¤¥¯¥ë
¡¡¡¡¡¡¡¡add %r0, 1¡¡¡¡¡¡; 1¥µ¥¤¥¯¥ë
¤â¤·¥Ç¥£¥ì¥¤¥Éʬ´ôµ¡Ç½¤ò»È¤ï¤º¤ËÉáÄ̤˽ñ¤±¤Ð¡¢¼¡¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
¡¡¡¡¡¡¡¡add %r0, 1¡¡¡¡¡¡; 1¥µ¥¤¥¯¥ë
¡¡¡¡¡¡¡¡jp %r3¡¡¡¡¡¡¡¡¡¡; 2¥µ¥¤¥¯¥ë
½¾¤Ã¤Æ¡¢¥Ç¥£¥ì¥¤¥Éʬ´ôµ¡Ç½¤ò»È¤Ã¤¿Êý¤¬1¥µ¥¤¥¯¥ë®¤¯¤Ê¤ê¤Þ¤¹¡£
¡¦¡¦¡¦¤È¸À¤¤¤¿¤¤¤È¤³¤í¤Ç¤¹¤¬¡¢¼Â¤Ï¤³¤Î¾ì¹ç¤Ë¸Â¤Ã¤Æ¸À¤¨¤Ð¡¢¥Ç¥£¥ì¥¤¥Éʬ´ôµ¡Ç½¤ò»È¤Ã¤¿¾ì¹ç¤È»È¤ï¤Ê¤¤¾ì¹ç¤Î¥µ¥¤¥¯¥ë¿ô¤ÏÊѤï¤é¤Ê¤¤¤Î¤Ç¤¹¡£
8¡Á9¹ÔÌܤˤ´ÃíÌܤ¯¤À¤µ¤¤¡£
¡¡¡¡¡¡¡¡08|¡¡¡¡¡¡¡¡ld.w %r3, [%r1]
¡¡¡¡¡¡¡¡09|¡¡¡¡¡¡¡¡jp.d %r3
8¹ÔÌܤǥá¥â¥ê¤«¤éÆÉ¤ß¹þ¤ó¤À%r3¤ÎÃͤò¡¢Ä¾¸å¤Ë9¹ÔÌܤΥ¸¥ã¥ó¥×Ì¿Îá¤ÇÈô¤ÓÀ襢¥É¥ì¥¹¤È¤·¤Æ»²¾È¤·¤Æ¤¤¤Þ¤¹¡£
S1C33209 CPU¤Ç¤Ï¤³¤Î¤è¤¦¤Ê½èÍý¤ò¹Ô¤Ã¤¿¾ì¹ç¤Ë¡Ö¥¤¥ó¥¿¡¼¥í¥Ã¥¯¡×¤È¸Æ¤Ð¤ì¤ëÃٱ䤬ȯÀ¸¤·¡¢Ì¿Îá¤Î¼Â¹Ô»þ´Ö¤¬1¥µ¥¤¥¯¥ëŤ¯¤Ê¤ë¤Î¤Ç¤¹¡£
¾Ü¤·¤¯¤Ï¡ÖS1C33000¥³¥¢CPU¥Þ¥Ë¥å¥¢¥ë(33000Core-J.pdf)¡×34¥Ú¡¼¥¸¡Ø3.2 ¥×¥í¥°¥é¥à¼Â¹Ô¾õÂÖ (7) ¥¤¥ó¥¿¡¼¥í¥Ã¥¯¤Ë¤è¤ëÃÙ±ä¡Ù¤ò¤´»²¾È¤¯¤À¤µ¤¤¡£
·ë¶É¡¢9¡Á10¹ÔÌܤÎËÜÅö¤Î¼Â¹Ô¥µ¥¤¥¯¥ë¿ô¤Ï¼¡¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
¡¡¡¡¡¡¡¡jp.d %r3¡¡¡¡¡¡¡¡; 1¥µ¥¤¥¯¥ë¡Ü1¥µ¥¤¥¯¥ë(¥¤¥ó¥¿¡¼¥í¥Ã¥¯)
¡¡¡¡¡¡¡¡add %r0, 1¡¡¡¡¡¡; 1¥µ¥¤¥¯¥ë
¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¤ò»È¤ï¤Ê¤¤¾ì¹ç¤Ï¡¢¥¸¥ã¥ó¥×Ì¿Îá¤Î¼Â¹Ô»þ´Ö¤¬1¥µ¥¤¥¯¥ëŤ¤Âå¤ï¤ê¤Ë¥¤¥ó¥¿¡¼¥í¥Ã¥¯¤ÏȯÀ¸¤»¤º¡¢
¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¤ò»È¤Ã¤¿¾ì¹ç¤Ï¡¢¥¸¥ã¥ó¥×Ì¿Îá¤Î¼Â¹Ô»þ´Ö¤¬1¥µ¥¤¥¯¥ëû¤¤Âå¤ï¤ê¤Ë¥¤¥ó¥¿¡¼¥í¥Ã¥¯¤¬È¯À¸¤·¤Þ¤¹¡£
½¾¤Ã¤Æ¤³¤Î¾ì¹ç¤Ë¸Â¤Ã¤Æ¸À¤¨¤Ð¡¢¤É¤Á¤é¤ÎÊýË¡¤ò»È¤Ã¤Æ¤âÁ´ÂΤΥµ¥¤¥¯¥ë¿ô¤Ï3¥µ¥¤¥¯¥ë¤È¤Ê¤ê¡¢¼Â¹Ô®ÅÙ¤ÏÆ±¤¸¤Ç¤¹¡£
¤Ç¤Ï¤Ê¤¼¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¤ò»È¤¦Êý¤Î¥×¥í¥°¥é¥à¤òºÎÍѤ·¤¿¤«¤È¸À¤¦¤È¡¢¼¡¤Î¤è¤¦¤ÊȽÃǤˤè¤ê¤Þ¤¹¡£
¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¤ò»È¤ï¤Ê¤¤Êý¤Î¹ç·×¼Â¹Ô¥µ¥¤¥¯¥ë¿ô¤Ï¡¢É¬¤º3¥µ¥¤¥¯¥ë¤È¤Ê¤ê¤Þ¤¹¡£Îã³°¤Ï¤¢¤ê¤Þ¤»¤ó¡£
¤½¤ì¤ËÂФ·¡¢¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¤ò»È¤Ã¤¿¾ì¹ç¤Î¹ç·×¼Â¹Ô¥µ¥¤¥¯¥ë¿ô¤Ï¡¢Èó¾ï¤Ë¹¬±¿¤Ê¾ì¹ç¤Ë2¥µ¥¤¥¯¥ë¤È¤Ê¤ë²ÄǽÀ¤¬¤¢¤ê¤Þ¤¹¡£
¤É¤ó¤Ê¹¬±¿¤«¤È¸À¤¤¤Þ¤¹¤È¡¢8¡Á9¹ÔÌܤδ֤˳ä¤ê¹þ¤ß¤¬È¯À¸¤·¤¿¾ì¹ç¤Ç¤¹¡£
8¹ÔÌܤÎÌ¿Îá¼Â¹Ôľ¸å¤Ë¥¿¥¤¥Þ¤ä¥µ¥¦¥ó¥ÉÅù¤Î³ä¤ê¹þ¤ß¤¬È¯À¸¤¹¤ë¤È¡¢8¹ÔÌܤÈ9¹ÔÌܤδ֤dzä¤ê¹þ¤ß½èÍý¤ò¹Ô¤¦¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£
¤¹¤ë¤È¡¢8¹ÔÌܤǥá¥â¥ê¤«¤éÆÉ¤ß¹þ¤ó¤À%r3¤ÎÃͤò¡¢¡Öľ¸å¤Ë¡×9¹ÔÌܤǻ²¾È¤¹¤ë¤ï¤±¤Ç¤Ï¤Ê¤¯¤Ê¤ê¤Þ¤¹¡£
½¾¤Ã¤Æ9¹ÔÌܤǥ¤¥ó¥¿¡¼¥í¥Ã¥¯¤ÏȯÀ¸¤»¤º¡¢9¹ÔÌܤÈ10¹ÔÌܤιç·×¼Â¹Ô¥µ¥¤¥¯¥ë¿ô¤Ï2¥µ¥¤¥¯¥ë¤È¤Ê¤ê¤Þ¤¹¡£
¡¦¡¦¡¦¤È¤Ï¸À¤¨¤³¤ó¤Ê¹¬±¿¤ÏÌÇ¿¤Ë¤¢¤ë¤ï¤±¤Ç¤Ê¤·¡¢Á´ÂΤήÅÙ¤«¤é¸«¤ì¤Ð 0.00...01% ÄøÅ٤ΰ㤤¤Ç¤·¤«¤Ê¤¤¤Ç¤·¤ç¤¦¡£
¤É¤Á¤é¤ÎÊýË¡¤ò»È¤¦¤«¤ÏÁ´¤¯¡Èµ¤Ê¬¤ÎÌäÂê¡É¤Ç¤¢¤ê¡¢½ÅÍפʤΤϡ¢¤É¤Á¤é¤ÎÊýË¡¤Ç¤âÀµ¤·¤¯Æ°¤¯¡¢¤È¤¤¤¦¤³¤È¤Ç¤¹¡£
¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£¡¡¤³¤³¤Þ¤Ç¤ÏÌäÂꤢ¤ê¤Þ¤»¤ó¡£»ÅÍÍÄ̤ê¤Îưºî¤Ç¤¹¡£ÌäÂê¤Ï¤³¤³¤«¤é¡¡¢£¢£¢£¢£¢£¢£¢£¢£¢£¢£
¤È¤³¤í¤¬¼Â¤Ï¡¢¤¢¤ë¾ò·ï¤¬½Å¤Ê¤Ã¤¿¾ì¹ç¤Ë¡¢¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¤ò»È¤¦Êý¤Î¥×¥í¥°¥é¥à¤ÏÀµ¤·¤¯Æ°¤«¤Ê¤¯¤Ê¤ê¤Þ¤¹¡£
¤¢¤ë¾ò·ï¤È¤Ï¡¢
¡¡¡¡¡¡¡¡¤³¤Î¥µ¥Ö¥ë¡¼¥Á¥ó¤ò¹â®RAM¾å¤Ç¼Â¹Ô¤·¤¿¾ì¹ç
¤Ç¤¹¡£¤ï¤¶¤ï¤¶¼êºî¶È¤ÇºÇŬ²½¤¹¤ë¤«¤é¤Ë¤Ï¹â®À¤¬É¬Íפʥµ¥Ö¥ë¡¼¥Á¥ó¤Ç¤¢¤ê¡¢¤â¤Á¤í¤ó¹â®RAM¤ËžÁ÷¤·¤Æ¼Â¹Ô¤¹¤ë¤Ç¤·¤ç¤¦¡£
º£²ó¤¬Àµ¤Ë¤³¤Î¥±¡¼¥¹¤ËÁêÅö¤·¤Þ¤·¤¿¡£
¥Ç¥£¥ì¥¤¥Éʬ´ôÌ¿Îá¤ò»È¤¦Êý¤Î¥×¥í¥°¥é¥à¤ò¹â®RAM¤ËÃÖ¤¤¤Æ¼Â¹Ô¤¹¤ë¤È¡¢¼¡¤Î¤è¤¦¤Ê¿¶¤ëÉñ¤¤¤È¤Ê¤ê¤Þ¤¹¡£(¢¨¥µ¥¤¥¯¥ë¿ô¤Ï¿ä¬¤Ç¤¹)
¡¡¡¡¡¡¡¡ 8|¡¡¡¡¡¡¡¡ld.w %r3, [%r1]¡¡¡¡¡¡; 1¥µ¥¤¥¯¥ë
¡¡¡¡¡¡¡¡ 9|¡¡¡¡¡¡¡¡jp.d %r3¡¡¡¡¡¡¡¡¡¡¡¡ ; 1¥µ¥¤¥¯¥ë¡Ü1¥µ¥¤¥¯¥ë(¥¤¥ó¥¿¡¼¥í¥Ã¥¯)
¡¡¡¡¡¡¡¡¡¡|¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ ; ¡ú¤³¤³¤Ç¥¸¥ã¥ó¥×¤·¤Æ¤·¤Þ¤¦!!¡ú
¡¡¡¡¡¡¡¡10|¡¡¡¡¡¡¡¡add %r0, 1¡¡¡¡¡¡¡¡¡¡ ; ¡ú¼Â¹Ô¤µ¤ì¤Þ¤»¤ó!!¡ú
¤¹¤Ê¤ï¤Á¡¢¥Ç¥£¥ì¥¤¥ÉÌ¿Îá¤Ç¤¢¤ë¤Ï¤º¤Î10¹ÔÌÜ¡Öadd %r0, 1¡×¤¬¼Â¹Ô¤µ¤ì¤Ê¤¤¤Î¤Ç¤¹¡£
C¸À¸ì¤ËÎ㤨¤ë¤È¡¢
¡¡¡¡¡¡¡¡switch(*pc++) {
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡...
¡¡¡¡¡¡¡¡}
¤È½ñ¤¤¤¿¤Ä¤â¤ê¤¬¼ÂºÝ¤Îưºî¤Ï
¡¡¡¡¡¡¡¡switch(*pc) {
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡...
¡¡¡¡¡¡¡¡}
¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¦¡¢¤È¤¤¤¦»öÂÖ¡£Àµ¤·¤¤·ë²Ì¤¬ÆÀ¤é¤ì¤ë¤Ï¤º¤â¤¢¤ê¤Þ¤»¤ó¡£
¤³¤ì¤Ï´í¸±¤Ç¤¹!!
¤â¤¦¾¯¤·¾Ü¤·¤¯¡¢¾É¾õ¤¬È¯¸½¤¹¤ë¾ò·ï¤òÄ´¤Ù¤Æ¤ª¤¯É¬Íפ¬¤¢¤ê¤½¤¦¤Ç¤¹¡£
(³¤¤Þ¤¹¡Ä)
* Mon May 5 05:30:00 JST 2003 Naoyuki Sawa
- ·Ù¹ð¤ÎÈϰϤ¬°ã¤¦
ºòÆü½ñ¤¤¤¿¡Öµ÷Î¥¤òµá¤á¤ë¡Ê¸íº¹¡ÞÌ󣱡ó¡¦30¥Ó¥Ã¥ÈÈǡˡפΥ¢¥»¥ó¥Ö¥é¥×¥í¥°¥é¥à¡¢¼Â¤Ï¤«¤Ê¤ê¥Ï¥Þ¥ê¤Þ¤·¤¿¡£
¤É¤¦¤ä¤Ã¤Æ¤â·ë²Ì¤¬¹ç¤ï¤º¡¢¤µ¤ó¤¶¤óǺ¤ó¤ÀËö¤Ë¸«¤Ä¤±¤¿¸¶°ø¤Ï¼¡¤Î¤è¤¦¤Ê¤â¤Î¤Ç¤·¤¿¡£
Àµ¤·¤¯¤Ï
¡¡¡¡¡¡¡¡xld.w %r13, 55
¤È½ñ¤¯¤Ù¤¤È¤³¤í¤ò
¡¡¡¡¡¡¡¡ld.w %r13, 55
¤È½ñ¤¤¤Æ¤·¤Þ¤Ã¤Æ¤¤¤¿¤Î¤Ç¤¹¡£
P/ECE¤ÎCPU S1C33¤ÎÌ¿Î᥻¥Ã¥È¤Ï¡¢¤¿¤¤¤Æ¤¤¤Î¾ì¹ç¡¢Â¨ÃͤË6¥Ó¥Ã¥È¤Þ¤Ç¤Î¿ôÃͤ·¤«»ØÄê¤Ç¤¤Þ¤»¤ó¡£
¤½¤ì°Ê¾å¤Î¥Ó¥Ã¥È¿ô¤Î¨Ãͤò»È¤¤¤¿¤¤¾ì¹ç¤Ï¡¢extÌ¿Îá¤ò»È¤Ã¤Æ·å¤ò³ÈÄ¥¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£
¾å¤ÎÎã¤Ëµó¤²¤¿¡Öld¡×Ì¿Îá¤Î¾ì¹ç¡¢Â¨ÃͤˤÏÉ乿ÉÕ¤6¥Ó¥Ã¥È¤Þ¤Ç¤·¤«»ØÄê¤Ç¤¤Þ¤»¤ó¡£
É乿ÉÕ¤6¥Ó¥Ã¥È¤Çɽ¸½¤Ç¤¤ë¿ôÃͤÏ-32¡Á31¤Ç¤¹¤Î¤Ç¡¢
¡¡¡¡¡¡¡¡¡¦
¡¡¡¡¡¡¡¡¡¦
¡¡¡¡¡¡¡¡¡¦
¡¡¡¡¡¡¡¡ld.w %r13, 34 ¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª
¡¡¡¡¡¡¡¡ld.w %r13, 33 ¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª
¡¡¡¡¡¡¡¡ld.w %r13, 32 ¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª
¡¡¡¡¡¡¡¡ld.w %r13, 31 ¡¡¡¡¡¡¡¡¡¡; Àµ¤·¤¤
¡¡¡¡¡¡¡¡ld.w %r13, 30 ¡¡¡¡¡¡¡¡¡¡; Àµ¤·¤¤
¡¡¡¡¡¡¡¡ld.w %r13, 29 ¡¡¡¡¡¡¡¡¡¡; Àµ¤·¤¤
¡¡¡¡¡¡¡¡¡¦
¡¡¡¡¡¡¡¡¡¦
¡¡¡¡¡¡¡¡¡¦
¡¡¡¡¡¡¡¡ld.w %r13, 1¡¡¡¡¡¡¡¡¡¡¡¡; Àµ¤·¤¤
¡¡¡¡¡¡¡¡ld.w %r13, 0¡¡¡¡¡¡¡¡¡¡¡¡; Àµ¤·¤¤
¡¡¡¡¡¡¡¡ld.w %r13, -1 ¡¡¡¡¡¡¡¡¡¡; Àµ¤·¤¤
¡¡¡¡¡¡¡¡¡¦
¡¡¡¡¡¡¡¡¡¦
¡¡¡¡¡¡¡¡¡¦
¡¡¡¡¡¡¡¡ld.w %r13, -30¡¡¡¡¡¡¡¡¡¡; Àµ¤·¤¤
¡¡¡¡¡¡¡¡ld.w %r13, -31¡¡¡¡¡¡¡¡¡¡; Àµ¤·¤¤
¡¡¡¡¡¡¡¡ld.w %r13, -32¡¡¡¡¡¡¡¡¡¡; Àµ¤·¤¤
¡¡¡¡¡¡¡¡ld.w %r13, -33¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª
¡¡¡¡¡¡¡¡ld.w %r13, -34¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª
¡¡¡¡¡¡¡¡ld.w %r13, -35¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª
¡¡¡¡¡¡¡¡¡¦
¡¡¡¡¡¡¡¡¡¦
¡¡¡¡¡¡¡¡¡¦
¤È¤Ê¤ê¤Þ¤¹¡£
¤Þ¤¿Ê̤ÎÎã¤È¤·¤Æ¡¢¡Öadd¡×Ì¿Îá¤Ê¤É¤Ï¨ÃͤËÉ乿¤Ê¤·6¥Ó¥Ã¥È¤Þ¤Ç¤Î¿ôÃͤ·¤«»ØÄê¤Ç¤¤Þ¤»¤ó¡£
É乿¤Ê¤·6¥Ó¥Ã¥È¤Çɽ¸½¤Ç¤¤ë¿ôÃͤÏ0¡Á63¤Ç¤¹¤Î¤Ç¡¢
¡¡¡¡¡¡¡¡¡¦
¡¡¡¡¡¡¡¡¡¦
¡¡¡¡¡¡¡¡¡¦
¡¡¡¡¡¡¡¡add %r13, 66¡¡¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª
¡¡¡¡¡¡¡¡add %r13, 65¡¡¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª
¡¡¡¡¡¡¡¡add %r13, 64¡¡¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª
¡¡¡¡¡¡¡¡add %r13, 63¡¡¡¡¡¡¡¡¡¡¡¡; Àµ¤·¤¤
¡¡¡¡¡¡¡¡add %r13, 62¡¡¡¡¡¡¡¡¡¡¡¡; Àµ¤·¤¤
¡¡¡¡¡¡¡¡add %r13, 61¡¡¡¡¡¡¡¡¡¡¡¡; Àµ¤·¤¤
¡¡¡¡¡¡¡¡¡¦
¡¡¡¡¡¡¡¡¡¦
¡¡¡¡¡¡¡¡¡¦
¡¡¡¡¡¡¡¡add %r13, 1 ¡¡¡¡¡¡¡¡¡¡¡¡; Àµ¤·¤¤
¡¡¡¡¡¡¡¡add %r13, 0 ¡¡¡¡¡¡¡¡¡¡¡¡; Àµ¤·¤¤
¡¡¡¡¡¡¡¡add %r13, -1¡¡¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª
¡¡¡¡¡¡¡¡add %r13, -2¡¡¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª
¡¡¡¡¡¡¡¡add %r13, -3¡¡¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª
¡¡¡¡¡¡¡¡¡¦
¡¡¡¡¡¡¡¡¡¦
¡¡¡¡¡¡¡¡¡¦
¤È¤Ê¤ê¤Þ¤¹¡£
¤µ¤Æ¡¢º£²ó¤Î¥ß¥¹
¡¡¡¡¡¡¡¡ld.w %r13, 55
¤Ï¡¢¡Öld¡×Ì¿Î᤬°·¤¨¤ëÉ乿ÉÕ¤6¥Ó¥Ã¥È¤ÎÈϰϡÊ-32¡Á31¡Ë¤ò³°¤ì¤¿Â¨ÃÍ¡Ê55¡Ë¤ò»ØÄꤷ¤Æ¤·¤Þ¤Ã¤¿¤³¤È¤Ç¤¹¡£
³Î¤«¤ËÅöÊý¤Î¥ß¥¹¤Ê¤Î¤Ç¤¹¤¬¡¢ËÜÍè¡¢¤³¤¦¤¤¤¦¥ß¥¹¤ËÂФ·¤Æ¤Ï¥¢¥»¥ó¥Ö¥é¤¬·Ù¹ð¤òȯ¤¹¤ë¤³¤È¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£
¡¡¡¡¡¡¡¡¡ÖWarning: Numeric range.¡§¥¤¥ó¥¹¥È¥é¥¯¥·¥ç¥ó¥ª¥Ú¥é¥ó¥É¤Î¿ôÃͤ¬ÉÔÀµ¤Ç¤¹¡£¡×
¡¡¡¡¡¡¡¡S1C33 Family C¥³¥ó¥Ñ¥¤¥é¥Ñ¥Ã¥±¡¼¥¸¥Þ¥Ë¥å¥¢¥ë Ver.4 (S5U1C33000C_J.pdf) 179¥Ú¡¼¥¸¤è¤ê
¤È¤³¤í¤¬¡¢¥¢¥»¥ó¥Ö¥é¤Ï¾å¤Î¥³¡¼¥É¤ËÂФ·¤Æ·Ù¹ð¤òȯ¤·¤Þ¤»¤ó¤Ç¤·¤¿¡£
¤½¤·¤Æ¡¢55¤ò̵Íý¤ä¤êÉ乿ÉÕ¤6¥Ó¥Ã¥È¤È²ò¼á¤·¤¿Ãͤǡ¢Ì¿Îᥳ¡¼¥É¤òÀ¸À®¤·¤Æ¤·¤Þ¤Ã¤Æ¤¤¤¿¤Î¤Ç¤¹¡£
¡¡¡¡¡¡¡¡ld.w %r13, -9 ¡¡¡¡¡¡¡¡¡¡; -9 ¡Ä 55¤ò̵Íý¤ä¤êÉ乿ÉÕ¤6¥Ó¥Ã¥È¤È²ò¼á¤·¤¿ÃÍ
¤Ê¤¼·Ù¹ð¤¬È¯¤»¤é¤ì¤Ê¤«¤Ã¤¿¤Î¤Ç¤·¤ç¤¦¤«¡©
¤¤¤¯¤Ä¤«»î¤·¤Æ¤ß¤¿¤È¤³¤í¡¢S1C33 CPU¤Î¥¢¥»¥ó¥Ö¥éas33.exe¤Ï¡¢·Ù¹ð¤È¤¹¤ë¿ôÃͤÎÈϰϤò´Ö°ã¤¨¤Æ¤¤¤ë¤è¤¦¤Ç¤¹¡£
¡Öld¡×Ì¿Îá¤È¤¤¤í¤¤¤í¤Ê¿ôÃͤòÁȤ߹ç¤ï¤»¤Æ¡¢·Ù¹ð¤¬È¯¤»¤é¤ì¤ë¤«¤É¤¦¤«¤ò»î¤·¤Æ¤ß¤Þ¤·¤¿¡£
¡¡¡¡¡¡¡¡¡¦
¡¡¡¡¡¡¡¡¡¦
¡¡¡¡¡¡¡¡¡¦
¡¡¡¡¡¡¡¡ld.w %r13, 66 ¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª¡¡¡¡¡¡; ·Ù¹ð¤¢¤ê
¡¡¡¡¡¡¡¡ld.w %r13, 65 ¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª¡¡¡¡¡¡; ·Ù¹ð¤¢¤ê
¡¡¡¡¡¡¡¡ld.w %r13, 64 ¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª¡¡¡¡¡¡; ·Ù¹ð¤¢¤ê
¡¡¡¡¡¡¡¡ld.w %r13, 63 ¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª¡¡¡¡¡¡; ·Ù¹ð¤Ê¤·¡ª´í¸±¡ª
¡¡¡¡¡¡¡¡ld.w %r13, 62 ¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª¡¡¡¡¡¡; ·Ù¹ð¤Ê¤·¡ª´í¸±¡ª
¡¡¡¡¡¡¡¡ld.w %r13, 61 ¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª¡¡¡¡¡¡; ·Ù¹ð¤Ê¤·¡ª´í¸±¡ª
¡¡¡¡¡¡¡¡¡¦
¡¡¡¡¡¡¡¡¡¦
¡¡¡¡¡¡¡¡¡¦
¡¡¡¡¡¡¡¡ld.w %r13, 34 ¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª¡¡¡¡¡¡; ·Ù¹ð¤Ê¤·¡ª´í¸±¡ª
¡¡¡¡¡¡¡¡ld.w %r13, 33 ¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª¡¡¡¡¡¡; ·Ù¹ð¤Ê¤·¡ª´í¸±¡ª
¡¡¡¡¡¡¡¡ld.w %r13, 32 ¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª¡¡¡¡¡¡; ·Ù¹ð¤Ê¤·¡ª´í¸±¡ª
¡¡¡¡¡¡¡¡ld.w %r13, 31 ¡¡¡¡¡¡¡¡¡¡; Àµ¤·¤¤¡¡¡¡¡¡¡¡; ·Ù¹ð¤Ê¤·
¡¡¡¡¡¡¡¡ld.w %r13, 30 ¡¡¡¡¡¡¡¡¡¡; Àµ¤·¤¤¡¡¡¡¡¡¡¡; ·Ù¹ð¤Ê¤·
¡¡¡¡¡¡¡¡ld.w %r13, 29 ¡¡¡¡¡¡¡¡¡¡; Àµ¤·¤¤¡¡¡¡¡¡¡¡; ·Ù¹ð¤Ê¤·
¡¡¡¡¡¡¡¡¡¦
¡¡¡¡¡¡¡¡¡¦
¡¡¡¡¡¡¡¡¡¦
¡¡¡¡¡¡¡¡ld.w %r13, 1¡¡¡¡¡¡¡¡¡¡¡¡; Àµ¤·¤¤¡¡¡¡¡¡¡¡; ·Ù¹ð¤Ê¤·
¡¡¡¡¡¡¡¡ld.w %r13, 0¡¡¡¡¡¡¡¡¡¡¡¡; Àµ¤·¤¤¡¡¡¡¡¡¡¡; ·Ù¹ð¤Ê¤·
¡¡¡¡¡¡¡¡ld.w %r13, -1 ¡¡¡¡¡¡¡¡¡¡; Àµ¤·¤¤¡¡¡¡¡¡¡¡; ·Ù¹ð¤Ê¤·
¡¡¡¡¡¡¡¡¡¦
¡¡¡¡¡¡¡¡¡¦
¡¡¡¡¡¡¡¡¡¦
¡¡¡¡¡¡¡¡ld.w %r13, -30¡¡¡¡¡¡¡¡¡¡; Àµ¤·¤¤¡¡¡¡¡¡¡¡; ·Ù¹ð¤Ê¤·
¡¡¡¡¡¡¡¡ld.w %r13, -31¡¡¡¡¡¡¡¡¡¡; Àµ¤·¤¤¡¡¡¡¡¡¡¡; ·Ù¹ð¤Ê¤·
¡¡¡¡¡¡¡¡ld.w %r13, -32¡¡¡¡¡¡¡¡¡¡; Àµ¤·¤¤¡¡¡¡¡¡¡¡; ·Ù¹ð¤Ê¤·
¡¡¡¡¡¡¡¡ld.w %r13, -33¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª¡¡¡¡¡¡; ·Ù¹ð¤Ê¤·
¡¡¡¡¡¡¡¡ld.w %r13, -34¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª¡¡¡¡¡¡; ·Ù¹ð¤Ê¤·
¡¡¡¡¡¡¡¡ld.w %r13, -35¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª¡¡¡¡¡¡; ·Ù¹ð¤Ê¤·
¡¡¡¡¡¡¡¡¡¦
¡¡¡¡¡¡¡¡¡¦
¡¡¡¡¡¡¡¡¡¦
32¡Á63¤Þ¤Ç¤Î¿ôÃͤ¬¡¢Àµ¤·¤¤Ì¿Îᥳ¡¼¥É¤¬À¸À®¤µ¤ì¤Ê¤¤¤Ë¤â´Ø¤ï¤é¤ºÌµ·Ù¹ð¤È¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£
¡Öadd¡×Ì¿Îá¤Ë¤Ä¤¤¤Æ¤âƱÍͤ˻¤Æ¤ß¤Þ¤¹¡£
¡¡¡¡¡¡¡¡¡¦
¡¡¡¡¡¡¡¡¡¦
¡¡¡¡¡¡¡¡¡¦
¡¡¡¡¡¡¡¡add %r13, 66¡¡¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª¡¡¡¡¡¡; ·Ù¹ð¤¢¤ê
¡¡¡¡¡¡¡¡add %r13, 65¡¡¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª¡¡¡¡¡¡; ·Ù¹ð¤¢¤ê
¡¡¡¡¡¡¡¡add %r13, 64¡¡¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª¡¡¡¡¡¡; ·Ù¹ð¤¢¤ê
¡¡¡¡¡¡¡¡add %r13, 63¡¡¡¡¡¡¡¡¡¡¡¡; Àµ¤·¤¤¡¡¡¡¡¡¡¡; ·Ù¹ð¤Ê¤·
¡¡¡¡¡¡¡¡add %r13, 62¡¡¡¡¡¡¡¡¡¡¡¡; Àµ¤·¤¤¡¡¡¡¡¡¡¡; ·Ù¹ð¤Ê¤·
¡¡¡¡¡¡¡¡add %r13, 61¡¡¡¡¡¡¡¡¡¡¡¡; Àµ¤·¤¤¡¡¡¡¡¡¡¡; ·Ù¹ð¤Ê¤·
¡¡¡¡¡¡¡¡¡¦
¡¡¡¡¡¡¡¡¡¦
¡¡¡¡¡¡¡¡¡¦
¡¡¡¡¡¡¡¡add %r13, 1 ¡¡¡¡¡¡¡¡¡¡¡¡; Àµ¤·¤¤¡¡¡¡¡¡¡¡; ·Ù¹ð¤Ê¤·
¡¡¡¡¡¡¡¡add %r13, 0 ¡¡¡¡¡¡¡¡¡¡¡¡; Àµ¤·¤¤¡¡¡¡¡¡¡¡; ·Ù¹ð¤Ê¤·
¡¡¡¡¡¡¡¡add %r13, -1¡¡¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª¡¡¡¡¡¡; ·Ù¹ð¤Ê¤·¡ª´í¸±¡ª
¡¡¡¡¡¡¡¡add %r13, -2¡¡¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª¡¡¡¡¡¡; ·Ù¹ð¤Ê¤·¡ª´í¸±¡ª
¡¡¡¡¡¡¡¡add %r13, -3¡¡¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª¡¡¡¡¡¡; ·Ù¹ð¤Ê¤·¡ª´í¸±¡ª
¡¡¡¡¡¡¡¡¡¦
¡¡¡¡¡¡¡¡¡¦
¡¡¡¡¡¡¡¡¡¦
¡¡¡¡¡¡¡¡add %r13, -30 ¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª¡¡¡¡¡¡; ·Ù¹ð¤Ê¤·¡ª´í¸±¡ª
¡¡¡¡¡¡¡¡add %r13, -31 ¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª¡¡¡¡¡¡; ·Ù¹ð¤Ê¤·¡ª´í¸±¡ª
¡¡¡¡¡¡¡¡add %r13, -32 ¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª¡¡¡¡¡¡; ·Ù¹ð¤Ê¤·¡ª´í¸±¡ª
¡¡¡¡¡¡¡¡add %r13, -33 ¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª¡¡¡¡¡¡; ·Ù¹ð¤¢¤ê
¡¡¡¡¡¡¡¡add %r13, -34 ¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª¡¡¡¡¡¡; ·Ù¹ð¤¢¤ê
¡¡¡¡¡¡¡¡add %r13, -35 ¡¡¡¡¡¡¡¡¡¡; ´Ö°ã¤¤¡ª¡¡¡¡¡¡; ·Ù¹ð¤¢¤ê
¡¡¡¡¡¡¡¡¡¦
¡¡¡¡¡¡¡¡¡¦
¡¡¡¡¡¡¡¡¡¦
-32¡Á-1¤Þ¤Ç¤Î¿ôÃͤ¬¡¢Àµ¤·¤¤Ì¿Îᥳ¡¼¥É¤¬À¸À®¤µ¤ì¤Ê¤¤¤Ë¤â´Ø¤ï¤é¤ºÌµ·Ù¹ð¤È¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£
¤É¤¦¤ä¤éas33.exe¤Ï¡¢Ì¿Îá¤Ë¤è¤Ã¤ÆÍ¸ú¤Ê¿ôÃͤÎÈϰϤ¬°ã¤¦¤³¤È¤ò˺¤ì¡¢¾ï¤Ë-32¡Á63¤¬Àµ¤·¤¤¿ôÃͤÎÈϰϤÀ¤È»×¤Ã¤Æ¤·¤Þ¤Ã¤Æ¤¤¤ë¤è¤¦¤Ç¤¹¡£
º£²ó¤Ï¾®¤µ¤Ê¥×¥í¥°¥é¥à¤À¤Ã¤¿¤Î¤Ç´Ö°ã¤¤¤Ëµ¤ÉÕ¤¤¤¿¤â¤Î¤Î¡¢Âç¤¤Ê¥×¥í¥°¥é¥à¤Ç´Ö°ã¤Ã¤¿¥³¡¼¥É¤¬Ìµ·Ù¹ð¤ÇÄ̤äƤ·¤Þ¤Ã¤Æ¤¤¤¿¤éޥޥޥ
¤³¤Î´í¸±¤ò²óÈò¤¹¤ë¤Ë¤Ï¡¢¡Öld¡×¤ä¡Öadd¡×Åù¤ÎÌ¿Îá¤Ç¨Ãͤò»È¤¦¾ì¹ç¤Ï¡¢¤¿¤È¤¨¾®¤µ¤ÊÃͤǤâ¾ï¤Ë¡Öxld¡×¡Öxand¡×Åù¤Èɽµ¤·¤Þ¤·¤ç¤¦¡£
³ÆÌ¿Îá¤Î͸ú¤Ê¿ôÃÍÈϰϤòͤ¨¤ë¤È¡¢¥³¥ó¥Ñ¥¤¥é¤¬¼«Æ°Åª¤Ë¡Öext¡×Ì¿Îá¤òÉղ䷤ơ¢¸í¤Ã¤¿Ì¿Îᥳ¡¼¥É¤ÎÀ¸À®¤òËɤ¤¤Ç¤¯¤ì¤Þ¤¹¡£
* Sun May 4 15:00:00 JST 2003 Naoyuki Sawa
- µ÷Î¥¤òµá¤á¤ë¡Ê¸íº¹¡ÞÌ󣱡ó¡¦30¥Ó¥Ã¥ÈÈÇ¡Ë
P/ware¤µ¤ó¡Êhttp://www.aw.wakwak.com/~hitode/piece/¡Ë¤Î¥Ú¡¼¥¸¤Î¡¢
µ÷Î¥¤òµá¤á¤ë¡Êhttp://www.aw.wakwak.com/~hitode/piece/index.html#dist2¡Ë¹â®¤ÊÊýË¡¤¬¹¹¿·¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
¤Þ¤º¡¢Á°²ó¤ÈƱ¤¸¸íº¹¡ÞÌó£´¡ó¤ÎÊýË¡¤Ç¡¢¤è¤êÀºÅ٤ι⤤·¸¿ô¤¬¸ø³«¤µ¤ì¤Þ¤·¤¿¡£
Á°²ó¤Î¥×¥í¥°¥é¥à¤ò¡¢¿·¤·¤¤·¸¿ô¤Çºî¤êľ¤·¤¿¤â¤Î¤¬¤³¤Á¤é¡£
¡¡¡¡¡¡¡¡http://www.piece-me.org/archive/hypot2a-20030504.zip
¤µ¤é¤Ë¡¢¡Ö¸íº¹Ì󣱡ó¡×¤È¡Ö¸íº¹Ìó£°¡¥£²¡ó¡×¤Î·×»»ÊýË¡¤¬Äɲäµ¤ì¤Æ¤¤¤Þ¤¹¡£
¸íº¹Ì󣱡ó¤ÎÊýË¡¤¬¡¢Â®ÅÙ¤ÈÀºÅ٤ΥХé¥ó¥¹¤¬¼è¤ì¤Æ¤¤¤Æ¡¢Îɤµ¤½¤¦¤Ç¤¹¡£
¤½¤³¤Çº£²ó¤Ï¡¢¸íº¹Ì󣱡ó¤Î·×»»ÊýË¡¤Î30¥Ó¥Ã¥ÈÈǤòºî¤Ã¤Æ¤ß¤Þ¤·¤¿¡£
¡¡¡¡¡¡¡¡/* ¸¶ÅÀ¤ÈÅÀ (x, y) ¤Îµ÷Î¥¤òµá¤á¤Þ¤¹¡£
¡¡¡¡¡¡¡¡ * [in]
¡¡¡¡¡¡¡¡ *¡¡¡¡¡¡x, y¡¡¡¡¡¡¡¡¡¡¡¡µ÷Î¥¤òµá¤á¤ëºÂɸ
¡¡¡¡¡¡¡¡ * [out]
¡¡¡¡¡¡¡¡ *¡¡¡¡¡¡Ìá¤êÃÍ¡¡¡¡¡¡¡¡¡¡¸¶ÅÀ¤ÈÅÀ (x, y) ¤Îµ÷Î¥
¡¡¡¡¡¡¡¡ * [note]
¡¡¡¡¡¡¡¡ *¡¡¡¡¡¡* µ÷Î¥¤Î¶á»÷¤ò¤â¤È¤á¤ë·×»»¼°¡§
¡¡¡¡¡¡¡¡ *¡¡¡¡¡¡¡¡¡¡¡¡¡¡|x|>|y|¤Î¤È¤¡¢|x|+((|y|*|y|/|x|*55)>>7)
¡¡¡¡¡¡¡¡ *¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ê¸íº¹¤Ï¡ÞÌ󣱡ó¡Ë
¡¡¡¡¡¡¡¡ */
¡¡¡¡¡¡¡¡int hypot4(int x, int y);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡