Path: utzoo!utgpu!jarvis.csri.toronto.edu!cs.utexas.edu!samsung!brutus.cs.uiuc.edu!apple!genbank!agate!shelby!portia!dhinds From: dhinds@portia.Stanford.EDU (David Hinds) Newsgroups: comp.sys.ibm.pc Subject: Re: What are the differences between 8-bit and 16-bit VGA cards? Summary: Bus width isn't anything if your code uses 8-bit memory accesses Message-ID: <7025@portia.Stanford.EDU> Date: 27 Nov 89 18:31:44 GMT References: <6980@portia.Stanford.EDU> <340030@hpsgpa.HP.COM> Sender: David Hinds Organization: Stanford University Lines: 31 In article <340030@hpsgpa.HP.COM>, plim@hpsgpa.HP.COM (Peter Lim) writes: > That doesn't sound right. As far as I know, the 16-bit access thing > is done totally in hardware. When a 16-bit card is plugged into an > AT-bus, it tells the AT bus system that it it 16-bit and the system > will read/write in 16-bit... For the ATI VGA Wonder card, the bus width seems to be at least partially under software control. There is an option in the 'VSETUP' program to enable or disable 16-bit ROM accesses. The card is actually supposed to work in either 16-bit or 8-bit slots; in the 8-bit slot, the extra pins just hang in space, and the card configures itself for the shorter bus. Aside from the ROM accesses, it is not obvious that any software would use 16-bit accesses to video memory, or what they would actually do. In the true VGA graphics modes, at least, almost all video memory accesses are indirect, and data is churned through a series of arithmetic units on the VGA controller before being put in video memory. These steps map a 32-bit internal VGA memory bus onto an external 8-bit bus, using various VGA registers to control different kinds of rotating, masking, and logical operations. It would not be trivial to redesign these units to map to a 16-bit bus. For one thing, lots of VGA graphics control registers would need to be 16 bits long to be useful. There is no obvious way to make these extensions transparant and compatible with existing VGA software. And certainly, all existing VGA graphics software uses 8-bit accesses. I can see that there would be a speed improvement for 16-bit direct writes to video memory, in modes where the VGA is emulating a direct-memory-mapped display like CGA or Herc. But the indirect VGA modes are designed to cut down on the amount of host CPU effort and CPU-to-Video memory transfers. Proper VGA software should never do direct accesses to video memory, so as far as I can see, a wider bus won't do anything. I would like to be wrong, though (?). - David Hinds dhinds@portia.stanford.edu