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.