VOGONS


First post, by dionb

User metadata
Rank l33t++
Rank
l33t++

Bit of a brainfart here, but I recently got my hands on a beautiful EGA monitor. It works at 15.75 and 21.85kHz, still delivering sharp, bright EGA images after all this time. Yay.

But of course I then started thinking about what else it might be able to do. Given it's TTL with digital input, it can do max 64 colours at the aforementioned refresh rates. It's only a limitation of my EGA cards that it can't show more than 16 at once at high-res. So what else could feed it with more... I tried a few VGA cards with 9-pin TTL outputs (Tseng ET3000, Trident TGVA8800, that sort of thing) but TTL output is strictly EGA only. But what about the VESA feature connector? It provides 8b digital output at TTL levels, with 2 bits per colour and 2 bits intensity as well as sync signals. What if I were to take the colour bits from that output, and then to either get my VGA card to output 15.75/21.8kHz, or just put something in between to halve the (horizontal) sync signals and feed it something twice the size with 31.5/43.6kHz (plus inverting polarity if needed). You'd lose the intensity signals, so wouldn't be perfect, but would enable 64 colour output - and vastly better performance than ancient 8b ISA EGA or 16b ISA VGA-with-EGA cards.

A quick google shows lots of people messing around with feature connectors, but no one trying this particular hare-brained scheme yet. Is there an - obvious - reason for that? Or might this merit a bit more investigation?

Reply 1 of 1, by furan

User metadata
Rank Member
Rank
Member

I've been messing around with the feature connector for a little while using an FPGA-based PCI card. Cards follow the spec loosely, but you can override the pixel clock, the syncs, and the pixel data. Or you can sample them. The pixel data (referred to as the pixel bus) is usually an 8-bit index into the palette LUT. On some cards, in high color/true color modes, you will see the full color value over multiple pixel clocks (2 clocks for high color, 3 clocks for true color).

You could build a card to do something like what you want, but I think you would have to implement a bus interface to snoop updates to the palette, otherwise the data from the pixel bus may be meaningless to you when the palette has been changed.