* changed data format of text files for save/restore (looks like C/C++ structures,
similar to the format used in old save/restore branches)
* don't set the initial value of shadow bool parameters
* don't set the initial value of bool parameters twice
* cpu/init.cc: missing #undef added
* ne2k.cc: variable tx_timer_active was never set to 1 (type now bx_bool)
* floppy.cc: missing initialization of the 'eot' array in reset() added
* pic.h: type of member 'byte_expected' changed to Bit8u
* pit_wrap.h: unused members removed
* fixed minimum limit of signed variable types
* don't set the initial value of shadow parameters
* fixed range check for shadow parameters
* added support for setting the value base (decimal/hex) of numeric shadow parameters.
The text format hex number is now initialized in the constructor
* added missing newline after filename for binary data
* fixed data size of 64-bit shadow parameters
* fixed save/restore output format of numeric parameters (signed/unsigned/64-bit)
* cpu/init.cc: fixed macro name and added missing #undef line
* new parameter object type bx_shadow_data_c for binary arrays (e.g. system
and video memory, CMOS RAM, PCI config space)
* save_state() completed and restore_hardware() implemented
* get_sr_root() returns the list with the save/restore subtree
- for the BrowseDir() function Bochs for win32 needs to be linked with SHELL32.DLL
(currently used for the save/restore support only)
- save/restore support symbol name changed
- don't load another config file if the restore flag is set
- disabled restore_hardware() for now (will be enabled when save/restore is
complete and stable)
parameters of the wx debugger possible
- started rewrite of shadow parameters and converted keyboard parameter stuff
- test function print_tree() now shows raw byte strings correctly
- removed unnecessary spaces
- parameter tree structure updated (TODO: should be moved to development.dbk)
- code cleanup: bx_options stuff and obsolete parameter access methods removed
- TODO: rewrite of shadow parameter stuff (for subtree "save_restore")
- sb16 parameters stored in the device class and runtime parameter handler added
- wx: ParamDialog can currently handle only dependency lists of bool parameters
correctly (TODO: add support for numeric parameters)
- disable usb options if not compiled with usb support
- usb and network dependency list created with menu->clone()
- load usb plugin only if at least one hub is present
- remaining options prepared for rewrite
- proposed parameter tree updated
- bx_init_options(): local variables cleanup
- hide floppy devtype parameter (floppy media type change support not yet complete)
- wx: menu order changed
- keyboard.cc: removed obsolete FIXME
- proposed parameter tree updated
- siminterface get_param_*() methods num support a base parameter like the generic
get_param() method
- new parameter lists now also have a generated id
- test function print_tree() now handles enum parameters correctly
- proposed parameter tree updated
- save pcidev config line if enabled
- load pcidev plugin if requested
- pci parameter dependencies improved
- textconfig: show the title of a disabled submenu
- clock/cmos menu added in textconfig and wx
- enum parameter type now supports new parameter handling
- long text format for numeric parameters added (useful when both textconfig and
wx are present)
- wx: handling of list flag USE_BOX_TITLE fixed
- textconfig: optional memory features moved to submenus
- siminterface generates a unique id for new parameters (used for wx dependencies)
- proposed parameter tree updated
- floppy options init code cleanup (still using old-style parameters)
- boolean parameter type now supports new parameter handling
- new parameter object constructors now supports label initialization
- bx_list_c constructor now supports title initialization
- textconfig: initial support for new parameter handling
- wx: missing CPU config dialog added
- wx: ParamDialog now handles disabled parameters correctly
- removed unnecessary spaces from function calls
* memory parameter handling rewritten (not yet complete)
* new reset() method for bx_list_c for recursive reset of all list members
* memory options in wx now handled in a ParamDialog (ConfigMemoryDialog removed)
* removed obsolete BXP_* constants in siminterface.h
* updated proposed parameter tree
- constant BX_N_OPTRAM_IMAGES for optional RAM images limit added
(no notify handler registered). The ask() function doesn't set the variable
bx_user_quit to 1 in that case. This prevents win32 from closing the console
window immediately in case of a bochsrc error.
(it was only present in bochsrc parser)
- floppy media type is now a runtime parameter (TODO: full media type support
needs some work in the floppy emulation code)
- floppy media type added to win32 floppy dialog
number of steps to do, the step rate time and the date rate
- the option floppy_command_delay is obsolete now, since all floppy delays are
based on the hardware specs. The usage of this option caused a warning now.
optromimage. You can load up to 4 arbitrary binary images into RAM.
I didn't do any checking on the addresses, so it's up to you to make
sure they don't collide with anything else. Should only be used for
placing files into standard RAM.
- sense code ASC_ILLEGAL_OPCODE added for unimplemented/unknown ATAPI commands
- some panics changed to errors
- unsupported bits message in drive and head register changed to BX_DEBUG
- improved info about not existing drive
- indent mode fixed in ATAPI packet command section
- removed obsolete parameters for usb1 and pnic (now assigned by the PCI BIOS)
- PCI base address register mechanism now leaves the flags untouched
- missing reset of pnic options added
- cmos image options renamed
- new cmos option controls the usage of the RTC values from image
- report time0 in use after handling the cmos image stuff
- MSVC warning fixed
the shortcut script .conf.win32-vcpp
- updated list of include files for the gui directory in both workspaces
- added check for BX_WITH_NOGUI in nogui.cc (needed for MSVC)
- updated description of the siminterface implementation
dummy interface are now disabled if the extension isn't set to "vbe"
- writing charmap data in graphics mode now supported (SF patch #1059199)
- fixed set_ask_format() for the mouse type option
- ne2k and sb16 config lines now support the parameter "enabled=0|1"
- config parser code for ne2k and pnic now working the same way
- ne2k enable option now present in config menu / dialog
- textconfig now supports lists in a list
- network configuration divided in two menus / groupboxes
- ips setting now belongs to the clock menu / dialog
- wx.cc: center status bar items (wxMSW port only)
- wxmain.cc: obsolete stuff removed
code. Up to 3 boot drives are supported now. TODO: new boot dialog for wx.
- config.cc: missing ask formats for enum parameters added
- wxdialog.cc: tab window now uses the label instead of the ask format if defined
data written to the port and where to get the data read from it. Available
modes are 'null' (no input/output), 'file' (output to a file specified as
the 'dev' parameter), 'term' (serial terminal) and 'raw' (use the real serial
port - under construction for win32).
- descriptions for serial and parallel options in bochsrc sample updated
* up to 5 slots can be specified with the 'i440fxsupport' config option
* the pci slot number are hardwired to pci device numbers
* the 'devfunc' value is returned the calling device (useful for multi-function
devices)
* the core of the i440FX chipset is hardwired to pci device 1 + 2; usb is still
optional and appears at device 1, function 2
- ne2k: enable pci features if connected to a pci slot
- ne2k: asic data port supports 32-bit access if ne2k-pci is active
- pci2isa: improved error messages for ELCR1 and ELCR2
- textconfig runtime menu: some options moved to submenu "Misc runtime options"
- bx_param_c: variable group_name and methods set_group() / get_group() added
- bx_list_c: new flag SHOW_GROUP_NAME added (used for SB16 options in runtime menu)
be used instead of a simple text control (implemented in wx)
- the new flag USE_SPIN_CONTROL is used by the memory size and the irq parameters
- special bx_list_c for the "Other options" menu in the wx configuration added
available at runtime
- wx: 'runtime' flag added to ParamDialog. If this flag is set, all options
with the flag 'runtime_param' clear will be disabled.
- only the runtime options for cdrom's are now enabled in the ATA dialogs at runtime
- the options 'keyboard paste delay', 'mouse' and 'vga update interval' are now
available at runtime
- wxdialog.h: unnecessary comments removed
- new bx_list_c for keyboard options (used in wx, TODO in textconfig)
- new flag USE_BOX_TITLE controls the usage of the list name for the group box label
- wxdialog.cc: unused variable removed
- pit: and time0: options are still supported but deprecated
- warn when parsing deprecated directives
- fix wrong number of ata_device_translation_names
- still to do:
- setting time0 to utc is not yet supported
- the man page, user guide and .bochsrc still need to be updated
with the new options
- add handlers called when a parameter is enabled or disabled.
This is useful for parameter dependent on another, that may
not wish to be enabled when its father parameter is enabled.
You can now choose for each disk on the ata interfaces the
disk mode, between :
- flat : one file flat layout
- concat : multiple files layout
- external : developer's specific, through a C++ class
- dll : developer's specific, through a DLL
- sparse : stackable, commitable, rollbackable
- vmware3 : vmware3 disk support
- undoable : flat file with commitable redolog
- growable : growing file
- volatile : flat file with volatile redolog
- z-undoable : gziped flat file with commitable redolog
- z-volatile : gziped flat file with volatile redolog
A new "bxcommit" utility can merge commitable redologs to
flat images.
and improved by Christophe Bothamy and Volker Ruppert)
Comment from the author:
Attached is a "patch" file detailing what you need to do
to add USB support (UHCI only for now) to your existing
Bochs (2.0.xx) source code.
I use Win32 and VC++ but the source and modifications
should be platform and compiler independant.
Please let me know if this patch some how breaks the
build process of your compilation (Bochs 2.0.0 or above
only).
I would also like any feedback on how this code works
(or doesn't work) on your platform and within your
images. If you explain in as much detail as you can on
how it did or did not work, I will try to add to the source
to help it work on all platforms and images.
Authors: Br'fin, Bryce
- for MacOSX/Carbon, if you start the app by double clicking in the finder,
there is no text console. So in logfunctions::fatal(), display the
final message in a Carbon dialog instead of using fprintf.
- in the text-mode config interface, return an error code if the
user tries to use the text menus when there's no text console.
Back in bxmain() this error code causes a panic
"Bochs needed the text console, but it was not usable"
- if a config file was not found, normally we turn off quick start
and drop into the text menus. However in the no-console case the
text menus won't work, so we added a panic: Unable to start Bochs
without a bochsrc.txt and without a text console. This is a much
more useful error than the generic one above.
- removed ensure_text_console() which was making matters worse instead
of better.
Modified Files:
logio.cc main.cc gui/siminterface.cc gui/siminterface.h gui/textconfig.cc
completely ignored and Bochs has always been returning 0. Now Bochs should
exit with the proper exit code.
- implementation: BX_EXIT(exitcode) calls SIM->quit_sim(exitcode).
quit_sim stores the exit code in the SIM object, then uses longjmp
to unwind the stack and return to main(). main() calls
SIM->get_exit_code() to retrieve the exit code and returns it.
- If you are wondering why we don't just call exit(exitcode), it is
because in the wxWindows interface all of the CPU simulation runs as one
thread while the user interface runs as another thread. With the longjmp
technique the simulation thread ends cleanly and it is possible to
start a new simulation thread without making a new process.
eject, insert, eject, etc. several extra times before allowing you to
actually change the CD. The extra insert/eject cycles were coming from the
param handlers for cdrom status and for the cdrom pathname. To fix this, I
changed wxdialog.cc and textconfig.cc to only call set() on parameters if
they are different from the original value. Now it generally does what you
would expect.
- to change physical CD: change the Bochs CD status to "ejected". On some OSes
that will actually eject it, but on others it will simply close the file so
that the eject button will actually work. Then put the new CD into the
drive, and change the Bochs CD status to "inserted".
Modified Files:
main.cc gui/siminterface.cc gui/siminterface.h
gui/textconfig.cc gui/wxdialog.cc