VOGONS


First post, by noshutdown

User metadata
Rank Oldbie
Rank
Oldbie

we know that most early vga cards have multiple crystals for different resolutions, the most common ones being 25.2mhz for 640*480*60hz vga mode, and 28.3mhz for text modes, and there can be more crystals for extra modes or ram clock.
800*600*60hz mode requires about 40mhz, while 1024*768*60hz mode needs ~66mhz. does that mean cards without 40mhz crystal would not support 800*600 mode? well, we don't see 66mhz crystal very often because most cards capable of 1024*768 were already using adjustable or integrated clockgen.

Reply 1 of 11, by Grzyb

User metadata
Rank l33t
Rank
l33t

It's complicated...

I've recently experimented with a TVGA 8800CS card, with three crystals: two standard VGA + 44.9 MHz.

44.9 MHz = 1024 x 768 @ 87 Hz - interlaced, therefore also referred to as 43 Hz

But it also does 800 x 600, AFAIR @ 56 Hz - which would use 36 MHz pixel clock...
Again: no 36 MHz crystal.
Can't see any clockchip, either.
I guess the 36 MHz frequency is sythesized inside the main chip...

Sure, many early VGA chips need crystals - or external clockchip - for every supported mode.
But it seems there were exceptions, even in pretty early chips.

Last edited by Grzyb on 2025-01-26, 05:26. Edited 2 times in total.

Kiełbasa smakuje najlepiej, gdy przysmażysz ją laserem!

Reply 2 of 11, by mkarcher

User metadata
Rank l33t
Rank
l33t
noshutdown wrote on 2025-01-25, 11:18:

we know that most early vga cards have multiple crystals for different resolutions, the most common ones being 25.2mhz for 640*480*60hz vga mode, and 28.3mhz for text modes, and there can be more crystals for extra modes or ram clock.
800*600*60hz mode requires about 40mhz, while 1024*768*60hz mode needs ~66mhz. does that mean cards without 40mhz crystal would not support 800*600 mode? well, we don't see 66mhz crystal very often because most cards capable of 1024*768 were already using adjustable or integrated clockgen.

Typically, the very early SVGA cards had a 36MHz crystal for 800x600 at 56Hz, which used 35.2kHz hsync, which is sufficiently similar to 35.5kHz hsync of 1024x768 at 43.5/87 interlaced. The interlaced 1024x768 resolution uses 44.9Mhz. Anything more versatile than that usually has clock synthesizer chips instead of dedicated crystals. A 40MHz crystal might be for 800x600 at 60MHz as you suspect, but it also was a typical chip/memory clock crystal.

The original VGA design operated the whole card at a clock derived from the pixel clock, and didn't pre-fetch any video memory data. The first generation of Super VGA cards were based on the same design, just running at higher clocks, thus reqiring even faster memory at the full 32 bit bus width used by the VGA. Later VGA designs on the other hand got an entirely different memory interface that finally used fast page mode for burst read and writes, and they read something like 8 32-bit words at once into a display FIFO, leaving the time between FIFO refills to PC writes, which were buffered in write FIFO and in case of page hits also drained using fast page mode. As you see, the two most critical operations, namely CPU writing to video memory and display reading from video memory are now asynchronous and decoupled using FIFOs/Queues, so the clock rate of the memory can be independent from the pixel clock, allowing fast video writes at high memory clocks even at low resolution modes, or use the improved efficiency of the memory interface to be able to drop the memory bus width down to 8 or 16 bits without being slower than the original VGA design on video memory writes (which, admittedly, doesn't mean much). 40MHz was a very widespread clock for the memory, also called "system clock" by some manufacturers, and is basically universally used on ET4000 graphics cards. IIRC there were some clock synth chips for VGA cards that use 40MHz as reference clock instead of the standard 14.318MHz reference clock, because "you have 40MHz anyway".

Reply 3 of 11, by mkarcher

User metadata
Rank l33t
Rank
l33t
Grzyb wrote on 2025-01-25, 14:30:
It's complicated... […]
Show full quote

It's complicated...

I've recently experimented with a TVGA 8800CS card, with three crystals: two standard VGA + 44.9 MHz.

