H8/3664F¥Ü¡¼¥É¤Ë¥â¥Ë¥¿¤òºÜ¤»¤ë¤¾




H8/3664F¥Ü¡¼¥É¤Ë¥â¥Ë¥¿¤òºÜ¤»¤ë¤¾

2003/MAY/19

¥ë¥Í¥µ¥¹¥Æ¥¯¥Î¥í¥¸¤µ¤ó¤«¤é¡¢H8/300HÍÑ¥â¥Ë¥¿3.0A¤¬¥ê¥ê¡¼¥¹¤µ¤ì¤ë¤ÈƱ»þ¤ËTinyÈÇ (¥Ð¡¼¥¸¥ç¥óɽµ­¤Ï2.0A)¤â¥ê¥ê¡¼¥¹¤µ¤ì¤Þ¤·¤¿¡£½©·î¤µ¤ó¤Î3664F¥Ü¡¼¥É¤Ï¤Û¤Ü °ì¼ïÎष¤«¤Ê¤¯¡¢¥á¥â¥êÁýÀßÅù¤Ë¤è¤ë¥«¥¹¥¿¥Þ¥¤¥º¤ÎɬÍפâ̵¤¤¤³¤È¤«¤é ¥Ü¡¼¥É¥Ð¥ó¥É¥ëÈǤÈÈæ¤Ù¤Æ¤Ó¤Ã¤¯¤ê¤¹¤ë¤è¤¦¤Ê¥á¥ê¥Ã¥È¤Ï̵¤¤¤«¤Ê¡Ä ¤Þ¤¢¡¢¥á¥â¥ê¤ÎʬÃǤϤʤ¯¤»¤Þ¤¹:-)
̵ÊݾڤǤ¹¡£³Æ¼«¤ÎÀÕǤ¤Ë¤ª¤¤¤Æ¤ª´ê¤¤¤·¤Þ¤¹¡£
¤°¤º¤°¤º¸À¤Ã¤Æ¤Í¡¼¤Ç¤¤¤¯¤¾
·»µ®ÈǤÎÊý¤Ë¤â¤¦¤¹¤³¤·¾Ü¤·¤¤ÀâÌÀ¤¬¤¢¤ê¤Þ¤¹¡£(¤½¤Ã¤Á¤Ï¤½¤Ã¤Á¤Ç¤ï¤«¤ê¤Ë¤¯¤¤¤Î¤À¤±¤É^^;)
DOSÈǽèÍý·Ï¤Ç°ã¤¦¤È¤³¤À¤±¤Á¤ç¤¤½ñ¤¯¤È

HEW¡ÊC/C++ Compiler Ver. 4.0¡ËÂбþÈÇ¡¡H8/300H TinyÍÑ¡¡¥â¥Ë¥¿¥×¥í¥°¥é¥à ¤«¤éºî¤ê¤Þ¤¹¡£Å¬Åö¤Ë¤Ö¤Á¤Þ¤±¤Æ¤¯¤À¤µ¤¤¡£
source/myMon/3664F/¥Ç¥£¥ì¥¯¥È¥ê¤òºî¤ê¤Þ¤¹¡£Ì¾Á°¤Ï²¿¤Ç¤âOK¤Ç¤¹¤¬ ¿¼¤µ¤¬ÊѤï¤ë¤È¤­¤Ï°Ê²¼¤Î¥ê¥ó¥«¥¹¥¯¥ê¥×¥È¤ò½ñ¤­´¹¤¨¤Æ¤¯¤À¤µ¤¤¡£
monitor.src(¥Ñ¥Ã¥±¡¼¥¸¤ÎÃæ¤Ë¤¢¤ê¤Þ¤¹)¤òsource/myMon/3664F/¤Ë ¤â¤Ã¤Æ¤­¤Æ¥¢¥»¥ó¥Ö¥ë¤·¤Þ¤¹¡£¥ª¥×¥·¥ç¥ó¤Ï-cpu=300hn°Ê³°ÆÃ¤ËɬÍפ¢¤ê¤Þ¤»¤ó¡£
source¤Î²¼¤Ë¤¢¤ëfile.src¤ò¤«¤¿¤Ã¤Ñ¤·¤«¤é¥¢¥»¥ó¥Ö¥ë¤·¤Þ¤¹¡£¥ª¥×¥·¥ç¥ó¤ÏÁ´¤¯ÉÔÍס£
NORTIP°Ê²¼¤ÏNORTIP/3664/file.src¤Î¤ß¤Ç½¼Ê¬¡£
¥ê¥ó¥¯¤·¤Þ¤¹¡£source/myMon/3664F/¤«¤éLNK /sub=makeLNK3.txt¤ÇOK¡£
makeLNK3.txt¤Ï¤³¤ó¤Ê¤È¤³¤Ç¤·¤ç¤¦¤«¡£

