🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.os.msdos.programmer
Article #5223

Re: Dual Monitor Switching

#5223
From: James Birdsall
Date: Fri, 15 Mar 1991 01:19
47 lines
3480 bytes
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 ===========
Technical Details
Message-ID: <6204@amc-gw.amc.com>
Path: arc1-ca.pugleaf.net!utzoo!news-server.csri.toronto.edu!cs.utexas.edu!wuarchive!mit-eddie!uw-beaver!milton!sumax!ole!thebes!amc-gw!jwbirdsa
References: <1991Mar11.172914.4450@engin.umich.edu> <6150@amc-gw.amc.com> <1991Mar13.145206.4281@cbnewsh.att.com>

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!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