にゃごすwiki

techhan/A.01

%第1版第9第刷

Appendix A.1 BIOS 一覧


 ここではユーザーが利用可能な 126 の BIOS エントリを紹介します。
 BIOS には MAIN-ROM と SUB-ROM 内のルーチンの 2 種類あり、コーリング・シーケンスはそれぞれ異なります (これについては後述)。ここでエントリは、次のように表記します。

ラベル名 (アドレス)    *n
機能    機能解説および注意
入力    呼び出し時に必要なパラメータ
出力    リターンされるパラメータ
レジスタ  内容が破壊されるレジスタ

 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 スロットをセット
入力    なし
出力    なし
レジスタ  すべて


SYNCHR (0008H)    *1
機能    [HL] の 1 文字が指定した文字かどうかチェック。違っていたら SYNTAX ERROR を発生し、同じなら CHRGTR (0010H) へ行く
入力    [HL] にチェックする文字、比較する文字をこのルーチンを呼び出す RST 命令の次にセット (インライン・パラメータ)
出力    HL が 1 進み、A には [HL] が入る。チェックした文字が数字であれば CY フラグをセット、ステートメントの終わり (00H または 3AH) ならば Z フラグをセット
レジスタ  AF,HL

例     LD   HL, MOJI
      RST   08H
      DB   'A'
       :
       :
       :
  MOJI:  DB	  'B'

RDSLT (000CH)    *1
機能    A の値に対応するスロットを選択し、そのスロットのメモリを 1 バイト読む。このルーチンを呼ぶと割り込みを禁止し、実行を終えても解除しない
入力    A にスロット番号
       [F000EEPP]
       │  ┬┬
       │  │└ 基本スロット番号 (0〜3)
       │  └─ 拡張スロット番号 (0〜3)
       └──── 拡張スロットを指定するとき "1"
       HL に読み込むメモリの番地
出力    A に読み込んだメモリの値
レジスタ  AF,BC,DE

CHRGTR (0010H)    *1
機能    BASIC テキストから文字 (またはトークン) を取り出す
入力    [HL] に読み込む文字
出力    HL が 1 進み、A には [HL] が入る。文字が数字であれば CY フラグをセット、ステートメントの終わりならば Z フラグをセット
レジスタ  AF,HL

WRSLT (0014H)    *1
機能    A の値に対応するスロットを選択し、そのスロットのメモリに値を 1 バイト書き込む。このルーチンを呼ぶと割り込みを禁止し、実行を終えても解除しない
入力    A でスロットを指定 (RDSLT と同じ)
       HL に書き込む番地、E にその値
出力    なし
レジスタ  AF,BC.D

OUTDO (0018H)    *2
機能    現在使っているデバイスに値を出力
入力    A に出力する値
       PRTFLG (F416H) が 0 以外ならプリンタ出力
       PTRFIL (F864H) が 0 以外なら PTRFIL で示されるファイルへ出力
出力    なし
レジスタ  なし

CALSLT (001CH)    *1
機能    他のスロットのルーチンを読み出す (インタースロット・コール)
入力    IY レジスタの上位 8 ビットでスロットを指定 (RDSLT と同じ)。IX にコールする番地
出力    呼び出すルーチンによる
レジスタ  呼び出すルーチンによる

DCOMPR (0020H)    *1
機能    HL と DE の内容を比較
入力    HL,DE
出力    HL=DE ならば Z フラグを、HL<DE なら CY フラグをセット
レジスタ  AF

ENASLT (0024H)    *1
機能    A の値に対応するスロットを選択し、以降そのスロットを使用可能にする。このルーチンを呼ぶと割り込みを禁止し、実行を終えても解除しない
入力    A でスロットを指定 (RDSLT と同じ)
出力    なし
レジスタ  すべて

GETYPR (0028H)    *1
機能    DAC (デシマル・アキュムレータ) の型を返す
入力    VALTYP (F663H) には DAC の型が入っている
出力    DAC の型によって S,Z,P/V,CY フラグが以下のように変化する
       ・整数型
        C=1
        S=1 *
        Z=0
        P/V=1
       ・単精度実数型
        C=1
        S=0
        Z=0
        P/V=0 *
       ・文字列型
        C=1
        S=0
        Z=1 *
        P/V=1
       ・倍精度実数型
        C=0 *
        S=0
        Z=0
        P/V=1
       各型は、* マークの付いたフラグを調べればチェックできる
