* if the image provides a geometry, always use it.
* if the cylinder value is set to 0 and the image supports autodetection,
calculate the cylinder value from disk size, sectors and heads.
* in all other cases the specified geometry is used.
* a panic only occurs if the image size is too small for the geometry.
* extra data past the end of the disk now causes an info message.
- TODO #1: 'flat' mode hdimage: read disk size of raw devices on Linux
- TODO #2: 'flat' mode hdimage: use geometry from MBR on image if present
parameters (path + status) have been set. TODO: implement this feature for the floppy, too.
- call update_drive_status_buttons() from update_runtime_options() to reduce the number of calls.
Now call update_runtime_options() from the gui floppy / cdrom handlers after closing dialog.
duplicate log prefixes on Windows if both IDE and USB cdroms are used in plugin mode. Windows also
requires the cdrom base class and the init_cdrom() method to link and work correctly.
* moved runtime handlers for cdrom from config.cc to the device object
* cd media status variable is now always of type bx_bool
* changed obsolete gui names like "cdromD" to "cdrom1"
* TODO: implement new runtime config mechanism similar to USB
- HDIMAGE_HAS_GEOMETRY flag added to vmware3 & vmware4 modes (these modes use
the CHS values from image file)
- harddrv: renamed pointer to hdimage object
- siminterface: added helper method hdimage_get_mode()
- moved hdimage related stuff from harddrv.cc to the hdimage code
- changed hdimage related names
* removed old win32 runtime config dialog since the property sheet isn't
compatible with the win32 ParamDialog
* reorganized runtime parameter lists (usb and cdrom setup in device init)
* renamed win32 StartMenuDialog() to MainMenuDialog() and some related name
changes
* added runtime support to the MainMenuDialog
- win32 start/runtime menu: set keyboard focus to the start/continue button
- win32paramdlg: SetParamList() now checks for list size changes to avoid crash
- win32paramdlg: fixed setting parameters at runtime
- fixed win32 ParamDialog return value for close/cancel
- runtime dialog for the first cdrom drive on win32 is now created as a win32
ParamDialog (removed old cdrom1 dialog stuff)
- minor fixes in x11 string dialog for the cdrom path & status case
* cut model string on boot screen if larger than 36 characters to make one
"ata" message fit in one line
* config parameter for model string needs one more byte
* harddrive: terminate model string with null
* don't panic if byte count is zero in PACKET-DMA mode (the specs say that
byte count is used for PIO modes. The behaviour in DMA mode is not
mentioned, but seems to be ignored in that case.)
* pci_ide: initialize sector size with the BM-DMA byte count (disk read
commands will overwrite this value, some ATAPI commands are using the
original one.)
* non-disk-read ATAPI commands simply copy the buffer in DMA mode
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
a Bochs session unless the configuration (transfer mode) changes. Then the
"drive id" data is simply copied to the output buffer.
- removed unused "drive id" example (Conner CFA540A)
- added stubs for the ATA flush cache commands
- converted some tabs to spaces
done by the object destructor (changes in cmos, hard drive and keyboard)
- bx_unload_plugins() now deletes the devmodel object in non-plugin mode
- CMOS device now prints the time on exit in human-readable format
unregister_irq(). This is required since there are some devices that don't
use a string constant for the handler name.
- replaced true / false by portable 0 / 1 values.
(TODO: find a way to call plugin_fini() for non-core devices if plugins are
disabled)
- set the device pointers back to stubs after unloading plugins
- added debug message "Exit" in all device plugin destructors
not when reading the error register
- the DSC status bit is not cleared in case of an error
- a not existing drive does not set the ERR status bit and the error register
- all messages related to correctly aborted commands on non-disk devices changed
to type BX_INFO
- some other log message output cleanups
- ATA command 'set multiple mode' fixed (missing interrupt and value check)
- hard disk sector read/write rewritten and simplified
- hard disk now reporting ATA-3 supported
- updated drive buffer size for save/restore
read/write commands)
- prepared i/o buffer for multi sector transfers
- power management commands "standby now" and "idle immediate" now returning success
- store size of virtual disk in sparse header to simplify geometry detection/check
- enabling geometry autodetection causes a panic if not supported by image
- simplified geometry detection code
- unsupported ATAPI commands now cause a BX_DEBUG message and no addtional
error code info (avoid flooding log file)
- a bunch of image size handling changes
* 'hd_size' contains the size of the virtual hard disk (for geometry check/detection)
* passing the size calculated from the geometry not needed in some cases
- indent mode changes
- 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
- 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)
* ports for error register, sector count and sector number are shared between
both drives
* status register always returns the values of the selected drive (0x00 if
not present
* set correct signature for both drives in case of reset
- read raw toc for image files and platforms other than Windows XP implemented (ported from qemu)
- several cdrom capacity fixes / report capacity only on Bochs init and cdrom change
- flag 'using_file' must be set to 0 for WIN32 ASPI or direct access
- multisession format handling removed from harddrv.cc (now handled in cdrom code)
- ATAPI error messages improved
- prepared ATAPI buffer for block size 2352
- read_block() now returns a bx_bool value and panic moved to hard drive code
- insert_cdrom() now uses read_block() to test the media presence
- small code cleanups