Commit Graph

11695 Commits

Author SHA1 Message Date
Volker Ruppert
17abf11e85 Check requested maximum DHCP message size and report if invalid (networking
modules vnet / socket only).
2017-06-18 15:54:54 +00:00
Volker Ruppert
d22cdbdbf7 Some work on the bxhub utility.
- Added DNS service support for the server "vnet" and connected clients.
- Added command line option "-loglev=" to control whether or not there is
  BX_ERROR, BX_INFO or BX_DEBUG output. Default value is 1 (BX_ERROR only).
2017-06-17 12:40:13 +00:00
Volker Ruppert
2ae5fd563e Added destructors to some networking modules and call fclose() there for the
case the logging feature is enabled.
2017-06-16 08:27:55 +00:00
Stanislav Shwartsman
54e969b749 disasm update 2017-06-05 21:05:47 +00:00
Stanislav Shwartsman
20e9e33662 internal disasm updates 2017-06-05 20:49:04 +00:00
Stanislav Shwartsman
3f4f18de7a internal disasm updates 2017-06-05 20:28:33 +00:00
Stanislav Shwartsman
46ef85ce0f avoid using magic constants for disasm source metadata 2017-06-05 19:55:40 +00:00
Volker Ruppert
8006ec9fa3 Fixes and updates for wxWidgets 3.0
- wxMSW unicode: define UNICODE before including windows.h via bochs.h.
- Fixed compilation error (wxNode usage).
- Fixed deprecation warnings at toolbar creation.
2017-06-04 09:32:58 +00:00
Stanislav Shwartsman
38e2562d9c added new debugger cap: conditional continue' 2017-06-03 19:11:52 +00:00
Volker Ruppert
f38a0d8a97 Updated code for the invisible cursor on wxGTK (fixes compilation on wxMSW 3.0). 2017-06-03 14:32:56 +00:00
Volker Ruppert
bdd8875692 Reverted BX_THREAD_KILL() changes in the lowlevel sound code. Now using control
variables again to let the threads end normally. Re-implenented the method
closewaveoutput() for some modules, move the destructor code to it and call it
after leaving the mixer thread. This fixes a deadlock in the "soundwin" module
if Bochs is compiled with plugin support.
2017-06-02 16:56:58 +00:00
Volker Ruppert
726e39f854 Some work on the USB device plugin code.
- usb_common: init_device() now splits device name and primary option before
  detecting device type.
- usb_hub: now completely handle port option in constructor.
- plugin.h: removed obsolete defines.
2017-06-01 20:04:10 +00:00
Stanislav Shwartsman
b4d2bbcd32 fixed compilation issue 2017-06-01 10:25:22 +00:00
Stanislav Shwartsman
555bb8f8b6 updates to prev commit 2017-06-01 08:41:41 +00:00
Stanislav Shwartsman
6ab4fd597b implement another form of AR field packing used in SKL, in addition on present NHM format 2017-06-01 08:31:20 +00:00
Stanislav Shwartsman
bde8a1f69d fixed ifdef typo 2017-06-01 07:48:54 +00:00
Stanislav Shwartsman
22e9051716 implemented correct VM-exit instruction information for INVPCID, RDRAND/RDSEED and XSAVES/XRSTORS instruction Vmexits 2017-05-31 13:16:49 +00:00
Volker Ruppert
1de56aa05e Fixed plugins case (unloading module). 2017-05-28 08:45:23 +00:00
Volker Ruppert
bd1eb0f862 Rewrite of the USB devices plugin code similar to the network driver code.
- Removed "pseudo device plugin" containing common code and all connectable
  USB devices.
- Moved USB device base class and module handling to the Bochs core.
  Now loading USB device plugins in usb_common.cc.