レジスタ  AF

CALLF (0030H)    *1
機能    他のスロットのルーチンを呼び出す。
入力    上記の方法による
出力    呼び出すルーチンによる
レジスタ  AF, その他は呼び出すルーチンによる

呼び出し方
  RST    30H
  DB     n  ; n はスロット番号 (RDSLT と同じ)
  DW     nn ; nn は呼び出すアドレス


KEYINT (0038H)    *1
機能    タイマ割り込みの処理ルーチンを実行
入力    なし
出力    なし
レジスタ  なし


●I/O 初期化

INITIO (003BH)    *1
機能    デバイスを初期化
入力    なし
出力    なし
レジスタ  すべて

INIFNK (003EH)    *1
機能    ファンクションキーの内容を初期化
入力    なし
出力    なし
レジスタ  すべて


●VDP アクセス用

DISSCR (0041H)    *1
機能    画面表示の禁止
入力    なし
出力    なし
レジスタ  AF, BC

ENASCR (0044H)    *1
機能    画面の表示
入力    なし
出力    なし
レジスタ  AF, BC

WRTVDP (0047)    *2
機能    VDP のレジスタにデータを書き込む
入力    C にレジスタ番号、B にデータ。レジスタ番号は 0〜23 および 32〜46
出力    なし
レジスタ  AF, BC

RDVRM (004AH)    *1
機能    VRAM の内容を読む。ただし、これは TMS9918 に対するもので VRAM のアドレスは下位 14 ビットのみ有効。全ビットを使う場合は NRDVRM をコール
入力    HL に読み出す VRAM のアドレス
出力    A に読み出した値
レジスタ  AF

WRTVRM (004DH)    *1
機能    VRAM にデータを書き込む。ただし、これは TMS9918 に対するもので VRAM のアドレスは 14 ビットのみ有効。全ビットを使う場合は NWRVRM をコール
入力    HL に VRAM アドレス、A にデータ
出力    なし
レジスタ  AF

SETRD (0050H)    *1
機能    VDP に VRAM アドレスをセットして、読み出せる状態にする。これは、VDP のアドレス・オート・インクリメントの機能を使って、連続した VRAM 領域からデータを読み出す時に使用する。これにより RDVRM をループ中で使うより高速に読み出しが可能になる。ただし、これは TMS9918 に対するもので VRAM のアドレスは 14 ビットのみ有効。全ビットを使う場合は NSETRD をコール
入力    HL に VRAM アドレス
出力    なし
レジスタ  AF

SETWRT (0053H)    *1
機能    VDP に VRAM アドレスをセットして、書き込める状態にする。使用目的は SETRD と同様。ただし、これは TMS9918 に対するもので VRAM のアドレスは 14 ビットのみ有効。全ビットを使う場合は NSTWRT をコール
入力    HL に VRAM アドレス
出力    なし
レジスタ  AF

FILVRM (0056H)    *4
機能    VRAM の指定領域を同一のデータで埋める。ただし、これは TMS9918 に対するもので VRAM のアドレスは 14 ビットのみ有効。全ビットを使う場合は BIGFIL を参照
入力    HL に書き込みを開始する VRAM アドレス、BC に書き込む領域の長さ、A にデータ
出力    なし
レジスタ  AF,BC

LDIRMV (0059H)    *4
機能    VRAM からメモリへブロック転送
入力    HL にソース・アドレス (VRAM)、DE にデスティネーション・アドレス (メモリ)、BC に長さ。指定する VRAM のアドレスは全ビット有効
出力    なし
レジスタ  すべて

LDIRVM (005CH)    *4
機能    メモリから VRAM へブロック転送
入力    HL にソース・アドレス (メモリ)、DE にデスティネーション・アドレス (VRAM)、BC に長さ。指定する VRAM のアドレスは全ビット有効
出力    なし
レジスタ  すべて

