¥Æ¥¯¥Ï¥ówiki

7¾Ï ¥¹¥í¥Ã¥È¤È¥«¡¼¥È¥ê¥Ã¥¸

¡¡MSX¤Ç»ÈÍѤµ¤ì¤Æ¤¤¤ëCPU(Z80)¤Ï¡¢Ä̾ï64K¥Ð¥¤¥È(0000H¡ÁFFFFH)¤Î¥¢¥É¥ì¥¹¶õ´Ö¤·¤«¥¢¥¯¥»¥¹¤Ç¤­¤Þ¤»¤ó¡£¤·¤«¤·¡¢MSX¤Ï1M(¥á¥¬)¥Ð¥¤¥È¤ËÁêÅö¤¹¤ë¶õ´Ö¤ò¼«Í³¤Ë¥¢¥¯¥»¥¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¤³¤ì¤ÏMSX¤¬¡È¥¹¥í¥Ã¥È¡É¤Î³µÇ°¤òºÎÍѤ·¡¢Æ±°ì¤Î¥¢¥É¥ì¥¹¤ËÊ£¿ô¤Î¥á¥â¥ê¤¢¤ë¤¤¤Ï¥Ç¥Ð¥¤¥¹¤ò³ä¤êÅö¤Æ¤ëµ¡Ç½¤òÈ÷¤¨¤Æ¤¤¤ë¤«¤é¤Ç¤¹¡£
¡¡ËܾϤǤϡ¢¤³¤Î¥¹¥í¥Ã¥È¤Î»ÈÍÑË¡¡¢¤ª¤è¤Ó¥¹¥í¥Ã¥È¤ò²ð¤·¤ÆMSX¤Ë¥«¡¼¥È¥ê¥Ã¥¸¥½¥Õ¥È¤ä¿·¤·¤¤¥Ç¥Ð¥¤¥¹¤òÀܳ¤¹¤ë¤¿¤á¤ËɬÍפȤʤë¾ðÊó¤ò¾Ò²ð¤·¤Æ¤¤¤­¤Þ¤¹¡£

 7.1¡¡¥¹¥í¥Ã¥È

¡¡¥¹¥í¥Ã¥È¤ÏÂçÎ̤Υ¢¥É¥ì¥¹¶õ´Ö¤ò³ÎÊݤ¹¤ë¤¿¤á¤Î¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤ÎÌòÌܤò¤¹¤ë¤â¤Î¤Ç¡¢MSX¤Î¥¢¥É¥ì¥¹¥Ð¥¹¤ËÀܳ¤µ¤ì¤ë¥á¥â¥ê¤ä¥Ç¥Ð¥¤¥¹¤Ï¡¢¤¹¤Ù¤Æ¥¹¥í¥Ã¥È¤ò²ð¤·¤Æ¼ÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£¤½¤ì¤Ï¡¢ËÜÂÎÆâ¤Ë¤¢¤ëBASIC¤ÎROM¤Ç¤¢¤í¤¦¤ÈMSX-DOS¥â¡¼¥É»þ¤ÎRAM¤Ç¤¢¤í¤¦¤ÈÎã³°¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£¥«¡¼¥È¥ê¥Ã¥¸¥½¥Õ¥È¤òº¹¤¹¾ì½ê¤â¡¢1¤Ä¤Î¥¹¥í¥Ã¥È¤Ç¤¹¡£¤³¤³¤Ç¤Ï¡¢¥¹¥í¥Ã¥È¤ËÀܳ¤µ¤ì¤¿¥½¥Õ¥È¥¦¥§¥¢¤ä¥Ç¥Ð¥¤¥¹¤Î¼è¤ê°·¤¤Êý¤òÀâÌÀ¤·¤Þ¤¹¡£

7.1.1¡¡´ðËÜ¥¹¥í¥Ã¥È¤È³ÈÄ¥¥¹¥í¥Ã¥È

¡¡¥¹¥í¥Ã¥È¤Ë¤Ï´ðËÜ¥¹¥í¥Ã¥È¤È³ÈÄ¥¥¹¥í¥Ã¥È¤Î2¼ïÎब¤¢¤ê¤Þ¤¹¡£¡È´ðËÜ¥¹¥í¥Ã¥È¡É¤È¤Ï¡¢¿Þ5.36¤Ë¼¨¤¹¤è¤¦¤ËCPU¤Î¥¢¥É¥ì¥¹¥Ð¥¹¤Ëľ·ë¤¹¤ë¥¹¥í¥Ã¥È¤ò»Ø¤·¡¢MSX¤Î»ÅÍͤǤϺÇÂç4¸Ä»ý¤Ä¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£´ðËÜ¥¹¥í¥Ã¥È¤Ï¡¢¥¹¥í¥Ã¥È³ÈÄ¥¥Ü¥Ã¥¯¥¹¤òÀܳ¤¹¤ë¤³¤È¤Ë¤è¤ê(ËÜÂÎÆâ¤Ç³ÈÄ¥¤µ¤ì¤Æ¤¤¤ë¤³¤È¤â¤¢¤ë)¡¢ºÇ¹â4¸Ä¤Î¥¹¥í¥Ã¥È¤Ë³ÈÄ¥¤Ç¤­¡¢¤³¤Î»þ¤Î¥¹¥í¥Ã¥È¤ò¡È³ÈÄ¥¥¹¥í¥Ã¥È¡É¤È¸Æ¤Ó¤Þ¤¹¡£4¸Ä¤Î´ðËÜ¥¹¥í¥Ã¥È¤ò¤½¤ì¤¾¤ì4¤Ä¤Î³ÈÄ¥¥¹¥í¥Ã¥È¤Ë³ÈÄ¥¤·¤¿¾ì¹ç¡¢¥¹¥í¥Ã¥È¤Î¿ô¤ÏºÇÂç¤Î16¸Ä¤È¤Ê¤ê¡¢16¥¹¥í¥Ã¥È¡ß64K¥Ð¥¤¥È¡á1M¥Ð¥¤¥È¤Î¥¢¥É¥ì¥¹¶õ´Ö¤ò¥¢¥¯¥»¥¹¤¹¤ë¤³¤È¤¬²Äǽ¤Ç¤¹¡£
¡¡¤Ê¤ª¡¢³ÈÄ¥¥¹¥í¥Ã¥È¤Ë¤µ¤é¤Ë³ÈÄ¥¥Ü¥Ã¥¯¥¹¤òº¹¤·¹þ¤ó¤À¾ì¹ç¤Ï¥·¥¹¥Æ¥à¼«ÂΤ¬µ¯Æ°¤Ç¤­¤Ê¤¯¤Ê¤ê¤Þ¤¹¤Î¤Ç¡¢¤³¤Î¤è¤¦¤Ê¤³¤È¤Ï¹Ô¤ï¤Ê¤¤¤Ç¤¯¤À¤µ¤¤(MSXɸ½à¤Î¥«¡¼¥È¥ê¥Ã¥¸ÍÑ¥¹¥í¥Ã¥È¤Ï¤«¤Ê¤é¤º´ðËÜ¥¹¥í¥Ã¥È¤À¤¬¡¢³Æµ¡¼ï¤Î¥ª¥×¥·¥ç¥ó¥Ï¡¼¥É¥¦¥§¥¢ÀìÍÑ¥³¥Í¥¯¥¿¤Ï¡¢³ÈÄ¥¥¹¥í¥Ã¥È¤ËÀܳ¤µ¤ì¤Æ¤¤¤ë¤³¤È¤¬¤¢¤ë)¡£


¿Þ5.36¡¡´ðËÜ¥¹¥í¥Ã¥È¤È³ÈÄ¥¥¹¥í¥Ã¥È

¡¡³Æ¥¹¥í¥Ã¥È¤Ï0000H¡ÁFFFFH¤Þ¤Ç¤Î64K¥Ð¥¤¥È¤Î¥¢¥É¥ì¥¹¶õ´Ö¤ò»ý¤Á¤Þ¤¹¤¬¡¢MSX¤Ç¤Ï¤½¤ì¤ò16K¥Ð¥¤¥È¤º¤Ä4¤Ä¤Ëʬ¤±¡È¥Ú¡¼¥¸¡É¤È¤·¤Æ´ÉÍý¤·¤Æ¤¤¤Þ¤¹¡£CPU¤Ï¥Ú¡¼¥¸¤´¤È¤ËǤ°Õ¤Î¥¹¥í¥Ã¥È¤òÁªÂò¤·¤Æ¥¢¥¯¥»¥¹¤Ç¤­¡¢¿Þ5.37¤Î¤è¤¦¤Ë¡¢¤¤¤¯¤Ä¤«¤Î¥¹¥í¥Ã¥È¤«¤éɬÍפÊÉôʬ¤À¤±¤òÁª¤ó¤ÇÁȤ߹ç¤ï¤»¤ë¤³¤È¤â²Äǽ¤Ç¤¹¡£¤¿¤À¤·¡¢¤¢¤ëÈÖ¹æ¤Î¥Ú¡¼¥¸¤ò°Û¤Ê¤ëÈÖ¹æ¤Î¥Ú¡¼¥¸¤Ë³ä¤êÅö¤Æ¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó(¤Ä¤Þ¤ê¡¢³Æ¥¹¥í¥Ã¥È¤Î¥Ú¡¼¥¸n¤Ï¡¢CPU¤«¤é¸«¤Æ¤â¥Ú¡¼¥¸n¤Ç¤¢¤ë)¡£


¿Þ5.37¡¡¥Ú¡¼¥¸¤ÎÁªÂò¤ÎÎã

7.1.2¡¡¥¹¥í¥Ã¥È¤ÎÁªÂò

¡¡¥¹¥í¥Ã¥È¤ÎÁªÂòÊýË¡¤Ï¡¢´ðËÜ¥¹¥í¥Ã¥È¤È³ÈÄ¥¥¹¥í¥Ã¥È¤Ç¤Ï°Û¤Ê¤ê¤Þ¤¹¡£´ðËÜ¥¹¥í¥Ã¥È¤Î¾ì¹ç¤ÏA8HÈÖÃϤÎI/O¥Ý¡¼¥È¤Ë¤è¤Ã¤Æ¹Ô¤¤(¿Þ5.38)¡¢³ÈÄ¥¥¹¥í¥Ã¥È¤Î¾ì¹ç¤Ï¼ÂÁõ¤µ¤ì¤¿³ÈÄ¥¥«¡¼¥È¥ê¥Ã¥¸¤Î¡È³ÈÄ¥¥¹¥í¥Ã¥ÈÁªÂò¥ì¥¸¥¹¥¿(FFFFH)¡É¤Ë¤è¤Ã¤Æ¹Ô¤¤¤Þ¤¹(¿Þ5.39)¡£¤·¤«¤·¡¢¤½¤ì¤é¤òľÀÜÊѹ¹¤¹¤ë¤³¤È¤ÏÂçÊÑ´í¸±¤Ç¤¹¤«¤é¡¢¥¹¥í¥Ã¥È¤ÎÀڤ괹¤¨¤ÏÉÔÍװդ˹Ԥï¤Ê¤¤¤Ç¤¯¤À¤µ¤¤¡£Æäˡ¢¥×¥í¥°¥é¥à¤¬¼«Ê¬¼«¿È¤Î¤¤¤ë¥Ú¡¼¥¸¤Î¥¹¥í¥Ã¥È¤òÀڤ괹¤¨¤¿¾ì¹ç¡¢Æ°ºî¤ÏÊݾڤµ¤ì¤Þ¤»¤ó¡£Â¾¤Î¥¹¥í¥Ã¥È¤Ë¤¢¤ë¥×¥í¥°¥é¥à¤ò¸Æ¤Ó½Ð¤·¤¿¤¤¾ì¹ç¤Ï¡¢¼¡Àá¤ÇÀâÌÀ¤¹¤ë¥¤¥ó¥¿¡¼¥¹¥í¥Ã¥È¥³¡¼¥ë¤ò»ÈÍѤ·¤Æ¤¯¤À¤µ¤¤¡£


¿Þ5.38¡¡´ðËÜ¥¹¥í¥Ã¥È¤ÎÁªÂò


¿Þ5.39¡¡³ÈÄ¥¥¹¥í¥Ã¥È¤ÎÁªÂò

