[comp.sys.ibm.pc.hardware] Two of everything

fargo@iear.arts.rpi.edu (Irwin M. Fargo) (01/17/91)

I'm sure the following topics have been brought up before, but I'd
like to discuss them in the same message for hopes of finding some thread
that connects them together and might help explain things.

I'd appreciate all replies by e-mail and I'll summarize to the net.  But
feel free to respond to the net if you deem it really important.

What I'd really like to know is what the whole deal is with having multiple
adapters of the same (or similar) type in an IBM PC or compatible.

Whenever I try to put two of the same type of adapter in my system, it ends
up being a horrendous mess and I just go back to using one adapter.

I'd like to start with serial and parallel adapters first as they seem the
simplest thing to deal with.

Most reasonable "I/O" cards that are available these days have jumpers
galore to set the base address for registers in the I/O address space, the
IRQ lines used, etc.  Because of this plethora of configuration modes, it
isn't all that hard to set up 4 serial ports, or even 8 ports--although
you'd need a special card.  My one major qualm is most I/O boards that I have
seen have no support for the upper eight IRQ lines on an AT.  Although I
remember reading somewhere that IRQ2 on an AT is actually wired to IRQ9 (ie.
IRQ2 on the slave interrupt controller) and to IRQ2 on a PC.

Then of course there are "intelligent" I/O cards.  Unfortunately, I've really
never dealts with those, so I can't make any reasonable comments.

The next type of adapter that needs hacking to work in multiples is display
adapters.

I know that an EGA and a MDA, with DIP switches set correctly, will function
together.  I got this working beautifully on my '286 -- even under Xenix!
Will this same combo work if the MDA is actually a Hercules card?  If I
understand it, the Hercules emulates a CGA.  An EGA-CGA combo is supposed 
to work, although I've never tried this.

But, EGA is old news: we now have VGA.  Most VGA cards these days are register
compatible with the EGA, CGA, and MDA modes, and can be set up to be in one
of those modes.  So will the above EGA-MDA and EGA-CGA combos work if a VGA 
is substituted for the EGA?

With VGA, are other combos allowed?  I've heard very contradictory information
on this part.  Obviously, the main problem with multiple display adapters is
memory addressing conflicts.  Does the presence of a VGA BIOS alter this any?
I've heard rumor of some cards with no accessible memory on the bus, all
video must be done with video BIOS calls.  This sounds quite unlikely for
the run-of-the-mill PC-based video adapter.  I've heard of cards that are
specifically designed for multiple monitors, but these sound like kludges
to me.

My last topic of multiple things is drive controllers.

In my mind, this seems to be the hardest to accomplish as I've really never
found much documentation about how to perform this.

Does each controller need its own address space in the I/O map?  I was trying
to get an RLL controller and an MFM controller working in my machine.  I
had a wild theory (which came to nought) that the drive controllers would
act as if all drives units were on one controller.  For example, my RLL
drive is DS1 on the RLL controller and the MFM drive is DS2 on the MFM
controller.  Instead of saying, "I want this byte from drive 0 on controller
0", I was thinking, "I want this byte from drive 0" and assume that the
drive ID's were unique amongst all the controllers.  I'm probably way off
on this, but it was a theory, and I tried it.

Do I need a special controller in order to use multiple drive controllers?
My roommate has a Western Digital SCSI host adapter.  The WD SCSI card is
supposed to be "transparent" to the presence of MFM or RLL controllers.  By
this, I mean that one can just drop an MFM card in, for instance, and have
it work without reconfiguring anything other than your CMOS.

Any information on any of the above topics would be greatly appreciated.
I'm basically your junior year college student who's done a lot of tinkering
with PC's.  I also read the manuals that come with my equipment and have
found most of them to be designed for morons (no offense to any morons out
there :).  I don't mind lengthy explanations, I never know if there was 
something I missed or not.  I would ask that you try and be as specific as 
possible.  I'm just one of those people that needs things spelled out clearly.

Also, feel free to give me info on specific adapters.  I like to keep track
of all the neat and strange things out there.

Thank you in advance.

Thank you and happy hunting!		Actually: Ethan M. Young
"If Linus looked like Worf, would you	Internet: fargo@iear.arts.rpi.edu
 try to take his blanket away?"		Bitnet (??): usergac0@rpitsmts.bitnet
	- dorsai@pawl.rpi.edu		Disclaimer: Who said what?

fargo@iear.arts.rpi.edu (Irwin M. Fargo) (01/23/91)

I'd like to thank all those who replied to my original post.  The information
cleared up a number of things.

Before I start the summary, I'd like to ask where I can find some good
references on maps of the PC (preferrably 286 and 386 AT machines) I/O
address space, interrupt table, and memory address space.  I have a few
books here and there that give tidbits of info about this stuff, but they
don't go into a lot of depth and even present some contradictory info.

I remember that when comp.sys.ibm.pc was around, someone used to post a
list of all interrupts for the PC.  If someone could point me in that di-
rection, I'd really appreciate it.

Onto the summary!

Having multiple serial/parallel I/O cards depends on the cards you buy.  Some
cards have jumper settings for many different IRQ's and base I/O addresses
while some don't.  Basically, you have to be careful about what cards to in-
vest in.  Ironically, most cards that can be set up for anything other than
COM1 and COM2 with any ease are the cheap $50 cards you can get at a local
computer convention.  Intelligent cards are best if you're running software
like UNIX which allow for multiple user to be attached on multiple serial
lines (a Xenix MICNET for example).

Video adaptors:

This subject turned out to be simpler than I expected (which disappointed me
a little).

The only combinations allowable using standard video adaptors is 1 monochrome
display and 1 color display.

This doesn't mean a MDA-CGA combo only.  It means that any two display 
adaptors will work with each other as long as one is configured for monochrome 
modes only (modes which use memory from B000:0000 to B7FF:000F) and the other 
is configured for color modes only (modes which use anything other than
B0000:0000 to B7FF:000F).  But, don't expect two EGA or two VGA adaptors
configured as above to work because both use special video BIOS routines that
may reside at the same memory locations (usually C000 to C7FF).

Also, Hercules cards will work in conjunction with a color card as long as
the Hercules card is configured to use the first 32 KB of memory; restricting
it to monochrome text mode since Hercules graphics requires both 32 KB pages
of memory.

Special video adaptors do exist that support multiple displays.  All I can
say is that you'd have to shop around.

Disk controllers:

The word is no.  Standard disk controllers, which includes most MFM (ST-506),
RLL, ESDI, and some SCSI, will not operate in multiples unless they're de-
signed to.

Western Digital's 7000FASST2 SCSI host adaptor can be configured as a second-
ary controller.  I also believe that Western Digital's WD1003A MFM controller
can be configured as a secondary controller as well.

Well, I hope all this info is helpful.  I also hope I didn't goof up any of
the information I got.

Any corrections, comments, additional info, or comments are greatly appre-
ciated.

Thanks.

Thank you and happy hunting!		Actually: Ethan M. Young
"If Linus looked like Worf, would you	Internet: fargo@iear.arts.rpi.edu
 try to take his blanket away?"		Bitnet (??): usergac0@rpitsmts.bitnet
	- dorsai@pawl.rpi.edu		Disclaimer: Who said what?