AX CRT BIOS追加機能

INT 10h/AX=5000h : 日本語モードと英語モードの切り替え

機能
BIOSの動作モードを日本語モードと英語モードの間で切り替える。
入力
AH=50H, AL=00H
BX=country code (01H:英語, 51H(81):日本語)
出力
AL=status (00H:正しく設定された, 01H:無効なcountry code, 02H:その他のエラー)

INT 10h/AX=5001h : 日本語モードと英語モードの読み取り

機能
BIOSの動作モードが日本語モードか英語モードかを読み取る。
入力
AH=50H, AL=01H
出力
AL=status (00H:正しく設定された, 02H:その他のエラー)
BX=country code (01H:英語, 51H:日本語)

INT 10h/AX=5100h : 文字フォントの登録

機能
DXで示す外字コードに、ES:BPで指定する全角文字フォントテーブルのデータを登録する。
入力
AH=51H, AL=00H
ES:BP=登録する文字のデータテーブルの先頭アドレス
DX=登録する文字コード
BH=文字の横ビット数(16に固定), BL=文字の縦ビット数(16に固定)
出力
AL=status (00H:正しく設定された, 01H:登録できなかった)
注意事項
※DXで指定する外字コードは次の範囲であること。F040H〜F07EH, F080H〜F0FCH, F140H〜F17EH, F180H〜F1FCH, F240H〜F27EH, F280H〜F2FCH, F340H〜F37EH, F380H〜F3FCH
※ES:BPで指定される文字フォントテーブル内のデータの格納順序は次の通り。
1 17
2 18
3 19
: :
16 32

INT 10h/AX=5101h : 文字フォントの読み取り

機能
ES:BPで指定するバッファに、DXで指定する文字フォントデータを読み取る。
入力
AH=51H, AL=01H
ES:BP=読み出すバッファの先頭アドレス
DX=読み出す文字コード
BH=文字の横ビット数, BL=文字の縦ビット数
出力
AL=status (00H:正しく読み出せた, 01H:読み出しに失敗した)
注意事項
※DXで始まる文字コードは漢字コードの場合、shift-JISもしくはF040Hから始まる外字コードを指定する。
※ES:BPで指定する文字フォントテーブル内のデータの格納順序は次の通り。
1
2
3
:
19
8×19

1 17
2 18
3 19
: :
16 32
16×16
※使用できるBH, BLの組み合わせは次の通り。
BH BL フォントサイズ
8 8 8×8ドット英数(AN)
8 14 8×14ドット英数(AN)
8 19 8×19ドット英数カナ(ANK)
16 16 16×16ドット全角漢字および全角外字

INT 10h/AX=5200h : 仮想テキストRAMバッファの設定

機能
仮想ビデオRAMバッファ領域の設定を行う。
入力
AH=52H, AL=00H
BX=仮想テキストRAMバッファのセグメントアドレス
出力
なし
注意事項
BX=0の時、仮想テキストRAMバッファの設定を解除する。

INT 10h/AX=5201h : 仮想テキストRAMバッファの読み取り

機能
仮想ビデオRAMバッファの読み取りを行う。
入力
AH=52H, AL=01H
出力
BX=仮想テキストRAMバッファのセグメントアドレス
注意事項
BX=0の時、仮想テキストRAMバッファは設定されていないことを意味する。

INT 10h/AX=82xxh : スクロールモードの設定/読み取り

機能
日本語グラフィックモード時のスクロールモードの設定/読み取りをする。
入力
AH=82H, AL=00H
BL=scroll mode (0:ダイナミックスクロール, 1:ソフトウェアスクロール, -1:スクロールモードの読み出し)
出力
AL=現在のscroll mode (BL=-1)
AL=設定前のscroll mode (BL≠-1)
注意事項
ダイナミックスクロールとは、VRAMの画面表示開始アドレスを変えることによってスクロールを行うこと。ソフトウェアスクロールとは、VRAMの画面表示開始アドレスを変えずにVRAMのデータを書き換えてスクロールを行うこと。ダイナミックスクロールを指定しても、仮想テキストVRAMはソフトウェアスクロールで処理される。

INT 10h/AX=8300h : ビデオRAMアドレスの読み取り

機能
ビデオRAMと仮想テキストビデオRAMの先頭アドレスを取得する。
入力
AH=83H, AL=00H
出力
AX=ビデオRAMの先頭アドレス ES:BX=仮想テキストビデオRAMの先頭アドレス
注意事項
※グラフィックビデオRAMのセグメントアドレスは画面モードにより異なっている。
画面モード セグメントアドレス
英語テキスト(画面モード 00H, 02H, 03H) B800H
英語グラフィック(画面モード 04H, 05H, 06H) B800H
英語グラフィック(画面モード 0DH, 0EH, 10H) A000H
日本語テキスト(画面モード 02H, 03H) B800H
日本語グラフィック(画面モード 52H, 53H) A000H
※画面モード52H(日本語グラフィック・スーパーインポーズ)でグラフィックビデオRAMをアクセスするには、JEGAのレジスタを操作する必要がある。