2017-06-09 1 views
0

テキスト画面でテキストエディタを実行したいと思います。現代のPCの1280x1024(160x64文字)画面ではフラットパネルに適しています。安全上の理由から私はi865ベースのP4マザーボードに取り組んでいます。 VESA BIOSは解像度を設定しますが、グラフィックスモードです。さらに、VGAレジスタには元のDOS画面の値が表示されます。私はテキストモードにi865をプログラムする方法を助ける必要があります。PCで高解像度のテキストモードに切り替える

+0

160x64のテキストモードは一般的には実装されていないと思います。あなたが探している最高のものは、132x60のようなものです。代わりに、1280x1024グラフィックスモードで独自のテキストを描くことができます。BIOSは、標準のVGAグラフィックスモードと同様にグラフィックスモードでテキスト出力をサポートする必要がありますか? –

答えて

4

1280x1024はVGA解像度ではありません。これらの高解像度モードを使用する場合は、VESA/VBEを使用する必要があります。そして、あなたの要件を満たしていない1つの例外を除いて、VESAによって定義された標準モードはありません。ビデオカードを調べて、サポートされているモードの1つを選択する必要があります。 VBE関数00hを使用して、サポートされるモードの完全なリストを取得し、関数01hを使用して、サポートされている各モードの属性を調べて、要件を満たしているかどうかを確認します。

あなたが望むモードを見つけたら、機能02hがそのモードを設定し、基本的に完了します。さて、テキストを画面に表示するコードを書くのが難しい部分を除いて!

これはすべてthe standardに記載されています。 CのサンプルコードはOSDev Wikiにあります。

+0

私は自分のグラフィックスコードでVESAモードの書き込みを使用しようとしていますが、私はputpixelに固執しています。 – brekee12

+0

私は自分のグラフィックコードでVESAモードの書き込みを使用しようとしていますが、私はputpixelに固執しています。問題はプロテクトモードです。私はDPMIを使い、E800 0000のVESAのPhysBuffPtrを読んでいます。私は1280x1024:256をテストしていますが、画面上で4バイトを突き刺していますが、ページフォルトがあるか何も見えません。誰もFBでアドレッシングしてピクセルを置くpmodeのコードで助けてくれますか?前もって感謝します! – brekee12