CHGMOD (005FH)    *3
機能    スクリーン・モードを変える。パレットは初期化しない。パレットの初期化が必要なら SUB-ROM の CHGMDP を参照
入力    A にスクリーンモード (0〜8)
出力    なし
レジスタ  すべて

CHGCLR (0062H)    *1
機能    画面の色を変える
入力    A にモード
       FORCLR (F3E9H) に前景色
       BAKCLR (F3EAH) に背景色
       BDRCLR (F3EBH) に周辺色
出力    なし
レジスタ  すべて

NMI (0066H)    *1
機能    NMI (Non Maskable Interrupt) 処理ルーチンを実行
入力    なし
出力    なし
レジスタ  なし

CLRSPR (0069H)    *3
機能    すべてのスプライトを初期化。スプライト・パターンをヌルに、スプライト番号をスプライト面番号に、スプライト・カラーを前景色にする。スプライトの垂直位置は 209 (モード 0〜3) または 217 (モード 4〜8) にセット
入力    SCRMOD (FCAFH) にスクリーン・モード
出力    なし
レジスタ  すべて

INITXT (006CH)    *3
機能    画面を TEXT1 モード (40*24) に初期化。このルーチンではパレットは初期化しない。パレットの初期化が必要なら、このルーチンをコールした後、SUB-ROM の INIPLT をコールする
入力    LINL40 (F3AEH) に 1 行の幅
       TATNAM (F3B3H) にパターンネーム・テーブル
       TXTCGP (F3B7H) にパターンジェネレータ・テーブル
出力    なし
レジスタ  すべて

INIT32 (006FH)    *3
機能    画面を GRAPHIC1 モード (32*24) に初期化。このルーチンではパレットは初期化しない
入力    T32NAM (F3BDH) にパターンネーム・テーブル
       T32COL (F3BFH) にカラーテーブル
       T32CGP (F3C1H) にパターンジェネレータ・テーブル
       T32ATR (F3C3H) にスプライトアトリビュート・テーブル
       T32PAT (F3C5H) にスプライトジェネレータ・テーブル
出力    なし
レジスタ  すべて

INIGRP (0072H)    *3
機能    画面を高解像グラフィックモードに初期化。このルーチンではパレットは初期化しない
入力    GRPNAM (F3C7H) にパターンネーム・テーブル
       GRPCOL (F3C9H) にカラーテーブル
       GRPCGP (F3CBH) にパターンジェネレータ・テーブル
       GRPATR (F3CDH) にスプライトアトリビュート・テーブル
       GRPPAT (F3CFH) にスプライトジェネレータ・テーブル
出力    なし
レジスタ  すべて

INIMLT (0075H)    *3
機能    画面を MULTI COLOR モードに初期化。このルーチンではパレットは初期化しない。
入力    MLTNAM (F3D1H) にパターンネーム・テーブル
       MLTCOL (F3D3H) にカラーテーブル
       MLTCGP (F3D5H) にパターンジェネレータ・テーブル
       MLTATR (F3D7H) にスプライトアトリビュート・テーブル
       MLTPAT (F3D9H) にスプライトジェネレータ・テーブル
出力    なし
レジスタ  すべて

SETTXT (0078H)    *3
機能    VDP のみを TEXT1 モード (40*24) にする
入力    INITXT と同じ
出力    なし
レジスタ  すべて

SETT32 (007BH)    *3
機能    VDP のみを GRAPHIC1 モード (32*24) にする
入力    INIT32 と同じ
出力    なし
レジスタ  すべて

SETGRP (007EH)    *3
機能    VDP のみを GRAPHIC2 モードにする
入力    INIGRP と同じ
出力    なし
レジスタ  すべて

SETMLT (0081H)    *3
機能    VDP のみを MULTI COLOR モードにする
入力    INIMLT と同じ
出力    なし
レジスタ  すべて

CALPAT (0084H)    *1
機能    スプライト・ジェネレータ・テーブルのアドレスを返す
入力    A にスプライト番号
出力    HL にアドレス
レジスタ  AF, DE, HL