¡¡¤É¤³¤Î¥¹¥í¥Ã¥È¤ËMAIN-ROM¤äRAM¤¬¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¤«¡¢¤Þ¤¿¥«¡¼¥È¥ê¥Ã¥¸ÍѤΥ¹¥í¥Ã¥È¤¬²¿È֤Υ¹¥í¥Ã¥È¤Ç¤¢¤ë¤«¤Ïµ¡¼ï¤Ë¤è¤Ã¤Æ°Û¤Ê¤ê¤Þ¤¹¡£¤â¤·¼ê»ý¤Á¤ÎMSX¤¬¤É¤Î¤è¤¦¤Ë¥¹¥í¥Ã¥È¤ò»ÈÍѤ·¤Æ¤¤¤ë¤«¤òÃΤꤿ¤¤¿Í¤Ï¥Þ¥Ë¥å¥¢¥ë¤Ê¤É¤ÇÄ´¤Ù¤Æ¤¯¤À¤µ¤¤¡£¤·¤«¤·¡¢MSX¤Ï¤É¤Î¥¹¥í¥Ã¥È¤Ë²¿¤¬¤¢¤í¤¦¤ÈÀµ¾ï¤ÊÆ°ºî¤¬¤Ç¤­¤ë¤è¤¦¤Ë»ÅÍͤ¬·è¤á¤é¤ì¤Æ¤¤¤Þ¤¹¤«¤é¡¢¤½¤Î»ÅÍͤ˽स¤Æ¤¤¤ë¸Â¤ê¡¢Ä̾ï¤Ï¥¹¥í¥Ã¥È¤Î»ÈÍѾõ¶·¤òµ¤¤Ë¤¹¤ëɬÍפϤ¢¤ê¤Þ¤»¤ó¡£
¡¡¤·¤«¤·¡¢¾ì¹ç¤Ë¤è¤Ã¤Æ¤ÏÆÃÄê¤Î¥½¥Õ¥È¥¦¥§¥¢¤¬²¿È֤Υ¹¥í¥Ã¥È¾å¤ËÃÖ¤«¤ì¤Æ¤¤¤ë¤Î¤«¤òÃΤëɬÍפ¬À¸¤¸¤ë¤³¤È¤â¤¢¤ê¤Þ¤¹¡£¤¿¤È¤¨¤Ð¡¢½¾Íè¤ÏBASIC¤ÎMAIN-ROM¤Ï´ðËÜ¥¹¥í¥Ã¥È#0¡¢¤Þ¤¿¤Ï´ðËÜ¥¹¥í¥Ã¥È#0¤ò³ÈÄ¥¤·¤¿³ÈÄ¥¥¹¥í¥Ã¥È#0-0¤ËÃÖ¤¯¤È¤¤¤¦»ÅÍͤǤ·¤¿¤¬¡¢MSX1¤ËMSX-VIDEO¤ÈBASIC ver2.0¤ÎROM¤òÁýÀߤ·¤ÆMSX2¤Îµ¡Ç½¤ò»ý¤¿¤»¤ë¾ì¹ç¤Ë¤Ï¡¢MAIN-ROM¤¬¥¹¥í¥Ã¥È#0¤ä¥¹¥í¥Ã¥È#0-0°Ê³°¤Î¾å¤ËÃÖ¤«¤ì¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£¤Þ¤¿¡¢MSX2¤ÎSUB-ROM¤¬Æþ¤Ã¤Æ¤¤¤ë¥¹¥í¥Ã¥È¤Ïµ¡¼ï¤Ë¤è¤Ã¤Æ¤Þ¤Á¤Þ¤Á¤Ç¡¢¤³¤Î¤è¤¦¤Ê¾ì¹ç¡¢²¼µ­¤Î¥ï¡¼¥¯¥¨¥ê¥¢¤ò»²¾È¤¹¤ë¤³¤È¤Ë¤è¤ê¡¢BASIC¥¤¥ó¥¿¡¼¥×¥ê¥¿¤ÎROM¤¬ÃÖ¤«¤ì¤Æ¤¤¤ë¥¹¥í¥Ã¥È¤òÃΤ뤳¤È¤¬²Äǽ¤Ç¤¹(¥¹¥í¥Ã¥È¾ðÊó¤Ï¿Þ5.40¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤ÇÆÀ¤é¤ì¤ë)¡£DOS¤«¤éBIOS¤ò¸Æ¤Ó½Ð¤¹»þ¤â¡¢¤³¤ÎÊýË¡¤ò»ÈÍѤ·¤ÆMAIN-ROM¤Î¥¹¥í¥Ã¥È¤òÄ´¤Ù¤Æ¤¯¤À¤µ¤¤¡£

¡¦EXPTBL(FCC1H,1) MAIN-ROM¤Î¥¹¥í¥Ã¥È
¡¦EXBRSA(FAF8H,1) SUB-ROM¤Î¥¹¥í¥Ã¥È(MSX1¤Ç¤Ï0)


¿Þ5.40¡¡¥¹¥í¥Ã¥È¤Î¥Õ¥©¡¼¥Þ¥Ã¥È

¡¡¤Þ¤¿¡¢¤¢¤ë¥ë¡¼¥Á¥ó¤¬¥Ú¡¼¥¸1¤È¥Ú¡¼¥¸2(4000H¡ÁBFFFH)¤Ë¤Þ¤¿¤¬¤Ã¤Æ¤¤¤ë¾ì¹ç¤ò¹Í¤¨¤Æ¤¯¤À¤µ¤¤¡£¤³¤Î¥ë¡¼¥Á¥ó¤ÎÃæ¤Ç1¥Ú¡¼¥¸¤«¤é2¥Ú¡¼¥¸¤Øʬ´ô¤¬µ¯¤³¤ë»þ¤Ë¤Ï¡¢¥Ú¡¼¥¸2¤Ë¥Ú¡¼¥¸1¤ÈƱ¤¸¥¹¥í¥Ã¥È¤¬ÁªÂò¤µ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£¤½¤Î¤¿¤á¤Ë¤Ï¡¢¥Ú¡¼¥¸1¤Ç¤Þ¤º¼«Ê¬¤Î¤¤¤ë¥¹¥í¥Ã¥È¤òÄ´¤Ù¡¢¥Ú¡¼¥¸2¤ò¤½¤Î¥¹¥í¥Ã¥È¤ËÀڤ괹¤¨¤ë¤È¤¤¤¦ºî¶È¤¬É¬ÍפǤ¹¡£¸½ºß¼«Ê¬¤¬¤É¤Î¥¹¥í¥Ã¥È¤Ë¤¤¤ë¤Î¤«¡¢¤È¤¤¤¦¾ðÊó¤òÃΤ뤿¤á¤Ë¤Ï¥ê¥¹¥È5.11¤Î¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤·¤Æ¤¯¤À¤µ¤¤¡£

¥ê¥¹¥È5.11¡¡¼«Ê¬¤Î¤¤¤ë¥¹¥í¥Ã¥È¤òÃΤ뤿¤á¤Î¥×¥í¥°¥é¥à

;==========================================================
;  List 5.11  to know where you are
;==========================================================
;	Suppose your  program  cartridge  is  32k  bytes
;	long (4000H..0BFFFH).   You  set the ID at 4000H
;	and 4001H and the execution start address within
;	page 1   (4000H..7FFFH).    MSX  passes  control
;	to this address so the  part  which  resides  in
;	page 2  is  not  yet enabled at this point.  You
;	have to know where  you  are  (in  what  primary
;	slot. in  what  secondary  slot)  and enable the
;	part at page 2.  Below  is  the  sample  program
;	to do this.

ENASLT	EQU	0024H		;enable slot
RSLREG	EQU	0138H		;read primary slot select register
EXPTBL	EQU	0FCC1H		;slot is expanded or not

;----- program start -----

ENAP2:
	CALL	RSLREG		;read primary slot #
	RRCA			;move it to bit 0,1 of [Acc]
	RRCA
	AND	00000011B
	LD	C,A
	LD	B,0
	LD	HL,EXPTBL	;see if this slot is expanded or not
	ADD	HL,BC
	LD	C,A		;save primary slot #
	LD	A,(HL)		;get the slot is expanded or not
	AND	80H
	OR	C		;set MSB if so
	LD	C,A		;save it to [C]
	INC	HL		;Point to SLTTBL entry
	INC	HL
	INC	HL
	INC	HL
	LD	A,(HL)		;Get what  is  currently  output
				;to expansion   slot    register
	AND	00001100B
	OR	C		;Finaly form slot address
	LD	H,80H
	JP	ENASLT		;enable page 2
:
	END

 7.2¡¡¥¤¥ó¥¿¡¼¥¹¥í¥Ã¥È¥³¡¼¥ë(¥¹¥í¥Ã¥È´Ö¥³¡¼¥ë)

¡¡Á°½Ò¤Î¤è¤¦¤Ë¡¢MSX¤Ç¤Ï¥×¥í¥°¥é¥à¤¬°Û¤Ê¤Ã¤¿¥¹¥í¥Ã¥È¤Ëʬ¤«¤ì¤Æ¤¤¤ë¤¿¤á¡¢¸½ºßÁªÂò¤µ¤ì¤Æ¤¤¤ë¥¹¥í¥Ã¥È¾å¤Ë¤Ê¤¤¥×¥í¥°¥é¥à¤¬É¬Íפˤʤ뤳¤È¤â¤¢¤ê¤Þ¤¹¡£¤³¤ì¤Ï¼ç¤Ë°Ê²¼¤Î¤è¤¦¤Ê¾ì¹ç¤¬¹Í¤¨¤é¤ì¤Þ¤¹¡£

¡¡(1)MSX-DOS¥ì¥Ù¥ë¤«¤é¡¢MAIN-ROM¤Ë¤¢¤ëBIOS¤ò¸Æ¤Ó½Ð¤¹¡£
¡¡(2)BASIC¥ì¥Ù¥ë¤«¤é¡¢SUB-ROM¤Ë¤¢¤ëBIOS¤ò¸Æ¤Ó½Ð¤¹(MSX2¤Î¤ß)¡£
¡¡(3)¥«¡¼¥È¥ê¥Ã¥¸¥½¥Õ¥È¤«¤é¡¢MAIN-ROM¤¢¤ë¤¤¤ÏSUB-ROM¤ÎBIOS¤ò¸Æ¤Ó½Ð¤¹¡£


¿Þ5.41¡¡¥¤¥ó¥¿¡¼¥¹¥í¥Ã¥È¥³¡¼¥ë¤Î¤µ¤ìÊý

¡¡¤³¤ì¤é¤Îºî¶È¤ò¹Ô¤¦ºÝ¥¹¥í¥Ã¥ÈÀڤ괹¤¨¤¬´Êñ¤«¤Ä°ÂÁ´¤Ë¹Ô¤¨¤ë¤è¤¦¤Ë¡¢¥¤¥ó¥¿¡¼¥¹¥í¥Ã¥È¥³¡¼¥ë¤È¤¤¤¦°ì·²¤ÎBIOS¥ë¡¼¥Á¥ó¤¬Â¸ºß¤·¡¢¤É¤Î¥¹¥í¥Ã¥È¤Ë¸ºß¤¹¤ë¥ë¡¼¥Á¥ó¤Ç¤â¸Æ¤Ó½Ð¤»¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£ËÜÀâ¤Ç¤Ï¡¢¤³¤Î¥¤¥ó¥¿¡¼¥¹¥í¥Ã¥È¥³¡¼¥ë¤Î»ÈÍÑË¡¤òÀâÌÀ¤·¤Þ¤·¤ç¤¦¡£

7.2.1¡¡¥¤¥ó¥¿¡¼¥¹¥í¥Ã¥È¥³¡¼¥ë¤ÎÆ°ºî

¡¡¤¿¤È¤¨¤ÐMSX-DOS¤«¤éMAIN-ROM¾å¤ÎBIOS¤ò¸Æ¤Ó½Ð¤¹¾ì¹ç¡¢¥¹¥í¥Ã¥È¤Î¾õÂÖ¤ÎÁ«°Ü¤Ï°Ê²¼¤Ë¼¨¤¹¤È¤ª¤ê¤Ç¤¹¡£
(1)½é¤á¤ÏMSX-DOS¥â¡¼¥É¤Ê¤Î¤Ç64K¤Î¥¢¥É¥ì¥¹¶õ´Ö¤¹¤Ù¤Æ¤ËRAM¤¬ÁªÂò¤µ¤ì¤Æ¤ª¤ê¡¢¤³¤Î¤Þ¤Þ¤Ç¤ÏBASIC-ROM¤ò¥¢¥¯¥»¥¹¤Ç¤­¤Ê¤¤(¿Þ5.41-¥¤)¡£
(2)ROM¤ÎBIOS¤ò¸Æ¤Ó½Ð¤¹¤¿¤á¤Ë¥Ú¡¼¥¸0¤òBASIC¤ÎMAIN-ROM¤ËÀڤ괹¤¨¡¢¥¢¥¯¥»¥¹²Äǽ¤Ê¾õÂ֤ˤ¹¤ë¡£¤½¤·¤ÆBIOS¤ò¸Æ¤Ó¤À¤¹(¿Þ5.41-¥í)¡£
(3)BIOS¤Î½èÍý¤¬½ª¤ï¤Ã¤¿¤éºÆ¤Ó¸µ¤Î¾õÂÖ¤ËÌᤷ¡¢½é¤á¤Ë¸Æ¤Ð¤ì¤¿¥¢¥É¥ì¥¹¤Ë¥ê¥¿¡¼¥ó¤¹¤ë¡£

