Commit Graph

1589 Commits

Author SHA1 Message Date
Volker Ruppert
db95a54238 Prepared config interface for a hard disk sector size option.
This code is based on the initial patch by Ben Lunt with some modifications:
using enum parameter, extra parser handler and cdrom handling not necessary,
TODO: hdimage and bximage code, harddrv and USB disk emulation, BIOS.
2018-03-13 20:35:56 +00:00
Volker Ruppert
73bc76072e Added support for assigning a device (banshee or voodoo3) on Bochs PCI slot #5
to AGP if chipset i440BX is selected. AGP-specific features are not implemented
yet.
2018-02-25 20:59:30 +00:00
Volker Ruppert
e7093e74d8 Started implementing the i440BX PCI/AGP chipset.
- Added new PCI chipset choice for the i440BX AGPset. Some basic work is done,
  but AGP support is not present yet.
- Added new class for the "virtual" PCI-to-PCI bridge that should manage the
  secondary bus (AGP). Since this device must appear with device number #1 at
  the primary bus, it was required to change the PCI device numbers for the
  i440BX case. Moved the PIIX4 module to device number #7. The presence of the
  PCI base address regions now depends on the header type as expected.
- Since the Bochs BIOS cannot handle the modified PCI device layout, all tests
  continued with an external BIOS designed for this chipset (GA-6BA_F1.bin).
  This BIOS requires additional changes in some devices.
- ACPI: Return value 0 for some status registers and the GPI registers.
- CMOS: Since the PIIX4 supports a 256 byte CMOS RAM, prepared support for it
  and enable it in case a 256 byte CMOS image is used.
- PCI: The device numbers for 4 slots starting at #8. The 5th slot could be
  used for AGP when available.
2018-02-24 18:04:36 +00:00
Volker Ruppert
dbbeffd32e Now also using parse_param() method for BXT_PARAM_BYTESTRING input to reduce
code duplication.
2018-02-05 21:08:43 +00:00
Volker Ruppert
967f7d3381 Added method parse_param() to bx_param_bytestring_c and use it to reduce code
duplication (TODO: similar changes in win32paramdlg.cc).
2018-02-04 22:20:46 +00:00
Stanislav Shwartsman
7310d9edae write byte arrays from param_data in save/restore in JSON style format (using [] instead of {}). fixes in save/restore. 2018-01-26 20:02:28 +00:00
Stanislav Shwartsman
3dd83448eb fixes for commit 13439 which accidentally broke save/restore disalog on windows 2018-01-26 19:28:52 +00:00
Stanislav Shwartsman
dc628676ad rename bx_shadow_data_c::get_format as it overrides/collides with bx_param::get_format 2018-01-19 21:21:09 +00:00
Stanislav Shwartsman
e4c8b37b18 minor updates to param tree code 2018-01-19 20:39:48 +00:00
Stanislav Shwartsman
e8d0e718f1 continue param tree changes
take RAW_BYTES string out of bx_param_string_c into new param type bx_param_bytestring_c (better name, anybody?)
this is intermediate step, later it would be better to merge bx_param_string into generic template bx_param<type>
but bx_param_bytestring_cis not matching that concept (or probably will continue to inherit from bx_param<string>)
2018-01-19 20:27:04 +00:00
Stanislav Shwartsman
5f2bf81995 add new dump_param method to param object which dumps param into a string
use new method do dump param tree during save/restore, GUI and text debugger and other places
significantly reduce code duplication over multiple modules
2018-01-10 20:05:59 +00:00
Stanislav Shwartsman
e05e6f58b0 add new method to param object - dump_param
the method dumps param to the FILE
use new method do dump param tree during save/restore

also make more use of parse_param methods which initialize param from a string
2018-01-10 19:10:19 +00:00
Volker Ruppert
54650e8cd1 Fixed possible compilation error (thanks to Ben Lunt). 2017-12-03 08:09:47 +00:00
Volker Ruppert
b61b9d255a Moved all Bochs multi-threading definitions from bochs.h and osdep.h to a new
file called "bxthread.h".
2017-09-10 15:55:13 +00:00
Stanislav Shwartsman
f490b00beb added support for conditional breakpoints in Bochs debugger 2017-08-22 18:47:18 +00:00
Volker Ruppert
bd39f8c103 Fixed GCC 6.3 warnings (indentation only). 2017-08-07 18:18:18 +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
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
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
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
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
68b9d10b76 reverting latest commit, merged by mistake 2017-04-20 18:31:52 +00:00
Stanislav Shwartsman
e3fdf42225 use std::string in param_tree and gain more robust code with automatic garbage collection 2017-04-20 18:26:45 +00:00
Volker Ruppert
fbb94de3a3 SDL/SDL2 guis: Always use SDL specific byteorder macros here. This shouldn't
make a difference, but who knows?
2017-04-04 17:57:44 +00:00
Volker Ruppert
100b097c29 Added symbol BX_GUI_CONFIRM_QUIT to enable showing the dialog after pressing
the power button (disabled by default).
2017-04-02 16:16:53 +00:00
Volker Ruppert
994fdbae82 Some cleanups in in the user documentation and the code (obsolete stuff). 2017-03-23 19:09:37 +00:00
Stanislav Shwartsman
de7aa70c23 fixed more warning from msvc 2017-03-18 19:28:02 +00:00
Volker Ruppert
e9495af59a Set up VGA palette entries for gui console to make sure the text is visible. 2017-03-03 12:43:20 +00:00
Volker Ruppert
ff43979e08 Fixed compilation when using a config with the win32 gui only. 2017-02-20 18:18:44 +00:00
Volker Ruppert
f33093549b Modified plugin system to support the new PLUGTYPE_GUI.
- Changed the name of the entry point of the gui plugin code to
  lib{gui_name}_gui_plugin_init(). It is used when loading plugin with the new
  type. Added gui init code for the non-plugin version in plugin.cc.