CALATR (0087H)    *1
機能    スプライトアトリビュート・テーブルのアドレスを返す
入力    A にスプライト番号
出力    HL にアドレス
レジスタ  AF, DE, HL

GSPSIZ (008AH)    *1
機能    現在のスプライト・サイズを返す
入力    なし
出力    A にスプライト・サイズ (バイト数)。16*16 のサイズの場合のみ CY フラグをセット。それ以外の場合は CY フラグをリセット
レジスタ  AF

GRPPRT (008DH)    *2
機能    グラフィック画面に文字を表示
入力    A にキャラクタコード。スクリーン・モード 5〜8 なら LOGOPR (FB02H) にロジカル・オペレーションコード
出力    なし
レジスタ  なし


●PSG 関連

GICINI (0090H)    *1
機能    PSG を初期化し、PLAY 文のための初期値をセット
入力    なし
出力    なし
レジスタ  すべて

WRTPSG (0093H)    *1
機能    PSG のレジスタにデータを書き込む
入力    A にPSG のレジスタ番号、E にデータ
出力    なし
レジスタ  なし

RDPPSG (0096H)    *1
機能    PSG のレジスタの値を読む
入力    A に PSG のレジスタ番号
出力    A に読み込んだ値
レジスタ  なし

STRTMS (0099H)    *1
機能    バックグラウンド・タスクとして PLAY 文が実行中であるかどうかチェックし、実行中でなければ PLAY 文の実行を開始
入力    なし
出力    なし
レジスタ  すべて


●キーボード、CRT、プリンタへの出力

CHSNS (009CH)    *1
機能    キーボード・バッファの状態をチェック
入力    なし
出力    バッファが空であれば Z フラグをセット。そうでなければ Z フラグをリセット
レジスタ  AF

CHGET (009FH)    *1
機能    1 文字入力 (入力待ちあり)
入力    なし
出力    A に入力された文字コード
レジスタ  AF

CHPUT (00A2H)    *1
機能    1 文字表示
入力    A に出力する文字コード
出力    なし
レジスタ  なし

LPTOUT (00A5H)    *1
機能    1 文字プリンタ出力
入力    A に出力する文字コード
出力    失敗した場合は CY フラグをセット
レジスタ  F

LPTSTT (00A8H)    *1
機能    プリンタの状態をチェック
入力    なし
出力    A が 255 で Z フラグがリセットされていなければプリンタは READY。A が 0 で Z フラグがセットされていればプリンタは NO READY
レジスタ  AF

CNVCHR (00ABH)    *1
機能    グラフィック・ヘッダかどうかをチェックし、コードを変換
入力    A に文字コード
出力    CY フラグがリセット → グラフィック・ヘッダではない
       CY フラグと Z フラグがセット → A に変換後のコード
       CY フラグがセット、Z フラグがリセット → A に変換されていないコード
レジスタ  AF

PINLIN (00AEH)    *1
機能    リターンキーや STOP キーがタイプされるまでに入力された文字コードを指定されたバッファに格納する
入力    なし
出力    HL にバッファの先頭アドレス -1、STOP キーで終了したときのみ CY フラグをセット
レジスタ  すべて

INLIN (00B1H)    *1
機能    AUTFLG (F6AAH) がセットされる以外は PINLIN と同じ
入力    なし
出力    HL にバッファの先頭アドレス -1、STOP キーで終了したときのみ CY フラグをセット
レジスタ  すべて

QINLIN (00B4H)    *1
機能    "?" とスペース 1 個を表示して INLIN を実行
入力    なし
出力    HL にバッファの先頭アドレス -1、STOP キーで終了したときのみ CY フラグをセット
レジスタ  すべて

BREAKX (00B7H)    *1
機能    Ctrl-STOP キーを押しているかどうかチェック。このルーチンでは割り込みが禁止される
入力    なし
出力    押されていれば CY フラグをセット
レジスタ  AF

BEEP (00C0H)    *3
機能    ブザーを鳴らす
入力    なし
出力    なし
レジスタ  すべて

CLS (00C3H)    *3
機能    画面クリア
入力    ゼロフラグをセット
出力    なし
レジスタ  AF, BC, DE

