Commit Graph

251 Commits

Author SHA1 Message Date
Volker Ruppert
90168f5dcd - moved the lowlevel cdrom and disk image stuff to the new subdirectory iodev/hdimage
- TODO: update MSVC workspace files
2012-08-05 18:13:38 +00:00
Stanislav Shwartsman
1ab623536c optimize harddrv code 2012-05-06 19:19:00 +00:00
Volker Ruppert
8bb206ccdf - added special flag for dependent lists
- bx_list_c: don't accept duplicate param names in list (except dependent lists
  and special menus)
- added BX_PANIC for malloc() failure
- harddrv: fixed wrong variable found with bx_list_c changes
2012-02-13 20:58:26 +00:00
Volker Ruppert
de94b08a1a - class bx_list_c now contains a chained list of parameters. Removed the now
obsolete maxsize parameter from all lists.
2012-02-12 18:43:20 +00:00
Volker Ruppert
3ec77e9372 - store config parameter values in local variables to avoid searching for
parameters at simulation time
2012-01-20 15:56:17 +00:00
Volker Ruppert
b130bf671b - initial "log action by device" implementation added (TODO: check for
invalid module names, save log actions to bochsrc)
- added new member 'name' to the logfunctions class for the case the prefix
  is too short. Added to some devices with longer names.
2011-12-29 19:51:54 +00:00
Volker Ruppert
0b2bec6752 - implemented "auto-off" timer for the status bar LEDs that replaces the
existing "iolight timer" code in the hard drive code. If an LED is registered
  with the "auto-off" flag, the device only needs to turn on the LED to indicate
  data transfer. The LED timer in the gui code turns it off after 0.5 seconds if
  it is not actived by another transfer. Added this feature to all network
  devices.
- TODO #1: implement this feature in the USB host controllers
- TODO #2: the unused timer in the hard drive code could be used for the
  emulation of seek functions
