This chapter provides a technical overview of the former DOS systems to understand how everything works in DOSBox.
The operating system
If we turn back time to the early 90s, we will mostly come upon Microsoft Disk Operating System (MS-DOS) on standard PCs. Originally written by Tim Patersons as QDOS (Quick and Dirty Operating System) for Intel 8086 processors, it was bought by Microsoft and enhanced from 86-DOS, PC-DOS through to MS-DOS.
As soon as Windows 95 was introduced, MS-DOS became the basement of Windows. It basically got the FAT32 file system support and then it was reduced to a boot facility, a maintenance platform and a script interpreter. All other improvements were done in Windows itself. MS-DOS was finally abandoned after joining the Windows NT line on Windows XP. The last version was MS-DOS 8.0 as part of Windows ME.
Around 1992, a normal PC had a 80486DX with 33 MHz, 4 MB RAM, a 120 MB harddisk and a VGA video card. Later games often required a Pentium with 75 or 90 MHz and 8 MB RAM. Beside this, you was happy if you had a Sound Blaster or Gravis UltraSound card along with a double speed CD-ROM drive.
Video card standards
CGA (Color Graphics Adapter) was the first standard that could be used for graphics. It was introduced by IBM in 1981, but such cards were very expensive and 320×200 with 4 colors or 640×200 with 2 colors was incommensurate to professional use. After EGA cards were introduced, the CGA cards became affordable and were considered as cheap solution.
HGC (Hercules Graphics Card) was a monochrome graphics controller developed by Hercules Computer Technology, Inc. in 1982. It supported a high-resolution text mode with a clearer text display than the CGA standard ever could offer, and a single graphics mode in 720×348. The Hercules cards were widely supported and usually connected to a monochrome monitor with a green, yellow or white display.
EGA (Enhanced Graphics Adapter) was developed by IBM as a successor to CGA in 1984. Such cards were able to display 16 colors at resolutions up to 640×350, but you needed a special EGA monitor to do this.
VGA (Video Graphics Array) is a video card standard introduced in 1987. It is still supported today (December 2008). It’s advantage was that you was able to use a wide range of display modes, even though they were limited to 400 lines at 70 Hz or 480 lines at 60 Hz. The most common modes were 320×200 at 256 colors and 640×480 at 16 colors.
VBE (VESA BIOS Extension) originally was an enhancement to VGA and supported more powerful video modes. In 1989, it was first specified as SVGA (Super Video Graphics Array) by the Video Electronics Standards Association (VESA) and later enhanced up to a resolution of 1600×1200. As not all video cards supported such functionalities, there were additional programs like UniVBE (later Scitech Display Doctor) to provide them by software.
As IBM had a quasi-monopoly in PC hardware in the 80s, the video drivers for CGA, EGA and VGA have been directly integrated into the BIOS. That was not unimportant, because DOS didn’t have a graphical subsystem like GDI, DirectX or the X Window system. Since every software had to use own drivers to use hardware, developers mostly restricted themself to VGA. After 1990, IBM lost his market power. So even today, the VGA driver is the best one, if you didn’t have installed the right video driver, yet.
PC Speaker is the default sound output device on IBM compatible PCs. At the beginning of the 80s, IBM saved costs everywhere to not founder on the high consumer price like other computers, so the sound output was limited to the minimum. Even today, the PC Speaker outputs a square wave signal on a single channel, whose frequency can be modified.
Roland MT-32 was a MIDI synthesizer card which has been sold by Roland since 1987. It used a sample-based synthesis combined with a subtractive synthesis to produce the sound output. It was a popular high-quality alternative to AdLib and Sound Blaster cards before it was replaced by General MIDI and it’s reference implementation Roland Sound Canvas at the beginning of the 90s.
AdLib Music Synthesizer Card, developed by Ad Lib Inc., was one of the first popular sound cards in 1987 that brought the sound quality of home computers to the PC. Using the Yamaha YM3812 sound chip, also known as OPL2, it was a pure synthesizer card. It wasn’t able to play digital samples directly, so it was displaced by the Sound Blaster cards quite quickly. Since the follower AdLib Gold failed as well, the company filed for bankruptcy in 1992.
Sound Blaster was distributed by Creative Labs in 1989 and, by the good quality and the low price, it became so popular that it became a quasi-standard. So, third-party manufacturers were forced to offer Sound Blaster compatible sound cards. The original Sound Blaster cards supported OPL2, so they were compatible to AdLib cards, but they also supported recording and playing back 8 bit mono samples in 22.050 kHz. After that, the Sound Blaster Pro worked with 44.1 kHz stereo samples. The Sound Blaster Pro 2.0 added OPL3 support and the Sound Blaster 16 was able to output 16 bit samples. The Sound Blaster AWE32 finally included a wavetable synthesizer. These cards also had the advantage that they were able to get the audio data directly from the memory (Direct Memory Access, DMA), so the CPU didn’t need to feed them. In case the data buffer became low, they raised an interrupt via the IRQ channel.
Gravis UltraSound was a popular alternative to the Sound Blaster cards, especially in the tracker and demo scene. It was developed by Advanced Gravis Computer Technology in 1991 and it had an internal sound mixer. So, the Gravis UltraSound was able to mix up to 32 samples without using the CPU. With this, it outclassed other sound cards in sound quality. Since it has been little supported in computer games and the Sound Blaster emulation wasn’t that good, it never prevailed.
When MS-DOS became less important, the Sound Blaster standard got irrelevant because of Microsoft Windows’ manufacturer independent interfaces.
Other standards supported by DOSBox
IBM PCjr, introduced in 1984, was IBM’s first attempt to enter the home computer market. It featured an Intel 8088 microprocessor with 4.77 MHz, 64 or 128 KB RAM, an enhanced CGA graphics card and the Texas Instruments SN76489, a 3-voiced sound chip producing square waves in different amplitudes and frequencies. Even though the PCjr was expected to change the home market, it finally failed due to the high price of $669 compared to other home computers and was often criticized for the wireless chiclet keyboard that was shipped with it, because it felt cheap and difficult to type.
Tandy 1000/2000 were a series of IBM PC compatible home computers from Tandy Corporation. They were cheaper than the IBM PC and yet they featured better graphics and sounds in that time. However, when VGA graphics cards and Sound Blaster cards became common, these advanced features became obsolete and hard to sell, so they ended up in being terminated.