Commit Graph

1747 Commits

Author SHA1 Message Date
Volker Ruppert
972560b83c - renamed cdrom.cc to cdrom_misc.cc and created new file cdrom.cc that contains
shared code (create TOC from image, seek)
- TODO: create new file cdrom_osx.cc that contains the OSX stuff only
2011-10-03 07:23:44 +00:00
Stanislav Shwartsman
391b4d9eee fix more warings 2011-09-30 21:02:09 +00:00
Stanislav Shwartsman
f425400af5 fixed warnings from compilation with mingw-gcc 4.6.1 2011-09-30 20:38:18 +00:00
Stanislav Shwartsman
3e74d77e90 fixed compilation for win32 host 2011-09-25 19:16:25 +00:00
Volker Ruppert
0596437ce7 - moved lowlevel cdrom code for win32 to a separate file
- TODO #1: move shared stuff (e.g. creating TOC for image file) to the base class
  to fix the temporary code duplication
- TODO #2: remove ASPI code for raw cdrom access on Win 98/ME after release
2011-09-25 18:49:20 +00:00
Stanislav Shwartsman
274ca1a2f6 tab2space conversions 2011-09-11 17:15:21 +00:00
Stanislav Shwartsman
cb261c45d3 removed non-working code for z-unodable and z-volatile images.
our priority is to implement support for std disk image formats (VMDK, VDI) instead.
2011-09-11 16:27:56 +00:00
Stanislav Shwartsman
0e4eecafba duplicate macros fix 2011-09-08 17:53:28 +00:00
Volker Ruppert
f18f875c7f - sparse mode bugfix: initialize parent_image with NULL 2011-09-07 21:34:15 +00:00
Volker Ruppert
9483414f84 - fixed 256-color mode screen update handling. Now the dword, word and byte modes
are correctly handled.
- related fixes in the graphics snapshot code
2011-09-05 18:39:02 +00:00
Volker Ruppert
a1b9a8e190 - enable extended "read TOC" feature for Windows versions newer than XP (>= 5.1)
- TODO: move win32 specific cdrom stuff to a separate file
2011-08-24 10:48:05 +00:00
Volker Ruppert
aaf5d0a94d - removed raw floppy access support for Win 95/98/ME hosts 2011-08-22 17:57:21 +00:00
Volker Ruppert
d5973c06cf - added runtime config handler for the floppy. Now the media change is handled
after all parameters have been set.
2011-08-19 20:20:25 +00:00
Volker Ruppert
e607d6e070 - rewrite of the method init_module() similar to the netmod one
- lowlevel sound modules must always include their headers for correct
  auto-generated dependencies
2011-08-18 07:05:09 +00:00
Volker Ruppert
4b4f691a80 - don't include plugin.h in bochs.h to reduce dependencies 2011-08-17 22:41:03 +00:00
Stanislav Shwartsman
a03e0266fb added yonah CPUID to cpudb. remove bxversion.h from dep files 2011-08-16 19:58:56 +00:00
Volker Ruppert
fd56ce2a5a - forgot to add / remove files 2011-08-16 17:31:16 +00:00
Volker Ruppert
592c3399eb - created separate plugin 'netmod' that contains the common networking code
and the supported ethernet modules
  - renamed eth.* files to netmod.*
  - pseudo-device plugin implementation similar to 'soundmod'
- TODO: move sound, net and usb stuff to a separate subdirectory of iodev
2011-08-16 17:27:27 +00:00
Volker Ruppert
7bbfee58a2 - usually the realtime synchronization keeps the PIT-based system clock in sync
with the host time. After using a runtime config dialog or save and restore
  simulation, this behaviour makes the PIT clock and the VGA update timer
  running way too fast until it's back in sync. Now the elapsed time is stored
  in the variable 'real_time_delay' and it is used to let the PIT clock run at
  realtime speed, even if it is out of sync.
