MS-DOSのディスプレイでは、boldやitalicのようなフォントの変種が使用できませんが、複数のフェイスをサポートしており、それぞれのフェイスでフォアグラウンドとバックグラウンドのカラーを指定できます。したがってm異なるカラーを使用するために関連するフェイスを定義することにより、フォントを使用するEmacsパッケージ(font-lock
やEnriched
Textモードなそ)の完全な機能を使用することができます。利用できるカラーとフェイスと、それらの外観を確認するには、list-colors-display
コマンド
(フェイスのカラーを参照してください)
、およびlist-faces-display
(テキストのフェイスを参照してください)
を使用してください。
DOSディスプレイでネイティブにサポートされていないグリフと文字をEmacsが表示する方法については、このチャプターの後のほうの、MS-DOSでの国際化サポートを参照してください。
Emacsを開始したとき、Emacsはカーソルの形状を塗りつぶしたボックスに変更します。他のシステムではボックスカーソルがEmacsのデフォルトなので、これは互換性のためです。デフォルトのカーソル形状は、変数default-frame-alist
の中のcursor-type
パラメーターでbarを指定することにより変更できます
(フレームの作成を参照してください)。
MS-DOS端末は垂直バーのカーソルをサポートしないので、カーソルは水平バーになり、フレームのパラメターでwidth
パラメーターが指定された場合、それは実際には水平バーの高さになります。この理由により、MS-DOSではカーソルタイプbar
とhbar
は同じ効果を生みます。拡張として、以下のようにして、バーカーソル指定にはwidthと同様に、カーソルが行を読み取る開始位置を含めることができます:
'(cursor-type bar width . start)
これに加えて、widthパラメーターが負の場合、カーソルバーはその文字セルの最上部から開始されます。
MS-DOS端末は1度に1つのフレームだけを表示できます。MS-DOSで動作するEmacsのフレーム機能は、Emacsがテキスト端末で動作する場合と同じように機能します (フレームとグラフィカルなディスプレイを参照してください)。 MS-WindowsでDOS窓からEmacsを実行した場合、フルスクリーンより小さい可視フレームを作成できますが、それでもEmacsは1度に1つのフレームしか表示できません。
dos-mode4350
コマンドはディスプレイを43行または50行に切り替え、それはハードウェアーに依存します。dos-mode25
コマンドはスクリーンサイズをデフォルトの80x25に切り替えます。
デフォルトではEmacsが理解するするスクリーンサイズは、列を80列、行を25、28、35、40、43、50行にセットする方法だけです。しかしビデオアダプターが、ディスプレイを他のサイズに切り替える特別なビデオモードをもつ場合、Emacsもそれをサポートするようにできます。Emacsにフレームをn行m列のサイズに切り替えるように指示した場合、Emacsはscreen-dimensions-nxm
という名前があるかチェックして、もしあれば切り替えるビデオモードの値(整数でなければなりません)としてそれを使用します(EmacsはAL
レジスターにscreen-dimensions-nxm
の値をセットして、BIOS関数のSet
Video
Mode
を呼び出すことによりそのビデオモードに切り替えます)。たとえばビデオアダプターがビデオモードを85にしたとき、サイズ66x80に切り替わるとしましょう。その場合、以下を_emacsファイルに記述して、Emacsにそれをサポートさせることができます:
(setq screen-dimensions-66x80 85)
MS-DOSのEmacsは特定のサポートされたフレームサイズだけしかセットできないので、可能性のあるすべてのフレームのサイズ変更要求に従うことはできません。サポートされていないサイズが要求された場合、Emacsは指定されたサイズを越える、次に大きなサポートされたサイズを選択します。この場合、たとえば36x80フレームを要求して、かわりに40x80を得ることになります。
変数screen-dimensions-nxm
は、指定されたサイズに正確にマッチするときだけ使用され、サポートされた次に大きなサイズを検索するときには、無視されます。上記の例ではVGAは38x80のサイズをサポートし、screen-dimensions-38x80
を適切な値で定義していても、36x80フレームを要求すると40x80のスクリーンになります。この場合サイズを38x80にするには、screen-dimensions-36x80
という名前の変数に、screen-dimensions-38x80
と同じビデオもーどの値をセットして、これを行なうことができます。
MS-DOSでフレームサイズを変更すると、他のすべてのフレームも新しいサイズに変更されます。