POSIT (00C6H)    *1
機能    カーソルの移動
入力    H にカーソルの X 座標
       L にカーソルの Y 座標出力    なし
レジスタ  AF

FNKSB (00C9H)    *1
機能    ファンクション・キーの表示がアクティブかどうかチェックし (FNKFLG)、アクティブなら表示、でなければ消す
入力    FNKFLG (FBCEH)
出力    なし
レジスタ  すべて

ERAFNK (00CCH)    *1
機能    ファンクション・キーの表示を消す
入力    なし
出力    なし
レジスタ  すべて

DSPFNK (00CFH)    *2
機能    ファンクション・キーを表示
入力    なし
出力    なし
レジスタ  すべて

TOTEXT (00D2H)    *1
機能    画面を強制的にテキストモードにする
入力    なし
出力    なし
レジスタ  すべて


●ゲーム I/O アクセス

GTSTCK (00D5H)    *1
機能    ジョイスティックの状態を返す
入力    A に調べるジョイスティックの番号
出力    A にジョイスティックの方向
レジスタ  すべて

GTTRIG (00D8H)    *1
機能    トリガボタンの状態を返す
入力    A に調べるトリガボタンの番号
出力    A が 0 ならばトリガボタンは押されていない
       A が 0FFH ならトリガボタンは押されている
レジスタ  AF

GTPAD (00DBH)    *2
機能    タッチパッドの状態を返す
入力    A に調べるタッチパッドの番号
出力    A に値
レジスタ  すべて

GTPDL (00DEH)    *2
機能    パドルの値を返す
入力    A にパドルの番号
出力    A に値
レジスタ  すべて


●カセットの入出力ルーチン

TAPION (00E1H)    *1
機能    カセットのモーター ON の後、ヘッダ・ブロックを読む
入力    なし
出力    失敗した場合は CY フラグをセット
レジスタ  すべて

TAPIN (00E4H)    *1
機能    テープからデータを読む
入力    なし
出力    A にデータ。失敗した場合は CY フラグをセット
レジスタ  すべて

TAPIOF (00E7H)    *1
機能    テープからの読み込みをストップ
入力    なし
出力    なし
レジスタ  なし

TAPOON (00EAH)    *1
機能    カセットのモーター ON の後、ヘッダ・ブロックを書き込む
入力    A = 0 ならショート・ヘッダ
       A ≠ 0 ならロング・ヘッダ出力    失敗した場合は CY フラグをセット
レジスタ  すべて

TAPOUT (00EDH)    *1
機能    テープにデータを書き込む
入力    A にデータ
出力    失敗した場合は CY フラグをセット
レジスタ  すべて

TAPOOF (00F0H)    *1
機能    テープへの書き込みをストップ
入力    なし
出力    失敗した場合は CY フラグをセット
レジスタ  なし

STMOTR (00F3H)    *1
機能    カセットのモーターの動作設定
入力    A=0 → ストップ
       A=1 → スタート
       A=0FFH → 現在と逆の動作
出力    なし
レジスタ  AF


●その他

CHGCAP (0132H)    *1
機能    CAP ランプの状態を変える
入力    A = 0 → ランプを消す
       A ≠ 0 → ランプをつける
出力    なし
レジスタ  AF

CHGSND (0135H)    *1
機能    1 ビット・サウンドポートの状態を変える
入力    A = 0 → OFF
         A ≠ 0 → ON
出力    なし
レジスタ  AF

RSLREG (0138H)    *1
機能    基本スロット・レジスタに現在出力している内容を読む
入力    なし
出力    A に読み込んだ値
レジスタ  A

WSLREG (013BH)    *1
機能    基本スロット・レジスタにデータを書き込む
入力    A に書き込む値
出力    なし
レジスタ  なし

RDVDP (013EH)    *1
機能    VDP のステータス・レジスタを読む
入力    なし
出力    A に読み込んだ値
レジスタ  A

SNSMAT (0141H)    *1
機能    キーボード・マトリクスから指定した行の値を読む
入力    A に指定する行
出力    A にデータ (押されているキーに対応するビットが 0 になる)
レジスタ  AF, C