2011-08-15 10:37:41 +00:00
Volker Ruppert
a0b4b4898b - implemented graphics snapshot for mode X (variant of VGA mode 0x13)
- bugfix: CGA1 mode depends on the CGA compatiblity switch
2011-08-14 14:56:54 +00:00
Volker Ruppert
b8b2a7253b - implemented graphics snapshot for VGA mode 0x13
- new method get_dac_palette() for the graphics snapshot feature
- small code cleanup
2011-08-14 08:06:05 +00:00
Volker Ruppert
9416eaccc2 - added error handling for the case malloc() fails 2011-08-10 07:12:32 +00:00
Volker Ruppert
d2b0146a7e - changed BX_ERROR to BX_PANIC for the case a host directory does not fit on the virtual disk
- stop reading host directory in case of an error (finally causes a BX_PANIC)
2011-08-09 16:52:18 +00:00
Volker Ruppert
f151aabe5f - added support for snapshot from EGA/VGA standard memory layout (saved as 8 bpp BMP)
- added new method get_vga_pixel() that read the color value from EGA/VGA memory layout (moved from
  display update code and now also used for snapshots)
- minor code cleanups
2011-08-08 07:52:25 +00:00
Volker Ruppert
bce6a17b98 - VBE specific case for graphics snapshot can be used for >= 8 bpp modes only
- palette data for snapshot is now dword aligned to simplify code
- prepared snapshot code to support 4 bpp EGA/VGA memory layout (not yet complete)
2011-08-06 13:08:31 +00:00
Volker Ruppert
c7f63fca93 - added palette for 8 bpp support
(TODO: support for standard VGA 4 bit mode - saving as 8 bpp BMP)
2011-08-05 15:47:33 +00:00
Stanislav Shwartsman
fb405ad39a Compile in MONITOR/MWAIT support by default for all cpu-level=6 configurations. 2011-08-02 19:52:24 +00:00
Volker Ruppert
828b52fc50 - prepared graphics snapshot feature for VBE and Cirrus modes (TODO: save data in BMP format) 2011-08-01 18:21:25 +00:00
Volker Ruppert
eb0c06f357 - added new parameter 'update_freq' for the 'vga' option that should replace the
'vga_update_interval' option. The screen update frequency is still based on
  the emulated clock unless the realtime sync is enabled with the 'clock' option.
  TODO: rewrite the virt_timer code to support realtime screen updates
  independent from 'clock' setting.
- fixed changing parameter 'update_freq' at runtime (timer object and blink counter)
2011-07-26 22:16:24 +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
345d67c403 - removed BeOS support from sources and documentation 2011-07-11 17:36:10 +00:00
Stanislav Shwartsman
a6853a8b75 removed not implemented g2h device 2011-07-10 21:25:12 +00:00
Volker Ruppert
20ae4af54c - removed 'arpback' networking module (ARP simulation still exists in the 'vnet' module) 2011-07-10 20:56:54 +00:00
Volker Ruppert
bdbe2cfb03 - added more values in register_state() (not yet complete)
- don't add reserved bitfields to the save/restore tree
- some fixes for big endian machines
- TODO: init max_packet_size in USB devices, find test case, ...
2011-07-10 09:30:04 +00:00
Volker Ruppert
72f73e7d8d - the stubs for the PCI core must be always present (fixes bug reported in SF forum) 2011-07-08 12:13:41 +00:00
Volker Ruppert
3f3feef718 - more work on USB xHCI support
- added main source file usb_xhci.cc
  - TODO: finsh work in register_state()
  - TODO: USB devices: initialize max_packet_size
  - TODO: test case for xHCI wanted
