VOGONS


First post, by Kahenraz

User metadata
Rank l33t
Rank
l33t

I want to output output information to a secondary monochrome display for debugging purposes in DOS. I've found references of this being possible by mixing Monochrome and CGA/EGA graphics boards but I can't find any information on whether this is possible with a VGA card and how to go about doing so.

Here is an video of what I am trying to accomplish:

https://www.youtube.com/watch?v=4zugZGBPTSA&t=45s

From what I understand, you can't have multiple VGA cards in the same computer because their BIOSes will conflict and you end up with only one card producing a display. This is the same issue when pairing AGP and PCI. But what happens if I add a monochrome display board? And are there any PCI cards that supported being switched into monochrome for this purpose?

I don't have any monochrome ISA cards to test. Do they simply "just work" when paired with a VGA card or do I need a specific card and software to enable the display output?

And lastly, will monochrome output work on a regular VGA LCD panel?

Reply 1 of 3, by BitWrangler

User metadata
Rank l33t++
Rank
l33t++

Long time since I did it, but you need a genuine text only mono, or hercules compatible, or multi card of EGA/CGA/MDA variety that actually turns off it's color BIOS properly when set to mono, don't be thinking a card that does mono CGA output will do it either. These will be ISA and I think exclusively 8 bit ISA. Then that will co-exist with any VGA. Now to get output, you have to reassign console with DOS commands, or have a programming util that supports it, I think borland's stuff did. Also works to have Win 3.x on the VGA and a text console, forgot details. Mono output needs a CRT mono monitor.

However, sometime around mid pentium era, plug and play BIOSes and Win98SE got smart enough to reallocate resources such that two PCI cards or AGP and PCI could co-exist in a system, provided the PCI card let it's resources be managed (i.e. older ones might not work, as a general clue, if it's only got 1MB on it it has more chance of being older) Then also you've got to run compatible screen mode and color depth on each card in 98, so your max is only what your secondary card will manage (presuming you have a slightly better one as main). A caveat is that many drivers didn't support two cards of the same chipset, exceptions might be "pro" cards like Matroxes, so you have to run two different cards... this might have got fixed for cards released after 99 or so. However, when I did this, I had a number of cards to choose from, I believe I ended up using a Voodoo3 2000 and a Trident TGUI9680 together, but it was a couple of decades back. But this all works in windows or linux but I've no idea about DOS for this configuration.

Edit: I'm having a vague suspicion that what happens in the 2 PCI case is that the BIOS on the secondary is disabled maybe, leading to no predefined DOS modes available, and it only knows what the windows driver tells it to do.

Unicorn herding operations are proceeding, but all the totes of hens teeth and barrels of rocking horse poop give them plenty of hiding spots.

Reply 2 of 3, by weedeewee

User metadata
Rank l33t
Rank
l33t

VGA and MDA use different memory addresses.
A0000 for VG A and B0000 or B8000 for MDA if memory serves me.
writing to those addresses in the correct fashion, for text mode MDA one byte is the text to display, the next byte is the attribute, following byte text, next attribute etc... (again if memory serves me) text mode 80x25 = 2000 bytes text and 2000 bytes attributes. (attributes being bright, blink, ...)
for the vga, it's the same in text mode, but the attribute is the color that gets displayed.

If you're using windows or desqview, you can just open another window/session and switch to the mda monitor in dos by typing mode mono, I think.

It's been a while... about 20yrs

edit: you could do the same thing with multiple pci&agp cards but there the bios starts to become annoying. yes you could remove the bios, but then you will have to set each card up (usualy done by an appropriate driver) to the correct video mode, text or graphics) and write your data directly to the memory address of each card. going from the assumption that each card should have gotten different addresses and the addresses can be found by some pci magic I know not enough about. 😀

Right to repair is fundamental. You own it, you're allowed to fix it.
How To Ask Questions The Smart Way
Do not ask Why !
https://www.vogonswiki.com/index.php/Serial_port

Reply 3 of 3, by BitWrangler

User metadata
Rank l33t++
Rank
l33t++

More info for win98..
http://www.helpwithwindows.com/windows98/multi-monitor.html
and this is the now dead KB link in there.
https://www.betaarchive.com/wiki/index.php/Mi … _Archive/179602

Unicorn herding operations are proceeding, but all the totes of hens teeth and barrels of rocking horse poop give them plenty of hiding spots.