私は、CRTCを使用して行の高さを2ピクセルに変更することで、IBM CGAで擬似160 x 100グラフィックスモードを実現できることをしばらく知っていました。私は数日間、これを成し遂げようとしてきました。x86アセンブリで160x100モードを達成する
Intel® Open Source HD Graphics and Intel Iris™ Graphics Programmer's Reference Manual私はこれを最大スキャンラインレジスタに書き込むことで、45ページ(またはPDFの59ページ)でこれを行うことができます。
メモリアドレス3B5に00000001bの値を直接書き込んだり、2スキャンライン分のコードを書こうとしましたが、私は信じています。これは私がDOSBoxでテストしたときに何もしませんでした。
あなたはNASMに集合し、私が書いたコードを確認したい場合は、次の
BITS 16
xor bx,bx
mov ax, 3b5h
mov es, ax
mov ah, 00000001b
mov BYTE [es:bx], ah ; write 00000001b to 0x03b5:0000, right?
cli
hlt
を私はまだこのような低レベルのものと非常に自信を持っていないですし、任意の助けをいただければ幸いです。
DOSBOXでCGAグラフィックスアダプタを設定しましたか? – fuz
DOSBoxはエミュレータ/仮想マシンです。コード内で実行されるコードはマシン全体を表示しますが、その動作はDOSBoxソフトウェアによって完全に決定され、DOSBoxが実行されているホストのハードウェアによっては決定されません。インテルマニュアルは、VGA/CGAに関するドキュメントの有用なソースかもしれませんが、インテル固有の機能や動作はDOSBoxでは発生しないことに注意してください。実際のIntel HWをプログラミングしたい場合は、裸のハードウェアでコードを起動することができます。多くのx86リンクについては、[x86タグwiki](http://stackoverflow.com/tags/x86/info)も参照してください(直接関連性はありません)。 –
擬似160x100グラフィックスモードを取得する簡単な方法は、標準の80x50 VGAテキストモードと2x2ブロック文字のカスタムフォントを使用することです。もう1つの方法は、VGAの320x200グラフィックスモードを使用し、ピクセルを描くときにピクセルの幅と高さを倍にすることです。 –