Commit Graph

1676 Commits

Author SHA1 Message Date
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