ISFLIO (014AH)    *1
機能    デバイスが動作中かどうかチェック
入力    なし
出力    A=0 → 動作中
A≠0 → 動作中ではない
レジスタ  AF

OUTDLP (014DH)    *1
機能    プリンタ出力。LPTOUT とは次の点で異なる
       1. TAB はスペースに展開される
       2. MSX 仕様でないプリンタの場合、ひらがなをカタカナに、グラフィック文字を 1 バイト文字に変換する
       3. 失敗した場合、device I/O error となる
入力    A にデータ
出力    なし
レジスタ  F

KILBUF (0156H)    *1
機能    キーボード・バッファをクリア
入力    なし
出力    なし
レジスタ  HL

CALBAS (0159H)    *1
機能    BASIC インタープリタ内のルーチンをインタースロット・コール
入力    IX に呼び出すアドレス
出力    呼び出すルーチンによる
レジスタ  呼び出すルーチンによる


●MSX2 用に追加されたエントリ

SUBROM (015CH)
機能    SUB-ROM をインタースロット・コール
入力    IX に呼び出すアドレス、同時に IX をスタックに積む
出力    呼び出すルーチンによる
レジスタ  裏レジスタと IY はリザーブされる

EXTROM (015FH)
機能    SUB-ROM をインタースロット・コール
入力    IX に呼び出すアドレス
出力    呼び出すルーチンによる
レジスタ  裏レジスタと IY はリザーブされる

EOL (0168H)
機能    行の終わりまでデリート
入力    H にカーソルの X 座標、L に Y 座標
出力    なし
レジスタ  すべて

BIGFIL (016BH)
機能    機能的には FILVRM と同じ。ただし、以下の点で異なる。
       FILVRM では、スクリーン・モードが 0 〜 3 であるかをチェックし、もしそうなら VDP は 16K バイトの VRAM しか持っていないものとして扱う (MSX1 とのコンパチビリティのため)。しかし、BIGFIL はモードのチェックは行わず、与えられたパラメータどおりに動作する
入力    FILVRM と同じ
出力    FILVRM と同じ
レジスタ  FILVRM と同じ

NSETRD (016EH)
機能    VDP にアドレスをセットして、読み込める状態にする
入力    HL に VRAM アドレス
出力    なし
レジスタ  AF

NSTWRT (0171H)
機能    VDP にアドレスをセットして、書き込める状態にする
入力    HL に VRAM アドレス
出力    なし
レジスタ  AF

NRDVRM (0174H)
機能    VRAM の内容を読む
入力    HL に読み出す VRAM のアドレス
出力    A に読み出した値
レジスタ  F

NWRVRM (0177H)
機能    VRAM にデータを書き込む
入力    HL に VRAM アドレス、A にデータ
出力    なし
レジスタ  AF



SUB-ROM

SUB-ROM のコーリング・シーケンスは以下のとおりです。

                :
	LD	IX, INIPLT	;Set BIOS entry address
	CALL	EXTROM		;Returns here

                : 

また、IX を壊したくない場合には次のようにコールします。

                :
INIPAL:	PUSH	IX		; Save IX
	LD	IX, INIPLT	; Set BIOS entry address
	JP	SUBROM		; Returns caller of INIPAL
                :


GRPPRT (0089H)
機能    グラフィック画面に 1 文字出力 (スクリーン 5〜8 のみで動作)
入力    A に文字コード
出力    なし
レジスタ  なし

NVBXLN (00C9H)
機能    ボックスを描く
入力    始点 : BC に X 座標、DE に Y 座標
       終点 : GXPOS (FCB3H) に X 座標、GYPOS (FCB5H) に Y 座標
       色 : ATRBYT (F3F2H) にアトリビュート
       ロジカルオペレーションコード : LOGOPR (FB92H)
出力    なし
レジスタ  すべて

NVBXFL (00CDH)
機能    塗りつぶされたボックスを描く
入力    始点 : BC に X 座標、DE に Y 座標
       終点 : GXPOS (FCB3H) に X 座標、GYPOS (FCB5H) に Y 座標
       色 : ATRBYT (F3F2H) にアトリビュート
       ロジカルオペレーションコード : LOGOPR (FB92H)
