次: , 前: MS-DOS Input, 上: MS-DOS


C.2 MS-DOSの画面

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にフレームサイズをnm桁に切り替える指示をすると、 screen-dimensions-nxmという変数があるかどうか調べます。 変数があれば、その値(整数である必要がある)を 切り替え先のビデオモードとして使います。 (Emacsは、 screen-dimensions-nxmの値をレジスタALに入れ、 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では、フレームサイズを変更すると、 他のすべてのフレームのサイズも変更してしまいます。