¡¡¤³¤Î»þ¡¢MSX-DOS¦¤Î¥×¥í¥°¥é¥à¤¬¡¢¥Ú¡¼¥¸0°Ê³°¤Ë¸ºß¤¹¤ë¤Ê¤é¤ÐÏäϴÊñ¤Ê¤Î¤Ç¤¹¤¬¡¢¸Æ¤Ó¤À¤¹Â¦¤Î¥×¥í¥°¥é¥à¤¬¸Æ¤Ó¤À¤µ¤ì¤ë¦¤ÎBIOS¤ÈƱ¤¸¥Ú¡¼¥¸0¤Ë¸ºß¤·¤Æ¤¤¤ë»þ¤Ï¡¢¤½¤¦Ã±½ã¤Ë¤Ï¤¤¤­¤Þ¤»¤ó¡£¸Æ¤Ó½Ð¤¹Êý¤Î¥×¥í¥°¥é¥à¤¬¥Ú¡¼¥¸0¤òÀڤ괹¤¨¤¿¤È¤¿¤ó¤Ë¼«Ê¬¼«¿È¤¬¤¤¤Ê¤¯¤Ê¤Ã¤Æ˽Áö¤·¤Æ¤·¤Þ¤¦¡¢¤È¤¤¤¦¤³¤È¤Î¤Ê¤¤¤è¤¦¤ËÇÛθ¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤Î¤Ç¤¹¡£¥¤¥ó¥¿¡¼¥¹¥í¥Ã¥È¥³¡¼¥ë¤Ç¤Ï¡¢¤¤¤Ã¤¿¤ó¥Ú¡¼¥¸3¤Øʬ´ô¤·¤Æ¤«¤é¼ÂºÝ¤Î¥¹¥í¥Ã¥ÈÀڤ괹¤¨¤ò¹Ô¤¦¤È¤¤¤¦ÊýË¡¤Ç¡¢¤³¤ÎÌäÂê¤ò²ò·è¤·¤Æ¤¤¤Þ¤¹¡£

7.2.2¡¡¥¤¥ó¥¿¡¼¥¹¥í¥Ã¥È¥³¡¼¥ë¤Î»ÈÍÑË¡

¡¡¥¤¥ó¥¿¡¼¥¹¥í¥Ã¥È¥³¡¼¥ë¤Ï¡¢°Ê²¼¤Ë½Ò¤Ù¤ë¤¤¤¯¤Ä¤«¤ÎÊýË¡¤Ç¹Ô¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¤³¤ì¤é¤ÏBIOS¤È¤·¤ÆMAIN-ROMÆâ¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë¤â¤Î¤Ç¤¹¤¬¡¢¤½¤ÎÃæ¤Î¤¤¤¯¤Ä¤«¤ÏMSX-DOS¤Î´Ä¶­²¼¤Ë¤ª¤¤¤Æ¤â¤Þ¤Ã¤¿¤¯Æ±°ì¤Î¤â¤Î¤¬ÍÑ°Õ¤µ¤ì¡¢MSX-DOS»ÈÍÑ»þ¤Î¥¤¥ó¥¿¡¼¥¹¥í¥Ã¥È¥³¡¼¥ë¤ò²Äǽ¤È¤·¤Æ¤¤¤Þ¤¹¡£

(1)¡¡BIOS¤Î¥¤¥ó¥¿¡¼¥¹¥í¥Ã¥È¥³¡¼¥ë¡¦¥ë¡¼¥Á¥ó

¡ü RDSLT(000CH/MAIN) ¡Ä¡Ä¡Ä¡¡»ØÄꥹ¥í¥Ã¥È¤Î»ØÄꥢ¥É¥ì¥¹¤«¤éÃͤòÆɤà
ÆþÎÏ¡§A¥ì¥¸¥¹¥¿¢«¥¹¥í¥Ã¥È»ØÄê
¡¡¡¡¡¡HL¥ì¥¸¥¹¥¿¢«Æɤ߽Ф¹¥¢¥É¥ì¥¹
½ÐÎÏ¡§A¥ì¥¸¥¹¥¿¢«Æɤ߽Ф·¤¿ÃÍ
»ÈÍÑ¡§AF, BC, DE
µ¡Ç½¡§»ØÄꤷ¤¿¥¹¥í¥Ã¥È¤Î¡¢»ØÄꤷ¤¿¥¢¥É¥ì¥¹¤ÎÆâÍƤòÆɤ߽Ф·¡¢A¥ì¥¸¥¹¥¿¤Ë³ÊǼ¤¹¤ë¡£¥¹¥í¥Ã¥È¤Î»ØÄê¤ÏA¥ì¥¸¥¹¥¿¤Ë¤è¤Ã¤Æ¿Þ5.40¤Î·Á¼°¤Ç¹Ô¤¦¡£¤³¤Î»þ¡¢ÌÜŪ¤Î¥¹¥í¥Ã¥È¤¬´ðËÜ¥¹¥í¥Ã¥È¤Ê¤é¤Ð¡¢¾å°Ì6¥Ó¥Ã¥È¤Ï¤¹¤Ù¤Æ¡È0¡É¤ËÀßÄꤷ¡¢²¼°Ì2¥Ó¥Ã¥È¤Ç¥¹¥í¥Ã¥È#0¡Á#3¤ò·è¤á¤ë¡£¤â¤·³ÈÄ¥¥¹¥í¥Ã¥È¤ò»ØÄꤹ¤ë¤Ê¤é¤Ð¡¢Æ±Íͤ˥ӥåÈ0¤È¥Ó¥Ã¥È1¤Ç´ðËÜ¥¹¥í¥Ã¥È¤ò»ØÄꤷ¡¢¤½¤Î´ðËÜ¥¹¥í¥Ã¥È¤ËÀܳ¤µ¤ì¤ë¤É¤Î³ÈÄ¥¥¹¥í¥Ã¥È¤«¤È¤¤¤¦¤³¤È¤ò¥Ó¥Ã¥È2¤È¥Ó¥Ã¥È3¤Ç»ØÄê¡¢¤µ¤é¤Ë¥Ó¥Ã¥È7¤ò¡È1¡É¤È¤¹¤ë¡£

¡ü WRSLT(0014H/MAIN) ¡Ä¡Ä¡Ä¡¡»ØÄꥹ¥í¥Ã¥È¤Î»ØÄꥢ¥É¥ì¥¹¤ËÃͤò½ñ¤­¹þ¤à
ÆþÎÏ¡§A¥ì¥¸¥¹¥¿¢«¥¹¥í¥Ã¥È»ØÄê(¿Þ5.40¤ÈƱ¤¸¥Õ¥©¡¼¥Þ¥Ã¥È)
¡¡¡¡¡¡HL¥ì¥¸¥¹¥¿¢«½ñ¤­¹þ¤à¥¢¥É¥ì¥¹
¡¡¡¡¡¡E¥ì¥¸¥¹¥¿¢«½ñ¤­¹þ¤àÃÍ
½ÐÎÏ¡§¡½¡½¡½
»ÈÍÑ¡§AF, BC, D
µ¡Ç½¡§A¥ì¥¸¥¹¥¿¤Ç»ØÄꤷ¤¿¥¹¥í¥Ã¥È(»ØÄê¤Î·Á¼°¤Ï¿Þ5.40¤ÈƱ¤¸)¤Î¡¢HL¥ì¥¸¥¹¥¿¤Ç»ØÄꤷ¤¿¥¢¥É¥ì¥¹¤Ë¡¢E¥ì¥¸¥¹¥¿¤ÎÃͤò½ñ¤­¹þ¤à¡£

¡ü CALSLT(001CH/MAIN) ¡Ä¡Ä¡Ä¡¡»ØÄꤷ¤¿¥¹¥í¥Ã¥È¤Î»ØÄꥢ¥É¥ì¥¹¤ò¥³¡¼¥ë¤¹¤ë
ÆþÎÏ¡§IY¥ì¥¸¥¹¥¿¤Î¾å°Ì8¥Ó¥Ã¥È¢«¥¹¥í¥Ã¥È(¿Þ5.40¤ÈƱ¤¸¥Õ¥©¡¼¥Þ¥Ã¥È)
¡¡¡¡¡¡IX¥ì¥¸¥¹¥¿¢«¥³¡¼¥ë¤¹¤ë¥¢¥É¥ì¥¹
½ÐÎÏ¡§¸Æ¤Ó½Ð¤·Àè¥×¥í¥°¥é¥à¤Î¼Â¹Ô·ë²Ì¤Ë¤è¤ê°Û¤Ê¤ë
»ÈÍÑ¡§¸Æ¤Ó½Ð¤·Àè¥×¥í¥°¥é¥à¤Î¼Â¹Ô·ë²Ì¤Ë¤è¤ê°Û¤Ê¤ë
µ¡Ç½¡§IY¥ì¥¸¥¹¥¿¤Î¾å°Ì8¥Ó¥Ã¥È¤Ç»ØÄꤷ¤¿¥¹¥í¥Ã¥È(»ØÄê¤Î·Á¼°¤Ï¿Þ5.40¤ÈƱ¤¸)¤Î¡¢IX¥ì¥¸¥¹¥¿¤Ç»ØÄꤹ¤ë¥¢¥É¥ì¥¹¤Ë¸ºß¤¹¤ë¥ë¡¼¥Á¥ó¤ò¥³¡¼¥ë¤¹¤ë¡£

¡ü ENASLT(0024H/MAIN) ¡Ä¡Ä¡Ä¡¡¥¹¥í¥Ã¥È¤òÀڤ괹¤¨¤ë
ÆþÎÏ¡§A¥ì¥¸¥¹¥¿¢«¥¹¥í¥Ã¥È(¿Þ5.40¤ÈƱ¤¸¥Õ¥©¡¼¥Þ¥Ã¥È)
¡¡¡¡¡¡HL¥ì¥¸¥¹¥¿¢«¾å°Ì2¥Ó¥Ã¥È¤Ç¥¹¥í¥Ã¥ÈÀڤ괹¤¨¤ò¹Ô¤¦¥Ú¡¼¥¸¤ò»ØÄꤹ¤ë
½ÐÎÏ¡§¡½¡½¡½
»ÈÍÑ¡§¤¹¤Ù¤Æ
µ¡Ç½¡§HL¥ì¥¸¥¹¥¿¤Î¾å°Ì2¥Ó¥Ã¥È¤Ç»ØÄꤷ¤¿¥Ú¡¼¥¸¤ò¡¢A¥ì¥¸¥¹¥¿¤Ç»ØÄꤷ¤¿¥¹¥í¥Ã¥È¤ËÀڤ괹¤¨¤ë¡£

¡ü CALLF(0030H/MAIN) ¡Ä¡Ä¡Ä¡¡»ØÄꥹ¥í¥Ã¥È¤Î»ØÄꥢ¥É¥ì¥¹¤ò¥³¡¼¥ë¤¹¤ë
ÆþÎÏ¡§¥¤¥ó¥é¥¤¥ó¡¦¥Ñ¥é¥á¡¼¥¿·Á¼°¤Ç¥¹¥í¥Ã¥È¤È¥¢¥É¥ì¥¹¤ò»ØÄꤹ¤ë
½ÐÎÏ¡§¸Æ¤Ó½Ð¤·Àè¤Î¥×¥í¥°¥é¥à¤Î¼Â¹Ô·ë²Ì¤Ë¤è¤ê°Û¤Ê¤ë
»ÈÍÑ¡§¸Æ¤Ó½Ð¤·Àè¤Î¥×¥í¥°¥é¥à¤Î¼Â¹Ô·ë²Ì¤Ë¤è¤ê°Û¤Ê¤ë
µ¡Ç½¡§»ØÄꤷ¤¿¥¹¥í¥Ã¥È¤Î¡¢»ØÄꤷ¤¿¥¢¥É¥ì¥¹¤ò¥³¡¼¥ë¤¹¤ë¤¬¡¢Á°½Ò¤ÎCALSLT¤È°Û¤Ê¤ê¡¢¥¹¥í¥Ã¥È¤ª¤è¤Ó¥¢¥É¥ì¥¹¤Î»ØÄê¤Ï¼¡¤Ë¼¨¤¹¤è¤¦¤Ë¡¢¥¤¥ó¥é¥¤¥ó¡¦¥Ñ¥é¥á¡¼¥¿·Á¼°¤Ç¹Ô¤¦¡£¤¹¤Ê¤ï¤Á¡¢¤³¤ÎCALLF¤ò¸Æ¤Ó¤À¤¹Ì¿Îá¤Îľ¸å¤Ë¥¹¥í¥Ã¥È¤ò»ØÄꤹ¤ëÃÍ1¥Ð¥¤¥È(RDSLT¤ÈƱ¤¸¥Õ¥©¡¼¥Þ¥Ã¥È)¤òÃÖ¤­¡¢¤½¤Î¼¡¤Ë¥¢¥É¥ì¥¹¤ò»ØÄꤹ¤ë¿ôÃÍ2¥Ð¥¤¥È¤òÃÖ¤¯¤È¤¤¤¦·Á¤Ç¥Ñ¥é¥á¡¼¥¿¤òÅϤ¹¤Î¤Ç¤¢¤ë¡£¡ÈCALL 0030H¡É¤ÎÂå¤ï¤ê¤Ë¡ÈRST 30H¡É¤È¤¤¤¦RST(¥ê¥¹¥¿¡¼¥È)Ì¿Îá¤ò»È¤Ã¤Æ¤â¤è¤¤¡£¤½¤Î¾ì¹ç¡¢4¥Ð¥¤¥È¤Ç¥¤¥ó¥¿¡¼¥¹¥í¥Ã¥È¥³¡¼¥ë¤¬¼Â¸½²Äǽ¤Ç¤¢¤ë¡£


        RST      30H               ;interslot call
        DB       00000000B         ;select slot#0
        DW       006CH             ;call address = 006CH

¿Þ5.42¡¡¥¤¥ó¥¿¡¼¥¹¥í¥Ã¥È¥³¡¼¥ë¤Î¼Â¹ÔÎã

¡ü RSLREG(0138H/MAIN) ¡Ä¡Ä¡Ä¡¡´ðËÜ¥¹¥í¥Ã¥ÈÁªÂò¥ì¥¸¥¹¥¿¤ÎÆɤ߽Ф·
ÆþÎÏ¡§¡½¡½¡½
½ÐÎÏ¡§A¥ì¥¸¥¹¥¿¢«Æɤ߹þ¤ó¤ÀÃÍ
»ÈÍÑ¡§¡½¡½¡½
µ¡Ç½¡§´ðËÜ¥¹¥í¥Ã¥ÈÁªÂò¥ì¥¸¥¹¥¿¤ÎÆâÍƤòÆɤ߽Ф·¡¢A¥ì¥¸¥¹¥¿¤ËÆþ¤ì¤ë¡£

¡ü WSLREG(013BH/MAIN) ¡Ä¡Ä¡Ä¡¡´ðËÜ¥¹¥í¥Ã¥ÈÁªÂò¥ì¥¸¥¹¥¿¤Ø¤Î½ñ¤­¹þ¤ß
ÆþÎÏ¡§A¥ì¥¸¥¹¥¿¢«½ñ¤­¹þ¤àÃÍ
½ÐÎÏ¡§¡½¡½¡½
»ÈÍÑ¡§¡½¡½¡½
µ¡Ç½¡§´ðËÜ¥¹¥í¥Ã¥ÈÁªÂò¥ì¥¸¥¹¥¿¤ËA¥ì¥¸¥¹¥¿¤ÎÃͤò½ñ¤­¹þ¤ß¡¢¥¹¥í¥Ã¥È¤òÁªÂò¤¹¤ë¡£

¡ü SUBROM(015CH/MAIN) ¡Ä¡Ä¡Ä¡¡SUB-ROM¤Î»ØÄꤷ¤¿¥¢¥É¥ì¥¹¤ò¥³¡¼¥ë¤¹¤ë
ÆþÎÏ¡§IX¥ì¥¸¥¹¥¿¢«¥³¡¼¥ë¤¹¤ë¥¢¥É¥ì¥¹¡¢PUSH IX (352¥Ú¡¼¥¸»²¾È)
½ÐÎÏ¡§¸Æ¤Ó½Ð¤·Àè¤Î¥×¥í¥°¥é¥à¤Î¼Â¹Ô·ë²Ì¤Ë¤è¤ê°Û¤Ê¤ë
»ÈÍÑ¡§Î¢¥ì¥¸¥¹¥¿¤ÈIX, IY¥ì¥¸¥¹¥¿¤ÏÊݸ¤µ¤ì¤ë
µ¡Ç½¡§ÆäËBASIC¤ÎSUB-ROM¤ò¸Æ¤Ó¤À¤¹¤¿¤á¤Î¥ë¡¼¥Á¥ó¤Ç¤¢¤ë¡£SUB-ROM¤Î¸ºß¤¹¤ë¥¹¥í¥Ã¥È¤Ï¼«Æ°Åª¤ËÄ´¤Ù¤é¤ì¤ë¡£ÉáÄ̤ϡ¢¼¡¤ÎEXTROM¤ò»È¤¦¡£

¡ü EXTROM(015FH/MAIN) ¡Ä¡Ä¡Ä¡¡SUB-ROM¤Î»ØÄꤷ¤¿¥¢¥É¥ì¥¹¤ò¥³¡¼¥ë¤¹¤ë
ÆþÎÏ¡§IX¥ì¥¸¥¹¥¿¢«¥³¡¼¥ë¤¹¤ë¥¢¥É¥ì¥¹
½ÐÎÏ¡§¸Æ¤Ó½Ð¤·Àè¤Î¥×¥í¥°¥é¥à¤Î¼Â¹Ô·ë²Ì¤Ë¤è¤ê°Û¤Ê¤ë
»ÈÍÑ¡§Î¢¥ì¥¸¥¹¥¿¤ÈIY¥ì¥¸¥¹¥¿¤ÏÊݸ¤µ¤ì¤ë
µ¡Ç½¡§BASIC¤ÎSUB-ROM¤ò¸Æ¤Ó½Ð¤¹¤¿¤á¤Î¥ë¡¼¥Á¥ó¤Ç¤¢¤ë¡£¾åµ­¤ÎSUB-ROM¤È¤³¤ÎEXTROM¤È¤Ï¡¢IX¥ì¥¸¥¹¥¿¤ÎÃͤò¥×¥Ã¥·¥å¤¹¤ë¤«Èݤ«¤È¤¤¤¦ÅÀ¤À¤±¤¬°Û¤Ê¤ë¡£

(2) MSX-DOS¤Î¥¤¥ó¥¿¡¼¥¹¥í¥Ã¥È¥³¡¼¥ë
¡¡MSX-DOS¤Ç¤Ï¡¢°Ê²¼¤Ë¼¨¤¹5¼ïÎà¤Î¥¤¥ó¥¿¡¼¥¹¥í¥Ã¥È¥³¡¼¥ë¤¬ÍÑ°Õ¤µ¤ì¡¢MSX-DOS¥¸¥ã¥ó¥×¥Ù¥¯¥¿¤Ë¤½¤Î¥¨¥ó¥È¥ê¥¢¥É¥ì¥¹¤¬ÄêµÁ¤·¤Æ¤¢¤ê¤Þ¤¹¡£¤³¤ì¤é¤ÏBIOSÆâ¤ÎƱ̾¤Î¥ë¡¼¥Á¥ó¤È¤Þ¤Ã¤¿¤¯Æ±¤¸¤â¤Î¤Ç¤¹¤«¤é¡¢µ¡Ç½¤ä»ÈÍÑË¡¤Ë´Ø¤·¤Æ¤Ï¡¢¾åµ­¤ÎBIOS¤ò¤´Í÷¤¯¤À¤µ¤¤¡£¤Ê¤ª¡¢MSX-DOS¤«¤éSUB-ROMÆâ¤Î¥ë¡¼¥Á¥ó¤ò¸Æ¤Ó¤À¤¹¾ì¹ç¡¢¤³¤ì¤é¤Î¥ë¡¼¥Á¥ó¤ò»ÈÍѤ·¤Æ¤Ï¤¤¤±¤Þ¤»¤ó¡£

¡¡¡¦RDSLT(000CH) ¡¡¡Ä¡Ä¡Ä¡¡»ØÄꥹ¥í¥Ã¥È¤Î»ØÄꥢ¥É¥ì¥¹¤«¤éÃͤòÆɤ߽Ф¹
¡¡¡¦WRSLT(0014h) ¡¡¡Ä¡Ä¡Ä¡¡»ØÄꥹ¥í¥Ã¥È¤Î»ØÄꥢ¥É¥ì¥¹¤ËÃͤò½ñ¤­¹þ¤à
¡¡¡¦CALSLT(001Ch)¡¡¡Ä¡Ä¡Ä¡¡»ØÄꥹ¥í¥Ã¥È¤Î»ØÄꥢ¥É¥ì¥¹¤ò¸Æ¤Ó½Ð¤¹
¡¡¡¦ENASLT(0024h)¡¡¡Ä¡Ä¡Ä¡¡»ØÄꥹ¥í¥Ã¥È¤ò»ÈÍѲÄǽ¤Ê¾õÂ֤ˤ¹¤ë
¡¡¡¦CALLF(0030H) ¡¡¡Å¡Å¡Å¡¡»ØÄꥹ¥í¥Ã¥È¤Î»ØÄꥢ¥É¥ì¥¹¤ò¸Æ¤Ó½Ð¤¹

¥ê¥¹¥È5.12 MSX-DOS¤«¤éBIOS¤ò¸Æ¤Ó½Ð¤¹

;============================================================
;  List 5.12    How to use BIOS from MSX-DOS.
;============================================================
;
CALSLT	EQU	001CH			;Inter slot call
EXBRSA	EQU	0FAF8H			;Slot address of BIOS (main) ROM
EXPTBL	EQU	0FCC1H			;Slot address of extended ROM
;
;	LD	IY,(EXPTBLE-1)		;Load slot address of the BIOS ROM
;					;in high byte of IY
;	ID	IX,address of the BIOS jump table
;	CALL	CALSLT
;
;
;
;
;
;
;
;----- Sample program to set text mode -----

INITEX	EQU	006CH
LINL40	EQU	0F3AEH
;
TOTEXT:	LD	B,40
	LD	A,(EXBRSA)		;slot address of SUB-ROM
	OR	A			;0 if MSX1
	JR	Z,TO40
	LD	B,80
TO40:	LD	(LINL40),B		;set width into work area
	LD	IX,INITXT
	LD	IY,(EXPTBL-1)		;get expanded slot status to IYH
	CALL	CALSLT			;perform an inter-slot call
	EI				;because CALSLT do DI
	RET

	END

7.2.3 ¥¹¥í¥Ã¥È¤Î¾õÂÖ¤òÃΤ뤿¤á¤Î¥ï¡¼¥¯¥¨¥ê¥¢
¡¡¥¹¥í¥Ã¥È¤Ë´Ø¤¹¤ë¥ï¡¼¥¯¥¨¥ê¥¢¤Ë¤Ï¡¢°Ê²¼¤Î¤â¤Î¤¬¤¢¤ê¤Þ¤¹¡£

¡ü EXBRSA(FAF8H,1) ¡Ä¡Ä¡Ä¡¡SUB-ROM¤Î¥¹¥í¥Ã¥È


¿Þ5.43¡¡SUB-ROM¤Î¥¹¥í¥Ã¥È

¡ü EXPTBL(FCC1H,4) ¡Ä¡Ä¡Ä¡¡´ðËÜ¥¹¥í¥Ã¥È¤Î³ÈÄ¥¤Î̵ͭ


¿Þ5.44¡¡´ðËÜ¥¹¥í¥Ã¥È¤ÎÁªÂò

¡ü SLTTBL(FCC5H,4) ¡Ä¡Ä¡Ä¡¡³ÈÄ¥¥¹¥í¥Ã¥ÈÁªÂò¥ì¥¸¥¹¥¿ÃͤÎÊݸ¥¨¥ê¥¢


¿Þ5.45¡¡³ÈÄ¥¥¹¥í¥Ã¥È¤ÎÁªÂò