44.9 MHz = 1024 x 768 @ 87 Hz - interlaced, therefore also referred to as 43 Hz

But it also does 800 x 600, AFAIR @ 56 Hz - which would use 36 MHz pixel clock...
Again: no 36 MHz crystal.
Can't see any clockchip, either.
I guess the 36 MHz frequency is sythesized inside the main chip...

The 8800CS surely does not have a clock synth in it. Even the 8900 series does not, but relies on an external TCK9001/TCK9002 or TCK9004 synthesizer. Are you sure that very card supports 800x600 at all? Reading at VGADOC (which is not entirely reliable, though), I found the following information on mode setting on the Trident 8800 based card:

Return: AH = Status of call:  (Trident Super VGA Chips)

Trident 8800 Trident 8900
00h Successful do
80h Fail. Wrong switch do
81h Insufficient Video do
Memory.
82h The 36MHz crystal Mode not supported
cannot support the mode
83h The 40MHz crystal Mode not supported
cannot support the mode.
84h The 44.9MHz crystal Mode not supported
cannot support the mode.
85h Dead or no crystal
86h Wrong CRTC base for dual screen
87h Text mode not supported

I read this as if the 8800-based typically cards used just one external crystal oscillator, and depending on the installed crystal, you can get either 36MHz modes (like 800x600 @ 56), 40MHz modes (like 800x600 @ 60) or 44.9MHz modes (like 1024x768 @ 87i). The 132-column text modes with either 8-pixel or 9-pixel wide characters likely also depend on the installed crystal. Note how the documentation does not say: "The 36MHz crystal required for this mode is not available", but "The 36MHz crystal [which is the only one available] does not support this mode".

Reply 4 of 11, by agent_x007

User metadata
Rank Oldbie
Rank
Oldbie

About ET4000, I have card with 6 crystals :
file.php?mode=view&id=210759
^I'm pretty sure this is ET3000 PCB that was reused.

List of crystals it has :
1) 25.175MHz
2) 28.322MHz
3) 36.000MHz
4) 40.000MHz
5) 44.900MHz
6) 65.000MHz
^Not sure which one does what, but someone else may know 😀

PS. Also, here's back of the card :

The attachment ET4000 6 crystals back.jpg is no longer available

Reply 5 of 11, by Grzyb

User metadata
Rank l33t
Rank
l33t
mkarcher wrote on 2025-01-25, 14:47:

Note how the documentation does not say: "The 36MHz crystal required for this mode is not available", but "The 36MHz crystal [which is the only one available] does not support this mode".

Indeed, can't find any evidence of a TVGA 8800 card with >3 crystals - it's always 2 x standard VGA + third.

Anyway, I have two 8800CS cards, with different third crystal - will do more experiments soon...

Kiełbasa smakuje najlepiej, gdy przysmażysz ją laserem!

Reply 6 of 11, by Grzyb

User metadata
Rank l33t
Rank
l33t

Octek MicroVGA
16-bit ISA
TVGA 8800CS
2 x standard VGA + 40 MHz

800 x 600 x 16 - 35.1 kHz, 56 Hz
1024 x 768 x 16 - 32.1 kHz, 79 Hz, interlaced
640 x 400 x 256 - 25.4 kHz, 56 Hz
640 x 480 x 256 - 25.4 kHz, 50 Hz

(to be continued...)

Kiełbasa smakuje najlepiej, gdy przysmażysz ją laserem!

Reply 7 of 11, by Grzyb

User metadata
Rank l33t
Rank
l33t

TVGA P/N:9003-10
8-bit ISA
TVGA 8800CS
2 x standard VGA + 44.9 MHz

800 x 600 x 16 - 35.5 kHz, 55 Hz
1024 x 768 x 16 - 35.5 kHz, 86 Hz, interlaced
640 x 400 x 256 - 29.5 kHz, 66 Hz
640 x 480 x 256 - 29.5 kHz, 57 Hz

Kiełbasa smakuje najlepiej, gdy przysmażysz ją laserem!

Reply 8 of 11, by mkarcher

User metadata
Rank l33t
Rank
l33t

