]> git.proxmox.com Git - qemu.git/commitdiff
Revert "vga: add some optional CGA compatibility hacks"
authormalc <av1474@comtv.ru>
Mon, 27 Aug 2012 14:33:20 +0000 (18:33 +0400)
committermalc <av1474@comtv.ru>
Mon, 27 Aug 2012 14:33:20 +0000 (18:33 +0400)
This reverts commit 482f7bf86b43af9f6903c52726fedf82b28bf953.

Signed-off-by: malc <av1474@comtv.ru>
hw/pc.h
hw/vga.c
qemu-options.hx
vl.c

diff --git a/hw/pc.h b/hw/pc.h
index 37e2f875839eb8feac373195078b1ea18a09e0c4..e4db0715b81e8248d0f1cf76179b4f9afa4d8dd8 100644 (file)
--- a/hw/pc.h
+++ b/hw/pc.h
@@ -176,10 +176,6 @@ enum vga_retrace_method {
 
 extern enum vga_retrace_method vga_retrace_method;
 
-#define VGA_CGA_HACK_PALETTE_BLANKING  (1<<0)
-#define VGA_CGA_HACK_FONT_HEIGHT       (1<<1)
-extern int vga_cga_hacks;
-
 static inline DeviceState *isa_vga_init(ISABus *bus)
 {
     ISADevice *dev;
index a65fc26ab77eece697b8a79fa8c47300e1400680..f82ced8e662cecfb26d2ac223e56fb340c7fd4cd 100644 (file)
--- a/hw/vga.c
+++ b/hw/vga.c
@@ -547,31 +547,14 @@ void vga_ioport_write(void *opaque, uint32_t addr, uint32_t val)
         printf("vga: write CR%x = 0x%02x\n", s->cr_index, val);
 #endif
         /* handle CR0-7 protection */
-        if (s->cr[VGA_CRTC_V_SYNC_END] & VGA_CR11_LOCK_CR0_CR7) {
-            if (s->cr_index <= VGA_CRTC_OVERFLOW) {
-                /* can always write bit 4 of CR7 */
-                if (s->cr_index == VGA_CRTC_OVERFLOW) {
-                    s->cr[VGA_CRTC_OVERFLOW] =
-                        (s->cr[VGA_CRTC_OVERFLOW] & ~0x10) | (val & 0x10);
-                }
-                return;
-            } else if ((vga_cga_hacks & VGA_CGA_HACK_FONT_HEIGHT) &&
-                       !(s->sr[VGA_SEQ_CLOCK_MODE] & VGA_SR01_CHAR_CLK_8DOTS)) {
-                /* extra CGA compatibility hacks (not in standard VGA) */
-                if (s->cr_index == VGA_CRTC_MAX_SCAN &&
-                    val == 7 &&
-                    (s->cr[VGA_CRTC_MAX_SCAN] & 0xf) == 0xf) {
-                    return;
-                } else if (s->cr_index == VGA_CRTC_CURSOR_START &&
-                           val == 6 &&
-                           (s->cr[VGA_CRTC_MAX_SCAN] & 0xf) == 0xf) {
-                    val = 0xd;
-                } else if (s->cr_index == VGA_CRTC_CURSOR_END &&
-                           val == 7 &&
-                           (s->cr[VGA_CRTC_MAX_SCAN] & 0xf) == 0xf) {
-                    val = 0xe;
-                }
+        if ((s->cr[VGA_CRTC_V_SYNC_END] & VGA_CR11_LOCK_CR0_CR7) &&
+            s->cr_index <= VGA_CRTC_OVERFLOW) {
+            /* can always write bit 4 of CR7 */
+            if (s->cr_index == VGA_CRTC_OVERFLOW) {
+                s->cr[VGA_CRTC_OVERFLOW] = (s->cr[VGA_CRTC_OVERFLOW] & ~0x10) |
+                    (val & 0x10);
             }
+            return;
         }
         s->cr[s->cr_index] = val;
 
@@ -1903,10 +1886,7 @@ static void vga_update_display(void *opaque)
         /* nothing to do */
     } else {
         full_update = 0;
-        if (!(s->ar_index & 0x20) &&
-            /* extra CGA compatibility hacks (not in standard VGA */
-            (!(vga_cga_hacks & VGA_CGA_HACK_PALETTE_BLANKING) ||
-             (s->ar_index != 0 && s->ar_flip_flop))) {
+        if (!(s->ar_index & 0x20)) {
             graphic_mode = GMODE_BLANK;
         } else {
             graphic_mode = s->gr[VGA_GFX_MISC] & VGA_GR06_GRAPHICS_MODE;
index 0682338e9f9a18f05052d30cf9f02a68532a37d0..3e8085d463ef120d140085d9144cc99e3df87a21 100644 (file)
@@ -975,25 +975,6 @@ Valid optional properties are
 @item retrace=dumb|precise
 Select dumb (default) or precise VGA retrace logic, useful for some
 DOS games/demos.
-@item cga_hacks=@var{hack1}[+@var{hack2},[...]]
-Enable various extra CGA compatibility hacks for programs that are
-trying to directly set CGA modes without BIOS assistance nor
-real knowledge of EGA/VGA.  These might only work with -vga std.
-Valid hacks are
-@table @option
-@item palette_blanking
-Wait to blank the screen until palette registers seem to actually be
-modified, instead of blanking it as soon as the palette address bit (0x10)
-of the attribute address register (0x3c0) is cleared.
-@item font_height
-Ignore attempts to change the VGA font height (index 9),
-cursor start (index 10), and cursor end (index 11) of the CRTC control
-registers (0x3d5) if trying to set them to the default for CGA fonts
-instead of VGA fonts.
-@item all
-Enable all CGA hacks.  More CGA hacks may be added in future versions
-of qemu.
-@end table
 @end table
 ETEXI
 
diff --git a/vl.c b/vl.c
index 16d04a2ee2561bfcc5a0a1e46e58b4b7afb8c0a2..febfd62c375645901de0bcca1cf184802d272b8d 100644 (file)
--- a/vl.c
+++ b/vl.c
@@ -179,7 +179,6 @@ int main(int argc, char **argv)
 static const char *data_dir;
 const char *bios_name = NULL;
 enum vga_retrace_method vga_retrace_method = VGA_RETRACE_DUMB;
-int vga_cga_hacks = 0;
 DisplayType display_type = DT_DEFAULT;
 int display_remote = 0;
 const char* keyboard_layout = NULL;
@@ -1749,28 +1748,6 @@ static void select_vgahw (const char *p)
             else if (strstart(opts, "precise", &nextopt))
                 vga_retrace_method = VGA_RETRACE_PRECISE;
             else goto invalid_vga;
-        } else if (strstart(opts, ",cga_hacks=", &nextopt)) {
-            opts = nextopt;
-            while (*opts) {
-                if (strstart(opts, "all", &nextopt)) {
-                    opts = nextopt;
-                    vga_cga_hacks |= ~0;
-                } else if (strstart(opts, "palette_blanking", &nextopt)) {
-                    opts = nextopt;
-                    vga_cga_hacks |= VGA_CGA_HACK_PALETTE_BLANKING;
-                } else if (strstart(opts, "font_height", &nextopt)) {
-                    opts = nextopt;
-                    vga_cga_hacks |= VGA_CGA_HACK_FONT_HEIGHT;
-                } else {
-                    break;
-                }
-
-                if (*opts == '+') {
-                    opts++;
-                } else {
-                    break;
-                }
-            }
         } else goto invalid_vga;
         opts = nextopt;
     }