¡ü SLTATR(FCC9H,64) ¡Ä¡Ä¡Ä¡¡³Æ¥¹¥í¥Ã¥È¡¿¥Ú¡¼¥¸¤Ë¤ª¤±¤ë¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Î̵ͭ


¿Þ5.46¡¡¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Î̵ͭ

¡ü SLTWRK(FD09H,128) ¡Ä¡Ä¡Ä¡¡¥¢¥×¥ê¥±¡¼¥·¥ç¥óÍѥ¥¯¥¨¥ê¥¢


¿Þ5.47¡¡¥¢¥×¥ê¥±¡¼¥·¥ç¥óÍѥ¥¯¥¨¥ê¥¢

 7.3¡¡¥«¡¼¥È¥ê¥Ã¥¸¥½¥Õ¥È¤ÎºîÀ®Ë¡

¡¡MSX¤Ë¤ÏºÇÄã1¤Ä¤Î¥¹¥í¥Ã¥È¤¬É½¤Ë½Ð¤Æ¤ª¤ê¡¢¤³¤³¤Ëº¹¤·¹þ¤Þ¤ì¤ë¥Ï¡¼¥É¥¦¥§¥¢¤ò¡È¥«¡¼¥È¥ê¥Ã¥¸¡É¤È¤¤¤¤¤Þ¤¹¡£¥«¡¼¥È¥ê¥Ã¥¸¤Ë¤Ï¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¡¦¥×¥í¥°¥é¥à¤ä¥²¡¼¥à¤Ê¤É¤ÎROM¥«¡¼¥È¥ê¥Ã¥¸¡¢¥Ç¥£¥¹¥¯¡¦¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤äRS-232C¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤Ê¤É¤ÎÆþ½ÐÎÏÁõÃÖ¥«¡¼¥È¥ê¥Ã¥¸¡¢RAM¤òÁý¤ä¤¹¤¿¤á¤ÎÁýÀßRAM¥«¡¼¥È¥ê¥Ã¥¸¡¢¥¹¥í¥Ã¥È¤òÁý¤ä¤¹¤¿¤á¤Î¥¹¥í¥Ã¥È³ÈÄ¥¥Ü¥Ã¥¯¥¹¤Ê¤É¤¤¤í¤¤¤í¤ÈÀܳ¤Ç¤­¡¢¤³¤ì¤Ë¤è¤êMSX¤Ïµ¡Ç½¤Î³ÈÂç¤ò´Êñ¤Ë¹Ô¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¤Þ¤¿¡¢BASIC¤ä¥Þ¥·¥ó¸ì¥×¥í¥°¥é¥à¤òROM²½(¥«¡¼¥È¥ê¥Ã¥¸²½)¤¹¤ë¤³¤È¤â´Êñ¤Ç¤¹¡£¤³¤³¤Ç¤Ï¥½¥Õ¥È¥¦¥§¥¢¤ò¥«¡¼¥È¥ê¥Ã¥¸²½¤¹¤ëÊýË¡¤òÀâÌÀ¤·¤Þ¤¹¡£

7.3.1¡¡¥«¡¼¥È¥ê¥Ã¥¸¡¦¥Ø¥Ã¥À

¡¡MSX¤Î¥«¡¼¥È¥ê¥Ã¥¸¤Ï¡¢16¥Ð¥¤¥È¤Î¶¦Ä̤ΥإåÀ¤ò»ý¤Ã¤Æ¤ª¤ê¡¢¥·¥¹¥Æ¥à¤¬¥ê¥»¥Ã¥È¤µ¤ì¤ë¤È¡¢¤³¤Î¥Ø¥Ã¥À¤Ëµ­½Ò¤µ¤ì¤¿¾ðÊó¤Ë¤è¤ê¥«¡¼¥È¥ê¥Ã¥¸¤Î½é´üÀßÄ꤬¹Ô¤ï¤ì¤Þ¤¹¡£BASIC¤ä¥Þ¥·¥ó¸ì¤Î¥×¥í¥°¥é¥à¤òROM²½¤·¤¿¥«¡¼¥È¥ê¥Ã¥¸¤Î¾ì¹ç¤Ï¡¢¤³¤Î¥Ø¥Ã¥À¤Ë½ñ¤­¹þ¤à¾ðÊó¤Ë¤è¤Ã¤Æ¥ª¡¼¥È¥¹¥¿¡¼¥È¤µ¤»¤ë¤³¤È¤â²Äǽ¤Ç¤¹¡£¥«¡¼¥È¥ê¥Ã¥¸¡¦¥Ø¥Ã¥À¤Î¹½À®¤ò¿Þ5.48¤Ë¼¨¤·¤Þ¤¹¡£


¿Þ5.48¡¡¥×¥í¥°¥é¥à¥«¡¼¥È¥ê¥Ã¥¸¤Î¥Ø¥Ã¥À

¡ü ID
¡¡ROM¥«¡¼¥È¥ê¥Ã¥¸¤Ç¤¢¤ì¤Ð¡¢¤³¤Î2¥Ð¥¤¥È¤Ë¡ÈAB¡É(41H, 42H)¤È¤¤¤¦¥³¡¼¥É¤òÆþ¤ì¤Æ¤ª¤­¤Þ¤¹¡£¤Á¤Ê¤ß¤ËSUB-ROM¤Î¥«¡¼¥È¥ê¥Ã¥¸¤ÎID¤Ï¡ÈCD¡É¤È¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£

¡ü INIT
¡¡¤³¤Î2¥Ð¥¤¥È¤Ë¤Ï¡¢¥«¡¼¥È¥ê¥Ã¥¸¤¬¥ï¡¼¥¯¥¨¥ê¥¢¤äI/O¤Ê¤É¤Î½é´ü²½¤ò¹Ô¤¦¤Î¤Ç¤¢¤ì¤Ð¡¢¤½¤Î½é´ü²½¥ë¡¼¥Á¥ó¤Î¥¢¥É¥ì¥¹¤ò½ñ¤­¹þ¤ß¡¢¹Ô¤ï¤Ê¤±¤ì¤Ð0000H¤È¤·¤Æ¤ª¤­¤Þ¤¹¡£½é´ü²½¥ë¡¼¥Á¥ó¤ÎÃæ¤Ç¥ï¡¼¥¯¥¨¥ê¥¢¤Î³ÎÊݤʤÉɬÍפʽèÍý¤ò¹Ô¤Ã¤¿¤é¡¢¡ÈRET¡É¤Ç½ªÎ»¤µ¤»¤Æ¤¯¤À¤µ¤¤¡£¤³¤Î»þSP°Ê³°¤Î¥ì¥¸¥¹¥¿¤ÏÆâÍƤòÇ˲õ¤·¤Æ¤â¤«¤Þ¤¤¤Þ¤»¤ó¡£¤Ê¤ª¡¢¥²¡¼¥à¤Î¤è¤¦¤Ë¥«¡¼¥È¥ê¥Ã¥¸Æâ¤Ç¥ë¡¼¥×¤·¤Æ¤¤¤ì¤Ð¤è¤¤¥Þ¥·¥ó¸ì¥×¥í¥°¥é¥à¤Î¾ì¹ç¤Ï¡¢¤³¤³¤«¤é¤½¤Î¤Þ¤ÞÌÜŪ¤Î¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤¹¤ë¤³¤È¤¬²Äǽ¤Ç¤¹¡£

¡ü STATEMENT
¡¡¤³¤Î2¥Ð¥¤¥È¤Ë¤Ï¡¢¥«¡¼¥È¥ê¥Ã¥¸¤¬CALLʸ¤Î³ÈÄ¥¤ò¹Ô¤¦¤Î¤Ç¤¢¤ì¤Ð¡¢¥¹¥Æ¡¼¥È¥á¥ó¥È³ÈÄ¥¥ë¡¼¥Á¥ó¤Î¥¢¥É¥ì¥¹¤ò½ñ¤­¹þ¤ß¡¢¹Ô¤ï¤Ê¤±¤ì¤Ð0000H¤È¤·¤Æ¤ª¤­¤Þ¤¹¡£CALLʸ¤Î³ÈÄ¥¤ò¹Ô¤¦¾ì¹ç¡¢¥¹¥Æ¡¼¥È¥á¥ó¥È³ÈÄ¥¥ë¡¼¥Á¥ó¤Ï4000H¡Á7FFFH¤Ë¤Ê¤±¤ì¤Ð¤¤¤±¤Þ¤»¤ó¡£
¡¡CALLÌ¿Îá¤Ï°Ê²¼¤Î½ñ¼°¤Çµ­½Ò¤µ¤ì¤Þ¤¹¡£

¡¡CALL <³ÈÄ¥¥¹¥Æ¡¼¥È¥á¥ó¥È̾> [(<°ú¿ô>[,<°ú¿ô>¡Ä])]

¡¡³ÈÄ¥¥¹¥Æ¡¼¥È¥á¥ó¥È̾¤Ï15ʸ»ú°Ê²¼¤Ç¤Ê¤±¤ì¤Ð¤¤¤±¤Þ¤»¤ó¡£CALL¤Î¾Êά·Á¤È¤·¤Æ¡È_¡É(¥¢¥ó¥À¡¼¥¹¥³¥¢)¤â»ÈÍѤǤ­¤Þ¤¹¡£
¡¡BASIC¥¤¥ó¥¿¡¼¥×¥ê¥¿¤ÏCALLʸ¤ò¸«¤Ä¤±¤ë¤È¡¢¥ï¡¼¥¯¥¨¥ê¥¢¤ÎPROCNM(FD89H,16)¤Ë³ÈÄ¥¥¹¥Æ¡¼¥È¥á¥ó¥È̾¤òÆþ¤ì¡¢¥Ø¥Ã¥À¤ÎSTATEMENT¤ÎÆâÍƤ¬0°Ê³°¤Î¥«¡¼¥È¥ê¥Ã¥¸¤Ë¥¹¥í¥Ã¥ÈÈÖ¹æ¤Î¾®¤µ¤¤Êý¤«¤é½ç¤ËÀ©¸æ¤òÅϤ·¤Æ¤­¤Þ¤¹¡£¤³¤Î»þHL¥ì¥¸¥¹¥¿¤Ï³ÈÄ¥¥¹¥Æ¡¼¥È¥á¥ó¥È̾¤Î¼¡¤Î¥Æ¥­¥¹¥È¥¢¥É¥ì¥¹¤ò»Ø¤·¤Æ¤¤¤Þ¤¹(¿Þ5.49a)¡£


¿Þ5.49¡¡³ÈÄ¥¥¹¥Æ¡¼¥È¥á¥ó¥È½èÍý¥ë¡¼¥Á¥ó¤ÎÆþ½ÐÎÏ

¡¡¤½¤³¤Ç¡¢¥¹¥Æ¡¼¥È¥á¥ó¥È³ÈÄ¥¥ë¡¼¥Á¥ó¤òºîÀ®¤¹¤ë¾ì¹ç¤Ï¡¢¤Þ¤ºPROCNM¤Ë½ñ¤«¤ì¤¿³ÈÄ¥¥¹¥Æ¡¼¥È¥á¥ó¥È̾¤ò¼±Ê̤·¡¢¤â¤·¤½¤ì¤¬¼«Ê¬¤Î½èÍý¤¹¤Ù¤­¤â¤Î¤Ç¤Ï¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï¡¢HL¥ì¥¸¥¹¥¿¤ÎÊѹ¹¤Ï¤»¤º¤Ë¡¢¥­¥ã¥ê¡¼¥Õ¥é¥°¤ò¡È1¡É¤Ë¤·¤Æ¥ê¥¿¡¼¥ó¤·¤Æ¤¯¤À¤µ¤¤(¿Þ5.49b)¡£³ÈÄ¥¥¹¥Æ¡¼¥È¥á¥ó¥È̾¤¬¼«Ê¬¤Î½èÍý¤¹¤Ù¤­¤â¤Î¤Ç¤¢¤Ã¤¿¾ì¹ç¤Ï¡¢¤½¤ì¤Ë±þ¤¸¤¿½èÍý¤ò¤·¡¢HL¥ì¥¸¥¹¥¿(¥Æ¥­¥¹¥È¥Ý¥¤¥ó¥¿)¤ò¼«Ê¬¤¬½èÍý¤·¤¿¥¹¥Æ¡¼¥È¥á¥ó¥È¤Î¼¡(ÉáÄ̤Ï00H¤Þ¤¿¤Ï3AH¤¬Æþ¤Ã¤Æ¤¤¤ë¤È¤³¤í)¤Ë¹¹¿·¤·¡¢ºÇ¸å¤Ë¥­¥ã¥ê¡¼¥Õ¥é¥°¤ò¡È0¡É¤Ë¤·¤Æ¥ê¥¿¡¼¥ó¤·¤Æ¤¯¤À¤µ¤¤(¿Þ5.49c)¡£
¡¡BASIC¥¤¥ó¥¿¡¼¥×¥ê¥¿¤Ï¥­¥ã¥ê¡¼¥Õ¥é¥°¤Î¾õÂ֤ˤè¤Ã¤Æ¡¢CALLʸ¤¬½èÍý¤µ¤ì¤¿¤«¤É¤¦¤«¤òȽÄꤷ¡¢½èÍý¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï¼¡¤Î¥«¡¼¥È¥ê¥Ã¥¸¤ò¸Æ¤Ó½Ð¤·¤Þ¤¹¡£¤¹¤Ù¤Æ¤Î¥«¡¼¥È¥ê¥Ã¥¸¤¬½èÍý¤ò¤·¤Ê¤«¤Ã¤¿¾ì¹ç(ºÇ¸å¤Þ¤Ç¥­¥ã¥ê¡¼¥Õ¥é¥°¤¬¡È1¡É¤À¤Ã¤¿»þ)¤Ï¡ÈSYNTAX ERROR¡É¤òɽ¼¨¤·¤Þ¤¹¡£¥¹¥Æ¡¼¥È¥á¥ó¥È¤Î°ú¿ôɾ²Á¤Ë¤ÏÂè2Éô4.4Àá¤Î¡È¥¹¥Æ¡¼¥È¥á¥ó¥È³ÈÄ¥¤Î¤¿¤á¤ÎÆâÉô¥ë¡¼¥Á¥ó¡É¤òÍøÍѤ¹¤ë¤ÈÊØÍø¤Ç¤¹¡£

