Path: utzoo!utgpu!news-server.csri.toronto.edu!bonnie.concordia.ca!thunder.mcrcim.mcgill.edu!snorkelwacker.mit.edu!usc!zaphod.mps.ohio-state.edu!pacific.mps.ohio-state.edu!linac!midway!gargoyle!igloo!infopls!andyross From: andyross@infopls.chi.il.us (Andrew Rossmann) Newsgroups: comp.sys.ibm.pc.hardware Subject: Re: Dual monitors Message-ID: Date: 17 Feb 91 22:00:04 GMT References: <26870@uflorida.cis.ufl.EDU> Organization: INFOPLUS support, Wheeling, IL Lines: 73 jdb@reef.cis.ufl.edu (Brian K. W. Hook) writes: > It seems that we never reached a conclusion whether or not a 16-bit VGA > card will be throttled down to 8-bit by having an MGA card plugged in > also, thus, if you reply, please answer the following questions: > > 1. How fast does the 16-bit VGA transfer information normally? > 2. If a 16-bit VGA is throttled down to 8-bit, would a 16-bit MGA > help things? > 3. If it would, how hard would it be for EE friend of mine to > construct a 16-bit MGA? Here is some text taken from 'Prgrammers Guide to the EGA and VGA cards - Second Edition' by Richard F. Ferraro. (pages 614-615). 13.2.6 16-bit Memory Transers Designing a 16-bit interface for memroy transfers is not trivial on the AT bus. The PC bus was designed by IBM. Once it was carved in stone there was no turning back. There is a problem with the latched and unlatched address bus on the AT. These two address buses are passed to the adapters through the AT connectors. When 16-bit memory accesses are desired, a tri-stated line called MEM16 must be pulled low by the adapter, indicating to the host processor that a 16-bit transfer is desired. The host has to do some fancy footwork to determine whether it should output two 8-bit bytes on data lines 0-7 or one 16-bit word on data lines 0-15. In order to have enough time, the AT bus requires that the MEM16 line be asserted shortly after the address lines settle. The address lines are used by the adaptor to determine whether it should respond at all to the bus address. Thus, it has to be decoded by the adaptor. Consider the following example. The VGA display memory resides at address A0000-B000 hex in the PC memory address space. The host wants to read a word from the VGA at address A1000. It exerts the address A1000 on the bus and waits for a bit. During this time, all devices on the memory bus have to look at the address, A1000, to determine if they should respond. In this case, the VGA address decoder would detect that A1000 resides between A000 and AFFFF and so gears itself up. It still does not know if the host wants to read or write. SInce this VGA is a 16-bit device, it wants to exert MEM16 to alert the host to this fact. As soon as it decoes the A0000 hex, it sends out the low signal on the MEM16 line. The host in turn identifies the MEM16line and sends the memory read pulse. Then it waits for a bit before it reads the 16-bit data on the data bus bits 0-15. During this second wait, this VGA has to use the read pule to enable the output of its memory (previously addressed at A1000) and send the 16-bit signal onto the data bus bits 0-15. The problem is that decoding the address takes time for the VGA, and it has to send out the MEM16 line quickly. The address cannot be decoded until the address lines settle. On the PC, there are two sets of address lines on the PC being latched and unlatched. The unlatched lines settle before MEM16 has to be asserted, while the latched lines settle after MEM16 has to be asserted. We can rule out using the latched address lines. The problem is that no complete set of unlatched address lines are available, the lowest being address bit 17. As a result, the address decoding circuitry cannot detect memory locations that are smaller than 128Kbytes. Therefore, the VGA can only detect that a memory access is required somewhere between A0000 and BFFFF before it can decide whether to respond with a MEM16 signal. Unfortunately, in dual monitor systems, a Hercules card may well be residing at B0000 with unpredictable results. I have yet to see a 16-bit Hercules implementation. The MEM16 line is another reason why 16-bit VGAs will operate in an 8-bit mode, while in AT systems with bus speeds greater than 8MHz, they will not operate in a 16-bit mode. The increased speed of the bus and the subsequent decreased time for the MEM16 line to be asserted exceeds the decoding rate of the VGA. End of quote. In reality, some VGA cards will run 16-bit at >8MHz bus speeds. It depends on how well they are designed. --------------- Andrew Rossmann | Sysop of Infoplus BBS, +1 708 537 0247 andyross@infopls.chi.il.us | Infoplus Support, latest version available uunet!ddsw1!infopls!andyross | by logging in as infoplus.