bx_devmodel_c. The early version of the combined vga / svga_cirrus code
required the now obsolete implementation. Some related cleanups in the
devices code.
- Since the pci_read_handler() method is identical in most devices, move it
to the base class to reduce code duplication. Only the 'pcidev' device has
it's own implementation (NOTE: it is not maintained yet).
- Minor other fixes and cleanups in some PCI devices.
- PCI slot configuration, memory and i/o BAR registration, PCI i/o space
handlers now present in devices.cc
- configure: E1000 emulation and USB support need PCI
- vga: fixes for the non-PCI case
- renamed trigger_timer() methods to refresh_display()
- new argument 'redraw' added to force a refresh of the entire screen
(used in snapshot mode)
- siminterface method refresh_vga() now checks if the Bochs gui init is complete
- use SIM->refresh_vga() in some more cases
- graphics_tile_info() split into a common and specific part
- store snapshot mode in structure bx_svga_tileinfo_t
- in snapshot mode, display adapters copy raw data to buffer
- rewrite of the trigger_timer() code to make it work in all cases
- added new class bx_nonvga_device_c to make forwarding refresh requests to the
Voodoo adapter possible
API) moved to the gui code. Splitted graphics_tile_update() in a common and a
specific part. The common part handles the snapshot case if active. As a side
effect, the snapshot feature now works for CGA modes, too. Fixed palette colors
in 8 bpp snapshots.
the display adapter code. When ready, the common gui code should handle it
completely. The snapshot handler should set a flag 'snapshot_mode' and then it
should force a display update. The graphics update code should be redirected to
some code that 'draws' to a snapshot buffer. These first steps are done:
- store some guest display settings in the gui code (text / graphics switch,
x / y resolution and bpp)
- split 8 bpp palette update code in a common and a specific part and store the
palette values in the gui code
be set for "true", but variable "lfb_enabled" wasn't correctly set up.
- TODO: check the whole Bochs code for the correct usage of variables saved
with bx_param_bool_c.