¡ü DEVICE
¡¡¤³¤Î2¥Ð¥¤¥È¤Ë¤Ï¡¢¥«¡¼¥È¥ê¥Ã¥¸¤¬¥Ç¥Ð¥¤¥¹¤Î³ÈÄ¥(Æþ½ÐÎÏÁõÃ֤γÈÄ¥)¤ò¹Ô¤¦¤Î¤Ç¤¢¤ì¤Ð¡¢¥Ç¥Ð¥¤¥¹³ÈÄ¥¥ë¡¼¥Á¥ó¤Î¥¢¥É¥ì¥¹¤ò½ñ¤­¹þ¤ß¡¢¹Ô¤ï¤Ê¤±¤ì¤Ð0000H¤È¤·¤Æ¤ª¤­¤Þ¤¹¡£¥Ç¥Ð¥¤¥¹¤Î³ÈÄ¥¤ò¹Ô¤¦¾ì¹ç¡¢¥Ç¥Ð¥¤¥¹³ÈÄ¥¥ë¡¼¥Á¥ó¤Ï4000H¡Á7FFFH¤Ë¤Ê¤±¤ì¤Ð¤¤¤±¤Þ¤»¤ó¡£¥Ç¥Ð¥¤¥¹¤Ï1¤Ä¤Î¥«¡¼¥È¥ê¥Ã¥¸¤Ë¤Ä¤¤¤Æ¡¢4¤Ä¤Þ¤Ç»ý¤Ä¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¤Þ¤¿¡¢³ÈÄ¥¥Ç¥Ð¥¤¥¹Ì¾¤Ï15ʸ»ú°Ê²¼¤Ç¤Ê¤±¤ì¤Ð¤¤¤±¤Þ¤»¤ó¡£
¡¡BASIC¥¤¥ó¥¿¡¼¥×¥ê¥¿¤ÏÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¥Ç¥Ð¥¤¥¹Ì¾¤ò¸«¤Ä¤±¤ë¤È¡¢PROCNM(FD89H,16)¤Ë¤½¤ì¤ò³ÊǼ¤·¡¢A¥ì¥¸¥¹¥¿¤ËFFH¤òÆþ¤ì¤Æ¡¢DEVICE¤ÎÆâÍƤ¬0°Ê³°¤Î¥«¡¼¥È¥ê¥Ã¥¸¤Ë¥¹¥í¥Ã¥ÈÈÖ¹æ¤Î¾®¤µ¤¤Êý¤«¤é½ç¤ËÀ©¸æ¤òÅϤ·¤Æ¤­¤Þ¤¹(¿Þ5.50a)¡£
¡¡¤½¤³¤Ç¡¢¥Ç¥Ð¥¤¥¹³ÈÄ¥¥ë¡¼¥Á¥ó¤òºîÀ®¤¹¤ë¾ì¹ç¤Ï¡¢½é¤á¤ËPROCNM¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò¼±Ê̤·¡¢¤â¤·¤½¤ì¤¬¼«Ê¬¤Î½èÍý¤¹¤Ù¤­¤Ç¤Ê¤¤¥Ç¥Ð¥¤¥¹¤ËÂФ¹¤ë¤â¤Î¤À¤Ã¤¿¾ì¹ç¤Ï¡¢¥­¥ã¥ê¡¼¥Õ¥é¥°¤ò1¤Ë¤·¤Æ¥ê¥¿¡¼¥ó¤·¤Æ¤¯¤À¤µ¤¤(¿Þ5.50b)¡£¼«Ê¬¤Î½èÍý¤¹¤Ù¤­¥Ç¥Ð¥¤¥¹¤ËÂФ¹¤ë¤â¤Î¤À¤Ã¤¿¾ì¹ç¤Ï¡¢¤½¤ì¤Ë±þ¤¸¤¿½èÍý¤ò¹Ô¤¤¡¢ÁõÃÖID(0¡Á3)¤òA¥ì¥¸¥¹¥¿¤ËÀßÄꤷ¡¢ºÇ¸å¤Ë¥­¥ã¥ê¡¼¥Õ¥é¥°¤ò0¤Ë¤·¤Æ¥ê¥¿¡¼¥ó¤·¤Æ¤¯¤À¤µ¤¤(¿Þ5.50c)¡£
¡¡BASIC¥¤¥ó¥¿¡¼¥×¥ê¥¿¤Ï¥­¥ã¥ê¡¼¥Õ¥é¥°¤Î¾õÂ֤ˤè¤Ã¤Æ½èÍý¤µ¤ì¤¿¤«¤É¤¦¤«¤òȽÄꤷ¡¢¤â¤·½èÍý¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï¼¡¤Î¥«¡¼¥È¥ê¥Ã¥¸¤ò¸Æ¤Ó½Ð¤·¤Þ¤¹¡£¤¹¤Ù¤Æ¤Î¥«¡¼¥È¥ê¥Ã¥¸¤¬½èÍý¤ò¤·¤Ê¤«¤Ã¤¿¾ì¹ç(ºÇ¸å¤Þ¤Ç¥­¥ã¥ê¡¼¥Õ¥é¥°¤¬¡È1¡É¤À¤Ã¤¿»þ)¤Ï¡ÈBad file name ERROR¡É¤òɽ¼¨¤·¤Þ¤¹¡£
¡¡¼ÂºÝ¤ÎÆþ½ÐÎÏÁàºî¤ò¤¹¤ë»þ¤Ë¤Ï¡¢BASIC¥¤¥ó¥¿¡¼¥×¥ê¥¿¤ÏDEVICE(FD99H)¤ËÁõÃÖID(0¡Á3)¤ò¡¢A¥ì¥¸¥¹¥¿¤Ë¥Ç¥Ð¥¤¥¹¤ËÂФ¹¤ëÍ×µá(ɽ5.6)¤òÀßÄꤷ¤Æ¥Ç¥Ð¥¤¥¹³ÈÄ¥¥ë¡¼¥Á¥ó¤ò¸Æ¤Ó½Ð¤·¤Þ¤¹¡£¥Ç¥Ð¥¤¥¹³ÈÄ¥¥ë¡¼¥Á¥ó¤Ç¤Ï¤½¤ì¤ò»²¾È¤·¡¢Í×µá¤Ë±þ¤¸¤¿½èÍý¤ò¹Ô¤Ã¤Æ¤¯¤À¤µ¤¤¡£


¿Þ5.50¡¡¥Ç¥Ð¥¤¥¹³ÈÄ¥¥ë¡¼¥Á¥ó¤Ø¤ÎÆþ½ÐÎÏ

A¥ì¥¸¥¹¥¿Í×µá
0OPEN
2CLOSE
4¥é¥ó¥À¥à¥¢¥¯¥»¥¹
6¥·¡¼¥±¥ó¥·¥ã¥ë½ÐÎÏ
8¥·¡¼¥±¥ó¥·¥ã¥ëÆþÎÏ
10LOC´Ø¿ô
12LOF´Ø¿ô
14EOF´Ø¿ô
16FPOS´Ø¿ô
18¥Ð¥Ã¥¯¥¢¥Ã¥×¥­¥ã¥é¥¯¥¿

ɽ5.6¡¡¥Ç¥Ð¥¤¥¹¤ËÂФ¹¤ëÍ×µá

¡ü TEXT
¡¡¤³¤Î2¥Ð¥¤¥È¤Ë¤Ï¡¢¥«¡¼¥È¥ê¥Ã¥¸Æâ¤ÎBASIC¥×¥í¥°¥é¥à¤ò¥ª¡¼¥È¥¹¥¿¡¼¥È(¥ê¥»¥Ã¥È»þ¤Ë¼Â¹Ô)¼Â¹Ô¤¹¤ë¤Î¤Ç¤¢¤ì¤Ð¡¢BASIC¥×¥í¥°¥é¥à¤Î¥Æ¥­¥¹¥È¥Ý¥¤¥ó¥¿¤òÆþ¤ì¤Æ¤ª¤­¡¢¹Ô¤ï¤Ê¤±¤ì¤Ð0000H¤È¤·¤Æ¤ª¤­¤Þ¤¹¡£¥×¥í¥°¥é¥à¤Î¥µ¥¤¥º¤Ï8000H¡ÁBFFFH¤Î16K°Ê²¼¤Ç¤Ê¤±¤ì¤Ð¤¤¤±¤Þ¤»¤ó¡£
¡¡BASIC¥¤¥ó¥¿¡¼¥×¥ê¥¿¤Ï¥¤¥Ë¥·¥ã¥é¥¤¥º(INIT)¤ò½ª¤¨¡¢¥·¥¹¥Æ¥à¤òµ¯Æ°¤·¤¿¸å¡¢¥Ø¥Ã¥À¤ÎTEXT¤ÎÆâÍƤò¥¹¥í¥Ã¥ÈÈÖ¹æ¤Î¾®¤µ¤¤½ç¤ËÄ´¤Ù¤Þ¤¹¡£¤½¤·¤Æ¡¢¤½¤³¤¬0000H°Ê³°¤Ç¤¢¤Ã¤¿¾ì¹ç¡¢¤½¤Î¥¢¥É¥ì¥¹¤òBASIC¥Æ¥­¥¹¥È¥Ý¥¤¥ó¥¿¤È¤·¤Æ¤½¤³¤«¤é¼Â¹Ô¤ò»Ï¤á¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹(¿Þ5.51)¡£¤³¤Î»þ¤ÎBASIC¥×¥í¥°¥é¥à¤Ï¡¢Ãæ´Ö¥³¡¼¥É·Á¼°¤Ç³ÊǼ¤µ¤ì¤Æ¤¤¤ëɬÍפ¬¤¢¤ê¡¢¤Þ¤¿BASIC¥×¥í¥°¥é¥à¤Î½é¤á(TEXT¤¬»Ø¤¹¥¢¥É¥ì¥¹)¤Ë¤Ï¥×¥í¥°¥é¥à¤Î³«»Ï¤ò¼¨¤¹00H¤¬ÉÕ¤¤¤Æ¤¤¤Ê¤±¤ì¤Ð¤¤¤±¤Þ¤»¤ó¡£
¡¡¤Ê¤ª¡¢GOTOʸ¤Ê¤É¤Îʬ´ôÀè¤Î¹ÔÈÖ¹æ¤ò¡¢¤¢¤é¤«¤¸¤áʬ´ôÀè¤Î¥Æ¥­¥¹¥È¥Ý¥¤¥ó¥¿¤ÎÀäÂÐ¥¢¥É¥ì¥¹¤Ë¤·¤Æ¤ª¤¯¤È¡¢¥×¥í¥°¥é¥à¤Î¼Â¹Ô®ÅÙ¤¬¾å¤¬¤ê¤Þ¤¹¡£


