- implemented graphics snapshot for mode X (variant of VGA mode 0x13)
- bugfix: CGA1 mode depends on the CGA compatiblity switch
This commit is contained in:
parent
b8b2a7253b
commit
a0b4b4898b
@ -54,6 +54,9 @@ Bochs repository moved to the SVN version control !
|
|||||||
- added support for MSVC DLL plugins with a separate workspace package.
|
- added support for MSVC DLL plugins with a separate workspace package.
|
||||||
VS2008Ex can now create a BOCHS.EXE with a set of plugin DLLs.
|
VS2008Ex can now create a BOCHS.EXE with a set of plugin DLLs.
|
||||||
TODO: nmake still cannot create plugin DLLs.
|
TODO: nmake still cannot create plugin DLLs.
|
||||||
|
- removed some outdated / unmaintained parts from the Bochs code: BeOS host
|
||||||
|
support, plex86 support, networking module 'arpback', text snapshot check
|
||||||
|
feature.
|
||||||
|
|
||||||
- I/O Devices
|
- I/O Devices
|
||||||
- Networking
|
- Networking
|
||||||
@ -70,6 +73,8 @@ Bochs repository moved to the SVN version control !
|
|||||||
Linux (ALSA / OSS)
|
Linux (ALSA / OSS)
|
||||||
- PCI
|
- PCI
|
||||||
- added framework for PCI ROM support
|
- added framework for PCI ROM support
|
||||||
|
- new bochsrc option 'pci' replaces the 'i440fxsupport' option. The 'chipset'
|
||||||
|
parameter for now only accepts the value 'i440fx'.
|
||||||
- VGA
|
- VGA
|
||||||
- added PCI ROM support to cirrus and pcivga and moved ROM loading for the ISA
|
- added PCI ROM support to cirrus and pcivga and moved ROM loading for the ISA
|
||||||
case to the vga code (SeaBIOS now usable by Bochs)
|
case to the vga code (SeaBIOS now usable by Bochs)
|
||||||
@ -88,11 +93,16 @@ Bochs repository moved to the SVN version control !
|
|||||||
(WARNING: legacy BIOS no longer works with a PCI display adapter)
|
(WARNING: legacy BIOS no longer works with a PCI display adapter)
|
||||||
|
|
||||||
- GUI and display libraries
|
- GUI and display libraries
|
||||||
- vga update interval now uses host timing if the realtime synchronization
|
- new parameter 'update_freq' for the 'vga' bochsrc option replaces the
|
||||||
|
'vga_update_interval' option
|
||||||
|
- vga update frequency now uses host timing if the realtime synchronization
|
||||||
is enabled with the "clock" option (FIXME: it should always be used -
|
is enabled with the "clock" option (FIXME: it should always be used -
|
||||||
independent from the "clock" setting)
|
independent from the "clock" setting)
|
||||||
- Implemented graphics mode snapshot for VBE, Cirrus and standard VGA modes.
|
- Implemented graphics mode snapshot for VBE, Cirrus and standard VGA modes.
|
||||||
Some unusual modes like CGA, and mode X are not supported yet.
|
CGA modes are not supported yet.
|
||||||
|
|
||||||
|
- Config interface
|
||||||
|
- win32paramdlg: dialog size now adjusted to support larger label text
|
||||||
|
|
||||||
- SF patches applied
|
- SF patches applied
|
||||||
[3302668] VMX preemption timer by Jianan Hao
|
[3302668] VMX preemption timer by Jianan Hao
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
// $Id$
|
// $Id$
|
||||||
/////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////
|
||||||
//
|
//
|
||||||
// Copyright (C) 2002-2009 The Bochs Project
|
// Copyright (C) 2002-2011 The Bochs Project
|
||||||
//
|
//
|
||||||
// This library is free software; you can redistribute it and/or
|
// This library is free software; you can redistribute it and/or
|
||||||
// modify it under the terms of the GNU Lesser General Public
|
// modify it under the terms of the GNU Lesser General Public
|
||||||
@ -1874,7 +1874,7 @@ void bx_vga_c::update(void)
|
|||||||
unsigned long line_compare;
|
unsigned long line_compare;
|
||||||
Bit8u *plane[4];
|
Bit8u *plane[4];
|
||||||
|
|
||||||
if (BX_VGA_THIS s.graphics_ctrl.memory_mapping == 3) { // CGA 640x200x2
|
if ((BX_VGA_THIS s.CRTC.reg[0x17] & 1) == 0) { // CGA 640x200x2
|
||||||
|
|
||||||
for (yc=0, yti=0; yc<iHeight; yc+=Y_TILESIZE, yti++) {
|
for (yc=0, yti=0; yc<iHeight; yc+=Y_TILESIZE, yti++) {
|
||||||
for (xc=0, xti=0; xc<iWidth; xc+=X_TILESIZE, xti++) {
|
for (xc=0, xti=0; xc<iWidth; xc+=X_TILESIZE, xti++) {
|
||||||
@ -2713,10 +2713,9 @@ int bx_vga_c::get_snapshot_mode()
|
|||||||
} else if (!BX_VGA_THIS s.graphics_ctrl.graphics_alpha) {
|
} else if (!BX_VGA_THIS s.graphics_ctrl.graphics_alpha) {
|
||||||
return BX_GUI_SNAPSHOT_TXT;
|
return BX_GUI_SNAPSHOT_TXT;
|
||||||
} else if ((BX_VGA_THIS s.graphics_ctrl.shift_reg == 0) &&
|
} else if ((BX_VGA_THIS s.graphics_ctrl.shift_reg == 0) &&
|
||||||
(BX_VGA_THIS s.graphics_ctrl.memory_mapping != 3)) {
|
((BX_VGA_THIS s.CRTC.reg[0x17] & 1) != 0)) {
|
||||||
return BX_GUI_SNAPSHOT_GFX;
|
return BX_GUI_SNAPSHOT_GFX;
|
||||||
} else if ((BX_VGA_THIS s.graphics_ctrl.shift_reg == 2) &&
|
} else if (BX_VGA_THIS s.graphics_ctrl.shift_reg == 2) {
|
||||||
(BX_VGA_THIS s.sequencer.chain_four)) {
|
|
||||||
return BX_GUI_SNAPSHOT_GFX;
|
return BX_GUI_SNAPSHOT_GFX;
|
||||||
} else {
|
} else {
|
||||||
return BX_GUI_SNAPSHOT_UNSUP;
|
return BX_GUI_SNAPSHOT_UNSUP;
|
||||||
@ -2824,13 +2823,17 @@ Bit32u bx_vga_c::get_gfx_snapshot(Bit8u **snapshot_ptr, Bit8u **palette_ptr,
|
|||||||
}
|
}
|
||||||
BX_VGA_THIS get_dac_palette(palette_ptr, 2);
|
BX_VGA_THIS get_dac_palette(palette_ptr, 2);
|
||||||
return len;
|
return len;
|
||||||
} else if ((BX_VGA_THIS s.graphics_ctrl.shift_reg == 2) &&
|
} else if (BX_VGA_THIS s.graphics_ctrl.shift_reg == 2) {
|
||||||
(BX_VGA_THIS s.sequencer.chain_four)) {
|
|
||||||
for (y = 0; y < BX_VGA_THIS s.last_yres; y++) {
|
for (y = 0; y < BX_VGA_THIS s.last_yres; y++) {
|
||||||
for (x = 0; x < BX_VGA_THIS s.last_xres; x++) {
|
for (x = 0; x < BX_VGA_THIS s.last_xres; x++) {
|
||||||
px = x >> 1;
|
px = x >> 1;
|
||||||
py = y >> BX_VGA_THIS s.y_doublescan;
|
py = y >> BX_VGA_THIS s.y_doublescan;
|
||||||
byte_offset = start_addr + py * BX_VGA_THIS s.line_offset + (px & ~0x03);
|
byte_offset = start_addr + py * BX_VGA_THIS s.line_offset;
|
||||||
|
if (BX_VGA_THIS s.sequencer.chain_four) {
|
||||||
|
byte_offset += (px & ~0x03);
|
||||||
|
} else {
|
||||||
|
byte_offset += (px >> 2);
|
||||||
|
}
|
||||||
*(dst_ptr++) = plane[px % 4][byte_offset];
|
*(dst_ptr++) = plane[px % 4][byte_offset];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
// $Id$
|
// $Id$
|
||||||
/////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////
|
||||||
//
|
//
|
||||||
// Copyright (C) 2002-2009 The Bochs Project
|
// Copyright (C) 2002-2011 The Bochs Project
|
||||||
//
|
//
|
||||||
// This library is free software; you can redistribute it and/or
|
// This library is free software; you can redistribute it and/or
|
||||||
// modify it under the terms of the GNU Lesser General Public
|
// modify it under the terms of the GNU Lesser General Public
|
||||||
|
Loading…
Reference in New Issue
Block a user