I'm having to dig deep into long unused parts of my brain (from my DOS days), so if some of it's wrong, sorry, but looks like you're not getting much help otherwise & I'm sure someone will correct where I'm wrong. Anyway, this is why device drivers were invented.
0x13 is the standard vga graphics mode which was defined as 320x200. When SVGA cards first came out, every manufacturer had it's own mode numbers for the resolutions/color depths making it a nightmare to program for SVGA. VESA (
set a SVGA standard that most manufacturers eventually fell in line with.
If your video card is a VESA standard card, then you can set the mode based on the VESA standard. For example: 0x100 is 640x480 256 colors. You'll notice that this is not a 7-bit mode number like 0x13. Vesa defined only one 7-bit mode number 0x6A (try it instead of 0x13) which was 800x600 but only 16 colors. The rest of the modes are 15-bit modes. Most manufacturers had 7-bit modes for their svga settings also.
You could try to find the 7-bit modes for your particular hardware. Or try the 15-bit VESA modes.
Here's how we would set 15-bit modes:
Code:
union REGS in,out;
in.x.ax = 0x4F02; // VESA set video mode
in.x.bx = newmode; // the 15-bit mode i.e. 0x100
int86(0x10,&in,&out);
You can view the vesa standard along with the video modes & source code at:
Hope this helps, if not, then sorry in advance.