The timings 1024x768 and 640x... with 256 colors are not surprising. The standard timing for 1024x768 interlaced requires 44.9MHz, so at 40MHz, you will get a lower refresh rate, but it seems they cut down on blanking time. On CRT monitors, I expect the picture to be quite wide. The 256 color modes on the Trident 8800 work just like on standard VGA: You run the 16-color graphics chip core at twice the desired pixel clock, and then two successive 4-bit color numbers generated by that core get merged into one 8-bit color value. To get "correct" 640x400 or 640x480 timings, you would require 2*25.xxx, so a bit above 50MHz. With the clocks available, the scan rate will go down.

On the other hand, the 800x600 timing seems to be quite similar on both cards, and "too slow" compared to conventional timings. At 40MHz, you can get 38kHz/60Hz. This means the cards likely compensate the excessive pixel clock by extra long blanking. On CRT monitors, I expect the picture to be "quite tall" on the 40MHz card an "extremely tall" on the 44.9MHz card.

Reply 9 of 11, by noshutdown

User metadata
Rank Oldbie
Rank
Oldbie
agent_x007 wrote on 2025-01-25, 15:10:
About ET4000, I have card with 6 crystals : ^I'm pretty sure this is ET3000 PCB that was reused. […]
Show full quote

About ET4000, I have card with 6 crystals :
^I'm pretty sure this is ET3000 PCB that was reused.

^Not sure which one does what, but someone else may know 😀

PS. Also, here's back of the card :

The attachment ET4000 6 crystals back.jpg is no longer available

this card is surely interesting, because later et4000 cards should be using adjustable clockgens.
1) 25.175MHz - vga standard 640*480 at 60hz
2) 28.322MHz - vga standard text modes at 70hz
3) 36.000MHz - 800*600 at 56hz, which i consider unacceptable
4) 40.000MHz - 800*600 at 60hz, but likely also for dram clock
5) 44.900MHz - 1024*768 interlaced 43hz, which i consider useless. may also be for overclocked dram.
6) 65.000MHz - 1024*768 at 60hz

Reply 10 of 11, by Grzyb

User metadata
Rank l33t
Rank
l33t
mkarcher wrote on 2025-01-25, 20:21:

On the other hand, the 800x600 timing seems to be quite similar on both cards, and "too slow" compared to conventional timings. At 40MHz, you can get 38kHz/60Hz. This means the cards likely compensate the excessive pixel clock by extra long blanking. On CRT monitors, I expect the picture to be "quite tall" on the 40MHz card an "extremely tall" on the 44.9MHz card.

You're right.

Using the 44.9 MHz card now...

This mode:
1024 x 768 x 16 - 35.5 kHz, 86 Hz, interlaced
...works fine - I can easily adjust the monitor so it perfectly fills the entire screen.

On the other hand, this mode:
800 x 600 x 16 - 35.5 kHz, 55 Hz
...has wide margins on the left and right, even if I set H-SIZE to MAX - where the image already gets deformed into pincushion.

Conclusion:

It's possible to have 800 x 600 @ 56 Hz without any source of 36 MHz.
It's possible to have 800 x 600 @ 60 Hz without any source of 40 MHz.
And so on...

It's possible to have these modes using a faster pixel clock - eg. 44.9 MHz.
From software's point of view, it is 800 x 600.
But there will be wide blank margins on the screen.

Kiełbasa smakuje najlepiej, gdy przysmażysz ją laserem!

Reply 11 of 11, by Grzyb

User metadata
Rank l33t
Rank
l33t
noshutdown wrote on 2025-01-26, 02:48:

3) 36.000MHz - 800*600 at 56hz, which i consider unacceptable
[...]
5) 44.900MHz - 1024*768 interlaced 43hz, which i consider useless. may also be for overclocked dram.

Well, nowadays they surely do seem bad - but for many years, they were pretty much the only SVGA modes available...

First, the IBM 8514 - 35.5 kHz, 43.5/87 Hz, 1024x768 interlaced.
Soon, others reused that design, only without interlace - 35.1 kHz, 56 Hz, 800x600.

It was expensive to go beyond the 35.x kHz standard...

Kiełbasa smakuje najlepiej, gdy przysmażysz ją laserem!