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

Appendix A.1 BIOS 一覧

※
※ このページは書きかけです。以下の可能性があります。
※ ・誤字、脱字等のチェックをおこなっていません。
※ ・テキスト、表などフォーマットがされていない。
※ ・画像が抜けている。
※

 ここではユーザーが利用可能なBIOSエントリを紹介します。
 BIOSにはMAIN ROMとSUB ROM内のルーチンの2種類があり、コールの手順はそれぞれ異なります。ここでエントリは次のように表記します。

 記号は次のような意味を持ちます。

記号意味
MSXMSX1からサポートされているルーチン
MSX2MSX2用に追加または機能拡張されたルーチン。
MSX2+MSX2+用に追加または機能拡張されたルーチン。

 [A]、[HL]などレジスタ名を[]で囲んだものは、そのレジスタの内容を示します。例えば、HLレジスタの内容が8000Hであった場合に、[HL]とは8000Hを示していることになります。
 【】で囲んだものは、ワークエリア中の名前と番地です。例えば、【PRTFLG(F416H)】とあれば、ワークエリアのF416H番地にあるPRTFLGという名前の場所を示します。「A.2 ワークエリア」をご参照ください。

A.1.1 MAIN ROM

 MAIN ROM内のルーチンを呼び出す場合は、通常のサブルーチンコールとしてCALL命令または、RST命令で行います。

RST関係
 以下のRSTのうち、RST 00H〜RST 28HはBASICインタプリタが使います。RST 30Hはインタースロットコールに、RST 38Hはハードウェア割り込みに使います。

CHKRAM (0000H/MAIN)
機能
RAMをチェックし、システム用のRAMに使うスロットを選択します。このルーチンの実行後は、さらに初期化のルーチンへ分岐します。
コール手順
なし
戻り値
なし
変更レジスタ
すべて
SYNCHR (0008H/MAIN)
機能
HLレジスタが指す文字が指定した文字かどうかを調べます。違っていたら「Syntax error」を発生し、同じであればCHRGTR (0010/MAIN)へジャンプします。
コール手順

         ld     hl, moji
         rst    08h
         db     'A'
               ・
               ・
               ・
moji:    db     'B'

戻り値
変更レジスタ
AF、HL

A.1.2 SUB ROM

 SUB ROM内のルーチンを呼び出す場合は、以下のようにインタースロットコールを呼び出して使います。

ld     ix, BIOS entry address
call   extrom

 IXレジスタを壊したくない場合は、次のように呼び出します。

push   ix     ; save IX
ld     ix, BIOS entry address
jp     SUBROM