ROM¾Æ¤­¤ÇɬÍפʤé¤Ð¡¢¤ª¼ê»ý¤Á¤Î¥Ä¡¼¥ë¤ÇMONITOR.ABS¤òMONITOR.MOT¤ËÊÑ´¹¤·¤Æ¤¯¤À¤µ¤¤¡£
VECTOR0x00000x003f(¥â¥Ë¥¿¤¬Æâ½ï¤Ç»È¤Ã¤Æ¤ë)³ä¹þ¥Ù¥¯¥¿
ROM0x00400x4979¥â¥Ë¥¿ËÜÂÎ
¤Ê¤·0xf7800xfe00¤È¤«¥Õ¥ê¡¼Îΰè
STACK0xfe00¤È¤«0xfe80¥¹¥¿¥Ã¥¯
RAM0xfe800xff3f(¥â¥Ë¥¿¤¬Æâ½ï¤Ç»È¤Ã¤Æ¤ë)¥ï¡¼¥¯
USER0xff400xff7f¥æ¡¼¥¶¤«¤é¸«¤¿(²¾ÁÛ)³ä¹þ¥Ù¥¯¥¿
IO0xff800xffffI/OÎΰè

¤¿¤È¤¨¤ÐTMA¥ª¡¼¥Ð¡¼¥Õ¥í¡¼³ä¹þ¤ß(ÈÖ¹æ19)¤ÇTMAOverFlowHandler(void)¤ò¸Æ¤ó¤Ç¤â¤é¤¦¤Ë¤Ï¡Ä
    void **VECTOR;
    VECTOR=(void **)0xff40;
    VECTOR[19]=(void *)TMAOverFlowHandler;
 /* VECTOR[23]=(void *)SCI3Handler; */
	
¤È¤¹¤ë(¤â¤Á¤í¤ó³ä¤ê¹þ¤ß¤òµö²Ä¤¹¤ëÁ°¤Ë¤Ç¤¹¤è)¤È´Êñ¤Ç¤¹¡£

printf()/scanf()¤âÆþ¤ì¤Æ¤ß¤è¤¦
¥Ð¡¼¥¸¥ç¥ó2.0A¤Î¥¦¥ê(?)¤Ç¤¹¡£¤¿¤À¤·ÉâÆ°¾®¿ôÅÀ̵¤·ÈǤȤϤ¤¤¨Á´ÂΤÇÌó27KB¤È¤Õ¤¯¤ì¾å¤¬¤Ã¤Æ¤·¤Þ¤¤¡¢¤â¤Ï¤äROM¤Ë¤Ï ¤ï¤º¤«Ìó5KB¤ò»Ä¤¹¤Î¤ß¡£¤¤¤«¤Ë²÷Ŭ¤ÊËí¤Ç¤â¥Ù¥Ã¥É¤Î85%¥µ¥¤¥º¤Ç¤Ï¡Ä
¥¢¡¼¥«¥¤¥Ö¤ËźÉÕ¤µ¤ì¤ëreadme.htm¤Ë½¾¤¤¤Þ¤¹¡£¤³¤ì¤Þ¤¿·»µ®ÈǤˤ⤦¤Á¤ç¤¤ ¾Ü¤·¤¯¤«¤Ä¤ï¤«¤ê¤Ë¤¯¤¯(^^;)½ñ¤­¤Þ¤·¤¿¤Î¤ÇÉÔÌÀ¤ÎÅÀ¤Ï»²¹Í¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡£

lower.c(¥¢¡¼¥«¥¤¥Ö¤µ¤ì¤Æ¤¤¤Þ¤¹)¤Ë
/*struct st_sci *SCI = __sectop("SCI");            SCI Register Address */
¤¬Æó¥ö½ê¤¢¤ê¤Þ¤¹¤Î¤Ç¡¢¤¤¤º¤ì¤â
struct st_sci *SCI = (struct st_sci *)0xffa8;   /* SCI Register Address */
¤ËÊѹ¹¤·¤Þ¤¹¡£
¥ê¥ó¥«¥¹¥¯¥ê¥×¥ÈÊѹ¹ÅÀ
in ..\..\NORMOD\MOD35.obj ¤òºï½ü
in ..\lower\lower ¤òÄɲÃ
lib YourDir\c38hn ¤òÄɲÃ
DEFINE $STACK(0FE40) ¤ËÊѹ¹
START VECTOR,ROM,P,C(0),B(0FE40),RAM(0FE80),USER(0FF40),SCI(0FFA8) ¤ËÊѹ¹

