- isempty() returns 1 if string length is 0 or string has special value "none"
- sprint() copies the formatted / converted string into a buffer
- use new methods in some parts of the code (TODO: win32 dialogs)
- check for the special value "none" to avoid failures
- moved 'user_shortcut' option to the keyboard option
- added new bx_param_c option value BOCHSRC_HIDDEN for parameters that should
only be available in the config interface. The new bochsrc option save and
parser function skip parameters with this flag set. This is useful for
parameters that will be set from the parser in a different way.
- save keyboard bochsrc line using the parameter list directly
- parse keyboard bochsrc options (except 'keymap') using the parameter list
- user shortcut: old-style syntax has already been removed
- increased minimum value for the keyboard's 'serial_delay'
- removed parameter "present" and use the new drive type "none" instead
- re-implemented cdrom media status parameter as a bx_param_enum_c
- TODO: change floppy media status parameter type to be consistent
- fixed bochsrc line after a "raw byte" string parameter
- changed parameter name "macaddr" to "mac" (same as bochsrc option parameter)
- skip disabled parameters when building the bochsrc line
- added "multiline" switch to select the output format (one or multiple lines)
- renamed siminterface method and use it in the network devices code
- renamed config parameter "i440fx_support" to "enabled"
- new config parameter "chipset" added (current choices "i430FX" and "i440FX")
- don't load ACPI support if the i430FX chipset is selected
- select register values for the core PCI devices depending on the chipset
- USB UHCI must be connected to a PCI slot if the i430FX chipset is used
- rombios changes to make the i430FX chipset work
- TODO #1: implement limitation to 1 cpu and 128 MB RAM for the i430FX chipset
- TODO #2: verify register behaviour of both chipsets
- 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
- wxdialog: use symbols and allow log action ACT_IGNORE for LOGLEV_ERROR
- wxdialog: removed obsolete pass event
- TODO: fix win32dialog stuff in a similar way
type of the r/o disk for the undoable / volatile mode. The format check code
is currently written for flat, sparse and growing images. The undoable and
volatile mode now cause a panic if the r/o image mode is unsupported.
- TODO #1: rewrite the header checks for vmware3, vmware4 and vpc images to make
them usable for autodetection.
- TODO #2: add support for other types of r/o disks in undoable/volatile mode.
- TODO #3: add an image mode 'auto' for the supported types (NOTE: unknown images
can be treated as flat ones if their size is multiple of 512).
time if requested (reduces code duplication)
- 'vpc' image mode: moved header check to a separate function that opens the
file, checks header/footer and returns disk type (if requested)
- implemented restore function for 'vpc' mode images
- gui: updated yes/no dialog message after saving state
- save/restore documentation update (TODO: developer doc)
undoable, volatile)
- TODO: save state function for the remaining image modes, restore support
- save/restore: when saving binary data to a file, use the full parameter path
(except "bochs." prefix) as the file name to avoid overwriting duplicates
dummy parameter and it's save/restore handlers. Currently only the save
support is implemented and the specific save function is only written for
flat mode images (copies whole disk image file to the save/restore folder).
- TODO #1: implement save function for the other disk image modes
- TODO #2: add restore support (replace disk image file with the one from the
save/restore folder)
- re-implemented siminterface method is_wx_selected() (the old one had been
renamed to has_debug_gui() which is something different now)
- don't use alarm() if the wx gui is selected and instead use the wxTimer based
code that already exists for wxMSW
Added a new event BX_ASYNC_EVT_QUIT_SIM that is posted from the simulation thread
to the gui thread and the "Bochs stopped" message box is shown there.
- TODO: Fix random freezes in wxGTK that seem to be caused by the "show ips"
feature. A async event like the one above could possibly fix this problem.
"hideIPS" could be used if there is still trouble)
- siminterface / wx: updated / added comments
- renamed wxWidgets README (some more updates may be required)
- TODO: fix deadlock after pressing the power button (wxGTK only)
- uninstall parameter handlers (floppy, keyboard)
- unload plugin that cannot be removed automatically
- wx: removed "show keyboard" demo and some other cleanups
- TODO: remove wx debugger and make wx work with the enhanced gui debugger
- ported Qemu block driver (written by Alex Beregszaszi and Kevin Wolf)
- added helper functions bx_read_image() and bx_write_image()
- TODO: use helper function for the other disk image modes
- SIM->opt_plugin_ctrl() now can be used to verify the optional plugin
configuration when using the plugin name "*". The 'load' value 1 makes
sure that all plugins with the value 1 are loaded. The 'load' value 0
unloads all plugin with the value 0 (marked for removal).
- add the default set of plugins to the 'plugin_ctrl' list and load all these
pre-defined optional plugins before parsing the configuration.
- special wx case: verify plugin configuration before showing the plugin
control dialog and before initialising hardware.
- device plugins that have been loaded, but not configured now set their
plugin control value to 0. Added the plugin unload check before signalling reset.
- enh_dbg: fixed defined-but-not-used warnings
- siminterface: renamed 'wx_debug_gui' to 'bx_debug_gui' and updated comments
- TODO: remove the wx debugger and use the enhanced gui debugger instead