• Please review our updated Terms and Rules here

Would it be possible to design a 16-bit VGA card for AT&T 6300 / Olivetti M24 PCs?

digger

Experienced Member
Joined
Jul 9, 2008
Messages
395
Location
Amsterdam, the Netherlands
Would it be possible to design a 16-bit VGA card for AT&T 6300 / Olivetti M24 PCs?

(I'm not sure if someone has floated the following idea here before. A quick Google search on this forum didn't seem to turn up anything. But feel free to point me to such a topic if one already exists.)

So there have been some (quite impressive) hobby projects on the Internet (many of them on this forum) to create various new add-on cards for vintage computers, using new old stock VGA chips, such as the Trident-based ISA Super VGA card.

It has lead me to wonder: would it be possible to design (and possibly manufacture) a 16-bit VGA card for the proprietary 16-bit expansion bus of the AT&T 6300 / Olivetti M24 PC?

I know that many 16-bit cards would never work in such a system, since they often require access to resources only available on 286+ systems, such as higher IRQ lines, higher DMA channels and/or memory mapping above 1MB. But with VGA cards, at least ISA-based ones, that's not the case, right?

The advantage of such a hypothetical card for these eccentric machines would be two-fold:

  • It would take maximum advantage of the available bus bandwidth and thus provide the best possible graphics performance on such systems
  • It wouldn't require the use of an aftermarket bus correction kit to swap the byte order when performing I/O on such cards, as is the case when using 8-bit EGA and VGA cards in those same machines

I know, it's easy for me to think of some crazy idea and have someone else do the hard work of actually trying to implement something like this, but I just don't have the expertise to design something like that. I wish I did.

Anyway, feel free to punch some holes in this crazy idea. :lol:
 
Well, if you are just shooting at theory, might as well extend that to any 8086 or NEC V30 system where the appropriate I/O can be obtained.

As far as I know, there are two main reasons an ISA VGA card won't work on a pre-286 system. The first being that the BIOS may include 286+ instruction code. The second being that the interface hardware requires a 16-bit ISA slot, even if the machine is a 286 AT or later.

Note that some VGA cards with 16-bit ISA connectors do in fact maintain compatiblity with both 8088/8086 instructions and 8-bit ISA slots. Of course, then you will only get 8-bit I/O.

So while it is possible that an 8086 based system might lack some things that later ISA VGA chipsets might require, I'd speculate that at least some chips might be able to deal with such a theoretical situation. (Were there ever any on-board VGA chips built in to 8086 based systems? Those might already do 16-bit access.)

Then you would have to get down to the level of comparing ISA bus signals and timing to whatever interface bus signals you can obtain from the 8086. That, I'm not really sure of all of the details.

But the bigger, more practical issue is- would there really be a speed increase, and would it be worth bothering with? You are still stuck with a slow CPU, and to see any advantage, software would need to take advantage of 16-bit read/writes.

There is a lot to consider.
 
I've certainly used 16-bit (Tsenglabs et4000, IIRC) VGA cards in the AT&T 6300 in 8 bit mode. Worked fine. But the 16-bit ISA bus demands a bit more than the 6300/M24 has in the way of support (e.g. extra 8259 and 8237 for secondary PIC and DMA service); to do a full-blown 5170-compatible version, you'd pretty much have to design your own bus-converter board. (The 186/286 added instruction set is easy--just pop in a V30 in place of the 8086--it's worked well for many people, myself included). What the minimum in modified/added circuitry to support just a 16-bit VGA, I'm not prepared to estimate.
 
You're going to make Tandy 1000 TL / TX owners jealous. You have a 16-bit bus on an 8086 system, while they only have an 8-bit bus on a 286 system!
 
Looking at the datasheet for a typical 16 bit VGA chip (Trident TVGA 9000) it doesn't look like the missing PIC or DMA will be a problem; a "normal" VGA has no DMA busmastering capabilities and the IRQ, if it's enabled (usually isn't) is on IRQ2. (Which I guess might be a little tricky since that's the one that's remapped to IRQ9 on an AT; in the extreme edge case where you actually want to use the VGA interrupt and you're running software that explicitly will only work if it pops up as cascaded from the second PIC then... sure, problem? But software like that would probably be incompatible with any XT with the card in 8-bit mode.)

The trident datasheet says, basically, if the registers are set for 16 bit operation (there are separate ones for the BIOS and the video memory) then it asserts /MCS16 according to the ISA specs to signal the bus sizing hardware appropriately. If the bus sizing hardware in the 6300 is compatible (or close enough to be fixed with external logic) then it seems in principle, sure, you could probably physically build a card that would do it. It doesn't look like this particular chip ever does 16 bit port I/O, just memory access.
 
And now for the $0.63 question: Would it make much of a difference? An 8Mhz 8086 is no speed demon.

Well, yeah, I agree that it's likely going to end up a lot of work for not a lot of gain. I kind of doubt sheer memcopy fill rate is usually the limiting factor for VGA cards in XT class machines.
 
Doubling your memory bandwidth is kind of a big deal regardless of processor speed...

Only if literally all you're doing is shoving memory from one place to another. If you actually have to do any calculations for what's getting thrown up on the screen the bottleneck probably isn't going to be the video card bus in an 8086 machine.
 
This was going to be my point as well. Believe me, I love my M24s, but software that supports VGA generally falls into two camps: Games that need the bandwidth for moving around 256-color graphics (and assume the host is a 286+ for that reason), and textmode applications that use custom fonts, colors, or resolutions (ie. word-processing). The former camp won't run well even if you give it a 16-bit VGA card on an 8086 system, and the latter camp will run fine on any VGA card, even the slowest one ever made (in my experience, a budget VGA card from Hercules).

So unless the OP can come up with a specific program that could really benefit from double the video memory bandwidth on an 8MHz 8086, there's not much point in pursuing this, IMO.
 
Back
Top