VBESetVBEMode() calls int10 0x4f02 to set a VBE video mode. This can be a

standard mode solely determined by the mode ID or it may be a detailed
    mode with almost arbitrary mode parameters. The mode parameters are
    passed to the BIOS in a memory area pointed to by es:di. If bit 11 in
    the video mode is set this memory area is evaluated. When we don't have
    such an area (passed to VBESetVBEMode() this function should unset this
    bit for sanity reasons. (Bugzilla #3329)
This commit is contained in:
Egbert Eich 2005-05-18 15:38:50 +00:00
parent f28d644d9f
commit fddcde777f

View File

@ -469,7 +469,8 @@ VBESetVBEMode(vbeInfoPtr pVbe, int mode, VbeCRTCInfoBlock *block)
memcpy(pVbe->memory, block, sizeof(VbeCRTCInfoBlock)); memcpy(pVbe->memory, block, sizeof(VbeCRTCInfoBlock));
pVbe->pInt10->es = SEG_ADDR(pVbe->real_mode_base); pVbe->pInt10->es = SEG_ADDR(pVbe->real_mode_base);
pVbe->pInt10->di = SEG_OFF(pVbe->real_mode_base); pVbe->pInt10->di = SEG_OFF(pVbe->real_mode_base);
} } else
pVbe->pInt10->bx &= ~(1 << 11);
xf86ExecX86int10(pVbe->pInt10); xf86ExecX86int10(pVbe->pInt10);