¿Þ5.51¡¡BASIC¥×¥í¥°¥é¥à¥«¡¼¥È¥ê¥Ã¥¸¤Î¼Â¹Ô

¡ü BASIC¥×¥í¥°¥é¥à¤ÎROM²½¤ÎÊýË¡

1 BASIC¤Î¥Æ¥­¥¹¥È³ÊǼÀèƬ¥¢¥É¥ì¥¹¤ò8021H¤ËÊѤ¨¤ë¡£

	POKE &HF676,&H21:POKE &HF677,&H80:POKE &H8020,0:NEW

(Ãí)ɬ¤º1¹Ô¤Ë¤Þ¤È¤á¤Æ¼Â¹Ô¤¹¤ë¡£

2 ÌÜŪ¤ÎBASIC¥×¥í¥°¥é¥à¤ò¥í¡¼¥É¤¹¤ë¡£

	LOAD"PROGRAM"

3 ID¤òºîÀ®¤¹¤ë¡£

	AD=&H8000
	FOR I=0 TO 31
	  POKE AD+I,0  		ID¥¨¥ê¥¢¤Î¥¯¥ê¥¢¡¼
	NEXT I
	POKE &H8000,ASC("A")
	POKE &H8001,ASC("B")
	POKE &H8008,&H20
	POKE &H8009,&H80

4 8000H¡ÁBFFFH¤ò¤½¤Î¤Þ¤ÞROM¤Ë¾Æ¤­¹þ¤à¡£

7.3.2¡¡¥«¡¼¥È¥ê¥Ã¥¸ÍÑ¥½¥Õ¥È¤ÎºîÀ®¤Ë´Ø¤¹¤ë½ôÃí°Õ

¡ü ¥«¡¼¥È¥ê¥Ã¥¸¤Ç»ÈÍѤ¹¤ë¥ï¡¼¥¯¥¨¥ê¥¢¤Î³ÎÊÝ
¡¡Â¾¤Î¥«¡¼¥È¥ê¥Ã¥¸¤ËÆþ¤Ã¤Æ¤¤¤ë¥×¥í¥°¥é¥à¤È¤¤¤Ã¤·¤ç¤Ë¼Â¹Ô¤¹¤ëɬÍפ¬¤Ê¤¤¥×¥í¥°¥é¥à(¥²¡¼¥à¥«¡¼¥È¥ê¥Ã¥¸¤Î¤è¤¦¤Ê¥¹¥¿¥ó¥É¥¢¥í¥ó¤Î¥½¥Õ¥È¥¦¥§¥¢)¤Ç¤Ï¡¢BIOS¤Î»ÈÍѤ¹¤ë¥ï¡¼¥¯¥¨¥ê¥¢(F380H)¤è¤ê¥¢¥É¥ì¥¹¤Î¾®¤µ¤¤Éôʬ¤Ï¼«Í³¤Ë»ÈÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£
¡¡¤·¤«¤·¡¢BASIC¥¤¥ó¥¿¡¼¥×¥ê¥¿¤Îµ¡Ç½¤òÍøÍѤ·¤Æ¼Â¹Ô¤µ¤ì¤ë¥×¥í¥°¥é¥à¤Ç¤Ï¡¢Æ±¤¸Îΰè¤ò¥ï¡¼¥¯¥¨¥ê¥¢¤È¤·¤Æ»ÈÍѤ¹¤ë¤ï¤±¤Ë¤Ï¤¤¤­¤Þ¤»¤ó¡£¤½¤ÎÂкö¤È¤·¤Æ¤Ï°Ê²¼¤Î3¤Ä¤ÎÊýË¡¤¬¤¢¤ê¤Þ¤¹¡£

(1)¥«¡¼¥È¥ê¥Ã¥¸¼«ÂΤËRAM¤ò¤Î¤»¤Æ¤·¤Þ¤¦(ºÇ¤â°ÂÁ´³Î¼Â¤ÊÊýË¡)¡£
(2)ɬÍפʥ¥¯¥¨¥ê¥¢¤¬1¥Ð¥¤¥È¤¢¤ë¤¤¤Ï2¥Ð¥¤¥È¤Ê¤é¤ÐSLTWRK(FD09H¡Á)¤Î¼«Ê¬¤ËÂбþ¤¹¤ë2¥Ð¥¤¥È¤ò¥ï¡¼¥¯¤È¤·¤Æ»ÈÍѤ¹¤ë¡£
(3)ɬÍפʥ¥¯¥¨¥ê¥¢¤¬3¥Ð¥¤¥È°Ê¾å¤Ê¤é¤ÐBASIC¤Ç»ÈÍѤ¹¤ëRAM¤«¤é³ÎÊݤ¹¤ë¡£¶ñÂÎŪ¤Ë¤Ï¡¢¤Þ¤ºBOTTOM(FC48H)¤ÎÆâÍƤòSLTWRK(FD09H¡Á)¤ÎÂбþ¤¹¤ë¥¨¥ê¥¢¤Ë½ñ¤­¼Ì¤·¡¢BOTTOM¤ÎÃͤòɬÍפʥ¥¯¥¨¥ê¥¢Ê¬Áý¤ä¤·¡¢¤½¤³¤ò¥ï¡¼¥¯¥¨¥ê¥¢¤È¤·¤Æ³ÎÊݤ¹¤ë(¿Þ5.52)¡£


¿Þ5.52¡¡¥ï¡¼¥¯¥¨¥ê¥¢¤Î³ÎÊÝ

(2)¤È(3)¤Ë¤Ä¤¤¤Æ¤Ï°Ê²¼¤Î¥ê¥¹¥È¤ò»²¹Í¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡£

¥ê¥¹¥È5.13 ¥ï¡¼¥¯¥¨¥ê¥¢³ÎÊݤμ¹ÔÎã

;=======================================================
;  List 5.13   subroutines to support slot
;		for ROM in 1 page
;=======================================================

RSLREG	EQU	0138H
EXPTBL	EQU	0FCC1H
BOTTOM	EQU	0FC48H
HIMEM	EQU	0FC4AH
SLTWRK	EQU	0FD09H

;------------------------------------------------------------
;
;	GTSL1	Get slot number of designated page
;	Entry	None
;	Return	A	Slot address as follows
;	Modify	Flags
;	    FxxxSSPP
;	    |   ||||
;	    |   ||++-- primary slot # (0-3)
;	    |   ++---- secondary slot # (0-3)
;	    |          00 if not expanded
;	    +--------- 1 if secondary slot # specified
;
;	This  value  can  later  be  used  as  an  input
;	parameter  for  the RDSLT, WRSLT, CALSLT, ENASLT
;	and 'RST 30H'
;
	PUBLIC GTSL1@
GTSL1@:
	PUSH	HL		;Save registers
	PUSH	DE
;
	CALL	RSLREG		;read primary slot #
	RRCA
	RRCA
	AND	11B		;[A]=000000PP
	LD	E,A
	LD	D,0		;[DE]=000000PP
	LD	HL,EXPTBL
	ADD	HL,DE		;[HL]=EXPTBL+000000PP
	LD	E,A		;[E]=000000PP
	LD	A,(HL)		;[A]=(EXPTBL+000000PP)
	AND	80H		;Use only MSB
	JR	Z,GTSL1NOEXP
	OR	E		;[A]=F00000PP
	LD	E,A		;save primary slot number
	INC	HL		;point to SLTTBL entry
	INC	HL
	INC	HL
	INC	HL
	LD	A,(HL)		;get currently expansion slot register
	RRCA
	RRCA
	AND	11B		;[A] = 000000SS
	RLCA
	RLCA			;[A] = 0000SS00
	OR	E		;[A] = F000SSPP
;
GTSL1END:
	POP	DE
	POP	HL
	RET
GTSL1NOEXP:
	LD	A,E		;[A] = 000000PP
	JR	GTSL1END

;------------------------------------------------------------
;
;	ASLW1	Get address of slot work
;	Entry	None
;	Return	HL	address of slot work
;	Modify	None
;
	PUBLIC	ASLW1@
ASLW1@:
	PUSH	DE
	PUSH	AF
	CALL	GTSL1@		;[A] = F000SSPP, SS = 00 if not expanded
	AND	00001111B	;[A] = 0000SSPP
	LD	L,A		;[L] = 0000SSPP
	RLCA
	RLCA
	RLCA
	RLCA			;[A] = SSPP0000
	AND	00110000B	;[A] = 00PP0000
	OR	L		;[A] = 00PPSSPP
	AND	00111100B	;[A] = 00PPSS00
	OR	01B		;[A] = 00PPSSBB
;
;	Now.  we  have  the  sequence  number  for  this
;	cartridge as follows.
;
;	00PPSSBB
;	  ||||||
;	  ||||++-- higher 2 bits of memory address (1)
;	  ||++---- secondary slot # (0..3)
;	  ++------ primary slot # (0..3)
;
	RLCA			;*= 2
	LD	E,A
	LD	D,0		;[DE] = 0PPSSBB0
	LD	HL,SLTWRK
	ADD	HL,DE
	POP	AF
	POP	DE
	RET

;------------------------------------------------------------
;
;	RSLW1	Read slot work
;	Entry	None
;	Return	HL	Content of slot work
;	Modify	None
;
	PUBLIC	RSLW1@
RSLW1@:
	PUSH	DE
	CALL	ASLW1@		;[HL] = address of slot work
	LD	E,(HL)
	INC	HL
	LD	D,(HL)		;[DE] = (slot work)
	EX	DE,HL		;[HL] = (slot work)
	POP	DE
	RET

;------------------------------------------------------------
;
;	WSLW1	Write slot work
;	Entry	HL	Data to write
;	Return	None
;	Modify	None
;
	PUBLIC WSLW1@
WSLW1@:
	PUSH	DE
	EX	DE,HL		;[DE] = data to write
	CALL	ASLW1@		;[HL] = address of slot work
	LD	(HL),E
	INC	HL
	LD	(HL),D
	EX	DE,HL		;[HL] = data to write
	POP	DE
	RET

;------------------------------------------------------------
;
; How to allocate work area for cartridges
; If the  work  area  is  greater than 2 bytes, make the SLTWRK
; Point to the system variable  BOTTOM  (0FC48H),  then  update
; it by  the  amount  of  memory required.  BOTTOM is set up by
; the initialization code to point to the  bottom  of  equipped
; RAM.
;	   Ex. if the program is at 4000H..7FFFH.
;
;	WORKB	allocate work area from BOTTOM
;		(my slot work) <- (old BOTTOM)
;	Entry	HL	required memory size
;	Return	HL	start address of my work area = old BOTTOM
;			0 if can not allocate
;	Modify	None
;
	PUBLIC	WORKB@
WORKB@:
	PUSH	DE
	PUSH	BC
	PUSH	AF
;
	EX	DE,HL		;[DE] = Size
	LD	HL,(BOTTOM)	;Get current RAM bottom
	CALL	WSLW1@		;Save BOTTOM to slot work
	PUSH	HL		;Save old BOTTOM
	ADD	HL,DE		;[HL] = (BOTTOM) + SIZE
	LD	A,H		;Beyond 0DFFFH?
	CP	0E0H
	JR	NC,NOROOM	;Yes, cannot allocate this much
	LD	(BOTTOM),HL	;Update (BOTTOM)
	POP	HL		;[HL] = old BOTTOM
WORKBEND:
	POP	AF
	POP	BC
	POP	DE
	RET
;
;	BOTTOM became  greater  than  0DFFFH,  there  is
;	no RAM left to be allocated.
;
NOROOM:
	LD	HL,0
	CALL	WSLW1@		;Clear slot work
	JR	WORKBEND	;Return 0 in [HL]

	END

