A lof ot protected mode software sets it's video mode without calling BIOS -- to do this it is often more convenient to check the ROM data table which contains all the register values needed to set a EGA/VGA to the desired mode.
It appears that the table provided by DOSBOX is incomplete and only provides data for modes 0x04,0x05,0x06,0x07,0x0D,0x0E, 0x11 and 0x12. All the other video modes provide no useful information.
The table I'm referring to is pointed to by the pointer that the BIOS save area pointer is pointing at... Lemme explain that in code:
sequencer:array[0..3] of byte;
crtc:array[0..$18] of byte;
attr:array[0..$13] of byte;
gcr:array[0..8] of byte;
biosDataPointer:pointer absolute $0040:$00A8;
for t:=0 to $13 do begin
write('mode ',byte2hex(t),' - ');
write(data^.columns:4,' x',data^.rows:4,' - ');
On a real EGA/VGA returns data for all video modes. Completely empty 0.74 and the current SVN.
Though if I force feed the correct values to the CRTC to set the mode manually it works, so at least that's something.
Log in to post a comment.