¸Æ¤Ó½Ð¤·Â¦¤ÎºÙ¹©¡¢(ɬÍפʤé)FOPEN¤ÎÄɲäʤɤϷ»µ®ÈÇ¤ÈÆ±ÍͤǤ¹¡£
¤¦¤°¤°¡£¥¹¥¿¥Ã¥¯¤òÆÃÄê¤Î¥Ñ¥¿¡¼¥ó(¤¢¤ê¤¬¤Á¤Ê¤Î¤Ï0xA5)¤ÇËä¤á¤Æ¤«¤é
main()
{
    int a,b;
    scanf("%d%d",&a,&b);
    printf("Hello World! %x %x\n",a,b);
    trapa(3);
}
¤òή¤·¤Æ¥¹¥¿¥Ã¥¯¤Î±ø¤ìÊý¤ò¸«¤ë¤È¡¢Ìó390¥Ð¥¤¥È¹Ô¤¯¤ß¤¿¤¤¤Ç¡¢¤Þ¤¹¤Þ¤¹¤­¤Ó¤·¤¤¡Ä

[ÄɲÃ.03/JUL/10]
»ö¾ð¤¬¤¢¤Ã¤Æprintf()/scanf()¤¬¥â¥Ë¥¿¤ËÁȤ߹þ¤á¤Ê¤¤(ÁȤ߹þ¤ß¤¿¤¯¤Ê¤¤)¤¢¤Ê¤¿¤Ø
¥â¥Ë¥¿ÆâÉô¤Ëputs()¤ägets()¤ËÁêÅö¤¹¤ë¥ë¡¼¥Á¥ó¤¬ÅöÁ³¤¢¤ë¤ï¤±¤Ç¡¢ ¤½¤¤¤Ä¤é¤ò¸Æ¤ó¤Ç¤ä¤í¤¦ºîÀï¤Ç¤¹¡£ ¥æ¡¼¥¶¥×¥í¥°¥é¥à¤«¤éC¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ç°ú¿ô ¤ò¼õ¤±¼è¤ê¡¢³Æ¥â¥Ë¥¿ÆâÉô¥ë¡¼¥Á¥ó¤Î»ÅÍͤ˹ç¤ï¤»¤¿°ú¿ô¤òÀßÄꤷ¤Æ¤«¤é¸Æ¤Ó¤À¤·¤Æ¤¤¤Þ¤¹¡£


¸½¾õÍøÍѤǤ­¤ë´Ø¿ô
  • char *OUT_STRING(const char *buf)¡Äʸ»úÎóbuf¤òSCI1¤ËÁ÷¤ê¤Þ¤¹¡£Ìá¤êÃͤÏbuf¤ÎºÇ¸å¤Ç¤¹¤¬»È¤¤Æ»¤Ï ¤Ê¤¤¤Ç¤·¤ç¤¦^^;
  • char *OUT_STRINGZ(const char *buf)¡Ä[ÄɲÃ.03/OCT/29](0.02A) ʸ»úÎóbuf¤òSCI1¤ËÁ÷¤ê¤Þ¤¹¡£Ìá¤êÃͤÏbuf¤ÎºÇ¸å¤Ç¤¹¤¬»È¤¤Æ»¤Ï ¤Ê¤¤¤Ç¤·¤ç¤¦^^;bufÆâ¤ËLF¤¬¤¢¤Ã¤¿¾ì¹ç¤ÏCR¤òÉղä·CRLF¤È¤·¤ÆÁ÷½Ð¤·¤Þ¤¹¡£
  • long OUT_CHAR(short dat)¡Ädat(¤Î²¼°Ì¥Ð¥¤¥È)¤òSCI1¤ËÁ÷¤ê¤Þ¤¹¡£Ìá¤êÃͤÏ0L¸ÇÄê
  • long OUT_CRLF(void)¡ÄCR/LF¤òSCI1¤ËÁ÷¤ê¤Þ¤¹¡£Ìá¤êÃͤÏ0L¸ÇÄê
  • long BIN_ASC_8(long var)¡Ävar¤ò"%08lX"·Á¼°¤Ë¤·¤ÆSCI1¤ËÁ÷¤ê¤Þ¤¹¡£Ìá¤êÃͤÏ0L¸ÇÄê¡£ BIN_ASC_6(),BIN_ASC_4(),BIN_ASC_2()¤Ï·å¿ô°ã¤¤ÈÇ¡£
  • long IM_STRING(char *buf)¡ÄSCI1¤«¤é²þ¹Ô¤Þ¤Ç¤ò¼õ¤±¤Æbuf¤ËÁ÷¤ê¤Þ¤¹¡£ CR/LF¤ÏÉÕ¤­¤Þ¤»¤ó¤¬NULL¤ÏÉÕ¤­¤Þ¤¹¡£¥¨¥³¡¼¥Ð¥Ã¥¯Í­¡£Ìá¤êÃͤÏ0L¸ÇÄê¡£
  • short IN_CHAR(void)¡ÄSCI1¤«¤é£±¥Ð¥¤¥È¼õ¤±¼è¤ê¤Þ¤¹¡£Ìá¤êÃͤϼõ¤±¤¿¥Ç¡¼¥¿ (short¤Ç0¡Á255) EOF/EOT¤âʸ»ú²½¤±¤â¸«¤Æ¤¤¤Þ¤»¤ó
  • long ASC_BIN_8(char *buf)¡Äbuf¤Î16¿Êʸ»úÎó(Âçʸ»ú¤Î¤ß¡£¥Ì¥ë¥¿¡¼¥ß¥Í¡¼¥È)¤ò long¤ËÊÑ´¹¤·Ìá¤êÃͤȤ·¤Þ¤¹
  • void BACK(void)¡Ä[ÄɲÃ.03/JUL/13](0.01G) ˺¤ì¤Æ¤Þ¤·¤¿¡£(^^;)¥â¥Ë¥¿¤Ë°ÂÁ´¤Ë(?)Ìá¤ê¤Þ¤¹¡£


