MS-DOSの画面では、ボールド体(太字体)やイタリック体(斜体)などの
フォントの変種を使えませんが、
個々に前景色と背景色を指定できるフェイスを複数個使えます。
したがって、関連するフェイスに異なる表示色を定義すれば、
(font-lock
、エンリッチ(enriched)モードなどの)
フォントを用いるEmacsのパッケージの全機能を利用できます。
コマンドlist-colors-display
(see Frame Parameters)と
コマンドlist-faces-display
(see Faces)を使えば、
利用可能なフェイスと表示色、それらの見え方を知ることができます。
本章のMS-DOS and MULEでは、 DOSの画面に組み込まれたフォントでは表せない 字形や文字をEmacsがどのように表示するかを説明します。
MS-DOSでも複数のフレーム(see Frames)を利用できます。 しかし、それらはすべて重なっているので、 一度には1つのフレームしか見ることができません。 見えている1つのフレームが画面全体を覆います。 MS-WindowsのDOSボックスでEmacsを実行しているときには、 見えているフレームを画面全体より小さくはできますが、 それでも、一度に1つのフレームしか表示できません。
コマンドmode4350
は43行表示と50行表示を切り替えますが、
ハードウェアに依存します。
コマンドmode25
は、デフォルトの80x25の画面サイズに切り替えます。
デフォルトでは、Emacsは80桁で、25行、28行、35行、40行、43行、50行の
画面サイズしか知りません。
しかし、ビデオアダプタに別の画面サイズに切り替える特別な
ビデオモードがあれば、Emacsでもそれらを利用できます。
Emacsにフレームサイズをn行m桁に切り替える指示をすると、
screen-dimensions-
nx
mという変数があるかどうか調べます。
変数があれば、その値(整数である必要がある)を
切り替え先のビデオモードとして使います。
(Emacsは、
screen-dimensions-
nx
mの値をレジスタAL
に入れ、
BIOSの関数Set Video Mode
を呼び出し、ビデオモードを切り替えます。)
たとえば、ビデオモードを85にすると66x80の画面に切り替わるアダプタがあるとします。
_emacsにつぎの行を加えれば、
Emacsでこの画面サイズを使えるようになります。
(setq screen-dimensions-66x80 85)
MS-DOS用Emacsでは、 フレームサイズは利用可能な特定のサイズにしか設定できませんから、 フレームサイズの変更要求すべてに答えられるわけではありません。 使えないサイズが要求されると、 Emacsは指定されたサイズのつぎに大きいサイズを選びます。 たとえば、36x80のフレームを要求すると、かわりに、40x80になります。
変数screen-dimensions-
nx
mは、
指定サイズに正確に一致するときだけ使われます。
利用可能なつぎに大きなサイズの候補を探すときには無視します。
上述の例では、VGAで38x80を使えて、
変数screen-dimensions-38x80
に適切な値を定義したとしても、
36x80のフレームを要求した場合には、40x80の画面になってしまいます。
このような場合に38x80のサイズにしたければ、
変数screen-dimensions-36x80
にも
screen-dimensions-38x80
と同じビデオモードの値を入れます。
MS-DOSでは、フレームサイズを変更すると、 他のすべてのフレームのサイズも変更してしまいます。