INT 10h, AX=1800h

←前頁  次頁→  ↑もくじ


カテゴリ : DISP

DOS/V フォントドライバからフォントデータを読み取ります。

設定
BL
フォントの文字セット選択(有効な値は 0 のみ)
BH
0
CX
読み取る文字コード
DH
文字の幅(ドット単位)
DL
文字の高さ(ドット単位)
ES:SI
フォントデータを格納するアドレス
戻り値
AL
終了コード(0...正常、それ以外...エラー)
ES:SI から始まるポインタにフォントデータが格納される。

説明

ディスプレイドライバ経由でフォントドライバを呼び出し、フォントデータを取得します。

$DISP.SYS (JDISP.SYS) の実装では、取得するフォントの全角/半角を CX の上位バイトの値によって判別しているようです。 つまり CH の値が 0 ならば半角フォントが読み出され、0 以外の場合は全角フォントが読み出されます。 ただし、DHDL が共に 10h の場合(つまり 16x16)、CX に関わりなく 16x16 ドット全角フォントが読み出されるようです。 また、DOS/V Extension V2 で複数のフォントを使用している場合でも、インデクス値が 0 のフォントのみが読み出せます。

標準のフォントドライバ($FONT.SYS, JFONT.SYS)とディスプレイドライバの組み合わせた場合、このファンクションでほぼ間違いなく読み出すことのできるフォントは以下の通りです。

    DH  DL     FONT
    08h 10h   8x16dot 半角
    08h 13h   8x19dot 半角
    10h 10h  16x16dot 全角
    18h 18h  24x24dot 全角
24x24dot 全角フォントは、システムやフォントドライバの設定により、すべての日本語文字が読み出せないことがあります(たとえばIBM拡張漢字部分と外字部分だけ読み出せる、とか、あるいはまったく読み出せない)。

フォントドライバのフォント読み出しファンクション(int 15h, ax=5000h で取得する FAR CALL アドレス)を直接呼び出したほうが、当然ながらより高速で柔軟なフォントサイズの組み合わせで呼び出すことができますので、そちらを使った方がいいと思います。


参照
int 10h, ax=1801h
int 15h, ax=5000h
フォントドライバ終了コード



←前頁  次頁→  ↑もくじ