¥¢¥»¥ó¥Ö¥é¤«¤é¸Æ¤Ó¤¿¤¤¤Ã
  • ¥Ý¥¤¥ó¥¿·¿/long·¿°ú¿ô¤ÏER0¤Ë¡¢short·¿°ú¿ô¤ÏR0¤Ë¤ª¤¤¤Æ¤¯¤À¤µ¤¤
  • longÌá¤êÃͤÏER0¤Ë¡¢shortÌá¤êÃͤÏR0¤ËÆþ¤Ã¤Æ¤­¤Þ¤¹
  • ER0/ER1¤ÏÇ˲õ¤µ¤ì¤Þ¤¹¡£ER2-ER7¤ÏÊݸ¤µ¤ì¤Þ¤¹¤Î¤ÇÂàÈò¤ÎɬÍפϤ¢¤ê¤Þ¤»¤ó(¤Î¤Ï¤º^^;)

mon3glue.mar

ÁȤ߹þ¤ßÊý¤Ï¼«Í³¤Ç¤¹¤¬
  • ÊÌ¥Õ¥¡¥¤¥ë¤Ë¤¹¤ë¡£¤½¤Î¾ì¹ç.section NANKA¤ò»ØÄꤷ¤Æ¤¯¤À¤µ¤¤
  • MONITOR.src¤Î¸å¤í¤Ë¤Á¤ç¤Á¤ç¤¤¤Ècopy&paste¡£¤ª¼ê·Ú¡¢¥ª¥¹¥¹¥á¡£¥ê¥ó¥«¥¹¥¯¥ê¥×¥È¤ÏÊѹ¹ÉÔÍפǤ¹¡£
  • target.c¦¤Ë¥ê¥ó¥¯¤¹¤ë¡£¥â¥Ë¥¿¤Ï½ãÀµ¤Î¤Þ¤Þ¼ê¤ò¤Ä¤±¤¿¤¯¤Ê¤¤Êý¸þ¤±

mon3glue.h¡Ä¥æ¡¼¥¶¥×¥í¥°¥é¥à¦¥×¥í¥È¥¿¥¤¥×Àë¸À
symPick.jsÅù¤Ç¼«Æ°Åª¤Ë¥¢¥É¥ì¥¹¤Î¼è¤ê¹þ¤á¤ëÊýÍÑ


gccÅù¤Ç¥¢¥É¥ì¥¹¤ò¼êÆþÎϤ¹¤ëÊýÍÑ¡£Éú¤»»ú¤ÎÉôʬ¤Ïmonitor.MAP¤ò¸«¤Æ½ñ¤­´¹¤¨¤Æ¤¯¤À¤µ¤¤

[ÄɲÃ.03/OCT/30]
½ãÀµ¥¢¥»¥ó¥Ö¥éÍÑzprintf()/zzprintf()

´¶ÁۤʤɤÏ
¥á¡¼¥ë¤Ï¤³¤Á¤é ¤Þ¤¿¤Ï¤³¤Á¤é¤Î ¥Õ¥©¡¼¥à¤Ï¤³¤Á¤é ¤«¤é¤É¤¦¤¾¡£
¤Ä¤Ã¤³¤ß¤â¤ä¤ó¤ï¤ê¤È¤Ê¤é´¿·Þ¤·¤Þ¤¹¡£

¥È¥Ã¥×¥Ú¡¼¥¸¤Ø¤â¤É¤ë