+VOID\r
+InitializeBochsGraphicsMode (\r
+ QEMU_VIDEO_PRIVATE_DATA *Private,\r
+ QEMU_VIDEO_MODE_DATA *ModeData\r
+ )\r
+{\r
+ DEBUG ((\r
+ DEBUG_INFO,\r
+ "InitializeBochsGraphicsMode: %dx%d @ %d\n",\r
+ ModeData->HorizontalResolution,\r
+ ModeData->VerticalResolution,\r
+ ModeData->ColorDepth\r
+ ));\r
+\r
+ /* set color mode */\r
+ VgaOutb (Private, MISC_OUTPUT_REGISTER, 0x01);\r
+\r
+ /* reset flip flop + unblank */\r
+ VgaInb (Private, INPUT_STATUS_1_REGISTER);\r
+ VgaOutb (Private, ATT_ADDRESS_REGISTER, 0x20);\r
+\r
+ BochsWrite (Private, VBE_DISPI_INDEX_ENABLE, 0);\r
+ BochsWrite (Private, VBE_DISPI_INDEX_BANK, 0);\r
+ BochsWrite (Private, VBE_DISPI_INDEX_X_OFFSET, 0);\r
+ BochsWrite (Private, VBE_DISPI_INDEX_Y_OFFSET, 0);\r
+\r
+ BochsWrite (Private, VBE_DISPI_INDEX_BPP, (UINT16)ModeData->ColorDepth);\r
+ BochsWrite (Private, VBE_DISPI_INDEX_XRES, (UINT16)ModeData->HorizontalResolution);\r
+ BochsWrite (Private, VBE_DISPI_INDEX_VIRT_WIDTH, (UINT16)ModeData->HorizontalResolution);\r
+ BochsWrite (Private, VBE_DISPI_INDEX_YRES, (UINT16)ModeData->VerticalResolution);\r
+ BochsWrite (Private, VBE_DISPI_INDEX_VIRT_HEIGHT, (UINT16)ModeData->VerticalResolution);\r
+\r
+ BochsWrite (\r
+ Private,\r
+ VBE_DISPI_INDEX_ENABLE,\r
+ VBE_DISPI_ENABLED | VBE_DISPI_LFB_ENABLED\r
+ );\r