VirtualBox

Changeset 40148 in vbox for trunk/src/VBox/Devices/Graphics


Ignore:
Timestamp:
Feb 16, 2012 1:33:48 PM (13 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
76299
Message:

Let VGA BIOS get out of VBE mode only through VGA registers.

Location:
trunk/src/VBox/Devices/Graphics
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/Graphics/BIOS/vgabios.c

    r33656 r40148  
    844844#ifdef VBE
    845845 if (vbe_has_vbe_display()) {
    846    dispi_set_enable(VBE_DISPI_DISABLED);
     846   // Force controller into VGA mode
     847   outb(VGAREG_SEQU_ADDRESS,7);
     848   outb(VGAREG_SEQU_DATA,0x00);
    847849  }
    848850#endif // def VBE
  • trunk/src/VBox/Devices/Graphics/DevVGA.cpp

    r39425 r40148  
    350350    (uint8_t)~0xff,
    351351    (uint8_t)~0xff,
    352     (uint8_t)~0x00,
     352    (uint8_t)~0x01,
    353353};
    354354
     
    725725        Log2(("vga: write SR%x = 0x%02x\n", s->sr_index, val));
    726726        s->sr[s->sr_index] = val & sr_mask[s->sr_index];
     727        /* Allow SR07 to disable VBE. */
     728        if (s->sr_index == 0x07 && !(val & 1))
     729        {
     730            s->vbe_regs[VBE_DISPI_INDEX_ENABLE] = VBE_DISPI_DISABLED;
     731            s->bank_offset = 0;
     732        }
    727733        if (s->fRealRetrace && s->sr_index == 0x01)
    728734            vga_update_retrace_state(s);
     
    10911097                    s->sr[4] |= 0x08; /* set chain 4 mode */
    10921098                    s->sr[2] |= 0x0f; /* activate all planes */
     1099                    /* Indicate non-VGA mode in SR07. */
     1100                    s->sr[7] |= 1;
    10931101                }
    10941102                s->gr[0x05] = (s->gr[0x05] & ~0x60) | (shift_control << 5);
     
    41424150 * @param   pszTitle            The title text, NULL if none.
    41434151 */
    4144 static void vgaInfoTextPrintSeparatorLine(PCDBGFINFOHLP pHlp, uint32_t cCols, const char *pszTitle)
     4152static void vgaInfoTextPrintSeparatorLine(PCDBGFINFOHLP pHlp, size_t cCols, const char *pszTitle)
    41454153{
    41464154    if (pszTitle)
     
    41544162        else
    41554163        {
    4156             uint32_t cchLeft = (cCols - cchTitle - 2) / 2;
     4164            size_t cchLeft = (cCols - cchTitle - 2) / 2;
    41574165            cCols -= cchLeft + cchTitle + 2;
    41584166            while (cchLeft-- > 0)
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette