Path: utzoo!news-server.csri.toronto.edu!cs.utexas.edu!wuarchive!mit-eddie!uw-beaver!milton!sumax!ole!thebes!amc-gw!jwbirdsa From: jwbirdsa@amc-gw.amc.com (James Birdsall) Newsgroups: comp.os.msdos.programmer Subject: Re: Dual Monitor Switching Message-ID: <6204@amc-gw.amc.com> Date: 15 Mar 91 01:19:21 GMT References: <1991Mar11.172914.4450@engin.umich.edu> <6150@amc-gw.amc.com> <1991Mar13.145206.4281@cbnewsh.att.com> Reply-To: jwbirdsa@europa.amc.com (James Birdsall) Distribution: na Organization: Applied Microsystems, Redmond, WA Lines: 47 In article <1991Mar13.145206.4281@cbnewsh.att.com> rkl@cbnewsh.att.com (kevin.laux) writes: > Ok, I stand corrected and agree about using Switch Active Display >with a Hercules/VGA combination. What you're saying is, start with changing >the Equipment word and then to access the Hercules, switch to Video Mode 07. >Wouldn't you also have to setup bit 3 at 40:87H and bit 6 at 40:89 >(bit 3, 0 = VGA active, 1 = inactive; bit 6, 0 = display switch disabled, >1 = enabled)? Or does the Mode switch take care of this? Only if the color system is an EGA or better. [40:87H] exists for EGA and up; [40:89H] is only with VGA and MCGA. The information in the BIOS data area does not control anything directly -- it is mostly a scratchpad. Video system information is kept because on most adapters (everything but MCGA and VGA) the hardware registers cannot be read, so the BIOS must keep its own copy. And then there is information that is only meaningful to the BIOS, such as the video mode number. The hardware doesn't know anything about modes; the mode number is an index into a table of actual hardware register values that the BIOS uses for convenience. What we are doing when we switch displays is playing with the BIOS's head. The following is speculation, but conforms with the observed behavior of the BIOS. First, we change the equipment flag to indicate a mono setup. This has no effect until the next call to the video BIOS. This next call is to change to mode 7. Mode 7 is a monochrome mode; the equipment flag indicates mono hardware. Fine. So the BIOS happily sets the CRTC base address [40:63] to 3B4h, writes the appropriate values to the mono CRTC's registers, and lo, the mono screen is active. The BIOS is no longer even aware that there *is* a color setup. Actually, some parts of the BIOS are multiple-monitor aware. For example, there is one call (func 1Ah, which returns information on the active video configuration and the inactive video, if there is such). But all these calls are only in the VGA and PS/2 BIOSes (BIOSi? BIi? :)). The original set of calls, which included the mode change, were not aware of multiple monitors and hence the later implementations are not either -- at least in any way that would infringe on backward compatibility. The VGA BIOS in my Compaq 386/20e does in fact toggle the VGA active/inactive bit. The switch enable/disable bit is permanently disabled, presumably because there is only one video setup in the system which has this capacity, which renders it meaningless. -- James W. Birdsall WORK: jwbirdsa@amc.com {uunet,uw-coco}!amc-gw!jwbirdsa HOME: {uunet,uw-coco}!amc-gw!picarefy!jwbirdsa OTHER: 71261.1731@compuserve.com ================== Kitten: a small homicidal muffin on legs. ================== =========== "For it is the doom of men that they forget." -- Merlin ===========