(1) ROMÆâ¤Î¤É¤³¤Ë¾Æ¤«¤ì¤¿¤«RAM¦¤«¤é¤ï¤«¤ó¤Ê¤¤¤Ç¤¹¡£¤½¤³¤Ç¤³¤ó¤ÊÉ÷¤Ë¤·¤Æ¤Þ¤¹¤¬¤É¤¦¤Ç¤·¤ç¤¦¡©
(2) ROM¦¤«¤éRAM¾å¤Î´Ø¿ô¤ò¸Æ¤Ö»þ
(1) monitor.abs¤ämonitor.mot¤ò²òÀϤ·¡¢¤¿¤È¤¨¤ÐC¤Ê¤é¤Á¤Ê¤ß¤ËABS·Á¼°¤Ê¤écat monitor.abs rom.abs > romAll.abs ¤Ç¥ê¥ó¥¯¤â¤É¤¤Ç¤¤Á¤ã¤¦¤ß¤¿¤¤¤Ç¤¹¡£MOT·Á¼°¤Ç¤âS0/S8/S9¤¢¤¿¤ê¤Ä¤¸¤Ä¤Þ¤¢¤ï¤»¤ì¤Ð¤Ç¤¤½¤¦¤Ç¤¹¤±¤É¡Ä
ulong monitor[] = {0x00000120,0x0002310,......}; ·Á¼°¤òºî¤ë¡£mot·Á¼°¤Ê¤é¤³¤ì¤¬¸½¼ÂŪ¤Ç¤¹¤«¤Í¡£abs·Á¼°¤ÏÆâÉô¹½Â¤Ä´¤Ù¤Ê¤¤¤È¤ï¤«¤ó¤Ê¤¤¤Ç¤¹¤±¤É¡£
(2) printf("0x%04x\r\n",*soko++); ¤ß¤¿¤¤¤Ê¤³¤È¤¬¤Ç¤¤ë¤Ê¤é¤³¤Ã¤Á¤¬´Êñ¡£¤¢¤¿¤·¤Ï¤³¤ì¤Ç¤ä¤ê¤Þ¤·¤¿¡£
(3) ÆüΩ¤µ¤ó¤Î¥ª¥ê¥¸¥Ê¥ë¥½¡¼¥¹¤«¤éºî¤ë¡£¤È¤¤¤Ã¤Æ¤â80¸Ä°Ì¤Î¥½¡¼¥¹¤Ä¤Ê¤¤¤Çºî¤ë¤ó¤Ç¡¢.obj¤È.obj¤Ä¤Ê¤¤¤Ç.obj¤¬ºî¤ì¤ë¥ê¥ó¥«¤Ç¤Ê¤¤¤È¤Ä¤é¤¤¤Ç¤¹¡£¤¤¤ï¤æ¤ëLNK.EXE¤Ç¤Ï¤Ç¤¤Ê¤«¤Ã¤¿¤è¤¦¤Ê¡Ä
(1) monitor.obj¤Èrom.c¤ò¤Ä¤Ê¤¤¤Çrom.mot¤Èrom.map¤òºî¤ë¤Á¤È¼ê½ç¤¬¹þ¤ßÆþ¤ê¤Þ¤¹¤Î¤Ç¡¢¤Á¤ã¤ó¤È¤·¤¿make.exe¤Ïɬ¼û¤Ç¤¹¡£¤Á¤Ê¤ß¤Ë¥¢¥»¥ó¥Ö¥éÎà¤Ï¥á¥Ã¥»¡¼¥¸¤¬¤¦¤ë¤µ¤¯¤Æ¤Þ¤ë¤ÇUNIXÉ÷¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¤¬¡¢exit¥³¡¼¥É¤Ï¤¤Á¤ó¤ÈÊÖ¤·¤Æ¤¯¤ì¤Þ¤¹¡£¥ê¥ó¥«¤¬¤«¤Ê¤ê¤ä¤Ð¤¤¾õ¶·¤Ç¤âWarning/exit(0)¤·¤Á¤ã¤¦¤Î¤¬º¤¤ê¤â¤Î¤Ç¤Ï¤¢¤ê¤Þ¤¹¡£
(2) rom.map¤ò²òÀϤ·¤ÆromSym.mar¤òºî¤ë(romSym.c¤òºî¤í¤¦¤È¤¹¤ë¤È·¿ÊÑ´¹¤Ç¶ìÏ«¤·¤Þ¤¹)
¤³¤³¤¬´Î¤Ç¡Ärom.map¤Ë"sci3Init()¤Ï0x5234¤«¤é»Ï¤Þ¤Ã¤Æ¤ë¤è"¤Ã¤Æ½ñ¤¤¤Æ¤¢¤ê¤Þ¤¹¤«¤é(3) ram.c¤ÈromMap.mar¤ò¤Ä¤Ê¤¤¤Çram.abs¤Ê¤êram.mot¤Ê¤êºî¤ê¤Þ¤¹¡£
.export _sci3Init¤ß¤¿¤¤¤Ê¤Î¤òºî¤ê¤Þ¤¹¡£DOS/win¤ÇC¤ä¥Æ¥¥¹¥È½èÍý¸À¸ì¤Î»È¤¨¤ëÊý¤Ê¤é´Êñ¤Ç¤¹¡£¤¢¤¿¤·¤Ïwsh+JScript¤Ç¤ä¤Ã¤Æ¤Þ¤¹¡£(¤ï¤©^^;)ÆüΩ¤µ¤ó¤Î¾¦ÍÑÈÇ¡©¥ê¥ó¥«¤Ç¤Ï¥ê¥ó¥«¤¬ÅǤ¤¤Æ¤¯¤ì¤ë¤ß¤¿¤¤¤Ç¤¹
_sci3Init: .equ H'00005234
¤³¤ÎJScript¥¹¥¯¥ê¥×¥È¤Ï ¤³¤³¤«¤é¥À¥¦¥ó¥í¡¼¥É¤Ç¤¤Þ¤¹¡£[03/MAR/13]
myGlue(int why,int what)
{
switch(why) {
case INITPSE: myInitOnRAM(); for(;;) sleep(); /*MainLoop*/
case GOT232C: got232cIntrOnRAM(what); break;
case TMVINTR: tmvIntrOnRAM(what); break;
case MAKING: makingOnRAM(what); break;
}
}
¤Ã¤Æ¤Ê´¶¤¸¡£makingOnRAM(n) ¤ò¸Æ¤Ö¤È¤³¤Ï¥Þ¥¯¥í¤ÇmyGlue(MAKING,n)¤È¤Ç¤â¤·¤Æ¤ª¤¯¤È¤¤¤¤¤Ç¤·¤ç¤¦¡£#ifdef ROM¤Ê´¶¤¸¡£ram.c½ñ¤¤¤Æ¤ÆstaticÊÑ¿ôd¤¬Íߤ·¤¯¤Ê¤Ã¤¿¤È¤¤Ï¡¢¤È¤ê¤¢¤¨¤º
int a,b,c;
int myReserve[8];
#else
extern int a,b,c;
extern int myReserve[8];
#endif
(1) ram.c¤ÎÁ´¤Æ¤òROM¤Ë°Ü¤·¤Þ¤¹¡£¤³¤Î»þÅÀ¤Ç"g 4d00"¤À¤±¥¡¼¥¤¥ó¤¹¤ì¤Ð(¥À¥¦¥ó¥í¡¼¥É¤Ê¤·¤Ç)ư¤¤Þ¤¹¡£¤¦¤ï¤Ã¡£¤³¤ê¤ã½ñ¤¤¤Æ¤ß¤ÆÍð˽¤À¤Ê¤¡¡£
(2) monitor¤Ë¥Ñ¥Ã¥Á¤òÅö¤Æ¤Þ¤¹¡£monitor¤ÏΩ¤Á¾å¤¬¤Ã¤¿¤¢¤ÈINSTRING¤«¤Ê¤ó¤«¤¤¤¦¥ë¡¼¥Á¥ó¤ò¥³¡¼¥ë¤·¤Þ¤¹¡£¤½¤³¤òmyINSTRING¤ò¸Æ¤Ö¤è¤¦¤Ë¥Ñ¥Ã¥Á¤·¤Þ¤¹¡£
mySTRING()
{
¡¡¡¡if(dipSW==ON)
¡¡¡¡¡¡¡¡INSTRING();/*¥ª¥ê¥¸¥Ê¥ë¤Î¥â¥Ë¥¿Æ°ºî*/
¡¡¡¡else
¡¡¡¡¡¡¡¡strcpy(KINBUF,"g 4d00\r");/*¥¡¼ÆþÎÏ¥¨¥ß¥å¥ì¡¼¥·¥ç¥ó*/
}
z¥³¥Þ¥ó¥É¡ÄWDT(¥¦¥©¥Ã¥Á¥É¥Ã¥°¥¿¥¤¥Þ)¤Ç¥ê¥»¥Ã¥È¤¹¤ë¤À¤±¤Ç¤¹(^^;): : z H8/3052 Advanced Mode Monitor Ver. 3.0A Copyright (C) 2003 Renesas Technology Corp. :
³ä¤ê¹þ¤ßÂбþ¡Ä¥â¥Ë¥¿¤Î¥³¥Þ¥ó¥ÉÂÔ¤ÁÃæ¤Ë³ä¤ê¹þ¤ß¤ò¼õ¤±ÉÕ¤±¤Þ¤¹(UNIX¤ÊÊý¤Ïa.out& ¤òÁÛÁü¤·¤Æ¤â¤é¤¦¤È´¶¤¸¤Ï¶á¤¤¤Ç¤¹): 0022 0023 m 0;l 000000 000046A2 ? . : 0024 0025 (itu¤Ç1Éäòºî¤ê¡¢printf()¤·¤Æ¤Þ¤¹¡£¥¡¼ÆþÎϤ¬¤¢¤ì¤Ð¥ê¥¿¡¼¥óÆþÎϤޤdzä¹þ¤ß¶Ø»ß¤Ç¤¹)
USB¤«¤é¼«Æ°¥À¥¦¥ó¥í¡¼¥É¡Ä¤Ï·×²èÃæ¤Ç¤¹¡£¥³¥Þ¥ó¥ÉÂÔ¤Á¤ÇIRQ5¤µ¤¨¼õ¤±ÉÕ¤±¤ì¤Ð ¡Ö¤¤¤Ä¤Î¤Þ¤Ë¤«RAM¤ËŸ³«¤µ¤ì¤Æ¤ë¡×¤¬²Äǽ¤Ê¤Ï¤º¡Ä
n¥³¥Þ¥ó¥É¡Ä¥¢¥É¥ì¥¹¢Í¥·¥ó¥Ü¥ë¤ä¥·¥ó¥Ü¥ë¢Í¥¢¥É¥ì¥¹ÊÑ´¹: n 782e 0000782E : _printf : n _scanf 00007D88 : _scanf :
¤Û¤È¤ó¤É¤Î¥³¥Þ¥ó¥É¡Ä¥¢¥É¥ì¥¹¤Î¤«¤ï¤ê¤Ë¥é¥Ù¥ë¤¬»È¤¨¤Þ¤¹: da _scanf ¡ãADDR¡ä ¡ãCODE¡ä ¡ãMNEMONIC¡ä ¡ãOPERAND¡ä 007D88 01006DF6 PUSH.L ER6 007D8C 7A0600000004 MOV.L #H'00000004:32,ER6 007D92 7A0000000008 MOV.L #H'00000008:32,ER0 007D98 0AF0 ADD.L ER7,ER0 007D9A 0AE0 ADD.L ER6,ER0 : m _intrCount ;l 220492 00000AE5 ? . :
¤Þ¤¿¤Ï¤³¤Á¤é¤Î
¤«¤é¤É¤¦¤¾¡£
¤Ø¤â¤É¤ë