You are not logged in. You can browse in the PowerBASIC Community, but you must click Login (top right) before you can post. If this is your first visit, check out the FAQ or Sign Up.
In short, you can't. In DOS the video card's vram maps into a standard, well-known memory space. If you put two video cards in a DOS machine and tried to initialize both of them, you'd have them both fighting for the same video memory. You can, however, mix an old MDA graphics adapter with VGA or any color graphics vidoe card, since MDA used a different memory range. There used to be add-ins for Lotus 1-2-3 that would allow you to display a graph on the color screen while displaying the spreadsheet on the monochrome display.
Michael is right, but be aware if you want to try this that the VGA
video card bus must be PCI, not AGP. At least, I've never found an
AGP card that doesn't grab the traditional monochrome video memory
space and preclude using a mono card.
I still use a monochrome/vga combo daily. If anybody needs to know
where to find new mono cards and monitors, I can hook you up
PCI cards are required to have relocatable I/O and memory ranges, the exact value of which is set by the operating system when the cards are initialised.
The fixed areas of RAM used by CGA or VGA or any other graphic card standard were set for single card ISA systems. PCI systems can map the video card into the same areas for compatibility but they can also be mapped anywhere else you choose. Just look at the address of your current video card under Windows (Mine is at address E0000000 as well as A0000)
I can't think of any reason why 2 active cards could not be mapped into different places in memory and then be accessed by DOS. The out-of-place card would need special handling, since DOS doesn't expect a video card to be anywhere but the standard location, so you'd need to access it directly and not via DOS or BIOS calls, but this extra work is to be expected if you're adding something unknown to the DOS system.
WRT dual PCI cards, presumably a VGA card presents itself at the default location at power-up?
Therefore, trying to 'move' a card involves writing to it, telling it to relocate. Surely this would relocate both cards, as they occupy the same address at power-up?
Unless there is some clever stuff going on I don't know about.
My oroginal thoughs were to carry-out a hardware mod to an ISA VGA card to physically move its address space...
David,
<<presumably a VGA card presents itself at the default location at power-up?>>
I think it's the first graphic card to be found is given the standard address by the BIOS. Other cards are not. If there is AGP present then there is usually a BIOS option to set the AGP as default over the first PCI card found.
<<as they occupy the same address at power-up?>>
The configuration space of a PCI card is reserved for that purpose an is not part of the video memory.
<<a hardware mod to an ISA VGA card to physically move its address space>>
What sort of display are you after? Just 2 standard text DOS screens? Or do you want graphics?
I did this many years ago using a VGA card and a CGA mono card, which has a different
base address, as I remember C000 and C8000, and used it to get debugging info in PDS7.1 code.
David,
We were able to do this with Borlands debugger, also. I also had one
that had the source style "TB" in it, that was never released,
but I could run turbo debugger in the mono mode and the program
into the color card. That physical combo and program are long gone.
------------------
[This message has been edited by Barry Erick (edited September 18, 2005).]
Technically, this problem could be dealt with by a device driver
designed to work under DOS, if one exists. There was a special
video card promising high resolution graphics that we had in some
old 286 machines, which required special drivers because they did
not use "standard" video memory. The idea was to sell us a
monitoring program that could only run on their hardware, so that
they could sell the whole system.
Along in that time frame, we had new 386's with VGA cards, and I
wrote a program to display some time referenced measurements onto
the VGA screen using QuickBASIC. I had to write a detailed report
showing the results, which countered intuitive arguements that a
customer guru was making, and had to write a program to use a
little plotter printer for the purpose. I had to map out the
way VGA memory was being used, then construct a top-down graphical
conversion to drive the little plotter printer. it took me
a little while and a bit of experimentation, but it proved to be
easier than I expected. Of course I could just ignore the color
values, since it was a black and white plotter.
As stated, Mono and CGA used different memory address ranges for
the screen buffer. VGA had to mimic either or both, but it also
had to add new video display modes, so it overtook what had gone
before. DOS really only understood Mono and CGA, but you could
program additional Screen modes that gave you a range of options
in that environment. But the problem was, that at higher
resolutions, such as screen 12, you were very limited on the
colors that could be used. With windows, we moved on to SVGA,
XVGA, and some other proprietary formats. By using suitable
drivers for each video card, Windows is able to make use of them
in a standard set of configurations.
Again, it is all in the device drivers themselves, and what
operating systems that they work with. You have to match up
video card, operating system, and driver. Monitors can be another
limiting factor, based on their operational factors, but that is
usually not a problem anymore, although old video cards and new
monitors may not be compatable due to some interface changes,
such as converting from one form of analog signalling to a
digital format, then on to another form of analog signalling that
gives higher color information.
Probably as clear as mud, but it tends to show that striving to
remain in a pure DOS environment in the face of changes that go
hand in hand with other operating systems can really limit your
options.
------------------
Old Navy Chief, Systems Engineer, Systems Analyst, now semi-retired
We process personal data about users of our site, through the use of cookies and other technologies, to deliver our services, and to analyze site activity. For additional details, refer to our Privacy Policy.
By clicking "I AGREE" below, you agree to our Privacy Policy and our personal data processing and cookie practices as described therein. You also acknowledge that this forum may be hosted outside your country and you consent to the collection, storage, and processing of your data in the country where this forum is hosted.
Comment