Commit Graph

12949 Commits

Author SHA1 Message Date
Stanislav Shwartsman 4cafebcd4c introduce memory stub class which manages *only* RAM related logic of the memory
it is very useful for CPU unit testing without devices or BIOS
2023-11-10 21:08:57 +02:00
Stanislav Shwartsman 1e92d9ee4e removed unused defines 2023-11-10 19:14:26 +02:00
Stanislav Shwartsman db88c6c5bf fixed code duplication in debugger code 2023-11-10 19:10:51 +02:00
Stanislav Shwartsman 676da2e587 update CHANGES 2023-11-09 23:14:01 +02:00
Stanislav Shwartsman 913c8a0ac9 Merge branch 'master' of https://github.com/bochs-emu/Bochs 2023-11-09 19:15:42 +02:00
Stanislav Shwartsman 8594972389 final resolution for issue #2 : address VEXPAND* and VPSHUFBITQMB instructions 2023-11-09 19:15:32 +02:00
Benjamin David Lunt a354d9aecc
fix ISO status change events (#125)
This allows you to change the CD-ROM via the Bochs Ribbon, as well as
properly "ejecting" a CD from the guest.
Before the CD path would change, but the guest (tested with WinXP and
DOS as guests) would not see the change.
This fix simulates an open tray and then a closed tray for all CD
changes.
2023-11-08 08:16:52 +02:00
Shwartsman 9f27681b54 fix compilation with CPU LEVEL<6 2023-11-08 07:15:39 +02:00
Stanislav Shwartsman 6655fa9a41 fix assertion I added in virt_timer.cc 2023-11-08 07:10:19 +02:00
Stanislav Shwartsman b78e93c9e3 optimize handling of allowed_to_run_FPU_MMX instructios common block
now checked at decode and not at every instruction
simpler code and also 1% faster winXP boot time as bonus
other x87 and mmx heavy guests may benefit even more
2023-11-08 06:48:53 +02:00
Volker Ruppert fcaccf0585 Fixed two format warnings. 2023-11-07 22:48:33 +01:00
Shwartsman 5a544197de add to .gitignore instrumentation examples Makefile 2023-11-07 16:12:30 +02:00
Shwartsman 8f30812180 resolve github issue #57 + more clear variable name 2023-11-07 16:10:41 +02:00
Shwartsman 30d285b80f use common method to parse and dump memory params in .bochsrc 2023-11-07 15:40:20 +02:00
Volker Ruppert 75d076b990 Added modeless message box support for the wxWidgets port. 2023-11-05 19:05:24 +01:00
Shwartsman 5bb77620c3 coding style and #define cleanups
avoid using ull modifyer for consts, use BX_CONST64() instead
move definitions from header file to cpp file when possible
add 'const' modifyer for obviosly const methods and pointers
2023-11-05 15:37:39 +02:00
Volker Ruppert 83c71dd7a2 Renaming method fixes gcc 11 warning (overloaded virtual). 2023-11-05 11:01:41 +01:00
Stanislav Shwartsman 7469bcb69a
measure host stack depth during simulation to avoid excessive chainin… (#119)
…g depth

never allow beyong 64K stack
2023-11-05 07:08:36 +02:00
Volker Ruppert f719dbe6d1 In case of failure restore_config() resets the restore flag. 2023-11-04 15:09:44 +01:00
Shwartsman 7290fb1231 simplify code in bx_virt_timer_c::timer_handler + add assert 2023-11-04 14:50:56 +02:00
Volker Ruppert e896e71618 Fix for the fix: restore state from config interface works again (really fixes issue #37). 2023-11-03 23:58:40 +01:00
Volker Ruppert ae31d06147 In restore mode load config earlier to make config interface selection work (fixes issue #37). 2023-11-03 18:19:38 +01:00
Volker Ruppert 2ea60efe00 Added x64 configuration to VS standard workspace (fixes issue #8 / TODO: plugins). 2023-11-03 14:38:34 +01:00
Volker Ruppert 77d7ee7d92 Updated MSVC plugins workspace (ZIP -> folder). 2023-11-01 17:18:34 +01:00
Volker Ruppert 7619ccb25d Fixed VS workspace files (TODO: plugins, WIN64 support). 2023-11-01 14:37:01 +01:00
Volker Ruppert 828da97aa5 Attempt to fix issue #40 using calculated size for 'first_sectors' buffer insted of hardcoded value. 2023-11-01 09:38:05 +01:00
Shwartsman fb6dae6846 add block_size size param to saved .bochsrc 2023-10-31 15:36:46 +02:00
Benjamin David Lunt 586443f1ea
usb_ehci log fix (#116)
Simply change two BX_INFOs to BX_DEBUGs to keep from over populating the
log file.
2023-10-31 06:33:14 +02:00
Volker Ruppert f4af2d4e24 Added modeless message box support for the x gui. 2023-10-30 21:27:37 +01:00
Stanislav Shwartsman 975c11fe09 fix canonical address calculation broken with LASS merge 2023-10-30 07:08:44 +02:00
Stanislav Shwartsman 18deee022f
make CPU to use C++ template for implementation of CPU methods (#115)
this allow to remove a lot of code from CPU common methods
2023-10-30 06:57:16 +02:00
Stanislav Shwartsman 2b439ea29e Merge branch 'master' of https://github.com/bochs-emu/Bochs 2023-10-29 23:39:46 +02:00
Stanislav Shwartsman 8cc85b1133 fixed compilation warnings from CI/DI on github 2023-10-29 23:39:32 +02:00
Volker Ruppert cc16aea6fb Added modeless message box stub for textconfig. 2023-10-29 21:59:18 +01:00
Benjamin David Lunt 1519076597
Add Modeless MessageBox capabilities (#109)
As an example, when saving the state of an emulation, especially one
that has large image files and a large memory setting, there is a pause
between the time you choose a directory to save to, and the MessageBox
that states that the state was saved. During this time, there is no
indication that Bochs is doing anything. As far as the user is
concerned, Bochs froze.

So, this PR adds the capability to display a _Modeless_ message box. To
do so, at any point you need a message box shown, allowing other things
to continue to happen (SYNCHRONOUS), simply call the following line:
`void *hwnd = SIM->ml_message_box("Message Box Title", "Message Box
Text");`
Then after the task has been performed, remove the message box:
`SIM->ml_message_box_kill(hwnd);`

The function is implemented in all configurations via virtual calls,
however, the creation of the message box is currently only implemented
in the Win32 configuration. Other configurations will need this
implemented, though I do not have those configurations to test with,
except the text only config. I may get around to it :-).

This also currently only displays as the state is being saved. To
display when the state is being restored should now be a simple task by
adding the two lines shown above to the associated function.

The only drawback with this is that if the state is considerably small,
the save will take just a second or less. If so, this window will show
and then instantly be removed, possibly confusing the user. _What was
that!!_
2023-10-29 21:47:12 +01:00
Stanislav Shwartsman 96b887a9bb
code refactor towards fixing issue #2 (#112)
next step new methods for VEXPANDPS_MASK_VpsWpsR and
VEXPANDPD_MASK_VpdWpdR with mask and memory operand will be introduced
with fault suppression support
legacy load methods aren't good because the loads here actually read
POPCNT(mask) elements from memory src
2023-10-28 22:21:42 +03:00
Volker Ruppert 1a420ddf8b Added SB16 option again (removed by a previous commit 2023-10-28 17:43:15 +02:00
Shwartsman 325fb4bfe0 Change current directory before restoring from path bugfix 2023-10-28 11:35:49 +03:00
Benjamin David Lunt ba9ed5d4d0
Add DIAG command and change to enum (#113)
This adds support for the UFI_SEND_DIAGNOSTIC command in USB_FLOPPY.CC
  and
This changes the list of defines to enum to match the current changes
made to recent files.
2023-10-27 08:24:41 +03:00
Benjamin David Lunt 5e87c5a8cf
add ehci and xchi parameters to suspend config (#111)
This changes the recent PR to use get_selected() instead of hard coding
the "uhci" and "ohci".
This also adds the xHCI options.
2023-10-23 17:01:45 +03:00
Stanislav Shwartsman c48a50141b remove unused variable 2023-10-23 09:55:42 +03:00
Stanislav Shwartsman 78acf5ba76 Merge branch 'master' of https://github.com/bochs-emu/Bochs 2023-10-23 09:32:33 +03:00
Stanislav Shwartsman 9981f76ef9 correctly advance to next instruction for MONITOR with non-WB memory type 2023-10-23 09:32:25 +03:00
Benjamin David Lunt b7f2aee9fd
write companion to save file (#110)
This fix adds the `companion=uhci\ohci` parameter to the saved config
file on suspend.
2023-10-23 07:53:22 +03:00
Stanislav Shwartsman 49a6d5bf0c coding style, initialize variables right before their use
remove redunant const in function params
2023-10-22 22:14:52 +03:00
Shwartsman 7568149dd8 fix compilation without EVEX 2023-10-22 15:58:28 +03:00
Shwartsman f455fa87e4 update CHANGES with CD-ROM fix 2023-10-22 11:55:26 +03:00
Benjamin David Lunt bfba29385f
A small fix and addition for a TEAC CD-ROM driver (#105)
This fixes the CD-ROM hardware by making sure the `drive_ready` flag is
zero after an `ATAPI_DEVICE_RESET` command. As far as I know, no other
Guest needed this fix except for the TEAC-CDI driver referred to below.

This also adds an assumption fix so that the TEAC_CDI driver will work.
The TEAC_CDI driver relies on the fact that the TEAC drive it is
designed for, sets the `interrupt reason` register (`sector count`
register) after the `ATAPI_IDENTIFY` command is issued. It uses this
`i_o` bit of this register to determine the direction of transfer for
the 0xA1 command, even though this is a read-only direction command.

Through other tests, I see no other Guests effected by this addition.

I also added a few minor syntax modifications, tab spacing, and
comments. The DEBUG out string will display the ATAPI command as well as
the 0xA0 command.
2023-10-22 11:52:53 +03:00
Shwartsman ab1e94b13c convert define to enum
add const to some function methods
tab2space
2023-10-20 22:34:37 +03:00
Stanislav Shwartsman 873f62e298 update CHANGES 2023-10-20 21:03:04 +03:00