%第1版第9第刷 !!!Appendix A.1 BIOS 一覧  ここではユーザーが利用可能な 126 の BIOS エントリを紹介します。  BIOS には MAIN-ROM と SUB-ROM 内のルーチンの 2 種類あり、コーリング・シーケンスはそれぞれ異なります (これについては後述)。ここでエントリは、次のように表記します。 ::ラベル名 (アドレス)    *n :::'''機能'''    機能解説および注意{{br}} :::'''入力'''    呼び出し時に必要なパラメータ{{br}} :::'''出力'''    リターンされるパラメータ{{br}} :::'''レジスタ'''  内容が破壊されるレジスタ{{br}}  n の値は次のような意味を持ちます。 *1 ……… MSX1 と同じもの。 *2 ……… スクリーン・モード 5 〜 8 では内部で SUB-ROM を呼び出す。 *3 ……… つねに SUB-ROM を呼び出す。 *4 ……… スクリーン・モード 4 〜 8 の変更はあるが、SUB-ROM は呼び出さない。  また、何もついていないものは、MSX2 用に新たに追加されたルーチンです。 ---- '''MAIN-ROM'''  MAIN-ROM 内のルーチンを呼び出す場合は、通常のサブルーチンコールとして CALL 命令または RST 命令で行います。 '''●RST 関係''' 以下の RST のうち、RST 00H 〜 RST 28H は BASIC インタープリタが使います。RST 30H はスロット間コール (インタースロット・コール) に、RST 38H はハードウェア割り込みに使われます。 ::CHKRAM (0000H)    *1 :::'''機能'''    RAM をチェックし、システム用の RAM スロットをセット{{br}} :::'''入力'''    なし{{br}} :::'''出力'''    なし{{br}} :::'''レジスタ'''  すべて{{br}} ::SYNCHR (0008H)    *1 :::'''機能'''    [HL] の 1 文字が指定した文字かどうかチェック。違っていたら SYNTAX ERROR を発生し、同じなら CHRGTR (0010H) へ行く{{br}} :::'''入力'''    [HL] にチェックする文字、比較する文字をこのルーチンを呼び出す RST 命令の次にセット (インライン・パラメータ){{br}} :::'''出力'''    HL が 1 進み、A には [HL] が入る。チェックした文字が数字であれば CY フラグをセット、ステートメントの終わり (00H または 3AH) ならば Z フラグをセット{{br}} :::'''レジスタ'''  AF,HL{{br}} 例     LD   HL, MOJI       RST   08H       DB   'A'        :        :        :   MOJI:  DB 'B' ::RDSLT (000CH)    *1 :::'''機能'''    A の値に対応するスロットを選択し、そのスロットのメモリを 1 バイト読む。このルーチンを呼ぶと割り込みを禁止し、実行を終えても解除しない{{br}} :::'''入力'''    A にスロット番号{{br}} :::       [F000EEPP]{{br}} :::       │  ┬┬{{br}} :::       │  │└ 基本スロット番号 (0〜3){{br}} :::       │  └─ 拡張スロット番号 (0〜3){{br}} :::       └──── 拡張スロットを指定するとき "1"{{br}} :::       HL に読み込むメモリの番地{{br}} :::'''出力'''    A に読み込んだメモリの値{{br}} :::'''レジスタ'''  AF,BC,DE{{br}} ::CHRGTR (0010H)    *1 :::'''機能'''    BASIC テキストから文字 (またはトークン) を取り出す{{br}} :::'''入力'''    [HL] に読み込む文字{{br}} :::'''出力'''    HL が 1 進み、A には [HL] が入る。文字が数字であれば CY フラグをセット、ステートメントの終わりならば Z フラグをセット{{br}} :::'''レジスタ'''  AF,HL{{br}} ::WRSLT (0014H)    *1 :::'''機能'''    A の値に対応するスロットを選択し、そのスロットのメモリに値を 1 バイト書き込む。このルーチンを呼ぶと割り込みを禁止し、実行を終えても解除しない{{br}} :::'''入力'''    A でスロットを指定 (RDSLT と同じ){{br}} :::       HL に書き込む番地、E にその値{{br}} :::'''出力'''    なし{{br}} :::'''レジスタ'''  AF,BC.D{{br}} ::OUTDO (0018H)    *2 :::'''機能'''    現在使っているデバイスに値を出力{{br}} :::'''入力'''    A に出力する値{{br}} :::       PRTFLG (F416H) が 0 以外ならプリンタ出力{{br}} :::       PTRFIL (F864H) が 0 以外なら PTRFIL で示されるファイルへ出力{{br}} :::'''出力'''    なし{{br}} :::'''レジスタ'''  なし{{br}} ::CALSLT (001CH)    *1 :::'''機能'''    他のスロットのルーチンを読み出す (インタースロット・コール){{br}} :::'''入力'''    IY レジスタの上位 8 ビットでスロットを指定 (RDSLT と同じ)。IX にコールする番地{{br}} :::'''出力'''    呼び出すルーチンによる{{br}} :::'''レジスタ'''  呼び出すルーチンによる{{br}} ::DCOMPR (0020H)    *1 :::'''機能'''    HL と DE の内容を比較{{br}} :::'''入力'''    HL,DE{{br}} :::'''出力'''    HL=DE ならば Z フラグを、HL