2011-07-06 21:07:34 +00:00
Volker Ruppert
6dd13e1f12 - some more work for USB xHCI support
- added new configure option (don't use it yet)
  - added header file usb_xhci.h
  - TODO: add main source file (update in progress)
2011-07-05 18:31:15 +00:00
Volker Ruppert
c2d0c207f7 - preparing Bochs for experimental USB xHCI support (written by Ben Lunt) TODO list:
- add sources (update in progress)
  - update configure script
  - initialize new USB devices member 'max_packet_size' (need help from Ben)
2011-07-04 19:42:47 +00:00
Volker Ruppert
4699840aaf - reorganisation of the vga init code:
- using the same init() method for all display adapters
  - new method protected init_standard_vga() for the shared vga core
  - new method init_vga_extension() implements the extended features
- moved loading of vgabios image for the ISA case from main.cc to the vga init code
2011-07-03 15:31:16 +00:00
Stanislav Shwartsman
03879cf90d added infrastructure for prefetch support in the memory handlers 2011-06-29 19:48:46 +00:00
Volker Ruppert
9c1b043abb - use a dynamicly allocated buffer for the PCI ROM instead of a static one
- set maximum PCI ROM size to 128k
2011-06-27 19:46:13 +00:00
Stanislav Shwartsman
a1a140682c cleanup 2011-06-26 20:22:04 +00:00
Volker Ruppert
1bcac13fcb - PCI ROM support added to the cirrus device (SeaBIOS now usable in Bochs with cirrus setup) 2011-06-26 19:32:16 +00:00
Volker Ruppert
deef94eb12 - added PCI ROM support to bx_pci_device_stub_c and use it in the pcivga device (based on a patch by
Sebastian Herbszt). TODO list:
  - modify LGPL'd VGABIOS to make it work with SeaBIOS
  - modify Bochs BIOS to set up the legacy address 0xc0000
  - implement PCI ROM support in the cirrus device
  - move load_ROM calls to the display adapter code to handle the ISA case
2011-06-26 17:42:07 +00:00
Volker Ruppert
16bd4c6401 - added pci_base_address array to bx_pci_device_stub_c and use it in most of the PCI devices instead
of several base address variables (ne2k still uses base_address for both ISA and PCI)
2011-06-25 12:43:27 +00:00
Volker Ruppert
598b15f080 - the pcivga device can now be used even if Boche VBE support is disabled (VBE framebuffer BAR is
not available in that case)
2011-06-23 21:03:39 +00:00
Volker Ruppert
fce2386f99 - set log prefix depending on the selected vga extension (new prefix "BXVGA" for Bochs VBE support) 2011-06-23 17:02:48 +00:00
Volker Ruppert
2137c8bd81 - moved pci_conf array as a protected member to the PCI device stub class (exists in all PCI devices) 2011-06-23 15:56:02 +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
Stanislav Shwartsman
93360601f8 Print debug value before modifying it 2011-06-19 15:31:51 +00:00
Volker Ruppert
48e8df25ff - fixed some MSVC warnings 2011-06-19 05:37:30 +00:00
Stanislav Shwartsman
84647d127b Fixed incorrect typecast in acpi.cc
This bug prevented boot of WinXP and Win7 64 images!
2011-06-18 09:54:43 +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
Stanislav Shwartsman
1414e0bd6e Report memory above 4GB to BIOS (patch by Sebastian Herbszt) 2011-06-12 20:27:36 +00:00
Volker Ruppert
cb8faeee52 - implemented new mechanism to update device config parameters that depend on
each other. Devices can register a handler to update it's state after runtime
  configuration. The new method update_runtime_options() executes all registered
  device handlers before the simulation continues.
- USB host controllers now using the new mechanism to handle the runtime device
  change (replaces the previous timer-based implementation). TODO: floppy and
  cdrom could use this feature, too)
- improved USB device change messages
2011-06-11 19:38:52 +00:00
Stanislav Shwartsman
fecda2ce16 Limit extended_memory_in_64k to 3 GB - 16 MB. PCI Memory Address Space starts at 3 GB.
Sebastian
2011-06-10 06:38:11 +00:00
Volker Ruppert
f2f4099bc1 - small cleanups in the pit_wrap and virt_timer code
- TODO: rewrite virtual timer code to support both timer types at the same time
2011-06-04 06:40:04 +00:00
Volker Ruppert
0638a4174d - use timer functions for recording only if the record handler is not NULL
- added sound recording framework in the soundosx.* files. I hope someone wil
  be able to add the required platform specific code.
2011-05-24 16:47:07 +00:00
Volker Ruppert
59ce011333 - soundwin.cc: improved error messages
- fixed some warnings
2011-05-20 17:39:32 +00:00
Volker Ruppert
f32870a377 - implemented sound input support on Windows using the default wave mapper 2011-05-13 21:08:33 +00:00
Volker Ruppert
ecefdbbb93 - using the virtual timer (like the PIT device) instaed of the stanard timer
makes screen updates independant from the ips value if the realtime
  synchronization is enabled ("clock: sync=[realtime|both]").
  Thanks to Stanislav for pointing me to this direction.
