|
Troubleshooting, Maintaining & Repairing PCs Stephen Bigelow $54.95 0-07-913732-6 |
|
| Chapter: 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 |
| Reserve your copy at a Beta Bookstore near you! |
Contact Bet@books © 1998 The McGraw-Hill Companies, Inc. All rights reserved. Any use of this Beta Book is subject to the rules stated in the Terms of Use. |
CHAPTER 49
Video adapters and accelerators
The monitor itself is merely an output device (a peripheral) which translates synchronized analog or TTL video signals into a visual image. Of course, a monitor alone is not good for very much - except perhaps as a conversation piece or a room-heater. The next logical question is; "where does the video signal come from?" All video signals displayed on a monitor are produced by a video adapter circuit (Fig. 49-1). The term "adapter" is often used because the PC is "adapted" to the particular monitor through this circuit. In most cases, the video adapter is an expansion board that plugs into the PC’s available bus slots. It is the video adapter which converts raw data from the PC into image data which is stored in the adapter’s video memory. The exact amount of memory available depends on the particular adapter and the video modes that the adapter is designed to support. Simple adapters offer as little as 256KB, while the latest adapters provide 4MB or more. The video adapter then translates the contents of video memory into corresponding video signals that drive a monitor.
The actual operations of a video adapter are certainly more involved than described above, but you can begin to appreciate the critical role that the video adapter plays in a PC. If a video adapter fails, the monitor will display gibberish (or nothing at all). To complicate matters even further, many current software applications require small device drivers (called video drivers). A video driver is a rather small program that allows an application to access a video adapter’s high-resolution or high-color video modes (usually for SVGA operation) with little or no interaction from the system BIOS. During troubleshooting, it will be necessary for you to isolate display problems to either the monitor, the video adapter, or driver software before a solution can be found. This chapter explains the operation and troubleshooting of typical 2D and 3D video adapters.
Understanding conventional video adapters
The conventional frame buffer is the oldest and most well-established type of video adapter. The term frame buffer refers to the adapter's operation - image data is loaded and stored in video memory one "frame" at a time. Frame buffer architecture (as shown in Fig. 49-2) has changed very little since PCs first started displaying text and graphics. The heart of the frame-buffer video adapter is the highly-integrated display controller IC (sometimes called a CRTC or Cathode Ray Tube Controller). The CRTC generates control signals and supervises adapter operation. It is the CRTC which reads video RAM (or VRAM) contents and passes those contents along for further processing. Many new video boards use specially designed IC groups (called chipsets) which are intended to work together. Chipsets provide fast, efficient video performance while minimizing the amount of circuitry needed on a video adapter.
Text vs. graphics
Video RAM also plays a vital role since it is RAM which holds the image data to be displayed. The video adapter can operate in two modes - text and graphic. In the text mode, ASCII characters are stored in video RAM. A character ROM, character generator, and shift register produce the pixel patterns that form ASCII screen characters. The character ROM holds a pixel pattern for every possible ASCII character (including letters, numbers, and punctuation). The character generator converts ROM data into a sequence of pixel bits and transfers them to a shift register. The shift register produces a bit stream. At the same time, an attribute decoder determines whether the defined ASCII character is to be displayed as blinking, inverted, high-intensity, standard text, or a text color (for color monitors). The signal generator is responsible for turning the ASCII serial bit stream from the shift register into the video and synchronization signals that actually drive the monitor. The signal generator may produce either analog or TTL video signals depending on how the particular monitor is to be operated. Today, virtually all color graphic monitors operate from analog video signals.
In the graphic mode, video RAM locations will contain the color/gray scale information for each screen pixel rather than ASCII characters, so the character ROM and character generating circuitry used in text mode is bypassed. For example, monochrome graphics use a single bit per pixel, 16 color graphics use 4 bits per pixel, 256 color graphics use 8 bits per pixel, and so on. Pixel data taken from VRAM by the CRTC is passed through the character generator without any changes. Data is then sent directly to the shift register and on to the signal generator. It is the signal generator which produces analog or TTL video signals along with sync signals as dictated by the CRTC.
ROM BIOS (Video BIOS)
There is one part of the classical video adapter which has not been mentioned yet - the video BIOS. The display controller requires substantial instruction changes when it is switched from text mode to any one of its available graphics modes. Since the instructions required to re-configure and direct the CRTC depend on its particular design (and the video board design in general), it is impossible to rely on the software application or the PC’s BIOS to provide the required software. As a result, all video adapters from EGA on use local BIOS ROM to hold the firmware needed by the particular display controller. Current PC architecture allocates about 128KB of space from C0000h to DFFFFh within the upper memory area. This space is reserved for devices with expansion ROMs such as hard drive controllers and video adapters. Motherboard BIOS works in conjunction with the video BIOS which is detected during the POST.
Reviewing video display hardware
The early days of PC development left users with a simple choice between monochrome or color graphics (all video adapters support text modes). In the years that followed, however, the proliferation of video adapters have brought an array of video modes and standards that you should be familiar with before upgrading a PC or attempting to troubleshoot a video system. This part of the chapter explains each of the video standards that have been developed in the last 15 years and shows you the video modes that each standard offers. Table 49-1 provides a comprehensive listing of the standard hardware-supported video modes, along with the most popular software-supported (i.e. video driver supported) video modes.
MDA (Monochrome Display Adapter - 1981)
The Monochrome Display Adapter (MDA) is the oldest video adapter available for the PC. Text is available in 80 column x 25 row format using 9x14-pixel characters. Being a text-only system, MDA offered no graphics capability, but it achieved popularity because of its relatively low cost, good text display quality, and integrated printer (LPT) port. Figure 49-3 shows the video connector pinout for an MDA board. The 9-pin monitor connection uses four active TTL signals; intensity, video, horizontal, and vertical. Video and intensity signals provide the on/off and high/low intensity information for each pixel. The horizontal and vertical signals control the monitor's synchronization. MDA boards have long been obsolete and the probability of your encountering one is remote at best.
CGA (Color Graphics Adapter - 1981)
The Color Graphics Adapter (CGA) was the first to offer color text and graphics modes for the PC. A 160x200 low-resolution mode offered 16 colors, but such low resolution received very little attention. A 320x200 medium-resolution graphics mode allowed finer graphic detail, but with only 4 colors. The highest resolution mode provides 640x200 at 2 colors (usually black and one other color). The relationship between resolution and colors is important since a CGA frame requires 16KB of video RAM. 640x200 resolution results in 128,000 pixels. With 8 bits able to represent 8 pixels, (128,000/8) 16,000 bytes are adequate. 320x200 resolution results in 64,000 pixels, but with 2 bits needed to represent 1 pixel (4 pixels/byte), (64,000/4) 16,000 bytes are still enough. You can see that video RAM is directly related to video capacity. Since there is typically much more video RAM available than is needed for an image, video boards support multiple video pages. Figure 49-4 shows the pinout for a typical CGA video connector. As with the earlier MDA design, CGA video signals reserve pins 1 and 2 as ground lines, while the horizontal sync signal is produced on pin 8 and the vertical sync signal is produced on pin 9. CGA is strictly a digital display system with TTL signals used on the Red (3), Green (4), Blue (5), and Intensity (6) lines.
EGA (Enhanced Graphics Adapter - 1984)
It was not long before the limitations of CGA became painfully apparent. The demand for higher resolutions and color depths drove designers to introduce the next generation of video adapter known as the Enhanced Graphics Adapter. One of the unique appeals of EGA was its backward compatibility - an EGA board would emulate CGA and MDA modes on the proper monitor, as well as its native resolutions and color depths when using an EGA monitor. EGA is known for its 320x200x16, 640x200x16, and 640x350x16 video modes. More memory is needed for EGA and 128KB is common for EGA boards (although many boards could be expanded to 256KB).
The EGA connector pinout is illustrated in Fig. 49-5. TTL signals are used to provide Primary Red (3), Primary Green (4), and Primary Blue (5) color signals. By adding a set of secondary color signals (or color intensity signals) such as Red Intensity (2), Green Intensity (6), and Blue Intensity (7), the total of 6 color control signals allow the EGA to produce up to 64 possible colors. Although 64 colors are possible, only 16 of those colors are available in the palette at any one time. Pin 8 carries the horizontal sync signal, pin 9 carries the vertical sync signal, and pin 1 remains ground.
PGA (Professional Graphics Adapter - 1984)
The Professional Graphics Adapter was also introduced in 1984. This system offered a then-revolutionary display capability of 640x480x256. Three-dimensional rotation and graphic clipping was included as a hardware function, and the adapter could update the display at 60 frames per second. The PGA was incredibly expensive and beyond reach of all but the most serious business user. In actual operation, a PGA system required two or three expansion boards, so it also represented a serious commitment of limited system space. Ultimately, PGA failed to capture any significant market acceptance. It is unlikely that you will ever encounter a PGA board - most that ever saw service in PCs have long since been upgraded.
MCGA (Multi-Color Graphics Array - 1987)
The Multi-Color Graphics Array (MCGA) had originally been integrated into the motherboard of IBM's PS/2-25 and PS/2-30. MCGA supports all of the CGA video modes, and also offers several new video modes including a 320x200x256 mode that had become a preferred mode for game software of the day. MCGA was one of the first graphic systems to use analog color signals rather than TTL signals. Analog signals were necessary to allow MCGA to produce its 256 colors using only three primary color lines (red, green, and blue, or "RGB").
IBM also took the opportunity to employ a new, high-density 15-pin sub-miniature "D-type" connector as shown in Fig. 49-6. One of the striking differences between the "analog" connector and older TTL connectors is the use of individual ground lines for each color. Careful grounding is vital since any signal noise on the analog lines will result in color anomalies. If you inspect a video cable closely, you will find that one or both ends are terminated with a square metal box which actually contains a noise filter. It is important to realize that although the MCGA could emulate CGA modes, older TTL monitors were no longer compatible with analog RGB signal levels.
Although there were a number of notable technical improvements that went into the PS/2 design, none of them could assure broad acceptance of the PS/2 series. However, the MCGA ushered in a new age of analog display technology, and virtually all subsequent video adapters now use the 15-pin analog format shown in Fig. 49-6. While MCGA adapters are also (technically) obsolete, the standard lives on in MCGA’s cousins, VGA and SVGA.
VGA (Video Graphics Array - 1987)
The Video Graphics Array was introduced along with MCGA and implemented in other members of IBM’s PS/2 series. The line between MCGA and VGA has always been a bit fuzzy since both were introduced simultaneously (both using the same 15 pin video connector), and VGA can handle every mode that MCGA could. For all practical purposes, we can say that MCGA is a subset of VGA.
It is VGA that provides the familiar 640x480x16 screen mode which has become the baseline for Microsoft Windows 95 "SafeMode" displays. The use of analog color signals allow VGA systems to produce a palette of 16 colors from 262,144 possible colors. VGA also provides backward compatibility for all older screen modes. Although the PS/2 line has been discontinued, the flexibility and backward compatibility of VGA proved so successful that VGA adapters were soon developed for the PC. For a time, VGA support was considered to be "standard equipment" for all new PCs sold today, but SVGA boards are rapidly replacing VGA systems, and most SVGA adapters offer full VGA support.
8514 (1987)
The 8514/A video adapter is a high-resolution system also developed for the PS/2. In addition to full support for MDA, CGA, EGA, and VGA modes, the 8514/A can display 256 colors at 640x480 and 1024x768 (interlaced) resolutions. Unfortunately, the 8514/A was a standard ahead of its time. The lack of available software and the demise of the PS/2 line doomed the 8514/A to extinction before it could become an accepted standard. Today, the XGA is rapidly becoming the PC standard for high-resolution/high-color display systems on MicroChannel PC platforms.
SVGA (Super Video Graphics Array)
Ever since VGA became the de-facto standard for PC graphics, there has been a strong demand from PC users to move beyond the 640x480x16 limit imposed by "conventional" VGA to provide higher resolutions and color depths. As a result, a new generation of extended or super VGA (SVGA) adapters have moved into the PC market. Unlike VGA which adhered to strict hardware configurations, there is no generally accepted standard on which to develop an SVGA board - each manufacturer makes an SVGA board which supports a variety of different - and not necessarily compatible - video modes. For example, one manufacturer may produce an SVGA board capable of 1024x768x65K, while another manufacturer may produce a board that only reaches 640x480x16M (more than 16 million colors).
This mixing and matching of resolutions and color depths has resulted in a very fractured market - no two SVGA boards are necessarily capable of the same things. This proliferation of video hardware also makes it impossible for applications software to take advantage of super video modes without supplemental software called video drivers. Video drivers are device drivers (loaded before an application program is started) that allow the particular program to work with the SVGA board hardware. Video drivers are typically developed by the board manufacturer and shipped on a floppy disk with the board. Windows and Windows 95 takes particular advantage of video drivers since the Windows interface allows ALL Windows applications to use the same graphics system rather than having to write a driver for every application as DOS drivers must be. Using an incorrect, obsolete, or corrupted video driver can be a serious source of problems for SVGA installations. The one common attribute of SVGA boards is that most offer full support for conventional VGA (which requires no video drivers), so Windows can ALWAYS be started in the conventional 640x480x16 VGA mode. There are only a handful of SVGA board manufacturers that abandon conventional VGA support.
Today, most SVGA boards offer terrific video performance, a wide selection of modes, and extremely reasonable prices. If it were not for the lack of standardization in SVGA adapters, VGA would likely be considered obsolete already. The Video Electronics Standards Association (VESA) has started the push for SVGA standards by proposing and supporting the VESA BIOS Extension - a universal video driver. The extension (now at version 2.0) provides a uniform set of functions that allow application programs to detect a card’s capabilities and use the optimum adapter configuration regardless of how the particular board’s hardware is designed. Virtually all of the SVGA boards in production today support the VESA BIOS Extensions, and it is worthwhile to recommend boards that support VESA SVGA. Some SVGA boards even incorporate the extensions into the video BIOS ROM which saves the RAM space that would otherwise be needed by a video driver.
XGA (1990)
The XGA and XGA/2 are 32-bit high-performance video adapters developed by IBM to support MicroChannel-based PCs. XGA design with MicroChannel architecture allows the adapter to take control of the system for rapid data transfers. MDA, CGA, EGA, and VGA modes are all supported for backward compatibility. In addition, several color depths are available at 1024x768 resolution, and a photo-realistic 65,536 colors are available at 640x480 resolution. To improve performance even further, fast video RAM and a graphics co-processor are added to the XGA design. For the time being, XGA is limited to high-performance applications in MicroChannel systems. The migration to ISA-based PCs has been slow because the ISA bus is limited to 16 bits and does not support bus-mastering as micro-channel busses do. For PCs, SVGA adapters using the high-performance PCI (or even the AGP) bus will likely provide extended screen modes as they continue to grow in sophistication as graphics accelerators.
Understanding graphics accelerators
When screen resolutions approach 640x480 and beyond, the data needed to form a single screen image can be substantial. Consider a single 640x480x256 image. There are (640x480) 307,200 pixels. Since there are 256 colors, 8 bits are needed to define the color for each pixel. This means 307,200 bytes are needed for every frame. When the frame must be updated 10 times per second, (307,200 x 10) 3,072,000 bytes per second (3.072MB/sec) must be moved across the bus (i.e. PCI or ISA bus). If a 65,536 color mode is being used, 2 bytes are needed for each pixel, so (307,200 x 2) 614,400 bytes are needed for a frame. At 10 frames per second, (614,400 x 10) 6,144,000 bytes per second (6.144MB/sec) must be moved across the bus - this is just for video information and does not consider the needs of system overhead operations such as memory refresh, keyboard and mouse handling, drive access, and other data-intensive system operations. When such volumes of information must be moved across an ISA bus limited at 8.33 MHz, you can see how a serious data transfer bottleneck develops. Even the PCI bus can be strained by higher video modes. This results in painfully slow screen refreshes - especially under Windows which requires frequent refreshes.
Video designers seek to overcome the limitations of conventional video adapters by incorporating processing power onto the video board itself rather than relying on the system CPU for graphic processing. By off-loading work from the system CPU and assigning the graphics processing to local processing components, graphics performance can be improved by a factor of three or more. There are several means of acceleration depending on the sophistication of the board (Fig. 49-7). Fixed-function acceleration relieves load on the system CPU by providing adapter support for a limited number of specific functions such as BitBlt or line draws. Fixed-function accelerators were an improvement over frame-buffers, but do not offer the performance of more sophisticated accelerators. A graphics accelerator uses an application-specific IC (ASIC) which intercepts graphics tasks and processes them without the intervention of the system CPU. Graphics accelerators are perhaps the most cost-effective type of accelerator. Graphics co-processors are the most sophisticated type of accelerator. The co-processor acts as a CPU which is dedicated to handling image data. Older graphics co-processors such as the TMS34010 and TMS34020 represent the Texas Instruments Graphical Architecture (TIGA) which is broadly used for high-end accelerators. Unfortunately, not all graphics co-processors provide increased performance to warrant the higher cost.
Figure 49-8 shows the block diagram for a typical graphics accelerator. The core of the accelerator is the graphics IC (or video chipset). The graphics IC connects directly with the PC expansion bus. Graphics commands and data are translated into pixel data which is stored in video RAM. High-performance video memory offers a second data bus which is routed directly to the video board’s RAMDAC (random access memory video-to-analog converter). The graphics IC directs RAMDAC operation and ensures that VRAM data is available. The RAMDAC then translates video data into red, green, and blue analog signals along with horizontal and vertical synchronization signals. Output signals generated by the RAMDAC drive the monitor. This architecture may appear simple, but that is due to the extremely high level of integration of ICs and chipsets being used. Table 49-2 provides a listing of many 2D and 3D graphics chipsets in use today.
Video speed factors
There is no one element that defines the performance of an accelerator board. Overall performance is actually a combination of five major factors; the video accelerator IC (a.k.a. the "chipset), the video RAM, the video BIOS/drivers, the RAMDAC, and the expansion bus architecture. By understanding how each of these factors relate to performance, you can make the best recommendations for system upgrades or replacement boards.
Companion CD: The commercial MONITORS software encrypted on the companion CD provides a utility which checks the specifications of your particular video adapter.
Video accelerator - Of course, the video accelerator IC itself (usually the graphics chipset being used) is at the core of the accelerator board. The type of IC (fixed-function, graphics accelerator, or graphics co-processor) loosely defines the board’s capabilities. All other factors being equal, a board with a graphics accelerator will certainly perform better than a fixed-function accelerator. Companies like ATI, Advance Logic, Chips & Technologies, Matrox, and Oak have developed many of the video accelerator ICs in use today. Many of the ICs provide a 32-bit data bus (though even newer designs are providing a 64-bit or 128-bit data bus), and they sustain very high data rates, but a data bottleneck across a 16 bit (i.e. ISA) expansion bus can seriously degrade the IC’s effectiveness. This means you should match the recommended board to the particular system - a state-of-the-art graphics accelerator will not necessarily make your old i286 shine.
Video RAM - Video adapters rely on RAM to hold image data, and video accelerator boards are no exception. While the current amount of video RAM typically varies from 1MB to 4MB (some late-mode video adapters offer as much as 8MB), the amount of RAM is not so important to a video accelerator as the RAM’s speed. Faster memory is able to read and write image data faster, so adapter performance is improved. The introduction of specialized video RAM (VRAM) - memory devices with two separate data busses which can be read from and written to simultaneously - is reputed to be superior to conventional dynamic RAM (DRAM) or EDO RAM such as the kind used for ordinary PC memory. Recent advances in DRAM speed have narrowed that gap while still remaining very economical. At this point, adapters with fast DRAM or EDO RAM are just about as fast as adapters with specialized video RAM for video modes up to 1024x768x256. For higher modes and color depths found on high-end accelerators, specialized video RAM is still the way to go for optimum performance.
Video BIOS and drivers - Software is often considered as an after-thought to adapter design, yet it plays a surprisingly important role in accelerator performance. Even the finest accelerator board hardware can bog-down when run with careless, loosely written code. There are two classes of software that you must be concerned with; video BIOS and drivers. The video BIOS is firmware (software that is permanently recorded on a memory device such as a ROM). Video BIOS holds the programming that allows the accelerator to interact with DOS applications software. VESA BIOS extensions are now being used almost universally as part of the video BIOS for many accelerators as well as conventional frame-buffer adapters. By adding VESA BIOS extensions to video BIOS, it eliminates the need to load another device driver under DOS.
However, there are compelling advantages to video drivers. Windows 95 works quite well with drivers (and generally ignores video BIOS entirely). Unlike BIOS ROMs which can never change once programmed, a video driver can change very quickly as bugs are corrected and enhancements are made. The driver can be downloaded from a manufacturer’s BBS or their web site on the Internet (or other on-line information service such as AOL) and installed on your system in a matter of minutes without ever having to disassemble the PC. It is also possible for you to use third-party video drivers. Hardware manufacturers are not always adept at writing efficient software, and a third-party driver developed by an organization that specializes in software may actually let your accelerator perform better than the original driver shipped from the manufacturer.
The RAMDAC - Just about every analog video system in service today is modeled after the 15-pin VGA scheme which uses three separate analog signals to represent the three primary colors. The color for each pixel must be broken down into component red, green, and blue levels, and those levels must be converted into analog equivalents. The conversion from digital values to analog levels is handled by a digital-to-analog converter (or DAC). Each conversion also requires a certain amount of time. Faster DACs are needed to support faster horizontal refresh rates. Remember that each video adapter uses a palette which is a subset of the colors that can possibly be produced. Even though a monitor may be able to produce "unlimited" colors, a VGA board can only produce 256 of those colors in any 256 color mode. Older video boards stored the palette entries in registers, but the large-palette video modes now available (64K colors through 16 million colors) require the use of RAM. Boards that incorporate a RAMDAC (Random Access Memory Digital-to-Analog Converter) are preferred since memory integrated with DACs tends to be much faster than accessing discrete RAM elsewhere on the board. Keep in mind that the RAM on a RAMDAC is used for holding palette information - not for the actual image.
The expansion bus architecture - Finally, graphic data must be transferred between the PC motherboard and the adapter as you saw early in this section. Such transfer takes place across the PC's expansion bus. If data can be transferred between the PC and adapter at a faster rate, video performance should improve. Consequently, the choice of bus architecture has a significant impact on video performance. Video accelerators are available to support three bus architectures; ISA, VL, and PCI.
The venerable Industry Standard Architecture (ISA) has remained virtually unchanged since its introduction with the PC/AT in the early 1980s. The ISA continues to be a mature interface standard for most IBM-compatible expansion devices. The sheer volume of ISA systems currently in service guarantees to keep the ISA on desktops for at least another 10 years. However, ISA’s 16-bit data bus width, its lack of advanced features such as interrupt sharing or bus mastering, and its relatively slow 8.33MHz operating speed form a serious bottleneck to the incredible volume of video data demanded by Windows 95 and most graphics-intensive DOS applications. ISA works - but it is no longer the interface of choice to achieve optimum video performance. When recommending an accelerator product, look to the newer busses for best results.
By the early 1990s, the Video Electronics Standards Association (VESA) had invested a great deal of time and effort to develop a standard bus interface which has been optimized for video operation. In essence, this video bus is "local" to the system CPU which allows faster access without the 8.33MHz limitation imposed by ISA. The actual bus speed is limited by the system clock speed. The VESA Local bus (VL bus or VLB) achieved a remarkable level of industry acceptance and success in boosting video performance - especially when used with a high-quality graphics accelerator board. However, the 32-bit VL bus is generally limited to video systems. Other peripherals such as IDE hard drive controllers have been built for the VL bus, but VL bus limitations frequently interfere with multiple VL cards in the same system (especially with faster motherboards). As a result, existing VL-compatible PCs typically offer only one or two VL expansion slots - the other expansion slots are ISA. There are still some video accelerators manufactured for the VL bus, but virtually all high-performance video boards today are designed for the PCI bus.
Intel’s Peripheral Component Interconnect (PCI) bus is one of the newest and most exciting bus architectures to reach the PC. The PCI bus runs at a fixed frequency of 30 or 33MHz, and offers a full 64-bit data bus which can take advantage of new 64-bit CPUs such as Intel’s Pentium (though most implementations of the PCI bus are designed for a 32-bit implementation). The PCI bus overcomes the speed and functional limitations of ISA, and the PCI architecture is intended to support all types of PC peripherals (not just video boards). Current PCI video boards now clearly out-perform ISA and VL bus type video adapters.
3D graphics accelerator issues
Technically speaking, "3D graphics" is the graphical representation of a scene or object along three axes of reference (height, width, and depth) to make the scene look more realistic. This technique "tricks" the PC user into seeing a 3D image on a flat (a "2D") screen. There has been a dramatic rise in the demand for 3D video from all parts of the PC industry. 3D rendering has proven to be the technique of choice for many types of high-end games, business presentations, computer-aided design, and multimedia applications. However, the use of 3D demands more of a PC than simply passing huge volumes of data across an expansion bus - 3D rendering requires complex mathematical calculations, determinations of coloring, the inclusion of special effects, and conversion of the rendered scene to a 2D plane (the display) - and in many cases, all this must be accomplished in real-time (15+ frames per second). Today, most video systems are upgraded for express purpose of supporting 3D animation (usually in 3D computer games such as Quake II). This part of the chapter examines some of the key factors involved on 3D rendering and acceleration.
The 3D process
To display a 3D object in real-time, an object is first represented as a set of points (or vertices) in a 3D coordinate system (i.e. x, y, and z coordinates). The vertices of the given object (the "object" may be a car, a fighter plane, or a complete 3D world) are stored in system RAM and completely define the object. In order to display this object on the flat 2D monitor, the object must then be rendered.
Rendering is the act of calculating - on a "per pixel" basis - the different color and position information which tricks the viewer into perceiving depth on the 2D screen. Rendering also "fills in" the points on the surface of the object that were previously stored only as a set of vertices. In this way, a solid object can be drawn - even shaded with shadows and fog for 3D effect - can be drawn on the screen. In order to render an object, it is necessary to determine the color and position information. To accomplish this efficiently, the vertices of the object are segmented into triangles, and these triangles (a set of three vertices) are then passed down the "3D processing pipeline" one at a time. The actual steps are shown below:
Key 3D speed issues
Higher frame rates create realism and true-to-life atmosphere in 3D games. Speed is the main factor in providing faster frame rates. If the frame rate of a game is too slow, the game becomes unplayable because the time needed to react to an action in the game will be far too long. Consider playing a flight simulator if the display was only updated once or twice per second. Frame rate is entirely dependent on the speed of a graphics accelerator. The speed of a 3D graphics engine is typically rated in terms of "millions of texels (textured pixels) per second" or Mtexels/sec. It is also frequently rated in polygons (a.k.a. triangles) per second. Current 3D graphics accelerators can provide several million texels per seond.
The speed of a 3D application is dependent on many tasks, but the most daunting tasks are 3D geometry and rendering. Geometry is the calculations used to determine an object’s position and color on the screen. Rendering (as you saw above) is the actual drawing of the object on-screen. A typical graphics accelerator takes the load of the CPU so that the CPU can devote more processing power to other functions. More advanced CPUs (such as the Pentium MMX or Pentium II with MMX technology) incorporate additional instructions which aid many of the calculation-intensive work needed in 3D environments. Three features which most often effect 3D speed are bus mastering, resolution, and color depth.
Bus mastering - With PCI bus master graphics accelerator, a 3D graphics engine will never incur latency (delays) during the rendering process because once the CPU has prepared all of the triangles for rendering, the bus master will come and fetch the list of triangles asynchronously without requiring the CPU to wait. There are two different implementations of bus mastering; the basic bus master, and the scatter gather bus master. A basic bus master is capable of operating independently from the host CPU for short periods of time before it interrupts the host to ask for direction. During data-intensive operations like 3D, this minimizes the advantages of bus mastering. By contrast, a scatter-gather bus master is able to operate almost independently from the host CPU, achieving serious performance benefits.
Resolutions - Because of limitations in operating systems and graphics accelerators, most games and multimedia applications have been developed for low resolutions (such as 320 x 200) to achieve high-performance. Increasing resolution means displaying more pixels on the screen with every frame - which places more demand on the monitor and graphics board. Some applications developed in 320 x 200 can be played at 640 x 400, but the extra pixels are simply a replication of existing ones which makes the image appear "blocky".
With today’s standards in software and fast hardware accelerators, developers can include more unique pixel information in each frame, effectively increasing graphics detail at resolutions as high as 640 x 400 or 800 x 600. This means gamers can play in high resolutions without any performance loss.
Color depth - Using extra colors in 3D games makes the scenes much richer and more life-like. The more colors used in a scene, the more detailed and realistic it looks, but the more calculations are needed to determine the color of each rendered pixel. With the new generation of 3D graphics accelerators, higher color depths are supported without dramatic performance loss, and developers can now use more colors in each scene. For example, developers can now use 16-bit (65K) or 24-bit (16.7M) color instead of the traditional 8-bit (256) color.
Improving 3D performance through hardware
A 3D graphics accelerator improves 3D performance by relieving the host CPU of many of the computation-intensive tasks needed to render a scene. In most cases, these tasks are performed by graphics processors on the 3D video accelerator itself. Today’s 3D graphics accelerators are capable of an astonishing array of features - some of which are highlighted below:
Perspective-correct texture mapping - In real life, objects have details that allow us to recognize them. For example, an object made of wood is granular, while steel is smooth and shimmering. In 3D applications, this detail is called "texture". Applying two-dimensional texture images to 3D objects or scenes make them appear more realistic. In the real world, our perspective relative to an object changes as our position changes. For example, when you are walking along the side of a house, the house will have a different perspective which each step. In order to create this experience in a 3D application, texture maps must be "corrected" to fit the changing perspective. If the texture mapping is not perspective-correct, the image will be visually incorrect and filled with artifacts from previous frames. While older 3D graphics accelerators only provided non-perspective correct texture mapping in hardware, many of the newest 3D graphics engines offer perspective correct textures at full rendering speed.
Lighting - For greater realism in a scene, lighting is applied to objects to accentuate curves or create ambiance (such as shadows). Lighting effects are limited in software (otherwise this degrades the frame rate). A key advantage of performing hardware-based 3D rendering is the ability to apply lighting effects to polygons while maintaining full rendering speed.
Texture transparency - The technique of texture transparency is similar to "chroma-keying" in video. This technique draws one image on top of another - while appearing to fit there naturally. Mapping complicated objects in a 3D scene (such as trees) is a challenge for the software developer. They must be able to map the tree on a transparent polygon so that the background of the scene will be shown through the "branches". Objects like trees may not be essential, but they significantly improve the overall realism of a scene. Without texture transparency, these objects are typically left out or simplified. New 3D graphics chips support texture transparency in hardware, allowing developers to add a higher level of detail while maintaining graphics performance.
Hardware z-buffering - The use of a "z-buffer" (or "depth buffer") is necessary when two objects are intersecting each other. The z-buffer determines which portions of the intersecting objects are visible. However, many software developers do not use a z-buffer for all objects in the scene. This is because the z-buffer takes up space in the off-screen memory which could be used instead to store extra source textures for greater detail. For this reason, many 3D graphics chips provide an optional z-buffer allowing the developer to decide whether to use the off-screen memory for z-buffering or texture storage. If a game using a z-buffer (such as Quake II) is played on a graphics accelerator which does not allow for a hardware z-buffer, the game will not run - or will run at very low frame rates - since all z-buffering will need to be done in software.
Palletized textures - Storing source textures of 3D games in off-screen memory is very taxing on the graphics frame buffer. Each time a new scene is created, all of its source textures need to be loaded in off-screen memory for use by the graphics chip. Memory available to store textures is limited because a 3D game accelerator generally has about 2MB of memory. This restricts the number of textures, effectively reducing the detail and quality of the scene. To compensate for this, developers can use a method of palletized textures which assigns a Color Look-Up Table (or CLUT) to each texture in the scene. This technique allows the developer to use a smaller amount of colors for each texture instead of the normal 16-bit color values (65K colors). This smaller color format (CLUT) requires less memory space than the true 65K colors, which means more colors can be saved in memory to add detail to a scene.
However, most older 3D graphics accelerators do not support palletized textures, which means the information can only be stored in full 16-bit color format in the frame buffer, utilizing all of the available off-screen memory. In that case, the extra textures will have to be stored and retrieved from system memory, resulting in a serious hit on performance. Alternately, textures can to be dropped from the scene by the graphics accelerator in order to maintain performance. Newer 3D graphics accelerators do provide full hardware support for palletized textures, and allows developers to create very detailed scenes with two to four times as many textures. This gives 3D applications a significant performance boost, because the applications do not rely on the speed of the system to convert the information to 16-bit colors.
Texture mapping methods - Texture mapping is a data-intensive operation - a bitmap is wrapped onto a 3D object or polygon to add more visual details (thus enhancing realism). The original bitmap used as the texture to be mapped is also called the "source texture". There are several ways to map textures onto a 3D object with perspective correction:
Fogging - In order to maintain high performance, developers created "tricks" to reduce the amount of rendering needed for a scene. One of these tricks is called fogging. It is mostly used in landscape scenes such as flight simulators. Fogging allows the developer to "hide" the background of a scene behind a layer of "fog" - mixing the textures’ color values with a monochrome color such as white. Some newer 3D graphics chips support fogging in hardware.
Alpha-Blending - Blending is a visual effect that mixes two textures on the same object. Different levels of blending can be implemented to create visual effects. The simplest method is called "screen door" or "stippling". Only some pixels making up the object are rendered to produce a "see-through" effect. For example, the developer would decide that an object would be 50% transparent. The graphics accelerator would then draw the background image, and then write only every second pixel of the object. This approach is easy to implement in hardware and delivers a reasonable quality at a low cost. By contrast, true alpha blending is a data-intensive operation, which involves reading the values of two source textures and performing the perspective calculations on both textures simultaneously. This effect is very taxing on performance and costly to implement, and only high-end 3D graphics cards use true alpha-blending in hardware.
Gouraud shading - Gouraud shading (or smooth shading) draws smooth shadows across the face of an object. This causes the viewer’s eyes to perceive depth and curvature information from the surface of the object. Gouraud shading works by reading the color information at the three vertices of a triangle and interpolating the intensities in red, green and blue smoothly between the three vertices. Gouraud shading is the most popular algorithm used to draw 3D objects on a 2D screen. Most objects can be rendered with amazing realism in 3D by using Gouraud shading, and this feature is often available in 3d graphics accelerator hardware.
Double-buffering - Everyone has seen the old animation trick of drawing a cartoon character on the corner of a page of paper, and altering the drawing slightly on following pages of paper. When the sheaf of paper is complete and the pages flipped rapidly, the cartoon character appears to move smoothly. Double-buffered 3D animation on the PC works in the same way - the next position of the character is being drawn before the page is flipped. Viewing 3D animation without double buffering would be like looking at the animated cartoon if the character were being redrawn with every flip of the page (the animation would appear to "flicker").
Double-buffering requires having two areas reserved on the frame buffer of the 3D graphics card. Both regions need to be the size of the visible screen, and one buffer is used to render the next frame of the animation while the other displays the previously rendered animation frame on the monitor. Under Windows, double-buffering requires the use of Bit-blitting to copy the animation from buffer to buffer.
Color dithering - The number of colors that can be drawn to the visible screen depends on the number of bits-per-pixel that carry color information. For instance, with 8 bits per pixel of color information, only 256 colors can exist on the desktop at any one time. Color dithering is the process of mixing these defined colors into small patterns to produce a wider spectrum of color without requiring extra video memory. This is especially important in 3D since techniques such as Gouraud shading require many shades of each color used in each scene. If dithering were not handled in hardware, a 3D scene could only contain eight different main colors in 256-color mode (since each color would require 32 shades to be programmed into the color lookup table to roughly approximate Gouraud shading). With hardware support for color dithering, a scene with many more colors may be rendered without requiring extra video RAM.
Understanding DirectX
When Windows first emerged as a major operating system, its focus was primarily on file management and utilities. High-performance graphics and other forms of multimedia were barely even dreamed of. This made it very difficult for Windows to support graphics-intensive applications such as games, PC-TV, or MPEG video (and is largely the reason why DOS support continues to be an important issue on PC platforms). Developers realized that for Windows to finally become independent of DOS, a means of supporting high-performance multimedia functions would be required - and DirectX technology was born. With Windows 95, DirectX has emerged as a key element in graphics, sound, and interaction for multimedia. This part of the chapter offers a basic overview of DirectX and its components.
Pieces of a puzzle
Contrary to popular belief, DirectX is not one single piece of software. Instead, DirectX is actually a comprehensive collection of Windows 95 APIs (Application Programming Interfaces) which provide a standardized set of features for graphics, sound, input devices, multi-player interaction, and application setup. DirectX software is categorized into three layers; a foundation layer, a media layer, and a components layer.
Foundation - The "foundation" layer forms the heart and soul of DirectX. It is a set of low-level APIs that are the basis for all high-performance multimedia under Windows 95. DirectX foundation APIs provide direct access to hardware acceleration such as 3D graphics acceleration chips (in effect, allowing Windows 95 to "talk" directly to hardware). The foundation layer uses the following APIs:
Media - The DirectX "media" layer consists of application-level APIs that take advantage of the system-level services provided by the DirectX foundation. The media-level services are device independent and include features such as animation, behaviors, and video streaming. The DirectX media layer includes five APIs:
Components - The "components" layer makes up the top level of the DirectX hierarchy. These are a group of application-specific modules that can draw on all features available in the media and foundation layers. DirectX components include NetMeeting (an on-line white-board for real-time group collaboration), ActiveMovie (a set of tools for rendering full-screen MPEG video and supporting playback of a wide range of audio and video formats), and Netshow (enabling live broadcast of rich multimedia content over the Internet, along with the compelling 3D worlds of VRML).
More on DirectDraw
Most Windows programs access "drawing surfaces" indirectly through Win32 device context functions such as GetDC. The application then writes indirectly to the device through the graphics device interface (or GDI) system. The GDI is the Windows component that provides an abstraction layer that enables all standard Windows applications to draw to the screen. The disadvantage of GDI is that it was not designed for high-performance graphics software. It was made to be used by business applications like word processors and spreadsheet applications. The GDI provides access to a video buffer in system memory (not video memory) and does not take advantage of special features that some video cards provide. As a result, GDI is great for most types of business software, but is far too slow for multimedia or game software.
DirectDraw circumvents this limitation by providing drawing surfaces that represent actual video memory. This means that with DirectDraw, an application can write directly to the memory on the video card - making your graphics routines extremely fast. Surfaces are represented as contiguous blocks of memory, making it easy to perform addressing within them. DirectDraw also supports hardware accelerated functions like bit-blitting and overlays. DirectDraw works with a wide variety of display hardware. It is designed so that applications can determine the capabilities of the underlying display hardware, and then use any supported hardware-accelerated features. Any features which are not supported in hardware can then be emulated in software.
In actual practice, DirectDraw is not a high-level graphics API that draws graphics "primitives" like lines and rectangles. Instead, DirectDraw is a low-level API that operates at the graphics "surface" level - providing the essential support for higher-level 2D and 3D graphics APIs which DO draw and render.
More on DirectSound
DirectSound is the audio component of DirectX. DirectSound enables hardware and software sound mixing, capture, and effects like 3D positioning and panning. In operation, DirectSound is essentially a sound mixing engine - the application places a set of sounds in buffers (called secondary buffers). DirectSound then combines these sounds and writes them into a primary buffer which holds the sound that the listener actually hears. DirectSound automatically creates a primary buffer which typically resides in memory on the sound card itself. The application creates the secondary buffers either in system memory or directly on the sound card. DirectSound supports pulse-code modulation (PCM) sound data, but does not currently support compressed wave formats. DirectSound does not include functions for parsing a sound file (it is the responsibility of the developer to stream data in the correct format into the secondary sound buffers).
The DirectSound mixing engine does not simply mix several sounds together. It can also apply effects to a sound as it is written from a secondary buffer into the primary buffer. Although these effects are audible using standard loudspeakers, they are more obvious and compelling when the user wears headphones. Basic effects are volume/frequency control and panning (changing the relative volume between the left and right audio channels), but DirectSound can also simulate 3D positional effects through the following techniques:
More on DirectInput
DirectInput provides high-performance access to input devices including the mouse, keyboard, joystick, and the new force-feedback (input/output) devices that are arriving in the market. DirectInput offers generalized device interfaces which support a much wider range of input and output devices than the standard Win32 API functions. DirectInput works directly with device drivers - bypassing the Windows message system. This results in faster and more responsive access to input devices. DirectInput also supports "force feedback" devices. Force feedback devices "respond" to an application with physical effects, such as kick-back (when a trigger is fired), vibration, and resistance. Force feedback devices make many game and entertainment experiences much more realistic and engaging. DirectInput also supports the Universal Serial Bus for access to USB input devices.
More on Direct3D
Direct3D is a drawing interface for 3D hardware. Using DirectDraw as a base, Direct3D actually draws and renders the 3D scenes. You can use Direct3D in either immediate mode or retained mode. The Direct3D "immediate mode" was developed as a low-level 3D API, and is ideal for developers who need to port games and other high-performance multimedia applications to the Microsoft Windows operating system. It is a device-independent way for applications to communicate with accelerator hardware at a low level. By contrast, "retained mode" is a high-level 3D application programmer interface (API) for programmers who require rapid development, or who want the support for hierarchies and animations. Direct3D retained mode is built "on top" of immediate mode. The 3 components of the Direct3D device are; the transform (formulas describing how to convert a coordinate in 3D space into 2D display coordinates), the state variables (defining the styles for drawing operations), and the draw engine which actually generate the object.
More on DirectPlay
Applications (especially games) can be more compelling if they can be played against real players, and the PC provides a versatile platform for connections over networks or the Internet. Instead of forcing the developer to deal with the differences that each connection scheme represents, DirectPlay provides well-defined, generalized communication capabilities. DirectPlay is a software interface that simplifies an application’s access to communication services.
A DirectPlay "session" is a communications channel between several machines. Before an application can start communicating with other machines, it must "join a session". An application can do this in two ways; it can identify all the existing sessions on a network and join one of them, or it can create a new session and wait for other machines to join it. Once the application has joined a session, it can create a player and exchange messages with all the other players in the session. Each session has one machine that is designated as the host. The host is the owner of the session and is the only machine that can change the properties of the session.
The most essential entity within a DirectPlay session is a player. A "player" represents a logical object within the session that can send and receive messages. DirectPlay does not have any representation of a physical machine in the session. Each player is identified as being either a local player (one that exists on your machine) or a remote player (one that exists on another machine), and each machine must have at least one local player before it can start sending and receiving messages. DirectPlay supports the concepts of groups within a session. A "group" is logical collection of players. By creating a group of players, an application can send a single message to the group and all the players in the group will receive a copy of the message.
Determining the installed version of DirectX
Since DirectX is a collection of APIs, each application that uses DirectX is written to use a particular version of DirectX - the application NEEDS the correct version of DirectX components installed under Windows 95. Otherwise, the application will not work. In most cases, DirectX is backward compatible, so an application written for DirectX 3.x should work on a system with DirectX 5.x installed. But an application written for DirectX 5.x won’t work on a system with DirectX 3.x. As a technician, you’ll need to spot DirectX version issues. You can use the following procedure to check the current version of DirectX installed on a given system:
NOTE: DirectX versions 3 and 3a use the same version of the Ddraw.dll file. To determine whether you are using version 3 or 3a of DirectX, use the procedure above to check the version of the D3drgbxf.dll file:
NOTE: If the Ddraw.dll file does not exist in the Windows\System folder, DirectX is probably not installed on your computer.
Video feature connectors
In most cases, a video adapter is a single, self-contained piece of PC hardware. However, there are some video add-on devices which require access to video signals or the video adapter hardware. A typical example of this may be a 3D graphics accelerator board which works in conjunction with the existing video adapter. In order to access video signals or the video adapter hardware, the video adapter provides a Video Feature Connector (or VFC) similar to the 26-pin card edge connector shown in Fig. 49-9 (though many video adapters now use an IDC "ribbon" cable header). The pinout for a "classical" 26-pin VFC is shown in Table 49-3.
AMI multimedia channel
In addition to the "classical" VFC found on many video boards, some current motherboards are incorporating advanced feature connectors to complement the on-board video system. American Megatrends (AMI) provides an AMI Multimedia Channel VFC (or AMI/VFC) on some of its motherboards. These connectors are designed to maximize multimedia performance with the motherboard’s video system, and a connector is available for connecting multimedia building components (such as MPEG or video capture modules) to the system board. Multiple protocols are supported through the same connector as follows:
Standard VFC mode - This VESA-compliant video feature connector interface synchronizes graphics output, and lets pass-through signals from a video add-in board use the motherboard’s video circuits. Table 49-4 lists the pinout for a 40-pin AMI/VFC in the "standard" mode. Note the similarities between the first thirteen pins of the "classical" VFC and the standard AMI VFC.
DVS mode - In digital video stream (DVS) mode, the interface is configured as a synchronous input port - this allows the graphics controllers to be directly connected to certain video decoders through the VFC interface. Some video decoders may require additional logic to encode the synchronization information within the data stream. In DVS mode, the AMI/VFC consists of three independent signal groups; an 8-bit data bus, a two-wire serial bus, and an audio interface. The pinout for a 40-pin AMI/VFC in the "DVS" mode is shown in Table 49-5.
MDP/MPP mode - The MPEG data port (MDP) and multimedia peripheral port (MPP) modes are mutually exclusive of each other - the support for a particular mode is determined by the revision of the graphics controller in use. MPP provides a direct connection to an MPEG decoder. It adds an additional multiplexed address/data bus (which can be used to connect a range of third party devices like MPEG2 decoders or audio processors). This bus uses ISA type control and either an 8-bit or 16-bit protocol. The fully programmable control signals allow it to interface to a variety of devices with minimal external logic. Table 49-6 illustrates the pinout for an AMI/VFC in MDP mode, while Table 49-7 shows the pinout for an AMI/VFC in the MPP mode.
Troubleshooting video adapters
A PC video system consists of four parts; the host PC itself, the video adapter/accelerator, the monitor, and the software (video BIOS and drivers). To deal with a failure in the video system, you must be able to isolate the problem to one of these four areas. When isolating the problem, your best tool is a working (or testbed) PC. With an other PC, you can systematically exchange hardware to verify each element of the video system.
Companion CD: The companion CD provides several tools for helping to troubleshoot video issues and return video BIOS information. Try ATMEM10.ZIP, IS_VID.EXE, or PSV10.ZIP.
Isolating the problem area
The first step is to verify the monitor by testing it on a known-good working PC. Keep in mind that the monitor must be compatible with the video adapter on which it is being tested. If the monitor works on another PC, the fault lies in one of the three remaining areas. If the monitor fails on a known-good machine, try the known-good monitor on the questionable machine. If the known-good monitor then works on your questionable machine, you can be certain that the fault lies in your monitor, and you can refer to the appropriate chapter here for detailed troubleshooting if you wish. If the monitor checks out, suspect the video adapter. Follow the same process to check the video adapter. Try the suspect video adapter on a known-good PC. If the problem follows the video adapter, you can replace the video adapter. If the suspect video adapter works in a known-good system, the adapter is probably good. Replace the adapter in the suspect machine, but try another expansion slot and make sure that the monitor cable is attached securely.
If both the monitor and the video adapter work in a known-good PC, but the video problem persists in the original machine, suspect a problem with the PC motherboard. Try the working video adapter in another expansion slot. Either the expansion slot is faulty, or a fault has occurred on the motherboard. Run some PC diagnostics if you have some available. Diagnostics may help to pinpoint motherboard problems. You may then choose to troubleshoot the motherboard further or replace the motherboard outright at your discretion.
When the video system appears to work properly during system initialization but fails with a particular application (or in Windows/Windows 95), strongly suspect a problem with the selected video driver. Since almost all video adapters support VGA at the hardware level, set your application (or change the Windows setup) to run in standard VGA mode (for Windows 95, you can start the PC in the "Safe Mode"). If the display functions properly at that point, you can be confident that the problem is driver related. Check with the manufacturer to see that you have the latest video driver available. Reload the driver from its original disk (or a new disk) or select a new driver. If the problem persists in VGA mode, the trouble may be in the video adapter. Problem isolation can be summarized with the points below:
Unusual hardware issues
A lot of emphasis is placed on drivers and software configurations, but there are also quite a few unique hardware problems that can effect your video system. Some of the most frequent oversights are outlined in the following sections.
Clock speed and the VL bus
Video boards that use the VL bus are very sensitive to motherboard clock speeds over 40MHz. If your motherboard runs the VL bus at over 40MHz, it’s quite possible that you will have trouble with VL bus video boards. The VESA specification states that one card can operate at 40MHz, or two can operate at up to 33MHz (a best-case scenario). Some manufacturers don’t even guarantee that their cards will run at 40MHz - preferring to support bus speeds of 33MHz or less. So if your VL bus video board is running at over 40MHz, and it refuses to run properly, your best option is usually to step your bus speed down. Bus speeds can usually be controlled by a motherboard jumper, or an entry in CMOS. If you cannot change bus speed for any reason, try a different brand of VL card.
NOTE: Version 2.0 of the VESA VL-Bus specification did add support for a 50MHz bus speed. Unfortunately, VESA VL bus 2.0 is one of a few VESA specs which went largely ignored by video manufacturers. Just because the VL bus 2.0 specification exists, do not assume that any VL bus motherboard will be compatible.
"SLC" motherboards and the VL bus
If you have an older motherboard using an i486SLC-type CPU, some VL bus video boards will not operate properly when used with that particular motherboard. This is because the 32-bit VL bus was not implemented properly in conjunction with the 16-bit data path of the i486SLC - this is a problem with the motherboard’s design, not the particular video boards. Later-model motherboards with the i486SLC CPU largely overcame this problem, but take care when using any VL bus video board on i486SLC motherboards. Chances are that an older ISA video board will work just fine.
8514/a and COM4 conflicts
The 8514/a video adapter was designed to coexist with a VGA adapter. To achieve this, the 8514/a uses a different range of addresses. Some of these are 16-bit addresses which are located at 42E8h, 82E8h, 92E8h, A2E8h, and E2E8h. Unfortunately, many serial controllers only decode the first 12-bits of the I/O port address, and assume that calls to x2E8h (like all of those listed above) are intended for the serial port (i.e. 2E8h) rather than the video card. This means that COM4 cannot be used on most machines with an 8514/a compatible video card unless the address of COM4 can be changed on the serial card (usually via jumpers), or the serial controller decodes all 16-bits of the I/O port addresses. There is no other way to get COM4 and any 8514/a compatible display adapter to coexist. Keep in mind that this is an issue with the serial controller rather than the 8514/a video adapter.
ATI Mach, S3 Vision/Trio, and COM4 conflicts
As you saw in the last section, 8514/a video adapters will often conflict with COM4 because of poor I/O address decoding. ATI’s Mach chipsets and S3’s chipsets are based on IBM’s 8514/a standard, and frequently suffer the same problems as the 8514/a video adapters.
Award video BIOS glitch
Motherboards using the Award Modular BIOS 4.50G series with Matrox video cards may have problems loading drivers under Windows 95. This is because the 4.50G series of Award BIOS is not Plug-and-Play compliant, and cannot work under Windows 95. Upgrade the BIOS version on the motherboard to fix this problem, and set the following CMOS configuration under the PCI Configuration Setup:
Symptoms
Symptom 49-1. The computer is on, but there is no display. The PC seems to initialize properly. If you hear a series of beeps during system initialization, refer to Chapter 19 to determine the error. Make sure that the monitor is turned on and plugged into the video adapter properly. Also check that the monitor's brightness and contrast controls are turned up enough (it sounds silly, but it really does happen). Try the monitor on a known-good PC. If the monitor works properly, suspect the video adapter. Power down the PC and make sure the video adapter is seated properly in its expansion slot. If any of the board contacts are dirty or corroded, clean the contacts by rubbing them with an eraser. You can also use any electronics-grade contact cleaner. You may want to try the video board in another expansion slot.
Chances are that the video adapter has at least one hardware jumper or DIP switch setting. Contact the manufacturer or refer to the owner’s manual for the board and check that any jumpers or DIP switch settings on the board are configured properly. If this is a new installation, check the adapter board settings against the configuration of other expansion boards in the system. When the hardware settings of one board overlap the settings of another, a hardware conflict can result. When you suspect a conflict, adjust the settings of the video adapter (or another newly installed device) to eliminate the conflict. There may also be a memory conflict. Some video adapters make unusual demands of upper system memory (the area between 640KB and 1MB). It is possible that an EXCLUDE switch must be added to the EMM386.EXE entry in a CONFIG.SYS file. Check with the adapter's instruction manual to see if there are any memory configuration changes or optimizations that are required.
Symptom 49-2. There is no display, and you hear a series of beeps when the PC initializes. The video adapter failed to initialize during the system’s POST. Since the video adapter is not responding, it is impossible to display information - that is why a series of beeps are used. Bear in mind that the actual beep sequence may vary from system to system depending on the type of BIOS being used. You can probably find the beep code for your BIOS in Chapter 19. In actual practice, there may be several reasons why the video adapter fails. Power down the PC and check that the video adapter is installed properly and securely in an expansion slot. Make sure that the video adapter is not touching any exposed wiring or any other expansion board.
Isolate the video adapter by trying another adapter in the system. If the display works properly with another adapter installed, check the original adapter to see that all settings and jumpers are correct. If the problem persists, the original adapter is probably defective and should be replaced. If a new adapter fails to resolve the problem, there may be a fault elsewhere on the motherboard. Install a POST board in the PC and allow the system to initialize. Each step of the initialization procedure corresponds to a two-digit hexadecimal code shown on the POST card indicators. The last code to be displayed is the point at which the failure occurred. POST cards are handy for checking the motherboard when a low-level fault has occurred. If a motherboard fault is detected, you may troubleshoot the motherboard or replace it outright at your discretion.
Symptom 49-3. You see large blank bands at the top and bottom of the display in some screen modes, but not in others. Multi-frequency and multi-mode monitors sometimes behave this way. This is not necessarily a defect, but it can cause some confusion unless you understand what is going on. When screen resolution changes, the overall number of pixels being displayed also changes. Ideally, a multi-frequency monitor should detect the mode change and adjust the vertical screen size to compensate (a feature called auto-sizing). However, not all multi-frequency monitors have this feature. When video modes change, you are left to adjust the vertical size manually. Of course, if there is information missing from the display, there may be a serious problem with VRAM or the adapter’s graphics controller IC. In this event, try another video adapter board.
Symptom 49-4. The display image rolls. Vertical synchronization is not keeping the image steady (horizontal sync may also be effected). This problem is typical of a monitor that can not display a particular screen mode. Mode incompatibility is most common with fixed-frequency monitors, but can also appear in multi-frequency monitors that are being pushed beyond their specifications. The best course of action here is to simply re-configure your software to use a compatible video mode (or reduce the vertical refresh rate). If that is an unsatisfactory solution, you will have to upgrade to a monitor that will support the desired video mode.
If the monitor and video board are compatible, there is a synchronization problem. Try the monitor on a known-good PC. If the monitor also fails on a known-good PC, try the known-good monitor on original PC. If the known-good monitor works on the suspect PC, the sync circuits in your original monitor have almost certainly failed. If the suspect monitor works on a known-good PC, the trouble is likely in the original video adapter. Try replacing the video adapter.
Symptom 49-5. An error message appears on system startup indicating an invalid system configuration. The system CMOS backup battery has probably failed, and the video type may have defaulted to "EGA" or "MCA" instead of "VGA" - resulting in the error. This is typically a symptom that occurs in older systems. If you enter your system setup (either through a BIOS routine or through a disk-based setup utility) and examine each entry, you will probably find that all entries have returned to a default setting - including the video system setting. Your best course is to replace the CMOS backup battery and enter each configuration setting again (hopefully you have recorded each setting on paper already, or saved the CMOS contents to floppy disk using a CMOS backup utility). Once new settings are entered and saved, the system should operate properly. If the CMOS still will not retain system configuration information, the CMOS RAM itself is probably defective. Use a software diagnostic to check the RTC/CMOS IC (and the rest of the motherboard) thoroughly. If a motherboard fault is detected, you can troubleshoot the motherboard or replace it outright at your discretion.
Symptom 49-6. Garbage appears on the screen or the system hangs up. There are a variety of reasons why the display may be distorted. One potential problem is a monitor mismatch. Check the video adapter jumpers and DIP switch settings and be sure that the video board will support the type of monitor you are using. It is possible that the video mode being used is not supported by your monitor (the display may also roll as described in Symptom 49-4). Try re-configuring your application software to use a compatible video mode. The problem should disappear. If that is an unsatisfactory solution, you will have to upgrade to a monitor that will support the desired video mode.
Some older multi-frequency monitors are unable to switch video modes without being turned off, then turned on again. When such monitors experience a change in video mode, they will respond by displaying a distorted image until the monitor is reset. If you have an older monitor, try turning it off, wait several minutes, then turn it on again.
Conflicts between device drivers and terminate-and-stay-resident (TSR) programs will upset the display, and are particularly effective at crashing the computer. The most effective way to check for conflicts is to create a backup copy of your system startup files CONFIG.SYS and AUTOEXEC.BAT. From the root directory (or directory that contains your startup files), type:
copy autoexec.bat autoexec.xyz
copy config.sys config.xyz
The extensions "xyz" suggest that you use any three letters, but avoid using "bak" since many ASCII text editors create backup file with this extension.
Now that you have backup files, go ahead and use an ASCII text editor (such as the text editor included with DOS) to REM-out each driver or TSR command line. Reboot the computer. If the problem disappears, use the ASCII text editor to re-enable one REMed-out command at a time. Reboot and check the system after each command line is re-enabled. When the problem occurs again, the last command you re-enabled is the cause of the conflict. Check that command line carefully. There may be command line switches that you can add to the startup file that will load the driver or TSR without causing a conflict. Otherwise, you would be wise to leave the offending command line REMed-out. If you encounter serious trouble in editing the startup files, you can simply re-copy the backup files to the working file names and start again.
Video drivers also play a big part in Windows. If your display problems are occurring in Windows, make sure that you have loaded the proper video driver, and that the driver is compatible with the video board being used. If problems persist in Windows, load the standard generic VGA driver. The generic VGA driver should function properly with virtually every video board and VGA (or SVGA) monitor available. If the problem disappears when using the generic driver setup, the original driver is incorrect, corrupt, or obsolete. Contact the driver manufacturer to obtain a copy of the latest driver version. If the problem persists, the video adapter board may be defective or incompatible with Windows. Try another video adapter.
Symptom 49-7. When returning to Windows from a DOS application, the Windows screen "splits" from top-to-bottom. This is a DOS problem that is seen under Windows which indicates an obsolete or corrupted video driver (for example, using a Windows 3.0 video driver under Windows 3.1) - chances are that the video adapter is running just fine. Make sure that the proper DOS "grabber" file is installed and specified in the SYSTEM.INI file. Check with the video board manufacturer to obtain the latest assortment of drivers and grabber files. Try re-installing the drivers from their master disk. If you do not have current drivers available, try switching to the generic VGA driver.
Symptom 49-8. The system hangs up during initialization, some characters may be missing from the display, or the screen colors may be incorrect. These are classic symptoms of a hardware conflict between the video adapter and one or more cards in the system, or an area of memory. Some video boards use an area of upper memory that is larger than the "classical" video area. For example, the Impact SVGA board imposes itself on the entire address range between A0000h and DFFFFh. In this kind of situation, any other device using an address in this range will conflict with the video board. A conflict may occur when the video board is first installed, or the board may work fine until another device is added or modified.
Resolving a hardware conflict basically means that something has to give - one of the conflicting elements (i.e. IRQ lines, DMA channels, or I/O addresses) must be adjusted to use unique system resources. As a technician, it rarely matters which of the conflicting devices you change, but remember that system startup files, device drivers, and application settings may also have to change to reflect newly-selected resources. You may also be able to resolve some memory conflicts by adding the EXCLUDE switch to EMM386.EXE. The video adapter manual will indicate when an EXCLUDE switch is necessary.
Symptom 49-9. Your system is generating DMA errors with a VGA board in the system, and video BIOS shadowing disabled. This is a fairly rare symptom that develops only on some older i486 systems, and is usually due to an 8 bit VGA board in a system equipped with a slower version of the i486 CPU (in the 25MHz range). 8 bit access takes so long that some DMA requests are ignored - thus an error is generated. If you find such a problem, try enabling video ROM shadowing through the CMOS setup to allow faster access to video instructions. Also, you may try a newer revision of the i486 CPU.
Symptom 49-10. The system hangs up using a 16-bit VGA board, and one or more 8-bit controllers. This is typically a problem that arises when 8-bit and 16-bit ISA boards are used in the same system. Due to the way that an ISA bus separates the 8-bit and 16-bit segments, accessing an 8 bit board when there are 16 bit boards in the system may cause the CPU to (falsely) determine that it is accessing a 16-bit board. When this occurs, the system will almost invariably crash. Try removing any 8-bit boards from the system. If the crashes cease, you have probably nailed down the error. Unfortunately, the only real correction is to either remove the 8-bit board(s), or reconfigure the board(s) to use a higher area of memory.
Symptom 49-11. You have trouble sizing or positioning the display, or you see error messages such as "Mode Not Supported" or "Insufficient Memory". These kinds of errors may occur in newer or high-end video boards if the board is not set up properly for the monitor it is being used with. Most new video boards include an installation routine which records the monitor’s maximum specifications such as resolution (and refresh frequencies), horizontal scanning frequencies, and vertical scanning frequencies. If such data is entered incorrectly (or the monitor is changed) certain screen modes may no longer work properly. Check the video adapter's installation parameters and correct its setup if necessary.
Symptom 49-12. You frequently encounter GPFs when using QuickTime for Windows 1.1. This is a notable problem with ATI Mach64 cards, but has been known to occur with other advanced video boards. Often, the problem can be corrected by making a change in the Windows SYSTEM.INI file. For the ATI Mach64, you must turn DeviceBitmaps=off under the [macx] section. As an alternative, start the ATI FlexDesk, type OPT (this starts a "hidden" window), then uncheck the DeviceBitmap entry.
Symptom 49-13. The video board will not boot up when used in a particular motherboard. Generally speaking, there are noted cases of hardware incompatibility between certain video boards and motherboards. This usually causes a great deal of confusion because the video board may work just fine when tested in a different motherboard, and other video boards may work well in the original motherboard - the technician simply winds up chasing ghosts. A noted example of this problem is the Boca Research VGAXL1/2 refusing to work in a Micronics 486DX2/66 motherboard. The solution to this problem demands that U13 on the video board be a Texas Instruments TI-74F04. If U13 is a Motorola IC, you will need to send the board back for rework - strange but true. For general troubleshooting purposes, if a certain video board and motherboard refuse to work together, don’t waste your time chasing ghosts - contact both the video board maker and PC (or motherboard) maker, and see if there are any reports of incompatibilities.
Symptom 49-14. Diagnostics refuse to show all of the available video modes for a particular board even though all video RAM was properly detected, or the board refuses to operate in some video modes. When a video board does not respond to certain video modes (usually the higher video modes), it is because there is a conflict in the upper memory area, and a memory range needs to be excluded. If there is a memory manager at work (i.e. QEMM, 386MAX, or EMM386), try disabling the memory manager in CONFIG.SYS, or boot the system from a clean floppy. Try your diagnostic(s) again - chances are that the problem has disappeared. To fix this problem on a more permanent basis, re-enable the memory manager using an exclude command. Try x=B100h-B1FFh as the first parameter on the memory manager’s command line. If that does not work, try x=A000h-BFFFh. Finally, try x=A000h-C7FF.
Symptom 49-15. The characters shown in the display appear fuzzy. This is often the result of a speed problem where the system is running too fast for the VL bus video board. In virtually all cases, you will find the VL bus to be running over 33MHz. Try slowing down the VL bus speed. This will sacrifice video performance, but should stabilize the system. Chances are also very good that the system has been locking up frequently - slowing down the video board should also correct such lock-ups.
Symptom 49-16. Pixels appear "dropped" behind the mouse cursor, and graphic images appear to break up under Windows. There are two major causes for this type of problem; bad video RAM, or the system bus speed is too fast. Check the CMOS Setup for an entry in Advanced Setup such as "AT Bus Clock", "ISA Bus Speed", "AT Bus Speed". The corresponding entry should be set to 8.33MHz. Otherwise, excessive speed may be resulting in "lost" video data. If the bus speed is set properly, run a diagnostic to check the integrity of video RAM (you may have to replace the video RAM, or replace the video board entirely).
Symptom 49-17. You encounter video-related conflicts in Packard Bell systems. The system refuses to boot, or starts with "garbage" and erratic screen displays. This symptom is encountered most frequently with Boca video boards on Packard Bell systems with video circuits already on the motherboard. Even when the on-board video has been disabled, reports indicate that the video circuitry remains active, and then conflicts with the add-on video board. Packard Bell indicates that their Vxxx.16 BIOS will correct this problem, so contact Packard Bell for an appropriate BIOS upgrade.
Symptom 49-18. Text appears in an odd color. For example, text that should be green appears black. This is almost always the result of a problem with the palette decoding registers on the particular video board, and will typically appear when using higher color modes (i.e. 64k or 16M colors). Make sure that the video drivers are correct, complete, and up-to-date. If the problem persists, you may need to replace the video board outright.
Symptom 49-19. When an application is started (under Windows), the opening display appears "scrambled". While this might appear to be a video memory problem at first glance, it is actually more likely to be related to a buggy video driver. Upgrade the video driver to the latest version, or try a generic video driver that is compatible with your video chipset.
Symptom 49-20. The display colors change when exiting from a DOS shell under Windows. This problem has been noted with video boards such as the Diamond SpeedStar Pro, and is almost always the result of a video board defect (usually a palette problem). For the Diamond board, the product must be replaced with revision A2. For other video boards, such problems can usually be corrected by replacing the video board outright.
Symptom 49-21. The computer locks up or crashes when starting an .AVI file. This problem is encountered frequently as computer users first begin to try multimedia applications. Rather than being a problem with the video board specifically, the trouble is often from using an outdated version of Video for Windows. Make sure to use Video for Windows 1.1E or later. Video for Windows can be downloaded from the Diamond Multimedia FTP site at; ftp://ftp.diamondmm.com/pub/misc/vfw11e.exe. You may also need to edit the [DrawDib] section of the WIN.INI file and add an entry that says; DVA=0. If no [DrawDib] section is present, you can add it. Remember to restart Windows after making any changes.
Symptom 49-22. The computer is running very slowly (poor performance), and the hard drive light is continuously lit. This problem is particularly apparent with Diamond Edge 3D video boards on systems with more than 16MB of RAM. The Diamond Edge 3D board comes with both 1MB and 6MB MIDI bank files. Diamond recommends that you use only the 6MB bank file on systems with over 16MB of RAM. To change the size of the MIDI bank file being used, right-click on My Computer and choose Properties. Open the System Control Panel and click on the Device Manager tab. Click on the (+) symbol beside the Sound, Video, and Game Controller line, then highlight the Diamond EDGE 3D PCI Multimedia Device, and click on Properties. Click on Settings. You will then see the 1MB and 6MB MIDI bank selection. Select the 6MB option and choose OK. Restart your computer when prompted.
Symptom 49-23. You notice that .AVI files have distorted colors or "grainy" playback. This usually occurs when playing 8-bit .AVI files which are not supported by DCI, and can usually be corrected by disabling the accelerated video playback features of the video board. For example, the Diamond ViperPro Video board is noted for this problem, and you would need to edit the COPRO.INI file located in the \windows directory. In the [VCP] area, change the VCPEnable= line to OFF. Save the .INI file and restart Windows.
Symptom 49-24. The PCI video board will not work under Windows unless the system’s PCI SCSI devices are disconnected. This type of problem occurs only on certain combinations of PCI system hardware. For example, this type of symptom has been documented using Phoenix BIOS 4.04 and a UMC8810P-AIO motherboard on systems with an NCR SCSI controller and SCSI devices. You can often correct such problems by correcting the Advanced System Setup in CMOS. Start the CMOS Setup, go to the Advanced System Setup, and select PCI Devices. Setup the PCI slot for the SCSI controller as IRQ9 and LEVEL edge select. The slot for the video board should have the IRQ set to NONE, and LEVEL edge select. Change the Base Memory Address from 0080000000 to 0081000000.
Symptom 49-25. There are boot problems when a new video board is installed. Typical problems include no video or 8 beeps when the system is turned on. This is usually the result of an outdated system BIOS which is not capable of detecting the particular video chipset in use - the BIOS interprets this as meaning that there is no video board in the system, and an error is generated accordingly. Contact the motherboard manufacturer (or PC maker) for an updated system BIOS. Most BIOS versions dated after the Fall of 1994 should be able to detect most modern video chipsets.
Symptom 49-26. There are boot problems when a PCI video board is installed. There are two common problems that account for this. First, the system BIOS did not complete the configuration of the video board correctly, and the board has not been enabled onto the PCI bus. The video board manufacturer may have a utility available which can "remap" the video card to a new address outside of physical memory. For the Matrox Millennium, use the PCIMAP.EXE utility. Other Matrox boards use the MGABASE.EXE utility. Other PCI video board manufacturers probably offer their own utilities. The second problem is that the system BIOS has assigned a base memory address to the video board which is used by another device, or is reserved for use by the motherboard chipset. While the utilities mentioned above may often help to correct this problem, a more permanent fix is usually to update the system BIOS. Investigate a BIOS upgrade from the motherboard (or PC) manufacturer.
Symptom 49-27. The monitor overscans when entering a DOS shell from Windows. This creates a highly distorted image, and can (if left for prolonged periods) damage the monitor circuitry. The cause of this problem is usually a bug in the video driver. For example, this type of problem is known to happen when using the Diamond SpeedStar Pro with drivers prior to version 1.06. Obtain the latest video driver from the video board maker, or try a generic video driver written by the video chipset maker.
Symptom 49-28. You encounter an intermittent "Divide by Zero" error. Although there are several possible causes for this type of error, they are all related to flaws in software - in this case, problems with the video driver or video "toolkit" that is installed with the particular video board. Often, upgrading the driver or video support tools will eliminate this problem. For example, "Divide by Zero" errors can be corrected with the Diamond Stealth 64 Video 2001 series by opening the InControl Tools package, and changing a "Center to Viewport" selection to "Center to Desktop". Similarly, the "Maximize to Viewport" selection should be changed to "Maximize to Desktop".
Symptom 49-29. During MPEG playback, the display flickers, shows low refresh rates, or appears to be in an interlaced mode. This is not necessarily an error. With some video boards (such as the Diamond MVP1100), MPEG files cannot play correctly at high refresh rates - typically over 72Hz. When an MPEG file is played, the driver will automatically switch to a 72Hz vertical refresh rate. This may result in an unexpected change to display quality during playback. After exiting from the MPEG player, the original (higher) refresh rate will be restored. If a vertical refresh rate lower than 72Hz was originally selected, then the vertical refresh rate will not change during MPEG playback, so you should see no difference in the display.
Symptom 49-30. You receive an error such as "There is an undetectable problem in loading the specified device driver" when starting an MPEG player or other video tool. In almost all cases, the related driver is missing, installed improperly, or corrupt. Reinstall the MPEG playback driver(s) for your particular video board, and make sure to use the latest version. If problems persist, check for the driver under the WIN.INI or SYSTEM.INI file and see that there is only ONE load= reference to the particular driver(s) - repeated references can cause conflicts or other loading problems.
Symptom 49-31. On video boards with TV tuners, the TV window is blurry or fuzzy at 1024x768 or higher resolutions. This symptom is particularly noted with the Diamond DVV1100. Unfortunately, this type of symptom is usually the result of limited bandwidth of the particular video board - specifically of the video chipset. The only real option is to reduce the resolution to 800x600 or 640x480 when running the TV, and lower the refresh rate to 60Hz. Contact your video board’s manufacturer - there may be an RMA or other replacement/upgrade program that might be available to correct the issue.
Symptom 49-32. On video boards with TV tuners, the reception does not appear as good as that of an ordinary TV. This problem has been noted in conjunction with Matrox Media-TV boards, and is usually due to the local cable company using the HRC carrier frequency instead of the standard carrier frequency. For Matrox boards, you can correct the problem by modifying the DVMCIMIL.INI file found in the \WINDOWS directory. Under the [Carrier] section, change the CarrierType=0 entry to CarrierType=1. Other video/TV boards may utilize different .INI entries, or allow carrier selection through the use of an onboard jumper, but poor reception is almost always the result of an unusual cable carrier.
Symptom 49-33. You encounter errors such as "Insufficient video memory". There is not enough video memory on the board to handle screen images at the resolution and color depth you have selected. In most cases, the system may crash outright. Your immediate solution should be to select a lower resolution or smaller color palette. If you are encountering such problems when attempting to play .AVI or MPEG files, you should be able to select smaller video windows and lower color depth without altering your Windows setup. As a more long-term solution, you should consider adding more video memory, or replacing the video board with one that contains more video memory.
Symptom 49-34. The PCI video board is not working properly - there is a BIOS conflict with PCI interrupt 1Ah. The lower 32KB of the ROM BIOS has been redirected for high memory use. Disable this memory with your memory manager by adding an exclude command such as; x=f000-f7ff.
Symptom 49-35. You encounter video corruption or sporadic system rebooting when using an SLC-type motherboard. This particular symptom has been most noted when using Number Nine video boards with Alaris SLC2 motherboards. The SLC2 microprocessor uses a 32-bit internal data bus, but the external data bus (seen by the motherboard) is 16-bit. Most of the registers on contemporary VL and PCI video boards are mapped as 32-bits, and cannot be accessed as two 16-bit registers. As a result, the video board simply cannot be used together with the particular motherboard. You will have to upgrade the motherboard, or use a different video board.
Symptom 49-36. Video playback experiences long pauses while the hard drive thrashes excessively. This is a problem that appears under Windows 95, and is almost always the result of disk caching problems. Start Windows Explorer and highlight the drivers responsible for video playback (for a Motion Pixels video board, highlight MPXPLAY.EXE and MPXPLAY.PIF). Click the right mouse button and select Properties. In the Memory page, make sure that the "Protected" option has been set. Restart the video clip, or restart Windows 95 if necessary.
Symptom 49-37. You cannot use the loop-through feature of your video board. Typical examples include the Number Nine 9FX Motion 771 VGA loop through connector with a Reel Magic board and a Number Nine driver. Unfortunately, this is often the result of a limitation with the video board’s graphics processor IC (refusing to support loop-through functionality). To use loop-through, try the standard VGA driver.
Symptom 49-38. Windows appears with a "black box" cursor and/or icons that fail to appear on the screen. In most cases, the problem is caused by an incompatibility with the motherboard’s non-compliant PCI BIOS (the motherboard’s BIOS does not comply with the PCI backward-compatibility requirement). To overcome this problem, set the video board’s memory aperture manually by editing the SYSTEM.INI file located in the \WINDOWS directory. For example, when working with a Number Nine 9GXE, find the [#9GXE] section of SYSTEM.INI, then add a command line such as; APERTURE-BASE=0x8800 or APERTURE-BASE=31. Save the file and restart Windows. The actual section for your particular video board may be different.
Symptom 49-39. There are video problems or the system locks up while using an anti-virus program. This error occurs frequently when using memory-resident virus checking. Some video boards allow you to compensate for this by editing the SYSTEM.INI file. For the Number Nine 9GXE board, find the [#9GXE] area in SYSTEM.INI, then set the FastMMIO= entry to OFF. Remember to save the .INI file and restart Windows. The actual section for your particular video board may be different. As an alternative, you could also disable or remove the anti-virus program.
Symptom 49-40. An error indicates that there is not enough memory for playback or re-sizing of the playback window. This type of program is directly caused by a lack of system (not video) memory in the PC. If your system uses SMARTDRV (Windows 3.1x), try reducing the memory used for caching. Try unloading various unneeded programs from memory, and consider disabling any RAM drives that may be active. Finally, consider adding more system RAM to the PC.
Symptom 49-41. The video board refuses to accept a particular video mode. Mode problems are most frequent when attempting to use unusual palette sizes such as 32k or 64k colors. Try setting the video board to 256 colors. If a higher color depth is needed, it may be possible to run the video board in a palletized mode or gray-scale mode by adding command line switches to the video driver. Refer to the instructions that accompany the particular video board for detailed information. You may also consider a video BIOS upgrade, or try using an upgraded VESA driver (such as UNIVBE 5.3 from SciTech Software).
Symptom 49-42. The video system cannot lock memory using QEMM and linear video memory. This is often a DOS problem with Motion Pixels video boards when using QEMM 7.04 and earlier versions. The DPMI has a bug when accessing physical memory above the DPMI’s host memory. Upgrade the version of QEMM to 7.5 (or later), or play video under Windows instead.
Symptom 49-43. The video system cannot lock memory under Windows, or the system hangs. This is also a problem noted most often with Motion Pixels video boards, and is almost always related to the use of a WINDPMI.386 DPMI driver loaded through SYSTEM.INI. WINDPMI.386 reports the wrong amount of free lockable DPMI memory. If your Windows platform is using Borland’s WINDPMI.386, manually reduce the cache size with the /c option, or remove (or disable) the driver from SYSTEM.INI entirely. You might also consider upgrading WINDPMI.386 to a later version. Contact Borland technical support, or the technical support department of the video board maker.
Symptom 49-44. Other devices don’t work properly after the PCI video card is installed. For example, the sound card output is distorted, or a fast modem loses data. This can happen often with newer video adapters. Some computers require that software wait for the hardware to be ready to receive new data. Newer video board drivers are not normally set do this because it slows them down slightly (and it’s not necessary for most current computers). Under Windows 95, right-click on the Windows 95 desktop background. Click the Properties menu item, select the video board’s Settings tab. Select the Advanced button, then click the Performance tab. Clear the "Use automatic PCI bus retry" check box. Finally, accept your changes and reboot the computer when instructed to do so. Under Windows 3.1x, edit the SYSTEM.INI file in your \Windows directory to add the line PciChipSet=1 to the particular video board’s section (i.e. [mga.drv]).
Symptom 49-45. A Windows 95 game doesn’t start or runs slower than normal. The program uses the Microsoft DirectX interface. DirectX may not be installed, or an older version of DirectX is installed. Most programs that use DirectX install it as part of their installation, but some do not. Also, some older programs may install an earlier version of DirectX (overwriting a later version). To see if DirectX is installed:
If the current version of DirectX is installed, you’re finished. Otherwise, you’ll need to install DirectX:
NOTE: If the DirectX setup program asks if you want to replace the existing display drivers, click No.
Further Study
That concludes the material for Chapter 49. Be sure to review the glossary and chapter questions on the accompanying CD. If you have access to the Internet, take a look at some of the video adapter resources listed below:
ATI: http://www.atitech.ca
Data Expert: http://www.dataexpert.com
Diamond Multimedia: http://www.diamondmm.com
Genoa: http://www.genoasys.com
Hercules: http://www.hercules.com
Matrox: http://www.matrox.com
Number Nine: http://www.nine.com
Oak: http://www.oaktech.com
Orchid: http://www.orchid.com
STB: http://www.stb.com
Trident: http://www.trid.com
Video Logic: http://www.videologic.com
Chapter: 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 |
| Reserve your copy at a Beta Bookstore near you! |
Contact Bet@books © 1998 The McGraw-Hill Companies, Inc. All rights reserved. Any use of this Beta Book is subject to the rules stated in the Terms of Use. |