{{include unfinished_page}} ,{t},{BSIZE:1 0|SIZE:100%} ,{BSIZE:0}←[[7章 MSX拡張BIOS仕様]] ,{BSIZE:0|RIGHT}[[A.2 ワークエリア|Appendix A.2 ワークエリア]] →  ここではユーザーが利用可能なBIOSエントリを紹介します。  BIOSにはMAIN ROMとSUB ROM内のルーチンの2種類があり、コールの手順はそれぞれ異なります。ここでエントリは次のように表記します。  記号は次のような意味を持ちます。 ,記号,意味 ,MSX,MSX1からサポートされているルーチン ,MSX2,MSX2用に追加または機能拡張されたルーチン。 ,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 ::RDSLT (000CH/MAIN) ,  機 能   , コール手順  A スロット操作 HL 読み込むメモリの番地 ,  戻り値   A 読み込んだメモリの値 ,変更レジスタ AF、BC、DE ::CHRGTR (0010H/MAIN) ,  機 能   , コール手順  ,  戻り値   ,変更レジスタ AF、HL ::WRSLT (0014H/MAIN) , コール手順  A スロット操作(形式はRDSLTと同じ) HL 書き込むメモリの番地 ,  戻り値   なし ,変更レジスタ AF、BC、D ::OUTDO (0018H/MAIN) ,  戻り値   なし ,変更レジスタ なし ::CALSLT (001CH/MAIN) ,  機 能   , コール手順  ,  戻り値   ,変更レジスタ ::DCOMPR (0020H/MAIN) ,  機 能   , コール手順  ,  戻り値   なし ,変更レジスタ AF ::ENASLT (0024H/MAIN) ,  機 能   , コール手順  ,  戻り値   なし ,変更レジスタ ::GETYPR (0028H/MAIN) ,  機 能   , コール手順  なし ,  戻り値   ,変更レジスタ AF ::CALLF (0030H/MAIN) ,  機 能   , コール手順  ,  戻り値   ,変更レジスタ AF ::KEYINT (0038H/MAIN) ,  機 能   , コール手順  なし ,  戻り値   なし ,変更レジスタ なし ::INITIO (003BH/MAIN) ,  機 能   デバイスを初期化します。 , コール手順  なし ,  戻り値   なし ,変更レジスタ すべて ::INIFNK (003EH/MAIN) ,  機 能   , コール手順  なし ,  戻り値 なし   ,変更レジスタ ::DISSCR (0041H/MAIN) ,  機 能   , コール手順  なし ,  戻り値   なし ,変更レジスタ ::ENASCR (0044H/MAIN) ,  機 能   , コール手順  なし ,  戻り値  なし  ,変更レジスタ ::WRTVDP (0047H/MAIN) ,  機 能   , コール手順  ,  戻り値   なし ,変更レジスタ ::RDVRM (004AH/MAIN) ,  機 能   , コール手順  ,  戻り値   ,変更レジスタ ::WRTVRM (004DH/MAIN) ,  機 能   , コール手順  ,  戻り値   なし ,変更レジスタ ::SETRD (0050H/MAIN) ,  機 能   , コール手順  ,  戻り値   なし ,変更レジスタ ::SETWRT (0053H/MAIN) ,  機 能   , コール手順  ,  戻り値   なし ,変更レジスタ ::FILVRM (0056H/MAIN) ,  機 能   , コール手順  ,  戻り値   なし ,変更レジスタ ::LDIRMV (0059H/MAIN) ,  機 能   , コール手順  ,  戻り値   なし ,変更レジスタ ::CHGMOD (005CH/MAIN) ,  機 能   , コール手順  ,  戻り値   なし ,変更レジスタ ::CHGCLR (0062H/MAIN) ,  機 能   , コール手順  ,  戻り値   なし ,変更レジスタ ::NMI (0066H/MAIN) ,  機 能   , コール手順  なし ,  戻り値   なし ,変更レジスタ ::CLRSPR (0069H/MAIN) ,  機 能   , コール手順  なし ,  戻り値   なし ,変更レジスタ ::INITXT (006CH/MAIN) ,  機 能   , コール手順  ,  戻り値   なし ,変更レジスタ ::INIT32 (006FH/MAIN) ,  機 能   , コール手順  ,  戻り値   なし ,変更レジスタ ::INIGRP (0072H/MAIN) ,  機 能   , コール手順  ,  戻り値   なし ,変更レジスタ ::INIMLT (0075H/MAIN) ,  機 能   , コール手順  ,  戻り値   なし ,変更レジスタ ::SETTXT (0078H/MAIN) ,  機 能   , コール手順  ,  戻り値   なし ,変更レジスタ ::SETT32 (007BH/MAIN) ,  機 能   , コール手順  ,  戻り値   なし ,変更レジスタ ::SETGRP (007EH/MAIN) ,  機 能   , コール手順  ,  戻り値   なし ,変更レジスタ ::SETMLT (0081H/MAIN) ,  機 能   , コール手順  なし ,  戻り値   ,変更レジスタ ::CALPAT (0084H/MAIN) ,  機 能   , コール手順  ,  戻り値   ,変更レジスタ ::CALATR (0087H/MAIN) ,  機 能   , コール手順  ,  戻り値   ,変更レジスタ ::GSPSIZ (008AH/MAIN) ,  機 能   , コール手順  なし ,  戻り値   ,変更レジスタ ::GRPPRT (008DH/MAIN) ,  機 能   , コール手順  ,  戻り値   なし ,変更レジスタ ::GICINI (0090H/MAIN) ,  機 能   , コール手順  なし ,  戻り値   なし ,変更レジスタ ::WRTPSG (0093H/MAIN) ,  機 能   , コール手順  ,  戻り値   なし ,変更レジスタ なし ::RDPSG (0096H/MAIN) ,  機 能   PSGレジスタの値を読み出します。 , コール手順  ,  戻り値   ,変更レジスタ なし ::STRTMS (0099H/MAIN) ,  機 能   バックグラウンドタスクとして、PLAY文が実行中であるかどうかをチェックして、実行中でなければ音楽の再生を始めます。 , コール手順  ,  戻り値   なし ,変更レジスタ ::CHSNS (009CH/MAIN) ,  機 能   キーボードバッファの状態を調べます。 , コール手順  なし ,  戻り値   ,変更レジスタ ::CHGET (009FH/MAIN) ,  機 能   , コール手順  なし ,  戻り値   A 入力された文字コード ,変更レジスタ ::CHPUT (00A2H/MAIN) ,  機 能   , コール手順  ,  戻り値   なし ,変更レジスタ ::CHPUT (00A2H/MAIN) ::LPTOUT (00A2H/MAIN) ::LPTSTT (00A2H/MAIN) ::CNVCHR (00A2H/MAIN) ::PINLIN (00A2H/MAIN) ::INLIN (00A2H/MAIN) ::QINLIN (00A2H/MAIN) ::BREAKX (00A2H/MAIN) ::BEEP (00A2H/MAIN) ::CLS (00A2H/MAIN) ::POSIT (00A2H/MAIN) ::FNKSB (00A2H/MAIN) ::ERAFNK (00A2H/MAIN) ::DSPFNK (00A2H/MAIN) ::TOTEXT (00A2H/MAIN) ::GTSTCK (00A2H/MAIN) ::GTTRIG (00A2H/MAIN) ::GTPAD (00A2H/MAIN) ::GTPDL (00A2H/MAIN) ::TAPION (00A2H/MAIN) ::TAPIN (00A2H/MAIN) ::TAPIOF (00A2H/MAIN) ::TAPOON (00A2H/MAIN) ::TAPOUT (00A2H/MAIN) ::TAPOOF (00A2H/MAIN) ::STMOTR (00A2H/MAIN) ::CHGCAP (00A2H/MAIN) ::CHGSND (00A2H/MAIN) ::RSLREG (00A2H/MAIN) ::WSLREG (00A2H/MAIN) ::RDVDP (00A2H/MAIN) ::SNSMAT (00A2H/MAIN) ::ISFLIO (00A2H/MAIN) ::OUTDLP (00A2H/MAIN) ::KILBUF (00A2H/MAIN) ::CALBAS (00A2H/MAIN) ::SUBROM (00A2H/MAIN) ::EXTROM (00A2H/MAIN) ::EOL (00A2H/MAIN) ::BIGFIL (00A2H/MAIN) ::NSETRD (00A2H/MAIN) ::NSTWRT (00A2H/MAIN) ::NRDVRM (00A2H/MAIN) ::NWRVRM (00A2H/MAIN) ::RDRES (00A2H/MAIN) ::WRRES (017DH/MAIN) !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 ,{t},{BSIZE:1 0|SIZE:100%} ,{BSIZE:0}←[[7章 MSX拡張BIOS仕様]] ,{BSIZE:0|RIGHT}[[A.2 ワークエリア|Appendix A.2 ワークエリア]] →