出力    なし
レジスタ  すべて

CHGMOD (00D1H)
機能    スクリーン・モードを変える
入力    A にスクリーン・モード (0〜8)
出力    なし
レジスタ  すべて

INITXT (00D5H)
機能    画面をテキスト・モード (40*24) にして初期化する
入力    TXTNAM (F3B3H) にパターンネーム・テーブル
       TXTCGP (F3B7H) にパターンジェネレータ・テーブル出力    なし
レジスタ  すべて

INIT32 (00D9H)
機能    画面をテキスト・モード (32*24) にして初期化する
入力    T32NAM (F3BDH) にパターンネーム・テーブル
       T32COL (F3BFH) にカラーテーブル
       T32CGP (F3C1H) にパターンジェネレータ・テーブル
       T32ATR (F3C3H) にスプライトアトリビュート・テーブル
       T32PAT (F3C5H) にスプライトジェネレータ・テーブル
出力    なし
レジスタ  すべて

INIGRP (00DDH)
機能    画面を高解像グラフィック・モードにして初期化する
入力    GRPNAM (F3C7H) にパターンネーム・テーブル
       GRPCOL (F3C9H) にカラーテーブル
       GRPCGP (F3CBH) にパターンジェネレータ・テーブル
       GRPATR (F3CDH) にスプライトアトリビュート・テーブル
       GRPPAT (F3CFH) にスプライトジェネレータ・テーブル
出力    なし
レジスタ  すべて

INIMLT (00E1H)
機能    画面を MULTI COLOR モードにして初期化する
入力    MLTNAM (F3D1H) にパターンネーム・テーブル
       MLTCOL (F3D3H) にカラーテーブル
       MLTCGP (F3D5H) にパターンジェネレータ・テーブル
       MLTATR (F3D7H) にスプライトアトリビュート・テーブル
       MLTPAT (F3D9H) にスプライトジェネレータ・テーブル
出力    なし
レジスタ  すべて

SETTXT (00E5H)
機能    VDP をテキスト・モード (40*24) にする
入力    INITXT と同じ
出力    なし
レジスタ  すべて

SETT32 (00E9H)
機能    VDP をテキスト・モード (32*24) にする
入力    INI32 と同じ
出力    なし
レジスタ  すべて

SETGRP (00EDH)
機能    VDP を高解像度モードにする
入力    INIGRP と同じ
出力    なし
レジスタ  すべて

SETMLT (00F1H)
機能    VDP を MULTI COLOR モードにする
入力    INIMLT と同じ
出力    なし
レジスタ  すべて

CLRSPR (00F5H)
機能    すべてのスプライトを初期化。スプライト・パターンをヌルに、スプライト番号をスプライト面番号に、スプライトの色を前景色にする。スプライトの垂直位置は 217 にセット
入力    SCRMOD (FCAFH) にスクリーン・モード
出力    なし
レジスタ  すべて

CALPAT (00F9H)
機能    スプライトジェネレータ・テーブルのアドレスを返す (このルーチンは MAIN-ROM の同名の BIOS と同じ)
入力    A にスプライト番号
出力    HL にアドレス
レジスタ  AF, DE, HL

CALATR (00FDH)
機能    スプライト属性テーブルのアドレスを返す (このルーチンは MAIN-ROM の同名の BIOS と同じ)
入力    A にスプライト番号
出力    HL にアドレス
レジスタ  AF, DE, HL

GSPSIZ (0101H)
機能    現在のスプライト・サイズを返す (このルーチンは MAIN-ROM の同名の BIOS と同じ)
入力    なし
出力    A にスプライト・サイズ。16*16 のサイズの場合のみ CY フラグがセット
レジスタ  AF

GETPAT (0105H)
機能    キャラクタ・パターンを返す
入力    A に文字コード
出力    PATWRK (FC40H) にキャラクタ・パターン
レジスタ  すべて

WRTVRM (0109H)
機能    VRAM にデータを書き込む
入力    HL に VRAM アドレス (0〜FFFFH)、A にデータ
出力    なし
レジスタ  AF