¡ü ¥Õ¥Ã¥¯
¡¡MSX-BASIC¤¬»ÈÍѤ¹¤ë¥ï¡¼¥¯¥¨¥ê¥¢¤ÎFD9AH¡ÁFFC9H¤Ë¤Ï¡È¥Õ¥Ã¥¯¡É¤È¤¤¤¦BASIC¤Îµ¡Ç½³ÈÄ¥¤Î¤¿¤á¤ÎÎΰ褬¤¢¤ê¤Þ¤¹¡£1¤Ä¤Î¥Õ¥Ã¥¯¤Ï5¥Ð¥¤¥È¤¢¤ê¡¢¤½¤³¤Ë¤ÏÉáÄÌ¡ÈRET¡É¤¬½ñ¤«¤ì¤Æ¤¤¤Þ¤¹¡£
¡¡MSX-BASIC¤Ï¤¢¤ë½èÍý(¥ï¡¼¥¯¥¨¥ê¥¢¤Î¥Õ¥Ã¥¯¤ÎÀâÌÀ¤Ç¼¨¤¹¤è¤¦¤Ê½èÍý)¤ò¹Ô¤¦¤È¡¢¤½¤³¤«¤é°ìÅÙ¤³¤Î¥Õ¥Ã¥¯¤ò¥³¡¼¥ë¤·¤Þ¤¹¡£¡ÈRET¡É¤Î¾ì¹ç¤Ï¤¹¤°Ìá¤Ã¤Æ¤·¤Þ¤¤¤Þ¤¹¤¬¡¢¤½¤Î5¥Ð¥¤¥È¤ò¤¢¤é¤«¤¸¤á¥¤¥Ë¥·¥ã¥é¥¤¥º(INIT)¥ë¡¼¥Á¥ó¤Ë¤è¤ê¥«¡¼¥È¥ê¥Ã¥¸Æâ¤Î¥×¥í¥°¥é¥à¤Ë¥¤¥ó¥¿¡¼¥¹¥í¥Ã¥È¥³¡¼¥ë¤¹¤ë¤è¤¦½ñ¤­´¹¤¨¤Æ¤ª¤±¤Ð¡¢BASIC¤Îµ¡Ç½¤ò³ÈÄ¥¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¤ï¤±¤Ç¤¹(¿Þ5.53»²¾È)¡£
¡¡¤³¤ÎÎã¤È¤·¤Æ¡¢³ä¤ê¹þ¤ß½èÍýÍѤÎH.KEYI¤È¤¤¤¦¥Õ¥Ã¥¯¤ò¥«¡¼¥È¥ê¥Ã¥¸¤¬ÍøÍѤ¹¤ë¾ì¹ç¤Î¥×¥í¥°¥é¥à¤ò¥ê¥¹¥È5.14¤Ë¼¨¤·¤Þ¤¹¡£


¿Þ5.53¡¡¥Õ¥Ã¥¯¤ÎÀßÄê

¥ê¥¹¥È5.14¡¡¥Õ¥Ã¥¯¤Î»ÈÍÑ

;============================================================
;  List 5.14  Sample program to use HOOK
;============================================================
;
; Start-up initialize entry
; This procedure will be called when system initializing.
;
H.KEYI	EQU	0FD9AH		; interrupt hook
EXPTBL	EQU	0FCC1H		; slots expanded or not
PSLTRG	EQU	0A8H		; I/O port address of primary slot register
EXT	MYINT			; my interrupt handler

INIT:
;	<<< Please insert other initialize routine here, if you need. >>>

; Set interrupt entry

	DI			; start of critical region

; Get old interrupt entry inter-slot call hook

	LD	DE,OLDINT	; set address of old interrupt hook saved area
	LD	HL,H.KEYI	; set address of interrupt entry hook
	LD	BC,5		; length of hook is 5 bytes
	LDIR			; transfer

; What slot address is this cartridge placed

	CALL	GTMSLT		; get my slot address

; Set new inter-slot call of interrupt entry

	LD	(H.KEYI+1),A	; set slot address
	LD	A,0F7H		; `RST 30H' inter-slot call operation code
	LD	(H.KEYI),A	; set new hook op-code
	LD	HL,INTENT	; get our interrupt entry point
	LD	(H.KEYI+2),HL	; set new interrupt entry point
	LD	A,0C9H		; 'RET' operation code
	LD	(H.KEYI+4),A	; set operation code of `RET'
	EI			; end of critical region
	RET

;------------------------------------------------------------
; What slot address is this cartridge placed
;  Entry: No
;  Action: Compute my slot address
;  Return: A = slot address
;  Modify: Flag

GTMSLT:
	PUSH	BC		; save environment
	PUSH	HL
	IN	A,(PSLTRG)	; read primary slot register
	RRCA			; move it to bit 0,1 of A
	RRCA
	AND	00000011B	; get bit 1,0
	LD	C,A		; set primary slot No.
	LD	B,0
	LD	HL,EXPTBL	; see is this slot is expanded or not
	ADD	HL,BC
	OR	(HL)		; set MSB if so
	LD	C,A
	INC	HL		; point to SLTTBL entry
	INC	HL
	INC	HL
	INC	HL
	LD	A,(HL)		; get  what  is  currently  output to expansion
				; slot register

	AND	00001100B	; get bit 3,2
	OR	C		; finely form slot address

	POP	HL		; restore environment
	POP	BC
	RET			; return to main

;----- Interrupt entry -----

INTENT:
	CALL	MYINT		; call interrupt handler
	JP	OLDINT		; go old interrupt handler

;----- HOOK save area -----

OLDINT:	DS	5

	END

¡ü ¥¹¥¿¥Ã¥¯¥Ý¥¤¥ó¥¿¤Î½é´ü²½
¡¡¥Ç¥£¥¹¥¯Æ⢤ÎMSX¤Î¾ì¹ç¡¢¥¹¥í¥Ã¥È¤Î°ÌÃ֤ˤè¤Ã¤Æ¤Ï¥«¡¼¥È¥ê¥Ã¥¸¤è¤ê¤â¥Ç¥£¥¹¥¯¡¦¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹ROM¤ÎÊý¤¬Àè¤Ë½é´ü²½Æ°ºî¤ò¹Ô¤¤¡¢¥ï¡¼¥¯¥¨¥ê¥¢³ÎÊݤΤ¿¤á¥¹¥¿¥Ã¥¯¥Ý¥¤¥ó¥¿¤ò²¼°Ì¥¢¥É¥ì¥¹Êý¸þ¤Ë²¼¤²¤ë¤³¤È¤¬¤¢¤ê¤Þ¤¹¡£¤³¤Î»þ¡¢¥Ç¥£¥¹¥¯¤ò»È¤ï¤Ê¤¤¥½¥Õ¥È¥¦¥§¥¢¤Ï¥«¡¼¥È¥ê¥Ã¥¸¤ËÀ©¸æ¤¬ÅϤäƤ­¤Æ¤«¤é¤â¤¦°ìÅÙ¥¹¥¿¥Ã¥¯¥Ý¥¤¥ó¥¿¤òÀßÄꤷľ¤µ¤Ê¤¤¤È¡¢¥¹¥¿¥Ã¥¯Îΰ褬¤Ê¤¯¤Ê¤ê˽Áö¤Ê¤É¤Î¥È¥é¥×¥ë¤òÀ¸¤¸¤ë²ÄǽÀ­¤¬¤¢¤ê¤Þ¤¹¡£¥×¥í¥°¥é¥à¤Î½é¤á¤Ë¤Ï¥¹¥¿¥Ã¥¯¥Ý¥¤¥ó¥¿¤Î¥¤¥Ë¥·¥ã¥é¥¤¥º¤ò˺¤ì¤º¤Ë¹Ô¤Ã¤Æ¤¯¤À¤µ¤¤¡£
¡¡
¡ü ³ÈÄ¥¥¹¥í¥Ã¥È¤Ç¤ÎÆ°ºî¥Á¥§¥Ã¥¯
¡¡°ìÈ̤λÔÈÎ¥½¥Õ¥È¥¦¥§¥¢¤¬³ÈÄ¥¥¹¥í¥Ã¥È¤Ëº¹¤·¹þ¤Þ¤ì¤¿¾ì¹ç¤äRAM¤¬³ÈÄ¥¥¹¥í¥Ã¥È¤Ë¤¢¤ë¾ì¹ç¤Ë¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥×¥í¥°¥é¥à¤¬Æ°ºî¤·¤Ê¤¤¤È¤¤¤¦ÌäÂ꤬¤¢¤ê¤Þ¤¹¡£MSX2¤Î¿¤¯¤Îµ¡¼ï¤ÏËÜÂÎÆâÉô¤Ç³ÈÄ¥¥¹¥í¥Ã¥È¤ò»ÈÍѤ·¤Æ¤¤¤ë¤Î¤Ç¡¢³ÈÄ¥¥¹¥í¥Ã¥È¤Ç¤ÎÆ°ºîÉÔÎɤÏÃ×̿Ū¤Ç¤¹¡£»ÔÈΤµ¤ì¤ë¥½¥Õ¥È¥¦¥§¥¢¤Ï¡¢¤½¤ì¤¬³ÈÄ¥¥¹¥í¥Ã¥È¤ËÆþ¤ì¤é¤ì¤Æ¤¤¤ë¾ì¹ç¤ÈRAM¤¬³ÈÄ¥¥¹¥í¥Ã¥È¤Ë¤¢¤ë¾ì¹ç¤Ë¤Ä¤¤¤Æ¡¢¤«¤Ê¤é¤ºÆ°ºî¥Á¥§¥Ã¥¯¤ò¹Ô¤Ã¤Æ¤¯¤À¤µ¤¤¡£
¡¡ÆäËFFFFHÈÖÃϤˤϳÈÄ¥¥¹¥í¥Ã¥È¥ì¥¸¥¹¥¿¤¬ÃÖ¤«¤ì¤Þ¤¹¤Î¤Ç¡¢¤½¤³¤òRAM¤Î¤Ä¤â¤ê¤Ç»²¾È¤·¤Æ¤Ï¤¤¤±¤Þ¤»¤ó¡£¤¿¤È¤¨¤Ð¡¢¥×¥í¥°¥é¥àÃæ¤Ç¡ÈLD SP,0¡É¤ò¹Ô¤Ã¤ÆFFFFHÈÖÃϤ˥¹¥¿¥Ã¥¯¤òÀßÄꤹ¤ë¤È¡¢¤½¤Î¥×¥í¥°¥é¥à¤Ï³ÈÄ¥¥¹¥í¥Ã¥È¤òÍѤ¤¤¿µ¡¼ï¤Ç¤Ï˽Áö¤·¤Þ¤¹¡£

¡ü CALSLT»ÈÍÑ»þ¤ÎÃí°Õ
¡¡CALSLT¤ª¤è¤ÓCALLF¤Ç¥¤¥ó¥¿¡¼¥¹¥í¥Ã¥È¥³¡¼¥ë¤ò¹Ô¤¦¤È¡¢IX, IY, ¤ª¤è¤Ó΢¥ì¥¸¥¹¥¿¤ÎÆâÍƤÏÇ˲õ¤µ¤ì¤Þ¤¹¡£¤Þ¤¿¡¢¤³¤Î¥ë¡¼¥Á¥ó¤«¤éµ¢¤Ã¤Æ¤¯¤ë»þ¡¢MSX1¤Ç¤Ï³ä¤ê¹þ¤ß¤¬¶Ø»ß¤µ¤ì¤Æ¤¤¤Þ¤¹¤¬¡¢MSX2¤Ç¤Ï¸Æ¤Ó½Ð¤¹Á°¤Î¾õÂÖ¤ËÌá¤ê¤Þ¤¹¡£
¡¡CALSLT¤Þ¤¿¤ÏCALLF¤ò»È¤Ã¤Æ¥¤¥ó¥¿¡¼¥¹¥í¥Ã¥È¥³¡¼¥ë¤ò¹Ô¤¦¤È¡¢ÌÜŪ¤Î¥×¥í¥°¥é¥à¤¬¸Æ¤Ð¤ì¤ë»þ(¿Þ¤Î­£)¤È¸Æ¤Ó½Ð¤·¸µ¤ËÌá¤ë»þ(¿Þ¤Î­¦)¤Ëɬ¤º³ä¤ê¹þ¤ß¤¬¶Ø»ß¤µ¤ì¤Æ¤¤¤Þ¤¹¡£


¡¡MSX2¤Ç¤Ï¡¢¥¤¥ó¥¿¡¼¥¹¥í¥Ã¥È¥³¡¼¥ë¥ë¡¼¥Á¥ó¤ÎÁ°¸å¤Ç³ä¤ê¹þ¤ß¤Î¾õÂÖ¤¬Êݸ¤µ¤ì¤Þ¤¹¡£¤Ä¤Þ¤ê¡¢¿Þ¤Î­£¤Î»þ¤Ë­¡¤ÈƱ¤¸¾õÂ֤ˤʤꡢ­¦¤Î»þ¤Ë­¤¤ÈƱ¤¸¾õÂ֤ˤʤê¤Þ¤¹¡£¸Æ¤Ó½Ð¤µ¤ì¤¿¥×¥í¥°¥é¥à¤¬¡ÈEI¡É¤ä¡ÈDI¡É¤ò¹Ô¤¦¾ì¹ç¤Ï¡¢Ãí°Õ¤·¤Æ²¼¤µ¤¤¡£