VOGONS


First post, by Grzyb

User metadata
Rank Oldbie
Rank
Oldbie

We all know that VGA uses 720 x 400 for text mode.

But it should be able to do 720 x 400 graphics as well, with the nice 70 Hz refresh rate.
Of course, not supported by standard VGA BIOS.
But perhaps there is some VGA clone supporting it in the BIOS?
Or some software using that mode directly?

I understand that the square pixel of 640 x 480 was more convenient for graphics.
Still, the 70 Hz of 720 x 400 would have been nice as well... seriously, nobody ever thought of that?

Żywotwór planetarny, jego gnijące błoto, jest świtem egzystencji, fazą wstępną, i wyłoni się z krwawych ciastomózgowych miedź miłująca...

Reply 1 of 10, by darry

User metadata
Rank l33t++
Rank
l33t++
Grzyb wrote on 2024-02-16, 14:01:
We all know that VGA uses 720 x 400 for text mode. […]
Show full quote

We all know that VGA uses 720 x 400 for text mode.

But it should be able to do 720 x 400 graphics as well, with the nice 70 Hz refresh rate.
Of course, not supported by standard VGA BIOS.
But perhaps there is some VGA clone supporting it in the BIOS?
Or some software using that mode directly?

I understand that the square pixel of 640 x 480 was more convenient for graphics.
Still, the 70 Hz of 720 x 400 would have been nice as well... seriously, nobody ever thought of that?

800x600 in 4-bit color works on most (maybe all) standard 256K VGA cards, AFAICR, with some timing tweaks. That was used in at least one of the Microsoft Windows drivers generic SVGA drivers, also AFAICR.

Reply 2 of 10, by clb

User metadata
Rank Member
Rank
Member

There are some SVGA adapters I know that have done 720x pixels graphics modes based on the text mode.

- Wang Labs Chips & Technologies F82C452 from 1991 has a 720x400 16 colors graphics in mode 14h:

14.720x400-16c.png
Filename
14.720x400-16c.png
File size
501.47 KiB
Views
520 views
File license
Public domain

- Paradise PVGA1A-JK in 1990 has a 720x420 video mode in its VBIOS (mode 60h).

Both of the above have the same ~28.3 MHz clock, 31.5 kHz VGA rate and 70 Hz vsync rate that the 720x400 text mode has.

Then some have adjusted the timings a bit, to expand on the mode:

- Trident 8800CS from 1989/1990 did a 720x540 16 color graphics mode. This is mode 63h on ASKA ZyMOS Poach 51 BIOS. (same 28.3 MHz clock and 31.5 kHz, but 55 Hz rather than 70 Hz refresh rate)

- Video 7 Headland HT-208 from 1991 has a 720x540 mode in its BIOS (mode 15h), although they used different clock (32.5MHz pixel clock, 35.1kHz scanline rate and 60Hz refresh rate)

This mode might have become short-lived for graphics due to the VESA 800x600 standard, or maybe due to the odd pixel aspect ratio, 20:27. I.e. each pixel would be 20 units wide and 27 units tall on a 4:3 screen.

darry wrote on 2024-02-16, 15:09:

800x600 in 4-bit color works on most (maybe all) standard 256K VGA cards, AFAICR, with some timing tweaks. That was used in at least one of the Microsoft Windows drivers generic SVGA drivers, also AFAICR.