2011-05-11 16:08:13 +00:00
Stanislav Shwartsman
39ccbf5a77 cleanup and style changes, fixed gcc4.6 warning 2011-05-10 20:04:20 +00:00
Volker Ruppert
11e9b12fbf - PIT must be connected to IOAPIC pin INTIN2
- converted tabs to spaces
2011-05-04 18:37:50 +00:00
Volker Ruppert
7d9704e080 - small fixes according to the specs
- raster operations 0x90 and 0xda
  - maximum BLT height is 2048
2011-05-03 19:19:38 +00:00
Volker Ruppert
e5aa057346 - BLT MODE EXTENSION register is marked as "reserved" for the CLGD5430, so we
must ignore writes to it (fixes "garbled W" bug in Win95 with Cirrus ISA)
- fixed "inverted transparent colorexpand" bug (pointed me to the above issue)
- TODO: IE 5.5 startup window is still not okay
2011-05-01 19:09:27 +00:00
Volker Ruppert
f5e3a6eff3 - the BLT extension "inverted transparent colorexpand" always uses the
foreground color. This fixes the "white text" bug in original Win95 (A) with
  the Cirrus ISA driver.
  TODO: fix the "garbled W" bug (related to "dword granularity").
2011-05-01 14:53:54 +00:00
Stanislav Shwartsman
76c11e1a40 - Configure option --enable-acpi is deprecated and should not be used anymore.
The ACPI support is always automatically compiled in if PCI is compiled in.
    The ACPI still could be disabled using .bochsrc 'plugin_ctrl' option.

Updated CHANGES and docs as well.
2011-04-30 20:04:42 +00:00
Stanislav Shwartsman
01ba2ef2b0 recv can return -1 2011-04-30 18:47:04 +00:00
Stanislav Shwartsman
38ec72ece3 Merged serial port fix from [Bochs-developers] accessing COM1 via telnet.
Upon investigation the problem is easily fixed in bx_serial_c::rx_timer_handler():

<snip>
   ssize_t bytes = read(socketid, &chbuf, 1);
#endif
   if (bytes)
   {
      BX_INFO((" -- COM %d : read byte [%d]", port+1, chbuf));
      data_ready = 1;
   }
<snip>

I think this means the extra check above will give no noticeable degradation of performance, so hopefully this can be applied to SVN.  It would avoid screwing up a running instance of Bochs when a remote network client unexpectedly disconnects from the COM1 tcp port.

