Hi,
~ wrote:
But then, what resolution does NO$GMB 2.5 for DOS use?
Probably 640x480x256 VESA, but that's just a guess.
~ wrote:
Is it VESA or plain VGA?
Is it 640x480 or 512x480?
It has at least 256 colors.
If it's a resolution achievable by the VGA but not standard, it would be very important to get the VGA registers somehow.
Because it's a DOS program, that's actually quite easy.
You'll have to write a small TSR that sits on the video and keyboard interrupts. Whenever a video interrupt is called, you log the registers into a file. For the keyboard interrupt, you look for a specific key (let' say PrScr), and when it pressed, then you read and log the VGA registers.
You install this TSR before you start NO$GMB. Then when you see it's using that resolution, you press PrScr, and violá, you'll have in the log file everything you need. If it's a VESA mode, then you'll see it's mode number (could be card specific). If it's a VGA mode, then you'll see what resolution was originally used, and in the register dump you'll see what clock values were used (those are probably just garbage for VESA modes, only valid if a VGA mode was set with the video int).
See
https://files.osdev.org/mirrors/geezer/osd/graphics/modes.c, it lists VGA register dumps for a few modes. Combining different vsync and hsync values may result in non-standard, but working resolutions (or blowing up your CRTC monitor
). For example 320x240 is achieved by using half the clock values of 640x480.
Also
http://www.rohitab.com/discuss/topic/42383-entering-mode-q-by-tweaking-vga-mode-13h/This might be useful tooI've never heard of a mode 512 wide, however it's half of 1024, so I assume 512x384 wouldn't be impossible (in theory at least). With 256 colors, it could fit into the VGA RAM, but would need 3 banks (mode-x uses only 2).
Cheers,
bzt