The standard VGA card has only ~25.2 MHz and ~28.3 MHz clocks. The 800x600 16 color mode that VESA standardized (VESA standard #900601) is based on a 36.0 MHz pixel clock. All SVGA cards I have met that have this mode in the BIOS, utilize this 36.0 MHz clock. This VESA mode was fixed to mode ID 6Ah before Vesa BIOS Extensions standard came by. I think the Microsoft generic SVGA driver relies on this VESA standard, and not on tweaking custom modes. So it just attempts to initialize video mode 6Ah to get to 800x600 16c.

Tweak 1.6b does have a custom tweaked 800x600 mode that works on original IBM VGA adapter with just the 28.3 MHz clock. The problem there is though that in order to fit into VGA constraints (28.3 MHz pixel clock and 31.5 kHz scanline rate), this tweaked mode can only reach 48 Hz refresh rate. Here is a capture of that mode in Tweak 1.6b running on original IBM VGA adapter with CRT Terminator:

tweak_16b_800x600_16c_on_ibm_vga_adapter.png
Filename
tweak_16b_800x600_16c_on_ibm_vga_adapter.png
File size
114.09 KiB
Views
520 views
File license
Public domain

This tweaked mode has a problem that the horizontal sync period overextends to visible picture area ("negative" horizontal front and back porches), and it is not exactly 31.5 kHz.. I see that in order to get a sync on my ASUS ProArt PA248QV display, I need to fix up the negative porch lengths, after which the video mode does give a sync.

Reply 3 of 10, by mkarcher

User metadata
Rank l33t
Rank
l33t
Grzyb wrote on 2024-02-16, 14:01:

We all know that VGA uses 720 x 400 for text mode.

But it should be able to do 720 x 400 graphics as well, with the nice 70 Hz refresh rate.

That mode is perfectly possible on any kind of VGA card if you program the timing manually. The 720x400 graphics mode will use "character" units of 8 pixels each, whereas the 720x400 text mode uses "character" units of 9 pixels each. As the horizontal timing of the VGA card is programmed in units of characters, the horizontal timing needs to be reprogrammed for the narrower characters in 720x400 graphics mode. The horiztontal timing is identical in 720-pixel text modes and 640-pixel graphics modes: Both of those modes have 80 visible "characters", and the different number of pixels per character is compensated by the different pixel clocks, so the character clock is approximately the same.

Reply 4 of 10, by Grzyb

User metadata
Rank Oldbie
Rank
Oldbie
clb wrote on 2024-02-16, 16:42:

- Wang Labs Chips & Technologies F82C452 from 1991 has a 720x400 16 colors graphics in mode 14h:

Yes, exactly what I'm looking for!
Nice to see I wasn't alone...

- Paradise PVGA1A-JK in 1990 has a 720x420 video mode in its VBIOS (mode 60h).

I guess this one requires vertical size adjustment in the monitor.

This mode might have become short-lived for graphics due to the VESA 800x600 standard, or maybe due to the odd pixel aspect ratio, 20:27. I.e. each pixel would be 20 units wide and 27 units tall on a 4:3 screen.

You mean 720 x 540 ?
720/540 = 4/3 = perfect pixel ratio
The problem here clearly was about the need for an SVGA monitor (35 kHz HSYNC, enough for 800 x 600), or painfully low refresh rate at 31 kHz HSYNC.

Tweak 1.6b does have a custom tweaked 800x600 mode that works on original IBM VGA adapter with just the 28.3 MHz clock. The problem there is though that in order to fit into VGA constraints (28.3 MHz pixel clock and 31.5 kHz scanline rate), this tweaked mode can only reach 48 Hz refresh rate.

See also svgabg55.zip - according to my monitor, the TWK800x600x16 mode uses 29.3 kHz / 45 Hz.

Żywotwór planetarny, jego gnijące błoto, jest świtem egzystencji, fazą wstępną, i wyłoni się z krwawych ciastomózgowych miedź miłująca...

Reply 5 of 10, by darry

User metadata
Rank l33t++
Rank
l33t++

@clb

You are quite right about Microsoft using mode 6ah.

They even explicitly say so.

- Super VGA VESA Mode 6Ah

Some Super VGA adapters support higher monitor-refresh rates at
800x600 resolution with a special VESA mode. If both your video
adapter and monitor support a higher refresh rate and if you are
using the Super VGA driver, you may be able to get better video
results by including the following setting in the [display] section
of the SYSTEM.INI file:

svgamode=106

If you encounter problems using this mode, delete this setting from
the SYSTEM.INI file, and then restart Windows.

https://www.betaarchive.com/wiki/index.php/Mi … B_Archive/86357

Reply 6 of 10, by Grzyb

User metadata
Rank Oldbie
Rank
Oldbie

It seems that SUPERVGA.DRV by default uses a non-VESA mode: 58h for Paradise, 54h for ATI, etc.
It only uses the VESA 6Ah mode when "svgamode=106" is specified.

But it never uses the tweaked VGA mode with 45 Hz (or so) refresh rate.

Żywotwór planetarny, jego gnijące błoto, jest świtem egzystencji, fazą wstępną, i wyłoni się z krwawych ciastomózgowych miedź miłująca...

Reply 7 of 10, by Jo22

User metadata
Rank l33t++
Rank
l33t++

Makes sense. VBE wasn't considered to be pretty, more seen like a last resort.
By Microsoft, I mean. VBE had always been treated neglectfully.
Using an native video mode was to be preferred.

Microsoft's newer 256c drivers (in WfW 3.11) are acting in a similar way, I assume.
They're trying to call SVGA chipset specific modes first.

Mode 6Ah had been supported by some SVGA cards without a dedicated VBE BIOS, too, I believe.
That's why Microsoft didn't use 102h, I suppose.

Btw, the Paradise cards have an 800x600 16c video mode whos video memory layout is compatible with VBE, it's just not using a VBE mode number yet.

That's why the game 'Wonderland' by Magnetic Scrolls can be patched for VBE.

The game knows two SVGA modes, Paradise/WD and Video 7.
By changing the mode number for Paradise to 6Ah, it can work on later cards.
The latter must be the old VEGA series from the 80s, not sure.

"Tweak" also uses a Paradise driver for patching.

PS: I believe to remember that not all SVGA cards did 800x600 16c mode same way.
Ie, the mode number wasn't the only difference.
They way the pixels had been addressed in memory were different.

The old ATI Wonder cards might have been special snow flakes here, not sure.
My memory is a bit sketchy.

Edit: I may be wrong, but I believe that some SVGA cards had silently supported the Paradise mode number (800x600 16c) due to the cards/chips popularity.
Maybe someone can double check.

Edited.

"Time, it seems, doesn't flow. For some it's fast, for some it's slow.
In what to one race is no time at all, another race can rise and fall..." - The Minstrel

//My video channel//

Reply 8 of 10, by Grzyb

User metadata
Rank Oldbie
Rank
Oldbie
Jo22 wrote on 2024-02-18, 14:40:

PS: I believe to remember that not all SVGA cards did 800x600 16c mode same way.
Ie, the mode number wasn't the only difference.
They way the pixels had been addressed in memory were different.

I only know about IBM XGA being different.

16-color modes use bitplanes on VGA/SVGA, packed pixels on XGA.

Żywotwór planetarny, jego gnijące błoto, jest świtem egzystencji, fazą wstępną, i wyłoni się z krwawych ciastomózgowych miedź miłująca...

Reply 9 of 10, by Jo22

User metadata
Rank l33t++
Rank
l33t++
Grzyb wrote on 2024-02-18, 15:51:
Jo22 wrote on 2024-02-18, 14:40:

PS: I believe to remember that not all SVGA cards did 800x600 16c mode same way.
Ie, the mode number wasn't the only difference.
They way the pixels had been addressed in memory were different.

I only know about IBM XGA being different.

16-color modes use bitplanes on VGA/SVGA, packed pixels on XGA.

There was a comment in the manual of an old ATI card.

Best I could find for now is this:

"I found a bug on the 1024x768x16 packed pixel video mode [..] the 4-planar mode works just fine. "

Source: https://github.com/86Box/86Box/issues/3941

That reads to me as if 1024x768 16c mode might be packed-pixel, at least.

Edit: I've missed something. Screenshot says 1024x768 16c is available two times.
Packed and planar. But what is 800x600 16c using?

Anyway, was just a vague memory.

The normal way to do SVGA is to just extend 640x480 16c mode to a higher resolution, keeping the memory layout?

"Time, it seems, doesn't flow. For some it's fast, for some it's slow.
In what to one race is no time at all, another race can rise and fall..." - The Minstrel

//My video channel//

Reply 10 of 10, by Grzyb

User metadata
Rank Oldbie
Rank
Oldbie

I need to do some experiments with ATI 28800 sometime...

Normally, 800 x 600 (and below) in 16 colors uses just bitplanes.
1024 x 768 (and above) in 16 colors uses bitplanes *and* bank switching, which isn't very convenient.

If the chipset supports 16-color packed pixels, using it for 1024 x 768 may simplify things a lot.

Żywotwór planetarny, jego gnijące błoto, jest świtem egzystencji, fazą wstępną, i wyłoni się z krwawych ciastomózgowych miedź miłująca...