VOGONS


First post, by noshutdown

User metadata
Rank Oldbie
Rank
Oldbie

256kb is sufficient for this mode, but does it need additional design over the standard vga, or can be implemented through hacking like 360*480?
typical 256kb cards including: ibm standard vga, chips451, cirrus41020/51020/5320/5401(avga1), intel82706, oak037 and probably a few others.
especially that the cirrus5401(avga1) is a very fast 256kb card, despite using 8bit dram width. it would be a pity if it doesn't support this mode.

Reply 1 of 12, by vstrakh

User metadata
Rank Member
Rank
Member

There is a hardware limitation in the IBM original VGA, and likely in all the other older card that mimicked same behavior.
It had to spend two pixel clocks per one screen pixel to fetch the data, so the 640-pix wide 256c screen would require a pixel clock frequency like for 1280-pix wide screen.
This might not be a problem for different cards/chips that were doing memory fetches more efficiently, but that is not the standard VGA, and probably not much non-SVGA clones capable of doing that.

Reply 2 of 12, by Grzyb

User metadata
Rank l33t
Rank
l33t

Even plain VGA can do it, but at absurdly low frequencies:
https://forum.vcfed.org/index.php?threads/why … e-2#post-828722

If you want it at normal frequencies, you need something better than plain VGA or low-end SVGA.

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

Reply 3 of 12, by Jo22

User metadata
Rank l33t++
Rank
l33t++

"vesa mode 100h(640*400*256c) support on 256kb cards"

Hi, the PVGA1A/B/C and later WD90Cxx models support that resolution, with as little as 256 KB of video RAM.
The VBE TSRs by Western Digital even support mode 100h on such models (UniVBE refuses to run with 256 KB).
The Western Digital Windows 2.x and 3.x drivers support 640x400 pels in 256c, too.
Mode 6Ah (102h) is also being supported with 256 KB of video RAM.
That was the original Super VGA mode and resolution (800x600 pixels in 16 colours).

"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 4 of 12, by rmay635703

User metadata
Rank Oldbie
Rank
Oldbie

It honestly was hard finding cards and drivers that supported 640x400x256, even more powerful svga cards had it missing as an option in the control panel (though could display via other means)

Vintage documentation actually called that paradise video mode. None of the cards I tested in the day worked with it, even including ones that did support 800x600x16 on 256k

Ah well

Reply 5 of 12, by Jo22

User metadata
Rank l33t++
Rank
l33t++
rmay635703 wrote on 2025-03-26, 16:42:

Vintage documentation actually called that paradise video mode.
None of the cards I tested in the day worked with it, even including ones that did support 800x600x16 on 256k

Paradise cards or the other models, too?
Because I had no issues with both DOSBox Paradise emulation, 256 KB PVGA1As (8-Bit and 16-Bit models), WD90C00 (renamed PVGA1A), WD90C24 and WD90C11 (aka PVGA1C).

They all worked with that Windows 2.03 driver found at toastytech site.
The driver needs Windows 2.03, though. Or Windows 2.1 in plain version (no /386).
It offers two resolutions 800x600 16c (suited for Excel and Word) and 640x400 256c (suited for ZSoft Paintbrush).

The VESA drivers and mode utilities are a stumbling stone.
They need to match the chip revisions (later revision mode utility needed for WD90C11 etc).
There are VBE drivers for PVGA1A (and WD90C00), as well as WD90C11 (aka PVGA1C) and the WD90C30 and related models.

The oldest VBE drivers by Paradise may also work in newer cards,
but merely feature VBE 1.0 which is too limited for anything but 800x600 16c (mode 6Ah, 102h).