- Created separate plugins for each USB device implementation.
- Modified Bochs plugin system to support new plugin type PLUGTYPE_USBDEV.
- Added entries for the non-plugin case similar to the network and sound stuff.
2017-05-28 08:13:06 +00:00
Stanislav Shwartsman
bb43ac527b fixed decoder issue when decoding opcode 8f (aka xop prefix) as well 2017-05-27 10:32:44 +00:00
Stanislav Shwartsman
54c109ceb4 VEX and EVEX opcodes should be considered as 2-byte opcode, always attempt to fetch 2nd byte even if #UD is already detected 2017-05-26 11:46:02 +00:00
Stanislav Shwartsman
48a2bc2cbf change disasm memsize print 2017-05-26 11:21:56 +00:00
Stanislav Shwartsman
6ac6463754 fixed compilation err with recent gcc 2017-05-26 07:16:25 +00:00
Volker Ruppert
431e9671a6 Code cleanup: removed unused definitions, functions and statistics code not
required for the emulation.
2017-05-21 18:30:25 +00:00
Volker Ruppert
5db2596317 The resampler and mixer threads are now stopped with BX_THREAD_KILL(). 2017-05-21 15:08:20 +00:00
Volker Ruppert
82eeab4a57 Some documentation updates. 2017-05-21 07:27:26 +00:00
Volker Ruppert
c160fd4830 Bochs thread handling improvements:
- Modified win32 thread macros to use the handle instead of the id.
- Added new macro BX_THREAD_KILL to terminate threads.
Voodoo thread changes:
- Let the cmdfifo_thread sleep while the CMDFIFO is disabled.
- Kill the cmdfifo_thread in destructor and removed old thread control code.
2017-05-18 18:34:00 +00:00
Volker Ruppert
495a8afeac Voodoo2 bitBLT: optimized SGRAM fill code a little bit. 2017-05-17 21:21:53 +00:00
Volker Ruppert
9912c99fd2 Continued work on Voodoo2 support (some demos now working).
- Added capability to save/restore float type values in paramtree / siminterface.
- Added Voodoo2 triangle generator data to save/restore list.
- Implemented bitBLT function "SGRAM fill".
- Minor other changes and cleanups.
- TODO: remaining bitBLT functions, thread handling improvements.
2017-05-16 20:37:01 +00:00
Volker Ruppert
9a705a3369 Fixed Voodoo2 CMDFIFO write handling (check address range first). 2017-05-15 20:55:49 +00:00
Volker Ruppert
da489b91ce Implemented CMDFIFO type 3 data support using some pieces of code from file
voodoo.h.txt which was a part of the original voodoo patch for DOSBox.
Some Voodoo2 specific parts were not integrated in the main patch file. I guess
they have been removed since Voodoo2 support was incomplete (2D stuff missing).
TODO: Voodoo2 2D support (bitblt engine), more testing, code cleanup...
2017-05-15 19:15:55 +00:00
Volker Ruppert
6265976a2c Some work on the Voodoo2 CMDFIFO support.
- Added CMDFIFO thread similar to the sound output thread.
- split register write function in 2 functions: register_w_common() handles
  the CMDFIFO writes and valid registers in CMDFIFO mode. It forwards write
  accesses to other registers to register_w() (Voodoo1 and non-CMDFIFO mode).
  The CMDFIFO thread also calls register_w() when processing data.
- The CMDFIFO thread processes all data, but it does not yet execute type 3
  requests (extended triangle generator missing).
