mirror of
https://github.com/reactos/reactos.git
synced 2024-08-06 03:14:36 +00:00
[NTVDM:BIOS]
Implement VBE function AH = 0x05, "CPU Video Memory Control". svn path=/trunk/; revision=72451
This commit is contained in:
parent
e145ed06c6
commit
e7339745af
|
@ -525,6 +525,53 @@ VOID WINAPI VbeService(LPWORD Stack)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* CPU Video Memory Control */
|
||||||
|
case 0x05:
|
||||||
|
{
|
||||||
|
BYTE Window = getBL();
|
||||||
|
BYTE OldGcIndex = IOReadB(VGA_GC_INDEX);
|
||||||
|
|
||||||
|
switch (getBH())
|
||||||
|
{
|
||||||
|
/* Select Memory Window */
|
||||||
|
case 0:
|
||||||
|
{
|
||||||
|
setAL(0x4F);
|
||||||
|
|
||||||
|
if (getDH() != 0)
|
||||||
|
{
|
||||||
|
/* Offset too high */
|
||||||
|
setAH(1);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
IOWriteB(VGA_GC_INDEX, (Window == 0) ? SVGA_GC_OFFSET_0_REG : SVGA_GC_OFFSET_1_REG);
|
||||||
|
IOWriteB(VGA_GC_DATA, getDL());
|
||||||
|
|
||||||
|
setAH(0);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Return Memory Window */
|
||||||
|
case 1:
|
||||||
|
{
|
||||||
|
IOWriteB(VGA_GC_INDEX, (Window == 0) ? SVGA_GC_OFFSET_0_REG : SVGA_GC_OFFSET_1_REG);
|
||||||
|
setDX(IOReadB(VGA_GC_DATA));
|
||||||
|
|
||||||
|
setAX(0x004F);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
default:
|
||||||
|
{
|
||||||
|
DPRINT("VESA INT 0x10, AH = 0x05, Unknown subfunction: %02X", getBH());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
IOWriteB(VGA_GC_INDEX, OldGcIndex);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
default:
|
default:
|
||||||
{
|
{
|
||||||
DPRINT1("VESA BIOS Extensions function %02Xh NOT IMPLEMENTED!\n", getAL());
|
DPRINT1("VESA BIOS Extensions function %02Xh NOT IMPLEMENTED!\n", getAL());
|
||||||
|
|
Loading…
Reference in a new issue