The VBE 1.1 and VBE 1.2 drivers are fine for program such as Minuet web suite.
On a 512 KB model, it allows setting 640x480 256c which is needed for 256c GIF files on websites (640x400 256c isn't available as a mode in the program).
Other Turbo Vision programs may also work with VBE 1.1 and 1.2.

CompuShow 2000 can also natively using any Paradise chip, it has drivers for it.
Here, it can use various resolutions up to 1024x768.
On a 256 KB model, though, only 640x400 256c and 800x600 16c do display something.
2Show is a good test, I think.

If it doesn't work: The VGA BIOS isn't the problem, by the way.
My 8-Bit PVGA1A has a chip dated 1988 and a BIOS dated 1989.

I assume that the DIP switch setting in the back of the card is the culprit.
If it's set incorrectly, a TFT monitor will go blank in SVGA modes.
It has individual interlacing settings for 640x480, 800x600 and 1024x768.
It also has an AT compatible timing mode, whatever that means.

PCem v17 has broken Paradise emulation. 640x400 256c doesn't work correctly, as far as I know.

Edit: Here are some pictures, showing my Commodore PC-10, the cards and the applications.
Windows 2.03 and Windows 3.0 run in 640x400 256c on a 256 KB PVGA1A.

https://www.forum64.de/index.php?thread/15313 … 588#post2244588

Edit: A copy of Windows 2.03 drivers can be found here:
Re: 286 USIT Athena PC

Edit: https://www.cshowplace.com/cshows.htm

Edit: Here's a picture of the Commodore PC10 running Minuet in 640x480 256c (not 640x400 256c).
I've installed a PVGA1C with 512 KB for testing purposes,
because the 400 line mode isn't available in the list of Minuet.
I've loaded the matching VBE 1.2 TSR, too.
Functionally, the 1C is very close to the old 1A. It's a cost-reduced, smaller chip version.

Edit: The old VBE TSRs are mentioned in my first posting.
These two archives contain a dozen of VBE TSRs for different SVGA chips.
They might be useful for all those not being supported by UniVBE.

"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 6 of 12, by Grzyb

User metadata
Rank l33t
Rank
l33t
Jo22 wrote on 2025-03-26, 19:27:

WD90C00 (renamed PVGA1A)

WD90C00 = PVGA1B
pin-compatible with PVGA1A, but enhanced

Anyway, it's true that both support 640 x 400 x 256 - which was quite an achievement in 1988, when the PVGA1A got released.

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

Reply 7 of 12, by noshutdown

User metadata
Rank Oldbie
Rank
Oldbie
Grzyb wrote on 2025-03-26, 14:07:

Even plain VGA can do it, but at absurdly low frequencies:
https://forum.vcfed.org/index.php?threads/why … e-2#post-828722

If you want it at normal frequencies, you need something better than plain VGA or low-end SVGA.

yeah, so the performance is dissatisfying on basic vga cards with 4bit data cycle and 25/28mhz crystal.
but for cards that claim to support 800*600*16colors with a 36mhz crystal, 640*400*256c performance may be better. can it be done with software hack, or needs additional support?
and if its feasible with software hack, is there a vbe to map it to vesa mode 100h? univbe won't work with 256kb cards.

i don't mean to count paradise in because both pvga1a and pvga1b support 1mb of maximum ram, although i doubt if any card with that exists.
the datasheets said that pvga1a would only support up to 640*480*256c mode while pvga1b can run 800*600*256c, but i wonder if thats interlaced or not.

Reply 8 of 12, by Jo22

User metadata
Rank l33t++
Rank
l33t++
Grzyb wrote on 2025-03-26, 23:42:
WD90C00 = PVGA1B pin-compatible with PVGA1A, but enhanced […]
Show full quote
Jo22 wrote on 2025-03-26, 19:27:

WD90C00 (renamed PVGA1A)

WD90C00 = PVGA1B
pin-compatible with PVGA1A, but enhanced

Anyway, it's true that both support 640 x 400 x 256 - which was quite an achievement in 1988, when the PVGA1A got released.

Ah, okay, thanks. My bad. I'm not very familiar with the 1B, I have to admit.
I had seen photos of big old Paradise chip with the WD90C00 label and thought it was a relabled PVGA1A.

Edit: I think the Paradise cards might be a bit of an exception because they use 400 line mode for Olivetti M24/AT&T 6300 support.
If the main BIOS supports it, they can display 640x400 mono mode.

"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 9 of 12, by Grzyb

User metadata
Rank l33t
Rank
l33t
noshutdown wrote on 2025-03-27, 02:52:

yeah, so the performance is dissatisfying on basic vga cards with 4bit data cycle and 25/28mhz crystal.
but for cards that claim to support 800*600*16colors with a 36mhz crystal, 640*400*256c performance may be better. can it be done with software hack, or needs additional support?
and if its feasible with software hack, is there a vbe to map it to vesa mode 100h? univbe won't work with 256kb cards.

I've never seen any driver to provide VBE support for that low-frequency 640 x 400 x 256 mode on plain VGA, or on those early SVGA chips where 640 x 400 x 256 isn't officially supported.

I think it's possible to write such a driver...
BUT!

Software that uses 256-color VBE modes expects them to use the "04h = Packed pixel" MemoryModel.

The 640 x 400 x 256 on plain VGA uses planar memory model.
Probably what VESA defines as "05h = Non-chain 4, 256 color".

640 x 400 x 8bpp = 256 KB
There's only 128 KB of address space reserved for video RAM: A0000..BFFFF.
Therefore, 640 x 400 x 8bpp "Packed pixel" requires bank-switching.
There's no bank-switching in plain VGA, right?

Without bank-switching, you can write a driver to provide 640 x 400 x 8bpp "Non-chain 4, 256 color" as VESA.
But to make use of it, you would also need to write your own applications.

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

Reply 10 of 12, by clb

User metadata
Rank Oldbie
Rank
Oldbie

Accessing the full 256KB of video memory in non-chain 4 mode in regular VGA does not require bank switching, but just the good old write plane setting that Mode X also uses, i.e. bits 0-1 in 3C4h sub-register 01h: https://github.com/juj/crt_terminator/blob/28 … OLL/IMG.CPP#L59.

The later 256 color VESA video modes behave like the chain-4 video modes do, so those used separate bank switching logic to avoid the awkward write plane stuff.

Reply 11 of 12, by noshutdown

User metadata
Rank Oldbie
Rank
Oldbie

btw, is there any versions of univbe that would work with 256kb cards?
v6.7's readme stated that it would only work with 512kb or higher cards, but it listed some chips that supports only 256kb of ram: oak037, chips451, cirrus5401 etc, and i wonder if they were supported in older versions.

Reply 12 of 12, by Grzyb

User metadata
Rank l33t
Rank
l33t

AFAIR UniVBE 5.x works with *some* 256 KB cards.

I vaguely recall I couldn't get it to work with AVGA1 a.k.a. CL-GD5401, though.

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