%第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