- TODO #1: implement Voodoo2 specific triangle functions (for CMDFIFO).
- TODO #2: implement 2D bitblt engine.
2017-05-14 15:53:29 +00:00
Volker Ruppert
19f6cbc519 Continued preparing Voodoo2 CMDFIFO support.
- Zero out voodoo device state in init().
- Added the CMDFIFO state to save/restore list.
- Added CMDFIFO register handling in read/write functions.
- Added new function cmdfifo_put().
- TODO: CMDFIFO thread.
2017-05-13 11:52:49 +00:00
Stanislav Shwartsman
af76e0c412 fixes for debugger and disasm 2017-05-10 18:31:59 +00:00
Stanislav Shwartsman
1ca366609f add memsize for non-evex memory refrences in disasm 2017-05-09 19:49:27 +00:00
Stanislav Shwartsman
f8abddafcf bugfix in disasm 2017-05-09 19:34:03 +00:00
Volker Ruppert
a575b4aa2f Some work on the Voodoo2 CMDFIFO code.
- Fixed normal register access in CMDFIFO mode.
- Implemented cmdFifoBaseAddr register behaviour.
- Write CMDFIFO data to FBI memory (has no effect yet).
- Changed some log messages to BX_DEBUG.
- Report unimplemented Voodoo2 registers.
- TODO: Add FIFO thread to process the CMDFIFO data.
2017-05-09 19:18:58 +00:00
Stanislav Shwartsman
1d48973c80 updates in fetchdecode.h to help automatic disasm to determined memaccess size 2017-05-09 12:06:02 +00:00
Volker Ruppert
e956100a60 Fixed possible segfault in win32 gui when switching back from Voodoo to VBE or
Cirrus mode. Set font height to 0 in graphics modes and fixed argument order.
2017-05-07 14:52:37 +00:00
Volker Ruppert
eb89cdaea4 It is valid to set up the PRD size larger than the IDE transfer size. Fixed
busmaster DMA code to handle this case.
2017-05-07 07:47:08 +00:00
Volker Ruppert
78ff38fcf3 Fixed check for unimplemented CMDFIFO and return for now if write would be
valid. The hRetrace value can be set now, since Bochs no longer crashes.
TODO: Implement enough of the FIFO stuff to make the Win9x driver for the
Voodoo2 work.
2017-05-06 10:07:28 +00:00
Volker Ruppert
495607d162 Added description for the win32 option "traphotkeys". 2017-05-06 08:15:05 +00:00
Volker Ruppert
6273f0cdc9 Added new win32 gui option "traphotkeys" to disable system hotkeys for the
host when the mouse is captured and in fullscreen mode. This is useful if the
guest is also a Windows version. These changes are based on the rejected SF
patch "disablesystemhotkeys". But instead of disabling the hotkeys completely,
the events are sent to the Bochs keyboard.
2017-05-05 21:44:30 +00:00
Stanislav Shwartsman
e357da9150 update (c) for fpu files 2017-05-05 21:09:27 +00:00
Stanislav Shwartsman
1abfcd39ff implement FOPCODE and FDP deprecation CPU features 2017-05-05 20:56:13 +00:00
Stanislav Shwartsman
fce7476bda convert magic defines into static const variables 2017-05-03 18:20:13 +00:00
Volker Ruppert
8b96faf99e Some work on the timing code of the Bochs display adapters.
- Voodoo: Use the VGA/Cirrus timers to drive the gui screen update.
  The vertical retrace emulation is still driven by a separate timer.
- VGA/Cirrus: Since we are using the virtual timer, we also have to read
  time_usec() from it.
- vgacore: removed unused timer methods.
2017-05-01 11:54:12 +00:00
Volker Ruppert
73c914a7f6 - Some work on the Voodoo Graphics emulation (Voodoo2 specific)
- prepared hRetrace value implementation (cannot be enabled yet, since the
    driver passes this test and gets confused in next stage (segfault).
  - Detect CMDFIFO access (not present yet).
  - Report disabling Voodoo graphics mode.
  - TODO #1: Fix Voodoo2 to make it usable.
  - TODO #2: Split update code and drive gui screen updates from the VGA timer
    (finally remove new realtime option again).
2017-05-01 09:11:12 +00:00
Volker Ruppert
d462e52a9d Implemented 'realtime' option for the Voodoo update timer similar to the VGA
realtime option (enabled by default).
2017-04-30 09:07:25 +00:00
Volker Ruppert
904984e795 Voodoo code cleanup (removed unused / disabled stuff). 2017-04-29 22:19:29 +00:00