Commit Graph

8100 Commits

Author SHA1 Message Date
Volker Ruppert
341c764e1f - added initial 'virtual VFAT' image support (shadows a local directory)
* ported the read part of the Qemu vvfat block driver
  * added win32 specific directory functions (required for MSVC)
  * TODO: write support, FAT32 support, read MBR and boot sector from file
2010-12-23 16:17:12 +00:00
Stanislav Shwartsman
709059ddcc integrate misaligned SSE into code 2010-12-22 21:24:19 +00:00
Stanislav Shwartsman
43600f3756 complete rework of SSE code
next step - split all SSE opcodes by ModC0
2010-12-22 21:16:02 +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
Stanislav Shwartsman
a63b9900a7 optimization 2010-12-19 22:50:28 +00:00
Stanislav Shwartsman
29a674e520 split rd/wr CR opcodes for simplicity 2010-12-19 22:36:19 +00:00
Stanislav Shwartsman
c7017b1c05 simplification 2010-12-19 21:41:15 +00:00
Stanislav Shwartsman
f2355a8249 Fixed FXSAVE/FXRSTOR exceptions order 2010-12-19 21:07:46 +00:00
Stanislav Shwartsman
4a85a8680e SSE optimization 2010-12-19 07:06:40 +00:00
Stanislav Shwartsman
48d94d6dc3 optimization 2010-12-18 11:58:16 +00:00
Volker Ruppert
99eb027531 - modified usb_common plugin implementation to make Windows DLL plugins compile
* added new "pseudo device" for the USB device control (init, send message)
  * moved register_state() call from the hubs to the common device init code
- fixed unresolved symbols in usb_msd code
2010-12-14 21:20:37 +00:00
Volker Ruppert
3eba961c0d - USB documentation updates 2010-12-11 08:25:39 +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
1047acb2cc rename SSE register param - prepare for wide SSE register (AVX) 2010-12-06 21:52:41 +00:00
Stanislav Shwartsman
d60b7c0919 rename accessor for opcodeReg() in instruction 2010-12-06 21:45:56 +00:00
Volker Ruppert
fab6cfdf98 - regenerated after usb_common plugin separation 2010-12-06 18:53:21 +00:00
Volker Ruppert
c214fffa5e - created a separate plugin that contains the USB devices, the devices init
code and the generic USB stuff. Up to now, in plugin mode each host controller
  staticly links all this stuff with the plugin library. So it existed twice and
  e.g. it wasn't possible to create a unique serial number for disks/cdroms
  connected to different HCs. Some other sanity checks could be added now, too.
- Added a register mechanism for the USB device init function in the main
  devices code.
- TODO: Some other device plugins could be fixed the same way: network devices
        (sharing ethernet modules), harddrive & usb_msd (sharing hdimage and
        cdrom)
2010-12-06 18:51:13 +00:00
Volker Ruppert
cd7b703a5b - init() method added to the USB device class
- new USB device class method get_info() for improved device connect BX_INFOs
- USB printer: output file creation failure now causes BX_ERROR and disconnect
  instead of BX_PANIC (similar to usb_msd)