Also some cleanup in serial.cc code.
2011-04-30 18:22:35 +00:00
Volker Ruppert
e8555036ea - limit output packet size to max. 0,1 sec for continous sound at low data
rates (e.g. 8000 Hz, 8 bit, mono)
2011-04-26 18:35:43 +00:00
Volker Ruppert
b7e457dc86 - enabled support for DAC1 output (both DACs cannot send output to the lowlevel
module at the same time yet)
2011-04-25 17:35:39 +00:00
Volker Ruppert
c5f385552f - use the new Core Audio API if available (SF patch #3292581 by Heikki Lindholm)
- TODO: some more work may be required
2011-04-25 11:22:19 +00:00
Volker Ruppert
f45b16d6c0 - fixed recording / playback of different audio formats / sample rates 2011-04-25 08:47:19 +00:00
Volker Ruppert
14ecf33ad5 - sound input support for OSS implemented
- ALSA: fixed possible assertion failure in stopwaverecord()
2011-04-24 18:45:37 +00:00
Volker Ruppert
e3916f0df4 - always enable Cirrus extensions of the PCI version
- changed statements true / false to 1 / 0
- added definitions for unimplemented features
2011-04-24 08:08:35 +00:00
Volker Ruppert
61ac09e297 - allow writing to MBR (except partition table) to make Win95 happy 2011-04-23 14:18:01 +00:00
Volker Ruppert
72b4a1fe46 - implemented sound input support for the ALSA sound support
- TODO #1: move lowlevel sound recording / playback to a separate thread
- TODO #2: sound input support for OSS
2011-04-22 13:11:47 +00:00
Stanislav Shwartsman
c9c067bf8b compilation fixes for OpenBSD 2011-04-21 18:29:07 +00:00
Stanislav Shwartsman
9979817f4a fix for acpi (merge SF patch) 2011-04-21 15:40:33 +00:00
Stanislav Shwartsman
ea7c4d6887 gcc 4.6 warning fix - unused var 2011-04-20 17:43:21 +00:00
Stanislav Shwartsman
1a7d38c28b bswap optimization patch by Heikki Lindholm + cleanup 2011-04-19 12:48:06 +00:00
Volker Ruppert
dfaa18bcd0 - two of the BLT raster operations might be implemented in a wrong way, but no
test case present yet. Added BX_ERROR for the case they are used.
- improved detection of unimplemented features
2011-04-17 13:20:47 +00:00
Volker Ruppert
637823b530 - wave input feature using lowlevel sound module implemented (currently
returning silence)
- TODO: implement sound recording in the lowlevel sound modules
2011-04-10 21:12:30 +00:00
Volker Ruppert
f6ac6abd92 - implemented dummy sound input support (returns silence) and prepared the
ES1370 emulation to use it.
  TODO #1: implement real sound input in the lowlevel sound modules
  TODO #2: implement sound input in the SB16
  TODO #3: rewrite sound output code to use the same API
2011-04-04 16:07:24 +00:00
Volker Ruppert
580159d2d8 - deleted executable property 2011-04-03 09:55:17 +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
29c5c45609 - implemented gameport (joystick) presence control by external device and use
it in the ES1370 device (enabled by default)
2011-03-31 16:54:06 +00:00
Volker Ruppert
0ff7ba3431 - fixed sound output after restoring state
- improved debug message
2011-03-27 09:32:17 +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
Volker Ruppert
932df44658 - renamed some symbols from BX_SOUND_OUTPUT_* to BX_SOUNDLOW_*
- es1370: fixed transfer size for the ADC channel
- es1370: call startwaveplayback() when the DAC2 channel is activated
- added missing change to BX_SUPPORT_SOUNDLOW
- changed type of variable "stereo" to bx_bool
- minor other changes
2011-03-20 18:02:12 +00:00
Volker Ruppert
6c58d00c62 updated dependencies 2011-03-20 16:18:45 +00:00
Volker Ruppert
e6d56f97ae - renamed bas class for lowlevel sound support to bx_sound_lowlevel_c
- define symbol BX_SUPPORT_SOUNDLOW to make the lowlevel sound modules
  independent from the presence of the SB16 emulation
2011-03-19 12:57:13 +00:00
Volker Ruppert
65f7056328 - moved BX_MIN and BX_MAX macro definitions to bochs.h, removed duplicates and
use it in es1370.cc
- improved log messages
2011-03-15 22:18:40 +00:00
Volker Ruppert
43650c4459 - load 'current sample count' with new value of 'sample count'
- status register can be read in byte and word mode (undocumented?)
- modified some log messages
2011-03-13 20:29:00 +00:00
Volker Ruppert
50d34fdfca fixed malformed host name caused by typo 2011-03-13 20:28:29 +00:00
Volker Ruppert
e67bb30120 - added documentation for the ES1370 soundcard 2011-03-13 09:09:34 +00:00
Stanislav Shwartsman
1dd995abc3 Adding Id and Rev property 2011-03-12 20:34:38 +00:00
Volker Ruppert
ae45908060 - ported ES1370 soundcard emulation from Qemu. For now, only sound output to
DAC2 is sent to the lowlevel sound module. DAC1 and sound input (ADC) are not
  yet supported. Also unsupported: CODEC (mixer), UART (MIDI) and legacy support.
  Sound module selection in configure script now no longer depends on SB16 and
  uses autodetection only.
- fixed segfault when saving bochsrc
2011-03-12 17:37:26 +00:00
Volker Ruppert
8c32359615 The VBE display extension is now a part of the Bochs core. The configure option
--enable-vbe is now deprecated and the symbols BX_SUPPORT_VBE and
BX_SUPPORT_PCIVGA have been removed. To enable VBE support, the bochsrc option
"vga: extension=" must be set to "vbe". If PCI is present, you can assign the
"pcivga" device to a PCI slot.
2011-03-07 19:01:22 +00:00