トップ 差分 一覧 ソース 検索 ヘルプ RSS ログイン

8章 アプリケーション作成上の注意

 MSX turbo Rで、アプリケーションプログラムを作成するときは、以下の点に注意して下さい。

 8.1 MAIN ROMのバージョン番号

 MAIN ROMの002DH番地に入っているシステム(BASIC)のバージョン番号は以下のとおりです。

表1.8 MAIN ROMのバージョン番号

機種BASICのバージョン番号002DH番地の内容
MSX BASIC 1.xx 00H
MSX2 BASIC 2.xx 01H
MSX2+ BASIC 3.xx 02H
MSX turbo R BASIC 4.xx 03H

 MSX turbo Rであるかどうかは、MAIN ROMの002DH番地の内容が、03H以上であるかどうか(≧3)で判断してください。決して、3であるかどうか(=3)で調べてはいけません。

 8.2 MSX2+およびMSX turbo Rで動作するソフトウェア

 MSX2+(またはMSX2)とMSX turbo Rとの両方で動作し、MSX turbo RのときはR800モードで動かしたいMSX-DOS1のアプリケーションは、動作しているシステムがMSX turbo Rであることを確認したら、BIOSのCHGCPUをコールし、CPUをR800に切り換えることができます。
 ただし、このアプリケーションがMSX-DOS1のファンクションを呼び出すときには、CPUをZ80に切り換えてから呼び出すようにして下さい。MSX-DOS1はR800のスピードに対応していないので、R800でMSX-DOS1のファンクションを実行すると、ファイルを壊してしまう可能性があります。
 また、基本的にこのようなアプリケーションは、MSX-DOS1やBASICのコマンド待ちの状態に返ってはいけません。R800とMSX-DOS1とを組み合わせたときの動作は、保証されていません。どうしてもアプリケーションを終了したいときには、MAIN ROMの0番地にジャンプして下さい。MSX-DOS1やBASICのコマンド待ちに戻ることが必要なアプリケーションは、戻った時には必ずZ80が選択されているようにして下さい。
 Z80はIX・IYレジスタの8ビットアクセスを保証していませんが、これを使用しているソフトウェアが多くみられます。R800ではこれを保証しているので問題ありませんが、以下のような場合にZ80とは異なった動作をします。
 例えば、

            LD      IXH,IXL

 に対する正しいオブジェクトはDD 65ですが、アセンブラによっては、DD DD 65というオブジェクトを生成するものがあります。
 このオブジェクトはZ80では偶然に正しく動作するようですが、R800では動作が保証されていません。十分にご注意下さい。