テクハンwiki

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 (0047H)    *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 にデータ
出力なし
レジスタなし

 

RDPSG (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
機能?
入力なし
出力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