RDVRM (010DH)
機能    VRAM の内容を読む
入力    HL に読み出す VRAM のアドレス (0〜FFFFH)
出力    A に読み出した値
レジスタ  AF

CHGCLR (0111H)
機能    画面の色を変える
入力    A にスクリーン・モード
       FORCLR (F3E9H) に前景色
       BAKCLR (F3EAH) に背景色
       BDRCLR (F3EBH) に周辺色
出力    なし
レジスタ  すべて

CLSSUB (0115H)
機能    画面クリア
入力    なし
出力    なし
レジスタ  すべて

DSPFNK (011DH)
機能    ファンクション・キーの表示
入力    なし
出力    なし
レジスタ  すべて

WRTVDP (012DH)
機能    VDP のレジスタにデータを書き込む
入力    C にレジスタ番号、B にデータ
出力    なし
レジスタ  AF, BC

VDPSTA (0131H)
機能    VDP のレジスタを読む
入力    A にレジスタ番号 (0〜9)
出力    A にデータ
レジスタ  F

SETPAG (013DH)
機能    ページの切り替え
入力    DPPAGE (FAF5H) にディスプレイ・ページ番号
       ACPAGE (FAF6H) にアクティブ・ページ番号
出力    なし
レジスタ  AF

INIPLT (0141H)
機能    パレットの初期化 (現在のパレットは VRAM にセーブされている)
入力    なし
出力    なし
レジスタ  AF, BC, DE

RSTPLT (0145H)
機能    パレットを VRAM からリストアする
入力    なし
出力    なし
レジスタ  AF, BC, DE

GETPLT (0149H)
機能    パレットからカラーコードを得る
入力    A にパレット番号 (0〜15)
出力    B の上位 4 ビットに赤のコード
       B の下位 4 ビットに青のコード
       C の下位 4 ビットに緑のコード
レジスタ  AF, DE

SETPLT (014DH)
機能    カラーコードをパレットにセット
入力    D にパレット番号 (0〜15)
       A の上位 4 ビットに赤のコード
       A の下位 4 ビットに青のコード
       E の下位 4 ビットに緑のコード
出力    なし
レジスタ  AF

BEEP (017DH)
機能    ブザーを鳴らす
入力    なし
出力    なし
レジスタ  すべて

PROMPT (0181H)
機能    プロンプトを表示
入力    なし
出力    なし
レジスタ  すべて

NEWPAD (01ADH)
機能    マウス、ライトペンの状態を読む
入力    A に以下のデータを入れてコール。カッコ内は戻り値
       8 … ライトペン・チェック (0FFH で有効)
       9 … X 座標を返す
       10 … Y 座標を返す
       11 … ライトペン・スイッチの状態を返す (押されたとき 0FFH)
       12 … マウスがポート 1 に接続されているか (0FFH で有効)
       13 … X 方向のオフセットを返す
       14 … Y 方向のオフセットを返す
       15 … (つねに 0)
       16 … マウスがポート 2 に接続されているか (0FFH で有効)
       17 … X 方向のオフセットを返す
       18 … Y 方向のオフセットを返す
       19 … (つねに 0)
出力    A
レジスタ  すべて

CHGMDP (01B5H)
機能    VDP のモードを変える。パレットは初期化される
入力    A にスクリーン・モード (0〜8)
出力    なし
レジスタ  すべて

KNJPRT (01BDH)
機能    グラフィック画面 (5〜8) に漢字出力
入力    BC に JIS 漢字コード、A に表示モード。
       表示モードは BASIC の PUT KANJI 命令と同様に以下の意味を持つ
       0 … 16×16 ドットで表示
       1 … 偶数番目のドットを表示
       2 … 奇数番目のドットを表示
出力    なし
レジスタ  AF

REDCLK (01F5H)
機能    クロック・データを読む
入力    [00MMAAAA]
          ┬┬─
          │└─ アドレス (0〜15)
          └── モード (0〜3)
出力    A に読み込んだデータ (下位 4 ビットのみ有効)
レジスタ  F

WRTCLK (01F9H)
機能    クロック・データを書き込む
入力    A に書き込むデータ。C にクロック RAM アドレス
出力    なし
レジスタ  F