,{c H},{BGCOLOR:dddddd|BOLD|CENTER} ,{c C},{CENTER} ,{c L},{LEFT} // %Âè1ÈÇÂè15ºþ P.317-339 // !!!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ɸ½à¤Î¥«¡¼¥È¥ê¥Ã¥¸ÍÑ¥¹¥í¥Ã¥È¤Ï¤«¤Ê¤é¤º´ðËÜ¥¹¥í¥Ã¥È¤À¤¬¡¢³Æµ¡¼ï¤Î¥ª¥×¥·¥ç¥ó¥Ï¡¼¥É¥¦¥§¥¢ÀìÍÑ¥³¥Í¥¯¥¿¤Ï¡¢³ÈÄ¥¥¹¥í¥Ã¥È¤ËÀܳ¤µ¤ì¤Æ¤¤¤ë¤³¤È¤¬¤¢¤ë)¡£ {{div_begin style='text-align:center;'}} {{svg ¿Þ5.36.svg,,size:390x460}} '''¿Þ5.36¡¡´ðËÜ¥¹¥í¥Ã¥È¤È³ÈÄ¥¥¹¥í¥Ã¥È''' {{div_end}} ¡¡³Æ¥¹¥í¥Ã¥È¤Ï0000H¡ÁFFFFH¤Þ¤Ç¤Î64K¥Ð¥¤¥È¤Î¥¢¥É¥ì¥¹¶õ´Ö¤ò»ý¤Á¤Þ¤¹¤¬¡¢MSX¤Ç¤Ï¤½¤ì¤ò16K¥Ð¥¤¥È¤º¤Ä4¤Ä¤Ëʬ¤±¡È¥Ú¡¼¥¸¡É¤È¤·¤Æ´ÉÍý¤·¤Æ¤¤¤Þ¤¹¡£CPU¤Ï¥Ú¡¼¥¸¤´¤È¤ËǤ°Õ¤Î¥¹¥í¥Ã¥È¤òÁªÂò¤·¤Æ¥¢¥¯¥»¥¹¤Ç¤­¡¢¿Þ5.37¤Î¤è¤¦¤Ë¡¢¤¤¤¯¤Ä¤«¤Î¥¹¥í¥Ã¥È¤«¤éɬÍפÊÉôʬ¤À¤±¤òÁª¤ó¤ÇÁȤ߹ç¤ï¤»¤ë¤³¤È¤â²Äǽ¤Ç¤¹¡£¤¿¤À¤·¡¢¤¢¤ëÈÖ¹æ¤Î¥Ú¡¼¥¸¤ò°Û¤Ê¤ëÈÖ¹æ¤Î¥Ú¡¼¥¸¤Ë³ä¤êÅö¤Æ¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó(¤Ä¤Þ¤ê¡¢³Æ¥¹¥í¥Ã¥È¤Î¥Ú¡¼¥¸n¤Ï¡¢CPU¤«¤é¸«¤Æ¤â¥Ú¡¼¥¸n¤Ç¤¢¤ë)¡£ {{div_begin style='text-align:center;'}} {{svg ¿Þ5.37.svg,,size:450x210}} '''¿Þ5.37¡¡¥Ú¡¼¥¸¤ÎÁªÂò¤ÎÎã''' {{div_end}} !7.1.2¡¡¥¹¥í¥Ã¥È¤ÎÁªÂò ¡¡¥¹¥í¥Ã¥È¤ÎÁªÂòÊýË¡¤Ï¡¢´ðËÜ¥¹¥í¥Ã¥È¤È³ÈÄ¥¥¹¥í¥Ã¥È¤Ç¤Ï°Û¤Ê¤ê¤Þ¤¹¡£´ðËÜ¥¹¥í¥Ã¥È¤Î¾ì¹ç¤ÏA8HÈÖÃϤÎI/O¥Ý¡¼¥È¤Ë¤è¤Ã¤Æ¹Ô¤¤(¿Þ5.38)¡¢³ÈÄ¥¥¹¥í¥Ã¥È¤Î¾ì¹ç¤Ï¼ÂÁõ¤µ¤ì¤¿³ÈÄ¥¥«¡¼¥È¥ê¥Ã¥¸¤Î¡È³ÈÄ¥¥¹¥í¥Ã¥ÈÁªÂò¥ì¥¸¥¹¥¿(FFFFH)¡É¤Ë¤è¤Ã¤Æ¹Ô¤¤¤Þ¤¹(¿Þ5.39)¡£¤·¤«¤·¡¢¤½¤ì¤é¤òľÀÜÊѹ¹¤¹¤ë¤³¤È¤ÏÂçÊÑ´í¸±¤Ç¤¹¤«¤é¡¢¥¹¥í¥Ã¥È¤ÎÀڤ괹¤¨¤ÏÉÔÍװդ˹Ԥï¤Ê¤¤¤Ç¤¯¤À¤µ¤¤¡£Æäˡ¢¥×¥í¥°¥é¥à¤¬¼«Ê¬¼«¿È¤Î¤¤¤ë¥Ú¡¼¥¸¤Î¥¹¥í¥Ã¥È¤òÀڤ괹¤¨¤¿¾ì¹ç¡¢Æ°ºî¤ÏÊݾڤµ¤ì¤Þ¤»¤ó¡£Â¾¤Î¥¹¥í¥Ã¥È¤Ë¤¢¤ë¥×¥í¥°¥é¥à¤ò¸Æ¤Ó½Ð¤·¤¿¤¤¾ì¹ç¤Ï¡¢¼¡Àá¤ÇÀâÌÀ¤¹¤ë¥¤¥ó¥¿¡¼¥¹¥í¥Ã¥È¥³¡¼¥ë¤ò»ÈÍѤ·¤Æ¤¯¤À¤µ¤¤¡£ {{div_begin style='text-align:center;'}} {{svg ¿Þ5.38.svg,,size:550x200}} '''¿Þ5.38¡¡´ðËÜ¥¹¥í¥Ã¥È¤ÎÁªÂò''' {{div_end}} {{div_begin style='text-align:center;'}} {{svg ¿Þ5.39.svg,,size:550x230}} '''¿Þ5.39¡¡³ÈÄ¥¥¹¥í¥Ã¥È¤ÎÁªÂò''' {{div_end}} ¡¡¤É¤³¤Î¥¹¥í¥Ã¥È¤Ë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) {{div_begin style='text-align:center;'}} {{svg ¿Þ5.40.svg,,size:510x170}} '''¿Þ5.40¡¡¥¹¥í¥Ã¥È¤Î¥Õ¥©¡¼¥Þ¥Ã¥È''' {{div_end}} ¡¡¤Þ¤¿¡¢¤¢¤ë¥ë¡¼¥Á¥ó¤¬¥Ú¡¼¥¸1¤È¥Ú¡¼¥¸2(4000H¡ÁBFFFH)¤Ë¤Þ¤¿¤¬¤Ã¤Æ¤¤¤ë¾ì¹ç¤ò¹Í¤¨¤Æ¤¯¤À¤µ¤¤¡£¤³¤Î¥ë¡¼¥Á¥ó¤ÎÃæ¤Ç1¥Ú¡¼¥¸¤«¤é2¥Ú¡¼¥¸¤Øʬ´ô¤¬µ¯¤³¤ë»þ¤Ë¤Ï¡¢¥Ú¡¼¥¸2¤Ë¥Ú¡¼¥¸1¤ÈƱ¤¸¥¹¥í¥Ã¥È¤¬ÁªÂò¤µ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£¤½¤Î¤¿¤á¤Ë¤Ï¡¢¥Ú¡¼¥¸1¤Ç¤Þ¤º¼«Ê¬¤Î¤¤¤ë¥¹¥í¥Ã¥È¤òÄ´¤Ù¡¢¥Ú¡¼¥¸2¤ò¤½¤Î¥¹¥í¥Ã¥È¤ËÀڤ괹¤¨¤ë¤È¤¤¤¦ºî¶È¤¬É¬ÍפǤ¹¡£¸½ºß¼«Ê¬¤¬¤É¤Î¥¹¥í¥Ã¥È¤Ë¤¤¤ë¤Î¤«¡¢¤È¤¤¤¦¾ðÊó¤òÃΤ뤿¤á¤Ë¤Ï¥ê¥¹¥È5.11¤Î¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤·¤Æ¤¯¤À¤µ¤¤¡£ {{div_begin style='text-align:right;'}} '''¥ê¥¹¥È5.11¡¡¼«Ê¬¤Î¤¤¤ë¥¹¥í¥Ã¥È¤òÃΤ뤿¤á¤Î¥×¥í¥°¥é¥à''' {{div_end}} ;========================================================== ; 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¤ò¸Æ¤Ó½Ð¤¹¡£ {{div_begin style='text-align:center;'}} {{svg ¿Þ5.41.svg,,size:600x240}} '''¿Þ5.41¡¡¥¤¥ó¥¿¡¼¥¹¥í¥Ã¥È¥³¡¼¥ë¤Î¤µ¤ìÊý''' {{div_end}} ¡¡¤³¤ì¤é¤Îºî¶È¤ò¹Ô¤¦ºÝ¥¹¥í¥Ã¥ÈÀڤ괹¤¨¤¬´Êñ¤«¤Ä°ÂÁ´¤Ë¹Ô¤¨¤ë¤è¤¦¤Ë¡¢¥¤¥ó¥¿¡¼¥¹¥í¥Ã¥È¥³¡¼¥ë¤È¤¤¤¦°ì·²¤Î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 {{div_begin style='text-align:center;'}} '''¿Þ5.42¡¡¥¤¥ó¥¿¡¼¥¹¥í¥Ã¥È¥³¡¼¥ë¤Î¼Â¹ÔÎã''' {{div_end}} '''¡ü 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) ¡¡¡Å¡Å¡Å¡¡»ØÄꥹ¥í¥Ã¥È¤Î»ØÄꥢ¥É¥ì¥¹¤ò¸Æ¤Ó½Ð¤¹ {{div_begin style='text-align:right;'}} '''¥ê¥¹¥È5.12 MSX-DOS¤«¤éBIOS¤ò¸Æ¤Ó½Ð¤¹''' {{div_end}} ;============================================================ ; 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¤Î¥¹¥í¥Ã¥È {{div_begin style='text-align:center;'}} {{svg ¿Þ5.43.svg,,size:530x170}} '''¿Þ5.43¡¡SUB-ROM¤Î¥¹¥í¥Ã¥È''' {{div_end}} '''¡ü EXPTBL(FCC1H,4) '''¡Ä¡Ä¡Ä¡¡´ðËÜ¥¹¥í¥Ã¥È¤Î³ÈÄ¥¤Î̵ͭ {{div_begin style='text-align:center;'}} {{svg ¿Þ5.44.svg,,size:530x280}} '''¿Þ5.44¡¡´ðËÜ¥¹¥í¥Ã¥È¤ÎÁªÂò''' {{div_end}} '''¡ü SLTTBL(FCC5H,4) '''¡Ä¡Ä¡Ä¡¡³ÈÄ¥¥¹¥í¥Ã¥ÈÁªÂò¥ì¥¸¥¹¥¿ÃͤÎÊݸ¥¨¥ê¥¢ {{div_begin style='text-align:center;'}} {{svg ¿Þ5.45.svg,,size:640x320}} '''¿Þ5.45¡¡³ÈÄ¥¥¹¥í¥Ã¥È¤ÎÁªÂò''' {{div_end}} '''¡ü SLTATR(FCC9H,64) '''¡Ä¡Ä¡Ä¡¡³Æ¥¹¥í¥Ã¥È¡¿¥Ú¡¼¥¸¤Ë¤ª¤±¤ë¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Î̵ͭ {{div_begin style='text-align:center;'}} {{svg ¿Þ5.46.svg,,size:600x260}} '''¿Þ5.46¡¡¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Î̵ͭ''' {{div_end}} '''¡ü SLTWRK(FD09H,128) '''¡Ä¡Ä¡Ä¡¡¥¢¥×¥ê¥±¡¼¥·¥ç¥óÍѥ¥¯¥¨¥ê¥¢ {{div_begin style='text-align:center;'}} {{svg ¿Þ5.47.svg,,size:500x210}} '''¿Þ5.47¡¡¥¢¥×¥ê¥±¡¼¥·¥ç¥óÍѥ¥¯¥¨¥ê¥¢''' {{div_end}} !!7.3¡¡¥«¡¼¥È¥ê¥Ã¥¸¥½¥Õ¥È¤ÎºîÀ®Ë¡ ¡¡MSX¤Ë¤ÏºÇÄã1¤Ä¤Î¥¹¥í¥Ã¥È¤¬É½¤Ë½Ð¤Æ¤ª¤ê¡¢¤³¤³¤Ëº¹¤·¹þ¤Þ¤ì¤ë¥Ï¡¼¥É¥¦¥§¥¢¤ò¡È¥«¡¼¥È¥ê¥Ã¥¸¡É¤È¤¤¤¤¤Þ¤¹¡£¥«¡¼¥È¥ê¥Ã¥¸¤Ë¤Ï¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¡¦¥×¥í¥°¥é¥à¤ä¥²¡¼¥à¤Ê¤É¤ÎROM¥«¡¼¥È¥ê¥Ã¥¸¡¢¥Ç¥£¥¹¥¯¡¦¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤äRS-232C¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤Ê¤É¤ÎÆþ½ÐÎÏÁõÃÖ¥«¡¼¥È¥ê¥Ã¥¸¡¢RAM¤òÁý¤ä¤¹¤¿¤á¤ÎÁýÀßRAM¥«¡¼¥È¥ê¥Ã¥¸¡¢¥¹¥í¥Ã¥È¤òÁý¤ä¤¹¤¿¤á¤Î¥¹¥í¥Ã¥È³ÈÄ¥¥Ü¥Ã¥¯¥¹¤Ê¤É¤¤¤í¤¤¤í¤ÈÀܳ¤Ç¤­¡¢¤³¤ì¤Ë¤è¤êMSX¤Ïµ¡Ç½¤Î³ÈÂç¤ò´Êñ¤Ë¹Ô¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¤Þ¤¿¡¢BASIC¤ä¥Þ¥·¥ó¸ì¥×¥í¥°¥é¥à¤òROM²½(¥«¡¼¥È¥ê¥Ã¥¸²½)¤¹¤ë¤³¤È¤â´Êñ¤Ç¤¹¡£¤³¤³¤Ç¤Ï¥½¥Õ¥È¥¦¥§¥¢¤ò¥«¡¼¥È¥ê¥Ã¥¸²½¤¹¤ëÊýË¡¤òÀâÌÀ¤·¤Þ¤¹¡£ !7.3.1¡¡¥«¡¼¥È¥ê¥Ã¥¸¡¦¥Ø¥Ã¥À ¡¡MSX¤Î¥«¡¼¥È¥ê¥Ã¥¸¤Ï¡¢16¥Ð¥¤¥È¤Î¶¦Ä̤ΥإåÀ¤ò»ý¤Ã¤Æ¤ª¤ê¡¢¥·¥¹¥Æ¥à¤¬¥ê¥»¥Ã¥È¤µ¤ì¤ë¤È¡¢¤³¤Î¥Ø¥Ã¥À¤Ëµ­½Ò¤µ¤ì¤¿¾ðÊó¤Ë¤è¤ê¥«¡¼¥È¥ê¥Ã¥¸¤Î½é´üÀßÄ꤬¹Ô¤ï¤ì¤Þ¤¹¡£BASIC¤ä¥Þ¥·¥ó¸ì¤Î¥×¥í¥°¥é¥à¤òROM²½¤·¤¿¥«¡¼¥È¥ê¥Ã¥¸¤Î¾ì¹ç¤Ï¡¢¤³¤Î¥Ø¥Ã¥À¤Ë½ñ¤­¹þ¤à¾ðÊó¤Ë¤è¤Ã¤Æ¥ª¡¼¥È¥¹¥¿¡¼¥È¤µ¤»¤ë¤³¤È¤â²Äǽ¤Ç¤¹¡£¥«¡¼¥È¥ê¥Ã¥¸¡¦¥Ø¥Ã¥À¤Î¹½À®¤ò¿Þ5.48¤Ë¼¨¤·¤Þ¤¹¡£ {{div_begin style='text-align:center;'}} {{svg ¿Þ5.48.svg,,size:440x250}} '''¿Þ5.48¡¡¥×¥í¥°¥é¥à¥«¡¼¥È¥ê¥Ã¥¸¤Î¥Ø¥Ã¥À''' {{div_end}} '''¡ü 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)¡£ {{div_begin style='text-align:center;'}} {{svg ¿Þ5.49.svg,,size:570x400}} '''¿Þ5.49¡¡³ÈÄ¥¥¹¥Æ¡¼¥È¥á¥ó¥È½èÍý¥ë¡¼¥Á¥ó¤ÎÆþ½ÐÎÏ''' {{div_end}} ¡¡¤½¤³¤Ç¡¢¥¹¥Æ¡¼¥È¥á¥ó¥È³ÈÄ¥¥ë¡¼¥Á¥ó¤òºîÀ®¤¹¤ë¾ì¹ç¤Ï¡¢¤Þ¤º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)¤òÀßÄꤷ¤Æ¥Ç¥Ð¥¤¥¹³ÈÄ¥¥ë¡¼¥Á¥ó¤ò¸Æ¤Ó½Ð¤·¤Þ¤¹¡£¥Ç¥Ð¥¤¥¹³ÈÄ¥¥ë¡¼¥Á¥ó¤Ç¤Ï¤½¤ì¤ò»²¾È¤·¡¢Í×µá¤Ë±þ¤¸¤¿½èÍý¤ò¹Ô¤Ã¤Æ¤¯¤À¤µ¤¤¡£ {{div_begin style='text-align:center;'}} {{svg ¿Þ5.50.svg,,size:500x330}} '''¿Þ5.50¡¡¥Ç¥Ð¥¤¥¹³ÈÄ¥¥ë¡¼¥Á¥ó¤Ø¤ÎÆþ½ÐÎÏ''' {{div_end}} ,{t},{CENTER} ,{c},{H},{H} ,A¥ì¥¸¥¹¥¿,Í×µá ,{c},{C},{L} ,0,OPEN ,2,CLOSE ,4,¥é¥ó¥À¥à¥¢¥¯¥»¥¹ ,6,¥·¡¼¥±¥ó¥·¥ã¥ë½ÐÎÏ ,8,¥·¡¼¥±¥ó¥·¥ã¥ëÆþÎÏ ,10,LOC´Ø¿ô ,12,LOF´Ø¿ô ,14,EOF´Ø¿ô ,16,FPOS´Ø¿ô ,18,¥Ð¥Ã¥¯¥¢¥Ã¥×¥­¥ã¥é¥¯¥¿ ɽ5.6¡¡¥Ç¥Ð¥¤¥¹¤ËÂФ¹¤ëÍ×µá '''¡ü TEXT''' ¡¡¤³¤Î2¥Ð¥¤¥È¤Ë¤Ï¡¢¥«¡¼¥È¥ê¥Ã¥¸Æâ¤ÎBASIC¥×¥í¥°¥é¥à¤ò¥ª¡¼¥È¥¹¥¿¡¼¥È(¥ê¥»¥Ã¥È»þ¤Ë¼Â¹Ô)¼Â¹Ô¤¹¤ë¤Î¤Ç¤¢¤ì¤Ð¡¢BASIC¥×¥í¥°¥é¥à¤Î¥Æ¥­¥¹¥È¥Ý¥¤¥ó¥¿¤òÆþ¤ì¤Æ¤ª¤­¡¢¹Ô¤ï¤Ê¤±¤ì¤Ð0000H¤È¤·¤Æ¤ª¤­¤Þ¤¹¡£¥×¥í¥°¥é¥à¤Î¥µ¥¤¥º¤Ï8000H¡ÁBFFFH¤Î16K°Ê²¼¤Ç¤Ê¤±¤ì¤Ð¤¤¤±¤Þ¤»¤ó¡£ ¡¡BASIC¥¤¥ó¥¿¡¼¥×¥ê¥¿¤Ï¥¤¥Ë¥·¥ã¥é¥¤¥º(INIT)¤ò½ª¤¨¡¢¥·¥¹¥Æ¥à¤òµ¯Æ°¤·¤¿¸å¡¢¥Ø¥Ã¥À¤ÎTEXT¤ÎÆâÍƤò¥¹¥í¥Ã¥ÈÈÖ¹æ¤Î¾®¤µ¤¤½ç¤ËÄ´¤Ù¤Þ¤¹¡£¤½¤·¤Æ¡¢¤½¤³¤¬0000H°Ê³°¤Ç¤¢¤Ã¤¿¾ì¹ç¡¢¤½¤Î¥¢¥É¥ì¥¹¤òBASIC¥Æ¥­¥¹¥È¥Ý¥¤¥ó¥¿¤È¤·¤Æ¤½¤³¤«¤é¼Â¹Ô¤ò»Ï¤á¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹(¿Þ5.51)¡£¤³¤Î»þ¤ÎBASIC¥×¥í¥°¥é¥à¤Ï¡¢Ãæ´Ö¥³¡¼¥É·Á¼°¤Ç³ÊǼ¤µ¤ì¤Æ¤¤¤ëɬÍפ¬¤¢¤ê¡¢¤Þ¤¿BASIC¥×¥í¥°¥é¥à¤Î½é¤á(TEXT¤¬»Ø¤¹¥¢¥É¥ì¥¹)¤Ë¤Ï¥×¥í¥°¥é¥à¤Î³«»Ï¤ò¼¨¤¹00H¤¬ÉÕ¤¤¤Æ¤¤¤Ê¤±¤ì¤Ð¤¤¤±¤Þ¤»¤ó¡£ ¡¡¤Ê¤ª¡¢GOTOʸ¤Ê¤É¤Îʬ´ôÀè¤Î¹ÔÈÖ¹æ¤ò¡¢¤¢¤é¤«¤¸¤áʬ´ôÀè¤Î¥Æ¥­¥¹¥È¥Ý¥¤¥ó¥¿¤ÎÀäÂÐ¥¢¥É¥ì¥¹¤Ë¤·¤Æ¤ª¤¯¤È¡¢¥×¥í¥°¥é¥à¤Î¼Â¹Ô®ÅÙ¤¬¾å¤¬¤ê¤Þ¤¹¡£ {{div_begin style='text-align:center;'}} {{svg ¿Þ5.51.svg,,size:400x220}} '''¿Þ5.51¡¡BASIC¥×¥í¥°¥é¥à¥«¡¼¥È¥ê¥Ã¥¸¤Î¼Â¹Ô''' {{div_end}} '''¡ü 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)¡£ {{div_begin style='text-align:center;'}} {{svg ¿Þ5.52.svg,,size:520x160}} '''¿Þ5.52¡¡¥ï¡¼¥¯¥¨¥ê¥¢¤Î³ÎÊÝ''' {{div_end}} (2)¤È(3)¤Ë¤Ä¤¤¤Æ¤Ï°Ê²¼¤Î¥ê¥¹¥È¤ò»²¹Í¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡£ {{div_begin style='text-align:right;'}} '''¥ê¥¹¥È5.13 ¥ï¡¼¥¯¥¨¥ê¥¢³ÎÊݤμ¹ÔÎã''' {{div_end}} ;======================================================= ; 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¤Ë¼¨¤·¤Þ¤¹¡£ {{div_begin style='text-align:center;'}} {{svg ¿Þ5.53.svg,,size:520x400}} '''¿Þ5.53¡¡¥Õ¥Ã¥¯¤ÎÀßÄê''' {{div_end}} {{div_begin style='text-align:right;'}} '''¥ê¥¹¥È5.14¡¡¥Õ¥Ã¥¯¤Î»ÈÍÑ''' {{div_end}} ;============================================================ ; 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¤ò»È¤Ã¤Æ¥¤¥ó¥¿¡¼¥¹¥í¥Ã¥È¥³¡¼¥ë¤ò¹Ô¤¦¤È¡¢ÌÜŪ¤Î¥×¥í¥°¥é¥à¤¬¸Æ¤Ð¤ì¤ë»þ(¿Þ¤Î­£)¤È¸Æ¤Ó½Ð¤·¸µ¤ËÌá¤ë»þ(¿Þ¤Î­¦)¤Ëɬ¤º³ä¤ê¹þ¤ß¤¬¶Ø»ß¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ {{div_begin style='text-align:center;'}} {{svg ¿Þ5.54.svg,,size:450x140}} {{div_end}} ¡¡MSX2¤Ç¤Ï¡¢¥¤¥ó¥¿¡¼¥¹¥í¥Ã¥È¥³¡¼¥ë¥ë¡¼¥Á¥ó¤ÎÁ°¸å¤Ç³ä¤ê¹þ¤ß¤Î¾õÂÖ¤¬Êݸ¤µ¤ì¤Þ¤¹¡£¤Ä¤Þ¤ê¡¢¿Þ¤Î­£¤Î»þ¤Ë­¡¤ÈƱ¤¸¾õÂ֤ˤʤꡢ­¦¤Î»þ¤Ë­¤¤ÈƱ¤¸¾õÂ֤ˤʤê¤Þ¤¹¡£¸Æ¤Ó½Ð¤µ¤ì¤¿¥×¥í¥°¥é¥à¤¬¡ÈEI¡É¤ä¡ÈDI¡É¤ò¹Ô¤¦¾ì¹ç¤Ï¡¢Ãí°Õ¤·¤Æ²¼¤µ¤¤¡£