Cirrus: Added support for 4-bpp VBE modes with original VGABIOS.
This commit is contained in:
parent
e4d8ca494f
commit
75d76db967
@ -1740,11 +1740,16 @@ void bx_svga_cirrus_c::svga_write_crtc(Bit32u address, unsigned index, Bit8u val
|
||||
BX_CIRRUS_THIS s.plane_shift = 19;
|
||||
}
|
||||
#endif
|
||||
BX_CIRRUS_THIS s.memsize_mask = 0xfffff;
|
||||
BX_CIRRUS_THIS s.ext_start_addr = ((BX_CIRRUS_THIS crtc.reg[0x1b] & 0x01) << 16) |
|
||||
((BX_CIRRUS_THIS crtc.reg[0x1b] & 0x04) << 15);
|
||||
BX_CIRRUS_THIS s.ext_offset = BX_CIRRUS_THIS bank_base[0];
|
||||
} else {
|
||||
#ifndef VGA_MEM_FIX
|
||||
BX_CIRRUS_THIS s.plane_shift = 16;
|
||||
#endif
|
||||
BX_CIRRUS_THIS s.memsize_mask = 0x3ffff;
|
||||
BX_CIRRUS_THIS s.ext_start_addr = 0;
|
||||
BX_CIRRUS_THIS s.ext_offset = 0;
|
||||
}
|
||||
BX_CIRRUS_THIS svga_pitch = (BX_CIRRUS_THIS crtc.reg[0x13] << 3) | ((BX_CIRRUS_THIS crtc.reg[0x1b] & 0x10) << 7);
|
||||
|
@ -361,6 +361,7 @@ void bx_vgacore_c::vgacore_register_state(bx_list_c *parent)
|
||||
#endif
|
||||
new bx_shadow_num_c(list, "dac_shift", &BX_VGA_THIS s.dac_shift);
|
||||
new bx_shadow_num_c(list, "ext_offset", &BX_VGA_THIS s.ext_offset);
|
||||
new bx_shadow_num_c(list, "ext_start_addr", &BX_VGA_THIS s.ext_start_addr);
|
||||
BXRS_PARAM_BOOL(list, ext_y_dblsize, BX_VGA_THIS s.ext_y_dblsize);
|
||||
new bx_shadow_num_c(list, "last_xres", &BX_VGA_THIS s.last_xres);
|
||||
new bx_shadow_num_c(list, "last_yres", &BX_VGA_THIS s.last_yres);
|
||||
@ -1391,7 +1392,7 @@ void bx_vgacore_c::update(void)
|
||||
unsigned long byte_offset;
|
||||
unsigned xc, yc, xti, yti;
|
||||
|
||||
start_addr = BX_VGA_THIS s.CRTC.start_addr;
|
||||
start_addr = BX_VGA_THIS s.CRTC.start_addr + BX_VGA_THIS s.ext_start_addr;
|
||||
|
||||
determine_screen_dimensions(&iHeight, &iWidth);
|
||||
if((iWidth != BX_VGA_THIS s.last_xres) || (iHeight != BX_VGA_THIS s.last_yres) ||
|
||||
|
@ -268,6 +268,7 @@ protected:
|
||||
#endif
|
||||
Bit8u dac_shift;
|
||||
Bit32u ext_offset;
|
||||
Bit32u ext_start_addr;
|
||||
bool ext_y_dblsize;
|
||||
// last active resolution and bpp
|
||||
Bit16u last_xres;
|
||||
|
Loading…
Reference in New Issue
Block a user