NASMを使ってブートローダーを作り遊んでいます。
その中で 私のプログラミングが誤っているのか VirtualboxVGAの仕様がおかしいのか
判断がつかないところがありましたのでお願いします。
リアルモード時です
[やりたいこと]
現在の画面上のカーソルの位置から画面上に文字を映し出したい。
①文字表示
リンク内容
画面表示にはBIOSコール 0x10ファンクション番号0x90
の力を借ります。
AH 0x09 文字コードとアトリビュート書き込みファンクションを指定します AL ** 書き込む文字コードを指定します BH ** ビデオページ番号を指定します(0始まり) BL ** アトリビュートを指定します CX **** 繰り返し数を指定します
②カーソル位置設定
設定する方法はいくつかありますが今回は以下の2つ いずれかを使って設定いたします。
②_1 VGA カーソル位置レジスタを直接いじる。
リンク内容
画面一番左上にカーソルが表示されれば成功です。
<BOOT MESSAGE>の<の下に横棒があります。これがカーソルのはず
写っているので成功しています。
②_2 BIOSコールを使ってカーソル設定する
リンク内容
こちらでも成功です。
では、実験をやっていきます。
画面上一番左上に'a'を表示させます。
②いずれかの方法でカーソルを一番左上に移動させた後、
①の方法で現在のカーソルの位置に文字を表示させます。
パターン ① + ②_1
カーソルの位置に'a'が書き込まれていません・・・
パターン ① + ②_2
① + ②_2が成功しているのでカーソル位置文字表示を行うBIOSコールの使い方は正しいはずです。
②いずれのパターンでもカーソルはしっかり移動できています。
なぜ、① + ②_1のパターンがうまく動作しないのかがよくわからないのでお願いします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/10/24 08:47
2020/10/25 00:03