diff options
author | bellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162> | 2005-04-17 17:56:18 +0000 |
---|---|---|
committer | bellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162> | 2005-04-17 17:56:18 +0000 |
commit | e3a4e4b64302b7bd38f206421113312b427d35c8 (patch) | |
tree | 0417938cdd1ebadf55e100949a9d9df521080160 /hw/cirrus_vga.c | |
parent | 40545f84cfcbe4b73cca040b3043a1c2de935762 (diff) | |
download | qemu-e3a4e4b64302b7bd38f206421113312b427d35c8.zip qemu-e3a4e4b64302b7bd38f206421113312b427d35c8.tar.gz qemu-e3a4e4b64302b7bd38f206421113312b427d35c8.tar.bz2 |
destination write mask support, fixed banked memory access, read-only access for bus type in SR 0x17 (Volker Ruppert)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1364 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'hw/cirrus_vga.c')
-rw-r--r-- | hw/cirrus_vga.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/hw/cirrus_vga.c b/hw/cirrus_vga.c index 4b92b40..13450f0 100644 --- a/hw/cirrus_vga.c +++ b/hw/cirrus_vga.c @@ -800,7 +800,7 @@ static void cirrus_bitblt_start(CirrusVGAState * s) s->cirrus_blt_srcpitch, s->cirrus_blt_dstaddr, s->cirrus_blt_srcaddr, - s->sr[0x2f]); + s->gr[0x2f]); #endif switch (s->cirrus_blt_mode & CIRRUS_BLTMODE_PIXELWIDTHMASK) { @@ -1042,10 +1042,10 @@ static void cirrus_update_bank_ptr(CirrusVGAState * s, unsigned bank_index) else offset <<= 12; - if (s->vram_size <= offset) + if (s->real_vram_size <= offset) limit = 0; else - limit = s->vram_size - offset; + limit = s->real_vram_size - offset; if (((s->gr[0x0b] & 0x01) == 0) && (bank_index != 0)) { if (limit > 0x8000) { @@ -1213,7 +1213,7 @@ cirrus_hook_write_sr(CirrusVGAState * s, unsigned reg_index, int reg_value) #endif break; case 0x17: // Configuration Readback and Extended Control - s->sr[reg_index] = reg_value; + s->sr[reg_index] = (s->sr[reg_index] & 0x38) | (reg_value & 0xc7); cirrus_update_memory_access(s); break; default: |