- Some related changes for the "wx" case.
- The function load_and_init_display_lib() now only returns 1 on success.
- Minor other changes.
2017-02-18 16:28:04 +00:00
Volker Ruppert
4502478b50 Changed a lot of malloc() / free() calls to C++ style new / delete. 2017-02-18 11:13:56 +00:00
Volker Ruppert
a53b99f5e1 Implemented Bochs BIOS option "fastboot" for skipping the boot menu delay.
Prepared "biosdetect" option in the harddrv code.
TODO #1: Add support for a comma-separated list of BIOS options.
TODO #2: Implement support for at least "biosdetect=none" in the Bochs BIOS.
2017-02-16 21:43:52 +00:00
Volker Ruppert
458f747b48 Removed unused argc and argv parameters from plugin init functions. 2017-01-28 09:52:09 +00:00
Volker Ruppert
65dc62883c Added symbol to fix the compilation of MSVC plugins. 2017-01-28 00:22:28 +00:00
Volker Ruppert
f59eaa2602 Simplified immediate shutdown code by using BX_FATAL. 2017-01-24 21:52:19 +00:00
Volker Ruppert
628d9db140 X11 gui code cleanup
- Changed the order of functions and methods and added some useful comments.
- TODO: Do the same with the code of other guis if necessary.
2017-01-15 12:57:06 +00:00
Volker Ruppert
1546c8803b Bochs gui code cleanup
- Only keep the comments for the specific gui methods in nogui.cc and add
  references to this file in all other gui sources.
- Changed the order of methods and added some useful comments in gui.cc / gui.h.
- Minor other cleanups
2017-01-15 11:44:43 +00:00
Volker Ruppert
ffd7c4c492 Using names different from "classic" Bochs headerbar fixes compilation and
win32 specific toolbar handling.
2017-01-14 15:11:14 +00:00
Volker Ruppert
787307790f Moved event processing of the "classic" Bochs headerbar to the common gui code
and modified the gui code of rfb, sdl, sdl2, vncsrv and x to use it.
2017-01-14 13:10:20 +00:00
Volker Ruppert
5cd321dd02 Enabled gui console support for sdl2 using SDL_TEXTINPUT event. 2017-01-13 21:37:06 +00:00
Volker Ruppert
f18bb743be Added new symbol BX_USE_GUI_CONSOLE and set it to 1 for all guis with support
for the VGA to be used for textconfig at runtime.
2017-01-13 15:57:36 +00:00
Volker Ruppert
d7fd586451 In the save/restore handler change the display mode to "config". This fixes the
keyboard usage in the legacy sdl gui after saving state. Now the rfb and vncsrv
guis can also use this feature (dialog capabilities set to default).
2017-01-12 18:11:38 +00:00
Volker Ruppert
28d43a91a6 On Windows only use the runtime config dialog box if the gui console is not
enabled. The rfb and vncsrv guis show the textconfig console instead.
2017-01-10 21:40:05 +00:00
Volker Ruppert
111158750d Added gui console support to the legacy SDL gui.
TODO: Implement this feature in SDL2 (needs special keyboard handling).
2017-01-07 10:11:57 +00:00
Volker Ruppert
ff776d7c3a Some work on the gui console support for the text runtime configuration.
- Added gui console support to the rfb and vncsrv guis.
- Started preparing the legacy SDL gui for console support.
- TODO: The sdl and sdl2 guis need a special keyboard handling for shifted keys.
2017-01-05 18:20:47 +00:00
Volker Ruppert
48ae057bc9 Some work on the SDL2 gui
- Added support for get/set clipboard text.
- Continued preparing SDL2 gui for console support (TODO: keyboard input).
2017-01-04 22:24:33 +00:00
Volker Ruppert
8e2803f98a Bochs gui code cleanup
- Moved helper function reverse_bitorder to the common gui code.
- In console_refresh() call flush() after text_update().
- Started preparing rfb, sdl, sdl2 and vncsrv gui for using the console.
- Some other small cleanups.
2017-01-03 20:59:59 +00:00
Volker Ruppert
c0f6caa03b Some work on the gui console support for the text runtime configuration.
- vncserv.cc: Fixed sdl font issue.
- Don't check for mouse toggle event if console is active.
- Added support for blinking cursor.
- Added stubs in the gui code to reduce BX_USE_TEXTCONIG usage in x.cc.
2017-01-02 19:11:23 +00:00
Volker Ruppert
5f5f40e3d6 Changing data type sdl fonts to "static const Bit8u" fixes conflict and
simplifies code. The gui code only needs the sdl font for the VGA console.
2017-01-01 19:37:26 +00:00
Volker Ruppert
eff3664fec Implemented VGA console support in the common gui code and the X11 specific
code. Now the runtime configuration runs in the Bochs window instead of
console / xterm. The simulation screen is restored when the
simulation continues. This feature can be implemented for all guis
without gui dialog box support (e.g. sdl2/sdl2 on non-win32 platforms, rfb).
2017-01-01 17:45:06 +00:00