2011-12-28 11:51:42 +00:00
Volker Ruppert
3029d55f4a - hdimage 'flat' mode: added support for Linux block devices (part of SF patch #3412431)
- hdimage: renamed 'sectors' to 'spt' (same as the config parameter)
- harddrv: fixed info message
2011-11-26 15:09:00 +00:00
Volker Ruppert
67db6ee123 - disk geometry detection and check code rewritten:
* 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
2011-11-21 20:58:35 +00:00
Stanislav Shwartsman
391b4d9eee fix more warings 2011-09-30 21:02:09 +00:00
Volker Ruppert
c8d2f60225 - added runtime config handler for the ATAPI cdrom code. Now the media change is handled after both
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.
2011-07-24 14:11:10 +00:00
Volker Ruppert
5014eed268 - link lowlevel cdrom support with the hdimage plugin instead of harddrv and usb_common. This fixes
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.
2011-07-17 17:23:12 +00:00
Volker Ruppert
e88cda9fc0 - fixed compilation error if PCI is enabled without lowlevel cdrom support
(SF bug #3294671)
- related fixes in the USB MSD / SCSI device code
2011-06-21 19:54:37 +00:00
Volker Ruppert
d03db7f940 - several changes related to cdrom runtime configuration
* 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
2011-06-13 09:32:39 +00:00
Volker Ruppert
4e0303fb56 - small optimization in read / write sector loop: no need to calculate logical
sector address when incrementing
- removed useless duplicated list of unsupported commands
- LBA flag changed to type bx_bool
2011-04-02 13:19:52 +00:00
Volker Ruppert
a626140c35 implemented ATA commands READ NATIVE MAX ADDRESS and READ NATIVE MAX ADDRESS EXT 2011-03-22 19:55:07 +00:00
Stanislav Shwartsman
00981cd7a6 Adding Id and Rev property to all files 2011-02-24 22:05:47 +00:00
Volker Ruppert
cf4e7f5b5d - added flag HDIMAGE_AUTO_GEOMETRY and return it by default in base class if
cylinders are set to 0
- open image before getting capability flags and return after panic
- simplified geometry detection code
2011-01-21 16:00:38 +00:00
Volker Ruppert
51682da8b4 - converted the hdimage stuff to a separate plugin (similar to usb_common)
- usb_common is now a core plugin
- fixed an MSVC warning in devices.cc
- updated year in copyright
2011-01-12 22:34:42 +00:00
Volker Ruppert
52e4917f52 use C/H/S values from image for the CMOS setup 2010-12-27 18:37:25 +00:00
Volker Ruppert
1e3f3ee0c0 - added new hdimage method get_capabilities() that can return special flags
- HDIMAGE_HAS_GEOMETRY flag added to vmware3 & vmware4 modes (these modes use
  the CHS values from image file)
- harddrv: renamed pointer to hdimage object
2010-12-21 21:47:41 +00:00
Volker Ruppert
29c8824bab - added support for HD image modes in usb_msd (TODO: specify journal file)
- siminterface: added helper method hdimage_get_mode()
- moved hdimage related stuff from harddrv.cc to the hdimage code
- changed hdimage related names
2010-12-10 17:02:18 +00:00
Stanislav Shwartsman
153d43520d change copyright to bochs project 2009-12-04 19:50:29 +00:00
Stanislav Shwartsman
4c06bb8657 SFbugfix - "an integer overflow BUG of Bochs-2.3.7 source code" 2009-04-30 07:30:13 +00:00
Volker Ruppert
a1e65bae3a - bx_dbg cleanup in the keyboard and harddrv code
- several other debug message cleanups
2009-04-25 08:06:32 +00:00
Volker Ruppert
f751373219 - minor bugfix in the cdrom media change detection (ported from Qemu) 2009-04-21 10:18:42 +00:00
Volker Ruppert
fab6f61199 - list option SERIES_ASK is required at runtime when using textconfig 2009-04-05 16:28:02 +00:00
Volker Ruppert
ee131a7471 - new implementation of the win32 runtime dialog based on the start menu dialog
* 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
2009-03-29 20:48:17 +00:00
Volker Ruppert
49343852a3 - changed parameter type for cdrom status (inserted/ejected) to bx_param_bool_c
- 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
2009-03-22 20:18:17 +00:00
Volker Ruppert
8e92378b7b - enable handlers for disk parameters are no longer needed, since the enable
behaviour is controlled by the new enum dependent list feature
- moved runtime parameter setup for cdrom drives to the harddrv code
2009-03-21 00:50:53 +00:00
Volker Ruppert
e5eac65b59 - removed wrong character from FSF address (converted invisible and useless
2-byte character)
- updated FSF address in some files
- added license to some files
2009-02-08 09:05:52 +00:00
Stanislav Shwartsman
dd03e043a3 Updated FSF address 2009-02-07 21:05:31 +00:00
Volker Ruppert
501952efdd - removed unused logfunctions member 'type' and related method 'settype()'
- updated FSF address in copyright
2009-01-10 11:30:20 +00:00
Stanislav Shwartsman
d56c3a18aa reduce include dependencies in iodev.h
Makefile.in in iodev folder have to be regerated !
2008-12-29 20:16:08 +00:00
Volker Ruppert
fd79c68d72 - fixed some warnings in iodev 2008-12-21 08:56:26 +00:00
Volker Ruppert
ed90f8dd93 - fixed a bunch of warnings 2008-12-11 18:01:56 +00:00
Stanislav Shwartsman
0df223d363 Merged patch with blinking HDD led in RED color when HDD write occurs (GREEN when HDD read) 2008-10-06 22:00:11 +00:00
Volker Ruppert
61f51bc8af - minor ATA/ATAPI model string fixes
* 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
2008-07-27 08:06:52 +00:00
Volker Ruppert
b3b95e0d84 - ATAPI command 0x1A added (based on the Qemu implementation)
- simplified media presence check for ATAPI 'mode sense' commands (accessing
  parameter tree not required)
2008-07-07 18:36:07 +00:00
Volker Ruppert
46265689aa - PACKET-DMA feature now supported by all ATAPI commands
* 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
2008-07-06 14:15:41 +00:00
Stanislav Shwartsman
fda4d38959 32-bit systems have a problem to allocate large amount of physical memory for Bochs simulation which makes simulation with 4G address space virtually impossible. But in most of the cases when 4G physical address space defined - it is not touched by default on every run so it is possible to allocate only really accessed blocks. This commit made all necessary preparations for it. 2008-04-17 14:39:33 +00:00
Volker Ruppert
a1950bb565 - fixed compilation error: "jump to case label crosses initialization of `Bit32u drvsel'" 2008-03-30 08:32:57 +00:00
Stanislav Shwartsman
75f18c4f99 mostly indent changes 2008-03-29 17:44:13 +00:00
Stanislav Shwartsman
a459a64f3e whispace, tab2space, indent, dos2unix and other cleanups 2008-02-15 22:05:43 +00:00
Stanislav Shwartsman
063d896226 Optimization in 16-bit resolve functions
Fixes for hosts which can't support misaligned memory access
2008-02-07 20:43:13 +00:00
Stanislav Shwartsman
ae35b0276e white space cleanups and coding style changes 2008-01-26 22:24:03 +00:00
Stanislav Shwartsman
08eb75d985 Some workaround for bug report
1824189  Qemu hard disk image not reckognized
2008-01-14 20:47:11 +00:00
Volker Ruppert
afbb8fb8d4 - ATA command "execute device diagnostic" raises interrupt at completion 2007-12-17 18:08:27 +00:00
Stanislav Shwartsman
72af550a0f Some indent fixes + speed up hardware read by using inline functions 2007-11-12 21:04:17 +00:00
Stanislav Shwartsman
c8b4b32826 Merged harddrive patch from #SF tracker 2007-10-08 19:33:08 +00:00