Display on MS-DOS cannot use multiple fonts, but it does support
multiple faces, each of which can specify a foreground and a background
color. Therefore, you can get the full functionality of Emacs
packages which use fonts (such as font-lock
, Enriched Text
mode, and others) by defining the relevant faces to use different
colors. Use the list-colors-display
and
list-faces-display
commands (see section Modifying Faces) to see
what colors and faces are available and what they look like.
Multiple frames (see section Frames and X Windows) are supported on MS-DOS, but they all overlap, so you only see a single frame at any given moment. That single visible frame occupies the entire screen. When you run Emacs under Windows version 3, you can make the visible frame smaller than the full screen, but Emacs still cannot display more than a single frame at a time.
The mode4350
command switches the display to 43 or 50
lines, depending on your hardware; the mode25
command switches
to the default 80x25 screen size.
By default, Emacs only knows how to set screen sizes of 80 columns by
25 or 43/50 rows. However, if your video adapter has special video
modes that will switch the display to other sizes, you can have Emacs
support those too. When you ask Emacs to switch the frame to n
rows by m cols dimensions, it checks if there is a variable called
screen-dimensions-nxm
, and if so, uses its value
(which must be an integer) as the video mode to switch to. (Emacs
switches to that video mode by calling the BIOS Set Video Mode
function with the value of screen-dimensions-nxm
in
the AL
register.) For example, suppose your adapter will switch
to 66x80 dimensions when put into video mode 85. Then you can make
Emacs support this screen size by putting the following into your
`_emacs' file:
(setq screen-dimensions-66x80 85)
Since Emacs on MS-DOS can only set the frame size to specific supported dimensions, it cannot honor every possible frame resizing request. When an unsupported size is requested, Emacs chooses the next larger supported size beyond the specified size. For example, if you ask for 36x80 frame, you will get 50x80 instead.
The variables screen-dimensions-nxm
are used only
when they exactly match the specified size; the search for the next
larger supported size ignores them. In the above example, even if your
VGA supports 44x80 dimensions and you define a variable
screen-dimensions-44x80
with a suitable value, you will still get
50x80 screen when you ask for a 36x80 frame. If you want to get the
44x80 size in this case, you can do it by setting the variable named
screen-dimensions-36x80
with the same video mode value as
screen-dimensions-44x80
.
Changing frame dimensions on MS-DOS has the effect of changing all the other frames to the new dimensions.