Fred6008,
If you'll read what Travis and I posted, you'll see that we're all saying the same things:
* DOS sets no arbitrary limits
on resolution or color depth.
* DOS applications are (with
terribly few exceptions,
anyway!) coded to talk directly
to the video display hardware.
* Because developers have no way
of knowing what specific video
display hardware an end user
has, they generally stick to
VGA standards (640x480 pixels,
256 colors, with a refresh
rate of 60Hz) because VGA is
the lowest common denominator
standard and it's most likely
supported on any given PC.
* Some developers have ventured
beyond the VGA standard and
support standard display modes
defined by VESA (The Video
Electronics Standards
Association), which offer
higher resolutions, color
depths, and refresh rates than
those defined by VGA. (These
VESA modes, as well as other
display modes that provide
capabilities that exceed VGA,
are often generally referred to
as "SuperVGA", or "SVGA".)
> Let's come down from the clouds of theory.
This isn't theory; we're talking about how the hardware and software operate and the common practices of developers.
> DOS is typed white letters on a black background.
That's is like saying Linux is typed white letter on a black background, or that Windows is a green or blue desktop with a taskbar and start menu!
The standard default DOS *SHELL* happens to be text mode with white letters on a black background, but that's just a default text mode and a default color. The standard DOS text mode colors are black, blue, green, cyan, red, magenta, brown, light grey, dark grey, pale blue, pale green, pale cyan, pale red, pale magenta, yellow, and white. One of them just happens to be the default. Also, more than one text mode is available (providing it's supported by your hardware).
DOS is merely an operating system. Both text and graphics modes are available (provided you've got a display adapter that supports graphics) and a variety of different text character sizes and colors are available. Play around with MODE sometime.
> It has no need for high resolution.
Spoken like a man who has never heard of AutoCAD!
Believe it or not, there was a day when people ran CAD/CAM and other graphics-related software on DOS. "No need for high resolution"?
What about Web browsers? What about digital imaging and character recognition software? What about photo editing software? What about desktop publishing? What about animation?
Of course, it depends on what you mean by "high resolution", but geez... Besides, VESA BIOS Extensions allow for some pretty high resolutions under DOS.
> DOS programs with GUI interfaces set their higher resolution limited by the video card and the monitor.
This is *exactly* what I said in my first post!
> If 256 colors resolution did not come off the video card without a driver, a driver would have to be installed in the CONFIG.SYS for DOS applications to run 256 colors.
Wrong. No device driver is used. No matter what resolution, color depth, or refresh rate is used, it doesn't come from using a device driver (Depending on how you define "define driver", there may be exceptions to this, which I'll mention in a minute.). As stated earlier, virtually all DOS apps talk *directly* to the video hardware, without using the services of a driver. A video display driver would not be installed in the CONFIG.SYS file for DOS applications to run more than 256 colors. DOS apps are talking directly to the video hardware; they are not using a driver.
In other words:
If you get 640x480 with 256 colors (VGA standard) in real-mode DOS, it doesn't come from a driver. No driver is used. The application supports this mode directly.
If you get 300x200 with 4 colors (CGA standard) in real-mode DOS, it doesn't come from a driver. No driver is used. The application supports this mode directly.
If you get 1,024x768 with 65,536 colors in real-mode DOS, it doesn't come from using a driver either. No driver is used. The application supports this mode directly.
Regardless of the resolution or color depth, no driver is used. Virtually all real-mode applications talk directly to the video hardware. They are not using drivers.
For a DOS application to support ANY display mode--no matter what the resolution or color depth--the application must support the particular video chipset in your particular video card. It doesn't matter whether it's 640x480 and 256 colors or not. The application must support your video chipset. Fortunately, most video cards can emulate the IBM PS/2 VGA Display Adapter, making the VGA standard almost universal.
The 640x480 256 color display doesn't just "come off the card". Support for this mode is coded into the app just like support for any other mode.
In addition, many cards support VESA BIOS extensions, which provide for resolutions well beyond 640x480.
There is nothing magical about 640x480 resolution or a 256 color depth or a refresh rate of 60Hz. It just happens to be a display mode that most systems can handle and developers often rely on it as a lowest common denominator, assuming that if they code their software to support VGA mode, it'll work on any given system.
A DOS app could just as easily support ANY resolution, color depth, or refresh rate. Device drivers have nothing to do with it. The gotcha is that the DOS apps talk directly to the hardware. This makes the apps hardware-specific. i.e., the app must support the exact video chipset you've got. Fortunately, VGA became quite a popular standard and VESA has standardized many of the so-called "Super VGA", or "SVGA" modes, which are supported by VESA BIOS extensions, making VESA-standardized SVGA modes somewhat common.
The IBM PS/2 VGA Display Adapter was terribly popular and widely copied. It was the Game Blaster/Sound Blaster of video hardware. Nearly all video display adapters made after 1987 or so can emulate this video card or are otherwise compatible with it. Nearly all analogue PC monitors made since its introduction are compatible with it. In other words, the IBM VGA display, much like the Sound Blaster and Rolnd MPU-401, became a standard, widely supported and widely emulated. This is the reason most DOS apps support the 640x480, 256 color, 60Hz refresh rate VGA standard.
Third parties developed display adapters that exceeded the IBM VGA display. These were commonly referred to as "Super VGA" or "SVGA" displays, but keep in mind that "VGA" was an actual card and that "SVGA" was not actually actually a standard or even really a set of standards! VESA (The Video Electronics Standards Association) standardized a number of these so-called "SVGA" modes, creating a set of VESA modes. These VESA modes are supported by VESA BIOS extensions.
Thanks to VESA's standardizing some of the SVGA modes, developers have been supporting them, hence the DOS apps that provide resolution greater than 640x480, more than 256 colors, and vertical refresh rates higher than 60Hz.
Again, there's nothing that says DOS has to support VGA, VESA, or any other graphics modes. DOS is video agnostic. It doesn't care. Video support is built into the applications (or application-specific modules loaded by said applications). No drivers are used.
Even before the VESA standards, some DOS apps that required high resolution (CAD/CAM apps, for example), supported higher resolutions than 640x480. The apps I have seen that do this have dynamically loadable modules, written to support the video chipset of a specific card. The module is referenced by a configuration text file, which tells the app which module to load. When the app loads, it scans the config file, loads the module for the card, and the card is supported. (This isn't a far cry from setting up video drivers for X-Windows or XFree86.) These modules are technically device drivers, but they are not the type of generic, non-application-specific drivers most people are talking about when they use the word "driver". These device drivers are coded specifically for the application that uses them and in a sense, become a part of the application when loaded. They are not generic in nature and cannot be shared by different apps like Windows, OS/2, and Linux drivers. For the sake of simplicity, I'm not going to refer to these application-specific modules as "drivers", even though they technically are.
> Almost all higher resolution drivers are installed in Windows.
NO video drivers are installed DOS--higher resolution or not. They are ALL installed in Windows (or OS/2 or whatever). Windows provides an environment that makes it possible for all applications written for that environment to use a common Windows driver. In other words, in Windows (unlike DOS), support for a device does NOT have to be coded into the application. All the niggly bits concerning registers, firmware routines, hardware interrupt requests, and chipset specifics are abstracted by the Windows device driver. The app need not worry about it, it just uses the driver. (There are a few exceptions and cases in which some specific apps might need to access hardware directly, especially diagnostic software.) This driver model does not exist in DOS! Unlike in Windows, the application must provide direct, device-specific support for the hardware.
I have seen one or two DOS apps that had video display support somewhat abstracted away from the application code. These apps used dynamically loaded modules specified in a text-based configuration file (pretty much like X-Windows or XFree86). In these cases, the application didn't need to know what hardware you had, you just installed the proper module and specified it in the config file. Technically, these modules ARE device drivers, but I've just covered this in an earlier paragraph.
> It is mostly a matter of your video card what your monitor can display.
Again, this is *exactly* what I said in my first post! Didn't you read it????
> There are two factors involved in resolution--besides color there is the number of pixels.
Dude, resolution IS the number of pixels!
Resolution is defined (at least in this context) as pixel density or the number of pixels. (The higher the density, the greater the number of pixels, I'm not going to bother making a distinction between the two terms.) Resolution is not defined by color depth. Resolution is a separate figure. For example, 300x200 completely describes a resolution. Resolution says nothing about color.
The higher the resolution, the more video memory is required. The greater the color depth, the more memory is required. Display adapters have a limited amount of memory, so in some cases, you may have to trade off one for the other. In other words, using a very high resolution may not leave enough memory available for a large number of colors. In these cases, color depth can set limits on the highest resolution you can get and vice versa.
There is a third factor in the mix: refresh rate. (This is limited by the speed of your RAMDAC.) In some cases, some video hardware may not be able to display certain resolutions at certain refresh rates with certain color depths. For example, a video card might be able to deliver a maximum resolution of 1600x1200 at 72Hz, but no more than 1280x1024 at 85Hz.
> DOS is a text mode that all cards can handle.
DOS IS NOT A TEXT MODE!
DOS is an operating system. DOS can handle several different text and graphics modes, with different text sizes, graphics resolutions, and colors. DOS even includes commands for switching between these different modes. It's called MODE.
> I tried to look it up, and I believe that a VGA card has to display 640 by 480 pixels and display 16 colors.
If a card can't display 640x480 pixels with a *minimum* of 16 colors, it certainly has no right to call itself VGA compatible. However, a VGA card may display resolutions other than 640x480 and may display more or fewer colors (including no color at all, an a special monochrome mode). The term "VGA" has generally come to mean a video display mode defined by a resolution of 640x480 pixels, a color depth of 256 colors (not 16,although 16 is the minimum), and a resolution of 60Hz. What the term "VGA" may not carry the same meaning, depending on what you're talking about. "VGA" originally referred to a display system that supported many different modes, not necessarily a graphics display mode.
The original VGA display supported several different resolutions, color depths, and modes of operation, including character based and APA (All Points Addressable).
The original VGA was introduced in two forms: either built into the PS/2 motherboard or as an 8-bit ISA expansion card called the IBM PS/2 VGA Display Adapter. (I happen to own two of these cards.)
The original VGA display was capable of producing 256 simultaneous colors from a pallette of 262,144 colors. The original card maxed out at 16 colors at 640x480. To get 256 simultaneous colors, you had to drop the resolution down to at least 320x400, but this was due to memory limitations. Again, several other modes were also available.
> Higher resolutions are SVGA.
Graphics modes that provide resolutions higher than 640x480 and/or more than 256 are generally referred to as "SVGA", but keep in mind that "SVGA" is not neither a display mode nor a standard. It's a term originally coined to collectively describe third-party display adapters competing with IBM's VGA display. There were display systems that offered higher resolutions that actually had their own names. Of course, now there's the VESA-standardized SVGA modes, VESA SVGA. These are standardized modes supported by VESA BIOS extensions and some DOS applications, allowing DOS applications that take advantage of them to display resolutions greater than 640x480, more than 256 colors, and vertical refresh rates higher than 60Hz (Which is what Travis was talking about.)
> Vesa is a set of standards that makes SVGA cards interchangeable.
This is exactly what Travis was saying!
> I believe high resoluton DOS games that require SVGA video cards supply their own driver directly to the video card in some cases and mostly conform to the VESA standard.
This is correct, but again, this is exactly what Travis and I were saying! Did you not read our posts?