AX CRT BIOS追加機能
- INT 10h/AX=5000h : 日本語・英語モードの切り替え
- INT 10h/AX=5001h : 日本語・英語モードの読み取り
- INT 10h/AX=5100h : 文字フォントの登録
- INT 10h/AX=5101h : 文字フォントの読み取り
- INT 10h/AX=5200h : 仮想テキストRAMバッファの設定
- INT 10h/AX=5201h : 仮想テキストRAMバッファの読み取り
- INT 10h/AX=8200h : スクロールモードの設定/読み取り
- INT 10h/AX=8300h : ビデオRAMアドレスの読み取り
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
1 17 2 18 3 19 : : 16 32
※使用できる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