Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

XGA and NT4

60 views
Skip to first unread message

Louis Ohland

unread,
Feb 6, 2024, 10:43:30 AMFeb 6
to
Folks, where was the problem in getting 16-bit color on the XGA-2 under NT4?

xga.drv, xga.vxd, vga256.dll?


Louis Ohland

unread,
Feb 6, 2024, 10:50:06 AMFeb 6
to

Ryan Alswede

unread,
Feb 7, 2024, 2:16:07 PMFeb 7
to
Yes going to start looking into it now that my 9-K NT work is wrapping up. There are Windows NT source code leaks so we'll see.

Ryan Alswede

unread,
Feb 7, 2024, 4:44:05 PMFeb 7
to
Do we have UnalZ source code? For the XGA Mode definitions?

We clearly see the modes in XGA driver in the leaked NT code are support for 64k color 16 bit 256 etc .
XGA1_MODE_1024_768_16_CO
XGA1_MODE_1024_768_64_CO

but for XGA2 only see this one
XGA2_MODE_1024_768_256

Then it goes to:
// New IBM modes
// XGA 1 modes
..............
These all are only _8 color
XGA2_640x480x8x72Hz
XGA2_640x400x8x84Hz

getAvailableModes over in the xga.dll Have to drill down this in the code but we should be able to point this to the XGA2 UnalZ driver to get the new modes IF we don't have source code to cut and paste the modes into the xga driver.



Louis Ohland

unread,
Feb 7, 2024, 5:04:04 PMFeb 7
to
What is the special sauce? 16 is 16-bit? Why then 64?

Ryan Alswede

unread,
Feb 7, 2024, 8:19:29 PMFeb 7
to
> What is the special sauce? 16 is 16-bit? Why then 64?
64k color? I think?

I'm able to compile the source code:
Linking Executable - c:\ddk\lib\i386\checked\xga.sys for i386
Linking Executable - c:\ddk\lib\i386\checked\xga.dll for i386

We can pretty much build what we want now. I either need the definitions from the XGA208 driver source or I'll have to figure out a way to point the dll to read the XGA2.sys


Ryan Alswede

unread,
Feb 20, 2024, 11:13:09 AMFeb 20
to
I tried to change the driver to use the standard 16-bit color palette load method but it just blue screens.

Also tried pairing the xga2.sys with the framebuf.dll which is use in a lot of virtual machines as the video driver. It sees all the 256 color modes and one 65536 color mode. If I try to use the one listed 65536 color mode the screen redraws to long and distorted, the colors are very dark so no luck there.

Looking in the leaked 2000 SP1 retail build source code the only reference left in the source to xga is this one comment:
*... unless the display driver is xga.drv,
* because XGA cards aren't really VGA compatible

Yes looks to be true so far.

Louis Ohland

unread,
Feb 20, 2024, 12:30:25 PMFeb 20
to
XGAKIT.ZIP IBM XGA Graphics routines. C and ASM Source. C Demo program.
https://www.ardent-tool.com/video/XGAKIT.ZIP

Louis Ohland

unread,
Feb 20, 2024, 3:09:11 PMFeb 20
to
Ryan, are you using an XGA card or XGA-NI [XGA-2]?

"standard 16-bit color palette load method"

For which "standard"? VGA? XGA?

"If I try to use the one listed 65536 color mode the screen redraws to
long and distorted, the colors are very dark so no luck there."

I assume the 640x480x 64k palette bypass mode [aka direct color mode]?

Ryan Alswede

unread,
Feb 20, 2024, 8:57:20 PMFeb 20
to

> For which "standard"? VGA? XGA?
It's not a question of loading registers of XGA, that is already done by UnalZ's xga2.sys driver. The part we have to figure out is how to get the GDI of NT to pass through the right data through the video driver

Does any know Michal Necasek over on the OS2 museum website. Looks like he has tons of experience with NT video drivers. He could give us guidance.

Remember we don't need sys level, we need video driver which operates between the NT GDI engine and the sys. Passing the correct packet into the driver.sys

https://www.os2museum.com/wp/nt-video-miniport-uhd/
0 new messages