- removed obsolete include statements
2010-12-05 13:09:41 +00:00
Stanislav Shwartsman
dab658f136 update with AMD CPUID spec from sep2010 2010-11-27 20:20:32 +00:00
Volker Ruppert
45148b3eb7 - fixed compiler warning and big endian issue in "send buffer" command code 2010-11-26 15:42:41 +00:00
Volker Ruppert
cdfedaa9bc - data type SOCKET doesn't exist on non-win32 platforms 2010-11-23 20:26:37 +00:00
Stanislav Shwartsman
4a8d69caf6 bugfix for x86-64 mode 2010-11-23 15:42:26 +00:00
Stanislav Shwartsman
9aa503cb9d fixed warnings for win64 compilation 2010-11-23 14:59:36 +00:00
Volker Ruppert
50d9fa3e9a - added support for VGA graphics mode with 400 lines (partial fix for SF bug #2948724) 2010-11-22 22:11:30 +00:00
Volker Ruppert
6573d29d1a - log options: added missing entry for returning to parent menu 2010-11-22 21:55:56 +00:00
Volker Ruppert
21d53ee619 - setting the ISR transmit complete bit doesn't depend on the corresponding IMR bit 2010-11-21 16:21:41 +00:00
Stanislav Shwartsman
d011594114 Added option to disable MWAIT using .bochsrc 2010-11-21 12:02:12 +00:00
Volker Ruppert
a41ab5ccf9 - attempt to fix win64 compilation (Win 95/98/ME specific floppy access method
not required on this platform)
2010-11-20 12:37:00 +00:00
Volker Ruppert
3d0a3a0c6e - removed debug output 2010-11-19 18:42:11 +00:00
Volker Ruppert
7d3d32afcc - fixed panic when using floppy write protection parameter in bochsrc 2010-11-19 18:41:38 +00:00
Stanislav Shwartsman
4feda0c3fe compilation fix w/o vmx 2010-11-19 08:39:52 +00:00
Stanislav Shwartsman
85250931dd fix typo 2010-11-13 13:06:00 +00:00
Stanislav Shwartsman
e5bb07e366 a few more steps towards win64 compilation under windows 2010-11-13 13:00:26 +00:00
Stanislav Shwartsman
8c45aa2454 fixed buffer overflow in perv commit 2010-11-13 09:18:16 +00:00
Stanislav Shwartsman
36291b0b1d accessor to upper part of 64-bit reg 2010-11-12 20:46:59 +00:00
Stanislav Shwartsman
c676875421 vmcs read/write check 2010-11-12 20:26:01 +00:00
Stanislav Shwartsman
07d68e9222 fix for win64 compilation 2010-11-12 18:20:35 +00:00
Stanislav Shwartsman
e6981218dc next step for fully configurable CPU + more optimal VMX execution
- check at startup time which VMX fields are accessible
- next step: simplify VMREAD and VMWRITE instructions - eliminate switch statements
2010-11-11 21:41:03 +00:00
Stanislav Shwartsman
a6d2047f4d dos2unix 2010-11-11 17:09:13 +00:00
Stanislav Shwartsman
93cc615a40 moved vmcs stuff to separate file 2010-11-11 16:25:45 +00:00
Stanislav Shwartsman
9e6bf42527 x87 fix in 64 bit mode 2010-11-11 15:48:56 +00:00
Stanislav Shwartsman
4aef7661aa Fix buffer overflow 2010-11-03 21:46:09 +00:00
Stanislav Shwartsman
d9734249b9 compilation fixes for mingw64 gcc 2010-11-01 15:02:14 +00:00
Stanislav Shwartsman
8d46433679 compilation fixes for mingw64 gcc 2010-11-01 14:50:18 +00:00
Stanislav Shwartsman
024c0073fc fix for makefile 2010-10-25 21:05:44 +00:00
Stanislav Shwartsman
49c85b07f6 Fixed address size wrap 2010-10-18 22:19:45 +00:00
Volker Ruppert
e027d2d8e0 - replaced underscore by minus character in internal links (possible docbook
compilation failure
2010-10-17 19:50:46 +00:00
Stanislav Shwartsman
d6f2454414 fixed x87 bug 2010-10-17 16:24:33 +00:00
Stanislav Shwartsman
dc72673bb3 Fixed arpl disasm 2010-10-11 15:33:11 +00:00
Stanislav Shwartsman
5ea2591cd9 fixes 2010-10-07 20:40:01 +00:00
Stanislav Shwartsman
13e2b6eba1 added new file 2010-10-07 16:40:00 +00:00
Stanislav Shwartsman
6d089dd238 changed CPUID constants to defines 2010-10-07 16:39:31 +00:00
Stanislav Shwartsman
3f2b440584 added compilation DATE/TIME after Bochs version string 2010-10-02 20:52:47 +00:00
Stanislav Shwartsman
e3431a98e6 Bugfix for 32-bit shift/rotate in 64-bit mode 2010-10-01 09:13:21 +00:00
Stanislav Shwartsman
a9b569978a bugfix 2010-09-29 17:46:30 +00:00
Stanislav Shwartsman
dcc11e1b85 naming change 2010-09-28 14:18:58 +00:00
Stanislav Shwartsman
f2a87171c1 Fixed BX_INSTR_OPCODE callback, now its implementation closer to original definition.
New, updated definition of the callback:

	void bx_instr_opcode(unsigned cpu, const Bit8u *opcode, unsigned len, bx_bool is32, bx_bool is64);

The  callback  is  called  each  time, when Bochs completes  to  decode  a new
instruction.  Through  this callback function Bochs could provide an opcode of
the instruction, opcode length and an execution mode (16/32/64).

Please note, that Bochs uses translation  caches so each simulated instruction
might be executed multiple times but decoded only once.
2010-09-27 15:29:36 +00:00
Stanislav Shwartsman
9ed116ada7 avoid similar issues (like it was in mmx.cc) in future 2010-09-26 20:35:24 +00:00
Stanislav Shwartsman
471d33fc1d fix BE issue 2010-09-26 20:20:27 +00:00
Stanislav Shwartsman
715e65dd05 Merge EDD INT 15 Fn 48h code between int13_harddisk() and int13_cdrom().
Sebastian
2010-09-26 18:38:58 +00:00
Volker Ruppert
e99736e27a - regenerated after latest changes 2010-09-26 06:43:28 +00:00
Stanislav Shwartsman
f655e33779 imm mode2 could be only with imm_mode1 2010-09-25 10:17:04 +00:00
Stanislav Shwartsman
75f2ae9c18 fetchdecode simplification rework 2010-09-25 09:55:40 +00:00
Stanislav Shwartsman
3994761b08 Patch by Sebastian:
Missing EDD fixes for cdrom code
2010-09-25 07:21:25 +00:00
Stanislav Shwartsman
8308a47168 trying to get rid of b1() in instruction class 2010-09-24 21:15:16 +00:00
Stanislav Shwartsman
369aba757d style change 2010-09-23 20:38:02 +00:00
Stanislav Shwartsman
e0fcc80ec3 introduce bswap functions, big endian fix for CPUID 2010-09-20 20:43:16 +00:00
Stanislav Shwartsman
a6ad162346 separate param tree code out of rest of siminterface
create new module
2010-09-16 21:46:45 +00:00
Stanislav Shwartsman
273f256603 some changes in siminterface 2010-09-12 20:47:23 +00:00
Stanislav Shwartsman
a0705392d3 Fixed failure on BE hosts 2010-09-12 17:33:34 +00:00
Stanislav Shwartsman
1107ce138e small fetchdecode optimization 2010-09-07 19:54:50 +00:00
Stanislav Shwartsman
c7dba3525a Fixed warnings (patch from mailing list) 2010-08-15 19:57:50 +00:00
Volker Ruppert
deb572b355 - recompiled BIOS images 2010-08-07 20:59:07 +00:00
Stanislav Shwartsman
e989201277 I could not find DPTE revision 0x10 mentioned in the specifications.
Size of 66 bytes is invalid. Also clear DPT "reserved3" field.

Sebastian
2010-08-07 06:58:10 +00:00
Volker Ruppert
19398ed178 - added missing break statement 2010-08-02 19:26:13 +00:00
Stanislav Shwartsman
fd155a5f56 Bios fixes by Sebastian 2010-08-01 21:54:32 +00:00
Stanislav Shwartsman
31e8bfc5a7 Fixed fsgsbase cpuid bit 2010-07-22 20:19:00 +00:00
Stanislav Shwartsman
55cb12badf fixed missed canonical failure on system access 2010-07-22 20:12:25 +00:00
Stanislav Shwartsman
91ac0df65c implemented GS/FS BASE access instructions published in _319433-007.pdf document 2010-07-22 16:41:59 +00:00
Stanislav Shwartsman
7f7c249934 disasm and some cpuid code according to recently published AVX_319433-007.pdf document 2010-07-22 15:12:08 +00:00
Stanislav Shwartsman
21e39a66c9 print cpuid options in more readable form (less options in a line) 2010-07-16 21:10:48 +00:00
Stanislav Shwartsman
cd6314b65c Added ability to configure CPUID stepping through .bochsrc.
Next is CPUID model/extended model.
2010-07-16 21:03:52 +00:00
Stanislav Shwartsman
59ad9d8de8 Fixes 2010-07-15 20:18:03 +00:00
Stanislav Shwartsman
9a104c8f65 update bx_write_floppy_options with write protected floppy 2010-07-03 11:13:40 +00:00
Volker Ruppert
8b46dcfc0b - added parameter to control the floppy media write protection. This is based on
the SF patch #1539417, but rewritten from scratch (patch too old). Differences
  to the original version:
  * internal parameter name "readonly"
  * update parameter if floppy image is readonly
  * wxWidgets support
  * documentation updates
  * no specific toolbar buttons
2010-07-03 05:34:27 +00:00
Stanislav Shwartsman
41ddb26c6f Fixed save/restore of x87 regs 2010-07-01 20:00:33 +00:00
Stanislav Shwartsman
4cf15cd18b Fixed RDTSCP VMEXIT reason 2010-07-01 16:31:46 +00:00
Stanislav Shwartsman
d47c84320a swap bits in instr 2010-06-29 19:38:56 +00:00
Stanislav Shwartsman
8e94474e03 bug fix 2010-06-21 05:35:45 +00:00
Stanislav Shwartsman
63a984bf71 typo fix 2010-06-18 18:47:21 +00:00
Volker Ruppert
e801f4a256 - removed floppy method get_media_status() (floppy media change handler already
updates the parameter)
2010-06-18 17:23:50 +00:00
Stanislav Shwartsman
8099effaf5 typo 2010-06-18 14:24:45 +00:00
Stanislav Shwartsman
9ec1d79b8c warning fix 2010-06-18 14:15:53 +00:00
Stanislav Shwartsman
ca9ab30aec Update config.guess/config.sub o latest revision (May 2010) 2010-06-10 17:56:46 +00:00
Stanislav Shwartsman
a896dbfb2d compilation fix for win64 2010-06-10 15:59:04 +00:00
Stanislav Shwartsman
eaa2e0e0ea [PATCH] cpu/init.cc: proper CPL restore in after_restore_statE 2010-06-04 20:31:04 +00:00
Stanislav Shwartsman
23a28d2892 Fixed compilation with vs2008 2010-06-03 19:36:13 +00:00
Stanislav Shwartsman
86c1df8168 updated vs2008 workspace 2010-06-03 19:10:03 +00:00
Stanislav Shwartsman
f3980b522f bugfux 2010-06-02 05:44:12 +00:00
Stanislav Shwartsman
b195cb7ccf bugfix in GUI dbg 2010-05-29 18:55:59 +00:00
Stanislav Shwartsman
67aec1dc22 warning fix 2010-05-26 18:37:54 +00:00
Stanislav Shwartsman
84880793f3 optimize for speed 2010-05-26 18:34:25 +00:00
Stanislav Shwartsman
95df639614 compilation fix 2010-05-25 18:52:01 +00:00
Volker Ruppert
fb668371f4 - fixed mouse capture toggle with F12 on win32 (missing key release) 2010-05-24 22:06:17 +00:00
Stanislav Shwartsman
ecde5ffea9 simplify disasm tables 2010-05-23 20:30:23 +00:00
Stanislav Shwartsman
2dbe559ad9 simpler disasm tables 2010-05-23 20:05:14 +00:00
Stanislav Shwartsman
8d8d1590f5 fetchdecide rework for AVX (0xF3 SSE prefix encoded as 2 in VEX) 2010-05-23 19:17:41 +00:00
Stanislav Shwartsman
f7b79e0057 bugfix 2010-05-23 17:59:50 +00:00
Stanislav Shwartsman
b2dffd9258 undo incorrect change for ia32_feature_control msr init 2010-05-23 05:32:00 +00:00
Stanislav Shwartsman
c21a8fd935 sse4.2 string instruction do not required aligned mem access 2010-05-22 19:55:12 +00:00
Stanislav Shwartsman
1c00193616 cleanup 2010-05-22 10:43:39 +00:00
Stanislav Shwartsman
b6c26d394c enable VMX lock bit - required for VMXON 2010-05-22 10:21:31 +00:00
Stanislav Shwartsman
d8b1d60239 when in HLT run time faster for single cpu 2010-05-22 10:17:58 +00:00
Volker Ruppert
0a4c91815d - small fixes in the DHCP code (SF patch #2862322) 2010-05-22 10:15:58 +00:00
Stanislav Shwartsman
fff0a79aea a little simpler fetchdecode 2010-05-21 21:17:32 +00:00
Volker Ruppert
fd477dac71 - ignore single mode command 0x02 (386BSD writes it, but works with it ignored) 2010-05-18 17:48:48 +00:00
Volker Ruppert
5471cfbc34 - mouse capture toggle option choice 'f12' replaces win32 'legacyF12' option
- implemented mouse capture toggle method option in RFB
- user documentation updates (mouse, usb)
2010-05-18 15:33:41 +00:00
Stanislav Shwartsman
155c527e35 Enable 2M BIOS images 2010-05-18 09:01:08 +00:00
Stanislav Shwartsman
e3e797a2de ready to enlarge supported BIOS ROM to 2M 2010-05-18 08:54:01 +00:00
Stanislav Shwartsman
d22427ede1 mark places what have to be fixed to enable 2M BIOS ROM images 2010-05-18 07:44:37 +00:00
Stanislav Shwartsman
3dfcfd0ccd Split shift opcodes | optimize SAR opcode 2010-05-18 07:28:05 +00:00
Stanislav Shwartsman
44885c4ef5 rom_present is not need to be BX_MEM_C member 2010-05-17 19:42:30 +00:00
Volker Ruppert
8a2a1dc04c - implemented mouse capture toggle method option in win32.cc
- updated mouse option description and added cpuid options section in the user docs
2010-05-16 20:44:08 +00:00
Volker Ruppert
ae20efc894 - added entry for the new 'cpuid' option and updated 'mouse' option description 2010-05-16 15:12:15 +00:00
Volker Ruppert
84364ae889 - implemented mouse capture toggle method option in wxWidgets 2010-05-16 14:40:53 +00:00
Stanislav Shwartsman
bfac0dd6c6 Move some defines from rombios32.c to rombios.h
Sebastian
2010-05-16 14:35:22 +00:00
Stanislav Shwartsman
32ff6e4879 MSR BX_DEBUG prints 2010-05-16 13:56:22 +00:00
Volker Ruppert
19ed74f642 - added new config option to select mouse capture toggle method. In addition to
the default Bochs method using the CTRL key and the middle mouse button there
  are now the choices CTRL+F10 (like DOSBox) and CTRL+ALT (like QEMU).
  * currently implemented in the X11 and SDL guis only
  * TODO: porting to wxWidgets and Win32, documentation updates
2010-05-16 09:01:36 +00:00
Stanislav Shwartsman
05bbbb1a2c compilation fix 2010-05-16 05:23:18 +00:00
Stanislav Shwartsman
bdc7b4bf89 Updates of CMOS map 2010-05-15 19:35:41 +00:00
Volker Ruppert
cdb7e0eb96 - fixed usage of variable 'apic_id_mask' for compatibility with win32 plugin target 2010-05-15 09:23:50 +00:00
Stanislav Shwartsman
35f8e91cad APIC ID mask cleanup 2010-05-14 12:10:00 +00:00
Stanislav Shwartsman
9c69b15ecb fetchdecode tables reorg phase1 2010-05-13 05:38:24 +00:00
Stanislav Shwartsman
74b87d2b68 fixes for CPUID and alloweds bits in CRs 2010-05-12 21:33:04 +00:00
Stanislav Shwartsman
f95ddc4029 Debug Extensions was introduced in Pentium 2010-05-12 18:48:51 +00:00
Stanislav Shwartsman
d849cdf128 - Determine and select max physical address size automatically at
configure time:
    - 32-bit physical address for 386/486 guests
    - 36-bit physical address for PSE-36 enabled Pentium guest
    - 40-bit physical address for PAE enabled P6 or later guests
2010-05-12 14:55:12 +00:00
Stanislav Shwartsman
f899949c3a Sebastian define port number constants 2010-05-10 05:24:39 +00:00
Stanislav Shwartsman
49934bc853 cache page split instructions
next step - cache page split traces
2010-05-08 08:30:04 +00:00
Stanislav Shwartsman
b0d5142e18 comp fixes 2010-05-06 21:46:39 +00:00
Volker Ruppert
60a6476e40 - added directory structure of the Bochs project webspace 2010-05-06 16:59:44 +00:00
Stanislav Shwartsman
1c47847e23 Show more fields for verbose debugger 'page'command 2010-05-05 20:10:15 +00:00
Stanislav Shwartsman
2b1ea37252 verbose page command from debugger 2010-05-04 20:17:26 +00:00
Stanislav Shwartsman
9a43a89a61 verbose page command from the debugger 2010-05-04 20:16:38 +00:00
Stanislav Shwartsman
aa76181208 Fixed debug translation 2010-05-04 19:02:51 +00:00
Stanislav Shwartsman
41e9663b89 optimization 2010-05-02 17:01:15 +00:00
Stanislav Shwartsman
4e6d7835c6 #GP/#SS priority 2010-05-02 17:00:05 +00:00
Stanislav Shwartsman
0478b326c3 remove ome ifdefs 2010-05-02 15:11:39 +00:00
Stanislav Shwartsman
acc82363cd undefined CR fault higher prio than CPL GP 2010-05-02 15:10:27 +00:00
Volker Ruppert
7d1d56a6d2 - added some webmastering infos (TODO: Bochs project webspace directory structure) 2010-05-02 11:04:42 +00:00
Stanislav Shwartsman
48a461116f PUSH segment register fix to be like real CPU 2010-04-30 09:12:52 +00:00