* initialize plugin system before parsing bochsrc and command line
* pass previous value to bx_param_string_c handler
* load / unload plugin in bx_param_string_handler()
* handle user plugins after optional ones in plugin device init, reset and
save/restore functions
* added new siminterface method unregister_user_option()
* removed first version of config option handling for user plugins
* added new parameter subtree for user-defined options
* added new bx_list_c method remove()
* removed unused bx_devmodel_c method init_mem()
* set initial value for MAC address after setting RAW_BYTES option (no space
for trailing null byte when using strncpy)
* length of initial string should not be larger than maxsize
* reset() method now uses set(initial_val)
- the label of the parameter now the default for the string dialog title
- now using simple string dialog for editing the filename of the text snapshot
There is a trick in MSVC is to turn on the -Gr compiler switch which tells MSVC to compile all functions using fastcall calling convention. This way you don't have to edit each function declaration. But certain functions must NOT be fastcall, and those are callbacks from Windows which are defined either as cdecl or stdcall. The entry point main() also has to remain cdecl.
Patch by Darek Mihocka
This code is untested and it should add support for these features:
* variable line offset
* cursor color, disable and blinking
* character blinking
* TODO: variable cursor size, line graphics, h/v pel panning, split screen
Make save/restore default feature, the configure option for save/restore removed from configure script and save/restore made available forever. All code now assume it is exists. Bochs save/restore tree previosly called "save_restore" renamed to "bochs" tree and it will be havily used everywhere, starting from save/restore and ending by various bochs debugger functions. I am going to rework debugger code to get rid of debug CPU access functions and use this "bochs" param tree instead
* partial fix for bug #1549873 (SF patch #1766536)
* added keyword "print" to the userbutton shortcut table
* FIXME #1: CTRL+PRINT and ALT+PRINT not working in Win98 guest
* FIXME #2: win32 hosts do not generate the "make" code for "Print Screen"
- removed obsolete structures and members from the USB code
- removed mouse type 'usb' (USB mouse and tablet override selected mouse type
when connected)
- user doc: mention vmware 4 disk image support
string. This is better for devices that need to know all it's options when
connecting to the port. Device name and option should be separated with a
colon. The USB device 'disk' now uses this format ('disk:usbdisk.img).
- the pciusb plugin must be linked with cdrom.o
equal to the Windows desktop size. The hotkey ALT+ENTER can be used to toggle
the window / fullscreen mode (initial SF patch item #1607793 by John Comeau)
- implemented get_capabilities() method (uses desktop size if valid)
- debug break support for "continue" and "step N" commands
- debugger message window shows the last 100 lines of debugger output
- FIXME: tabstops not working in modeless dialog
- FIXME: debugger window is always on top
- TODO: cpu register viewer similar to the wx implementation
- new display library option "windebug" enables the new feature
- simple dialog box with a command line and a multiline text viever
- TODO: implement modeless dialog with cpu registers and it should be possible
to interrupt "continue" and "step N" commands
- win32dialog: fixed function GetBochsWindow()
- textconfig: removed unused save/restore prompt
changed after initializing the config interface
- PARAM_TREE.txt updated and cleaned up (TODO: improve developer documentation
and get rid of this file)
* wxBochsStopSim flag is now reset before starting the SimThread
* the siminterface 'init_done' flag now controls the execution of the hardware
cleanup in bx_atexit()
- fixed gameport log type
- wx: store mouse capture mode in the gui code (only access the mouse parameter
when the capture mode changes)
- wx: don't initialize wxScreen if already done and clear screen on exit
- added exit() method to the devmodel object for devices that need to do special
cleanups on exit. Device plugins should call this method from their plugin_fini()
function. If Bochs is compiled without plugin support, for non-core plugins
the exit() method is called directly from bx_unload_plugins().
- exit() method implemented in the keyboard device
- wx "Show Keyboard" feature now only appear when the wxdebug keyboard subtree
is not empty
- cpu cleanup must be done before the devices cleanup
- moved PCI chipset dump call to the devices exit method
* don't initialize cpu specific parameters for the wx debugger if they already
exist
* separate siminterface method init_save_restore() added
* old wx specific handling in quit_sim() removed
* new bx_list_c method clear() deletes all parameters from the list
* moved devices cleanup code from the pc_system to a new devices method exit()
* pc_system init code now sets ticksTotal to 0
menu item instead of the power button. TODO: The wxGTK port still hangs after
pressing the power button before displaying the "Bochs stopped" message box
- wxMSW: don't wait for the enter key on the console window if the user quits
Bochs by the menu item
- fixed 'ask' dialog text
* generic save state dialog code moved to the save_restore_handler() in gui.cc
* the suspend button in the wxWidgets port now works and uses the new code
* old wxWidgets save state code removed (not thread-safe)
- wxWidgets HandleAskParamString() method fixed for wxGTK (now using a temporary
string array instead of a pointer)
Pressing the button currently prints to the log diagnostic message.
Vaolker, could you make it call save/restore dialog and remove the button inside config dialog ?
* 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
* register_state() will be called after init() and registers the device members
required for save/restore
* before_save_state() can do some work before the device state is saved by the
siminterface
* after_restore_state() can do some work after the device state has been
restored (updating dependant stuff)
* 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
- log options must be restored after initializing all devices
- menu items and descriptions for save/restore updated
- TODO: implement access to save/restore functions for win32 and wx
- 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
Averything that required cpu.h include now has it explicitly and there are a lot of files not dependant by CPU at all which will compile a lot faster now ...
- 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
- strdup() is necessary for the ata device name (master/slave)
- added missing initialization of the member 'enable_handler'
- clone() method now uses the original title for the new list
- runtime setup for ATA channels now uses limit BX_MAX_ATA_CHANNEL
- simple string dialog box uses the label of the parameter if present
(otherwise the name is used)
- 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.
- function BrowseTextCtrl() now only returns true if OK was clicked
- missing handling of the floppy media type status added
- serial/parallel options dialog is now available at runtime (for USB devices)
(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.
editing the userbutton shortcut before sending it
- simple userbutton shortcut dialog for the X11 gui implemented
- small fixes in the X11 "ask" dialog code
- usage of old-style syntax for 'user_shortcut' now causes a warning
- deprecated options 'pit' and 'time0' now cause an error
- old disk options completely removed from bochsrc parser
- documentation changes: 'pit' and 'time0' removed, 'user_shortcut' updated
with a '-' character. Added support for some more keys. The old-style syntax
is still supported for a few key combinations.
- updated/added documentation for the 'cmosimage' option
- 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