The latest release is from 2001 and it will not work on modern Linux systems.
Parts of the SVGALib code have been moved to the Linux kernel and the X11 and
SDL libraries are using it as a video driver.
Moved status bar update to the gui thread and added a new event type called
BX_ASYNC_EVT_STATUSBAR to invoke it. Changed size and style of the status bar
items.
This code is based on the initial patch by Ben Lunt with some modifications:
using enum parameter, extra parser handler and cdrom handling not necessary,
TODO: hdimage and bximage code, harddrv and USB disk emulation, BIOS.
- Added new PCI chipset choice for the i440BX AGPset. Some basic work is done,
but AGP support is not present yet.
- Added new class for the "virtual" PCI-to-PCI bridge that should manage the
secondary bus (AGP). Since this device must appear with device number #1 at
the primary bus, it was required to change the PCI device numbers for the
i440BX case. Moved the PIIX4 module to device number #7. The presence of the
PCI base address regions now depends on the header type as expected.
- Since the Bochs BIOS cannot handle the modified PCI device layout, all tests
continued with an external BIOS designed for this chipset (GA-6BA_F1.bin).
This BIOS requires additional changes in some devices.
- ACPI: Return value 0 for some status registers and the GPI registers.
- CMOS: Since the PIIX4 supports a 256 byte CMOS RAM, prepared support for it
and enable it in case a 256 byte CMOS image is used.
- PCI: The device numbers for 4 slots starting at #8. The 5th slot could be
used for AGP when available.
Prepared "biosdetect" option in the harddrv code.
TODO #1: Add support for a comma-separated list of BIOS options.
TODO #2: Implement support for at least "biosdetect=none" in the Bochs BIOS.
code. Now the runtime configuration runs in the Bochs window instead of
console / xterm. The simulation screen is restored when the
simulation continues. This feature can be implemented for all guis
without gui dialog box support (e.g. sdl2/sdl2 on non-win32 platforms, rfb).
- Added new symbol BX_SYNC_EVT_LOG_DLG and method log_dlg() in siminterface to
handle the cases "ask", "warn" and "quit".
- Added support to change action from "warn" to "report in the "warn" dialog
(sdl2, win32 and wx).
- TODO: Add quit message box for the log action "fatal" and add BX_FATAL()
macro for all cases where continuing after BX_PANIC would be dangerous.
implemented important CPU statistics which were used for Bochs CPU model performance analysis.
old statistics code from paging.cc and cpu.cc is replaced with new infrastructure.
In order to enale statitics collection in Bochs CPU:
- Enable statistics @ compilation time in cpu/cpustats.h
- Dump statistics periodically by adding -dumpstats N into Bochs command line
gui init and string paramter handler. The shortcut keys are now stored in an
array of BX_KEY* values in the gui object.
siminterface.h: Fixed some default return values.
for watching the log output at simulation time. This feature has been prepared
and described in the code (BX_ASYNC_EVT_LOG_MSG), but it was never implemented.
A viewer window could be implemented easily in wx. The gui debugger could also
have an option to view the log output while debugging.
- in wx we had two logfunctions for the siminterface (removed duplicate init)
- renamed siminterface prefix to "SIM"
- moved variable "pluginlog" to the plugin interface
- fixed / removed some forward declarations
- added menu item for saving configuration
- use existing cdrom runtime menu instead of hardcoded items
- some code cleanups after cdrom option changes
- 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
- 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).
- 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)
- 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
in the config interface. Applied settings are marked as 'done' with the value
-1 to avoid unwanted modification. NOTE: Not all Bochs modules exist when
running the start menu / dialog.
also works and no deplist trick is required
- bx_param_c destructor now deletes the dependent list if it exists (memory leak)
- bx_list_c::clear() only deletes the parameter if the list is it's parent
- added new method cleanup_save_restore() to free memory on simulator shutdown