INT 10h (AH=1,2,3)
ビデオBIOSサービスルーチンを順に試す。
INT 10h AH=1:カーソルタイプ設定
MOV AX, 0100h ; カーソルタイプ設定コマンド MOV CX, 0607h ; 開始終了スキャンライン INT 0x10 ; ビデオBIOS呼び出し
CHに開始スキャンライン、CLに終了スキャンラインを設定。
基本的には、カーソルの厚みを指定する感じ。
CH>CLの場合、二つに分かれるといった情報もあったが、
試してみたけど、そうはならなかった。
BIOSの規格で決まっているのかな?<要確認
INT 10h AH=2:カーソル位置設定
MOV AX, 0200h ; カーソル位置設定コマンド MOV BX, 0000h ; 表示ページ MOV DX, 1410h ; カーソル行列位置 INT 0x10 ; ビデオBIOS呼び出し
BXには表示ページを指定。
DHに行位置、DLに桁位置、を指定。
表示ページは、無視して良いかも?<常に0って事で
INT 10h AH=3:カーソル位置取得
MOV AX, 0300h ; カーソル位置取得コマンド MOV BX, 0000h ; 表示ページ INT 0x10 ; ビデオBIOS呼び出し MOV AX, CX ; 開始終了スキャンライン CALL puthex ; 内容を表示してみる MOV AX, DX ; カーソル行列位置 CALL puthex ; 内容を表示してみる MOV SI, crlf ; 改行 CALL puts ; 表示
ついでにカーソル形状も取得される。
CHに開始スキャンライン、CLに終了スキャンライン。
DHに行位置、DLに桁位置。