Path: utzoo!news-server.csri.toronto.edu!rutgers!mit-eddie!uw-beaver!milton!sumax!quick!amc-gw!jwbirdsa From: jwbirdsa@amc-gw.amc.com (James Birdsall) Newsgroups: comp.os.msdos.programmer Subject: Re: Dual Monitor Switching Message-ID: <6150@amc-gw.amc.com> Date: 13 Mar 91 00:30:06 GMT References: <1991Mar11.172914.4450@engin.umich.edu> <18203@milton.u.washington.edu> <1991Mar12.140842.63@cbnewsh.att.com> Reply-To: jwbirdsa@europa.amc.com (James Birdsall) Distribution: na Organization: Applied Microsystems, Redmond, WA Lines: 67 In article <1991Mar12.140842.63@cbnewsh.att.com> rkl@cbnewsh.att.com (kevin.laux) writes: >In article <18203@milton.u.washington.edu>, roger@wrq.com (Roger Fulton) writes: >> In addition to setting the video mode, >> you need to also update the equipment flag at 0040:0010 >> appropriately: xx10xxxx for color, xx11xxxx for mono >> (where 'x' means leave it alone). Also, you should account >> for the fact that color systems have a different maximum >> cursor line count than mono systems (so you should save and >> restore the cursor when changing video modes). > > Yes, there is but this is not it! Those bits in the equipment flag word >are for the *INITIAL* video mode. Changing those bits will *not* effect a >display adapter switch. Sorry. Setting the BIOS equipment flag is the correct way to start. THEN you have to do a video mode switch to an appropriate mode. This is a known technique that works on a wide variety of machines that I have tried. >As I answered in alt.msdos.programmer, what's missing >is Int 10h, Function 12h, Subfunction 35h: > > AH: 12h > BL: 35h > AL: 0 Initial external adapter off > 1 Initial VGA on > 2 Active adapter off > 3 Inactive adapter on > ES: Segment of Switch State area > DX: Offset of Switch State area > > The first time display adapters are switched call the subfunction with >AL=0, then again with AL=1. Thereafter, double calls with AL=2,3 are used. >The Switch State area is a 128 byte buffer and each display needs its own. This, on the other hand, is just plain wrong. I quote: "Switch Active Display "Allows selection of one of two video adapters in the system, when memory usage or port addresses conflict between the two adapters. "Notes: "This subfunction cannot be used unless both video adapters have a disable capability (Int 10H Function 12H Subfunction 32H). 'If there is no conflict between the system board video and the adapter board video in memory or port usage, both video controllers can be active simultaneously and this subfunction is not required." Ray Duncan, Programmer's Quick Reference Series, _IBM ROM BIOS_. A Hercules board does not have its own ROM, depending on the motherboard BIOS to support it. Since this function only appeared with the advent of VGA, the Hercules board does not have a disable function. Furthermore, there is no memory or port conflict between the two boards. At a hardware level, it is possible to access both simultaneously without difficulty. However, to use them via the BIOS or DOS, it is necessary to switch between them using the technique outlined at the top of this article. -- 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 ===========